<abu[m]>
Yes, I thought so. Butl your IRC client messes up the lines when pasting.
<abu[m]>
So a little confusing ☺
<abu[m]>
Anyway, I have no idea ATM what goes wrong with error handling
<abu[m]>
e.g. if it is also an endianess issue
<abu[m]>
Wow, the 390 architecture is more than 30 years old
<tankf33der>
this is s390
<tankf33der>
this is s390x
<abu[m]>
Yes, Linux
<abu[m]>
but the arch is 3090 right?
<abu[m]>
s/3090/309/
<abu[m]>
The text "undefined" is lost in error handling. How about other errors?
<abu[m]>
: (/ 3 0)
<tankf33der>
s390x:~/pil21# ./pil
<tankf33der>
: (/ 3 0)
<tankf33der>
!? (/ 3 0)
<tankf33der>
?
<tankf33der>
Div/0
<abu[m]>
ok, works
<abu[m]>
Perhaps the string length? More than 7 chars like in "undefined"
<abu[m]>
(+ 'a) a -- Number expected
<tankf33der>
: (+ 'a)
<tankf33der>
!? (+ 'a)
<tankf33der>
s390x:~/pil21# ./pil
<tankf33der>
a -- :
<abu[m]>
ha!
<abu[m]>
Long symbols
<abu[m]>
: (rollback)
<tankf33der>
s390x:~/pil21# ./pil
<tankf33der>
: (rollback)
<tankf33der>
:
<tankf33der>
-> NIL
<abu[m]>
: "abc def ghi"
<abu[m]>
ok, so it works
<abu[m]>
But not in errors
<tankf33der>
: "abc ddd ccc zzz"
<tankf33der>
-> "abc ddd ccc zzz"
<tankf33der>
:
<abu[m]>
good
<abu[m]>
Can you look into @src/base.ll?
<abu[m]>
@$27 = private constant [10 x i8] c"Undefined\00"
<abu[m]>
Does this exist?
<abu[m]>
hmm, must be, unless you rebuilt it
<tankf33der>
I rebuilt as is.
<tankf33der>
Afk.
<tankf33der>
keep disable failed test and run again
<tankf33der>
ext:Snx and Co
<abu[m]>
Is this the first system we have with big endian?
<tankf33der>
ht:Prin broken too.
<abu[m]>
I think something fundamental is broken
<abu[m]>
We must find the reason first
<tankf33der>
it was solaris sparc before
<tankf33der>
riscv is little endian.
<abu[m]>
Yes, lots of things are broken if constant strings are wrong
<abu[m]>
ok
<tankf33der>
rest are working
<tankf33der>
and all passed.
<abu[m]>
good to know
<tankf33der>
now running my tests
<abu[m]>
But the byte test should have failed on solaris. It was pil64?
<tankf33der>
no, it was pil21
<abu[m]>
and big endian?
<tankf33der>
yeap
<tankf33der>
i can try to compile tomorrow again
<abu[m]>
Perhaps the byte test was added after that
<abu[m]>
Good idea
<abu[m]>
Now the byte test is fixed though
<tankf33der>
yes, passed
<tankf33der>
(cos pi) failed
<abu[m]>
We must first find out what goes wrong
<tankf33der>
i just listing
<abu[m]>
good
<abu[m]>
Probably the long digit string
<abu[m]>
Something is wrong with strings with more than 7 bytes
<tankf33der>
compiling pil21 on solaris sparc
<abu[m]>
good, and then use the old @test/src/main.l
<abu[m]>
i.e.without the changed 'byte' test from today
<abu[m]>
Should fail if big endian
<tankf33der>
$ ./pil
<tankf33der>
? (catch '("Undefined") (mist))
<tankf33der>
!? (in "ddddd" (read))
<tankf33der>
: (in "ddddd" (read))
<tankf33der>
"ddddd" -- Open error: No such file or directory
<tankf33der>
-> "Undefined"
<tankf33der>
? *CPU
<tankf33der>
? *OS
<tankf33der>
-> "Sparc"
<tankf33der>
-> "Solaris"
<tankf33der>
?
<tankf33der>
strings works here
<tankf33der>
llvm11
<tankf33der>
s390x llvm13
<abu[m]>
messed up
<abu[m]>
And the 'byte' test?
<abu[m]>
(byte (adr (1)))
<tankf33der>
0
<tankf33der>
i did not revers today's patch
<abu[m]>
Good, so indeed big endian
<abu[m]>
that's ok
<abu[m]>
The old one would definitely fail
<abu[m]>
as it tested for 18
<tankf33der>
(cos pi) the same error
<abu[m]>
What does (cos pi) return?
<tankf33der>
1000000
<abu[m]>
Must be -1000000
<tankf33der>
afk.
v_m_v has joined #picolisp
v_m_v has quit [Quit: Client closed]
<abu[m]>
I think I found one reason
<abu[m]>
Seme globals like 'Fsign' or 'Tio' are "i1" in PilSrc but "int" in src/lib.c
<abu[m]>
"i1" is an 8-bit int and "int" is 32-bit
<abu[m]>
So this breaks in big endian
<abu[m]>
I released a change. @tankf33der when you are back please test.
<abu[m]>
This might fix the sign in 'cos'. Not sure about the strings.
_whitelogger has joined #picolisp
<lagash>
Some good news: I was able to run PicoLisp apps in a VM with BlissOS. The bad news is, it's still frustratingly hard to get it to load anything from the filesystem.