e61c5d4a55
Simplify Parfait booting
...
Since some weeks, Parfait uses instance variables instead of generated attribute getters (that needed type)
This makes it possible to simplify the boot process, getting rid of separate boot Space and class versions.
It is still quite order dependent, but all "normal" ruby code, (less magic) so easier to understand.
Also moved all code that can never run at runtime into the adapter. This included Space and Object new, space as the space will only ever be created at compile time and object, since that is quite different at run-time (which is where i am working towards)
2019-09-22 19:10:47 +03:00
fd46826b9c
Implement class instance variables
...
as they are just the type of the meta_class, that was relatively simple.
I feel this is what oo is meant to be, instance variables and methods for the objects, and since classes are objects, for them too.
Class variables seem like a design mistake, weird scoping rules and no data hiding (left as an exercise to the reader)
2019-09-19 15:48:27 +03:00
b0d1948800
Moving space to object class
...
away from Parfait module, as that gets collapsed
Leaving shortcut outside parfait for now
2019-09-18 22:36:56 +03:00
41617519d9
some class send test changes
...
also ivar, which is still wip
2019-09-18 22:07:58 +03:00
fc8de10964
remove parfait module magic
...
since we are now ruby sorcerers, not just wizards, we remove the Parfait module in the compiler (Still have to avoid the name clashes)
2019-09-09 11:54:45 +03:00
f87526f86f
Renaming Vool exppressions rightly
...
Class, Method and Lambda (was block) are expressions.
Just making things clearer, especially for the blocks (ahem, lambdas) is matters.
wip
2019-08-19 11:33:12 +03:00
Torsten Ruger
3db7707614
Get a basic MetaClass going
...
Does get created in new, but not in boot.
Also not yet used in compiling
2019-02-16 23:24:16 +02:00
Torsten Ruger
d24b6ee153
start writing parfait witout the module
...
Parfait classes must be unscoped. Now we start parsing Parfait, it must be without the module.
Luckily module_eval makes this a breeze.
Also remove string interpolation that is not yet processed
2019-02-10 21:00:25 +02:00
Torsten Ruger
d396da16e3
start with #14 by implementing factory
...
page was maybe a too low level name
pages may be the unit of the syscall, but after that objects desolve (maybe later to be added on from different pages)
Factory has the job of handing out a new instance of a type
it keeps a freelist for that and a reserve
2018-08-23 19:55:06 +03:00
Torsten Ruger
2f07cc34f3
add parfait block
2018-07-07 15:50:43 +03:00
Torsten Ruger
9005513368
rename typed_method to callable_method
...
seems to make the essence clearer
also extracted base class
2018-07-07 09:11:09 +03:00
Torsten Ruger
6c06f61ab8
start on fake memory
...
get index checks on the array access of parfait
2018-05-28 14:46:26 +03:00
Torsten Ruger
82ab8ac4d3
add data objects
...
marker class (may change) to be able to check access
2018-03-25 18:22:02 +03:00
Torsten Ruger
642f16b73a
adding cache entry to parfait
2018-03-17 19:03:39 +05:30
Torsten Ruger
bc5906fb83
moving vool_method to parfait
2017-12-10 20:47:26 +02:00
Torsten Ruger
da5823a1a0
move parfait up one, as per its module structure
2017-01-18 20:09:43 +02:00
Torsten Ruger
979660f282
move parfait into register
...
register layer uses parfait models to generate object space
so parfait should be part of register (not above it)
2015-11-18 12:04:25 +02:00
Torsten Ruger
40d81681b5
move parfait adapter into parfait ruby
...
in the future parfait will be coded in some and translated back into
ruby to “adapt”
until then, all ruby code is the adapter
2015-11-18 11:55:29 +02:00
Torsten Ruger
204200b92a
metaclass is back
...
this time with a real purpose and implementation as the intermediary
As the interface to the layout and for replacing an edited layout
2015-11-07 00:11:56 +02:00
Torsten Ruger
9f4952b5ac
create behavior module
...
behavior handles instance methods (add/remove/find)
and shall be included in layout later too
2015-10-26 13:27:56 +02:00
Torsten Ruger
f1f56f0d4e
remove parfait module
...
which was only there because ruby has it
the concept is flawed and should be split into namespace and aspect
2015-10-23 15:20:02 +03:00
Torsten Ruger
18935366fe
introducing class variable and typed arguments
2015-09-27 14:30:41 +03:00
Torsten Ruger
bee73801eb
revert to symbols
...
Parfait::Words were nice, but endless problems with the fact that when
you write “String” you get a string.
Symbols take care of uniqueness at the same time
2015-05-31 18:34:18 +03:00
Torsten Ruger
7a5cf03d73
minor fixes
2015-05-31 14:44:26 +03:00
Torsten Ruger
a46b2d5c56
update to use parfait not virtual
...
more ripples
reverting to integers (not virtual::integer)
2015-05-29 12:33:40 +03:00
Torsten Ruger
5845bde33a
binary code to its own class
...
makes linking easier
2015-05-26 20:17:43 +03:00
Torsten Ruger
a28b41a5f5
renamed adapter
...
seemed more appropriate as it makes the
parfait work in the vm (i.e. adapts parfait)
2015-05-21 21:49:47 +03:00
Torsten Ruger
6eba363fb8
more speration
...
Separating vm and parfait
especially in method this is hairy, lots of ripples
bug is back in sod (i hope thats a good thing)
2015-05-20 17:11:13 +03:00
Torsten Ruger
f7eb888c36
refactoring virtual parfait code
2015-05-18 10:21:23 +03:00
Torsten Ruger
d348e7afe7
more parfait ripples
...
changes due to previous changes in parfait api
2015-05-18 10:10:31 +03:00
Torsten Ruger
3b268df920
init with nil layout
...
making the default length 1 (the nil layout)
2015-05-17 14:55:10 +03:00
Torsten Ruger
701b0bc011
fix object grow
...
and write a test (and another one …)
2015-05-17 14:44:48 +03:00
Torsten Ruger
8fa501fb91
fix object compiletime
...
and write some tests for it
2015-05-17 14:38:25 +03:00
Torsten Ruger
fe2be323d8
improve boot
...
also move to superclass not superclass_name in class
Makes ripples
2015-05-16 20:16:49 +03:00
Torsten Ruger
7085dee510
array to list conversion
...
start on layouts
2015-05-16 14:01:48 +03:00
Torsten Ruger
bee269f7a8
just renaming
2015-05-16 12:54:11 +03:00
Torsten Ruger
9376b8bc16
work on ObjectWriter
...
Back to the root! but lots of adjusting
ObjectWriter takes machine, machine has space
Virtual constants become Parfait::Objects etc
2015-05-16 12:53:10 +03:00
Torsten Ruger
a46dd9f6bf
more word tests
2015-05-15 20:31:43 +03:00
Torsten Ruger
0731a6061a
fix word implementation and tests
...
much better, though wasteful implementation
breaks a few tests, but ploughing on first
2015-05-15 16:45:36 +03:00
Torsten Ruger
164816c441
basic word functionality
...
and conversion from string
2015-05-14 20:39:12 +03:00
Torsten Ruger
baca6eb4c6
rename string to word
2015-05-13 16:06:38 +03:00
Torsten Ruger
dd41758dea
renamed array and hash to list and dictionary
...
Since these are not the ruby classes, we don’t need
the old names. They are misleading.
An Array is a military term, we mean list
And a Hash is an implementation of a Dictionary,
or LookupTable
2015-05-12 19:10:45 +03:00
Torsten Ruger
a94ce51c58
also test array
...
minor (ahm) fixes to array logic
2015-05-12 19:03:14 +03:00
Torsten Ruger
398516a596
fixes parfaits hash by implementing array
...
basic concept holds up as parfaits hash is now
working on parfaits own array
2015-05-12 18:52:01 +03:00
Torsten Ruger
b980def84e
move space to parfait
...
Also make the machine the singleton
and space hang off it
Many repercussions, not all fixed in this commit
2015-05-12 15:36:44 +03:00
Torsten Ruger
2e8b514e9c
start to use parfait classes
...
bit of a bumpy road
2015-05-12 14:58:29 +03:00
Torsten Ruger
73a6a5db39
move meta and boot class to parfait
...
just cosmetic, fixed requires but not code
2015-05-12 09:54:36 +03:00