rubyx/lib/parfait/README.md

36 lines
1.5 KiB
Markdown
Raw Normal View History

2018-03-11 16:11:15 +05:30
# Parfait: a thin layer
2014-08-28 22:32:53 +03:00
2016-12-11 12:55:03 +02:00
Parfait is the run-time of the object system.
To be more precise, it is that part of the run-time needed to boot.
The run-time needs to contain quite a lot of functionality for a dynamic system.
And a large part of that functionality must actually be used at compile time too.
2018-03-11 16:11:15 +05:30
We reuse the Parfait code at compile-time, to create the data for the compiled code.
To do this the compiler (re) defines the object memory (in parfait_adapter).
2018-08-24 18:49:44 +03:00
A work in progress that started from here : http://ruby-x.org/blog/more-clarity
went on here http://ruby-x.org/blog/layers-vs-passes.html
and is now documented here http://ruby-x.org/rubyx/parfait.html
2014-08-05 15:55:24 +03:00
2018-08-24 18:49:44 +03:00
A step back: the code (program) we compile runs at run - time.
2014-08-05 15:55:24 +03:00
And so does parfait. So all we have to do is compile it with the program.
And thus parfait can be used at run-time.
It's too simple: just slips off the mind like a fish into water.
2016-12-13 11:02:53 +02:00
Parfait has a brother, the Builtin module. Builtin contains everything that can not be coded in
ruby, but we still need (things like List access).
2014-08-28 19:12:46 +03:00
2018-03-11 16:11:15 +05:30
## Vm vs language- core
2015-10-23 14:22:55 +03:00
Parfait is not the language core library. Core library functionality differs between
2018-03-11 16:11:15 +05:30
languages and so the language core lib must be on top of parfait.
2015-05-20 13:50:56 +03:00
To make this point clear, i have started using different names for the core classes. Hopefully
2015-10-07 11:32:48 +03:00
more sensible ones, ie List instead of Array, Dictionary instead of Hash.
2015-05-20 13:50:56 +03:00
Also Parfait is meant to be as thin as humanly possibly, so extra (nice to have) functionality
will be in future modules.