2018-03-11 11:41:15 +01:00
|
|
|
# Parfait: a thin layer
|
2014-08-28 21:32:53 +02:00
|
|
|
|
2016-12-11 11:55:03 +01: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.
|
2014-06-13 23:19:12 +02:00
|
|
|
|
2015-03-25 16:16:20 +01:00
|
|
|
The run-time needs to contain quite a lot of functionality for a dynamic system.
|
2015-05-11 17:55:49 +02:00
|
|
|
And a large part of that functionality must actually be used at compile time too.
|
2014-06-13 23:19:12 +02:00
|
|
|
|
2018-03-11 11:41:15 +01:00
|
|
|
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).
|
2014-06-13 23:19:12 +02:00
|
|
|
|
2017-01-01 23:29:20 +01:00
|
|
|
A work in progress that started from here : http://ruby-x.org/2014/06/10/more-clarity.html
|
|
|
|
went on here http://ruby-x.org/2014/07/05/layers-vs-passes.html
|
2014-08-05 14:55:24 +02:00
|
|
|
|
2015-05-11 17:55:49 +02:00
|
|
|
A step back: the code (program) we compile runs at run - time.
|
2014-08-05 14:55:24 +02: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 10:02:53 +01: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 18:12:46 +02:00
|
|
|
|
2018-03-11 11:41:15 +01:00
|
|
|
## Vm vs language- core
|
2015-05-11 17:55:49 +02:00
|
|
|
|
2015-10-23 13:22:55 +02:00
|
|
|
Parfait is not the language core library. Core library functionality differs between
|
2018-03-11 11:41:15 +01:00
|
|
|
languages and so the language core lib must be on top of parfait.
|
2015-05-11 17:55:49 +02:00
|
|
|
|
2015-05-20 12:50:56 +02:00
|
|
|
To make this point clear, i have started using different names for the core classes. Hopefully
|
2015-10-07 10:32:48 +02:00
|
|
|
more sensible ones, ie List instead of Array, Dictionary instead of Hash.
|
2015-05-20 12:50:56 +02:00
|
|
|
|
2015-05-11 17:55:49 +02:00
|
|
|
Also Parfait is meant to be as thin as humanly possibly, so extra (nice to have) functionality
|
|
|
|
will be in future modules.
|