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>
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>
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>
Variable Length Arrays?
<
Regenaxer>
Then it would crash for any code
<
tankf33der>
but gcc version is different everywhere
<
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>
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>
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
<
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>
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!
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