Am Mittwoch, 6. Mai 2020 schrieb Joh-Tob Schäg <johtob...@gmail.com>:
>
>> Sigh! How often have I told here that the main purpose of pil21 is
portability?
> Do you see any portablity problems:
> https://luajit.org/luajit.html
> iOS obviously *is* supported. Tons of games are using LuaJIT on all kinds
of platforms. Of course, always with DYNASM as JIT IR below.
>
> LUAJIT still requires cpu specific headers as you can see here:
https://github.com/LuaJIT/LuaJIT/blob/v2.1/src/lj_asm_x86.h

Certainly! But there are many of them for plenty of different CPUs:

https://github.com/LuaJIT/LuaJIT/blob/v2.1/src/lj_asm_mips.h
https://github.com/LuaJIT/LuaJIT/blob/v2.1/src/lj_asm_ppc.h
https://github.com/LuaJIT/LuaJIT/blob/v2.1/src/lj_asm_arm64.h

Each one perhaps 50 pages long, that need to be adapted for supporting new
CPU architecture.

>
> Alex wrote he is tired of having to write meta assembler code for each
platform. I doubt that will be better if has to use someone else's Meta
assembler. Also LuaJIT does not target RISC-V.

That's true so far. Though there a a couple of billion RISC-V cpus out
there now.


> Target LLVM IR means porting it once and being able to target anything
which has a translator.

>> And since when doesn't your C version of Picolisp compile on iOS?
Objective-C is a superset of C with parts of Smalltalk.
>
> You seem really ignorant. Are you unaware that pil32/emu/mini have less
features than pil64 and are slower too due to overhead/resrictions used by
C?

Is slower speed really an issue with pilbox GUI? Certainly not!

> Also the size of LLVM doesn't matter since it is only necessary when
compiling the binary. You can likely download binaries Alex built just as
you can do.

"Compiling the binary" is funny .... pil21, sitting on top of LLVM JIT
engine is post JIT'ing all the time during runtime. That thing is profiling
and self optimizing code while running! See HotSpot JIT Engine concepts:
https://en.wikipedia.org/wiki/HotSpot

Starting interpreted, then stepwise compiling and replacing inner loops
with machine code, outer loops, ... ? Starting slow, modern JIT engines are
getting faster while running. Google V8 Javascript compiler is also working
this way. That's why 'warm up' phase is often mentioned with benchmarks:
https://www.google.com/search?q=llvm+warm+up+phase

> This is not different than Dynasm depending on LUA. Picolisp does not
touch most LLVM code. It just needs the assembler part of it. Translating
LLVM-IR to what ever you want is not that hard if you don't want to use
LLVM and you can audit the resulting ASM.

I am not reviewing or auditing 3 million lines of LLVM in my life. Apart
from that, China market falls flat now because of US export sanctions.

Reminder: China is double the size of Europe+USA together. Of course, our
Chinese friends are is looking for alternatives from outside the US.

Wrong business strategy for Germany to use US toolchains any longer.

Best regards, Guido Stepken

Reply via email to