jackdaniel changed the topic of #commonlisp to: Common Lisp, the #1=(programmable . #1#) programming language | Wiki: <https://www.cliki.net> | IRC Logs: <https://irclog.tymoon.eu/libera/%23commonlisp> | Cookbook: <https://lispcookbook.github.io/cl-cookbook> | Pastebin: <https://plaster.tymoon.eu/>
Lord_Nightmare has joined #commonlisp
random-nick has quit [Ping timeout: 255 seconds]
Lord_of_Life has joined #commonlisp
<pfdietz> Is Duane Rettig still alive, and if so still at Franz?    Just curious.
occ has joined #commonlisp
Guest79 has joined #commonlisp
<yitzi> There are commits from Rettig from at least 2016 in the Franz github repo. Some from last year also, although those are coauthored.
<pfdietz> If I found the right person, he's 69 now, so maybe he retired.
<yitzi> Lots of other examples, but here is one https://github.com/franzinc/loop/commits/master
<ixelp> Commits · franzinc/loop · GitHub
eddof13 has joined #commonlisp
skin has quit [Ping timeout: 255 seconds]
pfdietz has quit [Quit: Client closed]
<masinter> i'm looking for a good loop macro implementation
<masinter> old lisp hackers never die, they just fade away
czy has quit [Remote host closed the connection]
<edwlan[m]> beach has one, iirc
eddof13 has quit [Quit: Textual IRC Client: www.textualapp.com]
<masinter> i invented loop
<masinter> for lisp/360 at stanford in 1970
<bjorkintosh> Wow.
<masinter> i got teitelman to add it to interlisp
eddof13 has joined #commonlisp
<bjorkintosh> what's your favorite lisp implementation, masinter?
<masinter> Interlisp of course
<masinter> it might not be good but it's fun
<ixelp> J778.SYSREM DOC on SYS05 (LISP features dsigned to aid the LISP programmer) | 102721861 | Computer History Museum
gxt__ has quit [Remote host closed the connection]
gxt__ has joined #commonlisp
eddof13 has quit [Quit: My MacBook Air has gone to sleep. ZZZzzz…]
<masinter> i never liked the MAP functions, you had to add all of this (FUNCTION (LAMBDA (X) ... around the meat of what you were doing, which wa an iteration. And if the iteration used variables outside the scope of the function, you had to prove that you didn't have to make a thunk. I'd get rid of MAPxxxx and tell people just use loop.
<bjorkintosh> map was created by the mathematicians.
<bjorkintosh> (I think)
<masinter> i started out trying to be a mathematician but i got waylaid by my draft board
<edwlan[m]> The way I use the map functions, I don’t end up writing many lambdas
<masinter> i'm not sure why there's FUNCTION at all
tyson2 has quit [Read error: Connection reset by peer]
<masinter> it's either #'symbol or #'(lambda ...)
<bjorkintosh> I bet it's because lisp is so malleable, that instead of attracting obedient users who accepted things as they are, it attracted followers who all made attempts to mold it in their own image.
<mariari> MAPCAR is a nice function. and MAPCAN, is basically the monadic bind function. it has a weird mutation that makes it subotpimal in some scenarios but overall I'd much rather use it than LOOP
<mariari> MAPCAR is quite limited, where as a LOOP can do a lot, thus I don't have to read MAPCAR, if I see it, I have a rough idea on the control flow
<masinter> i tell people that my greatest contribution to the Common Lisp standard was inventing the form you had to fill out to get a change to the language passed in the cleanup committee
<masinter> where you had to list the problem you were solving without making reference to your solution
<masinter> and for every solution you had to list the costs & benefits to users and implementations
<mariari> that is a nice contribution to the standard
<masinter> well, it was hard to get moon and fahlman and me to agree to anything, but i got people to agree that the form was filled out correctly
<masinter> and it avoided the situation where the problem was serious but the proposed solution sucked
<masinter> s/avoided/mitigated
<mariari> how were features normally debated at the x3j13 committee?
<masinter> i have mail archives
<masinter> someone would propose an issue
<masinter> we'd discuss it by mail
pieguy128_ has joined #commonlisp
pieguy128 has quit [Ping timeout: 260 seconds]
<masinter> when we met, infrequently we'd vote
<masinter> there's a mail archive
<masinter> i put it all up on github https://github.com/masinter/cl-parcftp
<mariari> it is giving me a 404
<ixelp> GitHub - masinter/parcftp-cl: files from cl directory of parcftp about 2014
<masinter> there's another mail archive at CDDDDDDDDR.net or something like that
<mariari> thanks for preserving this, I'll give it a read it some time
<mariari> http://ml.cddddr.org/ I believe this URL?
<ixelp> Made with Remarkable!
<masinter> not sure it's a superset
<masinter> what I learned from working in the IETF and W3C was that agreement wasn't enough, you had to have compatibility. Although WHATWG took it too far (IMHO)
poselyqualityles has quit [Quit: Using Circe, the loveliest of all IRC clients]
NotThatRPG has joined #commonlisp
ahc has quit [Ping timeout: 260 seconds]
lucasta has quit [Quit: Leaving]
<copec> I like that both LOOP and MAP are in CL and that you can use the one that makes sense for the situation.
<masinter> CL got rid of some of the uglier function names
igemnace has joined #commonlisp
<masinter> in the middle of writing a FOR you need a WHEN ... that you hadn't thought of, you'd have to go back and change the MAP function
<beach> masinter: Perhaps you can answer the question we had a few days ago. The grammar for LOOP does not allow for termination clauses anywhere, but there is a passage in the text that says it is allowed. Which one is right?
<masinter> i never worked on the iteration committee
<beach> Oh, I thought when you said "i invented loop", that's what you meant. Sorry.
<ixelp> Mail Thread Index
<masinter> before loop
<beach> Thanks for the link.
<masinter> loop was added because interlisp had for / do / while iterators
<masinter> and interlisp had it because i showed teitelman how cool it was in lisp/360
<beach> I see.
<masinter> i kept the fanfold paper but i donated all of my lisp stuff to the computer history museum because ... lisp was dead i thought
NotThatRPG has quit [Quit: Textual IRC Client: www.textualapp.com]
<jeosol> masinter: thanks for the historical context and preserving those document.
<jeosol> good morning all!
<jeosol> masinter: from your last statement, I guess lisp isn't dead then, or it resurrected?
<edwlan[m]> lisp is undead
<masinter> like the night king in Game of Throwns, raising the undead
<masinter> all of these old lisps coming to life again! https://online.interlisp.org !
<ixelp> Interlisp Online
<masinter> but winter is coming
<jeosol> winter is coming for lisp, or ai?
<masinter> ai is the winter
<masinter> i mean AI today
pfd has quit [Ping timeout: 260 seconds]
czy has joined #commonlisp
occ has quit [Ping timeout: 255 seconds]
<jeosol> masinter: thanks for sharing the last link. Are you following any of recent results from deep-learning paradigms? What happened to the gofai techniques of the early 80s(?)
occ has joined #commonlisp
jeosol has quit [Quit: Client closed]
epony has quit [Remote host closed the connection]
rtypo has joined #commonlisp
dcb has quit [Quit: MSN Messenger v2.16.1]
Demosthenex has quit [Ping timeout: 276 seconds]
Demosthenex has joined #commonlisp
rtypo has quit [Ping timeout: 255 seconds]
jeosol has joined #commonlisp
slyrus has joined #commonlisp
skin has joined #commonlisp
waleee has quit [Ping timeout: 260 seconds]
ahc has joined #commonlisp
Cymew has joined #commonlisp
Cymew has quit [Client Quit]
Cymew has joined #commonlisp
shka has joined #commonlisp
rgherdt has joined #commonlisp
tasty has quit [Quit: rebooting for kernel updates]
<beach> clhs butlast
<ixelp> CLHS: Function BUTLAST, NBUTLAST
<beach> Check out the example (butlast lst 5) => (1 2 3 4)
<beach> Oh, sorry. It is correct! *blush*
tasty has joined #commonlisp
tasty has quit [Changing host]
tasty has joined #commonlisp
occ has quit [Ping timeout: 268 seconds]
MajorBiscuit has joined #commonlisp
occ has joined #commonlisp
kenran has joined #commonlisp
cm_ has joined #commonlisp
lucasta has joined #commonlisp
cm_ has quit [Quit: Leaving]
skin has quit [Read error: Connection reset by peer]
Krystof has joined #commonlisp
LW has joined #commonlisp
OlCe has quit [Ping timeout: 246 seconds]
occ has quit [Ping timeout: 276 seconds]
occ has joined #commonlisp
ska80 has joined #commonlisp
ska80 has quit [Remote host closed the connection]
Gleefre has quit [Ping timeout: 260 seconds]
glaucon has joined #commonlisp
pfdietz has joined #commonlisp
<Demosthenex> omg, so i'm having to write perl for the first time in years, so painful.
usr241d2a4d has joined #commonlisp
<Demosthenex> functionwithparen( sorthasnoparen @{$ting->{$$whoopie}}[9] ); and they say ()'s are too hard or complex
Guest79 has quit [Ping timeout: 260 seconds]
pranavats has left #commonlisp [Disconnected: Hibernating too long]
lucasta has quit [Remote host closed the connection]
occ has quit [Ping timeout: 248 seconds]
lucasta has joined #commonlisp
<beach> Demosthenex: Who is forcing you?
pranavats has joined #commonlisp
pranavats has left #commonlisp [Disconnected: Hibernating too long]
Gleefre has joined #commonlisp
usr241d2a4d has quit []
pranavats has joined #commonlisp
nij- has joined #commonlisp
nij_ has joined #commonlisp
nij- has quit [Killed (NickServ (GHOST command used by nij_))]
nij_ is now known as nij-
nij_ has joined #commonlisp
nij- has quit [Killed (NickServ (GHOST command used by nij_))]
nij_ is now known as nij-
nij- has quit [Killed (NickServ (GHOST command used by nij_))]
nij_ has joined #commonlisp
nij_ is now known as nij-
nij- has quit [Remote host closed the connection]
nij- has joined #commonlisp
<nij-> After a structure is defined, we can make a structure instance easily by, say, #S(person :name "John" :email "john@gmail.com"). I wonder why such functionality isn't default to classes as well. Is it because classes are too powerful and general?
<beach> You can do it with a simple reader macro. We do that for abstract syntax trees in SICL.
<beach> So you can say [person :name "John" :email "john@gmail.com"]
lucasta has quit [Remote host closed the connection]
<beach> Just define [ to be a reader macro that does (apply #'make-instance (read-delimited-list #\] stream t)) or something like that.
lucasta has joined #commonlisp
<jackdaniel> nij-: structure objects are simpler - i.e all their slots are allocated on a list or on a vector
<jackdaniel> standard object may have class-allocated slots (for example)
epony has joined #commonlisp
<jackdaniel> (mind that #s... denotes a literal)
Josh_2 has joined #commonlisp
<Josh_2> :trumpet: hi
<Josh_2> Does anyone else have an issue with very latest lisp-unit2? I clone the repo but when I load my system lisp-unit2:*test-db* is nil so the loading fails
<Josh_2> If I set the value of *test-db* to an instance of a test-database everything loads fine (after the fact). How can I set this value just before my system loads?
<nij-> beach, thanks.. but my question is why we can't do that for all classes like structures, and if we can why isn't it a default.
<nij-> jackdaniel What is a list-allocated slot?
<Josh_2> Annoyingly I have to wait for my system to fail, set the value and then load my system :(
<beach> You can do it for all classes. I can't answer the question as to why there is no such reader macro by default.
<jackdaniel> nij-: when the object has slots, they are put in the memory
<beach> nij-: Lots of people want lots of thing to be predefined in Common Lisp. But Common Lisp makes it easy to define things yourself, and the language would be absolutely huge (way more than now) if those desires of everyone were met.
<jackdaniel> in the case of structures you may decided how they are stored with the :type argument
<jackdaniel> it may be a list, a vector or an implementation-specific structure
Josh_2 has quit [Read error: Connection reset by peer]
<beach> nij-: Perhaps a better question is why this technique for creating structure instances was not removed in the standard.
<nij-> beach I understand your frustration. I don't mean to whine for the lack of such functionality. I'm just curious if classes are too general for such default functionality. And if so, how?
<beach> nij-: No, I just showed you how to do it.
<splittist> nij- Yes. Because there are many ways and times one might want to initialize the slot of a class instance.
Josh_2 has joined #commonlisp
<nij-> beach's answer seems to conflict to splittist's and jackdaniel's.. but yeah beach's solution seems to take care of it..
<Josh_2> Idk if I timed out before my message was ssent but I sorted my problem. Tard moment :sunglasses:
<splittist> nij-: not a conflict - different answers to different parts of the question.
kenran` has joined #commonlisp
occ has joined #commonlisp
<nij-> Thanks
kenran has quit [Ping timeout: 240 seconds]
<pfdietz> One should be leery of putting functionality into the reader, since it can immediately lead to incompatibilities between different software components.
random-nick has joined #commonlisp
<beach> One would use a specific readtable for the code.
KvL has quit [Quit: ZNC 1.8.2+deb2build5 - https://znc.in]
KvL has joined #commonlisp
pfdietz has quit [Quit: Client closed]
edgar-rft has quit [Ping timeout: 264 seconds]
edgar-rft has joined #commonlisp
<Demosthenex> beach: work. perl is preinstalled with basic core mods. can't install anything else
<beach> I see.
ryanbw1 has quit [Ping timeout: 250 seconds]
jeffrey has quit [Remote host closed the connection]
kenran` is now known as kenran
ahc has quit [Quit: Client closed]
<jcowan> beach: What would be the reason for removing #s when the standard was being written?
kenran has quit [Ping timeout: 276 seconds]
Gleefre has quit [Remote host closed the connection]
Gleefre has joined #commonlisp
Gleefre has quit [Remote host closed the connection]
Gleefre has joined #commonlisp
tyson2 has joined #commonlisp
robin has quit [Ping timeout: 260 seconds]
kenran has joined #commonlisp
jeffrey has joined #commonlisp
Gleefre has quit [Ping timeout: 260 seconds]
LW has quit [Quit: WeeChat 3.6]
rtypo has joined #commonlisp
nij- has quit [Ping timeout: 260 seconds]
szkl has quit [Quit: Connection closed for inactivity]
lucasta has quit [Quit: Leaving]
edgar-rft has quit [Quit: Leaving]
jeosol has quit [Quit: Client closed]
pve has joined #commonlisp
glaucon has quit [Ping timeout: 276 seconds]
LW has joined #commonlisp
LW has quit [Client Quit]
Cymew has quit [Ping timeout: 255 seconds]
<splittist> It seems there's an HBS Case on Palladian Software (referring to masinter's AI presentation). Would be fascinating to read. The advertisement in that presentation includes the text "In fact, by giving each of our AI talents their own LISP machine, mirable dictu, we now have a prototype."
chrcav has quit [Ping timeout: 265 seconds]
chrcav has joined #commonlisp
jeosol has joined #commonlisp
zxcvz has joined #commonlisp
<splittist> Apart from not having the advertisements (boo!) the (old) AI Magazine archives are fascinating https://ojs.aaai.org/aimagazine/index.php/aimagazine/issue/archive
<ixelp> Archives | AI Magazine
<masinter> my AI presentation?
<splittist> Indeed.
<jmercouris> How to write a temp file?
<jmercouris> I'm thinking about something that goes in /tmp
<jmercouris> but I don't want to hardcode /tmp
<jmercouris> because, what about Windows?
<splittist> uiop will create an OS appropriate temp file, I believe
<Josh_2> jmercouris: uiop:with-temporary-file
<jmercouris> Indeed, I just was looking at it!
<jmercouris> thanks Josh_2 and splittist
<jmercouris> for some reason UIOP didn't cross my mind
edgar-rft has joined #commonlisp
waleee has joined #commonlisp
jeffrey has quit [Ping timeout: 248 seconds]
igemnace has quit [Remote host closed the connection]
cage has joined #commonlisp
<Catie> `(,@(when t `(:direction ,'direction)))
<Catie> Oh this isn't my REPL, oh dear
kevingal has joined #commonlisp
kevingal_ has joined #commonlisp
MajorBiscuit has quit [Ping timeout: 252 seconds]
selfish has quit [Read error: Connection reset by peer]
tevo has joined #commonlisp
robin has joined #commonlisp
Gleefre has joined #commonlisp
Gleefre has quit [Remote host closed the connection]
kenran has quit [Remote host closed the connection]
notzmv has joined #commonlisp
karlosz has joined #commonlisp
zxcvz has quit [Quit: zxcvz]
neon has joined #commonlisp
neon has quit [Quit: Sleep]
<semarie> (:DIRECTION DIRECTION)
* semarie is very laggy
dcb has joined #commonlisp
dcb has quit [Remote host closed the connection]
dcb has joined #commonlisp
<gilberth> ,`(,@(when t `(:direction ,'direction)))
<ixelp> `(,@(when t `(:direction ,'direction))) => (:DIRECTION DIRECTION)
<gilberth> ixelp is less so.
<jackdaniel> ,'(,@`'sadf'sa
<jackdaniel> doesn't implement the gigo pipeline
<gilberth> Whatever a gigo pipeline is.
<jackdaniel> garbage in garbage out (duh)
<gilberth> No, I believe in gino.
<jackdaniel> that's what a programmer who neglected implementing the gigo pipeline would say
<gilberth> Part of the specification for ixelp is that it is triggered only when the garbage following a comma at least parses.
<gilberth> Under *read-suppress* to be precise.
tane has joined #commonlisp
tane has quit [Changing host]
tane has joined #commonlisp
amoroso has joined #commonlisp
<jackdaniel> I should have added /j (standing for "joking") it seems
pfdietz has joined #commonlisp
pfdietz has quit [Client Quit]
pfdietz has joined #commonlisp
rogersm has joined #commonlisp
<edwlan[m]> One thing I don’t like about a lot of the builtin read macros for data structures is they produce an actual value of some type at read time
<edwlan[m]> ,(let ((a 1)) #(a))
<ixelp> (let ((a 1)) #(a)) ;Compiler warnings : ↩ ; In an anonymous lambda form: Unused lexical variable A ↩ => #(A)
jello_pudding has quit [Ping timeout: 250 seconds]
<edwlan[m]> I find this surprising and often wish they had chosen to expand to a function call and had a separate convention for this “immediate” behavior
<edwlan[m]> E.g. #() is just (vector)
<gilberth> Well, (+ 1 2) isn't the same as (list + 1 2) either, so it would have been inconsistent. Also: You may want to CL:READ some data as well.
<gilberth> Meanwhile ,(let ((a 42)) `#(,a))
<ixelp> (let ((a 42)) `#(,a)) => #(42)
<edwlan[m]> Yeah, the priority of quote and quasiquote seems backwards to me
<pfdietz> The problem with messing with the read table is your software ceases to be composable with other software that also does so.   If you have print methods for objects that exploit the read table customization, these cease to print readably in general.
morganw has joined #commonlisp
<gilberth> btw in CLtL1 vectors were not self-evaluating. So you would need to say '#(...) to mention a vector literal.
tyson2 has quit [Remote host closed the connection]
kenran has joined #commonlisp
<semz> early CL in general seemed rather fond of quotation, with #'(lambda ...) and all
<gilberth> Yet earlier Lisps needed ':FOO and I have seen '"foo" as well.
<gilberth> But then Lisp used to use symbols for strings. The reverse of JS, which uses strings for symbols.
jello_pudding has joined #commonlisp
dilated_dinosaur has quit [Ping timeout: 250 seconds]
dilated_dinosaur has joined #commonlisp
markb1 has quit [Read error: Connection reset by peer]
amoroso has quit [Quit: Client closed]
FIlystyn has joined #commonlisp
<FIlystyn> hello
<FIlystyn> how to prevent calling function that uses global variable so the glob var is always set
<Shinmera> what
<FIlystyn> mmm i made a function that simply uses *GLOB-VAR* but what if it's not defined with defvar
<FIlystyn> how to check variable *exists*
<FIlystyn> if not defvar !
<Shinmera> clhs boundp
<ixelp> CLHS: Function BOUNDP
<Shinmera> but generally: just don't use variables that aren't defined.
dilated_dinosaur has quit [Ping timeout: 276 seconds]
Foretspaisbles has joined #commonlisp
amoroso has joined #commonlisp
cage has quit [Quit: rcirc on GNU Emacs 28.2]
Foretspaisbles has quit [Quit: Client closed]
amoroso has quit [Quit: Client closed]
occ has quit [Ping timeout: 252 seconds]
dilated_dinosaur has joined #commonlisp
pfdietz has quit [Ping timeout: 260 seconds]
occ has joined #commonlisp
<FIlystyn> thx for help
xristos has quit [Ping timeout: 260 seconds]
MajorBiscuit has joined #commonlisp
danisanti has joined #commonlisp
<danisanti> Hi all!
mingus has quit [Quit: mingus]
<danisanti> I have created an lisp image with SBCL. Does anyone know how can I load this image when I am inside the REPL? (I know that sbcl --core image-name does this)
<random-nick> I don't think that's possible
<gilberth> That's not possible. This image is like an executable file and can only be loaded once on startup.
pfdietz has joined #commonlisp
jeffrey has joined #commonlisp
pfdietz has quit [Quit: Client closed]
pfdietz has joined #commonlisp
lucasta has joined #commonlisp
kenran has quit [Remote host closed the connection]
NotThatRPG has joined #commonlisp
jeffrey has quit [Ping timeout: 246 seconds]
<danisanti> ok, thanks
danisanti has left #commonlisp [ERC 5.5 (IRC client for GNU Emacs 30.0.50)]
attila_lendvai_ has quit [Ping timeout: 276 seconds]
jeosol has quit [Quit: Client closed]
tane has quit [Quit: Leaving]
<zyd> Has anyone got lem to successfully install and run via roswell? If so could you tell me what SBCL version you are running.
xristos has joined #commonlisp
<zyd> if you need the command: `ros run -- --version'
MajorBiscuit has quit [Quit: WeeChat 3.6]
pfdietz has quit [Ping timeout: 260 seconds]
nij- has joined #commonlisp
dilated_dinosaur has quit [Ping timeout: 248 seconds]
lucasta has quit [Remote host closed the connection]
pfdietz has joined #commonlisp
dilated_dinosaur has joined #commonlisp
Lumine has quit [Quit: sleep]
jeosol has joined #commonlisp
akoana has joined #commonlisp
tyson2 has joined #commonlisp
<jeosol> danisanti: have you resolved your issue yet? Like random-nick and gilberth suggested, it's not possible.
<jeosol> danisanti: perhaps, depending on what you are trying to do, you may serialize the objects to file and load them into a running session.
beach` has joined #commonlisp
beach has quit [Ping timeout: 265 seconds]
morganw has quit [Remote host closed the connection]
jeffrey has joined #commonlisp
tevo has quit [Read error: Connection reset by peer]
tevo has joined #commonlisp
pve has quit [Quit: leaving]
rgherdt has quit [Remote host closed the connection]
FIlystyn has quit [Quit: Lost terminal]
pfdietz has quit [Quit: Client closed]
kevingal_ has quit [Ping timeout: 248 seconds]
kevingal has quit [Ping timeout: 248 seconds]
shka has quit [Ping timeout: 256 seconds]
akoana has quit [Quit: leaving]
NicknameJohn has quit [Ping timeout: 255 seconds]
digi9 has joined #commonlisp
digi9 has quit [Client Quit]
pfdietz has joined #commonlisp
random-nick has quit [Ping timeout: 246 seconds]
jeosol has quit [Quit: Client closed]
occ has quit [Ping timeout: 248 seconds]
jeffrey has quit [Ping timeout: 252 seconds]
jeffrey has joined #commonlisp
neon has joined #commonlisp
nij- has quit [Ping timeout: 260 seconds]
jmdaemon has quit [Ping timeout: 255 seconds]
grawlinson has quit [Quit: SIGTERM]
jeffrey has quit [Ping timeout: 265 seconds]
jmdaemon has joined #commonlisp
Gleefre has joined #commonlisp
grawlinson has joined #commonlisp
Gleefre has quit [Remote host closed the connection]
jeffrey has joined #commonlisp
karlosz has quit [Quit: karlosz]
lucasta has joined #commonlisp
jeffrey has quit [Ping timeout: 240 seconds]
jeffrey has joined #commonlisp