[fpc-devel] RTTI

Jonas Maebe jonas.maebe at elis.ugent.be
Fri Nov 27 12:36:56 CET 2015

Maciej Izak wrote:
> 2015-11-27 11:59 GMT+01:00 Jonas Maebe <jonas.maebe at elis.ugent.be
> <mailto:jonas.maebe at elis.ugent.be>>:
>     No. LLVM IR platform dependent. So if you want to compile Pascal to
>     "Javascript LLVM IR", you first have to add a "Javascript LLVM IR"
>     platform to FPC. That includes both compiler and RTL support.
> I thought it would be simpler.

If you perform a readln, you need to call some kind of OS or platform 
function to read data from standard input. From Javascript you obviously 
cannot access the system calls or C library of the underlying operating 
system (and if you could, it wouldn't help much, since you would want to 
read from a browser Windows), so you need an RTL.

In general, as I've mentioned several times before on this list, LLVM is 
not a panacea:
* LLVM IR completely platform dependent, so it does not automagically 
give us access to all targets supported by Clang/LLVM. In particular the 
way calling conventions are handled is completely platform dependent, 
and you cannot generate "generic LLVM IR" that will work on all 
platforms (at least not in an ABI-compliant way), and of course the size 
of integer
* LLVM does not care about backward compatibility, so FPC will always 
only support a subset of available LLVM versions
* LLVM does not support the Borland "register" calling convention, so 
i386 support will be impossible until someone adds that to LLVM


More information about the fpc-devel mailing list