beneroth changed the topic of #picolisp to: PicoLisp language | The scalpel of software development | Channel Log: | Check for more information
<abu[7]> Same with (catch NIL (co 'a (throw)))
<abu[7]> So *some* co data are not cleaned up if the co is exited abnormally
bjorkintosh has quit [Quit: "Every day, computers are making people easier to use." David Temkin]
<tankf33der> yea
<tankf33der> morning
<abu[7]> o/
<abu[7]> Debugging
<abu[7]> Probably in llvm~unwind
rob_w has joined #picolisp
<abu[7]> I think I found it
<tankf33der> Fast
<abu[7]> Testing
<abu[7]> I hope I did not break anythiny
<tankf33der> :)
<tankf33der> Is it core issue?
<abu[7]> Yes
<abu[7]> llvm~unwind
<abu[7]> Coroutines are by far the most complicated part of Pil :(
<tankf33der> Anyway pil21-tests the only hope
<tankf33der> to test
<abu[7]> Exactly
<abu[7]> There are so many variations to call coroutines
<abu[7]> OK. I release now.
<abu[7]> Done
<tankf33der> Running
<abu[7]> 👍
<abu[7]> The problem was just one tiny field 'at' in the coroutine structure
<abu[7]> Must be set to zero in 'unwind'
<tankf33der> Passed
<abu[7]> 'unwind' rolls back several structures in throw or error handling
<abu[7]> 😎☺
msavoritias has joined #picolisp
Iacob has quit [Ping timeout: 272 seconds]
Iacob has joined #picolisp
<tankf33der> abu[7]: found gc cannot clean up garbage inside co after co exit
<abu[7]> How do you know it in not cleaned up?
<tankf33der> (heap)
<abu[7]> ok
<tankf33der> and gc can cleanup if i (off ..) it inside co before exit
<tankf33der> or before (yield)
<tankf33der> (heap) -> 2
<abu[7]> Then the data must still be referenced somewhere
<abu[7]> Is it in a local variable?
<abu[7]> (co ... (let ...
<tankf33der> (setq
<abu[7]> Then it is not co-local
<tankf33der> let try let
<tankf33der> then
<abu[7]> ok
<tankf33der> cleanuped! :)
<abu[7]> 👍
msavoritias has quit [Ping timeout: 272 seconds]
msavoritias has joined #picolisp
abu[7] has quit [*.net *.split]
abu[7] has joined #picolisp
abu[7] has quit [*.net *.split]
abu[7] has joined #picolisp
<beneroth> thanks tankf33der and abu[7] for all the testing and improvements :)
<beneroth> you're the best
<abu[7]> Thanks beneroth!
rob_w has quit [Remote host closed the connection]
msavoritias has quit [Remote host closed the connection]