freeemint has quit [Ping timeout: 245 seconds]
xkapastel has quit [Quit: Connection closed for inactivity]
jibanes has quit [Ping timeout: 268 seconds]
jibanes has joined #picolisp
orivej has joined #picolisp
karswell has quit [Remote host closed the connection]
karswell has joined #picolisp
_whitelogger has joined #picolisp
_whitelogger has joined #picolisp
xkapastel has joined #picolisp
freeemint has joined #picolisp
freeemint has quit [Ping timeout: 245 seconds]
orivej has quit [Ping timeout: 240 seconds]
_whitelogger has joined #picolisp
orivej has joined #picolisp
klausnrooster53 has joined #picolisp
lodsw_ has quit [Ping timeout: 264 seconds]
lodsw has joined #picolisp
_whitelogger has joined #picolisp
<
Regenaxer>
LLVM is not as flexible and powerful as I had hoped for
<
Regenaxer>
and 'native' is not possible
<
Regenaxer>
But I think using libffi is a way to go for 'native'
<
Regenaxer>
I hope libffi does not destroy portability, as this is the only reason I think about switching to LLVM
orivej has quit [Ping timeout: 240 seconds]
<
Regenaxer>
Hi tankf33der
<
tankf33der>
but porting pil64 to risc-v would took you 6? 10? days
<
Regenaxer>
It is not possible
<
Regenaxer>
And what aboout ohere environments (Apple)?
<
tankf33der>
looks like dead end
<
Regenaxer>
Thus I'm trying LLVM
<
Regenaxer>
If I use libffi, everyhing else should be doable
<
Regenaxer>
Execution is slower perhaps, but can be optimized
<
Regenaxer>
Coroutines must be written as before, I was just hoping LLVM's mechanisms could be used
<
Regenaxer>
But these are stackless co
<
Regenaxer>
as in Python
<
Regenaxer>
Pil allows 'yield' in nested calls
<
Regenaxer>
not just in top level
<
Regenaxer>
tankf33der, is libffi on all relevant systems?
<
Regenaxer>
Package libffi-dev
<
tankf33der>
100% unknown to me
<
Regenaxer>
It is here on Termux by standard even
<
Regenaxer>
apt show libffi-dev
<
Regenaxer>
it takes care fof portability
<
Regenaxer>
"Supported Platforms"
<
Regenaxer>
The problem with RISC-V is that pil64 is designend in such a way that it absolutely
*depends* on CPU flags
<
Regenaxer>
in the source all functions with 'F' in the return
<
Regenaxer>
eg. 'compareAE_F'
<
Regenaxer>
means it returns a flag
<
Regenaxer>
or some functions also accept a flag
<
Regenaxer>
All functions returning a result in a flag:
<
Regenaxer>
cd src64; grep "(code '.*_.*F" *.l
<
Regenaxer>
They would all need to be coded differently
<
Regenaxer>
and the caller would need to check a register and jump accordingly, instead of directly from the flag
<
Regenaxer>
Stupid design in RISC-V :(
<
Regenaxer>
*Every* CPU I ever saw before had flags
<
Regenaxer>
Important also generally, as eg. the carry flag is a 65'th bit
<
Regenaxer>
in arithmetics, shift, rotate etc
orivej has joined #picolisp
xkapastel has quit [Quit: Connection closed for inactivity]
ubLIX has joined #picolisp
xkapastel has joined #picolisp
ubLIX has quit [Quit: ubLIX]
jibanes has quit [Ping timeout: 265 seconds]
jibanes has joined #picolisp
orivej has quit [Ping timeout: 240 seconds]
freemint has joined #picolisp