<tankf33der>
so you cant continue after yield, right?
<Regenaxer>
The behavior is meaningless, it gives varying results
<Regenaxer>
Something is deeply wrong, I did not find it yet
<Regenaxer>
Here (Termux on Arm64) it does not give 1 on second call but crashes immediately
orivej has joined #picolisp
<tankf33der>
щл
<tankf33der>
ok
Phoenixwater[m] has joined #picolisp
<DKordic>
Welcome Phoenixwater[m].
<DKordic>
Good morning everyone.
<Regenaxer>
Hi DKordic!
<DKordic>
Greetings Regenaxer. Happy New Year(R). :3
<Regenaxer>
Thanks, same to you! :)
<Regenaxer>
I know *where* it crashes, but I don't know *why* atm
<tankf33der>
what llvm version on termux
<tankf33der>
mine is llvm9
<tankf33der>
?
<Regenaxer>
I had to completely rethink coroutines. The critical points - handling of the stack segments - seem to be solved and the generated asm code looks good
<Regenaxer>
llvm version does not matter I'm sure
<Regenaxer>
It is a logical problem
<Regenaxer>
Saving and restoring environments between yield's
<tankf33der>
T
<tankf33der>
ok
<Regenaxer>
The second yield is called, but crashes when resuming the main task
<Regenaxer>
i.e. when the next thing (here again yield, but can be anything like a print) is to be called
<Regenaxer>
wrong: Not resuming main task but coroutine code
<Regenaxer>
grr, it is confusing ;)
<Regenaxer>
In pilAsm it was easier, as we can control everything
<Regenaxer>
llvm is not low-level at all
<Regenaxer>
you cannot make any assumptions about the lower levels
<Regenaxer>
Still it is a lot better than C, as we *can* control the stack a little
beneroth has joined #picolisp
v88m has quit [Ping timeout: 268 seconds]
<tankf33der>
checked. latest centos8, llvm7 - the same.
<Regenaxer>
ok
beneroth has quit [Quit: Leaving]
<Regenaxer>
I should start to study the LLDB Debugger¶
<tankf33der>
eh.
Blue_flame has joined #picolisp
Blue_flame has quit [Read error: Connection reset by peer]
<Regenaxer>
I want to find a way to debug on llvm-ir level