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