Hi Kashyap! Dividing up Lisp Cells (Atoms) in RAM/ROM - i think, you're referring to this: https://picolisp.com/wiki/-A265.html has recently got another aspect: https://en.wikipedia.org/wiki/Remote_direct_memory_access
RDMA, Remote Direct Memory Access. With Picolisp and especially miniPicoLisp you can build one (logically) giant Lisp machine across hundreds of servers. I'm using that since a couple of weeks now using some Nokia 400 GbE cards and i must say: It works pretty well! ;-) Distributed in memory database, partly with persistance, Graph, PILOG on top ... It's the simlicity in PicoLisp that allows to do unbelievable things. As i've already said: PicoLisp is a *genius strike*. You can easily do things, that only would be available if you would use those multi million line US software stacks, with all their bugs, NSA backdoors, whatever. Have fun! Best, Guido Stepken Am Dienstag, 21. April 2020 schrieb C K Kashyap <[email protected]>: > Hi Alex et al, > I've been working on miniPicoLisp source with the idea of making it more easy to understand - granted, it's really simple but it's simplicity may not be apparent from looking at the source to some (such as myself). For instance, it took me some time to get what's going on with the optimized string storage. So, one of the changes I did was to switch to 7 bits for all. So I am trying to alter the code to make it easy for guys like me :) > I have a couple of questions > 1. About RAM vs ROM Call me lazy but I would really appreciate a description of how the RAM vs ROM decision is taken here (and in general too..I mean, it is not clear to me how gen3m.c determines how something is never written to or not) > if (x > 0) > Rom[x] = strdup(buf); > else > Ram[-x] = strdup(buf); > > 2. Can I try and make the CELL have an additional byte to store the TYPE and get rid using tagged pointers? Clearly, it would be less efficient at runtime but perhaps it would be more easy to understand. Is there any reason that this would not work? > Regards, > Kashyap
