<Nistur>
I've been totally out of action for a week or so, so I've made absolutely zero progress on the project I mentioned before... but today I'm feeling... marginally more capable, so I'm going to try to set up a dev environment to work on it, as I don't think that deving on a live serveris a great idea, and the netbook thing I'm hacking on doesn't like pil much
<abu[7]>
Caught a cold?
<Nistur>
not quite
<Nistur>
I have a herniated disk which decided to play up and put me in bed in agony, unable to move
<Nistur>
loads of fun
<abu[7]>
oh, in the back? Or knee?
<Nistur>
bandscheibenvorfall?
<Nistur>
lower back
<abu[7]>
uh
<Nistur>
trapped the nerve that goes down my left leg
<Nistur>
most fun was yesterday when I sneezed. I have never had that amount of agony in one go.
<Nistur>
Cannot recommend.
<abu[7]>
Indeed
bjorkintosh has quit [Ping timeout: 276 seconds]
<DKordic>
Hi everyone. TIL helium 8 is a thing.
<abu[7]>
Hi DKordic!
<abu[7]>
TIL = "threaded interpreted language"?
<abu[7]>
hmm, isotope
bjorkintosh has joined #picolisp
bjorkintosh has joined #picolisp
geri has joined #picolisp
<geri>
ohayo~
<geri>
found out that both vectors and hash maps in clojure could pretty much be implemented with a bunch of cells relatively efficiently
<geri>
so that's interesting, we're back to kinda only needing cons cells :D
gahr has quit [Quit: leaving]
<DKordic>
Hi geri. I bet Clojure DS is tuned to Cache Line Size, which is usually 64 Bytes.
gahr has joined #picolisp
gahr has quit [Quit: Lost terminal]
<geri>
persistent vectors have nodes be 32 elements wide, not 2, so yeah
<geri>
idk about hash maps, only know that it's using HAMT
<abu[7]>
Hi geri! Welcome back!
beneroth has joined #picolisp
<beneroth>
abu[7], what would you do periodically shrink memory usage in long-running database processes besides (prune) ? doing maybe (mapc 'wipe (all 0))?
<abu[7]>
I do no wipe I think. just (prune) and (gc 0)
<beneroth>
I don't see any explicit 'gc call - that is the point?
<abu[7]>
it is in 'create'
<abu[7]>
(vi 'create)
<beneroth>
yep I see it. (gc 200 200)
<beneroth>
and gc 0 again
<abu[7]>
T
<beneroth>
so (gc) unloads (= wipes) and de-internalizes all external symbols which are not dirty?
<beneroth>
(and not bound)
<beneroth>
so I don't have to worry about having a long-running db process which blows up by caching external symbols, even when no (wipe) happens, the external objects get "unloaded" by (gc) eventually, automatically?
<abu[7]>
"so (gc) unloads (= wipes) and de-internalizes" -> Simply gc-collects them
<beneroth>
T
<beneroth>
got it, thanks!
<beneroth>
well
<beneroth>
abu[7], that means in purposely long-running processes, where we want to take advantage of pildb caching, (gc) should be used with a number argument, to prevent premature gc-runs = premature cleanup of the pildb caching?
<beneroth>
because the gc will always first cleanup before attempting to allocate more memory (if necessary), right?