rubyx/lib/typed/parfait
Torsten Ruger 25ae6e3d26 remove next_list from NamedList
Was legacy from the days of (linked) Frames
Now only messages are linked
2016-12-28 18:08:07 +02:00
..
behaviour.rb remove unused from type 2016-12-15 14:00:34 +02:00
binary_code.rb add little bit docs 2016-12-13 11:02:53 +02:00
class.rb remove instance_names from class again 2016-12-19 14:20:47 +02:00
dictionary.rb add inspect method to dictionary 2016-12-08 12:48:08 +02:00
indexed.rb add find method to indexed 2016-12-15 14:00:03 +02:00
integer.rb remove the value class 2016-12-16 00:56:25 +02:00
list.rb move parfait to new module 2016-12-06 16:50:54 +02:00
message.rb seperate args from message (just like frame) 2016-12-21 22:35:36 +02:00
meta_class.rb little fat of meta class 2016-12-16 00:57:10 +02:00
named_list.rb remove next_list from NamedList 2016-12-28 18:08:07 +02:00
object.rb more auto guard rules 2016-12-16 01:14:09 +02:00
page.rb add little bit docs 2016-12-13 11:02:53 +02:00
README.md add little bit docs 2016-12-13 11:02:53 +02:00
space.rb start with melon and tests 2016-12-18 17:02:55 +02:00
symbol_adapter.rb keep positions globally, not in the object 2016-12-28 12:51:18 +02:00
type.rb yep, opal != OPAL 2016-12-28 14:35:07 +02:00
typed_method.rb fix elf test 2016-12-15 17:57:45 +02:00
word.rb move parfait to new module 2016-12-06 16:50:54 +02:00

Parfait: a thin layer

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.

We reuse the Parfait code at compile-time, to create the data for the compiled vm. To do this the vm (re) defines the object memory (in parfait_adapter).

A work in progress that started from here : http://salama.github.io/2014/06/10/more-clarity.html went on here http://salama.github.io/2014/07/05/layers-vs-passes.html

A step back: the code (program) we compile runs at run - time. 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.

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).

Vm vs language- core

Parfait is not the language core library. Core library functionality differs between languages and so the language core lib must be on top of the vm parfait.

To make this point clear, i have started using different names for the core classes. Hopefully more sensible ones, ie List instead of Array, Dictionary instead of Hash.

Also Parfait is meant to be as thin as humanly possibly, so extra (nice to have) functionality will be in future modules.