ChanServ changed the topic of #picolisp to: PicoLisp language | Channel Log: https://irclog.whitequark.org/picolisp/ | Check also http://www.picolisp.com for more information
orivej has joined #picolisp
aw- has quit [Ping timeout: 256 seconds]
aw- has joined #picolisp
orivej has quit [Ping timeout: 256 seconds]
orivej has joined #picolisp
alexshendi has quit [Read error: Connection reset by peer]
orivej has quit [Quit: No Ping reply in 180 seconds.]
orivej has joined #picolisp
rob_w has joined #picolisp
mtsd has joined #picolisp
orivej has quit [Ping timeout: 260 seconds]
orivej has joined #picolisp
orivej has quit [Quit: No Ping reply in 180 seconds.]
orivej has joined #picolisp
orivej has quit [Ping timeout: 246 seconds]
orivej_ has joined #picolisp
rob_w has quit [Quit: Leaving]
rob_w has joined #picolisp
aw- has quit [Ping timeout: 272 seconds]
<Regenaxer> tankf33der: '|' and 'x|' fixed
<tankf33der> ok
<Regenaxer> BTW, how did you find the bugs? 'bigtest'?
<tankf33der> i have my own based on yours
<Regenaxer> very good
orivej has joined #picolisp
orivej_ has quit [Ping timeout: 272 seconds]
<tankf33der> works
<tankf33der> >> left
<Regenaxer> yes
<Regenaxer> searching
<Regenaxer> It reduces to (>> 45 142545485638582308348707664611498124937386859731)
<Regenaxer> reduces to (>> 1 142545485638582308348707664611498124937386859731)
<Regenaxer> which is 'shru'
<tankf33der> rest is working on real random big numbers, big is 10k-20k digits.
<Regenaxer> great
<tankf33der> your bigtest too optimistic, thats why it worked 32 hours without problem
<Regenaxer> Not 32 hours, just 4
<Regenaxer> always 4 in parallel :)
<Regenaxer> I test certain patterns which I believed to be critical
<Regenaxer> So I miss other patterns
aw- has joined #picolisp
<Regenaxer> I hope you test a lot more! :)
<Regenaxer> Found
Seteeri has joined #picolisp
<Seteeri> Hello
<Regenaxer> Hi Seteeri
<Seteeri> I was wondering why is there not a function to set the car like con? I'm looking for a function similar to con
<Regenaxer> There is one, 'set'
<Seteeri> mmm let me try it
<Regenaxer> In PicoLisp the CAR of a cell and the VAL of a symbol are both called 'var' in the docs
<Regenaxer> applies to all functions documented with 'var' arguments
<Seteeri> yup! That's the function I was looking for - totally missed it!
<Regenaxer> :)
<beneroth> hi all :-)
<Regenaxer> Hi beneroth
<Seteeri> hello
<DKordic> Greetings everyone.
<DKordic> How to set the CAR and CDR of a num?
<Regenaxer> Hi DKordic
<DKordic> o/ Regenaxer
<Regenaxer> With arithmetics :)
<DKordic> Ricght :) . How to Destructively Update "num"?
<Regenaxer> There is no Lisp-level function
<DKordic> Why?
<Regenaxer> You can write it with 'native'
<Regenaxer> In any case very hard to use
<Regenaxer> Numbers are encoded in a not very intuitive format
<Regenaxer> I think even with 'adr' it is not possible
<Regenaxer> cause 'adr' adresses symbols or cells
<DKordic> T
<Regenaxer> ie multiples of 8 in the pointer value
<Regenaxer> bignums need an offset of 4
<DKordic> VM Pages on AMD64 are 4 Ki B# and 4 Mi B# . Wouldn't it be cute to make allocation unit a VM Page of the platform?
<Regenaxer> Ah! There is a way
<Regenaxer> 'byte'
<Regenaxer> PilOS manipulates these tables
<Regenaxer> I forgot the details
<Regenaxer> Allocating is not the bottleneck
<Regenaxer> and cells are accessed not sequentially often
<Regenaxer> so the heap size does not matter much I believe
<DKordic> Yes, but what is the reason for the choice of 1 Mi B# ?
<beneroth> but but but everyone else optimizes for it!11 how to allocate chunks of memory only as 4KiB or 4MiB!!! and they consume a lot of RAM, wonder why...
<Regenaxer> Just more human-readable
<DKordic> Ah!
<Regenaxer> (human-readable in the result of 'heap' only)
<Regenaxer> Initial PicoLisp used 32 KiB heyps
<Regenaxer> heaps
<Regenaxer> it was the max allocation size in the Resource Manager on Mac+ ;)
<DKordic> Same as today. Upper half of VM Address Space is reserved for Kernel.
<Regenaxer> But to your question: With a combination of 'adr' and 'byte' you can modify a number
<DKordic> So We have _just_ 17 2* b# wasted of 64 2* b# per CELL :) .
<Regenaxer> ?
<DKordic> We have 34 unused bits per cons CELL.
<Regenaxer> We waste 64 bits per MiB in a heap
<Regenaxer> In the cell no bits are wasted
<DKordic> 16 Most Significant bits are reserved on AMD64.
<DKordic> For Pointers.
<Regenaxer> ok, physically
<Regenaxer> But pil does not care about AMD
<DKordic> Yes, Virtual Memory.
<Regenaxer> Future architectures will use all
<Regenaxer> first pil ran on 68000
<Regenaxer> it used only 24 bits of 32
<Regenaxer> so the upper 8 bits were free
<Regenaxer> but it would have been stupid to use them
<Regenaxer> Soon architectures (also 68 k) used the full address space
<Regenaxer> Same will be with 64 bit machines
<Regenaxer> I meant: first pil ran on 68008
<DKordic> Sinclair QL?
<Regenaxer> No, custom machine
<Regenaxer> OK, first was Mac
<Regenaxer> so it was an 68000
<Regenaxer> but I think 68000 could also adress only 24 bits
<Regenaxer> *address
<Regenaxer> That was unbelievably huge at that time
* beneroth didn't know amd64 architecture has reserved bits...
<DKordic> beneroth: 16 MSb:s must be Sign-Extend:ed on Memory Acess Operations.
<beneroth> naturally
<DKordic> For __Binary__ ""Forward-Compatibility"".
<beneroth> yeah those plans always works well when the USB crystal ball worked and the future was correctly foreseen
<DKordic> What kind of Brain-Damaged High-Level language or compiler needs that!?
<beneroth> maybe it is to have the ability to create demand (for software changes, support)
<beneroth> like BigCorp (e.g. Siemens) not fixing bugs in their core product, because they generate customizing revenue
<DKordic> Yeah, ""Self-Licking Ice-Cream Cone"".
orivej has quit [Quit: No Ping reply in 180 seconds.]
orivej has joined #picolisp
orivej has quit [Quit: No Ping reply in 180 seconds.]
mtsd has quit [Quit: Leaving]
orivej has joined #picolisp
<tankf33der> Regenaxer: >> fix already released, right ?
<Regenaxer> yep
<tankf33der> cant reproduced, all passed.
<Regenaxer> great!
<Regenaxer> Can you let run the tests a little more?
<tankf33der> sure.
<Regenaxer> Bignums are hard to get right
<Regenaxer> :)
<beneroth> Bignums, big problems
<beneroth> Smallnums, off by one.
<Regenaxer> hehe, indeed
<beneroth> :)
<Regenaxer> :)
<tankf33der> running 100K loop
<tankf33der> 5k-10k digits every num
<Regenaxer> ok
<beneroth> nice!
rob_w_ has joined #picolisp
rob_w has quit [Ping timeout: 256 seconds]
orivej has quit [Ping timeout: 246 seconds]
orivej has joined #picolisp
orivej has quit [Read error: Connection reset by peer]
orivej has joined #picolisp
<tankf33der> Regenaxer: all passed.
_whitelogger has joined #picolisp
<Regenaxer> Glad to hear!
<Regenaxer> Thx!!
orivej has quit [Quit: No Ping reply in 210 seconds.]
orivej has joined #picolisp
orivej has quit [Ping timeout: 256 seconds]
orivej has joined #picolisp
orivej has quit [Ping timeout: 264 seconds]
orivej has joined #picolisp
Seteeri has quit [Ping timeout: 272 seconds]
orivej has quit [Ping timeout: 256 seconds]
orivej has joined #picolisp
rob_w_ has quit [Read error: Connection reset by peer]
f8l has quit [Remote host closed the connection]
f8l has joined #picolisp
f8l has quit [Remote host closed the connection]
f8l has joined #picolisp
orivej has quit [Ping timeout: 256 seconds]
orivej has joined #picolisp
_whitelogger has joined #picolisp