<bqv>
Xach: And a few of the self-inconsistencies it uncovered
Younder has quit [Quit: Leaving]
varjag has quit [Ping timeout: 264 seconds]
kam1 has joined #lisp
frgo_ has quit [Ping timeout: 240 seconds]
kaftejiman has quit [Remote host closed the connection]
wsinatra has quit [Quit: WeeChat 3.0]
<Xach>
bqv: how can I see those?
random-nick has quit [Ping timeout: 256 seconds]
galex-713 has joined #lisp
<mrios22>
If I start a lisp process like a Hunchentoot server on a remote machine, how do I get access to a repl that I can use to interact with the server?
<bqv>
Xach: are you at all proficient with nix?
<Xach>
bqv: not at all
nij has joined #lisp
<Xach>
mrios22: there are several approaches
<bqv>
Ah ok. That repo allows one to build any quicklisp package and all dependencies as specified in ql
<nij>
Anyone has learned algorithm using Lisp? I tried to learn it with Lisp, but resources out there are quite little..
<Xach>
mrios22: you can start a swank server and connect to it from slime (same with sly and slynk)
<Xach>
mrios22: you can run the lisp inside screen or tmux and attach
<bqv>
I might have to run it by you when I have more time
<Xach>
mrios22: you could come up with some other protocol for sending forms to evaluate and receiving results
<bqv>
But I thought you might be interested
<Xach>
bqv: i'm always happy to see people make use of quicklisp code & data
<mrios22>
xach: Thank you.
wxie has joined #lisp
<no-defun-allowed>
nij: You should be able to implement many algorithms (almost) regardless of language.
<Xach>
mrios22: i use both screen and swank/slime - screen to keep it running (and have a repl in a pinch), and swank/slime for real work
akrl has quit [Ping timeout: 256 seconds]
<bqv>
Xach: the interesting development from this is one could attempt to build every package in a hydra matrix and show which ones fail. E.g. Clml of the previous dist depends on a system omitted from the tarball, as my override shows
<bqv>
So this could be a "test system" for ql
<Xach>
bqv: that's a longstanding missing dependency - i should just remove clml. but nobody has complained, so i guess nobody uses clml through quicklisp.
<Xach>
i'm not aware of other missing deps (i have a report that tells me about them)
galex-713 has quit [Ping timeout: 258 seconds]
wxie has quit [Ping timeout: 246 seconds]
<bqv>
Oh thats the only missing dep, I think, but I did encounter other issues attempting that repo, and the reason I had to in the first place is that nixpkgs distrusts quicklisp's consistency
<Xach>
i am definitely interested in things that may need fixing
akrl has joined #lisp
galex-713 has joined #lisp
curiouscain has quit [Ping timeout: 240 seconds]
orivej has joined #lisp
wxie has joined #lisp
curiouscain has joined #lisp
nij has quit [Ping timeout: 258 seconds]
galex-713 has quit [Ping timeout: 240 seconds]
wxie has quit [Ping timeout: 265 seconds]
lucasb has quit [Quit: Connection closed for inactivity]
kam1 has quit [Ping timeout: 240 seconds]
wxie has joined #lisp
Oladon has quit [Quit: Leaving.]
hiroaki has quit [Read error: Connection reset by peer]
Lord_of_Life_ has joined #lisp
Lord_of_Life_ is now known as Lord_of_Life
akrl has quit [Ping timeout: 240 seconds]
wxie has quit [Ping timeout: 240 seconds]
akrl has joined #lisp
kam1 has joined #lisp
hiroaki has joined #lisp
Nilby has quit [Read error: Connection reset by peer]
wxie has joined #lisp
kam1 has quit [Ping timeout: 264 seconds]
kam1 has joined #lisp
[d]__ has quit [Ping timeout: 246 seconds]
perrier-jouet has quit [Quit: WeeChat 2.9]
Oladon has joined #lisp
Inline has quit [Ping timeout: 268 seconds]
skapate has joined #lisp
skapate has left #lisp [#lisp]
skapata has quit [Ping timeout: 272 seconds]
galex-713 has joined #lisp
Lycurgus has quit [Quit: Exeunt]
charles` has joined #lisp
surabax has quit [Quit: Leaving]
galex-713 has quit [Ping timeout: 246 seconds]
<devon>
Should a macro avoid modifying its &rest arg?
aindilis has joined #lisp
<Bike>
that would mean modifying code, so yes
kam1 has quit [Ping timeout: 240 seconds]
<Bike>
assuming you mean actually mutating the conses
<devon>
Ah, of course. Thanks.
kam1 has joined #lisp
bitmapper has quit [Quit: Connection closed for inactivity]
Oladon has quit [Quit: Leaving.]
imode has quit [Ping timeout: 246 seconds]
orivej has quit [Ping timeout: 264 seconds]
scymtym has quit [Remote host closed the connection]
akrl has quit [Read error: Connection reset by peer]
akrl has joined #lisp
thmprover has joined #lisp
xantoz has joined #lisp
beach` is now known as beach
notzmv has quit [Remote host closed the connection]
<beach>
Good morning everyone!
Alfr has joined #lisp
Alfr_ has quit [Ping timeout: 258 seconds]
<oni-on-ion>
good morning
galex-713 has joined #lisp
galex-713_ has joined #lisp
galex-713 has quit [Ping timeout: 272 seconds]
Nilby has joined #lisp
galex-713_ has quit [Remote host closed the connection]
badcfe has quit [Quit: Lost terminal]
v3ga has quit [Ping timeout: 272 seconds]
<charles`>
Good morning. Is it possible to change the delimiter for read-line?
v3ga has joined #lisp
<beach>
I think you need to create a stream that does it the way you want.
<beach>
As I recall, SBCL has some keyword argument to OPEN for that, in case you are reading from a file.
<beach>
But don't quote me on that. I may be wrong.
<beach>
:EXTERNAL-FORMAT maybe
<beach>
... with an implementation-specific value for it.
<beach>
The keyword argument itself is standard.
imode has joined #lisp
<charles`>
My stream is already open
orivej has joined #lisp
<beach>
Aha, chapter 8 in the SBCL manual it seems
<beach>
charles`: OK, then I don't know of a way.
<charles`>
I would think it would be a dynamic variable
<charles`>
or another function like (read-until char stream)
<beach>
Well, that's a one-liner, so you can easily implement it yourself.
<charles`>
using read-char?
<beach>
Yeah.
Codaraxis has joined #lisp
iskander- has quit [Ping timeout: 265 seconds]
iskander has joined #lisp
narimiran has joined #lisp
toorevitimirp has joined #lisp
<jasom>
Does sbcl not support loading core images larger than 4GB? I'm getting "mmap: Value too large for defined data type" and "load_core_bytes(3,91c98000,50300000,1f0000) failed"
Stanley00 has joined #lisp
wxie has quit [Ping timeout: 240 seconds]
Bike has quit [Quit: leaving]
thmprover has quit [Quit: Goodnight, ladies, good night, sweet ladies, good night, good night]
charlie770 has joined #lisp
akrl has quit [Ping timeout: 240 seconds]
akrl has joined #lisp
torbo has quit [Remote host closed the connection]
aartaka_d has joined #lisp
barbanegra has joined #lisp
wxie has joined #lisp
aartaka has quit [Ping timeout: 272 seconds]
wxie1 has joined #lisp
X-Scale` has joined #lisp
X-Scale has quit [Ping timeout: 260 seconds]
X-Scale` is now known as X-Scale
wxie has quit [Ping timeout: 272 seconds]
wxie1 is now known as wxie
charlie770 has quit [Quit: thatsit]
mrios22 has quit [Remote host closed the connection]
ex_nihilo has joined #lisp
saganman has joined #lisp
akrl has quit [Ping timeout: 264 seconds]
akrl has joined #lisp
<jeosol>
jasom: You should probably start the SBCL with a higher dynamic-space-size
<jasom>
jeosol: that's not the problem (it shows a different error if dynamic-space-size is too small)
<jeosol>
yeah, so I am saying pass a higher value, that doesn't work?
<jeosol>
jasom: I have heard some problems when starting with defaults and my core files are large. Maybe it's different from your case
orivej has quit [Ping timeout: 240 seconds]
Nilby has quit [Read error: Connection reset by peer]
aartaka has joined #lisp
aartaka_d has quit [Ping timeout: 240 seconds]
frost-lab has joined #lisp
aartaka has quit [Ping timeout: 268 seconds]
akrl has quit [Ping timeout: 256 seconds]
akrl has joined #lisp
krid has quit [Ping timeout: 272 seconds]
tempest_nox has quit [Read error: Connection reset by peer]
aartaka has joined #lisp
akrl has quit [Ping timeout: 268 seconds]
andreyorst` has joined #lisp
aartaka_d has joined #lisp
aartaka has quit [Ping timeout: 272 seconds]
frgo has joined #lisp
atomik has joined #lisp
atomik_dog has quit [Ping timeout: 258 seconds]
shka_ has joined #lisp
charles` has quit [Ping timeout: 258 seconds]
zaquest has joined #lisp
nostoi has joined #lisp
sloanr has joined #lisp
atomik has quit [Killed (adams.freenode.net (Nickname regained by services))]
Guest85879 has joined #lisp
sloanr has quit [Ping timeout: 272 seconds]
sloanr has joined #lisp
pve has joined #lisp
frgo has quit [Remote host closed the connection]
rgherdt has joined #lisp
frgo has joined #lisp
frgo has quit [Ping timeout: 258 seconds]
wxie1 has joined #lisp
jibanes has quit [Ping timeout: 272 seconds]
jibanes has joined #lisp
wxie has quit [Ping timeout: 272 seconds]
wxie1 is now known as wxie
heisig has joined #lisp
wxie has quit [Ping timeout: 264 seconds]
sloanr has quit [Remote host closed the connection]
Aurora_iz_kosmos has quit [Remote host closed the connection]
Aurora_iz_kosmos has joined #lisp
ldbeth has joined #lisp
<ldbeth>
just learned that how limited the terminfo thing is and I'd assume just start to hardcode escape sequences to do fancy print out
Guest23 has joined #lisp
vegansbane6 has joined #lisp
orivej has quit [Ping timeout: 240 seconds]
scymtym has joined #lisp
cosimone_ has joined #lisp
cosimone has quit [Ping timeout: 265 seconds]
cosimone_ is now known as cosimone
miracle_fox has quit [Remote host closed the connection]
<oni-on-ion>
hm?
varjag has quit [Ping timeout: 246 seconds]
notzmv has joined #lisp
Alfr has quit [Quit: Leaving]
Alfr has joined #lisp
Alfr has quit [Remote host closed the connection]
Alfr has joined #lisp
villanella has joined #lisp
Alfr has quit [Remote host closed the connection]
Alfr has joined #lisp
Stanley00 has quit []
aartaka_d has joined #lisp
ldbeth has quit [Ping timeout: 260 seconds]
aartaka has quit [Ping timeout: 256 seconds]
gko_ has quit [Ping timeout: 246 seconds]
jonatack has quit [Ping timeout: 240 seconds]
villanella has quit [Quit: villanella]
miracle_fox has joined #lisp
miracle_fox has quit [Client Quit]
miracle_fox has joined #lisp
varjag has joined #lisp
villanella has joined #lisp
notandinus has quit [Quit: be back soon]
varjag has quit [Ping timeout: 264 seconds]
FreeBirdLjj has joined #lisp
skapata has joined #lisp
frost-lab has quit [Quit: Connection closed]
FreeBirdLjj has quit [Ping timeout: 265 seconds]
jibanes has quit [Ping timeout: 246 seconds]
jibanes has joined #lisp
miracle_fox has quit []
EvW has joined #lisp
miracle_fox has joined #lisp
miracle_fox has quit [Client Quit]
kaftejiman has joined #lisp
Inline has quit [Ping timeout: 272 seconds]
Bike has joined #lisp
wsinatra has joined #lisp
orivej has joined #lisp
Lycurgus has joined #lisp
jibanes has quit [Ping timeout: 256 seconds]
orivej has quit [Quit: orivej]
jibanes has joined #lisp
orivej has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
orivej_ has joined #lisp
orivej has quit [Ping timeout: 246 seconds]
mrchampion has quit [Ping timeout: 240 seconds]
amb007 has joined #lisp
EvW1 has joined #lisp
devon has quit [Ping timeout: 264 seconds]
EvW has quit [Ping timeout: 260 seconds]
skapata has quit [Ping timeout: 272 seconds]
notzmv has quit [Remote host closed the connection]
EvW1 has quit [Ping timeout: 258 seconds]
gaqwas has joined #lisp
gaqwas has joined #lisp
mrchampion has joined #lisp
skapata has joined #lisp
orivej_ has quit [Ping timeout: 264 seconds]
joaot has joined #lisp
bilalkhan has joined #lisp
mrchampion has quit [Ping timeout: 246 seconds]
bilalkhan has quit [Remote host closed the connection]
jibanes has quit [Ping timeout: 246 seconds]
bilalkhan has joined #lisp
hendursa1 has quit [Quit: hendursa1]
hendursaga has joined #lisp
jibanes has joined #lisp
pfdietz has joined #lisp
hendursaga has quit [Client Quit]
hendursaga has joined #lisp
hendursaga has quit [Client Quit]
mrchampion has joined #lisp
hendursaga has joined #lisp
bilalkhan has quit [Remote host closed the connection]
bilalkhan has joined #lisp
bitmapper has joined #lisp
kam1 has quit [Ping timeout: 240 seconds]
hiroaki has quit [Ping timeout: 268 seconds]
Lycurgus has quit [Quit: Exeunt]
bilalkhan has quit [Remote host closed the connection]
bilalkhan has joined #lisp
quazimodo has quit [Remote host closed the connection]
sjl has joined #lisp
varjag has joined #lisp
narimiran has quit [Ping timeout: 268 seconds]
narimiran_ has joined #lisp
jibanes has quit [Ping timeout: 260 seconds]
orivej has joined #lisp
galex-713 has joined #lisp
jibanes has joined #lisp
Aurora_iz_kosmos has quit [Remote host closed the connection]
Aurora_iz_kosmos has joined #lisp
karlosz has quit [Ping timeout: 260 seconds]
quazimodo has joined #lisp
iskander has quit [Ping timeout: 246 seconds]
hiroaki has joined #lisp
iskander has joined #lisp
karlosz has joined #lisp
jonatack has joined #lisp
theBlackDragon has quit [Ping timeout: 240 seconds]
monkey_ has joined #lisp
jonatack has quit [Ping timeout: 246 seconds]
jonatack has joined #lisp
mankaev has joined #lisp
leo_song has quit [Ping timeout: 256 seconds]
rogersm has joined #lisp
jibanes has quit [Ping timeout: 240 seconds]
jibanes has joined #lisp
SeasonsBeatings is now known as grumble
perrier-jouet has quit [Quit: WeeChat 3.0]
orivej has quit [Ping timeout: 240 seconds]
perrier-jouet has joined #lisp
toorevitimirp has quit [Remote host closed the connection]
ajb` has joined #lisp
jibanes has quit [Ping timeout: 240 seconds]
monkey_ has quit [Remote host closed the connection]
theBlackDragon has joined #lisp
jibanes has joined #lisp
Steeve has joined #lisp
karlosz has quit [Remote host closed the connection]
EvW has joined #lisp
gxt has quit [Ping timeout: 240 seconds]
sloanr has joined #lisp
gxt has joined #lisp
akoana has joined #lisp
<phoe>
Bike: following up on yesterday's discussion, I have a tiniest test case at https://plaster.tymoon.eu/view/2196#2196 - compiling-and-loading the file and running the TEST function from there returns NIL
<phoe>
any ideas on how I should hack on this further?
EvW has quit [Ping timeout: 260 seconds]
<phoe>
I kinda wonder about DEFVAR - even though these have differing EVAL-WHEN times, they're executed in the same image, so the latter DEFVAR may have no chance to execute whatsoever - am I right?
<Bike>
yes
<phoe>
if I change this second DEFVAR to DEFPARAMETER then (test) ;=> T
<phoe>
hmmmm
<Bike>
yeah, makes sense
<phoe>
this means that I can try to generalize this further, into a hash table with multiple gensym keys this time.
cosimone has quit [Ping timeout: 246 seconds]
andreyorst` has quit [Quit: andreyorst`]
skapata has quit [Ping timeout: 272 seconds]
skapata has joined #lisp
cosimone has joined #lisp
cer0 has joined #lisp
karlosz has joined #lisp
<phoe>
Bike: oh I now know what I wanted to do with LOAD-TIME-VALUE
<phoe>
and this requires no wonky things at the end of the file.
<phoe>
and this seems to be capable of correctly evaluating the value of *foo* only when the file is loaded, which means that this can access the runtime map of symbols-to-strings at load-time
<Bike>
the first load-time-value is probably irrelevant
<phoe>
yes, I've edited it out
<phoe>
it also won't be in the final code because I'll have functions for accessing this thing
<phoe>
this hash table, I mean
<phoe>
I think that I finally fully understood LOAD-TIME-VALUE
<beach>
Congratulations!
<beach>
Now try MAKE-LOAD-FORM.
<phoe>
hey, I actually know that one
<beach>
Oh, heh, OK.
rgherdt has quit [Quit: Leaving]
Aurora_iz_kosmos has quit [Remote host closed the connection]
andreyorst has joined #lisp
Aurora_iz_kosmos has joined #lisp
Aurora_iz_kosmos has quit [Remote host closed the connection]
<phoe>
I first played with it back when I wrote the first version of PROTEST that had unreadable macroexpansions and I had to be able to externalize my protocol standard-objects
rgherdt has joined #lisp
Aurora_iz_kosmos has joined #lisp
<phoe>
and then I remember that I talked with _death during one ELS and he showed me the ENSURE-FOO style of getting things done
<phoe>
and that's when I rewrote things to be better and actually *not* use MAKE-LOAD-FORM
jibanes has quit [Ping timeout: 240 seconds]
jibanes has joined #lisp
EvW has joined #lisp
<beach>
I see.
kam1 has joined #lisp
joaot has quit [Remote host closed the connection]
galex-713 has quit [Ping timeout: 272 seconds]
perrier-jouet has quit [Quit: WeeChat 3.0]
rogersm has quit [Quit: Leaving...]
Steeve has quit [Quit: end]
Guest23 has quit [Quit: Connection closed]
galex-713 has joined #lisp
<phoe>
Bike: I actually got the idea when there was a discussion on the Lisp discord yesterday about how symbols shouldn't be used for JSON libraries because they leak memory when interned, and strings shouldn't be used for JSON libraries either because they are slow and make it impossible for cache lines to be optimized with their pointer indirection
matryoshka has quit [Ping timeout: 268 seconds]
<phoe>
so I thought, why not gensyms? EQ-comparable, freely collectible when gathered in a weak hash table
frgo_ has quit [Remote host closed the connection]
matryoshka has joined #lisp
matryoshka has quit [Client Quit]
matryoshka has joined #lisp
Steeve has joined #lisp
matryoshka has quit [Client Quit]
matryoshka has joined #lisp
karlosz has quit [Remote host closed the connection]
lotuseater has quit [Ping timeout: 246 seconds]
ajb` has quit [Ping timeout: 265 seconds]
Steeve has quit [Quit: end]
Steeve has joined #lisp
Steeve has quit [Client Quit]
Steeve has joined #lisp
<_death>
if that's a concern couldn't you just let the user pass a package where the symbols may be interned?
joast has joined #lisp
<dim>
hi there! is it possible to produce a .so from lisp code with ECL? I'm thinking pgloader.so to embed in a C project... cc @jackdaniel if you're around ;-)
Aurora_iz_kosmos has quit [Remote host closed the connection]
Aurora_iz_kosmos has joined #lisp
Inline has joined #lisp
dbotton has joined #lisp
dbotton_ has joined #lisp
Steeve has quit [Quit: end]
dbotton has quit [Remote host closed the connection]
karlosz has joined #lisp
scymtym has quit [Ping timeout: 258 seconds]
ex_nihilo has quit [Quit: Leaving]
<dbotton_>
dim there are detailed instructions in the ecl manual how to create an .so with ecl
<dim>
thanks! I should read that sometime then, that was more an idle though than a practical pressing need
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
torbo has joined #lisp
gaqwas has quit [Remote host closed the connection]
jibanes has quit [Ping timeout: 240 seconds]
gaqwas has joined #lisp
jibanes has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
kam1 has quit [Ping timeout: 272 seconds]
amb007 has joined #lisp
MrFantastik is now known as cactus
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
cactus is now known as MrFantastik
MrFantastik is now known as The-Last-Word
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
The-Last-Word is now known as MrFantastik
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
rogersm has joined #lisp
kam1 has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
imode has joined #lisp
amb007 has joined #lisp
karlosz has quit [Quit: karlosz]
liberliver has quit [Ping timeout: 240 seconds]
rogersm has quit [Quit: Leaving...]
<jasom>
phoe: what's wrong with just a whitelist of symbols?
phoe6 has joined #lisp
v0|d has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
nitrix is now known as nitrix-mas
charles` has joined #lisp
cer0 has quit [Quit: leaving]
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
Aurora_iz_kosmos has quit [Remote host closed the connection]
amb007 has joined #lisp
Aurora_iz_kosmos has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
<jackdaniel>
dim: it is, if you drop me a mail with details I will answer after the winter holiday
amb007 has quit [Read error: Connection reset by peer]
bilalkhan has quit [Remote host closed the connection]
karlosz has joined #lisp
<jackdaniel>
fun fact: ECL's fasls are in fact shared objects (at least for ccmp on posix)
amb007 has joined #lisp
<dim>
hehe
hnOsmium0001 has joined #lisp
<dim>
well I need to try it, context is a colleague who's warry of not re-implementing half of pgloader and is writing C code
<jackdaniel>
as a bonus point: you may start swank and connect to your C program
<jackdaniel>
(i.e to debug it)
<jackdaniel>
at runtime
<jackdaniel>
that said, I will be rather sparingly available during next few days, so merry christmas, hanukkah and other holidays you all have o/
kam1 has quit [Remote host closed the connection]
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
kam1 has joined #lisp
frgo has joined #lisp
frgo_ has joined #lisp
kam1 has quit [Remote host closed the connection]
kam1 has joined #lisp
frgo has quit [Ping timeout: 260 seconds]
Jesin has quit [Quit: Leaving]
karlosz has quit [Remote host closed the connection]
bisickcor has joined #lisp
Jesin has joined #lisp
iekfkk has quit [Ping timeout: 264 seconds]
saganman has quit [Ping timeout: 260 seconds]
galex-713 has quit [Ping timeout: 260 seconds]
galex-713 has joined #lisp
karlosz has joined #lisp
heisig has quit [Ping timeout: 246 seconds]
Aurora_iz_kosmos has quit [Remote host closed the connection]
Aurora_iz_kosmos has joined #lisp
gareppa has joined #lisp
<charles`>
does anyone know how to deal with usockets? address in use error?
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
narimiran_ has quit [Ping timeout: 265 seconds]
<phoe>
jasom: what do you mean?
cosimone has joined #lisp
<_death>
sounds like you should pass :reuse-address t to socket-listen
<phoe>
charles`: either close the previous socket or restart your Lisp image if you lost your handle to it.
<phoe>
News: the 14th European Lisp Symposium has just been announced, along with its Call for Papers. It will take place May 3 - May 4 2021; it will happen online just like ELS 2020.
<jasom>
phoe: for json deserialization, if you don't desrialize to arbitrary symbols, but just a whitelist of symbols no worrying about memory leaks
<phoe>
jasom: if you know your whitelist ahead of time then it's not a problem
<phoe>
if you want to deserialize arbitrary json then it's a problem.
hiroaki has quit [Ping timeout: 246 seconds]
perrier-jouet has joined #lisp
<jasom>
phoe: looking at your example, will (pseudo-intern "foo") cause a literal foo to end up in the fasl? My compiler-macro-fu is a bit weak these days
<phoe>
jasom: nope
<phoe>
LOAD-TIME-VALUE will force it to get evaluated at load time
<phoe>
if it ends up in the FASL, we will lose, because the unFASLized gensym will be a fresh one, and therefore not EQ to whatever we already have in the cache
<jasom>
got it
<phoe>
s/unFASLized/regenerated after loading the FASL/
<jasom>
that's a rather clever solution; anything used statically will stay alive forever, and unused items will eventually go away
<phoe>
that's why LOAD-TIME-VALUE is the tool for this job
<phoe>
yes, because we have a weak hash table
<phoe>
actually we don't need to use gensyms; we can use any objects that have strong identity
<phoe>
so e.g. cons cells
<phoe>
or strings, even though using those would confuse people a real lot
<phoe>
because an EQ hash table with string keys is a bug in 90% cases and is highly confusing and suspicious in the remaining 90% cases
<phoe>
especially if we use literal strings to "access" it, which is what the GET function might suggest
<phoe>
so if memory is an issue, gensyms could be replaced with conses. otherwise, IMO they can stay because, like all symbols, they have names which help with debugging a little bit.
<phoe>
I'll try to flesh this example out more during the holidays and in the worst case I'll end up with the #.(incf n)th json library
aartaka has joined #lisp
<jasom>
hmm, I wonder if one could make a tree-shaker by putting all the symbols in CL in a weak hash-table, uninterning everything, forcing a GC, then reinterning what's left
<phoe>
that's how some tree shakers are implemented, AFAIR
andreyorst has quit [Ping timeout: 256 seconds]
<jasom>
There's got to be a reason that won't work on SBCL though, because it would have a tree-shaker if it were really that easy.
<Krystof>
well, but it doesn't shake all that much
<Krystof>
there are plenty of other strong links keeping lots of data structures around
<phoe>
yes, that's just packages in here
<Krystof>
for example: every single class is kept alive by class-direct-subclasses, even if their names disappear
<phoe>
(which is something I've painfully discovered several times)
bilalkhan has joined #lisp
puchacz has joined #lisp
jw4 has quit [Read error: Connection reset by peer]
aartaka_d has joined #lisp
<puchacz>
hi, how can I define a type alias? I want to have an alias named default-float-type defined in cl-user in the top file somewhere, and switch it before recompiling everything between single-float and double-float
aartaka has quit [Ping timeout: 260 seconds]
<aeth>
DEFTYPE
jw4 has joined #lisp
<puchacz>
aeth - will I be able to use default-float-type everywhere where single-float is allowed? mind single-float is sometimes quoted, sometimes not
<aeth>
And apparently, this works: (deftype default-float () *read-default-float-format*)
<aeth>
(typep 1f0 'default-float) => T
<aeth>
(typep 1d0 'default-float) => NIL
<aeth>
However, it will be out of sync
<phoe>
aeth: the issue is that this won--- yes
<puchacz>
what will be out of sync?
<aeth>
You'll have to only set *read-default-float-format* through something that also updates the DEFTYPE
<phoe>
this won't get recomputed every time you rebind the variable
<aeth>
i.e. (setf *read-default-float-format* 'double-float) (typep 1d0 'default-float) => NIL
<aeth>
It's only reading *read-default-float-format* once
<puchacz>
I want it at compile time, so it is fine to set it once
<phoe>
then that'll work
<puchacz>
thanks guys
<puchacz>
I am ok with killing sbcl and starting it again, when I change default-float-type
<aeth>
puchacz: and, yeah, it's just a type
<aeth>
so it'll work when quoted (e.g. TYPEP) and when not (e.g. CHECK-TYPE)
<puchacz>
great, tks
<puchacz>
that one works too :)
<puchacz>
(make-array (list n n) :element-type 'default-float-type :initial-element 0.0)
<aeth>
It's weird seeing 0.0 without an f0 or d0
<aeth>
but that's actually correct in that situation
no-defun-allowed has left #lisp ["User left"]
<aeth>
In that, it'll work no matter what.
<phoe>
well, it'll get read with the default float type
<puchacz>
I use numcl and it has some strict type definitions so it can optimise matrix operations, it defaults to single-float, I hope it will work seamlessly with my hack
eden has quit [Ping timeout: 240 seconds]
<aeth>
ime, the library has to be aware that *read-default-float-format* is potentially redefined in order for it to still work when it is redefined
<aeth>
i.e. the single-float stuff has to have the f0 suffix
urek has joined #lisp
wsinatra has quit [Quit: WeeChat 3.0]
urek has quit [Client Quit]
aartaka_d has quit [Ping timeout: 240 seconds]
ex_nihilo has joined #lisp
ex_nihilo has quit [Remote host closed the connection]
ex_nihilo has joined #lisp
ex_nihilo has quit [Remote host closed the connection]
retropikzel has quit [Quit: Leaving]
gareppa has quit [Quit: Leaving]
heisig has joined #lisp
kam1 has quit [Ping timeout: 265 seconds]
shka_ has quit [Ping timeout: 272 seconds]
heisig has quit [Client Quit]
hnOsmium0001 has quit [Quit: Connection closed for inactivity]
<puchacz>
what's the difference between q:quickload and require if the system is already in local quicklisp?
<puchacz>
and ~/.cache/common-lisp is empty, so everything requires compilation
<phoe>
REQUIRE likely invokes ASDF:LOAD-SYSTEM
<phoe>
while QL:QUICKLOAD certainly invokes ASDF:LOAD-SYSTEM
charles` has quit [Ping timeout: 260 seconds]
<puchacz>
which one should I use?
<phoe>
I suggest ql:quickload
<phoe>
REQUIRE is highly implementation-defined
<puchacz>
is require CL or one of the libraries like ASDF?
<phoe>
not really
<phoe>
CL:REQUIRE is a function that you can call
<phoe>
but what it *exactly* does is implementation-dependent
<puchacz>
I see
<puchacz>
thanks :)
<phoe>
whereas ql:quickload is pretty much implementation-independent.
<puchacz>
CL has rough edges somewhere....
<puchacz>
but anyway :)
<phoe>
I men, ASDF likely hooks into CL:REQUIRE on all popular Lisp implementations, but still, it's one of the parts of the language that I don't really like
<phoe>
especially since ASDF literally does everything CL:REQUIRE is supposed to do, except better
<puchacz>
my least favourites are eval-when which I never understood, but hey ;)
<puchacz>
my takeaway is: do not call require, ever
<phoe>
I think I can agree with this
<phoe>
as for eval-when, there's Fare's article about it that is pretty good
<phoe>
and he's right that only one eval-when combination is useful for 99% of all practical purposes
bheesham has joined #lisp
<phoe>
and the remaining 1% is for the people who really want to control when given forms are evaluated, mostly because they write their own languages on top of Lisp and they need to control the way FASLs are created... or they are implementing Lisp and they *really* need to control the way FASLs are created
<puchacz>
I am not that 1%
<phoe>
not yet*
<puchacz>
ha
oxum has joined #lisp
oxum_ has quit [Ping timeout: 272 seconds]
lotuseater has joined #lisp
karlosz has quit [Remote host closed the connection]
<puchacz>
humour: Fare in 2009, speaking about Common Lisp: "I'm starting to get a bit tired of it."
<puchacz>
in the "eval-when" article
<puchacz>
comments
loli has quit [Ping timeout: 240 seconds]
Nilby has quit [Ping timeout: 256 seconds]
<jasom>
I've (ab)used eval-when and run-program to compile other languages without having to figure out how to extend ASDF
villanella has quit [Ping timeout: 260 seconds]
<jasom>
just wrap the lisp code that will run what you want with (eval-when (:compile-toplevel ...) and add the dependencies in asdf as :static-file
notzmv has joined #lisp
puchacz has quit [Remote host closed the connection]