Fork me on GitHub
#cljs-dev
<
2018-08-27
>
john16:08:27

I've mostly got my head around how PersistentVectors work. And I think the persistent IList works similarly, but from left to right, and one element at a time, rather than chunks of 32 (and without the bitshifting jazz), correct? And I think PersistentHashMap is operating more like the PersistentList, but where each key value pair can act as a head/tail, in a branching way. Do I understand those right?

spinningtopsofdoom16:08:24

PersistentHashMap acts more like PersistentVectors .

spinningtopsofdoom16:08:37

Each node stores Key Value pairs or pointers to nodes below it (e.g. KVKVP*KVKV or P*P*KVP*) in an array of up to size 32

spinningtopsofdoom16:08:21

KV is a key value pair and P* is a pointer to a sub nod

spinningtopsofdoom16:08:17

Each keys hash determines where the Key Value pair is located on each node.

john17:08:59

aye thus this .inode_lookup and .inode_assoc

john17:08:43

ah k, so all the magic happens in BitmapIndexedNode

john17:08:37

and the root of a PHM is always a BIN

dnolen18:08:48

PersistentList is just a linked list that doesn’t support mutation

dnolen18:08:08

huh anybody able to get ./script/bootstrap to work?

mfikes18:08:07

Yes, script/clean and then script/bootstrap works for me.

dnolen18:08:58

yeah ok something weird w/ my network here