2 Apr 2001 15:15
Re: A Hugs bytecode interpreter
Tore Lund <tl001 <at> online.no>
2001-04-02 13:15:22 GMT
2001-04-02 13:15:22 GMT
Malcolm Wallace wrote: > > > There is nhc98, of course, but it is somewhat bulky for the purposes I > > have in mind. I am looking for something small that would compile to > > 16-bit code that would run in 64K code + 64K data. > > It's a shame that nhc98 doesn't fit your requirements, since it is > specifically designed for creating small-memory-footprint programs. > But as far as I know, Hugs is the only Haskell system that can produce > 16-bit code. Thanks for your info. Do you know roughly how small nhc98 can get? Even if a 16-bit system is impossible, having a small 32-bit Haskell could be of interest in other connections. And is it absolutely impossible to make a 16-bit nch98? After all, the compiler could remain 32-bit - it's just the bytecode interpreter that would have to be 16-bit. A rudimentary system might suffice as long as there is a good FFI. And a somewhat unrelated question: is nhc98 going to have native code generation in the foreseeable future? -- -- Tore
For runtime memory usage, nhc98 uses a default 20kb stack, and a
default 400kb heap, but both of these are configurable. (There are
some other small static tables, of typically 1-2kb each.) The absolute
minimum heap size possible is 2512 bytes - and I have some non-trivial
programs that run happily in that tiny heap (including one that runs
for over 60 seconds and writes a complex 44Mb output file!).
> And is it absolutely impossible to make a 16-bit nch98? After all, the
> compiler could remain 32-bit - it's just the bytecode interpreter that
> would have to be 16-bit. A rudimentary system might suffice as long as
> there is a good FFI.
It should be quite possible, yes. At a guess, the main change
needed is to adjust some hard-coded constants to determine the size
of ints, addresses, and alignment boundaries. Provided you have a C
cross-compiler for the 16-bit machine, that should be all you need.
RSS Feed