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
shoshin4 has joined #picolisp
shoshin has quit [Read error: Connection reset by peer]
shoshin4 is now known as shoshin
aw- has joined #picolisp
aw- has quit [Quit: Leaving.]
Lambdajack has quit [Quit: AFK]
orivej has joined #picolisp
_whitelogger has joined #picolisp
aw- has joined #picolisp
orivej has quit [Ping timeout: 240 seconds]
_whitelogger has joined #picolisp
<tankf33der> in this 20h run all passed under gc+. kangaroo12 append passed too. rest will be tomorrow.
<Regenaxer> Good to know
<Regenaxer> I still have no clue about stress.l
<Regenaxer> Just know it always happens around binRead and extern
<Regenaxer> But all related code looks correct to me
<Regenaxer> It happens in binRead, and is gc-related
<Regenaxer> stress.l with (gc 80) can't reproduce
<Regenaxer> I'm stuck
<Regenaxer> would need to release PilBox, but it is too dangerous if DB is not safe
orivej has joined #picolisp
orivej has quit [Ping timeout: 260 seconds]
orivej has joined #picolisp
pointfree has quit [Ping timeout: 272 seconds]
pointfree has joined #picolisp
pointfree has quit [Excess Flood]
pointfree has joined #picolisp
<tankf33der> i gonna blow up heap by malloc and try to run under gc+ again. i will increase step by step and run tests in loop. maybe will find something important. run @lib/test.l is good candidate.
<tankf33der> because it is relatively fast under gc+
<Regenaxer> Very good
<Regenaxer> I'm checking the sources
<Regenaxer> Good thing, I did many changes and clean ups
<Regenaxer> But nothing critical I think
<tankf33der> i used already this technics in spring
<Regenaxer> ok
<Regenaxer> Let's hope you find something
<Regenaxer> as I said above, it looks very much that it is gc-related
<Regenaxer> My tests with (gc 80) are still running
<Regenaxer> gc-related, but also always waitFd -> binRead -> extern
<Regenaxer> reading external symbols with plio
<Regenaxer> It never crashed in other parts of stress.l
orivej has quit [Ping timeout: 256 seconds]
<Regenaxer> Ha! Now I can reproduce the crash outside of stress.l!!
<tankf33der> what changed?
<Regenaxer> Nothing
<tankf33der> is it under todays changes?
<Regenaxer> yes
<tankf33der> ok
<Regenaxer> I create a fifo mkfifo ../tmp/fifo
<Regenaxer> then in one repl
<Regenaxer> : (hear (open "../tmp/fifo"))
<Regenaxer> and in the other
<Regenaxer> : (out "../tmp/fifo" (pr (list 'msg (list 'length (lit (make (do 999999 (link (id (rand 1 16) (rand 1 63))))))))))
<Regenaxer> If I call (gc) at some points, it segfaults
<Regenaxer> Should be directly work with gc+
<tankf33der> i will play asap.
<Regenaxer> cool!
<Regenaxer> I try too
<Regenaxer> Sending random numbers does not crash
<Regenaxer> As I suspected, PLIO externals over IPC
<tankf33der> Regenaxer: now i have pretty big list of tasks what i cound run under gc+
<tankf33der> what should be first then?
<Regenaxer> Is the order critical?
<Regenaxer> How long do they take in total? One night?
<Regenaxer> Digging down in the code: It must be 'extern'
<Regenaxer> Now as I can reproduce it at 100%, I'll quickly find it I believe :)
<Regenaxer> binary search
<tankf33der> Regenaxer: one night
<Regenaxer> I see
<Regenaxer> Hmm, I think I understand the problem now
<Regenaxer> Can't be found with gc+ at all
<Regenaxer> It is not one of the normal stack or heap corruption
<Regenaxer> it is more tricky
<Regenaxer> It happens because if gc runs *while* 'extern' traverses the name tree, gc could modify the tree
<Regenaxer> I forgot about this kind of danger
<Regenaxer> pil64 does special pre-allocation for such a case
<Regenaxer> I'm so stupid
<Regenaxer> pil64 does "call need3 # Reserve 3 cells"
<Regenaxer> but I thought this is not needed, and then forgot about it
<Regenaxer> Was searching for normal errors for days
<Regenaxer> Good thing is that in this way I did a deep code inspection :)
<tankf33der> sounds good.
<Regenaxer> :)
<Regenaxer> Testing now
<Regenaxer> Released
<Regenaxer> Will now start stress tests
<tankf33der> my test buindle passed.
<Regenaxer> Great
<Regenaxer> Big step forward
<beneroth> congratulations Regenaxer
<beneroth> you're the best!
<Regenaxer> Nope, I was very stupid
<beneroth> error making is easy, everyone is doing that. error fixing not so much.
<beneroth> Greetings from plague state ;-)
<Regenaxer> Thanks :)
<Regenaxer> Looks not good anywhere
<Regenaxer> Let's see what other bugs we find
<Regenaxer> Oh! Lots of people :)
aw- has quit [Ping timeout: 260 seconds]
<beneroth> looks nice :)
aw- has joined #picolisp
aw- has quit [Ping timeout: 260 seconds]
Blukunfando has joined #picolisp
aw- has joined #picolisp
orivej has joined #picolisp
libertas has quit [Ping timeout: 246 seconds]
libertas has joined #picolisp
orivej has quit [Ping timeout: 265 seconds]
orivej has joined #picolisp
orivej has quit [Ping timeout: 258 seconds]