Newbie questions about Pliant

Newbie questions about Pliant

Porting

Question about porting possibilities
Message posted by szamo on 2002/10/13 10:31:35
If i am correct, Pliant can be used on Linux and Windows aswell. Also i believe
its core was/is compiled with c compiler (e.g. gcc), maybe it's not necessary
anymore since there is pliant startup code/compiler, right?
As we know, there are other kind of operating systems, sometimes on other
computer architect. My question is if it's possible to port pliant to other
systems? For example to Macintosh, which can compile c files with suitable
linux library, as if it was compiled on linux (obviously it won't be as optimal
as if a Macintosh source would have been compiled with Macintosh library). I am
guessing that Pliant can be compiled to c code, and then there is a chance to
be able to compile the Linux version on Macintosh. What's your opinion?
In general, i am wondering if it's possible to compile pliant to c, and assuming
the computer architect is similar, whether possible to compile the result c code
on other operating system with the ported part of/whole operating system
library. That is, how easy to port pliant on other operating systems, and what
effort is necessary if the computer architect is different.
Message posted by maybe Hubert Tonneau on 2002/10/13 12:40:43
Well, there is something special about Pliant: it contains a native processor
code generator.
So, basically the Pliant bootstap code written in C is fairly portable, but it
contains a code generator part which is processor specific.

In other words, Pliant program interracts with the computer at two levels
. operating system
. processor code
whereas most programs interract only at operating system level.

At operating system level, Pliant contains a Posix interface with the operating
system which should enable it to run on any decent operating system. The Pliant
Posix interface is known to work with
. Linux
. FreeBSD
. OpenBSD
Also the Posix standard is something rather approximative, and often poorly
implemented as an additional layer on top of the native operating system
interface on most plateforms, so Pliant also contains a native operating
system interface on some plateforms. Currently native operating system
interface is available for
. Linux
. Windows 32 bits
. OS/2

Now at processor level, Pliant currently contains a single code generator which
is producing i386 instructions.

So the current summary is that Pliant can run on any decent operating system
running on an i386 compatible processor.


On the other hand, if you think about Macintosh, there are two problems:
. the Mac OS 9 is probably not a decent operating system since it does not
  have resonable multitasking capabilities so a port to Mac OS 9, either through
  Posix or native interface would probably fail to provide resonable reliability
  due to Mac OS 9 limits.
  On Mac OS X, there should be no operating system interface problem since it's
  basically FreeBSD which is a more than decent operating system.
. both Mac OS 9 and Mac OS X are not portable operating systems since they
  run only on Power PC based computers which are unusual hardware. So a Pliant
  port would mainly consist to adding a power PC specific code generator to
  Pliant.  Also this is not in my plans at the moment since I'm much more
  interested with supporting one mainstream 64 bits plateform for scalability
  reason. I planned the Alpha plateform a fiew years ago, but things changed
  and it is now very likely that it will be the AMD 64 bits plateform first
  since even the Intel 64 bits plateform seems not to get mainstream at the
  moment.