yitzi has quit [Remote host closed the connection]
random-nick has quit [Ping timeout: 252 seconds]
<pkw>
I think one thing I really like about CL is how 1. I can program very exploratory. and 2. I can refactor that into vero orgarnized modules better than any other lang. I've used.
<pkw>
Like usually those two things are closer to being mutually exclusive in prg. langs.
meaty has quit [Quit: touch grass]
rogersm has quit [Ping timeout: 260 seconds]
rogersm has joined #commonlisp
meaty has joined #commonlisp
meaty has quit [Changing host]
meaty has joined #commonlisp
thuna`` has quit [Read error: Connection reset by peer]
thuna` has joined #commonlisp
thuna` has quit [Read error: Connection reset by peer]
thuna`` has joined #commonlisp
jon_atack has joined #commonlisp
jonatack has quit [Ping timeout: 255 seconds]
thuna`` has quit [Read error: Connection reset by peer]
thuna` has joined #commonlisp
thuna`` has joined #commonlisp
thuna` has quit [Ping timeout: 246 seconds]
josrr has quit [Remote host closed the connection]
<ixelp>
GitHub - Shinmera/iclendar: iCalendar/RFC5545 file format library for Common Lisp
<Shinmera>
Since I managed to bend things to exactly fit the iCalendar object structure, including validation of everything.
<ingeniot>
Great: An even larger reading list. :-D
cleon has joined #commonlisp
cleon has quit [Client Quit]
contrapunctus has left #commonlisp [#commonlisp]
King_julian has quit [Ping timeout: 265 seconds]
semarie has quit [Quit: WeeChat 4.4.1]
<jackdaniel>
speaking of scrolling, some wip with a separate repaint queue in mcclim: https://turtleware.eu/static/paste/swizzle.mp4 (double buffering in this branch still needs to be added)
<jackdaniel>
this demo used to run for around a minute, because repainting the sheet was synchronuous with adding a new line
edgar-rft_ has joined #commonlisp
contrapunctus has joined #commonlisp
edgar-rft has quit [Ping timeout: 248 seconds]
semarie has joined #commonlisp
Guest71 has quit [Quit: Client closed]
contrapunctus has left #commonlisp [#commonlisp]
Akbar-Birbal has left #commonlisp [#commonlisp]
Akbar-Birbal has joined #commonlisp
<pkw>
Shinmera: does that do vCard ?
<pkw>
(i will look :))
<Shinmera>
no
<Shinmera>
but if they follow similar schemas and it's just about object types, it would be pretty simple to add
<pkw>
Yeah i think so. I will save it in my brain memory.
<pkw>
I like the reading ASDF code :)
<pkw>
It's a little daunting.
King_julian has joined #commonlisp
Akbar-Birbal has left #commonlisp [#commonlisp]
Akbar-Birbal has joined #commonlisp
mulk has quit [Ping timeout: 260 seconds]
decweb has quit [Ping timeout: 260 seconds]
ingeniot has quit [Ping timeout: 256 seconds]
mgl__ has quit [Ping timeout: 248 seconds]
rozenglass has quit [Quit: leaving]
prokhor has joined #commonlisp
mulk has joined #commonlisp
cdegroot has quit [Remote host closed the connection]
sailorCa- has quit [Remote host closed the connection]
sailorCat has joined #commonlisp
lucasta has joined #commonlisp
spdegabrielle has joined #commonlisp
edgar-rft_ is now known as edgar-rft
josrr has joined #commonlisp
mesaoptimizer has quit [Quit: mesaoptimizer]
mesaoptimizer has joined #commonlisp
rtypo has joined #commonlisp
cdegroot has joined #commonlisp
<younder>
Been messing with defreadtable to parse rules like: #R("?* if ?v*"
<younder>
("Do you really think it is likely that ~a?" "Do you wish that ~a"
<younder>
"What do you think about ~a?" "Really -- if ~a?"))
Akbar-Birbal has left #commonlisp [Error from remote client]
yitzi has quit [Remote host closed the connection]
Akbar-Birbal has joined #commonlisp
X-Scale has joined #commonlisp
<yacin>
rewriting eliza?
contrapunctus has joined #commonlisp
dlowe has quit [Remote host closed the connection]
dlowe has joined #commonlisp
<_death>
what's wrong with a plain list
X-Scale has quit [Ping timeout: 256 seconds]
X-Scale has joined #commonlisp
<Shinmera>
_death: lists are so old school
zxcvz has joined #commonlisp
zxcvz has quit [Client Quit]
ingeniot has joined #commonlisp
<younder>
Well this one uses a vector of rule classes and strings and ppcre.
<_death>
carriage and a cdrse
<skin>
I've actually been curious about singly linked list performance on the various implementations. I bet they have crazy good optimizations for them. I'd really like to see some benchmarks.
<_death>
you can always transform a list into another representation.. reader macros are for syntactic convenience
<skin>
You can make a struct with `(defstruct (mystruct (:type list)) x y z)` and it will be stored as a singly linked list. Is it faster/slower? Benefits? Are there optimizations I'm not taking advantage of because I'm not using "what everyone else used" for so long?
<_death>
skin: it is "slower" and "takes more space" (I am using quotation marks because I want to avoid pedantic discussions about context).. it's basically as a concise way to provide named accessors when you want to use plain lists
<_death>
skin: for example mystruct-z will need to start from the cons, go to the cdr, go to the cdr, take the car.. instead of just random access (aref instance 2) (the underlying representation of ordinary structures is that of a vector)
ingeniot has quit [Ping timeout: 256 seconds]
<skin>
I'm wondering if that's just API. For example, if I knew you were going to need 3 cons cells, I could allocate a vector under the hood and store a single byte in each cons cell's cdr that, if set, said "the next cons cell is just the next memory location" or something like that. The api would be the same, and it would still take up more space, but not as much as a naive implementation.
<bike>
they used to do that stuff, but it's really not worth the bother
<skin>
I guess I could just use `disassemble` to check.
<skin>
Oh yeah?
<bike>
you can just make a regular struct and then the implementation doesn't have to jump through hoops to make it not suck
<bike>
or do :type vector
<skin>
I can see wanting to though. There's so much tooling around lists in lisp. destructuring bind, `subst`, `tree-equal`, etc.
<bike>
most of that stuff isn't in the part of the code that needs to go fast.
<skin>
(I don't actually see a reason to use :type list, just talking :)
<bike>
cdr coding, that's the term
<skin>
Good point. Struct's usually in the hot path.
<_death>
it's not often that you want to use subst/tree-equal with structures
<skin>
Yeah, I can see that.
alcor has joined #commonlisp
treflip has joined #commonlisp
davidseville has joined #commonlisp
<younder>
crd coding makes good prototyping. You have the whole list and sequence lib available and lists and vector just display in the REPL. No - print-unreadable-object o worry about.
<younder>
Once the data sets's get bigger..
<_death>
by default ordinary structures also print all their slot values.. and it's often the case that you don't actually want to do that, that you want to only print some slot values and hide the rest
gjvc has joined #commonlisp
<_death>
so over time you realize that defclass is actually a pretty good default (which also has a clear protocol for redefinition, supports multiple inheritance, etc.)
ingeniot has joined #commonlisp
ingeniot has quit [Client Quit]
ingeniot has joined #commonlisp
simendsjo has joined #commonlisp
treflip has quit [Remote host closed the connection]
josrr has quit [Remote host closed the connection]
ingeniot has quit [Ping timeout: 256 seconds]
King_julian has quit [Ping timeout: 260 seconds]
josrr has joined #commonlisp
bjorkintosh has joined #commonlisp
bjorkintosh has joined #commonlisp
bjorkint0sh has quit [Quit: "Every day, computers are making people easier to use." David Temkin]
shawnw has joined #commonlisp
lucasta has quit [Quit: Leaving]
wacki has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
wacki has joined #commonlisp
amb007 has quit [Ping timeout: 245 seconds]
amb007 has joined #commonlisp
yitzi has joined #commonlisp
Pixel_Outlaw has joined #commonlisp
X-Scale has quit [Ping timeout: 256 seconds]
zxcvz has joined #commonlisp
<aeth>
As far as CDR coding goes, you kind of need immutable cons cells to really benefit, as that article notes. With mutable cons cells, you might have to expensively update your optimized array-style chunk of the linked list. With immutable cons cells, you might be forced to REVERSE in order to do things that would normally use (SETF CDR) which actually helps CDR coding because now it can compact the entire
<aeth>
thing on reversal even when it couldn't do it while building it up.
<aeth>
Since Common Lisp has no ilist/icons type, that would be up to libraries to attempt to do, not the implementation itself. Unless it for some reason did something like this on literal/quoted lists alone. Probably not.
<aeth>
As for structs printing all of their slot values, for the kinds of things that make sense as structures, that usually doesn't backfire. It sometimes incredibly, incredibly backfires. Mostly when you want the struct to hold one or more gigantic arrays. Then you have to make it a print-unreadable-object.
davidseville has quit [Ping timeout: 252 seconds]
<aeth>
On the other hand, it often helps to have a short constructor form (no keyword arguments, and not a MAKE-FOO and especially not a MAKE-INSTANCE 'FOO) that can also double as a printable representation imo.
monkoose has joined #commonlisp
monkoose has quit [Client Quit]
monkoose has joined #commonlisp
char has joined #commonlisp
monkoose has quit [Quit: Client closed]
zxcvz has quit [Quit: zxcvz]
ingeniot has joined #commonlisp
shawnw has quit [Ping timeout: 246 seconds]
ingeniot has quit [Client Quit]
cage has joined #commonlisp
cage has quit [Excess Flood]
cage has joined #commonlisp
pestctrl has quit [Remote host closed the connection]
pestctrl has joined #commonlisp
jon_atack has joined #commonlisp
jonatack has quit [Read error: Connection reset by peer]
pestctrl has quit [Remote host closed the connection]
pestctrl has joined #commonlisp
yottabyte has joined #commonlisp
random-nick has quit [Ping timeout: 248 seconds]
mgl__ has joined #commonlisp
meaty has joined #commonlisp
meaty has quit [Changing host]
meaty has joined #commonlisp
zxcvz has joined #commonlisp
random-nick has joined #commonlisp
alcor has quit [Ping timeout: 245 seconds]
Akbar-Birbal has left #commonlisp [#commonlisp]
char has quit [Ping timeout: 246 seconds]
zxcvz has quit [Quit: zxcvz]
mgl__ has quit [Ping timeout: 255 seconds]
zxcvz has joined #commonlisp
triffid has quit [Remote host closed the connection]
zxcvz has quit [Client Quit]
ym has quit [Remote host closed the connection]
random-nick has quit [Ping timeout: 246 seconds]
triffid has joined #commonlisp
<Pixel_Outlaw>
aeth, could you link said article? I joined after it was posted. Color me interested. :)
<aeth>
I also, coincidentally, mentioned it in #lisp (with a link) as an example of something that you may want to do with immutable lists other than just sharing all shared state
<aeth>
although I suppose you could combine the two with ranges/subsequences
<aeth>
in "modern" terms you'd consider calling the functionality in question the equivalent (setf cdr) instead of RPLACD
<aeth>
(setf cdr) being the actual name (yes you can have non-symbol names! but only for SETF functions) of the function called by (setf (cdr foo) ...)
<aeth>
although that's probably just another name for REPLACD
<aeth>
*RPLACD
<aeth>
Pixel_Outlaw: And surprisingly, neither seems to mention reverse at all!
<aeth>
People love reverse if they're going into immutable or mostly-functional lists in the modern day. jcowan is an advocate for that.
<aeth>
not particularly relevant, just one of the most recent discussions I was a part of (picking a random link that was _not_ me would be weird)
X-Scale has joined #commonlisp
<aeth>
It's also the only IRC I use on my phone these days because read-only is fine on a phone. Too bad #lispcafe is unlogged because I'd estimate more than half of the on-topc about-Lisp conversations take place there or in #clschool so there's just no way to read those anonymously and permanently.
decweb has joined #commonlisp
char has quit [Ping timeout: 260 seconds]
olnw has quit [Ping timeout: 248 seconds]
mwnaylor has joined #commonlisp
<mwnaylor>
It's taken me a little time to take a shine to sly. I feel I got more features (or at least easier to use) with edebug for elisp or cider for Clojure. Persistence helps. I finally figured out that I need to be in the correct stack frame in order to evaluate forms. Also seams that sly (perhaps slynk) adds a bunch of stack frames above what I expected from my source code.
olnw has joined #commonlisp
<mwnaylor>
GNU Emacs 29.4 w/ SBCL 2.4.3.
<Pixel_Outlaw>
Some historic sales ads for the nostalgic. Franz Inc launching CLIM 1.0 and Apple launching Macintosh Common Lisp 2.01B. https://i.imgur.com/5fjnTok.jpeg
wacki has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
wacki has joined #commonlisp
wacki has quit [Read error: Connection reset by peer]
wacki has joined #commonlisp
phantomics__ has quit [Ping timeout: 260 seconds]
phantomics__ has joined #commonlisp
<tux0r>
macintosh common lisp has come a long way
<tux0r>
at least its binary name "ccl" has started to make sense again
<mwnaylor>
I remember using a lisp on the Mac in college, but no idea which version it was.
wacki has quit [Ping timeout: 246 seconds]
<Pixel_Outlaw>
It's nice they had CLOS with inspector too.
<Pixel_Outlaw>
I'll try and digitize my old AI magazines but might be a bit rough as I only have a cellphone.
<Pixel_Outlaw>
Not going to wreck them by tearing them apart to scan.
JuanDaugherty has joined #commonlisp
attila_lendvai has quit [Ping timeout: 248 seconds]
wacki has joined #commonlisp
yitzi has quit [Remote host closed the connection]
mgl__ has joined #commonlisp
char has joined #commonlisp
wacki has quit [Ping timeout: 252 seconds]
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #commonlisp
meaty has quit [Ping timeout: 246 seconds]
char has quit [Ping timeout: 246 seconds]
josrr has quit [Remote host closed the connection]
mgl__ has quit [Ping timeout: 260 seconds]
lagash has quit [Remote host closed the connection]