<aeth>
a bunch of things already do that (#S() for structs, #() for vectors, etc.) but using special syntax
ericcodes has joined #commonlisp
pranavats has left #commonlisp [Disconnected: Replaced by new connection]
pranavats has joined #commonlisp
<bike>
i see people do that but i don't usually. text isn't really the best serialization format
larix1 has joined #commonlisp
larix has joined #commonlisp
<aeth>
oh, it's not for serialization
<aeth>
it's for stack traces
rgherdt has quit [Quit: Leaving]
<aeth>
and other debugging
<aeth>
allows me to instantly recreate a problematic call
contrapunctus has joined #commonlisp
azimut has joined #commonlisp
khrbtxyz has quit [Ping timeout: 264 seconds]
khrbtxyz has joined #commonlisp
khrbtxyz has quit [Ping timeout: 264 seconds]
<aeth>
although I suppose that's technically serialization
amb007 has joined #commonlisp
khrbtxyz has joined #commonlisp
ericcodes has quit [Remote host closed the connection]
ericcodes has joined #commonlisp
amb007 has quit [Ping timeout: 256 seconds]
azimut has quit [Ping timeout: 240 seconds]
tyson2 has quit [Remote host closed the connection]
decweb has quit [Ping timeout: 260 seconds]
azimut has joined #commonlisp
bubblegum has quit [Ping timeout: 260 seconds]
<beach>
anthk_: Also, why did you decide to make your factorial function tail recursive?
bubblegum has joined #commonlisp
<jcowan>
text and binary are both good for (different applications of) serialization
amb007 has joined #commonlisp
amb007 has quit [Ping timeout: 256 seconds]
theBlackDragon has quit [Ping timeout: 256 seconds]
khrbtxyz has quit [Ping timeout: 264 seconds]
theBlackDragon has joined #commonlisp
khrbtxyz has joined #commonlisp
bilegeek has quit [Quit: Leaving]
tibfulv has quit [Remote host closed the connection]
tibfulv has joined #commonlisp
waleee has joined #commonlisp
Inline has quit [Ping timeout: 255 seconds]
<epony>
for posterity ;-)
larix1 has quit [Ping timeout: 245 seconds]
larix has quit [Ping timeout: 264 seconds]
bilegeek has joined #commonlisp
Pixel_Outlaw has quit [Quit: Leaving]
pranavats has left #commonlisp [Disconnected: Replaced by new connection]
pranavats has joined #commonlisp
azimut has quit [Ping timeout: 240 seconds]
herjazz has joined #commonlisp
waleee has quit [Ping timeout: 245 seconds]
amb007 has joined #commonlisp
amb007 has quit [Ping timeout: 245 seconds]
NicknameJohn has quit [Ping timeout: 264 seconds]
amb007 has joined #commonlisp
pve has joined #commonlisp
khrbtxyz has quit [Ping timeout: 264 seconds]
khrbtxyz has joined #commonlisp
khrbtxyz has quit [Ping timeout: 246 seconds]
khrbtxyz has joined #commonlisp
olnw has quit [Ping timeout: 244 seconds]
shka has joined #commonlisp
metsomedog has joined #commonlisp
bilegeek has quit [Quit: Leaving]
dino_tutter has joined #commonlisp
waleee has joined #commonlisp
Inline has joined #commonlisp
Inline has quit [Client Quit]
Inline has joined #commonlisp
olnw has joined #commonlisp
<anthk_>
beach: IDK, I came from Scheme and I was used to it
<anthk_>
hello epony
attila_lendvai has joined #commonlisp
<beach>
anthk_: I am sorry to hear that the Scheme community puts so much emphasis on it.
<beach>
It is one thing to have iteration defined in terms of tail recursion. But when the programmer turns recursion into tail recursion, the resulting code becomes unreadable.
<anthk_>
beach: some exercises from SICP can drive you mad
decweb has joined #commonlisp
<beach>
Or when the programmer uses explicit tail recursion instead of iteration.
<anthk_>
for instance, to guess how a geometric function recurses down
<beach>
What is a "geometric function"?
<anthk_>
s,function,series in a function, sorry
<anthk_>
basically there's an exercise and you have to declare a math function in a recursive way
<anthk_>
by paying up attention to the variables
<beach>
Recursion is fine. It is tail recursion that often becomes unreadable.
<anthk_>
from PAIP I was amazed my macsyma, so much functions in few lines
<anthk_>
I can't wait to reach that chapter
<anthk_>
and OFC it might be related to Maxima
<anthk_>
it's still compiling in some slackware laptop for my gf, but I avoided to use clisp, it feels slower than sbcl
<beach>
It probably is.
traidare has joined #commonlisp
<anthk_>
btw, any major software written in CL beside of maxima?
<anthk_>
or games, emulators...
<anthk_>
I know nyxt
jmdaemon has joined #commonlisp
rgherdt has joined #commonlisp
<metsomedog>
kandria (platformer game)
<decweb>
Define "major software". When people respond with 'maxima' and the like, perhaps they're answering the question "best known software". But there's the silent majority of common lisp software that was just every day product software. Whether well known or buried in obscurity. Alas, all my common lisp products fall into the obscurity category. But they lived, died, had customers, and so on. That companies like Franz and Lispworks have survived all
<decweb>
these years also testifies to people using lisp to make products sufficient to sustain a market for vendors.
<decweb>
(lived and died in the software lifecycle sense, of course)
donleo has joined #commonlisp
<anthk_>
nyxt is a nice webkit4gtk ui, but it handles pages in a smoother way than luakit/vimb
<ixelp>
Running Lisp in Production | Grammarly Engineering Blog
<anthk_>
btw, there's a M-x calc extra library for lem, but it depends on xyzzy-calc, does any CL user where to get it? ql doesn't have it
<beach>
thuna`: anthk_ doesn't seem to pay much attention to the answers given.
<anthk_>
beach: I already read the links
<beach>
anthk_: You might want to acknowledge that then. Otherwise we don't know whether you saw the answers.
<anthk_>
beach: sorry
<anthk_>
as I've seen, CL looks like several years ahead on tech than anything else
<beach>
anthk_: People go to a lot of trouble to avoid learning Common Lisp. They seem to prefer inventing new inferior languages instead.
<anthk_>
I used to use tcl/tk but I hated upvar
<beach>
TCL is a good example of a language designed by someone who knows very little about language design or language implementation. I guess he has learned more since then.
<anthk_>
tcl looked like people smashing down lisp philosphies (badly) into an odd looking Perl
<anthk_>
also tcl without tklib/tcllib and/or tcltls it's severly lacking
<Odin->
Eh, a lot of Lisp gets reinvented independently every now and then.
<Odin->
Not usually in large clusters, though. That usually happens because someone was familiar with Lisp but assumed they couldn't get their target group to use it.
<beach>
Odin-: That's a direct consequence of people avoiding learning Common Lisp at all cost.
<Odin->
beach: Well, _any_ Lisp, but yes.
<beach>
Sure.
<White_Flame>
I find it weird that people call tcl a homoiconic language, just because things are strings. There's no structure to that
<anthk_>
White_Flame: using [expr] everywhere was tiring
younder has quit [Remote host closed the connection]
dcb has quit [Quit: Connection closed for inactivity]
rgherdt has quit [Quit: Leaving]
rgherdt has joined #commonlisp
waleee has quit [Ping timeout: 245 seconds]
traidare has joined #commonlisp
Kyuvi has quit [Ping timeout: 250 seconds]
khrbtxyz has quit [Ping timeout: 246 seconds]
cage has joined #commonlisp
tyson2 has joined #commonlisp
josrr has joined #commonlisp
herjazz has quit [Quit: leaving]
khrbtxyz has joined #commonlisp
AndreiDuma has joined #commonlisp
McParen has joined #commonlisp
McParen has quit [Ping timeout: 260 seconds]
younder has joined #commonlisp
yitzi has joined #commonlisp
mgl_ has joined #commonlisp
<aeth>
The thing about Common Lisp is that if you can't do it, you can add it.
<aeth>
Just about the only restriction is garbage collection (because, arguably, if you go around the runtime like that, you've now written your own compiler in Common Lisp rather than extending Common Lisp)
dino_tutter has quit [Ping timeout: 264 seconds]
<aeth>
Want your own string representation? Yes, you can do that. Want to give it the "..." syntax? Yes, you can even do that by writing a simple reader that reads everything except #\" normally. Etc.
<aeth>
Don't like +? Write your own and reexport most packages from CL, but use your own #'+ and now use that package instead of CL.
<aeth>
The only problem is nobody is going to be able to read your code if you do this. :-)
khrbtxyz has quit [Ping timeout: 260 seconds]
khrbtxyz has joined #commonlisp
Perflosopher has quit [Quit: Ping timeout (120 seconds)]
<younder>
aeth: Just replaced the SBCL garbage collector with hayley's three weeks ago
Perflosopher has joined #commonlisp
jmdaemon has quit [Ping timeout: 252 seconds]
<aeth>
HCL
khrbtxyz has quit [Ping timeout: 264 seconds]
khrbtxyz has joined #commonlisp
AndreiDuma has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
McParen has joined #commonlisp
azimut has joined #commonlisp
Jach has quit [Ping timeout: 276 seconds]
Jach has joined #commonlisp
dcb has joined #commonlisp
mgl_ has quit [Ping timeout: 268 seconds]
zxcvz has joined #commonlisp
zxcvz has quit [Client Quit]
masinter_ has joined #commonlisp
yottabyte has quit [Quit: Connection closed for inactivity]
jon_atack has quit [Ping timeout: 252 seconds]
wheatengineer has joined #commonlisp
wheatengineer has quit [Client Quit]
green_ has joined #commonlisp
mgl_ has joined #commonlisp
azimut has quit [Ping timeout: 240 seconds]
monospod has joined #commonlisp
jladd has quit [Ping timeout: 276 seconds]
jladd has joined #commonlisp
<random-nick>
I don't think you need to write a reader to change the string syntax, you can just change the dispatch for #\" in the readtable
<random-nick>
afaik the reader algorithm just reads symbols, numbers and dispatches on dispatch characters from the readtable
<aeth>
younder: but that does kind of prove my point... you couldn't quickload the new garbage collector
NicknameJohn has joined #commonlisp
<epony>
not being able to interchange parts of the program, oh come on
<epony>
kernels must be able to switch task and network schedulers in flight without losing state of the system too
<epony>
also rulesets for filtering systems, these are all object data structures store-processors
<epony>
applies to window managers without losing sessions too, and a lot other such example, why would the garbage collected data struction not be pivotal?
tyson2 has quit [Remote host closed the connection]
<beach>
epony: Are your remarks in relation to switching the garbage collector?
overclucker_ has joined #commonlisp
overclucker has quit [Read error: Connection reset by peer]
Odin-LAP has quit [Quit: What's this button do?]
attila_lendvai has quit [Ping timeout: 260 seconds]
monospod has quit [Quit: Konversation terminated!]
Odin-LAP has joined #commonlisp
<yitzi>
beach: They are apropos of nothing. epony is a troll.
<beach>
Hmm.
<random-nick>
could genera switch garbage collectors on the fly?
<younder>
A arena allocator would help for games and large matrix operations
<beach>
I don't know the answer to that one, but it is extremely hard to make the garbage collector totally independent of the rest of the system, while still getting good performance.
NicknameJohn has quit [Ping timeout: 260 seconds]
<younder>
I mean if you know the lifetime and there are a whole bunch of stuff that is allocated in on go and then all released then garbage collection is just a waste of time
<aeth>
or, famously, if you're writing software for a missile
<jcowan>
I found a (not particularly fast) implementation of malloc-free for fixed size arenas, if someone wants to play with them
<jcowan>
in C
jrx has joined #commonlisp
<jcowan>
http://www.math.utah.edu/docs/info/mmalloc_toc.html is a variant of GNU malloc in which you mmap a heap rather than invoking sbrk. You create the heap or attach an existing heap file with mmalloc_attach.
<ixelp>
MMALLOC, the GNU memory-mapped malloc package - Table of Contents
<younder>
random-nick: cool!
<jcowan>
Oh, I was wrong to say the arenas are fixed size
jrx has quit [Quit: ERC 5.5.0.29.1 (IRC client for GNU Emacs 29.1.50)]
<epony>
yitzi, operating system tooling is not a "troll" mind you
<random-nick>
epony: btw, on wayland you generally can't switch window managers without losing your session
<epony>
that's not an OS function, but a failed compositor protocol
<epony>
operating systems are a class of resource managers and garbage collection is a part of the tooling inside that instrumentation and is in the autmatic resource management category (in this case memory)
Pixel_Outlaw has joined #commonlisp
<epony>
an reliable data structure organisation for memory management would allow algorithm changes, applies to the scheduler for tasks and networking, and filter systems too
overclucker_ has quit [Read error: Connection reset by peer]