beneroth changed the topic of #picolisp to: PicoLisp language | The scalpel of software development | Channel Log: https://libera.irclog.whitequark.org/picolisp | Check www.picolisp.com for more information
theruran has joined #picolisp
<Nistur> stupid weak fleshy body
<Nistur> also: Hello
<abu[7]> Hello Nistur! o/
<Nistur> o7
<Nistur> how's tricks?
<abu[7]> No tricks ;)
<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> does (gc) also wipe external symbols?
<abu[7]> No
<abu[7]> It discards them
<abu[7]> if not dirty
<beneroth> ah
<abu[7]> and not referenced
<beneroth> ok
<abu[7]> This it osm/create.l
<abu[7]> picolisp.com/osm
<abu[7]> You can download the tgz
<abu[7]> Moment
<beneroth> thanks - as example for prune?
<abu[7]> wrong
<abu[7]> We need create.l
<abu[7]> No 'gc'
<abu[7]> all done *inside* 'create'
<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?
<abu[7]> Correct
<beneroth> alright. Thanks! :)
<abu[7]> If after collection not enough is free
<beneroth> T
<abu[7]> it allocates more
gahr has joined #picolisp
<beneroth> hi gahr
<abu[7]> Good night all for today! お休み :)
<beneroth> Good night abu[7] :)