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
ubLIX has quit [Quit: ubLIX]
freemint has quit [Ping timeout: 250 seconds]
orivej has joined #picolisp
_whitelogger has joined #picolisp
_whitelogger has joined #picolisp
orivej has quit [Ping timeout: 252 seconds]
_whitelogger has joined #picolisp
orivej has joined #picolisp
orivej has quit [Ping timeout: 272 seconds]
orivej has joined #picolisp
freemint has joined #picolisp
ubLIX has joined #picolisp
<Regenaxer> tankf33der: Any new idea for the gc issue?
<tankf33der> no
<tankf33der> ive tried repeat it another way without success
<Regenaxer> But on non-Linux it is reproducible?
<tankf33der> for me main question why netbsd7 ok and netbsd8 crash.
<tankf33der> yea
<tankf33der> netbsd, openbsd, cygwin, msys2
<Regenaxer> If really a bug in pil, it must be one function called by 'grid'
<Regenaxer> makes heap inconsistent
<tankf33der> maybe Virtual memory os OS
<tankf33der> netbsd7 is ok
<tankf33der> maybe VLA of gcc
<Regenaxer> VLA?
<Regenaxer> Variable Length Arrays?
<Regenaxer> Then it would crash for any code
<tankf33der> but gcc version is different everywhere
<Regenaxer> I see
<Regenaxer> Perhaps mini should be checked too? It also uses VLAs but is quite different in other regards
ubLIX has quit [Quit: ubLIX]
<tankf33der> my huge.l works everywhere
<tankf33der> and test.l
<Regenaxer> ok
<Regenaxer> Something special in 'grid'
<Regenaxer> or combination of circumstances
libertas has joined #picolisp
<tankf33der> set neibours in second part
<tankf33der> if i disable some of them then works.
<Regenaxer> set and con
<Regenaxer> But if the crash does not happen does not mean it is OK
<tankf33der> i dont remember combination and cant run and test
<Regenaxer> eg (set (: 0 1) ...
<tankf33der> but under sanitizers works on linux
<Regenaxer> This may mean not 'set' is the problem, but the cells at (: 0 1)
<tankf33der> sanitizer set canary protection on everything.
<Regenaxer> What does that mean exactly?
<Regenaxer> canary protection
<tankf33der> protect boundary protections
<tankf33der> access
<Regenaxer> hmm
<Regenaxer> boundaries are probably not the problem
<tankf33der> of course with limitations.
<Regenaxer> pil does not much malloc()
<tankf33der> check limits part.
<Regenaxer> yes, does not apply to pil
<Regenaxer> It does only big heap chunks
<Regenaxer> then manages it all privately
<tankf33der> i can turnon malloc guard on openbsd
<Regenaxer> no, this is not the issue
<Regenaxer> cells are not allocated that way
<Regenaxer> pil allocates a heap, then allocates its cells within the heap
<tankf33der> eh
<Regenaxer> Normal tools have no idea of that
<Regenaxer> I don't think the malloc() for heap blocks can be a problem
<Regenaxer> And they are normally never free()d
<Regenaxer> (except when (gc 0))
<Regenaxer> So memory allocation is surely not the problem
<Regenaxer> It must be how Lisp cells are handled
freemint has quit [Ping timeout: 252 seconds]
<Regenaxer> (gc) operates only on those (or calls malloc() to create a new heap)
<Regenaxer> What *is* complicated are the pointers *between* cells
<Regenaxer> but these cannot be known or checked by general sanitizers or similar tools
<tankf33der> also i did that version:
<tankf33der> setq g grid 1000 1000
<tankf33der> for a g
<tankf33der> for this a
<tankf33der> =: b6 1
<Regenaxer> ok, good
<tankf33der> and it crash in the same place
<Regenaxer> ok
<Regenaxer> So the cell structure seems already corrupted at that point
<tankf33der> when 999 999 in smaller
<Regenaxer> problem is always that crashes occur much later (or never)
<Regenaxer> I think it always crashes in gc()
<Regenaxer> you can see that if you put printf at the beginning and end of gc()
<Regenaxer> fprintf(stderr, "gc start\n");
<Regenaxer> fprintf(stderr, "gc end\n");
<Regenaxer> stderr is important!
<Regenaxer> stdout is buffered and not printed in a crash
<tankf33der> i will try on monday
<Regenaxer> thanks!
_whitelogger has joined #picolisp
alexshendi has joined #picolisp
ubLIX has joined #picolisp
beneroth has quit [Remote host closed the connection]
alexshendi has quit [Remote host closed the connection]
orivej has quit [Ping timeout: 245 seconds]
beneroth has joined #picolisp
_whitelogger has joined #picolisp
ubLIX has quit [Quit: ubLIX]
<rick42> very interesting
<rick42> thanks tankf33der and Regenaxer for sticking to this issue!
<Regenaxer> ☺/
<rick42> \o
stultulo has joined #picolisp
f8l has quit [Ping timeout: 268 seconds]
stultulo is now known as f8l
freemint has joined #picolisp
freemint has quit [Ping timeout: 252 seconds]
freemint has joined #picolisp
ubLIX has joined #picolisp
freemint has quit [Quit: Leaving]
ubLIX has quit [Quit: ubLIX]
clacke_movim has left #picolisp [#picolisp]
orivej has quit [Ping timeout: 252 seconds]
clacke_movim has joined #picolisp
freemint has joined #picolisp
kce has joined #picolisp
kce has quit [Client Quit]
Guest70917 has joined #picolisp
Guest70917 has quit [Remote host closed the connection]
freemint has quit [Ping timeout: 252 seconds]
ubLIX has joined #picolisp