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
aw- has joined #picolisp
<tankf33der> Regenaxer: do you need strace (key)?
<Regenaxer> Moin tankf33der, yes, thanks
<Regenaxer> But I think I need to trace it on the source level
<Regenaxer> ioFrame buffers or so
<Regenaxer> It seems to block because it *thinks* data are available
orivej has joined #picolisp
<Regenaxer> yes, in infinite poll() loop
<Regenaxer> I think I know what the reason is
<Regenaxer> yes, found it
<Regenaxer> a signed/unsigned problem
<Regenaxer> no
<tankf33der> # ./pil +
<tankf33der> "@lib/vip.l" -- Open error: No such file or directory
<tankf33der> ?
<tankf33der> [./lib.l:564] !? (load "@lib/debug.l" "@lib/lint.l" "@lib/vip.l")
<tankf33der> no vip.l file.
<Regenaxer> oops, yes, sorry
<Regenaxer> I did not want to release yesterday, but hit the wrong button
<Regenaxer> Soon :)
mtsd has joined #picolisp
<Regenaxer> I first want to fix the event handler
<Regenaxer> It is as I thought initially (not a signed/unsigned problem)
mtsd has quit [Quit: Leaving]
<Regenaxer> Fixed the key issue. Was a buffer index issue, as I suspected
<Regenaxer> Need to check related places
rob_w has joined #picolisp
<Regenaxer> works
<Regenaxer> Released
<Regenaxer> Next is 'map' file for Vip
<tankf33der> key is not ok.
<Regenaxer> oh
<tankf33der> ha, and pil64 too. hm.
<Regenaxer> How did you test?
<tankf33der> maybe i expect too much.
<tankf33der> let me try non libc linux.
<Regenaxer> yeah, this whole event management is tricky
<Regenaxer> What behavior did you expect?
<Regenaxer> Maybe I can explain
orivej has quit [Ping timeout: 260 seconds]
<tankf33der> http://ix.io/2xJ7
<tankf33der> on pil64 i should run double (key) on pil21 i need three, right?
<Regenaxer> yes, I know this
<Regenaxer> it has different behavior, because of readline()
<Regenaxer> I don't have control over *all* keys any more
<tankf33der> ok, so new line in doc/diff ?
<Regenaxer> No, I think in praxis it makes no difference
<Regenaxer> i.e. you don't use (key) in this way
<Regenaxer> it is embedded in some program, like Vip
<tankf33der> for 2048 game i am using this way.
<Regenaxer> But here it works ok, no?
<Regenaxer> you handle all key bytes
<Regenaxer> Must go. afp
<tankf33der> yes, it works.
<aw-> holy shit 2048 in pil
<aw-> tankf33der are you human?
<tankf33der> :)
<aw-> and it actually bloody works too!
<aw-> this is amazing
<aw-> thank you
<aw-> i need to get this in PilBox
mtsd has joined #picolisp
<Regenaxer> ret
<aw-> Regenaxer: is there an easy way to know the name of the calling function?
<aw-> ex: (myfun (otherfun)) .. where (otherfun) knows it was called from within (myfun)
<Regenaxer> yes, (up)
<aw-> ahhh great!
<aw-> thanks
<aw-> also hi ;)
<Regenaxer> :)
orivej has joined #picolisp
orivej has quit [Ping timeout: 240 seconds]
mtsd has quit [Quit: Leaving]
orivej has joined #picolisp
<aw-> ok i finished my POSIX message queue implementation with (native) for pil64
<aw-> will target pil21 next
<aw-> err, after i write some documentation
<Regenaxer> Great! Thanks a lot!!
orivej has quit [Ping timeout: 260 seconds]
<aw-> "./sysdefs.linux.arm64" -- Open error: No such file or directory
<aw-> where do i place the sysdefs file i created?
<aw-> it's in my code dir, but it can't be found
<aw-> oh wait never mind
<Regenaxer> ok :)
<aw-> ok almost works perfectly pil21
<Regenaxer> you made a new sysdefs?
<aw-> only 1 of 71 tests fail
<aw-> yes i made a sysdefs
<Regenaxer> to use at runtime with (sysdefs ...)?
<aw-> yes
<Regenaxer> ok
<Regenaxer> So any place is ok
<aw-> (sysdefs "Posix Message Queues" "../sysdefs.linux.arm64")
<aw-> wait i need to fix this
<aw-> the path
<Regenaxer> I would use "@sysdefs..."
<aw-> but it's not in global
<aw-> it's in my code repo
<Regenaxer> yeah, then local is better
<Regenaxer> relative to runtime dir
<aw-> hmmm
<aw-> strange bug
<aw-> when i receive just a null byte with strdup
<aw-> it doesn't output what i expect
<aw-> different from pil64
<Regenaxer> It returns NIL I think
orivej has joined #picolisp
<aw-> no
<aw-> it's different
<Regenaxer> 'S return ?
<aw-> yes with strdup
<aw-> but the value is just 1 byte: null byte
<aw-> i guess that's the problem
<aw-> it works if i change it to strndup
<aw-> but then my other tests fail because the other strings _are_ null-terminated
<Regenaxer> ok, seems a bug in native
<Regenaxer> I check
<Regenaxer> All 'S' cases probably behave that way
<aw-> perhaps, but i'm calling it many times with different strings and it's fine.. only fails when value is only \0
<aw-> all tests work on pil64 though
<aw-> on pil64 it returns NIL, as expected
<Regenaxer> yes, mkStr behaves differently
<Regenaxer> I know
<Regenaxer> I fix it
<aw-> wow, thanks!
<Regenaxer> I avoided the null byte check because it is checked otherwhere in most cases
<Regenaxer> in mkStr()
<aw-> is (= 21 (car (version))) valid for checking for pil21?
<Regenaxer> good question
<aw-> if pil64 continues in 2021, then it won't work anymore ;)
<Regenaxer> yeah
<Regenaxer> hmm
<aw-> hmmm.. maybe i can just check if sysdefs is defined?
<Regenaxer> or if '%@' exists?
<Regenaxer> Perhaps (version) is best
<Regenaxer> I plan to switch completely during that year
<aw-> (and sysdefs %@ (= 21 (car (version))))
<Regenaxer> (> (version) (21)) ?
<aw-> i dont want to put pressure on you ;)
<Regenaxer> Sooo many checks are overkill ;)
<Regenaxer> No problem
<Regenaxer> I want it myself most
<Regenaxer> I think best is (> (version T) (21))
<Regenaxer> it will work infinitely
<aw-> ok if you say so
<Regenaxer> yeah, I see no reason to continue with new versions of pil21 after next year
<aw-> wow, well as long as everything works
<Regenaxer> yep :)
<Regenaxer> we are close anyway
<aw-> anyways old versions will still be available, not like we **must** switch asap
<Regenaxer> yeah
<Regenaxer> And if so, lets start a new version system in pil64 if necessary
<aw-> how?
<aw-> you can just keep it at version 20.x
<Regenaxer> yes
<aw-> 20.13, 20.14, etc
<Regenaxer> good!
<aw-> that would work perfectly
<Regenaxer> indeed
<aw-> doesn't need to follow the months
<aw-> well.. yeah that was obvious
<Regenaxer> yes, and no days
<Regenaxer> I like this most
<Regenaxer> I fixed mkStr(), will release soon
<Regenaxer> Just checking the vip/map system
<aw-> ok i'll test it when it's released
<Regenaxer> great
<Regenaxer> soon
<tankf33der> i have a evolution of PicoLisper via semver check implementation:
<aw-> (de version? (L)
<aw-> (>= L (version T)) )
<aw-> looks a lot like Regenaxer code
<tankf33der> but this humor file is 4 year old.
<Regenaxer> yes, but nice :)
<aw-> tankf33der: can you tell me the value of O_CLOEXEC on freebsd?
<tankf33der> wait.
<Regenaxer> I release now. Extend the symbols in map later
<aw-> also tell me what arch you're using
<Regenaxer> released
<Regenaxer> aw-, please check empty strings
<aw-> OK
<tankf33der> aw-: (equ O_CLOEXEC 1048576)
<aw-> tankf33der: thanks!
<aw-> Regenaxer: how do i load the default sysdefs in pil21?
<aw-> (sysdefs section "@lib/sysdefs") ?
<Regenaxer> Without second arg
<Regenaxer> yes, but it defaults iirc
<aw-> just (sysdefs) ?
<Regenaxer> plus section
<aw-> ohh ok
<aw-> maybe i dont need it
<aw-> ohh my Makefile needs to know about pil21 too...
<tankf33der> Regenaxer: since core of pil21 is done choose the day when you switch to "opt -O3".
<aw-> Regenaxer: empty string still fails
<aw-> tankf33der: can you confirm O_CLOEXEC is 65536 on openbsd?
<tankf33der> checking.
<tankf33der> aw-: yes
<tankf33der> (equ O_CLOEXEC 65536)
<aw-> awesome
<aw-> thanks!!
<aw-> hmm
<aw-> Regenaxer: i will try for pil21 empty string tomorrow morning
<tankf33der> i bootstraped pil21 on netbsd.
<tankf33der> manually.
<tankf33der> http://ix.io/2xL5
<tankf33der> shendi asked time ago.
<Regenaxer> aw-, strange!
<Regenaxer> OK, lets postpone the empty string issue for a moment
<Regenaxer> tankf33der, good, let's switch on optim soon
<Regenaxer> or, even now?
<aw-> yes i can disable my tests for it temporarily until it's fixed. no problem
<Regenaxer> must be something simple
<tankf33der> Regenaxer: if you about opt then just swap items for ASM variable.
<Regenaxer> tankf33der, how was that? Replace "llvm-as" with "opt -O3" ?
rob_w has quit [Remote host closed the connection]
<Regenaxer> yeah, it is still there as a comment
<tankf33der> ASM = opt -O3 # llvm-as
<Regenaxer> So I enable it now
<tankf33der> yes.
<tankf33der> lets try till first crash :)
<Regenaxer> ok :)
<Regenaxer> Build takes a lot longer now. So it does some work :)
<Regenaxer> released
<tankf33der> passed in 4 different linuxes with different versions of llvm.
<tankf33der> afk.
<Regenaxer> cool!
<Regenaxer> So we keep it
<tankf33der> looking forward for llvm11 tests.
<Regenaxer> Surely works :)
orivej has quit [Ping timeout: 260 seconds]
orivej has joined #picolisp
orivej has quit [Ping timeout: 272 seconds]