jackdaniel changed the topic of #lisp to: Common Lisp, the #1=(programmable . #1#) programming language | <https://irclog.tymoon.eu/freenode/%23lisp> <https://irclog.whitequark.org/lisp> <http://ccl.clozure.com/irc-logs/lisp/> | offtopic --> #lispcafe
<p_l> this will include original EMACS
Jesin has joined #lisp
v3ga has joined #lisp
v3ga has quit [Client Quit]
<p_l> while somewhat more complex, I recommend prepping the KA-10 version, with Knight TV and vector display
xkapastel has quit [Quit: Connection closed for inactivity]
<gendl> so should I be using (openmcl-socket:make-socket :connect :passive :local-address "::" ...) to get an ipv6 socket on CCL/linux?
luckless_ has quit [Ping timeout: 240 seconds]
edgar-rft has quit [Quit: Leaving]
rumbler31 has joined #lisp
mrcom has quit [Quit: This computer has gone to sleep]
mrcom has joined #lisp
mrcom has quit [Client Quit]
mrcom has joined #lisp
mrcom has quit [Client Quit]
mrcom has joined #lisp
v3ga has joined #lisp
mrcom has quit [Client Quit]
mrcom has joined #lisp
luckless has joined #lisp
bsd4me has joined #lisp
torbo has quit [Remote host closed the connection]
madage has quit [Ping timeout: 240 seconds]
shifty has quit [Ping timeout: 240 seconds]
shifty has joined #lisp
markong has quit [Ping timeout: 264 seconds]
nicktick has quit [Ping timeout: 260 seconds]
wxie has joined #lisp
justache has quit [Ping timeout: 260 seconds]
_whitelogger has joined #lisp
justache has joined #lisp
rumbler31 has quit [Remote host closed the connection]
rumbler31 has joined #lisp
madage has joined #lisp
sm2n has quit [Remote host closed the connection]
contrapunctus has left #lisp ["Disconnected: Replaced by new connection"]
contrapunctus has joined #lisp
cjb has joined #lisp
EvW1 has quit [Ping timeout: 260 seconds]
zigpaw has quit [Ping timeout: 240 seconds]
Oladon has quit [Quit: Leaving.]
zigpaw has joined #lisp
cosimone has quit [Remote host closed the connection]
cosimone has joined #lisp
orivej_ has quit [Ping timeout: 240 seconds]
wxie has quit [Ping timeout: 240 seconds]
hendursaga has quit [Remote host closed the connection]
hendursaga has joined #lisp
gko_ has joined #lisp
nicktick has joined #lisp
orivej has joined #lisp
avicenna has quit [Ping timeout: 260 seconds]
drmeister has quit [Ping timeout: 244 seconds]
Kaisyu has quit [Ping timeout: 260 seconds]
jlpeters has quit [Ping timeout: 260 seconds]
jcowan has quit [Ping timeout: 240 seconds]
bytesighs has quit [Ping timeout: 246 seconds]
physpi has quit [Ping timeout: 244 seconds]
jlpeters has joined #lisp
shifty has quit [Ping timeout: 256 seconds]
Kaisyu has joined #lisp
shifty has joined #lisp
drmeister has joined #lisp
jlpeters has quit [Max SendQ exceeded]
fowlduck has quit [Ping timeout: 244 seconds]
avicenna has joined #lisp
paul0 has joined #lisp
jlpeters has joined #lisp
fowlduck has joined #lisp
bytesighs has joined #lisp
Kaisyu has quit [Ping timeout: 244 seconds]
jcowan has joined #lisp
<kinope> Oh, SBCL can't atomic incf a slot-value. Does anyone have a workaround?
physpi has joined #lisp
Kaisyu has joined #lisp
mindCrime has quit [Ping timeout: 260 seconds]
contrapunctus has left #lisp ["Disconnected: closed"]
contrapunctus has joined #lisp
shifty has quit [Ping timeout: 256 seconds]
shifty has joined #lisp
<kinope> found one!
john__ has joined #lisp
gaqwas has quit [Ping timeout: 246 seconds]
drmeister has quit [Ping timeout: 272 seconds]
Kaisyu has quit [Ping timeout: 260 seconds]
dominic34 has quit [Ping timeout: 256 seconds]
Kaisyu has joined #lisp
luckless has quit [Remote host closed the connection]
edgar-rft has joined #lisp
luckless has joined #lisp
elosant has joined #lisp
jlpeters has quit [Read error: Connection reset by peer]
jlpeters has joined #lisp
jcowan has quit [Ping timeout: 246 seconds]
jcowan has joined #lisp
Alfr__ has joined #lisp
Alfr_ has quit [Ping timeout: 244 seconds]
drmeister has joined #lisp
jcowan has left #lisp [#lisp]
elosant has quit [Quit: WeeChat 2.9]
mindCrime has joined #lisp
<jgodbout> (defparameter *optional-field-info* '(... (optional-bytes "" #.(make-array '(3) :element-type '(unsigned-byte 8) :initial-contents '(49 49 54))) ...)
<jgodbout> at run time it tells me the type of optional-bytes is (simple-array 3), but the type information gets removed...
<jgodbout> but only in abcl, not sbcl or ccl
<jgodbout> any ideas?
<aeth> try (upgraded-array-element-type '(unsigned-byte 8))
<aeth> If it's T, then ABCL doesn't support it. Only bit and character are required afaik.
shifty has quit [Ping timeout: 256 seconds]
<aeth> It's really weird not to have octet arrays, though
<jgodbout> Afterward if I go and C-c C-c it works
shifty has joined #lisp
<jgodbout> So abcl has the type
<aeth> maybe its interpreter is behaving differently than its compiler, then?
<aeth> SBCL doesn't even use its interpreter in its REPL, it just compiles to /tmp iirc
<aeth> But traditionally, the REPL is interpreted.
<fe[nl]ix> jgodbout: ABCL might be losing type info of literal specialized simple-array instances
<fe[nl]ix> something related to make-load-form perhaps
<aeth> ooooh, nice thought
wxie has joined #lisp
_whitelogger has joined #lisp
wxie has quit [Ping timeout: 260 seconds]
<beach> Good morning everyone!
dominic34 has joined #lisp
shifty has quit [Ping timeout: 265 seconds]
shifty has joined #lisp
lucasb has quit [Quit: Connection closed for inactivity]
philweb has joined #lisp
<contrapunctus> Good morning, beach
Bike has quit [Quit: leaving]
Tordek has quit [Ping timeout: 240 seconds]
Lord_of_Life_ has joined #lisp
Lord_of_Life has quit [Ping timeout: 260 seconds]
Lord_of_Life_ is now known as Lord_of_Life
rumbler31 has quit [Remote host closed the connection]
vert2_ has quit [Ping timeout: 246 seconds]
ldb has joined #lisp
Tordek has joined #lisp
orivej has quit [Ping timeout: 240 seconds]
<jgodbout> https://abcl.org/svn/public_html/doc/abcl-start.html#batch It is currently not known what this option does.
orivej has joined #lisp
vert2 has joined #lisp
<philweb> any recommendations/pointers on building a small-ish sbcl image for use on a mobile device? I did some poking around on tree shakers and what little I found didn't seem to favor that approach
<contrapunctus> philweb: any reason you're using SBCL rather than ECL for that?
<contrapunctus> jgodbout: lmao
<jgodbout> ?
<jgodbout> ah i see
<philweb> only that I'm more familiar with sbcl and know it runs reasonably well on 64-bit arm. I'm open to ecl if you think that would be a better option for this use case
<bhartrihari> philweb: If you want to make apps for android or iOS then EQL5-Android allows you to do that using ECL. If you just want to run some lisp code on ARM sbcl (though single threaded, IIRC) should be fine. CCL might be preferred here because it has threads if you need them on ARM.
<philweb> bhartrihari: my app will actually be running on linux (i.e. pinephone for now) and have moderate ffi needs (gtk etc)
<ldb> i find that a space efficient way to implement property list is let a hash-table of keys with each entry hold a hash-table of value to each objects
<bhartrihari> I see.
<philweb> ccl doesn't appear to be an option here due to lack of 64-bit arm support currently
gravicappa has joined #lisp
shifty has quit [Ping timeout: 246 seconds]
edgar-rft has quit [Quit: Leaving]
_whitelogger has joined #lisp
jlarocco has joined #lisp
sympt_ has quit [Ping timeout: 265 seconds]
sympt has joined #lisp
abhixec has joined #lisp
rumbler31 has joined #lisp
john__ is now known as gaqwas
gaqwas has quit [Changing host]
gaqwas has joined #lisp
ldb has quit [Ping timeout: 240 seconds]
ldb has joined #lisp
leo_song has quit [Ping timeout: 240 seconds]
dominic34 has quit [Ping timeout: 260 seconds]
ldb has quit [Ping timeout: 256 seconds]
EvW has joined #lisp
bsd4me has quit [Quit: Leaving]
jgodbout has quit [Ping timeout: 256 seconds]
narimiran has joined #lisp
hatxuu has joined #lisp
leo_song has joined #lisp
hatxuu has left #lisp [#lisp]
Oladon has joined #lisp
ldb has joined #lisp
<ldb> I have a CLOS question: if I have a class allocation slot with initform that makes a hashtable, will this solt reinitialized when a subclass is created?
akoana has left #lisp ["Leaving"]
shifty has joined #lisp
<mfiano> Not unless you pass a different value with :initform or :default-initargs
orivej has quit [Ping timeout: 256 seconds]
ldb has quit [Ping timeout: 240 seconds]
ldb_ has joined #lisp
EvW has quit [Ping timeout: 244 seconds]
jlarocco has quit [Remote host closed the connection]
<ldb_> from some testing with CCL seems re-eval the defclass won't cause the hashtable to be recreated
mrcom has quit [Quit: This computer has gone to sleep]
<ldb_> mfiano: thanks
mrcom has joined #lisp
mrcom has quit [Client Quit]
narimiran has quit [Ping timeout: 265 seconds]
mrcom has joined #lisp
_whitelogger has joined #lisp
fwoaroof[m] has quit [Changing host]
fwoaroof[m] has joined #lisp
fwoaroof[m] has joined #lisp
fwoaroof[m] has quit [Changing host]
ldb_ has quit [Quit: leaving]
Oladon has quit [Quit: Leaving.]
pve has joined #lisp
notzmv has joined #lisp
treflip has joined #lisp
bilegeek has joined #lisp
aurelius has joined #lisp
aurelius has quit [Read error: Connection reset by peer]
space_otter has quit [Remote host closed the connection]
hendursa1 has joined #lisp
hendursaga has quit [Ping timeout: 240 seconds]
<easye> minion: memo for jgodbout: unfortunately that is an outdated piece of documentation, the ABCL User Manual describes is as "evaluates forms specified by arguments and in the initialization file ~/.abclrc, and then exits without starting a REPL".
<minion> Remembered. I'll tell jgodbout when he/she/it next speaks.
mindCrime has quit [Ping timeout: 265 seconds]
philweb has quit [Ping timeout: 245 seconds]
narimiran has joined #lisp
narimiran has quit [Client Quit]
specbot has quit [Remote host closed the connection]
minion has quit [Remote host closed the connection]
specbot has joined #lisp
minion has joined #lisp
cjb has quit [Quit: 👋]
bilegeek has quit [Quit: Leaving]
orivej has joined #lisp
madrik has quit [Quit: ERC (IRC client for Emacs 26.1)]
v3ga has quit [Ping timeout: 260 seconds]
v3ga has joined #lisp
gko_ has quit [Ping timeout: 256 seconds]
shifty has quit [Ping timeout: 260 seconds]
shifty has joined #lisp
mankaev has quit [Ping timeout: 272 seconds]
galex-713 has quit [Ping timeout: 244 seconds]
galex-713 has joined #lisp
mankaev has joined #lisp
mankaev has quit [Read error: Connection reset by peer]
mankaev has joined #lisp
shifty has quit [Ping timeout: 256 seconds]
shifty has joined #lisp
sm2n has joined #lisp
galex-713 has quit [Ping timeout: 256 seconds]
galex-713 has joined #lisp
v88m has quit [Ping timeout: 256 seconds]
bhartrihari has left #lisp ["Disconnected: Replaced by new connection"]
bhartrihari has joined #lisp
ldb has joined #lisp
galex-713 has quit [Ping timeout: 256 seconds]
galex-713 has joined #lisp
bitmapper has quit [Ping timeout: 240 seconds]
wxie has joined #lisp
wxie has quit [Ping timeout: 260 seconds]
hiroaki has quit [Ping timeout: 246 seconds]
liberliver has joined #lisp
ldb has quit [Ping timeout: 260 seconds]
ldb has joined #lisp
vutral has joined #lisp
VincentVega has joined #lisp
<VincentVega> Hi all, wondering, is there a convention for naming slot accessors?
<VincentVega> I am thinking, get-name would name a getter, but not an accessor...
<ldb> you might just use slot name default to accessor
<VincentVega> ldb: yeah, but that could conflit with some function already in existence. and in that case, renaming the slot accessor would be inconsistent.
<treflip> I know that sometimes slots and acessors are named exactly the same, but slots are prefixed with %
<ldb> VincentVega: if the class name is not long, classname- can be the prefix
<VincentVega> treflip: I saw somewhere that % is used for low-level dangerous functions... though that gives me an idea to name the accessors @name
<pve> VincentVega: name-of is another possibility
<VincentVega> ldb: yeah that's a possibility
<VincentVega> pve: hmmm yeah looks decent
<VincentVega> oh, I forgot that @ is not really an option
<VincentVega> or wait it is though
ayuce has joined #lisp
ggole has joined #lisp
shifty has quit [Ping timeout: 256 seconds]
random-nick has joined #lisp
treflip has quit [Quit: WeeChat 2.6]
dra has joined #lisp
<Josh_2> Afternoon all
<ldb> Josh_2: hello
treflip has joined #lisp
bhartrihari has left #lisp ["Disconnected: closed"]
bhartrihari has joined #lisp
boeg has joined #lisp
EvW has joined #lisp
bhartrihari has left #lisp ["Disconnected: Replaced by new connection"]
bhartrihari has joined #lisp
galex-713 has quit [Ping timeout: 256 seconds]
zigpaw has quit [Ping timeout: 260 seconds]
kopiyka has quit [Remote host closed the connection]
hendursa1 has quit [Quit: hendursa1]
hendursaga has joined #lisp
wxie has joined #lisp
orivej has quit [Ping timeout: 260 seconds]
wxie has quit [Ping timeout: 246 seconds]
galex-713 has joined #lisp
zigpaw has joined #lisp
_jrjsmrtn has joined #lisp
__jrjsmrtn__ has quit [Ping timeout: 264 seconds]
<beach> VincentVega: The best choice is not to prefix or suffix the accessor with anything in particluar.
<beach> VincentVega: The convention of prefixing with the class name looks really dumb when you have subclasses, so in CLIM, for instance, you see things like (SHEET-PARENT PANE). It would have been much better to just name it PARENT rather than SHEET-PARENT.
<beach> VincentVega: And the convention of prefixing with GET- is not used in Common Lisp, other than some names that are there for historical reasons.
<scymtym> i thought CLIM used the protocol name (which admittedly coincides with the name of the corresponding protocol class)
<beach> Maybe so. But it still looks strange when applied to an instance of a subclass.
<scymtym> sure, i would have preferred the {pre,suf}fix-less version as well
gko_ has joined #lisp
<beach> We don't have a choice with an existing specification, but we can recommend the *fix-less version for new code.
<beach> And I personally don't like the -OF convention, but I have no objective argument against it.
mangoicedtea has joined #lisp
<VincentVega> beach: Yeah, prefixing a class name looks overly verbose. I am currently considering slot@ which is both short and unlikely to create a clash.
ralt has joined #lisp
<ldb> there's a set of interesting conventions in KEIM that uses + = ~ * for different kinds of names
<ldb> guess might need a feature to hide a name in current package and refer it with certain prefix
cacao26 has joined #lisp
<VincentVega> ldb: tnx I'll check it out
<ldb> VincentVega: i don't recommend to adopt it, because that was based on a customized module system
<VincentVega> ldb: I see, alright
enrio has joined #lisp
VincentVega41 has joined #lisp
VincentVega41 has left #lisp [#lisp]
VincentVega99 has joined #lisp
VincentVega has quit [Ping timeout: 245 seconds]
cacao26 is now known as cacao
ldb has quit [Quit: leaving]
<beach> VincentVega99: Where would you put the @?
dra has quit [Remote host closed the connection]
<VincentVega99> beach: at the end of the slot name I think, like this (slot@ obj)
<beach> VincentVega99: There is no "clash" with the slot name, so people like Xach use the same name for the slot and the accessor, considering that any use of SLOT-VALUE is a no-no. I myself prefix the slot name with %, which is already used traditionally in Common Lisp to mean "private" or "watch out".
<beach> VincentVega99: So then, client code who uses SLOT-VALUE would have to type package::%slot-name, where both :: and % indicates that something is off.
liberliver has quit [Quit: liberliver]
kaftejiman has joined #lisp
vutral has quit [Quit: Connection closed for inactivity]
<VincentVega99> beach: Oh, I don't mean the clash to be a clash with the slot name, but rather with a function defined somewhere else in the package (smth like range, I mean, it's not unimaginable). But, yeah, I see the use of % for the slots which aren't meant to be accessed directly.
<beach> A slot name cannot class with a function name. They are in different name spaces.
<beach> VincentVega99: Slots are never meant to be accessed directly.
<beach> They are implementation details.
Duuqnd has joined #lisp
<VincentVega99> beach: Hmmm yes indeed, that's oop done the right way.
<beach> Even slots that are used only within a particular module can benefit from being accessed through accessors, because you can then define auxiliary methods on the accessor generic functions.
bhartrihari has left #lisp ["Disconnected: Replaced by new connection"]
bhartrihari has joined #lisp
<VincentVega99> beach: auxilary methods is a good point, can't argue with that
<beach> Another point is that, if you ever want to change from one characteristic being stored to being calculated, or vice versa, then if you use SLOT-VALUE you have to change it everywhere.
<beach> A simple example would be the CIRCUMFERENCE of a geometric figure. You may very well decide at some point that it should be calculated and then at some later point that it should be stored, or the other way around.
<VincentVega99> beach: hey, man, I think there's a misunderstanding. I didn't really plan to name the slot any differently, just the accessor. So, like this https://pastebin.com/qTQkv4ju
<beach> That's a terrible idea.
<beach> There is no such convention in Common Lisp, and the name of the accessor is what is typically exported.
bhartrihari has left #lisp ["Disconnected: closed"]
<beach> Now you have client code know whether it is a slot accessor or not.
<beach> So if you had CIRCUMFERENCE before (calculated) you now have to tell your client to change all his or her code, when you decide to store it, and therefore you now call it CIRCUMFERENCE@.
<beach> You would not end up in that situation, any more than you would end up wanting the same name for two different ordinary functions in a module. Different purposes imply different names.
cacao has quit [Quit: Konversation terminated!]
<VincentVega99> beach: "tell your client to change all his or her code, when you decide to store it" Sorry, but I am failing to see how that's the case if the convention in the package is to call all accessors CIRCUMFERENCE@ from the beginning
<VincentVega99> beach: "Different purposes imply different names." I agree, maybe I am worried without a good reason about this
<beach> I am saying that it is not an accessor from the beginning. You write your code like this (defgeneric circumference (object) ;; compute from stored information in the object...
<beach> Then you change your mind, and store the circumference to avoid computing it each time, so now you have a slot (circumference :accessor circumference@). Now your client must change his or her code.
orivej has joined #lisp
<beach> Look, you wanted to know the conventions, and you asked for advice. You got it. But I have the impression you just wanted to have your initial idea OK-d by #lisp.
treflip has quit [Quit: WeeChat 2.8]
<VincentVega99> beach: I am not complaining, that's what I came here for (both for advice and for the idea to be OK'd) : ) And yes, now I see what you mean.
<beach> Good.
<VincentVega99> beach: thanks!
<beach> Pleasure.
orivej has quit [Ping timeout: 256 seconds]
mangoicedtea has quit [Quit: Leaving]
hiroaki has joined #lisp
kaftejiman has quit [Remote host closed the connection]
<contrapunctus> VincentVega99: I just happened to be reading about this subject in PCL today - http://www.gigamonkeys.com/book/object-reorientation-classes.html
<contrapunctus> (You probably want to start from the previous chapter, though, if you want to understand the examples - http://www.gigamonkeys.com/book/object-reorientation-generic-functions.html )
EvW has quit [Ping timeout: 260 seconds]
treflip has joined #lisp
edgar-rft has joined #lisp
<VincentVega99> contrapunctus: thanks for the links, it's about time I read up on clos a bit more thoroughly than a few examples
wsinatra has joined #lisp
sympt has quit [Ping timeout: 246 seconds]
sympt has joined #lisp
jeosol19 has joined #lisp
jeosol has quit [Ping timeout: 245 seconds]
treflip has quit [Quit: WeeChat 2.6]
philweb has joined #lisp
jeosol19 has quit [Ping timeout: 245 seconds]
bhartrihari has joined #lisp
<philweb> anyone familiar with floating point exception handling in ECL? I'm having problems disabling either within ECL or from the command line and not sure if my issue is that the docs are outdated/incorrect documentation or if I'm just misunderstanding them
bsd4me has joined #lisp
ralt has quit [Quit: Connection closed for inactivity]
<shka_> jackdaniel: ^^
<phoe> philweb: does https://github.com/Shinmera/float-features contain a solution for your problem?
Lord_of_Life has quit [Ping timeout: 240 seconds]
Lord_of_Life has joined #lisp
wsinatra has quit [Quit: WeeChat 2.9]
<philweb> phoe: it looks like the same thing I've tried: (si::trap-fpe :divide-by-zero nil) but then I still get an error with (/ 1 0). I also tried setting it to t rather than nil thinking I had it backwards... no change
Lord_of_Life_ has joined #lisp
Lord_of_Life has quit [Ping timeout: 260 seconds]
Lord_of_Life_ is now known as Lord_of_Life
<jackdaniel> 1 0 division is not fp operation though
<jackdaniel> try 1.0 0.0
ramenbytes has joined #lisp
ramenbytes has quit [Remote host closed the connection]
<flip214> has someone succeeded in using sbcl on android? so that some fasl file gets loaded as an app?
<flip214> I just remembered that I have an ARM32 pre-build binary floating around, that might just work
<phoe> philweb: #'/ on rationals will not output a float, but a rational, which is why, as jackdaniel said, there's no float division and therefore no float exceptions to mask
<philweb> jackdaniel: doh! right you are. thanks... so it looks like a combination of outdated docs (the docs indicate division-by-zero rather than divide-by-zero) and then me screwing up testing it
v88m has joined #lisp
<philweb> fwiw, I was referring to https://common-lisp.net/project/ecl/static/manual/Numbers.html#Numbers-_002d-Floating-point-exceptions and the names related to fpe appear to be incorrect/outdated
hendursaga has quit [Ping timeout: 240 seconds]
hendursaga has joined #lisp
contrapunctus has left #lisp ["Disconnected: Replaced by new connection"]
contrapunctus has joined #lisp
contrapunctus has left #lisp ["Disconnected: closed"]
contrapunctus has joined #lisp
bhartrihari has left #lisp ["Disconnected: closed"]
bhartrihari has joined #lisp
TwoNotes has joined #lisp
pfr has quit [Ping timeout: 240 seconds]
tristero has joined #lisp
alandipert8 has joined #lisp
tristero has quit [Ping timeout: 256 seconds]
alandipert has quit [Ping timeout: 256 seconds]
alandipert8 is now known as alandipert
shifty has joined #lisp
gko_ has quit [Ping timeout: 265 seconds]
tiwEllien has joined #lisp
tiwEllien has quit [Client Quit]
<jackdaniel> I'll update the manual, thank you
contrapunctus has left #lisp ["Disconnected: closed"]
nicktick has quit [Ping timeout: 256 seconds]
contrapunctus has joined #lisp
Duuqnd_ has joined #lisp
Duuqnd has quit [Ping timeout: 256 seconds]
enrio has quit [Ping timeout: 240 seconds]
treflip has joined #lisp
abhixec has quit [Remote host closed the connection]
jonatack has quit [Quit: jonatack]
Oladon has joined #lisp
jonatack has joined #lisp
VincentVega99 has quit [Remote host closed the connection]
enrio has joined #lisp
pfr has joined #lisp
bitmapper has joined #lisp
mokulus has quit [Quit: WeeChat 2.9]
zxcvz has joined #lisp
jw4 has quit [Read error: Connection reset by peer]
jw4 has joined #lisp
mindCrime has joined #lisp
nabataeus has joined #lisp
nabataeus has quit [Client Quit]
treflip has quit [Quit: WeeChat 2.6]
Oladon has quit [Quit: Leaving.]
mseddon has joined #lisp
<mseddon> weird question- there are obviously legal copies of the CLHS and ClTl2 online, but are they hosted by particular copyright holders, or can I use e.g. their function definitions etc to create my own reference documentation?
<mseddon> (obviously I would cite the original source)
<mseddon> I know, for example I can install them into emacs, but I wonder does it just pull them down to bypass that?
Oladon has joined #lisp
CrazyEddy has joined #lisp
EvW has joined #lisp
enrio has quit [Ping timeout: 256 seconds]
Jesin has quit [Quit: Leaving]
notzmv has quit [Read error: Connection reset by peer]
space_otter has joined #lisp
luckless_ has joined #lisp
TwoNotes has quit [Remote host closed the connection]
TwoNotes has joined #lisp
luckless has quit [Ping timeout: 240 seconds]
TwoNotes has quit [Remote host closed the connection]
TwoNotes has joined #lisp
TwoNotes has left #lisp [#lisp]
Jesin has joined #lisp
gravicappa has quit [Ping timeout: 260 seconds]
notzmv has joined #lisp
CEnnis91 has joined #lisp
akoana has joined #lisp
xkapastel has joined #lisp
EvW has quit [Ping timeout: 256 seconds]
<mseddon> So e.g. it seems CLHS is owned by LispWorks.
<aeth> CLHS itself is, but there are other versions based on a draft of the spec
<aeth> You could also independently document it, but then it's not authoritative.
jeosol has joined #lisp
<gendl> Hi, if i put a (break) in my program, which lands me in the slime debugger, how can I get a repl with local variables set as in a chosen item from the backtrace ?
<gendl> if I open the item 0 in the backtrace i'm seeing "Locals:" with the relevant local variables reported, so now i'd like a repl to be able to evaluate expressions in that environment
<gendl> sorry if this is slime debugger basics which i should be rtfm for...
<mseddon> aeth: aha, good insight, thanks.
<gendl> reading manual here, less daunting than I thought it would be: https://www.common-lisp.net/project/slime/doc/html/Examining-frames.html
<gendl> looks like e command is what I want (eval in frame)
<phoe> gendl: I wish there was a fully featured REPL-in-frame
<phoe> but it seems that all we have is eval-in-frame
<gendl> phoe: got it. well, eval-in-frame one expression at a time is enough for me for now. at least i can see the exact expression the error is coming from so i can dive into its code.
<phoe> yes, that's already very useful
EvW1 has joined #lisp
<jmercouris> anyone know of something like this for cl? https://github.com/kongaskristjan/fire-hpp
ggole has quit [Quit: Leaving]
<fwoaroof[m]> jmercouris: I've been working on something similar, but haven't gotten it exactly right yet
<jmercouris> fwoaroof[m]: link?
<jmercouris> is it built on top of cl-launch?
<fwoaroof[m]> No, it's sort of standalone
<phoe> jmercouris: I'm aware of https://github.com/didierverna/clon that is sorta similar
<jmercouris> I've used clon before phoe
<jmercouris> it is a useful project, but different
<fwoaroof[m]> So, the idea I had is that you have a generic function called "main"
<fwoaroof[m]> A system implements this generic function specialized on the uppercase version of the program name (argv[0])
<philweb> when building an application using asdf:make-build in ECL, what information is being used to determine which packages need to be included in the resulting image? I see that it's pulling in a lot, but not everything needed.
<fwoaroof[m]> Then, when the system starts up it loads the system corresponding to argv[0] and runs MAIN with the command line arguments
<jmercouris> fwoaroof[m]: how do you know WHAT the arguments are without parsing all of the forms?
<phoe> philweb: which ASDF version are you using?
<fwoaroof[m]> So, your implementation of MAIN is expected to parse the arguments
<phoe> I'm asking because there's been some recent bugs on ASDF that sound similar to what you describe
<fwoaroof[m]> It's probably a bit more barebones than fire-hpp
<jmercouris> fwoaroof[m]: yeah, the fire-hpp automatically names the arguments, though arguments in C languages are much simpler
<fwoaroof[m]> Yeah, what I was really going for is a single convention making it easy to just run an ASDF system as a program
<jmercouris> I see
<fwoaroof[m]> the idea is you'd just symlink the binary under different names and it'd pull in the right code
<jmercouris> ah, I know what you are trying to do
<jmercouris> I thought I read a blog article about exactly that recently
<jmercouris> maybe it was for another language
<phoe> fwoaroof[m]: how do you specialize on strings?
<philweb> phoe: it's 3.1.8.2 and I'm running ECL 16.1.3 (that's the version currently in Debian stable)
<fwoaroof[m]> phoe: I have an entrypoint function that keywordizes it predictably
<jmercouris> phoe: I think the method just accepts a list
<phoe> fwoaroof[m]: OK, thanks
<phoe> philweb: could you try updating to recent ECL? 16.* is over four years old now
<jmercouris> oh it is also SBCL specific
<jmercouris> what I thought would be really cool was the following
<fwoaroof[m]> Yeah, it's a proof of concept for the moment
<jmercouris> I want to be able to interactively run a defun
<jmercouris> invoke defun, and then prompt user for each form for a variable to pass
<jmercouris> so if I have (defun add (x y) (+ x y))
<jmercouris> when you funcall add, it should say "x: ?" and then "y: ?" and you can submit them
<jmercouris> the problem I had with that was trying to determine WHAT the arguments were
<jmercouris> I know there is some way to determine the arguments associated with a function object, but I was told it was non portable if I remember
<philweb> I was afraid you'd say that ;-) (the downside to running stable)... ugh, it's the same version in testing. Is there no maintainer for it on Debian?
<jmercouris> I also remember trivial arguments
<philweb> guess I'll fork the repo and build locally
<philweb> err... clone the repo
<phoe> philweb: I have no idea; you should try building https://common-lisp.net/project/ecl/posts/ECL-20424-release.html
<phoe> or clone the repo and select the 20.4.24 tag
<jmercouris> phoe: Nicholas' readme makes me think there must be an exported symbol in swank for doing this
<phoe> jmercouris: swank::arglist
<phoe> no, it's not exported
<philweb> phoe: ok, I will give that a shot.
<jmercouris> it is however VERY good
<jmercouris> this COULD work for what I was thinking
<jmercouris> (defun subtract (x y &key (z 4)) (+ x y z))
<jmercouris> (swank::arglist 'subtract) -> (X Y &KEY (Z 4))
<jmercouris> I still would have to do some list traversal and parsing
<phoe> #'alexandria:parse-ordinary-lambda-list
Oladon has quit [Quit: Leaving.]
<jmercouris> phoe: I just ran it
<jmercouris> what does that get me exactly
<jmercouris> can you be more explicitly about how that could help
Lycurgus has joined #lisp
<jmercouris> s/explicitly/explicit
<fwoaroof[m]> It normalizes the various kinds of arguments
<phoe> jmercouris: (describe 'alexandria:parse-ordinary-lambda-list)
<jmercouris> WAS there is a docstring!
<jmercouris> this cannot be
<fwoaroof[m]> iirc the first value is the ordinary arguments, the second is optional as triples and the third is keys in some shape :)
<phoe> or (documentation 'alexandria:parse-ordinary-lambda-list 'function)
<jmercouris> Aha!
<fwoaroof[m]> alexandria is usually pretty-well documented
<jmercouris> well well well!
<jmercouris> this could be le ticket
<jmercouris> I think this is le ticket
<jmercouris> this is great
<jmercouris> why does this even exist
<jmercouris> how many people could possibly need this function
gaqwas has quit [Ping timeout: 265 seconds]
shifty has quit [Ping timeout: 240 seconds]
Duuqnd_ has quit [Quit: Leaving]
<phoe> everyone who writes custom DEFUNs and needs to do something with argument lists
<jmercouris> are there a lot of people doing that?
<jmercouris> I mean, alexandria is typically pretty conservative
<jmercouris> I am surprised they would put something in it that seems to niche to me
<phoe> many enough to warrant the includion of PARSE-BODY and PARSE-ORDINARY-LAMBDA-LIST
<jmercouris> s/to/so
<phoe> otherwise people would reinvent those functions, poorly
<jmercouris> anyone have experience doing genetic programming in CL by directly recombining sexps and bodies together?
<jmercouris> I am just thinking about since you mentioned parse-body and parse-ordinary-lambda-list
<jmercouris> no? not many people involed in AI in this channel?
<aeth> Xach: This might sound like a stupid question, but is Quicklisp just for Common Lisp? I can think of two edge cases where CL libraries might be of limited utility to the broader CL community: (1) add-ons for a CL application (e.g. Nyxt Browser) or (2) libraries for a language integrated with and written in CL but not CL
<jmercouris> I am planning on leveraging quicklisp for addons to Nyxt
<jmercouris> I've seen how to make a quicklisp dist, and that's basically what I will do, use Zach's tools to hopefully have a dist for it
<aeth> Yes, #1 relates to my game engine (Zombie Raptor) and #2 relates to my Scheme-in-CL, Airship Scheme.
<jmercouris> I also looked at ultralisp to see if it would be simpler to set-up, but it seems no
<aeth> For #2 in particular, I'm not sure if it belongs in a separate dist or as part of CL, especially since quite a lot of the Scheme should be callable from and usable in CL. You'd have to go out of your way for that not to happen
<aeth> I've collected my current thoughts for #2 in my Airship Scheme issue tracker. https://gitlab.com/mbabich/airship-scheme/-/issues/20
<jmercouris> I remember borodust having some tool to make things simpler
<aeth> (I haven't placed my thoughts on #1 in the ZR issue tracker yet.)
<jmercouris> with regard to creating a quicklisp dist
<aeth> jmercouris: I want to fork Ultralisp for Airship Scheme not because I find it useful but because it's git-enriched, and thus it can be called Git-Rich Quickscheme.
<jmercouris> lol, that's great :-D
<aeth> Yes, I will have won the Internet at that point.
<aeth> But Quickscheme comes before Ultralisp's Git-Rich Quickscheme.
<jmercouris> aeth: ^
<aeth> jmercouris: thanks
<jmercouris> aeth: thats an interesting project you've got there
<jmercouris> it's a really cool idea, could open up many libraries for usage
<aeth> jmercouris: I just updated with your note. https://gitlab.com/mbabich/airship-scheme/-/issues/20
<aeth> (I also directly mentioned Ultralisp)
<aeth> jmercouris: re opening up libraries for usage... to be fair, someone has been implementing Scheme SRFIs in Common Lisp and that might be more directly useful for Common Lispers. https://github.com/g000001/srfi-47
<jmercouris> what is a SRFI?
<aeth> hmm... so weird seeing a different define-function that's not my gigantic zr-utils:define-function macro.
<phoe> CDRs, except in Scheme
<jeosol> aeth: just read the info on airship scheme, very lofty project. Congratulations.
<jeosol> The git-rich quick-scheme name would be nice ...
<aeth> jeosol: SRFI is a mix between CDRs (specifications of things to implement, sort of like bordeaux-threads but at the implementation level, more like if sb-unicode was a formal library implemented in more than one place)
<aeth> s/jeosol: //
<jmercouris> I see
<aeth> as well as just libraries
<aeth> A lot of SRFIs are just libraries.
<jmercouris> so SRFI is a term?
<aeth> e.g. there are some here: http://snow-fort.org/pkg/
Lycurgus has quit [Remote host closed the connection]
<aeth> Yeah, specified libraries, basically.
<jmercouris> because I looked it up and came up with "squash racket federation of india"
<jeosol> I like the path of being able to use libraries from scheme. When I use to go to comp.lang.lisp, some quotes srfi- and a number, that I 'll find a function, I wondered how they remembered the numbers after the srfi
<aeth> jeosol: thanks
<jeosol> They seemed arbitrary to me,but i am sure there is some pattern
<aeth> Oh, it's just in order of specification
<aeth> A bunch are being integrated to R7RS-large and being renamed as part of the process, though
<jmercouris> so, not exactly arbitrary, but close enough
<aeth> That list might not be 100% accurate, it's hard to put together this information
<aeth> But I think the thing about SRFIs is that they're like https://oeis.org/
<aeth> It gives an objective name to refer to something
<phoe> minion: what does SRFI mean?
<minion> Stellerine Roomage Friarhood Iambically
<jmercouris> ???
<jmercouris> what does that mean
<aeth> e.g. for Fibonacci you can just call them A000045 and not everything is important enough to have a name like "Fibonacci" https://oeis.org/A000045
<jmercouris> minion: tell me a joke
<minion> jmercouris: does torturing a poor bot with things beyond its comprehension please you?
<jmercouris> lol
<jmercouris> close enough :-D
<jeosol> haha.
<jeosol> meaning of SRFI above. I don't remember the name, but one contributor over comp.lang that offered scheme answers seemed to have a good handle on the numbering. Good to see list as compiled.
<aeth> it would be nice to number the core CL libraries. bt, uiop, alexandria, etc.
<aeth> (and exactly specify their semantics)
<pve> jmercouris: not sure of your requirements, but you could check out https://github.com/pve1/shell-utility (SBCL only for now)
<jeosol> So this is how libraries are developed in the scheme universe? Their increasing numbering system
<aeth> jeosol: the specified, portable ones
<aeth> jeosol: I notice a few other naming conventions in http://snow-fort.org/pkg/
<jeosol> I see.
<aeth> (1) portable versions of an implementation's libraries like (chibi test), which would be the equivalent of e.g. making sb-unicode into a library (which would be *really* nice, if anyone needs any ideas)
<aeth> (2) something called slib. https://people.csail.mit.edu/jaffer/SLIB
<aeth> So they're not exclusively SRFIs.
<jeosol> As one of the goals is to be able to run both scheme and CL, what is the space of intersection of libraries like?
<jeosol> I haven't used scheme at all, and I remember in a previous discussion with Fare, he said he was using (I think) gerbil scheme
<aeth> jeosol: Ideally, every public Scheme procedure will be automatically exposed as a CL function, which will also serve as an entry point into the Airship Scheme runtime (to handle tail recursion and continuations).
<aeth> jeosol: Going the other direction, it's not as simple because of the ambiguity between nil-as-false and nil-as-empty-list in CL. (It's easy to turn both nil and #f into CL:NIL, but not easy to determine whether CL:NIL should be nil or #f)
<jeosol> aeth: That's a nice feature when I read it from your gitlab project page. Very nice
<aeth> Stuff that heavily uses macros or reader macros (or SRFI-specified syntax extensions in the case of Scheme) or continuations will complicate things
<aeth> Perhaps Scheme macros could automatically make CL macros as well, since I control this, but the other way around is just... probably not going to work.
<phoe> aeth: if a piece of Scheme code is loadable and useful from CL then I see no reason why it shouldn't be in Quicklisp; look at all the foreign code that is written in C and is loadable and useful from CL
<aeth> phoe: Yes, but what if I wrote a library that solely deals with continuations, which are emulated in Scheme via continuation passing style?
<phoe> uh, you mean something like cl-cont?
<aeth> phoe: more like a library that's designed to be used by users of cl-cont, I guess.
<phoe> why not?
<phoe> I mean, sure, why not?
<aeth> Cool, now I can't wait to wrap lots of useful libraries in cl-
<aeth> *cl-brainfuck
<aeth> :-p
<aeth> Hopefully I can get a left-pad situation going where nearly every CL project depends on some Brainfuck :-p
<jeosol> phoe: not to digress to much, how is the process with clcs. I have been out for a while
<phoe> jeosol: the book is still in production. I'll notify everyone on GitHub when we have something to look at.
<jeosol> phoe: no worries. I am just checking. It seems things are grinding along well.
ayuce has quit [Read error: Connection reset by peer]
<aeth> jeosol, phoe: I will probably go above and beyond what's required to just get Scheme running on CL to try to get the interop working better, e.g. I'll try to use trivial-extensible-sequences (if they work!) for the sequences available in Scheme but not in CL (lazy lists? maybe a few others).
bilegeek has joined #lisp
<aeth> I'm also considering writing a reader macro that blends Scheme and CL (since the readers are slightly incompatible with each other) by extending CL to support some Scheme syntax (like "foo\n" to end a string with a newline)
<fwoaroof[m]> jmercouris: if you have ideas about extending my protocol to handle your use case, I'd be interested, BTW
<fwoaroof[m]> minione: memo for jmercouris: if you have ideas about extending my protocol to handle your use case, I'd be interested, BTW
<fwoaroof[m]> minion: memo for jmercouris: if you have ideas about extending my protocol to handle your use case, I'd be interested, BTW
<minion> Remembered. I'll tell jmercouris when he/she/it next speaks.
<fwoaroof[m]> sorry, can't type :)
PuercoPop has joined #lisp
cosimone has quit [Quit: Quit.]
<fwoaroof[m]> I've been thinking of integrating clon, because I like how it handles command line arguments alot
mangoicedtea has joined #lisp
bilegeek has quit [Quit: Leaving]
pve has quit [Quit: leaving]
snits has quit [Ping timeout: 256 seconds]
snits has joined #lisp
random-nick has quit [Ping timeout: 264 seconds]
bilegeek has joined #lisp
bilegeek has quit [Read error: Connection reset by peer]
bilegeek has joined #lisp
mangoicedtea has quit [Quit: Leaving]
<philweb> I've installed ECL 20.4.24 and attempted asdf:make-build again. Now it's complaining about a couple of UIOP packages referenced in compiled file nil
Bourne has quit [Ping timeout: 260 seconds]
abhixec has joined #lisp
CrazyEddy has quit [Ping timeout: 256 seconds]