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
orivej has quit [Ping timeout: 272 seconds]
orivej has joined #picolisp
orivej has quit [Ping timeout: 272 seconds]
<tankf33der> co.l passed gc+.
_whitelogger has joined #picolisp
<Regenaxer> Hi tankf33der
<Regenaxer> Coroutine performance itself is not so very slow in pil21
<Regenaxer> (bench (do 999999 (co 'a (loop (yield)))))
<Regenaxer> gives nearly the same timings on both
<Regenaxer> oops!
<Regenaxer> no
<Regenaxer> I missed by an order of magnitude
<Regenaxer> pil21 is indeed a lot slower
<Regenaxer> 'yield' takes so long, cause llvm does not allow the same low-level access to the stack pointer as assembly does
<Regenaxer> Can't be improved I'm afraid
<tankf33der> ok
<Regenaxer> powers can be reduced to:
<Regenaxer> (de powers ()
<Regenaxer> (co 'powers (yield)) )
<Regenaxer> (co 'filtered
<Regenaxer> (powers)
<Regenaxer> (yield) )
<Regenaxer> Different invocation environments
<Regenaxer> was the problem all the time
<Regenaxer> Will debug later
<Regenaxer> On Arm64 yield is about 6 times slower. On x86-64 it is 23 times!!!
<Regenaxer> Can't believe
<tankf33der> maybe something is wrong in implementation
<Regenaxer> I don't think so
<Regenaxer> setjmp/longjmp is expensive, I know
<Regenaxer> Saves the whole environment
<beneroth> Good morning Regenaxer, tankf33der
<beneroth> 23 times? sounds like emu-land
<Regenaxer> Hi beneroth
<Regenaxer> indeed!
rob_w has joined #picolisp
mtsd has joined #picolisp
<tankf33der> pil21 hangs on musl alpine linux. debugging
<tankf33der> ha, calling regcomp and regexec from musl. not related to pil. ignore.
<tankf33der> i will post announce on reddit for pilcon
<Regenaxer> ok :)
<mtsd> Hello everyone
<tankf33der> posted:
<Regenaxer> Cool! Thanks!
<Regenaxer> Hi mtsd!
<mtsd> Hi Regenaxer!
<Regenaxer> :)
<mtsd> I will no be able to attend the meeting today, I'm afraid. Going away this afternoon, over the weekend
<Regenaxer> Oh, a pity!
<Regenaxer> No worries
<mtsd> Sorry about that, I hope to attend both sessions in september
<mtsd> The last one was good, I think
<mtsd> Always nice to see everyone
<Regenaxer> :)
alexshendi has joined #picolisp
<alexshendi> Good morning, picolispers!
root____ has quit [*.net *.split]
<Regenaxer> Hi alexshendi!
root____ has joined #picolisp
alexshendi has quit [Ping timeout: 272 seconds]
orivej has joined #picolisp
<Regenaxer> Debugging 'powers' coroutines
<tankf33der> solaris got modern llvm will try bootstrap today. sparc platform.
<Regenaxer> ok
<Regenaxer> OK, I know what the problem with co/powers is
<Regenaxer> No sure yet how to fix
orivej has quit [Ping timeout: 258 seconds]
rob_w has quit [Quit: Leaving]
<Regenaxer> Sigh, have to re-design some of the co structures again
aw- has joined #picolisp
<Regenaxer> works
<tankf33der> lets see.
<tankf33der> released ?
anddam has quit [Quit: WeeChat 2.9]
anddam has joined #picolisp
anddam has quit [Client Quit]
anddam has joined #picolisp
<Regenaxer> Not yet
<Regenaxer> Restructuring
<Regenaxer> But the algorithm works
<Regenaxer> It is a partial revert to 18aug20
mtsd has quit [Remote host closed the connection]
<tankf33der> ok.
orivej has joined #picolisp
<Regenaxer> Finished I think. Looks good now. Data a little inflated, code got even simpler
<Regenaxer> A little more testing
<Regenaxer> OK
<Regenaxer> Released
<tankf33der> running.
<Regenaxer> :)
<tankf33der> all passed.
<Regenaxer> Wow!
<tankf33der> good news for pilcon.
<Regenaxer> T
<tankf33der> now testing under llvm9.
<Regenaxer> good
<tankf33der> passed.
<tankf33der> afk.
<Regenaxer> great
<Regenaxer> Let's disallow catch-, err- and ctl-frames in coroutines
<Regenaxer> 'in' and 'out' will be ok
aw- has quit [Quit: Leaving.]
<tankf33der> dont forget mention this in doc/diff and documentation.
<Regenaxer> It does not work correctly in pil64 either
<Regenaxer> I just added runtime checks
<Regenaxer> Added coroutine stack management for 'in' and 'out'
<tankf33der> [co.l:98] !? (catch "err" (yield) (throw "err"))
<tankf33der> Not allowed in coroutines
<tankf33der> ?
<tankf33der> will modify test code :)
<Regenaxer> Oh, yes. You had such a case?
<tankf33der> :)
<Regenaxer> I really did not expect anybody does 'catch' in a coroutine :)
<Regenaxer> Do you think we should support it?
<Regenaxer> The more frame types we support though, the more need to be checked on every 'yield'
<tankf33der> i think this is a case for future releases, enought for current feature set.
<Regenaxer> Hmm
<Regenaxer> It is trivial to implement
<Regenaxer> just like the link-, bind-, in- and out-frames
<Regenaxer> But needs runtime checks in 'yield'
<Regenaxer> one more check, I mean
<Regenaxer> Are there really use-cases?
<Regenaxer> hmm, well, yes
<Regenaxer> OK, let's add catch, but not 'ctl' and 'err'
<Regenaxer> Or, we allow them all, and it is the responsibility of the user not to yield inside such a call
<Regenaxer> yes, I like that more
<Regenaxer> Disallowing anything is not good
<Regenaxer> I'll remove the checks
<tankf33der> ok :)
<Regenaxer> yeah, 'yield' is slow anyway ;)
orivej has quit [Ping timeout: 265 seconds]
_whitelogger has quit [Ping timeout: 240 seconds]
_whitelogger_ has joined #picolisp
orivej has joined #picolisp
peterhil has quit [Read error: Connection reset by peer]
peterhil has joined #picolisp
peterhil has quit [Read error: Connection reset by peer]
peterhil has joined #picolisp
peterhil has quit [Read error: Connection reset by peer]
peterhil has joined #picolisp
peterhil has quit [Read error: Connection reset by peer]
peterhil has joined #picolisp
peterhil has quit [Read error: Connection reset by peer]
peterhil has joined #picolisp
peterhil has quit [Read error: Connection reset by peer]
peterhil has joined #picolisp
peterhil has quit [Read error: Connection reset by peer]
peterhil has joined #picolisp
peterhil has quit [Read error: Connection reset by peer]
peterhil has joined #picolisp
peterhil has quit [Read error: Connection reset by peer]
peterhil has joined #picolisp
peterhil has quit [Read error: Connection reset by peer]
peterhil has joined #picolisp
peterhil has quit [Read error: Connection reset by peer]
peterhil has joined #picolisp
peterhil has quit [Read error: Connection reset by peer]
peterhil has joined #picolisp
peterhil has quit [Read error: Connection reset by peer]