<drmeister>
When using C-c C-c to compile a form slime has the line number of the start of the code - but for some reason doesn't pass it to swank-compile-string.
<drmeister>
I wants the line number - I needs it!
makomo has joined #lisp
makomo_ has quit [Ping timeout: 268 seconds]
adip has quit [Ping timeout: 265 seconds]
torbo has quit [Remote host closed the connection]
Necktwi has joined #lisp
rozenglass has quit [Remote host closed the connection]
Grovosky has quit [Ping timeout: 240 seconds]
fragamus has joined #lisp
adip has joined #lisp
vaporatorius has quit [Read error: Connection reset by peer]
vaporatorius has joined #lisp
vaporatorius has quit [Read error: Connection reset by peer]
libertyprime has quit [Remote host closed the connection]
emacsomancer has quit [Read error: Connection reset by peer]
fragamus has joined #lisp
ltriant has joined #lisp
gravicappa has quit [Ping timeout: 240 seconds]
fragamus has quit [Ping timeout: 258 seconds]
shrdlu68 has joined #lisp
<Shinmera>
drmeister: There's #slime, too
<drmeister>
Hi - yeah - I dropped a note in there. I haven't seen any responses yet. But it's only been about 12 hours. No worries.
<drmeister>
Thanks!
raghavgururajan has joined #lisp
<drmeister>
It's a small change that we are looking for that may be a big change if adding another keyword argument to swank-compile-string requires every implementation to handle that.
ltriant_ has joined #lisp
ltriant has quit [Ping timeout: 268 seconds]
ltriant_ has quit [Client Quit]
krid has quit [Remote host closed the connection]
vaporatorius has quit [Ping timeout: 245 seconds]
vaporatorius has joined #lisp
vaporatorius has quit [Changing host]
vaporatorius has joined #lisp
shka_ has quit [Ping timeout: 276 seconds]
varjag has joined #lisp
liberiga has quit [Ping timeout: 260 seconds]
beach has quit [Remote host closed the connection]
beach has joined #lisp
<pjb>
drmeister: you can also use C-c C-k to compile the whole file and have the source location information kept.
<drmeister>
Yes - that's what I do - but every now and then I C-c C-c and it all gets confused.
vlatkoB has joined #lisp
fragamus has joined #lisp
varjag has quit [Ping timeout: 240 seconds]
ljavorsk has joined #lisp
fragamus has quit [Ping timeout: 265 seconds]
Necktwi has quit [Quit: leaving]
fragamus has joined #lisp
fragamus has quit [Ping timeout: 240 seconds]
serge has joined #lisp
aeth has quit [Quit: ...]
stepnem has quit [Ping timeout: 240 seconds]
stepnem has joined #lisp
Lord_of_Life has quit [Read error: Connection reset by peer]
flamebeard has joined #lisp
eagleflo has quit [Remote host closed the connection]
angavrilov has quit [Remote host closed the connection]
angavrilov has joined #lisp
liberiga has joined #lisp
manualcrank has joined #lisp
ggole has joined #lisp
scymtym has quit [Ping timeout: 268 seconds]
eagleflo has quit [Remote host closed the connection]
techquila has joined #lisp
techquila has quit [Remote host closed the connection]
eagleflo has joined #lisp
scymtym has joined #lisp
hhdave has joined #lisp
libertyprime has joined #lisp
eagleflo has quit [Remote host closed the connection]
eagleflo has joined #lisp
flamebeard has quit [Remote host closed the connection]
flamebeard has joined #lisp
eagleflo has quit [Remote host closed the connection]
eagleflo has joined #lisp
EvW has joined #lisp
flamebeard_ has joined #lisp
flamebeard has quit [Remote host closed the connection]
fragamus has joined #lisp
fragamus has quit [Ping timeout: 245 seconds]
Ae_Mc has joined #lisp
<Ae_Mc>
Is anybody here?
asdf_asdf_asdf has joined #lisp
<beach>
You bet.
<beach>
Ae_Mc: What can we do for you?
<Ae_Mc>
Nothing
<beach>
Oh, OK.
<Ae_Mc>
Thanks
<thijso>
he was just checking if anyone was here, so if not, he could steal the silverware... ;)
<thijso>
should have kept silent, beach
<beach>
Too late.
<beach>
Oh, well.
<Ae_Mc>
And you have fun here, as I see
<beach>
Of course. Common Lisp is a fun language to program with.
<jackdaniel>
for what it's worth I'm not here nor I do have fun
<jackdaniel>
;-)
refpga has quit [Ping timeout: 240 seconds]
refpga has joined #lisp
<beach>
Spoilsport!
EvW has quit [Ping timeout: 245 seconds]
refpga has quit [Remote host closed the connection]
refpga has joined #lisp
jfb4`` has quit [Ping timeout: 240 seconds]
frgo has joined #lisp
flamebeard_ is now known as flamebeard
<beach>
Ae_Mc: Several of us meet once a year at the European Lisp Symposium, so many of us know each other. There are usually nearly 100 participants at that conference.
<Ae_Mc>
Where is the Symposium held?
<beach>
Ae_Mc: ELS2020 has not been announced yet, but we happen to know that it is going to be held in Zürich, probably at the end of March.
<ck_>
I think I set the classpath correctly (tried both the -cp argument and the environment variable), but the messages "Added jar:file:..." that those files comments talk about don't happen
<no-defun-allowed>
Hm, I've never used the contrib package, sorry.
<pjb>
Do you have the abcl-contrib.jar file somewhere?
<ck_>
pjb: yes, that's what I meant by classpath argument.
frgo_ has joined #lisp
<ck_>
the gist is a couple years old, maybe require isn't the way to do that anymore?
frgo has quit [Read error: Connection reset by peer]
<ck_>
no, that's not it, the manual mentions it explicitly
<pjb>
Yes, it should work like jss.
jonatack has quit [Ping timeout: 276 seconds]
<jackdaniel>
could you paste somewhere exact invocation (copy paste from the terminal) and contents of: a) abcl directory, b) directory with abcl-contrib (possibly the same directory)
gravicappa has joined #lisp
<jackdaniel>
I gather that the file loaded is the file in a gist
<ck_>
the directory contents of ~/opt/abcl-bin-1.5.0 are the following 6 files: "CHANGES" "README" "abcl-1.5.0.pdf" "abcl-contrib.jar" "abcl.jar" "asdf.pdf"
frgo_ has quit [Remote host closed the connection]
<jackdaniel>
I'd try absolute paths, maybe that will change something
<ck_>
jackdaniel: okay I'll try (and I think I did before) -- but the "Don't know how to ... -CONTRIB" messages is produced from the abcl repl, so abcl.jar is found correctly
<jackdaniel>
I gather that when you invoke repl and type (require 'abcl-contrib) the problem is the same?
<ck_>
yes -- well, not exactly, because the quote syntax produces a different error message -- but it fails either way
<ck_>
maybe I'm using the wrong version of Java, are there restrictions?
<jackdaniel>
I think that abcl does not work *at all* on some recent Java versions because bytecode has changed and compiler has not been adapted? I'm not certain, maybe interpreter works there
<ck_>
Aha, then that's probably the reason. Can you tell me which version is safe?
<no-defun-allowed>
Works fine on Java 8, but that might be too old.
<jackdaniel>
I can't, as you've noticed I was pretty vague about versions
<ck_>
Okay, thank you.
nostoi has joined #lisp
gravicappa has quit [Ping timeout: 265 seconds]
ralt has joined #lisp
jonatack has joined #lisp
nanoz has joined #lisp
elfmacs has quit [Ping timeout: 268 seconds]
fragamus has joined #lisp
fragamus has quit [Ping timeout: 245 seconds]
asdf_asdf_asdf has quit [Ping timeout: 245 seconds]
ghard has joined #lisp
kajo has quit [Ping timeout: 276 seconds]
varjag has joined #lisp
<ghard>
Gday! Prior to pulling the CFFI sock up libcrypto, I'd like to check if anybody's seen a working ECDSA signing library out in the wild.
<ghard>
Asking for a friend who's got to be verifying the darned Apple Sign On JWS pronto. ;)
<no-defun-allowed>
Ironclad has ECDSA.
<ghard>
Really?
<no-defun-allowed>
Yeah.
<ghard>
I didn't see that last time I looked.
<no-defun-allowed>
It's only in one fork, but that's the fork on Quicklisp.
<ym>
Yep, CADDR re-implementation is cool, but still it's just a CADDR.
<no-defun-allowed>
And the CADR runs Lisp Machine Lisp, which is not awfully far from Common Lisp as things go.
<ym>
CADR is for retro fanboys. Variation of RISC-V and SBCL optimized for each other - that's perfect case.
* no-defun-allowed
sighs
nostoi has quit [Quit: Verlassend]
serge70 has joined #lisp
* ym
shrugs off.
<no-defun-allowed>
So you want a C machine that has been adjusted slightly to run SBCL, which in turn is adjusted to run on that C machine better?
icov0x29a has joined #lisp
<no-defun-allowed>
Maybe I am too pessimistic, but if I was able to fab my own processor, I would definitely have it run a more Lisp-friendly instruction set.
<no-defun-allowed>
And I am never going to be able to fab my own processor, so we have to settle on running Lisp well on C machines.
<aap>
a hardware processor that can execute CADR macrocode directly would be cool
icov0x29a has quit [Ping timeout: 250 seconds]
adip has joined #lisp
<aap>
or lambda macrocode. i don't even know how different these are
<jackdaniel>
praise the stock hardware: it gives you a reasonable price which individual can afford with good performance disregarding the language you chose
<jackdaniel>
choose
<aap>
wasn't genera on alpha much faster than on actual symbolics hardware?
<ym>
no-defun-allowed, buy FPGA devboard.
<ym>
And you could fab your own processor.
<no-defun-allowed>
I should some time.
* aap
is currently struggling with his fpga
<no-defun-allowed>
It wouldn't be anywhere close to a proper fab job in terms of efficiency or performance.
liberiga has quit [Ping timeout: 260 seconds]
<ym>
If you taking in account economic factor, yes, for now.
<aap>
there's a project to make a reincarnation of the lambda that executes macrocode directly from C instead of emulating the microcode
<aap>
once that is running lisp code, maybe the macrocode could be executed directly from an fpga perhaps
icov0x29a has joined #lisp
<ym>
CADR being synthesized on FPGAs, AFAIK.
amerigo has joined #lisp
<aap>
yes, the CADR is on an fpga (i've seen it!) but it executes microcode
<aap>
i've also seen real CADRs...hopefully running some day
papachan has joined #lisp
APic has quit [Ping timeout: 265 seconds]
aleamb__ has joined #lisp
malpas has quit [Read error: Connection reset by peer]
aleamb__ is now known as aleamb
jonatack has quit [Ping timeout: 246 seconds]
<ym>
ZPU is stack machine synthesizable on FPGAs.
<jackdaniel>
behold the prophecy: one day we'll have stock hardware with powerful fpga boards being their peripherals (similar to zynq) and we'll synthesize hardware at real time
<aap>
oh that would be lovely
<jackdaniel>
want to play a game? no problem, extra graphics card for you
<aap>
synthesis is so slow X(
adip has quit [Ping timeout: 268 seconds]
adip has joined #lisp
papachan has quit [Quit: Leaving]
papachan has joined #lisp
gareppa has joined #lisp
libertyprime has quit [Ping timeout: 258 seconds]
APic has joined #lisp
georgie has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
libertyprime has joined #lisp
yoja has joined #lisp
Bike has joined #lisp
jonatack has joined #lisp
libertyprime has quit [Quit: leaving]
icov0x29a has quit [Quit: Leaving]
FreeBirdLjj has joined #lisp
FreeBirdLjj has quit [Ping timeout: 265 seconds]
raghavgururajan has joined #lisp
ym has quit [Read error: Connection reset by peer]
mindCrime_ has joined #lisp
mindCrime__ has joined #lisp
lucasb has joined #lisp
yoja has quit [Ping timeout: 245 seconds]
mindCrime_ has quit [Ping timeout: 264 seconds]
shrdlu68 has quit [Ping timeout: 265 seconds]
raghavgururajan has quit [Remote host closed the connection]
mindCrime__ has quit [Ping timeout: 252 seconds]
flamebeard has quit []
vaporatorius has quit [Read error: Connection reset by peer]
vaporatorius has joined #lisp
vaporatorius has quit [Changing host]
vaporatorius has joined #lisp
vaporatorius has quit [Read error: Connection reset by peer]
libertyprime has joined #lisp
lxbarbosa has joined #lisp
Oladon has joined #lisp
gareppa has quit [Quit: Leaving]
dale has joined #lisp
lavaflow has quit [Ping timeout: 276 seconds]
georgie has joined #lisp
vaporatorius has joined #lisp
vaporatorius has quit [Changing host]
vaporatorius has joined #lisp
elfmacs has quit [Ping timeout: 258 seconds]
amerigo has quit [Quit: Connection closed for inactivity]
shrdlu68 has joined #lisp
smazga has joined #lisp
angavrilov has quit [Ping timeout: 265 seconds]
angavrilov has joined #lisp
jmercouris has joined #lisp
<jmercouris>
hello everyone
mindCrime__ has joined #lisp
v0|d has quit [Ping timeout: 240 seconds]
<thijso>
hi
shrdlu68 has quit [Ping timeout: 240 seconds]
<beach>
Hello jmercouris.
nanoz has quit [Quit: Leaving]
<jmercouris>
hello beach !
karlosz has joined #lisp
karlosz has quit [Client Quit]
frgo has quit [Remote host closed the connection]
Oladon has quit [Quit: Leaving.]
frgo has joined #lisp
rippa has joined #lisp
Oladon_work has joined #lisp
FreeBirdLjj has joined #lisp
varjagg has joined #lisp
FreeBirdLjj has quit [Ping timeout: 265 seconds]
* gendl
shoutout to Roswell and SBCL. I've been developing an elaborate thing for the past 6 months or so exclusively on Allegro and CCL. Tomorrow I'm talking to a firm who is already an SBCL shop and may have a use for our stuff. So
<gendl>
So I proceeded to do 'brew install roswell', 'ros install sbcl', added the newly installed 1.5.6 to my slime-lisp-implementations, and 5 minutes later my thing is up and running under SBCL, no changes, no visible diffferences (knock wood).
<Xach>
nice
<gendl>
I even did (setf (readtable-case *readtable*) :invert), so everything looks the same as in Allegro in modern-mode (maybe I should start doing the same thing in Allegro and ditching modern-mode, although I have to see if abandoning modern-mode support would break any of our stuff for the few people who i think are using it under modern-mode )...
retropikzel has joined #lisp
nostoi has joined #lisp
Necktwi has joined #lisp
bitmapper has quit [Ping timeout: 245 seconds]
EvW has joined #lisp
bitmapper has joined #lisp
scymtym has quit [Ping timeout: 245 seconds]
shka_ has joined #lisp
clothespin has joined #lisp
Necktwi has quit [Ping timeout: 258 seconds]
bitmapper has quit [Remote host closed the connection]
lavaflow has joined #lisp
nostoi has quit [Quit: This computer has gone to sleep]
hhdave has quit [Quit: hhdave]
aeth has joined #lisp
Lord_of_Life_ has joined #lisp
Lord_of_Life has quit [Ping timeout: 258 seconds]
Lord_of_Life_ is now known as Lord_of_Life
jmercouris has quit [Ping timeout: 240 seconds]
Ricchi has joined #lisp
Ricchi has quit [Remote host closed the connection]
Ricchi has joined #lisp
nostoi has joined #lisp
zaquest has quit [Remote host closed the connection]
zaquest has joined #lisp
davr0s_ has quit [Quit: Ex-Chat]
davr0s has quit [Quit: Ex-Chat]
Necktwi has joined #lisp
LiamH has joined #lisp
LiamH has left #lisp [#lisp]
nanoz has joined #lisp
warweasle has joined #lisp
Oddity has quit [Ping timeout: 245 seconds]
Grovosky has joined #lisp
manualcrank has quit [Ping timeout: 265 seconds]
shifty has quit [Ping timeout: 265 seconds]
Oddity has joined #lisp
<mfiano>
If I supply the initargs argument to CHANGE-CLASS with an initarg not present in the target class, but instead defined by an initialize-instance :after method, it fails with "Invalid initialization argument" on SBCL. I could do (apply #'change-class instance class :allow-other-keys t initargs), but also, initialize-instance is never called. Do I have to explicitly call initialize-instance as well?
<Bike>
if you want the method to happen both on initialization and change-class it should be on shared-initialize.
<Xach>
mfiano: so maybe your method should be there instead.
<mfiano>
I see. What I'm doing is indeed pretty hacky already. Why not? Thanks
<Bike>
i mean it's not a hack, that's what shared-initialize is for
lxbarbosa has quit [Remote host closed the connection]
<mfiano>
No I mean this code in general. I'm using the MOP to plug in topologically sorted mixin classes into a progn/most-specific-last protocol
cosimone has joined #lisp
<Xach>
mein auges
<ck_>
if you meant 'my eyes' -- "Meine Augen"
<mfiano>
I've actually never used shared-initialize before. In this case, what should the slot-names argument be?
<mfiano>
and can I use it just like initialize-instance :after methods?
<Bike>
slot-names is either T (meaning all slots) or a list of slot names (symbols)
<Bike>
it's the slots that you're initializing
<Bike>
other than that, it's pretty much like initialize-instance
<mfiano>
In this case, I'm defining additional initargs for make-instance/change-class with the keyword arguments, and I will be setting slot values using them.
<Bike>
the thing to understand about initialization is that the primary method on make-instance is (initialize-instance (allocate-instance class ...initargs) ...initargs), and the primary method on initialize-instance is (shared-initialize instance t ...initargs), i.e. initialize-instance doesn't actually do anything by itself
catjoe has joined #lisp
<Bike>
with change-class the slot-names argument will be a list of the slot names added by the new class. meaning that you're not supposed to touch the existing slots.
<Bike>
if that's not a problem with your initargs you can just ignore that argument
nostoi has quit [Quit: Verlassend]
<mfiano>
Great, it works. Thanks a lot
<mfiano>
How does reinitialize-instance come into play? I do have a reinitialize-instance method defined for 1 class that I may change an instance to, and would like this called too.
<Bike>
reinitialize-instance also calls shared-initialize
<Bike>
in that case the list of slot-names will be nil, so you're not supposed to update any slots that don't have an initarg
<Bike>
sorry, i explained that poorly before, the list of slot names is the ones you're not supposed to touch if there's no initarg.
<Bike>
if there is an initarg you do change the slot because it's been explicitly given a new value
<Bike>
so for example if you have an instance with a slot that's unbound, initialize-instance will give that slot a value from the initform, but reinitialize-instance will not
catjoe has quit [Quit: Leaving]
<mfiano>
I see. That makes sense. Thanks Bike
<Bike>
if you redefine the class, shared-initialize will also be called, by update-instance-for-redefined-class. may or may not be relevant
scymtym has joined #lisp
<mfiano>
I normally use an :after method for initialize-instance for this type of thing. With shared-initialize does that still make sense?
<Bike>
initialize-instance methods make sense when you want something to happen only during initialization (like through make-instance) but not other times (change-class, reinitialize-instance, make-instances-obsolete)
shangul has quit [Ping timeout: 276 seconds]
fragamus has quit [Ping timeout: 245 seconds]
fragamus has joined #lisp
frgo_ has joined #lisp
fragamus has quit [Ping timeout: 245 seconds]
frgo has quit [Ping timeout: 246 seconds]
Necktwi has quit [Quit: leaving]
<Xach>
ck_: tank schoen
ggole has quit [Quit: Leaving]
frgo_ has quit [Ping timeout: 268 seconds]
Necktwi has joined #lisp
shrdlu68 has joined #lisp
asdf_asdf_asdf has joined #lisp
georgie has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
cosimone has quit [Remote host closed the connection]
cosimone has joined #lisp
yoja has joined #lisp
<ck_>
Xach: Gern geschehen. By the way, how is your parallelization campaign going?
<Xach>
ck_: stalled, unfortunately
<Xach>
restoring daily automatic builds has reduced some of the urgency
<Xach>
before when i was interactively kicking off builds, cutting the time down made a huge difference
<ck_>
calm before the resounding success, I'd call it
<ck_>
I see. In that case, why bother. I understand
sauvin has quit [Read error: Connection reset by peer]
<Xach>
I'd still like to pursue it. It would be nice to come up with a system that I could run on e.g. 100 cloud servers and complete in 5 minutes or something.
fsmunoz has joined #lisp
<ck_>
what speedup do you figure? i mean, does it take 9 hours now?
<Xach>
srji: do you have some extension that makes [1 2 3] a sequence?
<Xach>
Also, what is seq-do?
<srji>
i thought a vector is a sequence?
<Xach>
srji: sure. but [...] is not standard.
<Xach>
The square brackets are what I wonder about.
<asdf_asdf_asdf>
@srji; use copy-seq.
<srji>
ah its emacs lisp, so i should ask in #emacs :)
<ck_>
Xach: well, its about to be the season for more indoor activities. maybe you will be coerced into continuing .. by snow for example
<Xach>
srji: ahhh
<srji>
sorry
<Xach>
ck_: it's possible but that is also the best time to harvest trees for firewood and lumber - less sap to dry later.
<Xach>
but maybe the cold AND dark will make it work
<asdf_asdf_asdf>
@srji; (loop for x in (list 1 2 3 4) collect x).
<Xach>
asdf_asdf_asdf: it is not the right language
vlatkoB has quit [Remote host closed the connection]
<asdf_asdf_asdf>
(let ((a (loop for x across "abcd" collect x))) (string (nth 0 a)))
interruptinuse is now known as inty
<Bike>
what on earth
analogue has joined #lisp
inty is now known as interruptinuse
kajo has joined #lisp
makomo has quit [Quit: WeeChat 2.4]
cosimone has quit [Quit: Terminated!]
analogue has quit [Quit: Leaving]
Ven`` has joined #lisp
fsmunoz has quit [Ping timeout: 258 seconds]
jpp_ has joined #lisp
Grovosky has quit [Ping timeout: 240 seconds]
gareppa has joined #lisp
retropikzel has quit [Remote host closed the connection]
paul0 has joined #lisp
ralt has quit [Quit: Connection closed for inactivity]
warweasle has quit [Quit: rcirc on GNU Emacs 24.4.1]
jpp_ has quit [Quit: Leaving]
yoja has quit [Remote host closed the connection]
yoja has joined #lisp
bitmapper has joined #lisp
cosimone has joined #lisp
shrdlu68 has quit [Ping timeout: 265 seconds]
gravicappa has quit [Ping timeout: 245 seconds]
EvW1 has joined #lisp
shka_ has quit [Ping timeout: 246 seconds]
EvW has quit [Ping timeout: 264 seconds]
rippa has quit [Quit: {#`%${%&`+'${`%&NO CARRIER]
EvW1 is now known as EvW
notzmv has joined #lisp
shrdlu68 has joined #lisp
krid has joined #lisp
cosimone has quit [Quit: Terminated!]
_jrjsmrtn has joined #lisp
cosimone has joined #lisp
gravicappa has joined #lisp
cosimone has quit [Client Quit]
cosimone has joined #lisp
amerlyq has quit [Quit: amerlyq]
__jrjsmrtn__ has quit [Ping timeout: 258 seconds]
namosca has joined #lisp
<thijso>
I'm looking for a system/library to facilitate kind of a disk-backed memory store. Something that saves the data to disk regularly, but a little loss is acceptable. Is there something like that for Lisp already? Might cl-prevalence be a good fit? Ubiquitous looks kinda like something also, except it's documentation is about persistent _configuration_ storage. Any other suggestions?
<thijso>
I'm thinking I might just start out with plists (or maybe a hash) and just serialize that to disk with alexandria or something.
krid has quit [Ping timeout: 246 seconds]
<thijso>
Figure out heavy lifting stuff if/when I really need it.
cosimone has quit [Remote host closed the connection]
MrBismuth has quit [Read error: Connection reset by peer]
cosimone has joined #lisp
namosca has quit [Client Quit]
karlosz has joined #lisp
Ae_Mc has quit [Read error: Connection reset by peer]
krid has joined #lisp
karlosz has quit [Client Quit]
<Xach>
thijso: streaming plists to a file is not a half-bad initial approach.
gravicappa has quit [Ping timeout: 245 seconds]
cosimone has quit [Quit: Terminated!]
aun has joined #lisp
MrBismuth has joined #lisp
shrdlu68 has quit [Ping timeout: 246 seconds]
<thijso>
In the case that the id's are strings, is it better to use an eql hash or coerce the strings into keys (with intern)? Or is it basically the same difference? Or third option?
<Xach>
eql hash does not work with strings
<Xach>
I usually use an equal hash
<thijso>
Uh, sorry, the hash version that works
<thijso>
yeah, that one
<Xach>
But it depends on the situation a bit.
<thijso>
Yeah, I thought that would be the case... ;)
nanoz has quit [Ping timeout: 268 seconds]
<saturn2>
interned symbols don't get garbage collected, so don't use them unless you want them to stick around forever
adip has quit [Ping timeout: 240 seconds]
<thijso>
Yeah, saturn2, that is indeed a concern
<thijso>
so hash-table it is
<thijso>
for now
yoja has quit [Ping timeout: 265 seconds]
adip has joined #lisp
EvW has quit [Ping timeout: 265 seconds]
Aruseus has joined #lisp
gareppa has quit [Quit: Leaving]
karlosz has joined #lisp
manualcrank has joined #lisp
karlosz has quit [Quit: karlosz]
cosimone has joined #lisp
jfb4 has joined #lisp
varjagg has quit [Quit: ERC (IRC client for Emacs 26.1)]
<White_Flame>
you can manually intern your keys using a separate string->self equal hashtable first, then your main content will have eq strings
<White_Flame>
depending on where you want to spend time
ravndal has quit [Quit: WeeChat 2.6]
ravndal has joined #lisp
mindCrime__ has quit [Ping timeout: 276 seconds]
ralt has joined #lisp
Bike has quit [Quit: Bike]
<thijso>
I don't fully understand what you mean White_Flame
<thijso>
Have a separate hashtable mapping the "string keys" to something else, is that what you mean?
<pjb>
Yes.
<White_Flame>
yes, map "foo" => "foo", in a #'EQUAL hashtable. Then when you do (gethash "foo" *table*), it'll return the exact same "foo" string instance, which can be then eq compared in a table, without converting it to a symbol
<Xach>
thijso: you could have a table that maps strings to integer IDs or something.
<Xach>
Or that.
<no-defun-allowed>
Does anyone use tries in intern tables?
<pjb>
That said, it all depends on the speed of the hash function, which should be O(1) fast anyways. So using an equal hash table should not be significantly slower than using an eq hash table.
<White_Flame>
even if it's O(1), its constant time can be much slower than an eq compare
<White_Flame>
again, it all depends on where you want the cpu to spend time, if this is an optimization issue
<White_Flame>
and depending on what you're doing, it might be advantageous to keep the data as a string
<thijso>
ah
<thijso>
uhm, not an optimization issue, no
<thijso>
not yet, at least ;)
<thijso>
I'll have to look into that map "foo" => "foo" trick later, because it's late here and I'm getting a 'does-not-compute' error in my head atm... ;)
<thijso>
thanks for the suggestions, though, I'll be sure to check 'm out
Ven`` has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
Ven`` has joined #lisp
Ven`` has quit [Client Quit]
kajo has quit [Quit: From my rotting body, flowers shall grow and I am in them and that is eternity. -- E. M.]
techquila has joined #lisp
stepnem has quit [Ping timeout: 276 seconds]
stepnem has joined #lisp
<White_Flame>
thijso: there may be many string instances of "foo". however, the one that is the value in that hashtable is the "canonical" one. by always looking up your string in that hashtable and only using the value from there (lazily adding to it if the key isn't found), you basically intern your strings to EQ-able instances
<White_Flame>
(just for understanding/reference)
kajo has joined #lisp
Oladon_work has quit [Ping timeout: 260 seconds]
Bike has joined #lisp
asdf_asdf_asdf has quit [Quit: asdf_asdf_asdf]
akovalenko has quit [Ping timeout: 264 seconds]
decent-username has quit [Ping timeout: 276 seconds]
Blukunfando has joined #lisp
cosimone has quit [Ping timeout: 245 seconds]
mindthelion has joined #lisp
techquila has quit [Ping timeout: 264 seconds]
EvW has joined #lisp
eigenhombre has quit [Quit: Connection closed for inactivity]
smazga has quit [Quit: leaving]
libertyprime has quit [Quit: leaving]
lucasb has quit [Quit: Connection closed for inactivity]
Aruseus has quit [Remote host closed the connection]