<beneroth>
yeah, though I was only in like 3 talks or so.. mostly spend time with technical and philosophical discussions with friends and random people, "angeling" (helping out, the whole congress is operated bys voluntary work of ca. 10% of the visitors)
<Regenaxer>
Nice
<beneroth>
I love the atmosphere there, interesting curious intelligent people having to tell and show interesting stuff (and they usually being interested in whatever others have to tell and show)
<Regenaxer>
ok
<Regenaxer>
I'm too lazy ;)
<Regenaxer>
should also visit more such happenings
<beneroth>
and everything just runs smooth. also a big feature of everything being run by volunteers, that way people are motivated, glad to help (they want to make others enjoy the congress), and often skilled people with professional background
<beneroth>
you definitely should visit C3 once. its quite a different thing that a sales mass, training congress or pure programmer meetup (like fosdem, and I imagine froscon).
<Regenaxer>
yeah
<beneroth>
there are many art installations, like one bar had a piano on strings hanging from the ceiling above it, on strings, taken apart like an "explosion-drawing"? (I'm unsure about the word)
<Regenaxer>
me too, in German it is that
<beneroth>
and a few mechanical robots. one is a weird creepy looking dog-thingy based on pneumatics and arduino control. the owner put the C API on the floor with the marker, people could write a program to be loaded on the robot, so it did something different all the time
<beneroth>
a lot crazy fun stuff :)
<Regenaxer>
cool
<alexshendi>
Hi, beneroth
orivej has quit [Ping timeout: 250 seconds]
orivej has joined #picolisp
alexshendi has quit [Ping timeout: 250 seconds]
alexshendi has joined #picolisp
<alexshendi>
Re
<razzy>
how pricey is if you look for properties with (prop 'sym 'property ) ? it generates (NIL . property) for every symbol i ask
<beneroth>
see (size)
<beneroth>
e.g. (size '(NIL . property))
<razzy>
thx
<beneroth>
and if you don't pre-allocate memory with (gc 'num) (gc with number argument) high number of allocations tend to become costly, as then every time the so-far allocated memory is filled, garbage collector gets executed and than additional memory allocated (if still needed)
<Regenaxer>
razzy, you misunderstand this
<Regenaxer>
'prop' does not *generate* anything
<Regenaxer>
correct what beneroth says for general consing
<Regenaxer>
but 'prop' is an access function like 'get'
<razzy>
Regenaxer: it seems, picolisp says something different. https://ptpb.pw/HTsi (prop) seem to generate (NIL . prop) pair when (get do not)
<Regenaxer>
What does picolisp "say" here?
<Regenaxer>
The reference for 'prop' *says*: Fetches a property for a property ...
<Regenaxer>
It does *not* build anything
<beneroth>
thx Regenaxer. I didn't look at ref.
<razzy>
when i use (show 'a) afterwards, it show (NIL . h) property (prop) created
<Regenaxer>
razzy, have you understood the mechanisms of properties in pil?
<razzy>
Regenaxer: i think so
<Regenaxer>
look at doc64/structures
<Regenaxer>
Why should it cons a cell which it just looked up?
<Regenaxer>
but instead of returning VAL it returns the whole cell
<Regenaxer>
that's all. No consing involved
<Regenaxer>
It is important that it does *not* cons a new cell
<razzy>
Regenaxer: i want what you said to be true. but it seems that (prop) is consing (NIL . property) pair of the property it looks for.
<Regenaxer>
So you can (inc (prop 'A 'a)) or (pop (prop 'A 'a))
<Regenaxer>
I *know* it is true
<Regenaxer>
(at least last week I remember it was still true)
<razzy>
Regenaxer: pls look at this it is a bit redacted for better show https://ptpb.pw/ThdV
<Regenaxer>
I know what you mean. If the cell does *not* exist yet, it is created
<Regenaxer>
So this allows (push (prop 'a 'b) 1
<Regenaxer>
)
<razzy>
i see now.
<Regenaxer>
Otherwise 'push' would crash
<Regenaxer>
(push NIL 1)
<razzy>
i would of liked to use existence of property for searching
<razzy>
nevermind
<Regenaxer>
yeah, a property kind of always exists
<Regenaxer>
you can test for this existence with 'getl'
<Regenaxer>
'get' or 'prop' always succeed
<Regenaxer>
though 'get' never creates a NIL property
<Regenaxer>
and 'put' completely removes the cell if the value is NIL
<razzy>
interesting
<Regenaxer>
So in summary, you were not completely wrong, because 'prop' does a cons in a certain situation (ie. the first time). But this is not "pricey"
<razzy>
well, i intend search (all) so imagine every symbol with added cell
<razzy>
propably more :]
<razzy>
thx
<Regenaxer>
With "with added cell" you mean those with properties?
<Regenaxer>
Perhaps the best is to iterate (all) with 'maps'
<Regenaxer>
'getl' is more costly, as it builds the list each time
<Regenaxer>
(getl 'A) is about the same as (make (maps link 'A))
<razzy>
case closed. i will optimize later :]
<Regenaxer>
good
alexshendi has quit [Read error: Connection reset by peer]
alexshendi has joined #picolisp
alexshendi2 has joined #picolisp
alexshendi has quit [Ping timeout: 264 seconds]
<razzy>
i still have troubles figuring out where to put quotes
<Regenaxer>
Well, only if you want to inhibit evaluation of something
alexshendi2 has quit [Quit: Yaaic - Yet another Android IRC client - http://www.yaaic.org]
<tankf33der>
warmup example from wikipedia, will integrate to adventofcode lately. Feel no energy.
<Regenaxer>
:)
<beneroth>
tankf33der, nice
<beneroth>
Regenaxer, boolean fields are stored as properties without a value in DB, afaik. if the boolean value is NIL, not even the property name is stored.
<beneroth>
just a minor detail. not relevant for razzy. nice minor optimization for db case.
<beneroth>
tankf33der, thanks for pointing me at this, I didn't know this. might be useful for speeding up a number crunching database.