<notzmv>
quick question, how do I select a restart numbered from 10 on up?
<notzmv>
quick question, how do I select a restart numbered from 10 on up?
sinherita has joined #lisp
sinherita has joined #lisp
sinherita has quit [Changing host]
sinherita has quit [Changing host]
sinherita has quit [Quit: Reconnecting]
sinherita has quit [Quit: Reconnecting]
glycerol has joined #lisp
glycerol has joined #lisp
wxie has quit [Ping timeout: 240 seconds]
wxie has quit [Ping timeout: 240 seconds]
glycerol has joined #lisp
glycerol has joined #lisp
glycerol has quit [Changing host]
glycerol has quit [Changing host]
glycerol has quit [Quit: Reconnecting]
glycerol has quit [Quit: Reconnecting]
fridge has joined #lisp
fridge has joined #lisp
fridge has quit [Remote host closed the connection]
fridge has quit [Remote host closed the connection]
ark has joined #lisp
ark has joined #lisp
orivej has joined #lisp
orivej has joined #lisp
breakups has joined #lisp
breakups has joined #lisp
breakups has quit [Remote host closed the connection]
breakups has quit [Remote host closed the connection]
unfamiliaritys has joined #lisp
unfamiliaritys has joined #lisp
unfamiliaritys has quit [Remote host closed the connection]
unfamiliaritys has quit [Remote host closed the connection]
tires has joined #lisp
tires has joined #lisp
tires has quit [Remote host closed the connection]
tires has quit [Remote host closed the connection]
PuercoPop has quit [Quit: WeeChat 2.8]
PuercoPop has quit [Quit: WeeChat 2.8]
<MrtnDk[m]>
notzmv From ten to what? 30? (iota 30 :start 10)
<MrtnDk[m]>
notzmv From ten to what? 30? (iota 30 :start 10)
landlubbers has joined #lisp
landlubbers has joined #lisp
semz has quit [Ping timeout: 240 seconds]
semz has quit [Ping timeout: 240 seconds]
perrier-jouet has quit [Quit: WeeChat 3.1]
perrier-jouet has quit [Quit: WeeChat 3.1]
perrier-jouet has joined #lisp
perrier-jouet has joined #lisp
<notzmv>
I had an interrupt and the restart I wanted to select on SBCL was the 11, but it went to the 1 directly
<notzmv>
I had an interrupt and the restart I wanted to select on SBCL was the 11, but it went to the 1 directly
perrier-jouet has quit [Client Quit]
perrier-jouet has quit [Client Quit]
orivej has quit [Ping timeout: 264 seconds]
orivej has quit [Ping timeout: 264 seconds]
landlubbers has joined #lisp
landlubbers has joined #lisp
landlubbers has quit [Changing host]
landlubbers has quit [Changing host]
landlubbers has quit [Quit: Reconnecting]
landlubbers has quit [Quit: Reconnecting]
<Nilby>
notzmv: If you're in SLIME I think you can put the cursor on the restart and press enter, or you can press 'I' and pick the restart name with completion in the minibuffer.
<Nilby>
notzmv: If you're in SLIME I think you can put the cursor on the restart and press enter, or you can press 'I' and pick the restart name with completion in the minibuffer.
impinge has joined #lisp
impinge has joined #lisp
semz has joined #lisp
semz has joined #lisp
semz has joined #lisp
semz has joined #lisp
igemnace has joined #lisp
igemnace has joined #lisp
<fiddlerwoaroof>
I'm trying to figure out how to copy a generic sequence into a freshly allocated vector
<fiddlerwoaroof>
I'm trying to figure out how to copy a generic sequence into a freshly allocated vector
<fiddlerwoaroof>
is (map 'vector 'identity seq) guaranteed to copy? (I assume so, because MAP can't really make assumptions about the function passed)
<fiddlerwoaroof>
is (map 'vector 'identity seq) guaranteed to copy? (I assume so, because MAP can't really make assumptions about the function passed)
impinge has quit [Quit: Reconnecting]
impinge has quit [Quit: Reconnecting]
Stanley00 has joined #lisp
Stanley00 has joined #lisp
typeset has joined #lisp
typeset has joined #lisp
ppbitb has left #lisp ["WeeChat 2.9"]
ppbitb has left #lisp ["WeeChat 2.9"]
<Nilby>
fiddlerwoaroof: That makes a new vector, but the objects are likely eq.
<Nilby>
fiddlerwoaroof: That makes a new vector, but the objects are likely eq.
Oladon has joined #lisp
Oladon has joined #lisp
elusive has quit [Ping timeout: 260 seconds]
elusive has quit [Ping timeout: 260 seconds]
typeset has quit [Client Quit]
typeset has quit [Client Quit]
<fiddlerwoaroof>
That's fine with me, I'm just trying to write a simple shuffle that doesn't modify the input sequence
<fiddlerwoaroof>
That's fine with me, I'm just trying to write a simple shuffle that doesn't modify the input sequence
<fiddlerwoaroof>
My favorite thing about LOOP is that it's basically the psuedocode people write algorithms in
<fiddlerwoaroof>
My favorite thing about LOOP is that it's basically the psuedocode people write algorithms in
<moon-child>
that's supposed to only be for numeric ranges afaik
<moon-child>
that's supposed to only be for numeric ranges afaik
methodically has joined #lisp
methodically has joined #lisp
<Nilby>
Nice. It's like direct translation.
<Nilby>
Nice. It's like direct translation.
pankajsg has quit [Ping timeout: 240 seconds]
pankajsg has quit [Ping timeout: 240 seconds]
<fiddlerwoaroof>
Yeah, I had this experience a while ago when I was doing an algorithms course on Coursera
<fiddlerwoaroof>
Yeah, I had this experience a while ago when I was doing an algorithms course on Coursera
abhixec has quit [Quit: leaving]
abhixec has quit [Quit: leaving]
<fiddlerwoaroof>
I could basically copy the pseudocode and tweak it a bit and the result read more or less like the code in the text
<fiddlerwoaroof>
I could basically copy the pseudocode and tweak it a bit and the result read more or less like the code in the text
methodically has joined #lisp
methodically has joined #lisp
methodically has quit [Changing host]
methodically has quit [Changing host]
methodically has quit [Remote host closed the connection]
methodically has quit [Remote host closed the connection]
<Nilby>
I wonder if pseudocode like that was taken from a lisp version. the "downto" is
<Nilby>
I wonder if pseudocode like that was taken from a lisp version. the "downto" is
<Nilby>
distinctive
<Nilby>
distinctive
Santos_ has joined #lisp
Santos_ has joined #lisp
Santos_ has quit [Client Quit]
Santos_ has quit [Client Quit]
<Nilby>
I guess a "such that" in loop would be confusing.
<Nilby>
I guess a "such that" in loop would be confusing.
<fiddlerwoaroof>
Anyways, I realized once I parallelized my raytracer that randomizing the order in which I streamed the lines to the browser would give me a better sense of the whole picture more quickly
<fiddlerwoaroof>
Anyways, I realized once I parallelized my raytracer that randomizing the order in which I streamed the lines to the browser would give me a better sense of the whole picture more quickly
<Nilby>
Nice. I like those raytracers where you can scribble where you want it work more :)
<Nilby>
Nice. I like those raytracers where you can scribble where you want it work more :)
prxq_ has joined #lisp
prxq_ has joined #lisp
cottonmouths has joined #lisp
cottonmouths has joined #lisp
<Nilby>
fiddlerwoaroof: I assume you know about alexandria:shuffle, optimizations of which were discussed here last week
<Nilby>
fiddlerwoaroof: I assume you know about alexandria:shuffle, optimizations of which were discussed here last week
<fiddlerwoaroof>
Nilby: I do now :)
<fiddlerwoaroof>
Nilby: I do now :)
<fiddlerwoaroof>
Fisher-yates is so simple, though
<fiddlerwoaroof>
Fisher-yates is so simple, though
cottonmouths has quit [Quit: Reconnecting]
cottonmouths has quit [Quit: Reconnecting]
thmprover has quit [Quit: [Exit, pursued by bear]]
thmprover has quit [Quit: [Exit, pursued by bear]]
prxq has quit [Ping timeout: 240 seconds]
prxq has quit [Ping timeout: 240 seconds]
jcowan has joined #lisp
jcowan has joined #lisp
<jcowan>
Does anyone understand why #.(values) returns nil rather than disappearing from the file being read? That would seem to be more useful.
<jcowan>
Does anyone understand why #.(values) returns nil rather than disappearing from the file being read? That would seem to be more useful.
<Nilby>
I think it does disappear. Perhaps you're using it in place that defaults to nil?
<Nilby>
I think it does disappear. Perhaps you're using it in place that defaults to nil?
<jcowan>
Typing #.(values) to the REPL returns NIL.
<jcowan>
Typing #.(values) to the REPL returns NIL.
<raeda>
'(a b #.(values) c) => (A B C) in the SBCL REPL, as expected
<raeda>
'(a b #.(values) c) => (A B C) in the SBCL REPL, as expected
<minion>
raeda, memo from fiddlerwoaroof: there's also #abcl which isn't very active, but is more dedicated to developing ABCL
<minion>
raeda, memo from fiddlerwoaroof: there's also #abcl which isn't very active, but is more dedicated to developing ABCL
<Nilby>
Not for me :(
<Nilby>
Not for me :(
<jcowan>
Okay, it's just a bug in CLISP
<jcowan>
Okay, it's just a bug in CLISP
<Nilby>
What REPL and implementation are you using?
<Nilby>
What REPL and implementation are you using?
<jcowan>
I confirm it works in sbcl.
<jcowan>
I confirm it works in sbcl.
<Nilby>
Ahh.. Yes. And probably just in the REPL not in code.
<Nilby>
Ahh.. Yes. And probably just in the REPL not in code.
<Nilby>
The CLISP repl has a few "quirks".
<Nilby>
The CLISP repl has a few "quirks".
aquaria has joined #lisp
aquaria has joined #lisp
<jcowan>
You can kind of see why: it thinks #. expects one value, and since there are none, it returns NIL. #.(values 1 2) however evaluates to 1.
<jcowan>
You can kind of see why: it thinks #. expects one value, and since there are none, it returns NIL. #.(values 1 2) however evaluates to 1.
vutral_ has joined #lisp
vutral_ has joined #lisp
<fiddlerwoaroof>
It works like '(a b #.(values) c) => (A B C) in lispworks too
<fiddlerwoaroof>
It works like '(a b #.(values) c) => (A B C) in lispworks too
<fiddlerwoaroof>
There's a nil in the output in ECL
<fiddlerwoaroof>
There's a nil in the output in ECL
<fiddlerwoaroof>
no nil in CCL
<fiddlerwoaroof>
no nil in CCL
<fiddlerwoaroof>
no nil in abcl
<fiddlerwoaroof>
no nil in abcl
aquaria has quit [Quit: Reconnecting]
aquaria has quit [Quit: Reconnecting]
<fiddlerwoaroof>
So, it sounds like clisp/ecl produce '(A B NIL C) and all the others '(A B C)
<fiddlerwoaroof>
So, it sounds like clisp/ecl produce '(A B NIL C) and all the others '(A B C)
<jcowan>
The CLHS seems to be open. "#.foo is read as the object resulting from the evaluation of the object represented by foo" implies there is exactly one object, so what happens if there are no objects returned is unspecified.
<jcowan>
The CLHS seems to be open. "#.foo is read as the object resulting from the evaluation of the object represented by foo" implies there is exactly one object, so what happens if there are no objects returned is unspecified.
entrances has quit [Remote host closed the connection]
entrances has quit [Remote host closed the connection]
Alloc has joined #lisp
Alloc has joined #lisp
aindilis has joined #lisp
aindilis has joined #lisp
<Nilby>
go doesn't return, so it doens't return a value, but 3.1.7 is pretty specific "if the form produces zero values, then the caller receives nil as a value."
<Nilby>
go doesn't return, so it doens't return a value, but 3.1.7 is pretty specific "if the form produces zero values, then the caller receives nil as a value."
paeans_ has joined #lisp
paeans_ has joined #lisp
sauvin_ has joined #lisp
sauvin_ has joined #lisp
<Nilby>
and in 2.4.8.6 is says: "#.foo is read as the object resulting from the evaluation of the object represented by foo."
<Nilby>
and in 2.4.8.6 is says: "#.foo is read as the object resulting from the evaluation of the object represented by foo."
<Nilby>
so I guess old clisp is right.
<Nilby>
so I guess old clisp is right.
<fiddlerwoaroof>
The question is, though, is READ the caller?
<fiddlerwoaroof>
The question is, though, is READ the caller?
<fiddlerwoaroof>
There's a little bit of ambiguity in the phrasing "resulting from the evaluation of the object"
<fiddlerwoaroof>
There's a little bit of ambiguity in the phrasing "resulting from the evaluation of the object"
paeans_ has quit [Changing host]
paeans_ has quit [Changing host]
paeans_ has joined #lisp
paeans_ has joined #lisp
<beach>
Good morning everyone!
<beach>
Good morning everyone!
<fiddlerwoaroof>
hi beach !
<fiddlerwoaroof>
hi beach !
<Nilby>
Good morning.
<Nilby>
Good morning.
<Alfr>
Hello beach.
<Alfr>
Hello beach.
Lemniscate has quit [Ping timeout: 264 seconds]
Lemniscate has quit [Ping timeout: 264 seconds]
<raeda>
I would say READ is the caller of read time expressions
<raeda>
I would say READ is the caller of read time expressions
sauvin_ is now known as Lemniscate
sauvin_ is now known as Lemniscate
<jcowan>
I think there used to be a facility in MacLisp that let you splice things into an S-expression for read purposes.
<jcowan>
I think there used to be a facility in MacLisp that let you splice things into an S-expression for read purposes.
paeans_ has quit [Quit: Reconnecting]
paeans_ has quit [Quit: Reconnecting]
asarch has joined #lisp
asarch has joined #lisp
<asarch>
One stupid question: can a structure be inheritable?
<asarch>
One stupid question: can a structure be inheritable?
<jcowan>
Ah, yes. CLtL1/2 says "The function may choose instead to return zero values (for example, by using (values) as the return expression). In this case, the macro character and whatever it may have read contribute nothing to the object being read."
<jcowan>
Ah, yes. CLtL1/2 says "The function may choose instead to return zero values (for example, by using (values) as the return expression). In this case, the macro character and whatever it may have read contribute nothing to the object being read."
sGoldwate has joined #lisp
sGoldwate has joined #lisp
sGoldwate has joined #lisp
sGoldwate has quit [Changing host]
sGoldwate has joined #lisp
sGoldwate has quit [Changing host]
<jcowan>
This is used by an example definition for ;, which has to eat the comment and return nothing.
<jcowan>
This is used by an example definition for ;, which has to eat the comment and return nothing.
sGoldwate has quit [Client Quit]
sGoldwate has quit [Client Quit]
<Nilby>
jcowan: Nice find. So sbcl does it the cltl2 way, which makes sense given it's pre-CL pedigree.
<Nilby>
jcowan: Nice find. So sbcl does it the cltl2 way, which makes sense given it's pre-CL pedigree.
<jcowan>
Does cmucl go back before ANSI too?
<jcowan>
Does cmucl go back before ANSI too?
<Nilby>
Yes, from spice lisp.
<Nilby>
Yes, from spice lisp.
<jcowan>
if so, that would explain why sbcl does it that way
<jcowan>
if so, that would explain why sbcl does it that way
<beach>
I think they all do.
<beach>
I think they all do.
flippancy has joined #lisp
flippancy has joined #lisp
<asarch>
Another stupid question: so what's the point of CLOS if defstruct could easily provide the same functionality (or ever better since it doesn't "contaminate" the name space with lots of functions made by :accessors)?
<asarch>
Another stupid question: so what's the point of CLOS if defstruct could easily provide the same functionality (or ever better since it doesn't "contaminate" the name space with lots of functions made by :accessors)?
flippancy has quit [Client Quit]
flippancy has quit [Client Quit]
<jcowan>
Flexibility
<jcowan>
Flexibility
<beach>
jcowan: And that's the reason there is so much innovation to be done. :)
<beach>
jcowan: And that's the reason there is so much innovation to be done. :)
<jcowan>
"The ability to return either zero or one value is the closest Common Lisp macro characters come to the splicing macro characters of MacLisp or the splice macro characters of Interlisp. The Common Lisp definition does not allow the splicing of arbitrarily many values, but it does allow a macro-character function to decide after it is invoked whether or not to yield a value, an option not possible in MacLisp or Interlisp."
<jcowan>
"The ability to return either zero or one value is the closest Common Lisp macro characters come to the splicing macro characters of MacLisp or the splice macro characters of Interlisp. The Common Lisp definition does not allow the splicing of arbitrarily many values, but it does allow a macro-character function to decide after it is invoked whether or not to yield a value, an option not possible in MacLisp or Interlisp."
<notzmv>
Nilby: I'm using sly, but thanks anyway, I think that might work as well. in any case I've already fixed the underlying problem so it's a bit moot for now haha
<notzmv>
Nilby: I'm using sly, but thanks anyway, I think that might work as well. in any case I've already fixed the underlying problem so it's a bit moot for now haha
<beach>
asarch: DEFSTRUCT is very limited. No multiple inheritance for instance. Plus, without CLOS you would not have generic functions.
<beach>
asarch: DEFSTRUCT is very limited. No multiple inheritance for instance. Plus, without CLOS you would not have generic functions.
<jcowan>
(same place, CLtL2 22.1.5
<jcowan>
(same place, CLtL2 22.1.5
<jcowan>
)
<jcowan>
)
<beach>
asarch: And DEFSTRUCT does not specify the semantics of redefinition, which is why I never use it.
<beach>
asarch: And DEFSTRUCT does not specify the semantics of redefinition, which is why I never use it.
<asarch>
"Semantics of redefinition"?
<asarch>
"Semantics of redefinition"?
<jcowan>
asarch: The effect of redefining a struct type is unspecified
<jcowan>
asarch: The effect of redefining a struct type is unspecified
<beach>
asarch: You have an executing Common Lisp image. You load a DEFSTRUCT form, you work a bit, then you decide it wasn't right, so you add or remove something and you load it again. Now you have undefined behavior. Not so with DEFCLASS.
<beach>
asarch: You have an executing Common Lisp image. You load a DEFSTRUCT form, you work a bit, then you decide it wasn't right, so you add or remove something and you load it again. Now you have undefined behavior. Not so with DEFCLASS.
<asarch>
If I do: (defclass taco () ((quantity))) isn't the same as (defstruct taco quantity)?
<asarch>
If I do: (defclass taco () ((quantity))) isn't the same as (defstruct taco quantity)?
<fiddlerwoaroof>
No, redefining taco invokes the instance update protocol
<fiddlerwoaroof>
No, redefining taco invokes the instance update protocol
<beach>
asarch: DEFCLASS has specified semantics when you redefine it.
<beach>
asarch: DEFCLASS has specified semantics when you redefine it.
<jcowan>
No: structure types are not the same as class types (or built-in types)
<jcowan>
No: structure types are not the same as class types (or built-in types)
<fiddlerwoaroof>
Is the sequence (defstruct foo ...) (unintern 'foo) (defstruct foo ...) specified?
<fiddlerwoaroof>
Is the sequence (defstruct foo ...) (unintern 'foo) (defstruct foo ...) specified?
<fiddlerwoaroof>
i.e. does it result in undefined behavior?
<fiddlerwoaroof>
i.e. does it result in undefined behavior?
<beach>
asarch: That's why Common Lisp is a "dynamic language" or an "interactive language". You can redefine things after the fact.
<beach>
asarch: That's why Common Lisp is a "dynamic language" or an "interactive language". You can redefine things after the fact.
<beach>
asarch: DEFSTRUCT ruins that completely, because the implementation can then do anything it sees fit.
<beach>
asarch: DEFSTRUCT ruins that completely, because the implementation can then do anything it sees fit.
<asarch>
And for the class taco I could easily: (defun quantity ((instance taco)) ...) and (defun (setf quantity) ((instance taco) val) ...)
<asarch>
And for the class taco I could easily: (defun quantity ((instance taco)) ...) and (defun (setf quantity) ((instance taco) val) ...)
Alloc has quit [Ping timeout: 245 seconds]
Alloc has quit [Ping timeout: 245 seconds]
waleee-cl has quit [Quit: Connection closed for inactivity]
waleee-cl has quit [Quit: Connection closed for inactivity]
<jcowan>
It gives you a tradeoff between efficient but inflexible types and less efficient but highly flexible types.
<jcowan>
It gives you a tradeoff between efficient but inflexible types and less efficient but highly flexible types.
<beach>
asarch: What does that mean? Did you mean defmethod?
<beach>
asarch: What does that mean? Did you mean defmethod?
<beach>
asarch: If so, you are using a feature introduced by CLOS.
<beach>
asarch: If so, you are using a feature introduced by CLOS.
monotheistic has joined #lisp
monotheistic has joined #lisp
monotheistic has quit [Remote host closed the connection]
monotheistic has quit [Remote host closed the connection]
<fiddlerwoaroof>
The thing that took me a while to realize is that CLOS is basically Java-style OOP turned inside-out
<fiddlerwoaroof>
The thing that took me a while to realize is that CLOS is basically Java-style OOP turned inside-out
<fiddlerwoaroof>
Instead of the emphasis being on classes, the emphasis is on the operations
<fiddlerwoaroof>
Instead of the emphasis being on classes, the emphasis is on the operations
<beach>
That's an "interesting" way of describing it.
<beach>
That's an "interesting" way of describing it.
<aeth>
asarch: Structures are for low-level efficient stuff. They have many downsides to allow implementations to optimize them. If you're not writing C in CL, then you probably don't need them. And you have it backwards. Structures contaminate the namespace with lots of functions because they're not generic functions. Defclass creates generic accessors so e.g. there's only one NAME, not a dozen FOO-NAMEs
<aeth>
asarch: Structures are for low-level efficient stuff. They have many downsides to allow implementations to optimize them. If you're not writing C in CL, then you probably don't need them. And you have it backwards. Structures contaminate the namespace with lots of functions because they're not generic functions. Defclass creates generic accessors so e.g. there's only one NAME, not a dozen FOO-NAMEs
<beach>
I think of it as object-oriented programming done right.
<beach>
I think of it as object-oriented programming done right.
<fiddlerwoaroof>
Reading AMOP really made this clear: they don't describe CLOS by talking about the classes but by talking about hte protocols the classes implement
<fiddlerwoaroof>
Reading AMOP really made this clear: they don't describe CLOS by talking about the classes but by talking about hte protocols the classes implement
<jcowan>
"Generic functions are the good parts of OO."
<jcowan>
"Generic functions are the good parts of OO."
<fiddlerwoaroof>
beach: I agree, but it took a while for me to relate CLOS to what I already knew
<fiddlerwoaroof>
beach: I agree, but it took a while for me to relate CLOS to what I already knew
<beach>
Ah, yes, I see.
<beach>
Ah, yes, I see.
<jcowan>
the Smalltalk ANSI standard also talks about protocols (which do not exist in the language) that you must implement rather than classes you must implement (the exceptions being Object and Exception)
<jcowan>
the Smalltalk ANSI standard also talks about protocols (which do not exist in the language) that you must implement rather than classes you must implement (the exceptions being Object and Exception)
<fiddlerwoaroof>
I think something got lost when the industry adopted OOP
<fiddlerwoaroof>
I think something got lost when the industry adopted OOP
<jcowan>
Rather, when it adopted dumbed-down OOP
<jcowan>
Rather, when it adopted dumbed-down OOP
<asarch>
(defstruct taco quantity) and then (setf (taco-quantity my-dish) 10)
<asarch>
(defstruct taco quantity) and then (setf (taco-quantity my-dish) 10)
raeda_ has joined #lisp
raeda_ has joined #lisp
<beach>
asarch: What is your point?
<beach>
asarch: What is your point?
raeda has quit [Remote host closed the connection]
raeda has quit [Remote host closed the connection]
<asarch>
I mean, what if you don't to change things
<asarch>
I mean, what if you don't to change things
<asarch>
Like my HTML form generator, for example
<asarch>
Like my HTML form generator, for example
<fiddlerwoaroof>
jcowan: I think single-dispatch object systems tend to lead to a mental model where classes "own" methods, though
<fiddlerwoaroof>
jcowan: I think single-dispatch object systems tend to lead to a mental model where classes "own" methods, though
<beach>
asarch: If you don't change things, you must be a wizard developer. Unique in fact.
<beach>
asarch: If you don't change things, you must be a wizard developer. Unique in fact.
<asarch>
Just a way to keep things together (class, name, label, etc properties of the HTML element)
<asarch>
Just a way to keep things together (class, name, label, etc properties of the HTML element)
<fiddlerwoaroof>
Alan Kay always said the point is messages, but it never seemed to really get through to people
<fiddlerwoaroof>
Alan Kay always said the point is messages, but it never seemed to really get through to people
<beach>
fiddlerwoaroof: I totally agree, and he has explained it more later.
<beach>
fiddlerwoaroof: I totally agree, and he has explained it more later.
<beach>
In fact, he imagined distributed computing, with messages being sent across a network.
<beach>
In fact, he imagined distributed computing, with messages being sent across a network.
<jcowan>
I think it's unfortunate that defmethod implies defgeneric
<jcowan>
I think it's unfortunate that defmethod implies defgeneric
<asarch>
CLOS doesn't send messages, right?
<asarch>
CLOS doesn't send messages, right?
<fiddlerwoaroof>
I also think single-dispatch has the issue where there's a "special" function argument for no particularly good reason: if a function can dispatch on the "this" argument, why not all the others?
<fiddlerwoaroof>
I also think single-dispatch has the issue where there's a "special" function argument for no particularly good reason: if a function can dispatch on the "this" argument, why not all the others?
<beach>
asarch: Correct.
<beach>
asarch: Correct.
<asarch>
It uses generic dispatch instead
<asarch>
It uses generic dispatch instead
<beach>
jcowan: Absolutely. We have changed the way we view "convenient defaults" over the decades.
<beach>
jcowan: Absolutely. We have changed the way we view "convenient defaults" over the decades.
<beach>
fiddlerwoaroof: It does make sense if you need to send a message to an object on a remote computer, though.
<beach>
fiddlerwoaroof: It does make sense if you need to send a message to an object on a remote computer, though.
Minsk has joined #lisp
Minsk has joined #lisp
<beach>
Of course, once class-based object orientation was adopted by Java, there was no reason to keep it.
<beach>
Of course, once class-based object orientation was adopted by Java, there was no reason to keep it.
<jcowan>
Eh. I think hiding the distinction between remote and local method calls is a mistake: there are so many more failure modes.
<jcowan>
Eh. I think hiding the distinction between remote and local method calls is a mistake: there are so many more failure modes.
Minsk has quit [Quit: Reconnecting]
Minsk has quit [Quit: Reconnecting]
<beach>
Well, I get the hives whenever there is talk about remote anything, because I don't understand how preserving identity and garbage collection could work then.
<beach>
Well, I get the hives whenever there is talk about remote anything, because I don't understand how preserving identity and garbage collection could work then.
<Nilby>
If you use CLX you're basically doing RPC.
<Nilby>
If you use CLX you're basically doing RPC.
<beach>
Yes, and that's already problematic.
<beach>
Yes, and that's already problematic.
<beach>
You have to delete your windows and graphics contexts for instance.
<beach>
You have to delete your windows and graphics contexts for instance.
<Nilby>
Actually you don't, and turns out there's a gc-like part of the X server.
<Nilby>
Actually you don't, and turns out there's a gc-like part of the X server.
zooey has quit [Ping timeout: 268 seconds]
zooey has quit [Ping timeout: 268 seconds]
<beach>
Great, so it knows when the application is holding on to such an object?
<beach>
Great, so it knows when the application is holding on to such an object?
<Nilby>
But, it's not done right, so it's not very flexible.
<Nilby>
But, it's not done right, so it's not very flexible.
zooey has joined #lisp
zooey has joined #lisp
<Nilby>
Yes, or at least sometimes.
<Nilby>
Yes, or at least sometimes.
<beach>
That is truly amazing. That means that the X server must know about the heap structure of every Common Lisp implementation.
<beach>
That is truly amazing. That means that the X server must know about the heap structure of every Common Lisp implementation.
<Nilby>
Not exactly. You just get errors when things go away, but it does keep something of a mirror of the object structure.
<Nilby>
Not exactly. You just get errors when things go away, but it does keep something of a mirror of the object structure.
sequestri has joined #lisp
sequestri has joined #lisp
sequestri has quit [Quit: Reconnecting]
sequestri has quit [Quit: Reconnecting]
<Nilby>
The gc-like part could also be considered conservative. It only cleans up under certain circumstances.
<Nilby>
The gc-like part could also be considered conservative. It only cleans up under certain circumstances.
<Nilby>
But interestingly I think there was some thought about both sides being Lisp. It was just less feasible in those days.
<Nilby>
But interestingly I think there was some thought about both sides being Lisp. It was just less feasible in those days.
<beach>
That would be a good thing. The Xorg server on this computer definitely has memory leaks. An X server in Common Lisp would be a good thing.
<beach>
That would be a good thing. The Xorg server on this computer definitely has memory leaks. An X server in Common Lisp would be a good thing.
<Nilby>
I quite agree.
<Nilby>
I quite agree.
<beach>
Now who was it that started such a thing (called clxs)? Was it gilberth?
<beach>
Now who was it that started such a thing (called clxs)? Was it gilberth?
yconsulta has joined #lisp
yconsulta has joined #lisp
<Nilby>
If emacs was CL the whole SLIME/SWANK thing is like RPC too.
<Nilby>
If emacs was CL the whole SLIME/SWANK thing is like RPC too.
<beach>
Yes, and I am working (though not very hard at the moment) to get rid of that.
<beach>
Yes, and I am working (though not very hard at the moment) to get rid of that.
raeda_ has quit [Quit: Leaving]
raeda_ has quit [Quit: Leaving]
<Nilby>
Same. It's pretty long work.
<Nilby>
Same. It's pretty long work.
<beach>
It's just that I am busy with other things. But there might be some recent hope...
<beach>
It's just that I am busy with other things. But there might be some recent hope...
<beach>
It is not terribly complicated. I imagine SWANK/SLIME is way more complicated because of the need to encode everything on a wire protocol.
<beach>
It is not terribly complicated. I imagine SWANK/SLIME is way more complicated because of the need to encode everything on a wire protocol.
<Nilby>
Oh really. Activity in Climacs?
<Nilby>
Oh really. Activity in Climacs?
<beach>
On Second Climacs, yes.
<beach>
On Second Climacs, yes.
<Nilby>
Sadly I think the complexity in SWANK is there even without the RPC.
<Nilby>
Sadly I think the complexity in SWANK is there even without the RPC.
skapata has quit [Ping timeout: 265 seconds]
skapata has quit [Ping timeout: 265 seconds]
<Nilby>
Not to mention the parts that have been build into the implementations.
<Nilby>
Not to mention the parts that have been build into the implementations.
<beach>
Nilby: Oh? Why is that?
<beach>
Nilby: Oh? Why is that?
<Nilby>
Things like determining where some function/form/snippet really live in editing buffers, debugger breakpoints and stepping, etc.
<Nilby>
Things like determining where some function/form/snippet really live in editing buffers, debugger breakpoints and stepping, etc.
<fiddlerwoaroof>
beach: I really wonder what the "multiple dispatch" version of distributed computing is
<fiddlerwoaroof>
beach: I really wonder what the "multiple dispatch" version of distributed computing is
yconsulta has quit [Quit: Reconnecting]
yconsulta has quit [Quit: Reconnecting]
<beach>
fiddlerwoaroof: Yes, it makes my head hurt to think about it. Hence my reaction to "remote anything".
<beach>
fiddlerwoaroof: Yes, it makes my head hurt to think about it. Hence my reaction to "remote anything".
<fiddlerwoaroof>
Like, I wish I could define a "generic function" and have the compiler decide what to run on which machine
<fiddlerwoaroof>
Like, I wish I could define a "generic function" and have the compiler decide what to run on which machine
aartaka_d has joined #lisp
aartaka_d has joined #lisp
<beach>
Nilby: I see, yes. Part of the issue is the implementation of source tracking in the Common Lisp system.
<beach>
Nilby: I see, yes. Part of the issue is the implementation of source tracking in the Common Lisp system.
<Nilby>
beach: Nice. That does look like some improvements!
<Nilby>
beach: Nice. That does look like some improvements!
<beach>
Nilby: It is a start.
<beach>
Nilby: It is a start.
<fiddlerwoaroof>
There is already a programming system that is designed around the idea of "programming for the network": https://ballerina.io
<fiddlerwoaroof>
There is already a programming system that is designed around the idea of "programming for the network": https://ballerina.io
<fiddlerwoaroof>
But, it looks mostly like a typical new language, feature-wise
<fiddlerwoaroof>
But, it looks mostly like a typical new language, feature-wise
aartaka has quit [Ping timeout: 245 seconds]
aartaka has quit [Ping timeout: 245 seconds]
sincandes has joined #lisp
sincandes has joined #lisp
sincandes has quit [Remote host closed the connection]
sincandes has quit [Remote host closed the connection]
<fiddlerwoaroof>
I've been working on distributed systems of one form or another for the last several years, and I'm still dislike that we don't have any way to program the system as a whole, including things like allocating tasks to nodes.
<fiddlerwoaroof>
I've been working on distributed systems of one form or another for the last several years, and I'm still dislike that we don't have any way to program the system as a whole, including things like allocating tasks to nodes.
<beach>
Nilby: The other main stumbling block (other than the fact that I am busy with SICL) to significant progress on Second Climacs is that I need to figure out a way to represent indentation rules, now that we have much better knowledge of the role of different expressions in the buffer.
<beach>
Nilby: The other main stumbling block (other than the fact that I am busy with SICL) to significant progress on Second Climacs is that I need to figure out a way to represent indentation rules, now that we have much better knowledge of the role of different expressions in the buffer.
<stylewarning>
What's the simplest way to check that a symbol S is of a package named P? Anything simpler than (string= P (package-name (symbol-package S))) ?
<stylewarning>
What's the simplest way to check that a symbol S is of a package named P? Anything simpler than (string= P (package-name (symbol-package S))) ?
<fiddlerwoaroof>
Instead we have programs that run on each node and then things like Kubernetes manifests that describe how to run your program
<fiddlerwoaroof>
Instead we have programs that run on each node and then things like Kubernetes manifests that describe how to run your program
<beach>
(eq (symbol-package S) (find-package P))
<beach>
(eq (symbol-package S) (find-package P))
<stylewarning>
beach: that sounds better; thanks
<stylewarning>
beach: that sounds better; thanks
<beach>
Sure.
<beach>
Sure.
<stylewarning>
(I don't know why I had my doubts that the packages wouldn't be EQ)
<stylewarning>
(I don't know why I had my doubts that the packages wouldn't be EQ)
<beach>
Moi non plus.
<beach>
Moi non plus.
<Nilby>
beach: That's certainly something that could use work. I'm not sure if any software anywere (maybe except Zmacs) does indentation right.
<Nilby>
beach: That's certainly something that could use work. I'm not sure if any software anywere (maybe except Zmacs) does indentation right.
<beach>
Exactly. I kind of know what to do, but so far my attempts have resulted in lots of code duplication.
<beach>
Exactly. I kind of know what to do, but so far my attempts have resulted in lots of code duplication.
levity has joined #lisp
levity has joined #lisp
levity has quit [Client Quit]
levity has quit [Client Quit]
<fiddlerwoaroof>
For Javascript, I've been using a tool called prettier that basically parses your source code and then pretty prints it every time you save the buffer.
<fiddlerwoaroof>
For Javascript, I've been using a tool called prettier that basically parses your source code and then pretty prints it every time you save the buffer.
<fiddlerwoaroof>
It'd be really nice to have something like that for CL
<fiddlerwoaroof>
It'd be really nice to have something like that for CL
<beach>
Sort of. Comments need to be preserved though.
<beach>
Sort of. Comments need to be preserved though.
<fiddlerwoaroof>
Yeah, prettier only changes whitespace, basically (and incidental punctuation like translating " -> ' and adding semicolons)
<fiddlerwoaroof>
Yeah, prettier only changes whitespace, basically (and incidental punctuation like translating " -> ' and adding semicolons)
<beach>
The "parse result" feature of Eclector does that, so it's not a problem. But pretty-printing is too primitive. I don't see myself having an opinion on whether the programmers wants to insert newlines or not, for instance. So that needs to be preserved as well.
<beach>
The "parse result" feature of Eclector does that, so it's not a problem. But pretty-printing is too primitive. I don't see myself having an opinion on whether the programmers wants to insert newlines or not, for instance. So that needs to be preserved as well.
<fiddlerwoaroof>
So, I've found that the biggest advantage is that I can just type my code out in a line and it'll look nice after I save i
<fiddlerwoaroof>
So, I've found that the biggest advantage is that I can just type my code out in a line and it'll look nice after I save i
<fiddlerwoaroof>
it
<fiddlerwoaroof>
it
<fiddlerwoaroof>
So, things like adding new lines and spacing actually turn to be really useful
<fiddlerwoaroof>
So, things like adding new lines and spacing actually turn to be really useful
<beach>
But, yeah, my "solution" is similar in that it would compute the indentation, given that comments and newlines are preserved, and then indicate the result to the programmer.
<beach>
But, yeah, my "solution" is similar in that it would compute the indentation, given that comments and newlines are preserved, and then indicate the result to the programmer.
<fiddlerwoaroof>
Also, having a policy for those things helps minimize accidental diffs in version control
<fiddlerwoaroof>
Also, having a policy for those things helps minimize accidental diffs in version control
<beach>
Adding such a feature would then be almost trivial.
<beach>
Adding such a feature would then be almost trivial.
<fiddlerwoaroof>
The tool would be useful if only to correct peoples pastebin code when they ask for help :)
<fiddlerwoaroof>
The tool would be useful if only to correct peoples pastebin code when they ask for help :)
<fiddlerwoaroof>
You could have an IRC bot that automatically reformats pastes and then tells people to learn how to format their code
<fiddlerwoaroof>
You could have an IRC bot that automatically reformats pastes and then tells people to learn how to format their code
skips has joined #lisp
skips has joined #lisp
skips has quit [Quit: Reconnecting]
skips has quit [Quit: Reconnecting]
cchristiansen has quit [Remote host closed the connection]
cchristiansen has quit [Remote host closed the connection]
sternum has joined #lisp
sternum has joined #lisp
<beach>
Heh, good point!
<beach>
Heh, good point!
sternum has joined #lisp
sternum has joined #lisp
sternum has quit [Changing host]
sternum has quit [Changing host]
sternum has quit [Quit: Reconnecting]
sternum has quit [Quit: Reconnecting]
unfrocking has joined #lisp
unfrocking has joined #lisp
unfrocking has quit [Remote host closed the connection]
unfrocking has quit [Remote host closed the connection]
minis has joined #lisp
minis has joined #lisp
minis has joined #lisp
minis has joined #lisp
minis has quit [Changing host]
minis has quit [Changing host]
asarch has quit [Quit: Leaving]
asarch has quit [Quit: Leaving]
minis has quit [Client Quit]
minis has quit [Client Quit]
abhixec has joined #lisp
abhixec has joined #lisp
wormhole_ has joined #lisp
wormhole_ has joined #lisp
wormhole_ has quit [Quit: Reconnecting]
wormhole_ has quit [Quit: Reconnecting]
kslt1 has quit [Ping timeout: 240 seconds]
kslt1 has quit [Ping timeout: 240 seconds]
positives has joined #lisp
positives has joined #lisp
positives has quit [Client Quit]
positives has quit [Client Quit]
karlosz has quit [Quit: karlosz]
karlosz has quit [Quit: karlosz]
narimiran has joined #lisp
narimiran has joined #lisp
pankajsg has joined #lisp
pankajsg has joined #lisp
respected has joined #lisp
respected has joined #lisp
respected has quit [Quit: Reconnecting]
respected has quit [Quit: Reconnecting]
cchristiansen has joined #lisp
cchristiansen has joined #lisp
sapplicat has joined #lisp
sapplicat has joined #lisp
hendursa1 has quit [Ping timeout: 268 seconds]
hendursa1 has quit [Ping timeout: 268 seconds]
sapplicat has quit [Client Quit]
sapplicat has quit [Client Quit]
hendursa1 has joined #lisp
hendursa1 has joined #lisp
Oladon has quit [Quit: Leaving.]
Oladon has quit [Quit: Leaving.]
asarch has joined #lisp
asarch has joined #lisp
<asarch>
"All classes defined by means of defstruct are instances of the class structure-class." <- !
<asarch>
"All classes defined by means of defstruct are instances of the class structure-class." <- !
<beach>
So?
<beach>
So?
<asarch>
So, structures are *also* classes?
<asarch>
So, structures are *also* classes?
<beach>
Every Common Lisp object is an instance of a class.
<beach>
Every Common Lisp object is an instance of a class.
<beach>
Try (class-of 234)
<beach>
Try (class-of 234)
<asarch>
#<BUILT-IN-CLASS COMMON-LISP:FIXNUM>
<asarch>
#<BUILT-IN-CLASS COMMON-LISP:FIXNUM>
<beach>
See?
<beach>
See?
<beach>
Now try (class-of (class-of 234))
<beach>
Now try (class-of (class-of 234))
Holsteins has joined #lisp
Holsteins has joined #lisp
<asarch>
So, in theory, if I: (defclass point () ((x ... :accessor x))) and then (defstruct rect (p1 (make-instance 'point)) (p2 (make-instance 'point))) and then (defgeneric draw (instance)) (defmethod draw ((instance point)) ...) I could (let ((r (make-rect))) (draw r))?
<asarch>
So, in theory, if I: (defclass point () ((x ... :accessor x))) and then (defstruct rect (p1 (make-instance 'point)) (p2 (make-instance 'point))) and then (defgeneric draw (instance)) (defmethod draw ((instance point)) ...) I could (let ((r (make-rect))) (draw r))?
<moon-child>
asarch: yes, generics work for all types
<moon-child>
asarch: yes, generics work for all types
<beach>
Well, R is a RECT and not a point, and you have a method only for RECT.
<beach>
Well, R is a RECT and not a point, and you have a method only for RECT.
<beach>
But yes, a method can specialize to any class.
<beach>
But yes, a method can specialize to any class.
depiction has joined #lisp
depiction has joined #lisp
karlosz has joined #lisp
karlosz has joined #lisp
<beach>
Er, you have a method only for POINT.
<beach>
Er, you have a method only for POINT.
kslt1 has joined #lisp
kslt1 has joined #lisp
<asarch>
(defmethod draw ((instance rect)) (format t "Hello, from rect's draw!~%"))
<asarch>
(defmethod draw ((instance rect)) (format t "Hello, from rect's draw!~%"))
<beach>
No problem.
<beach>
No problem.
paul0 has quit [Ping timeout: 260 seconds]
paul0 has quit [Ping timeout: 260 seconds]
<moon-child>
asarch: you can even do this (defgeneric fac (x)) (defmethod fac ((x (eql 0))) 1) (defmethod fac (x) (* x (fac (1- x))))
<moon-child>
asarch: you can even do this (defgeneric fac (x)) (defmethod fac ((x (eql 0))) 1) (defmethod fac (x) (* x (fac (1- x))))
* asarch
is looking for the diagram about Common Lisp's classes...
* asarch
is looking for the diagram about Common Lisp's classes...
<moon-child>
(though you can't use arbitrary predicates, only eql)
<moon-child>
(though you can't use arbitrary predicates, only eql)
depiction has quit [Changing host]
depiction has joined #lisp
depiction has quit [Changing host]
depiction has joined #lisp
<beach>
asarch: A class is a Common Lisp object, and since every Common Lisp object is an instance of a class, so is the class BUILT-IN-CLASS, and it happens to be an instance of the class STANDARD-CLASS.
<beach>
asarch: A class is a Common Lisp object, and since every Common Lisp object is an instance of a class, so is the class BUILT-IN-CLASS, and it happens to be an instance of the class STANDARD-CLASS.
consolation has quit [Remote host closed the connection]
consolation has quit [Remote host closed the connection]
<asarch>
standard-class and structure-class are at the same level
<asarch>
standard-class and structure-class are at the same level
gaqwas has joined #lisp
gaqwas has joined #lisp
gaqwas has joined #lisp
gaqwas has joined #lisp
vutral_ has quit [Quit: Connection closed for inactivity]
vutral_ has quit [Quit: Connection closed for inactivity]
silverware has joined #lisp
silverware has joined #lisp
silverware has quit [Quit: Reconnecting]
silverware has quit [Quit: Reconnecting]
shka_ has joined #lisp
shka_ has joined #lisp
mbomba has quit [Quit: WeeChat 3.1]
mbomba has quit [Quit: WeeChat 3.1]
<beach>
asarch: What do you conclude from that fact?
<beach>
asarch: What do you conclude from that fact?
<asarch>
Well, you said is actually danger to use structures because you can't change them later
<asarch>
Well, you said is actually danger to use structures because you can't change them later
<beach>
Yes, STRUCTURE-CLASS is defined so that modifications do not have defined semantics.
<beach>
Yes, STRUCTURE-CLASS is defined so that modifications do not have defined semantics.
karlosz has quit [Quit: karlosz]
karlosz has quit [Quit: karlosz]
<asarch>
But in terms of "comfort", I think is much faster just (point-x instance) than (slot-value instance 'x)
<asarch>
But in terms of "comfort", I think is much faster just (point-x instance) than (slot-value instance 'x)
<beach>
Nobody is stopping you.
<beach>
Nobody is stopping you.
Kirov has joined #lisp
Kirov has joined #lisp
<asarch>
I had problems with the accessors of the classes of my HTML generator because I had some other auxiliary functions named like them
<asarch>
I had problems with the accessors of the classes of my HTML generator because I had some other auxiliary functions named like them
<beach>
You started by asking why CLOS is needed at all, and it was explained to you. Without CLOS you could not have defined the generic functions and the methods in your example. And if you want to quit your Common Lisp image each time you redefine a struct, that's up to you.
<beach>
You started by asking why CLOS is needed at all, and it was explained to you. Without CLOS you could not have defined the generic functions and the methods in your example. And if you want to quit your Common Lisp image each time you redefine a struct, that's up to you.
<fiddlerwoaroof>
I almost never use slot-value
<fiddlerwoaroof>
I almost never use slot-value
<fiddlerwoaroof>
explicitly, at least
<fiddlerwoaroof>
explicitly, at least
<asarch>
I had to rewrite them adding the suffix '-taco' so the code would work
<asarch>
I had to rewrite them adding the suffix '-taco' so the code would work
<beach>
asarch: That is your problem, not that of CLOS.
<beach>
asarch: That is your problem, not that of CLOS.
<fiddlerwoaroof>
Yeah, I just do (%slot-name :reader slot-name ...)
<fiddlerwoaroof>
Yeah, I just do (%slot-name :reader slot-name ...)
<beach>
I recommend you use accessors rather than slot-value.
<beach>
I recommend you use accessors rather than slot-value.
<fiddlerwoaroof>
Then (slot-name instance)
<fiddlerwoaroof>
Then (slot-name instance)
Kirov has quit [Quit: Reconnecting]
Kirov has quit [Quit: Reconnecting]
<asarch>
"I recommend you use accessors rather than slot-value." <- But what if you have "normal" functions named like those accessors?
<asarch>
"I recommend you use accessors rather than slot-value." <- But what if you have "normal" functions named like those accessors?
<asarch>
WARNING: redefining COMMON-LISP-USER::DRAW in DEFUN
<asarch>
WARNING: redefining COMMON-LISP-USER::DRAW in DEFUN
<mfiano>
By using slot-value you are bypassing any protocols put in place. It is therefor a good reason to use different symbols for slot names than accessors, (such as prefixing with % and not exporting as mentioned) so consumers of a package cannot veer far from the intended use.
<mfiano>
By using slot-value you are bypassing any protocols put in place. It is therefor a good reason to use different symbols for slot names than accessors, (such as prefixing with % and not exporting as mentioned) so consumers of a package cannot veer far from the intended use.
<mfiano>
If you are building up some object by calling slot-value, you are preventing users from extending the behavior with method qualifiers.
<mfiano>
If you are building up some object by calling slot-value, you are preventing users from extending the behavior with method qualifiers.
sparer has joined #lisp
sparer has joined #lisp
<asarch>
I thought this was like C++: class point {public: void taco();}; and class rect {public: void taco();}; and even void taco();
<asarch>
I thought this was like C++: class point {public: void taco();}; and class rect {public: void taco();}; and even void taco();
sparer has quit [Remote host closed the connection]
sparer has quit [Remote host closed the connection]
<asarch>
So the compiler knows what 'taco' I am actually using
<asarch>
So the compiler knows what 'taco' I am actually using
<mfiano>
I would suggest reading AMOP, or better, the HyperSpec. CLOS is an integral part of the language, and not understanding how to use it, is really hurting you in regard to the gestalt of the language.
<mfiano>
I would suggest reading AMOP, or better, the HyperSpec. CLOS is an integral part of the language, and not understanding how to use it, is really hurting you in regard to the gestalt of the language.
<asarch>
Yeah, you're right. I am in a blind point
<asarch>
Yeah, you're right. I am in a blind point
bitmapper has quit [Quit: Connection closed for inactivity]
bitmapper has quit [Quit: Connection closed for inactivity]
karlosz has joined #lisp
karlosz has joined #lisp
<beach>
asarch: Why on earth would you deliberately choose to have a slot accessor that has the same name as a function that you also named yourself?
<beach>
asarch: Why on earth would you deliberately choose to have a slot accessor that has the same name as a function that you also named yourself?
CrazyEddy has joined #lisp
CrazyEddy has joined #lisp
CrazyEddy has quit [Remote host closed the connection]
CrazyEddy has quit [Remote host closed the connection]
<beach>
... and then complain about it.
<beach>
... and then complain about it.
<asarch>
Well, for example, every HTML element has a 'value' property, so, the normal would be to have an accessor with that name so one could: (setf (value instance) "...")
<asarch>
Well, for example, every HTML element has a 'value' property, so, the normal would be to have an accessor with that name so one could: (setf (value instance) "...")
<beach>
That's fine.
<beach>
That's fine.
CrazyEddy has joined #lisp
CrazyEddy has joined #lisp
CrazyEddy has joined #lisp
CrazyEddy has joined #lisp
CrazyEddy has quit [Changing host]
CrazyEddy has quit [Changing host]
<mfiano>
I am not understanding the issue, really, but it sounds like a lesson in separation of concerns and packages.
<mfiano>
I am not understanding the issue, really, but it sounds like a lesson in separation of concerns and packages.
CrazyEddy has quit [Client Quit]
CrazyEddy has quit [Client Quit]
<beach>
asarch: Why on earth would you deliberately start by defining an ordinary function with a name that you know you will later want to use as the name of a slot accessor?
<beach>
asarch: Why on earth would you deliberately start by defining an ordinary function with a name that you know you will later want to use as the name of a slot accessor?
<beach>
... and then complain about it.
<beach>
... and then complain about it.
<asarch>
And also, in the code I use and auxiliary function called 'value' written months before this idea called value that actually (cdr (assoc "..." (cdr (car _parse)) :test #'string=)) in the "POST" method controllers
<asarch>
And also, in the code I use and auxiliary function called 'value' written months before this idea called value that actually (cdr (assoc "..." (cdr (car _parse)) :test #'string=)) in the "POST" method controllers
<asarch>
I am not complain about it, I'm just was asking
<asarch>
I am not complain about it, I'm just was asking
<beach>
The answer is "don't do that".
<beach>
The answer is "don't do that".
<asarch>
Packages, right. I thought packages was for very big code
<asarch>
Packages, right. I thought packages was for very big code
<mfiano>
No, they are a complement to good protocol design, which is a complement to good software design.
<mfiano>
No, they are a complement to good protocol design, which is a complement to good software design.
<beach>
asarch: You should create a coherent interface known as a "protocol" to your data structures.
<beach>
asarch: You should create a coherent interface known as a "protocol" to your data structures.
<asarch>
Ok. structures, don't. classes, yes. If your accessors chokes with other functions, keep them in a package. Clear!
<asarch>
Ok. structures, don't. classes, yes. If your accessors chokes with other functions, keep them in a package. Clear!
<beach>
asarch: I tend to divide my programs into "modules" where each module has a separate directory, a separate ASDF system file, and a separate package.
<beach>
asarch: I tend to divide my programs into "modules" where each module has a separate directory, a separate ASDF system file, and a separate package.
galex-713 has quit [Ping timeout: 265 seconds]
galex-713 has quit [Ping timeout: 265 seconds]
<beach>
That organization makes it easy then to define a protocol for each module.
<beach>
That organization makes it easy then to define a protocol for each module.
<mfiano>
Structures are fine to use in low-level code that won't be changing. It is usually done much later in development if one needs that though, as they hurt interactive development.
<mfiano>
Structures are fine to use in low-level code that won't be changing. It is usually done much later in development if one needs that though, as they hurt interactive development.
<asarch>
And the HTML form generator is not big enough to use the sophisticated things like a protocol for it. It is just one function that concatenate lots of strings
<asarch>
And the HTML form generator is not big enough to use the sophisticated things like a protocol for it. It is just one function that concatenate lots of strings
Klopsch has quit [Remote host closed the connection]
Klopsch has quit [Remote host closed the connection]
Klopsch has joined #lisp
Klopsch has joined #lisp
<beach>
That sounds like a lame excuse to avoid learning about modular programming.
<beach>
That sounds like a lame excuse to avoid learning about modular programming.
<fiddlerwoaroof>
This is the sort of thinking that leads to all the messes I have to deal with at work :)
<fiddlerwoaroof>
This is the sort of thinking that leads to all the messes I have to deal with at work :)
<beach>
fiddlerwoaroof: YES!!!!
<beach>
fiddlerwoaroof: YES!!!!
<mfiano>
Oh yes indeed.
<mfiano>
Oh yes indeed.
<asarch>
Following the three virtues of a programmer :-P
<asarch>
Following the three virtues of a programmer :-P
srandon111 has joined #lisp
srandon111 has joined #lisp
galex-713 has joined #lisp
galex-713 has joined #lisp
<fiddlerwoaroof>
I don't think people really understand how much thinking like "I just need to get this done" ends up costing companies
<fiddlerwoaroof>
I don't think people really understand how much thinking like "I just need to get this done" ends up costing companies
<srandon111>
hello all, i am new to lisp, and i still have to choose the lisp flavor i like, i tried different lisps/schemes, but now i would like some reccomendations to some lisp which is efficient and good to create command line apps, i need to generate standalone executables for different OS... what lisp would be better for these purposes ?
<srandon111>
hello all, i am new to lisp, and i still have to choose the lisp flavor i like, i tried different lisps/schemes, but now i would like some reccomendations to some lisp which is efficient and good to create command line apps, i need to generate standalone executables for different OS... what lisp would be better for these purposes ?
<fiddlerwoaroof>
Partly because management has no choice but to trust the programmers they hire to act professionally and in the best interst of the company
<fiddlerwoaroof>
Partly because management has no choice but to trust the programmers they hire to act professionally and in the best interst of the company
<beach>
fiddlerwoaroof: Certainly, CTOs don't, or they would do something about it.
<beach>
fiddlerwoaroof: Certainly, CTOs don't, or they would do something about it.
<beach>
srandon111: This channel is dedicated to Common Lisp, so that's the recommendation you would probably get.
<beach>
srandon111: This channel is dedicated to Common Lisp, so that's the recommendation you would probably get.
<mfiano>
srandon111: This channel is about Common Lisp specifically. If you are looking for a dialect to choose, we can only speak of that. You may find ##lisp more on-topic for discussing others
<mfiano>
srandon111: This channel is about Common Lisp specifically. If you are looking for a dialect to choose, we can only speak of that. You may find ##lisp more on-topic for discussing others
<srandon111>
mfiano, ok so does common lisp satisfy my requirements ?
<srandon111>
mfiano, ok so does common lisp satisfy my requirements ?
<beach>
srandon111: SBCL is an implementation of Common Lisp that generates fast code.
<beach>
srandon111: SBCL is an implementation of Common Lisp that generates fast code.
<mfiano>
Yes
<srandon111>
i mean is it possible with common lisp to generate standalone executables ?
<mfiano>
Yes
<srandon111>
i mean is it possible with common lisp to generate standalone executables ?
<mfiano>
Most Lisps fit your criteria
<mfiano>
Most Lisps fit your criteria
<beach>
srandon111: But the executable is kind of big.
<beach>
srandon111: But the executable is kind of big.
<srandon111>
beach, how can i compile to a standalone executable with no external libraries need ?
<srandon111>
beach, how can i compile to a standalone executable with no external libraries need ?
<srandon111>
like a sort of statically linked exe
<srandon111>
like a sort of statically linked exe
<mfiano>
It depends on which implementation of COmmon Lisp. That is not something the language itself provides.
<mfiano>
It depends on which implementation of COmmon Lisp. That is not something the language itself provides.
<beach>
srandon111: I never generate executables, so I don't know.
<beach>
srandon111: I never generate executables, so I don't know.
<flip214>
srandon111: completely avoiding libpthread and libc etc. isn't really that practical...
<flip214>
srandon111: completely avoiding libpthread and libc etc. isn't really that practical...
<srandon111>
mfiano, SBCL
<srandon111>
mfiano, SBCL
<mfiano>
save-lisp-and-die
<mfiano>
save-lisp-and-die
<flip214>
but there are patches floating around for SBCL, ISTR. And I guess you can also recompile ECL to a static binary.
<flip214>
but there are patches floating around for SBCL, ISTR. And I guess you can also recompile ECL to a static binary.
<srandon111>
mfiano, ?
<srandon111>
mfiano, ?
<mfiano>
That is the function to search for in the manual
<mfiano>
That is the function to search for in the manual
<srandon111>
mfiano, i mean i have this common lisp script, what sbcl command should i use ?
<srandon111>
mfiano, i mean i have this common lisp script, what sbcl command should i use ?
<Bike>
i suppose you might want to look at README.Debian there, mrtndk
<Bike>
i suppose you might want to look at README.Debian there, mrtndk
choegusung has joined #lisp
choegusung has joined #lisp
<MrtnDk[m]>
Right
<MrtnDk[m]>
Right
<Bike>
i've never used lisp through a package manager, so i'm afraid i'm not much help here
<Bike>
i've never used lisp through a package manager, so i'm afraid i'm not much help here
fgurh457 has quit [Remote host closed the connection]
fgurh457 has quit [Remote host closed the connection]
choegusung has quit [Quit: leaving]
choegusung has quit [Quit: leaving]
<etimmons>
Mrtn Dk: debian's Quicklisp package only includes the Quicklisp installer. You need to load /usr/share/cl-quicklisp/quicklisp.lisp and follow the instructions
<etimmons>
Mrtn Dk: debian's Quicklisp package only includes the Quicklisp installer. You need to load /usr/share/cl-quicklisp/quicklisp.lisp and follow the instructions
<flip214>
and a version from 2015 at that
<flip214>
and a version from 2015 at that
<Xach>
flip214: the newest version is from 2015
<Xach>
flip214: the newest version is from 2015
<Xach>
the installer does not change often
<Xach>
the installer does not change often
ggoes has quit [Quit: WeeChat 2.3]
ggoes has quit [Quit: WeeChat 2.3]
ggoes has joined #lisp
ggoes has joined #lisp
<jackdaniel>
I stick to an advice presented by Xach at els in london (I think): curl … | sh # :)
<jackdaniel>
I stick to an advice presented by Xach at els in london (I think): curl … | sh # :)
<flip214>
jackdaniel: "sudo sh" is the canonical way
<flip214>
jackdaniel: "sudo sh" is the canonical way
<flip214>
or pipe directly into ansible or so...
<flip214>
or pipe directly into ansible or so...
<jackdaniel>
sounds like fun
<jackdaniel>
sounds like fun
vutral_ has quit [Quit: Connection closed for inactivity]
vutral_ has quit [Quit: Connection closed for inactivity]
<MrtnDk[m]>
eric You're right. I did that. I think it's finally installed.
<MrtnDk[m]>
eric You're right. I did that. I think it's finally installed.
<MrtnDk[m]>
Thank you everyone.
<MrtnDk[m]>
Thank you everyone.
<MrtnDk[m]>
Now, my next problem. I can load Alexandra, it seems; however (iota 5) still gives me "Undefined function".
<MrtnDk[m]>
Now, my next problem. I can load Alexandra, it seems; however (iota 5) still gives me "Undefined function".
<jackdaniel>
try (alexandria:iota 5)
<jackdaniel>
try (alexandria:iota 5)
<MrtnDk[m]>
jackdaniel That works! Thanks. However, please tell me, that there is a way to avoid typing alexandria each time ...
<MrtnDk[m]>
jackdaniel That works! Thanks. However, please tell me, that there is a way to avoid typing alexandria each time ...
<jackdaniel>
(import 'alexandria:iota)
<jackdaniel>
(import 'alexandria:iota)
<jackdaniel>
then (iota 5)
<jackdaniel>
then (iota 5)
<jackdaniel>
that's for a repl
<jackdaniel>
that's for a repl
<flip214>
MrtnDk[m]: define your own package that uses alexandria. (defpackage :mrtndk (:use :cl :alexandria)) (in-package :mrtndk) (print (iota 4))
<flip214>
MrtnDk[m]: define your own package that uses alexandria. (defpackage :mrtndk (:use :cl :alexandria)) (in-package :mrtndk) (print (iota 4))
<jackdaniel>
but when you define a package, you could a) put the USE clause in it [not very good, because the library you depend on may break your own system in the future when it adds a conflicting symbol to its export] b) add a package local nickname to alexandria
<jackdaniel>
but when you define a package, you could a) put the USE clause in it [not very good, because the library you depend on may break your own system in the future when it adds a conflicting symbol to its export] b) add a package local nickname to alexandria
<jackdaniel>
b) is an extension (as in -not part of the standard) but it allows you to refer alexandria symbols like (a:iota 5))
<jackdaniel>
b) is an extension (as in -not part of the standard) but it allows you to refer alexandria symbols like (a:iota 5))
<MrtnDk[m]>
Can I add it to the startup file like ql? That would be even easier I guess.
<MrtnDk[m]>
Can I add it to the startup file like ql? That would be even easier I guess.
<jackdaniel>
adding some repl utilities to a startup file is fine, however that will work only for that use case (repl that is, when you are in the appropriate package), when you write software you usually want to define your own package
<jackdaniel>
adding some repl utilities to a startup file is fine, however that will work only for that use case (repl that is, when you are in the appropriate package), when you write software you usually want to define your own package
<jackdaniel>
I'm personally using net.didierverna.clon for cli programs
<jackdaniel>
I'm personally using net.didierverna.clon for cli programs
louis771 has quit [Quit: My M1 has gone to sleep. ZZZzzz…]
louis771 has quit [Quit: My M1 has gone to sleep. ZZZzzz…]
louis771 has joined #lisp
louis771 has joined #lisp
<splittist>
Style question: (if condition (progn ...) (progn ...)) or (cond (condition ...) (t ...)) ? The former, presumably, using the normal reasoning about being explicit.
<splittist>
Style question: (if condition (progn ...) (progn ...)) or (cond (condition ...) (t ...)) ? The former, presumably, using the normal reasoning about being explicit.
<splittist>
(and taking into account that a couple of raw progns is unusual)
<splittist>
(and taking into account that a couple of raw progns is unusual)
<beach>
I do the former, but I agree it's not ideal.
<beach>
I do the former, but I agree it's not ideal.
<splittist>
Or if** (:
<splittist>
Or if** (:
<beach>
Heh.
<beach>
Heh.
<beach>
The latter saves a few characters of indentation unless you stick a newline after PROGN in the former.
<beach>
The latter saves a few characters of indentation unless you stick a newline after PROGN in the former.
<beach>
But then you lose two lines instead.
<beach>
But then you lose two lines instead.
<beach>
Frequently, there is a LET or a SETF in the branches, so you can remove the PROGN.
<beach>
Frequently, there is a LET or a SETF in the branches, so you can remove the PROGN.
<Josh_2>
I also do the former
<Josh_2>
I also do the former
skapata has joined #lisp
skapata has joined #lisp
<splittist>
Yes. It's just really for the unusual case that some serial operation is being done that doesn't deserve its own function and doesn't introduce some branch-local state.
<splittist>
Yes. It's just really for the unusual case that some serial operation is being done that doesn't deserve its own function and doesn't introduce some branch-local state.
<beach>
Right, and I agree that the argument is the "most specific construct".
<beach>
Right, and I agree that the argument is the "most specific construct".
<jcowan>
I on the other hand always use cond when either the then-expr or the else-expr is at all complex.
<jcowan>
I on the other hand always use cond when either the then-expr or the else-expr is at all complex.
luni has left #lisp [#lisp]
luni has left #lisp [#lisp]
<jcowan>
I came up with the idea of making safe readtable changes that affect the file they are in by putting calls to set-[dispatching]-macro-character into #. Is that a standard idea? Or is there some reason why it won't work?
<jcowan>
I came up with the idea of making safe readtable changes that affect the file they are in by putting calls to set-[dispatching]-macro-character into #. Is that a standard idea? Or is there some reason why it won't work?
<Xach>
jcowan: that is not an uncommon idea.
<Xach>
jcowan: that is not an uncommon idea.
<jcowan>
Thanks. Is it a bad idea?
<jcowan>
Thanks. Is it a bad idea?
<Xach>
jcowan: I don't think so - unconstrained read-time evaluation is not something you always want. But I haven't solicited other opinions on the topic, either, so there may be some drawback of which I'm unaware.
<Xach>
jcowan: I don't think so - unconstrained read-time evaluation is not something you always want. But I haven't solicited other opinions on the topic, either, so there may be some drawback of which I'm unaware.
<Xach>
I last used it to trap #. when processing asdf files with READ.
<Xach>
I last used it to trap #. when processing asdf files with READ.
tiwEllien has joined #lisp
tiwEllien has joined #lisp
<Xach>
It used to be quite common to use #. to load files to populate system metadata
<Xach>
It used to be quite common to use #. to load files to populate system metadata
<Xach>
I don't think it's as common now but maybe my sampling is off
<Xach>
I don't think it's as common now but maybe my sampling is off
Major_Biscuit has quit [Quit: WeeChat 3.0.1]
Major_Biscuit has quit [Quit: WeeChat 3.0.1]
<jcowan>
Well, I think a #. form should have as few effects as possible on principle.
<jcowan>
Well, I think a #. form should have as few effects as possible on principle.
<jcowan>
Which is not to say zero.
<jcowan>
Which is not to say zero.
Major_Biscuit has joined #lisp
Major_Biscuit has joined #lisp
<semz>
Is that guaranteed to only affect the current file?
<semz>
Is that guaranteed to only affect the current file?
<jcowan>
Do you have a view on the #.(values) case? Returning NIL is strictly ANSI conformant, but many Lisps return nothing at all, which is clearly useful.
<jcowan>
Do you have a view on the #.(values) case? Returning NIL is strictly ANSI conformant, but many Lisps return nothing at all, which is clearly useful.
<Xach>
semz: *READTABLE* is bound around LOAD, and you can use that to build some guarantees (it doesn't guarantee it by itself)
<Xach>
semz: *READTABLE* is bound around LOAD, and you can use that to build some guarantees (it doesn't guarantee it by itself)
<Xach>
jcowan: i do not have an opinion
<Xach>
jcowan: i do not have an opinion
<semz>
Ah, as usual I looked in the wrong place.
<semz>
Ah, as usual I looked in the wrong place.
anon9002 has joined #lisp
anon9002 has joined #lisp
<anon9002>
Is there a standard function for converting a list of characters to string? Something like list->string in Scheme.
<anon9002>
Is there a standard function for converting a list of characters to string? Something like list->string in Scheme.
<flip214>
anon9002: (concatenate 'string #\f #\o #\o), potentially using apply. Or FORMAT with an iteration.
<flip214>
anon9002: (concatenate 'string #\f #\o #\o), potentially using apply. Or FORMAT with an iteration.
<Shinmera>
(map 'string #'identity list)
<Shinmera>
(map 'string #'identity list)
<Shinmera>
or (coerce list 'string)
<Shinmera>
or (coerce list 'string)
<flip214>
or WITH-OUTPUT-TO-STRING and print everything into it.
<flip214>
or WITH-OUTPUT-TO-STRING and print everything into it.
<flip214>
CONCATENATE and the MAP and COERCE only work with pure lists of characters; FORMAT would also take numbers, strings, etc. and concatenate them up.
<flip214>
CONCATENATE and the MAP and COERCE only work with pure lists of characters; FORMAT would also take numbers, strings, etc. and concatenate them up.
<jcowan>
anon9002: Coerce is magic, except that it's pre-CLOS and not extensible to any other types than are specifically allowed. But it's the first place to look for Scheme foo->bar procedures.
<jcowan>
anon9002: Coerce is magic, except that it's pre-CLOS and not extensible to any other types than are specifically allowed. But it's the first place to look for Scheme foo->bar procedures.
<anon9002>
flip214, Shinmera, jcowan: Thanks!
<anon9002>
flip214, Shinmera, jcowan: Thanks!
asdflkj has quit [Ping timeout: 260 seconds]
asdflkj has quit [Ping timeout: 260 seconds]
<jcowan>
It would have been nice if the ANSI WG had redefined coerce (and several others) as GFs.
<jcowan>
It would have been nice if the ANSI WG had redefined coerce (and several others) as GFs.
<Bike>
it gets a little awkward with general types, unfortunately. the sequences extension has to do stuff with prototype instances to make GFs make sense
<Bike>
it gets a little awkward with general types, unfortunately. the sequences extension has to do stuff with prototype instances to make GFs make sense
asdflkj has joined #lisp
asdflkj has joined #lisp
cantstanya has quit [Ping timeout: 268 seconds]
cantstanya has quit [Ping timeout: 268 seconds]
cantstanya has joined #lisp
cantstanya has joined #lisp
<Josh_2>
Gnuxie[m]: You worked with no-defun on the decentralized hash table? I don't remember the library name, but was it based on Matrix?
<Josh_2>
Gnuxie[m]: You worked with no-defun on the decentralized hash table? I don't remember the library name, but was it based on Matrix?
Klopsch has quit [Remote host closed the connection]
Klopsch has quit [Remote host closed the connection]
Klopsch has joined #lisp
Klopsch has joined #lisp
<beach>
Josh_2: no-defun-allowed hangs out in #sicl mostly in case you have questions.
<beach>
Josh_2: no-defun-allowed hangs out in #sicl mostly in case you have questions.
toorevitimirp has quit [Remote host closed the connection]
toorevitimirp has quit [Remote host closed the connection]
<beach>
But it is 3am in Melbourne so you may have to wait a few hours.
<beach>
But it is 3am in Melbourne so you may have to wait a few hours.
rogersm has joined #lisp
rogersm has joined #lisp
Klopsch has quit [Ping timeout: 246 seconds]
Klopsch has quit [Ping timeout: 246 seconds]
toorevitimirp has joined #lisp
toorevitimirp has joined #lisp
elusive has joined #lisp
elusive has joined #lisp
raeda has joined #lisp
raeda has joined #lisp
toorevitimirp has quit [Remote host closed the connection]
toorevitimirp has quit [Remote host closed the connection]
madage has quit [Ping timeout: 268 seconds]
madage has quit [Ping timeout: 268 seconds]
varjag has quit [Quit: ERC (IRC client for Emacs 26.3)]
varjag has quit [Quit: ERC (IRC client for Emacs 26.3)]
<jcowan>
coerce can be done with instance types, so the method for doing list->string would have a signature of ((list list) (((eql string) _).
<jcowan>
coerce can be done with instance types, so the method for doing list->string would have a signature of ((list list) (((eql string) _).
madage has joined #lisp
madage has joined #lisp
theothornhill has quit [Ping timeout: 260 seconds]
theothornhill has quit [Ping timeout: 260 seconds]
<beach>
By "instance type", do you mean "EQL specializer"?
<beach>
By "instance type", do you mean "EQL specializer"?
OlCe has quit [Ping timeout: 245 seconds]
OlCe has quit [Ping timeout: 245 seconds]
<Bike>
that wouldn't cover other specialized arrays that don't have types that are symbols
<Bike>
that wouldn't cover other specialized arrays that don't have types that are symbols
<Bike>
or ones with lengths, though that's kind of a stupid feature anyway
<Bike>
or ones with lengths, though that's kind of a stupid feature anyway
<Gnuxie[m]>
Josh_2: you mean cl-decentralise2? It's not based on matrix but there is an experiment program called 'Catfood' on the gitlab that's like matrix
<Gnuxie[m]>
Josh_2: you mean cl-decentralise2? It's not based on matrix but there is an experiment program called 'Catfood' on the gitlab that's like matrix
<Gnuxie[m]>
But no-defun-allowed is the person to talk to about it, I'm mostly just credited for ideas and discussion, she does all the real work
<Gnuxie[m]>
But no-defun-allowed is the person to talk to about it, I'm mostly just credited for ideas and discussion, she does all the real work
admich has quit [Quit: ERC (IRC client for Emacs 27.1)]
admich has quit [Quit: ERC (IRC client for Emacs 27.1)]
<jcowan>
beach: yes, (a designator for) a type that includes a single instance.
<jcowan>
beach: yes, (a designator for) a type that includes a single instance.
admich`` has left #lisp ["ERC (IRC client for Emacs 27.1)"]
admich`` has left #lisp ["ERC (IRC client for Emacs 27.1)"]
lonjil has quit [Quit: Quit.]
lonjil has quit [Quit: Quit.]
lonjil has joined #lisp
lonjil has joined #lisp
<Gnuxie[m]>
Josh_2: i'm curious why you are asking, I assume you want something 'built on matrix' rather than based on?
<Gnuxie[m]>
Josh_2: i'm curious why you are asking, I assume you want something 'built on matrix' rather than based on?
<Gnuxie[m]>
Maybe we should take this to #matrix-dev
<Gnuxie[m]>
Maybe we should take this to #matrix-dev
rogersm has quit [Quit: Leaving...]
rogersm has quit [Quit: Leaving...]
<MrtnDk[m]>
Given a list of strings, how do you get the index of a given string? It seems that "position" more or less exclusively deals with integers and/or chars.
<MrtnDk[m]>
Given a list of strings, how do you get the index of a given string? It seems that "position" more or less exclusively deals with integers and/or chars.
<Josh_2>
Gnuxie[m]: I was basically looking for a hash table implementation that uses Matrx for storage
<Josh_2>
Gnuxie[m]: I was basically looking for a hash table implementation that uses Matrx for storage
<Josh_2>
I was just curious if that is what you two had done
<Josh_2>
I was just curious if that is what you two had done
<Josh_2>
I suppose I can implement my own version if needed
<Josh_2>
I suppose I can implement my own version if needed
<Gnuxie[m]>
Josh_2: ok nope, that's pretty much what state events are for anyways
<Gnuxie[m]>
Josh_2: ok nope, that's pretty much what state events are for anyways
<Josh_2>
yeh, if needed I will just make my own means of storing data in a nice way on Matrix
<Josh_2>
yeh, if needed I will just make my own means of storing data in a nice way on Matrix
<MrtnDk[m]>
Josh_2 Ah, I think I finally get it! Thank thee.
<MrtnDk[m]>
Josh_2 Ah, I think I finally get it! Thank thee.
OlCe has quit [Ping timeout: 246 seconds]
OlCe has quit [Ping timeout: 246 seconds]
<Josh_2>
MrtnDk[m]: :test and :key are very very useful :P
<Josh_2>
MrtnDk[m]: :test and :key are very very useful :P
<MrtnDk[m]>
Key?
<MrtnDk[m]>
Key?
<Josh_2>
Yes, say you have a list of objects and the objects have an accessor like "user-id" then you could do (position <user-id-string> <list-of-objects> :test #'string= :key #'user-id )
<Josh_2>
Yes, say you have a list of objects and the objects have an accessor like "user-id" then you could do (position <user-id-string> <list-of-objects> :test #'string= :key #'user-id )
<jasom>
minion: memo for pillton: I *can* make nyaml a streaming parser (it would mean dumping esrap, but the parts of esrap I use aren't terribly hard to copy). It would still process an entire document at a time though, as I don't really care to find all the places where backtracking can't happen
<jasom>
minion: memo for pillton: I *can* make nyaml a streaming parser (it would mean dumping esrap, but the parts of esrap I use aren't terribly hard to copy). It would still process an entire document at a time though, as I don't really care to find all the places where backtracking can't happen
<minion>
Remembered. I'll tell pillton when he/she/it next speaks.
<minion>
Remembered. I'll tell pillton when he/she/it next speaks.
galex-713 has joined #lisp
galex-713 has joined #lisp
<Josh_2>
and then each element in <list-of-objects> would make its comparison against (user-id <element>)
<Josh_2>
and then each element in <list-of-objects> would make its comparison against (user-id <element>)
cantstanya has quit [Remote host closed the connection]
cantstanya has quit [Remote host closed the connection]
theothornhill has joined #lisp
theothornhill has joined #lisp
cantstanya has joined #lisp
cantstanya has joined #lisp
louis771 has quit [Quit: My M1 has gone to sleep. ZZZzzz…]
louis771 has quit [Quit: My M1 has gone to sleep. ZZZzzz…]
hiroaki has quit [Ping timeout: 265 seconds]
hiroaki has quit [Ping timeout: 265 seconds]
theothornhill has quit [Ping timeout: 240 seconds]
theothornhill has quit [Ping timeout: 240 seconds]
waleee-cl has joined #lisp
waleee-cl has joined #lisp
matryoshka has quit [Read error: Connection reset by peer]
matryoshka has quit [Read error: Connection reset by peer]
matryoshka has joined #lisp
matryoshka has joined #lisp
drl has quit [Quit: Leaving]
drl has quit [Quit: Leaving]
<Alfr>
jcowan, if you take 2.4.8.6's first sentence and the glossary entry for evaluate, you get a justification for #.(values) expanding to nothing. The problem here is that it contradicts the definite article in "the object resulting from". OTOH, 3.1.7 could justify nil, if you assume implementations are prohibited to use e.g. multiple-value-list to explicitly distinguish between the two cases of "returning zero or more values" (cf. glossary evaluate).
<Alfr>
jcowan, if you take 2.4.8.6's first sentence and the glossary entry for evaluate, you get a justification for #.(values) expanding to nothing. The problem here is that it contradicts the definite article in "the object resulting from". OTOH, 3.1.7 could justify nil, if you assume implementations are prohibited to use e.g. multiple-value-list to explicitly distinguish between the two cases of "returning zero or more values" (cf. glossary evaluate).
hiroaki has joined #lisp
hiroaki has joined #lisp
<Alfr>
I think 2.4.8.6 isn't specific enough to prescribe what #.FOO should read to, in case FOO evaluates to no values. Maybe just chalk it up as just an other UB?
<Alfr>
I think 2.4.8.6 isn't specific enough to prescribe what #.FOO should read to, in case FOO evaluates to no values. Maybe just chalk it up as just an other UB?
cosimone has joined #lisp
cosimone has joined #lisp
aindilis` has quit [Remote host closed the connection]
aindilis` has quit [Remote host closed the connection]
aindilis has joined #lisp
aindilis has joined #lisp
Klopsch has joined #lisp
Klopsch has joined #lisp
<jcowan>
It all hangs on the first "the" in "#.foo is read as the object resulting from the evaluation of the object represented by foo." Normally there is an implicature there which means a single object is required. But that is a very thin argument, especially when CLtL1 said otherwise and there is no issue that changed this AFAICT.
<jcowan>
It all hangs on the first "the" in "#.foo is read as the object resulting from the evaluation of the object represented by foo." Normally there is an implicature there which means a single object is required. But that is a very thin argument, especially when CLtL1 said otherwise and there is no issue that changed this AFAICT.
<jcowan>
(Still, it's better than the fate of Roger Casement, who was hanged on a comma.)
<jcowan>
(Still, it's better than the fate of Roger Casement, who was hanged on a comma.)
madage has quit [Ping timeout: 268 seconds]
madage has quit [Ping timeout: 268 seconds]
<splittist>
The dictionary entry for VALUES (the function/accessor) describes it as returning "the objects" (which can be no values); the glossary entry for 'multiple values' includes none, obviously. It seems justifiable (if not, perhaps, compulsory?) to read "the object" as "the object (if any)", at least.
<splittist>
The dictionary entry for VALUES (the function/accessor) describes it as returning "the objects" (which can be no values); the glossary entry for 'multiple values' includes none, obviously. It seems justifiable (if not, perhaps, compulsory?) to read "the object" as "the object (if any)", at least.
<jcowan>
wut, nobody wants to know about Roger Casement?
<jcowan>
wut, nobody wants to know about Roger Casement?
* jcowan
whines
* jcowan
whines
<beach>
jcowan: Wikipedia.
<beach>
jcowan: Wikipedia.
mindCrime_ has joined #lisp
mindCrime_ has joined #lisp
<jcowan>
Sure.
<jcowan>
Sure.
madage has joined #lisp
madage has joined #lisp
DHARMAKAYA has joined #lisp
DHARMAKAYA has joined #lisp
Klopsch has quit []
Klopsch has quit []
elusive has quit [Quit: Leaving]
elusive has quit [Quit: Leaving]
jonatack has joined #lisp
jonatack has joined #lisp
mindCrime_ has quit [Ping timeout: 240 seconds]
mindCrime_ has quit [Ping timeout: 240 seconds]
zooey_ has joined #lisp
zooey_ has joined #lisp
OlCe has joined #lisp
OlCe has joined #lisp
zooey has quit [Ping timeout: 268 seconds]
zooey has quit [Ping timeout: 268 seconds]
mister_m has quit [Ping timeout: 240 seconds]
mister_m has quit [Ping timeout: 240 seconds]
varjag has joined #lisp
varjag has joined #lisp
theothornhill has joined #lisp
theothornhill has joined #lisp
<Alfr>
jcowan, and obviously allowing #.(values) to be read to nothing is the more useful, but as it's only a opinion, we'll have to wait for the next iteration of the spec to codify it. ;)
<Alfr>
jcowan, and obviously allowing #.(values) to be read to nothing is the more useful, but as it's only a opinion, we'll have to wait for the next iteration of the spec to codify it. ;)
galex-713 has quit [Read error: Connection reset by peer]
galex-713 has quit [Read error: Connection reset by peer]
ramus has quit [Ping timeout: 264 seconds]
ramus has quit [Ping timeout: 264 seconds]
ramus has joined #lisp
ramus has joined #lisp
galex-713 has joined #lisp
galex-713 has joined #lisp
Major_Biscuit has quit [Ping timeout: 240 seconds]
Major_Biscuit has quit [Ping timeout: 240 seconds]
theothornhill has quit [Ping timeout: 246 seconds]
theothornhill has quit [Ping timeout: 246 seconds]
cosimone has quit [Remote host closed the connection]
cosimone has quit [Remote host closed the connection]
cosimone has joined #lisp
cosimone has joined #lisp
theothornhill has joined #lisp
theothornhill has joined #lisp
rumbler31 has quit [Remote host closed the connection]
rumbler31 has quit [Remote host closed the connection]
rumbler31 has joined #lisp
rumbler31 has joined #lisp
ljavorsk has quit [Ping timeout: 276 seconds]
ljavorsk has quit [Ping timeout: 276 seconds]
cosimone has quit [Remote host closed the connection]
cosimone has quit [Remote host closed the connection]
cosimone has joined #lisp
cosimone has joined #lisp
cosimone has quit [Remote host closed the connection]
cosimone has quit [Remote host closed the connection]
louis771 has joined #lisp
louis771 has joined #lisp
cosimone has joined #lisp
cosimone has joined #lisp
aartaka has quit [Ping timeout: 240 seconds]
aartaka has quit [Ping timeout: 240 seconds]
cosimone has quit [Remote host closed the connection]
cosimone has quit [Remote host closed the connection]
theothornhill has quit [Remote host closed the connection]
theothornhill has quit [Remote host closed the connection]
cosimone has joined #lisp
cosimone has joined #lisp
theothornhill has joined #lisp
theothornhill has joined #lisp
theothornhill has quit [Ping timeout: 240 seconds]
theothornhill has quit [Ping timeout: 240 seconds]
rogersm has joined #lisp
rogersm has joined #lisp
tomaw has quit [Quit: Quitting]
tomaw has quit [Quit: Quitting]
cosimone has quit [Remote host closed the connection]
cosimone has quit [Remote host closed the connection]
cosimone has joined #lisp
cosimone has joined #lisp
Oladon has joined #lisp
Oladon has joined #lisp
tomaw has joined #lisp
tomaw has joined #lisp
fuzzypixelz has joined #lisp
fuzzypixelz has joined #lisp
theothornhill has joined #lisp
theothornhill has joined #lisp
aindilis has quit [Ping timeout: 246 seconds]
aindilis has quit [Ping timeout: 246 seconds]
<fuzzypixelz>
hello. I want to see for myself what makes Lisp different than C and Haskell. But I'm not sure which Lisp I should go with! I'm torn between Clojure, CL and Scheme (of course I'm open to others)
<fuzzypixelz>
hello. I want to see for myself what makes Lisp different than C and Haskell. But I'm not sure which Lisp I should go with! I'm torn between Clojure, CL and Scheme (of course I'm open to others)
theothor` has joined #lisp
theothor` has joined #lisp
theothornhill has quit [Remote host closed the connection]
theothornhill has quit [Remote host closed the connection]
<gabc>
fuzzypixelz: depends on what type of stuff you want to do, Scheme is quite easy to learn and has easy to setup implementation (racket for instance), and Common Lisp is 'better' for 'bigger' projects
<gabc>
fuzzypixelz: depends on what type of stuff you want to do, Scheme is quite easy to learn and has easy to setup implementation (racket for instance), and Common Lisp is 'better' for 'bigger' projects
<Xach>
This channel is for common lisp
<Xach>
This channel is for common lisp
<contrapunctus>
fuzzypixelz: try ##lisp for all dialects.
<contrapunctus>
fuzzypixelz: try ##lisp for all dialects.
<fuzzypixelz>
thank you contrapunctus
<fuzzypixelz>
thank you contrapunctus
theothor` has quit [Ping timeout: 246 seconds]
theothor` has quit [Ping timeout: 246 seconds]
aartaka has joined #lisp
aartaka has joined #lisp
cosimone has quit [Remote host closed the connection]
cosimone has quit [Remote host closed the connection]
OlCe has quit [Ping timeout: 246 seconds]
OlCe has quit [Ping timeout: 246 seconds]
<Josh_2>
Obviously you should try Common Lisp
<Josh_2>
Obviously you should try Common Lisp
<fuzzypixelz>
Josh_2: may I ask why?
<fuzzypixelz>
Josh_2: may I ask why?
<Xach>
It is the greatest and best Lisp
<Xach>
It is the greatest and best Lisp
<White_Flame>
clojure = lisp + java, with heavily opinionated design on immutability; scheme = academically simplified lisp; common lisp = the one used in industry when lisp was hottest
<White_Flame>
clojure = lisp + java, with heavily opinionated design on immutability; scheme = academically simplified lisp; common lisp = the one used in industry when lisp was hottest
karlosz has joined #lisp
karlosz has joined #lisp
<fiddlerwoaroof>
When I want to make sure certain systems are loaded in one-off scripts, I do something like #.(progn (ql:quickload ...) nil)
<fiddlerwoaroof>
When I want to make sure certain systems are loaded in one-off scripts, I do something like #.(progn (ql:quickload ...) nil)
theothor` has joined #lisp
theothor` has joined #lisp
cosimone has joined #lisp
cosimone has joined #lisp
<Xach>
fiddlerwoaroof: i would use eval-when instead of that.
<Xach>
fiddlerwoaroof: i would use eval-when instead of that.
<fiddlerwoaroof>
eval-when is loooong ;)
<fiddlerwoaroof>
eval-when is loooong ;)
<Xach>
yes.
<Xach>
yes.
<fiddlerwoaroof>
I would use (serapeum:eval-always ...) but there's a chicken-and-egg problem here
<fiddlerwoaroof>
I would use (serapeum:eval-always ...) but there's a chicken-and-egg problem here
<White_Flame>
you could skip the #. and do it toplevel, assuming script-only usage
<White_Flame>
you could skip the #. and do it toplevel, assuming script-only usage
<fiddlerwoaroof>
Also, the semantics of read vs. eval-when aren't always obvious to me: #. forces evaluation by READ which makes the order more explicit
<fiddlerwoaroof>
Also, the semantics of read vs. eval-when aren't always obvious to me: #. forces evaluation by READ which makes the order more explicit
<Josh_2>
fuzzypixelz: what Xach said
<Josh_2>
fuzzypixelz: what Xach said
fuzzypixelz has quit [Ping timeout: 264 seconds]
fuzzypixelz has quit [Ping timeout: 264 seconds]
theothor` has quit [Ping timeout: 245 seconds]
theothor` has quit [Ping timeout: 245 seconds]
<White_Flame>
fiddlerwoaroof: except READ isn't called when reloading from fasl
<White_Flame>
fiddlerwoaroof: except READ isn't called when reloading from fasl
<fiddlerwoaroof>
White_Flame: by "script", I mean "something I run with C-c C-k in emacs"
<fiddlerwoaroof>
White_Flame: by "script", I mean "something I run with C-c C-k in emacs"
<fiddlerwoaroof>
And, I wouldn't recommend this generally, I have a folder of little proofs of concepts, and I get tired tracking down all the systems I need to load to make it work
<fiddlerwoaroof>
And, I wouldn't recommend this generally, I have a folder of little proofs of concepts, and I get tired tracking down all the systems I need to load to make it work
srji_ has quit [Ping timeout: 264 seconds]
srji_ has quit [Ping timeout: 264 seconds]
<aeth>
White_Flame: top-level in a script without #. (or EVAL-WHEN, I guess) won't work because the symbol won't be available. You could use multiple files, or you could use UIOP:SYMBOL-CALL to get around that.
<aeth>
White_Flame: top-level in a script without #. (or EVAL-WHEN, I guess) won't work because the symbol won't be available. You could use multiple files, or you could use UIOP:SYMBOL-CALL to get around that.
<aeth>
White_Flame: With a script entry point, you aren't reloading from FASL. It's often just used on CI, where you won't even have anything cached.
<aeth>
White_Flame: With a script entry point, you aren't reloading from FASL. It's often just used on CI, where you won't even have anything cached.
<White_Flame>
assuming LOAD from a non-compiled .lisp file, is it guaranteed that each form is individually evaluated before the next one is READ? tends to wokr that way
<White_Flame>
assuming LOAD from a non-compiled .lisp file, is it guaranteed that each form is individually evaluated before the next one is READ? tends to wokr that way
<aeth>
The file is run in stages.
<aeth>
The file is run in stages.
<aeth>
So if you just naively put the QL at the start, it wouldn't run until run time, making the symbol unavailable at read time
<aeth>
So if you just naively put the QL at the start, it wouldn't run until run time, making the symbol unavailable at read time
<aeth>
In fact, I think you might need #. because EVAL-WHEN isn't doing it at read time either, is it?
<aeth>
In fact, I think you might need #. because EVAL-WHEN isn't doing it at read time either, is it?
karlosz has quit [Quit: karlosz]
karlosz has quit [Quit: karlosz]
<White_Flame>
yeah, pretty sure this will work with LOAD
<White_Flame>
yeah, pretty sure this will work with LOAD
<White_Flame>
as per the spec
<White_Flame>
as per the spec
<White_Flame>
in fact, the presence of IN-PACKAGE demands handling the form before any further symbols are even READ
<White_Flame>
in fact, the presence of IN-PACKAGE demands handling the form before any further symbols are even READ
karlosz has joined #lisp
karlosz has joined #lisp
<aeth>
"Everything in-package does is also performed at compile time if the call appears as a top level form."
<aeth>
"Everything in-package does is also performed at compile time if the call appears as a top level form."
<aeth>
IN-PACKAGE is special.
<aeth>
IN-PACKAGE is special.
<White_Flame>
now, while that can be done before execution time, LOAD does work with this specific example
<White_Flame>
now, while that can be done before execution time, LOAD does work with this specific example
theothor` has joined #lisp
theothor` has joined #lisp
fuzzypixelz has joined #lisp
fuzzypixelz has joined #lisp
<White_Flame>
it obviously wouldn't with C-c C-k because of the separate compilation step
<White_Flame>
it obviously wouldn't with C-c C-k because of the separate compilation step
<White_Flame>
and "If the file is a source file and the implementation chooses to perform implicit compilation, load must recognize top level forms as described in Section 3.2.3.1 (Processing of Top Level Forms) and arrange for each top level form to be executed before beginning implicit compilation of the next."
<White_Flame>
and "If the file is a source file and the implementation chooses to perform implicit compilation, load must recognize top level forms as described in Section 3.2.3.1 (Processing of Top Level Forms) and arrange for each top level form to be executed before beginning implicit compilation of the next."
<White_Flame>
still not 100% solid proof, but again, runtime seems to have always worked that way
<White_Flame>
still not 100% solid proof, but again, runtime seems to have always worked that way
fuzzypixelz has quit [Client Quit]
fuzzypixelz has quit [Client Quit]
<White_Flame>
"load sequentially executes each form it encounters in the file named by filespec." what's the definition of "encounter"? probably more related to READ than the post-compilation step
<White_Flame>
"load sequentially executes each form it encounters in the file named by filespec." what's the definition of "encounter"? probably more related to READ than the post-compilation step
<jcowan>
I also note that it is still true that a reader macro can return 0 or 1 values.
<jcowan>
I also note that it is still true that a reader macro can return 0 or 1 values.
<White_Flame>
#+ and #- return nothing at all as well, so this would be symmetric with that
<White_Flame>
#+ and #- return nothing at all as well, so this would be symmetric with that
<White_Flame>
*can return
<White_Flame>
*can return
johnjay has quit [Ping timeout: 265 seconds]
johnjay has quit [Ping timeout: 265 seconds]
johnjay has joined #lisp
johnjay has joined #lisp
srandon111 has quit [Quit: leaving]
srandon111 has quit [Quit: leaving]
rumbler31 has quit [Remote host closed the connection]
rumbler31 has quit [Remote host closed the connection]
rumbler31 has joined #lisp
rumbler31 has joined #lisp
Lord_of_Life_ has joined #lisp
Lord_of_Life_ has joined #lisp
Lord_of_Life has quit [Ping timeout: 276 seconds]
Lord_of_Life has quit [Ping timeout: 276 seconds]
Spawns_Carpeting has quit [Quit: Connection closed]
Spawns_Carpeting has quit [Quit: Connection closed]
karlosz has joined #lisp
karlosz has joined #lisp
anon9002 has quit [Quit: leaving]
anon9002 has quit [Quit: leaving]
Lord_of_Life_ is now known as Lord_of_Life
Lord_of_Life_ is now known as Lord_of_Life
srandon111 has joined #lisp
srandon111 has joined #lisp
theothor` has joined #lisp
theothor` has joined #lisp
<fiddlerwoaroof>
It just occurred to me that I could add to my "repl utils" system a reader macro for the macro-characters reserved for users in the standard readtable
<fiddlerwoaroof>
It just occurred to me that I could add to my "repl utils" system a reader macro for the macro-characters reserved for users in the standard readtable
<fiddlerwoaroof>
I think I'd use #{}, probably, that expands to (eval-when (...) )
<fiddlerwoaroof>
I think I'd use #{}, probably, that expands to (eval-when (...) )
aartaka_d has joined #lisp
aartaka_d has joined #lisp
<fiddlerwoaroof>
Doesn't help with the --no-userinit case, but I only really do that when I'm doing things "for real" anyways
<fiddlerwoaroof>
Doesn't help with the --no-userinit case, but I only really do that when I'm doing things "for real" anyways
rogersm has quit [Quit: Leaving...]
rogersm has quit [Quit: Leaving...]
aartaka has quit [Ping timeout: 265 seconds]
aartaka has quit [Ping timeout: 265 seconds]
<fiddlerwoaroof>
Maybe #? and force it to be a single form
<fiddlerwoaroof>
Maybe #? and force it to be a single form
Jachy has joined #lisp
Jachy has joined #lisp
Oladon has quit [Quit: Leaving.]
Oladon has quit [Quit: Leaving.]
Alfr has quit [Quit: Leaving]
Alfr has quit [Quit: Leaving]
asarch has joined #lisp
asarch has joined #lisp
cage_ has joined #lisp
cage_ has joined #lisp
karlosz has quit [Ping timeout: 240 seconds]
karlosz has quit [Ping timeout: 240 seconds]
Alfr has joined #lisp
Alfr has joined #lisp
warweasle has quit [Quit: see ya later.]
warweasle has quit [Quit: see ya later.]
karlosz has joined #lisp
karlosz has joined #lisp
caret has joined #lisp
caret has joined #lisp
caret has quit [Read error: Connection reset by peer]
caret has quit [Read error: Connection reset by peer]
cosimone has quit [Remote host closed the connection]
cosimone has quit [Remote host closed the connection]
pankajsg has quit [Ping timeout: 256 seconds]
pankajsg has quit [Ping timeout: 256 seconds]
aartaka_d has quit [Read error: Connection reset by peer]
aartaka_d has quit [Read error: Connection reset by peer]
aartaka has joined #lisp
aartaka has joined #lisp
nitrowheels has joined #lisp
nitrowheels has joined #lisp
supercoven has quit [Ping timeout: 240 seconds]
supercoven has quit [Ping timeout: 240 seconds]
anticrisis has joined #lisp
anticrisis has joined #lisp
asarch_ has joined #lisp
asarch_ has joined #lisp
cosimone has joined #lisp
cosimone has joined #lisp
asarch has quit [Ping timeout: 265 seconds]
asarch has quit [Ping timeout: 265 seconds]
asarch_ has quit [Quit: Leaving]
asarch_ has quit [Quit: Leaving]
<Kingsy>
anyone in here use vlime with neovim nightly?
<Kingsy>
anyone in here use vlime with neovim nightly?
<Kingsy>
I am having a strange problem with the autocomplete flashes under the cursor but vanishes straight away.
<Kingsy>
I am having a strange problem with the autocomplete flashes under the cursor but vanishes straight away.
akoana has joined #lisp
akoana has joined #lisp
<fiddlerwoaroof>
Kingsy: when I used vim, I always used slimv + vanilla vim
<fiddlerwoaroof>
Kingsy: when I used vim, I always used slimv + vanilla vim
<fiddlerwoaroof>
neovim had a bunch of issues with slimv
<fiddlerwoaroof>
neovim had a bunch of issues with slimv
<fiddlerwoaroof>
If the developers of vlime don't use neovim, there might be something similar going on
<fiddlerwoaroof>
If the developers of vlime don't use neovim, there might be something similar going on
<Kingsy>
tbh I have a few questions about vlime. if anyone is about and fancies answering some. like for example. to offer autocomplete on a function that is included via asdf / quicklisp do you need to run ql:quickload into the REPL first? if not how else will it know about the function?
<Kingsy>
tbh I have a few questions about vlime. if anyone is about and fancies answering some. like for example. to offer autocomplete on a function that is included via asdf / quicklisp do you need to run ql:quickload into the REPL first? if not how else will it know about the function?
<Kingsy>
fiddlerwoaroof: yeah. I am hoping not because I really like nightly.
<Kingsy>
fiddlerwoaroof: yeah. I am hoping not because I really like nightly.
<Kingsy>
yeah I was using slimv but I didnt like a few things about it
<Kingsy>
yeah I was using slimv but I didnt like a few things about it
<fiddlerwoaroof>
Kingsy: yes, swank can only offer completions for loaded systems
<fiddlerwoaroof>
Kingsy: yes, swank can only offer completions for loaded systems
<Kingsy>
makes sense.
<Kingsy>
makes sense.
<fiddlerwoaroof>
Although, in theory, one could extend it to somehow cache completions and attempt to load the system that contains a particular symbol
<fiddlerwoaroof>
Although, in theory, one could extend it to somehow cache completions and attempt to load the system that contains a particular symbol
<Kingsy>
I don't mind running the quickloads just understanding that I need to. it does make sense.
<Kingsy>
I don't mind running the quickloads just understanding that I need to. it does make sense.
<fiddlerwoaroof>
So, fwiw, I translated my vim config to evil-mode over the course of a couple days and have used emacs ever since
<fiddlerwoaroof>
So, fwiw, I translated my vim config to evil-mode over the course of a couple days and have used emacs ever since
louis771 has quit [Quit: My M1 has gone to sleep. ZZZzzz…]
louis771 has quit [Quit: My M1 has gone to sleep. ZZZzzz…]
<Kingsy>
yeah I have been using vim too long to move to emacs.
<Kingsy>
yeah I have been using vim too long to move to emacs.
<Kingsy>
I am sure emacs is better.. much better for lisp. but I just cant make the switch at this point.
<Kingsy>
I am sure emacs is better.. much better for lisp. but I just cant make the switch at this point.
<fiddlerwoaroof>
I thought that too :)
<fiddlerwoaroof>
I thought that too :)
<Kingsy>
haha
<Kingsy>
haha
louis771 has joined #lisp
louis771 has joined #lisp
<Kingsy>
flip214: you about? I know your a vlime user!! :D
<Kingsy>
flip214: you about? I know your a vlime user!! :D
narimiran has quit [Ping timeout: 264 seconds]
narimiran has quit [Ping timeout: 264 seconds]
<Kingsy>
I'll strip back ALL my plugins and see if I still get the issue.
<Kingsy>
I'll strip back ALL my plugins and see if I still get the issue.
<Kingsy>
need to do that before I can raise a bug on vlime anyway
<Kingsy>
need to do that before I can raise a bug on vlime anyway
lottaquestions has quit [Remote host closed the connection]
lottaquestions has quit [Remote host closed the connection]
lottaquestions has joined #lisp
lottaquestions has joined #lisp
villanella has quit [Ping timeout: 260 seconds]
villanella has quit [Ping timeout: 260 seconds]
jonatack has quit [Remote host closed the connection]
jonatack has quit [Remote host closed the connection]
louis771 has quit [Quit: My M1 has gone to sleep. ZZZzzz…]
louis771 has quit [Quit: My M1 has gone to sleep. ZZZzzz…]
jonatack has joined #lisp
jonatack has joined #lisp
Alfr has quit [Quit: Leaving]
Alfr has quit [Quit: Leaving]
ebrasca has joined #lisp
ebrasca has joined #lisp
<Kingsy>
lol I don't even get autocomplete by default.
<Kingsy>
lol I don't even get autocomplete by default.
mindCrime_ has joined #lisp
mindCrime_ has joined #lisp
cage_ has quit [Quit: Leaving]
cage_ has quit [Quit: Leaving]
rgherdt has quit [Remote host closed the connection]
rgherdt has quit [Remote host closed the connection]
rgherdt has joined #lisp
rgherdt has joined #lisp
<Kingsy>
so its compe that breaks vlime autocomplete.
<Kingsy>
so its compe that breaks vlime autocomplete.
pve has quit [Quit: leaving]
pve has quit [Quit: leaving]
theothor` has quit [Ping timeout: 240 seconds]
theothor` has quit [Ping timeout: 240 seconds]
jonatack_ has joined #lisp
jonatack_ has joined #lisp
mindCrime_ has quit [Ping timeout: 260 seconds]
mindCrime_ has quit [Ping timeout: 260 seconds]
louis771 has joined #lisp
louis771 has joined #lisp
cosimone has quit [Remote host closed the connection]
cosimone has quit [Remote host closed the connection]
mindCrime_ has joined #lisp
mindCrime_ has joined #lisp
<mfiano>
vlime works fine with neovim, even nightly. this issue might be with compe
<mfiano>
vlime works fine with neovim, even nightly. this issue might be with compe
karlosz has quit [Quit: karlosz]
karlosz has quit [Quit: karlosz]
* mfiano
only recently started using compe, and haven't done much CL in vim to notice any issue
* mfiano
only recently started using compe, and haven't done much CL in vim to notice any issue
louis771 has quit [Client Quit]
louis771 has quit [Client Quit]
jonatack has quit [Ping timeout: 260 seconds]
jonatack has quit [Ping timeout: 260 seconds]
aartaka has quit [Ping timeout: 246 seconds]
aartaka has quit [Ping timeout: 246 seconds]
louis771 has joined #lisp
louis771 has joined #lisp
GoZoner has joined #lisp
GoZoner has joined #lisp
GoZoner has quit [Client Quit]
GoZoner has quit [Client Quit]
<Kingsy>
mfiano: I have just disabled everything and the flashing has stopped BUT I am not seeing proper autocomplete. for example if I type (ql: I don't see anything on quicklisp...
<Kingsy>
mfiano: I have just disabled everything and the flashing has stopped BUT I am not seeing proper autocomplete. for example if I type (ql: I don't see anything on quicklisp...
<Kingsy>
mfiano: do you have anything special in your compe config?
<Kingsy>
mfiano: do you have anything special in your compe config?
louis771 has quit [Client Quit]
louis771 has quit [Client Quit]
<Kingsy>
yeah its just autocompleting from the buffer.
<Kingsy>
yeah its just autocompleting from the buffer.
<mfiano>
Despite how much more I like vi than Emacs, it doesn't make a whole lot of sense for me to restrict the language that much, so I can't offer much help.
<mfiano>
Despite how much more I like vi than Emacs, it doesn't make a whole lot of sense for me to restrict the language that much, so I can't offer much help.
kevingal has quit [Ping timeout: 265 seconds]
kevingal has quit [Ping timeout: 265 seconds]
louis771 has joined #lisp
louis771 has joined #lisp
<mfiano>
sjl's config would be the one to look at though. He's been a vlime user for years on neovim.
<mfiano>
sjl's config would be the one to look at though. He's been a vlime user for years on neovim.
Alfr has joined #lisp
Alfr has joined #lisp
luckless has quit [Remote host closed the connection]
luckless has quit [Remote host closed the connection]
luckless has joined #lisp
luckless has joined #lisp
nitrowheels has quit [Quit: Leaving]
nitrowheels has quit [Quit: Leaving]
shka_ has quit [Ping timeout: 265 seconds]
shka_ has quit [Ping timeout: 265 seconds]
<Kingsy>
sjl: you about by chance?
<Kingsy>
sjl: you about by chance?
<Kingsy>
its 100% compe, if you enable source.omni you get autocomplete but it vanishes as soon as it appears. it like "flashes" on the screen
<Kingsy>
its 100% compe, if you enable source.omni you get autocomplete but it vanishes as soon as it appears. it like "flashes" on the screen
tiwEllien has quit [Ping timeout: 260 seconds]
tiwEllien has quit [Ping timeout: 260 seconds]
sjl has quit [Ping timeout: 260 seconds]
sjl has quit [Ping timeout: 260 seconds]
theothor` has joined #lisp
theothor` has joined #lisp
cchristiansen has joined #lisp
cchristiansen has joined #lisp
DHARMAKAYA has quit [Quit: Turning off a portion of this simulation.]
DHARMAKAYA has quit [Quit: Turning off a portion of this simulation.]
Inline has quit [Ping timeout: 265 seconds]
Inline has quit [Ping timeout: 265 seconds]
Lord_of_Life has quit [Ping timeout: 264 seconds]
Lord_of_Life has quit [Ping timeout: 264 seconds]
<SAL9000>
There was this nice CL library which provided an improved DESCRIBE -- what was it? can't remember the name, and Google is not helping...
<SAL9000>
There was this nice CL library which provided an improved DESCRIBE -- what was it? can't remember the name, and Google is not helping...
ft has quit [Ping timeout: 246 seconds]
ft has quit [Ping timeout: 246 seconds]
ft has joined #lisp
ft has joined #lisp
DHARMAKAYA has joined #lisp
DHARMAKAYA has joined #lisp
surabax has quit [Quit: Leaving]
surabax has quit [Quit: Leaving]
karlosz has joined #lisp
karlosz has joined #lisp
karlosz has quit [Client Quit]
karlosz has quit [Client Quit]
elderK has quit [Quit: Connection closed for inactivity]
elderK has quit [Quit: Connection closed for inactivity]
theothor` has quit [Remote host closed the connection]
theothor` has quit [Remote host closed the connection]
<jasom>
Is it required that one do a load-op before a program-op in ECL? If I don't do that I get bizarre errors about packages not existing...
<jasom>
Is it required that one do a load-op before a program-op in ECL? If I don't do that I get bizarre errors about packages not existing...
<jasom>
nevermind; user-headspace error plus quicklisp
<jasom>
nevermind; user-headspace error plus quicklisp
Spawns_Carpeting has joined #lisp
Spawns_Carpeting has joined #lisp
<jasom>
okay, reduced test-case; the output of program-op on the following gives an error about a missing SPLIT-SEQUENCE package: (asdf:defsystem #:empty.big :depends-on ("drakma") :entry-point uiop:quit :components nil)
<jasom>
okay, reduced test-case; the output of program-op on the following gives an error about a missing SPLIT-SEQUENCE package: (asdf:defsystem #:empty.big :depends-on ("drakma") :entry-point uiop:quit :components nil)
<jasom>
*running* the output of program-op that is
<jasom>
*running* the output of program-op that is
<phoe>
I think this is an ECL-specific issue, I remember it being mentioned earlier
<phoe>
I think this is an ECL-specific issue, I remember it being mentioned earlier
<jasom>
I agree it's ECL-specific since I have no problems on sbcl or ccl
<jasom>
I agree it's ECL-specific since I have no problems on sbcl or ccl
akoana has quit [Quit: leaving]
akoana has quit [Quit: leaving]
contrapunctus has left #lisp ["Disconnected: closed"]
contrapunctus has left #lisp ["Disconnected: closed"]
contrapunctus has joined #lisp
contrapunctus has joined #lisp
srandon111 has quit [Quit: leaving]
srandon111 has quit [Quit: leaving]
<MrtnDk[m]>
It's quick lisp slime to be preferred over regular slime?
<MrtnDk[m]>
It's quick lisp slime to be preferred over regular slime?
<phoe>
MrtnDk[m]: depends; many people use quicklisp-slime-helper exclusively to ensure that their slime/swank autoupdates with quicklisp
<phoe>
MrtnDk[m]: depends; many people use quicklisp-slime-helper exclusively to ensure that their slime/swank autoupdates with quicklisp
<jmercouris>
jackdaniel: are there security considerations for running version of ECL 16?
<jmercouris>
jackdaniel: are there security considerations for running version of ECL 16?
<phoe>
this avoids collisions with elpa or melpa or wherever which can cause the slime/swank versions to mismatch
<phoe>
this avoids collisions with elpa or melpa or wherever which can cause the slime/swank versions to mismatch
<fiddlerwoaroof>
MrtnDk[m]: yeah quicklisp-slime-helper is really useful
<fiddlerwoaroof>
MrtnDk[m]: yeah quicklisp-slime-helper is really useful
<jmercouris>
the only thing I can discern from the release notes is that random was buggy
<jmercouris>
the only thing I can discern from the release notes is that random was buggy
ljavorsk has joined #lisp
ljavorsk has joined #lisp
thmprover has joined #lisp
thmprover has joined #lisp
varjag has quit [Quit: ERC (IRC client for Emacs 28.0.50)]
varjag has quit [Quit: ERC (IRC client for Emacs 28.0.50)]
random-nick has quit [Ping timeout: 276 seconds]
random-nick has quit [Ping timeout: 276 seconds]
<alanz>
which is most widely used: slime or sly?
<alanz>
which is most widely used: slime or sly?
Oladon has joined #lisp
Oladon has joined #lisp
<moon-child>
slime
<moon-child>
slime
<alanz>
That is the impression I am coming to. I currently have sly set up
<alanz>
That is the impression I am coming to. I currently have sly set up
<Xach>
I like using sly, it has some very nice features.
<Xach>
I like using sly, it has some very nice features.
<Xach>
I have also used slime for a long time
<Xach>
I have also used slime for a long time
<alanz>
and what would you recommend for someone reasonably fresh to the ecosystem?
<alanz>
and what would you recommend for someone reasonably fresh to the ecosystem?
<mfiano>
I prefer the added features and bugfixes of Sly myself
<mfiano>
I prefer the added features and bugfixes of Sly myself
perrier-jouet has joined #lisp
perrier-jouet has joined #lisp
igemnace has joined #lisp
igemnace has joined #lisp
louis771 has quit [Quit: My M1 has gone to sleep. ZZZzzz…]
louis771 has quit [Quit: My M1 has gone to sleep. ZZZzzz…]
<Xach>
alanz: i think it's somewhat easier to find someone to help with slime problems
<Xach>
alanz: i think it's somewhat easier to find someone to help with slime problems