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
<
tankf33der>
# ./pil +
<
tankf33der>
"@lib/vip.l" -- Open error: No such file or directory
<
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>
Released
<
Regenaxer>
Next is 'map' file for Vip
<
tankf33der>
key is not ok.
<
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>
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?
<
aw->
and it actually bloody works too!
<
aw->
this is amazing
<
aw->
i need to get this in PilBox
mtsd has joined #picolisp
<
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)
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
<
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 ...)?
<
Regenaxer>
So any place is ok
<
aw->
(sysdefs "Posix Message Queues" "../sysdefs.linux.arm64")
<
aw->
wait i need to fix this
<
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->
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->
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 fix it
<
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 ;)
<
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>
we are close anyway
<
aw->
anyways old versions will still be available, not like we
**must** switch asap
<
Regenaxer>
And if so, lets start a new version system in pil64 if necessary
<
aw->
you can just keep it at version 20.x
<
aw->
20.13, 20.14, etc
<
aw->
that would work perfectly
<
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
<
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?
<
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
<
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->
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->
Regenaxer: i will try for pil21 empty string tomorrow morning
<
tankf33der>
i bootstraped pil21 on netbsd.
<
tankf33der>
manually.
<
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>
lets try till first crash :)
<
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.
<
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]