Torsten Ruger
7a5cf03d73
minor fixes
2015-05-31 14:44:26 +03:00
Torsten Ruger
db5c958d2e
fix lists first
2015-05-31 13:26:47 +03:00
Torsten Ruger
03bdc16810
fixed layouts
...
also moved objects to machine, from space
space has a list of objects, but implicit,
not as an explicit array
2015-05-31 13:02:29 +03:00
Torsten Ruger
aaa206fbca
debugging missing layout
2015-05-31 11:07:49 +03:00
Torsten Ruger
deaa062062
start to minimize
...
filter unused methods
Filter works, need to remove still
2015-05-30 14:49:47 +03:00
Torsten Ruger
079306dbf8
move main to object (from kernel)
2015-05-30 14:49:10 +03:00
Torsten Ruger
24259fa18b
fix method list (was still array)
2015-05-30 14:47:56 +03:00
Torsten Ruger
96a20ff554
add delete to list
2015-05-30 14:22:33 +03:00
Torsten Ruger
e651b57d08
homing in on line length 100
2015-05-30 12:20:39 +03:00
Torsten Ruger
33d464f032
minor
2015-05-30 11:56:47 +03:00
Torsten Ruger
bea10cc560
fix bug where layout wasn't initialized
2015-05-30 11:55:46 +03:00
Torsten Ruger
3e9e650764
fix arm tests
2015-05-29 12:47:49 +03:00
Torsten Ruger
73e5ec550a
small fixes
2015-05-29 12:33:59 +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
c28430698c
get binary code to work
2015-05-28 21:10:27 +03:00
Torsten Ruger
5845bde33a
binary code to its own class
...
makes linking easier
2015-05-26 20:17:43 +03:00
Torsten Ruger
96c59ac144
fixing assembly (wip)
...
main entry is the main problem, still polishing
2015-05-26 20:17:03 +03:00
Torsten Ruger
8413f6b470
smaller clean-ups
2015-05-25 18:48:35 +03:00
Torsten Ruger
4d0773ebae
misc
2015-05-24 20:00:11 +03:00
Torsten Ruger
5670f07eac
bit more on booting of the space
2015-05-24 19:59:19 +03:00
Torsten Ruger
2ccbea04b9
fixing assembly
...
position code changed and linking too
passes not working
2015-05-24 18:05:20 +03:00
Torsten Ruger
95ac024421
fix old tests again
2015-05-24 16:55:03 +03:00
Torsten Ruger
29a34b4d24
no need to keep object list in linker (use space)
2015-05-24 16:25:17 +03:00
Torsten Ruger
3e18694be7
code for method
2015-05-24 16:24:57 +03:00
Torsten Ruger
38cb9f7d3c
get words to compare to strings
2015-05-24 15:31:44 +03:00
Torsten Ruger
b58bba3fc4
register access fixes
...
since the constants moved
2015-05-24 15:31:30 +03:00
Torsten Ruger
6f0ae51dc5
move register constants here
2015-05-24 15:07:07 +03:00
Torsten Ruger
05a7ded7d5
fix space layout and init
2015-05-24 15:06:35 +03:00
Torsten Ruger
1170761922
fix classic index bug
2015-05-24 15:05:58 +03:00
Torsten Ruger
6786855e95
start on passes
...
after all that booting and vm/parfait changes
passes have gone out of sync, start to fix
2015-05-24 13:55:05 +03:00
Torsten Ruger
47abdffd1a
minor
2015-05-24 13:54:17 +03:00
Torsten Ruger
3c0022191b
more booting
2015-05-24 13:53:49 +03:00
Torsten Ruger
e64733d72b
some link for readmes
...
for salama-reader
2015-05-24 13:42:29 +03:00
Torsten Ruger
1a499a1de9
fix method seperation
...
Since Compiled method split into Method and
CompiledMethodInfo (parfait/vm) lots of call
syntax changes
2015-05-24 13:31:33 +03:00
Torsten Ruger
1d9ef6d5c8
boot process 90 percent done
...
Creating the class and layout objects in the
right order was tricky, but now mostly done
2015-05-23 12:15:06 +03:00
Torsten Ruger
94f49bf5c2
much work on boot process
...
fiddly egg and chicken, though a bit clearer with parfait objects now
2015-05-22 22:51:36 +03:00
Torsten Ruger
174afb33fb
catch errrors
2015-05-22 22:50:40 +03:00
Torsten Ruger
b687255976
move to parfait members
2015-05-22 22:50:19 +03:00
Torsten Ruger
b4eb14e639
found bug and more tests
2015-05-21 21:50:39 +03:00
Torsten Ruger
531d3e181a
was missing some super inits
2015-05-21 21:50:17 +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
422ec64105
all green
...
That fixes all existing tests. Operation successful
Off course there is tests missing :-(
2015-05-20 17:29:08 +03:00
Torsten Ruger
2ec9ee90f9
forgot to init super
...
which caused the fake_mem to be nil
2015-05-20 17:17:11 +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
d6d0f4f43a
split compiled_method into method and compiled_method_info
2015-05-20 16:43:26 +03:00
Torsten Ruger
dd2a5e367f
more docs and better read me
2015-05-20 13:50:56 +03:00
Torsten Ruger
d71547ea01
copy and other improvements for word
...
more tests reveal a bug (fixed) and more docs
2015-05-20 13:50:25 +03:00
Torsten Ruger
06cfba7c58
get sod to output lists and dicts
2015-05-20 10:57:20 +03:00
Torsten Ruger
8ec8a519ba
externalize boot process
...
Booting is complicated, make an own file for it
2015-05-19 20:29:33 +03:00
Torsten Ruger
4e3640e432
shift code from class to module
...
as class derives from module, module carries
much of the code that one thinks of as class
class only handles allocation really
2015-05-18 12:35:01 +03:00
Torsten Ruger
cfc2c474b2
test compatibility layer
...
test from and to std/parfait objects
for list and word for now
moved some of that code to virtual, out of parfait
2015-05-18 10:47:29 +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
cff827ad42
final word fix
...
that does the parfait
2015-05-17 15:34:45 +03:00
Torsten Ruger
e70bfb9f7a
many minor parfait fixes
2015-05-17 15:34:29 +03:00
Torsten Ruger
3bdba119c8
fix the list after object fixes
...
start index at 1, but don’t overwrite layout,
so add one
2015-05-17 14:56:06 +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
1114f06921
rename old layout()
...
new is called get_layout, but keep old around for
checking
2015-05-17 14:41:18 +03:00
Torsten Ruger
350d708fd3
introduce some constants
2015-05-17 14:40:02 +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
9d8dc68bf4
fixing all tests
2015-05-15 21:11:44 +03:00
Torsten Ruger
f691ba1b20
using sof is_value
2015-05-15 21:11:29 +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
5e0e8c8364
move index_of to list
...
and give it a sort of basic implementation
2015-05-14 19:54:38 +03:00
Torsten Ruger
c2b84925a4
basic functions for object
2015-05-14 19:53:56 +03:00
Torsten Ruger
9d711e7766
moving string to parfait
...
using parfait::word
also rename builtins string to word
2015-05-13 16:17:10 +03:00
Torsten Ruger
baca6eb4c6
rename string to word
2015-05-13 16:06:38 +03:00
Torsten Ruger
bf5576f805
small clean
2015-05-13 12:22:51 +03:00
Torsten Ruger
f92e5cf475
fix all tests again
2015-05-13 12:15:14 +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
Torsten Ruger
b804354236
fix requires and some scoping
2015-05-12 09:44:34 +03:00
Torsten Ruger
ab870e3323
moved the whole parfait into its namespace/module
2015-05-11 18:55:49 +03:00
Torsten Ruger
a552e3fbce
remove virtual frame (just using parfait)
2015-05-10 17:12:43 +03:00
Torsten Ruger
d41676fdfd
namespace cleanup
...
remove unnecessary Virtual namespace prefix
which was a large motivation for the move
2015-05-08 15:19:30 +03:00
Torsten Ruger
de8fe46fe0
move compiler into virtual
...
and associated changes in code, requires tests etc
2015-05-08 15:10:30 +03:00
Torsten Ruger
a1b9acce3d
basic name expression code
...
needs fleshing out and tests
2015-05-08 14:57:11 +03:00
Torsten Ruger
c700a3aabe
better compiler docs
2015-05-08 14:55:01 +03:00
Torsten Ruger
6f2affaf36
fix name expression and test
...
plus various cleaning and rename off call_site
2015-05-08 14:34:46 +03:00
Torsten Ruger
2fde50c27a
some more tests fixed
2015-05-06 15:15:53 +03:00
Torsten Ruger
9bf5eb2621
somewhat correct that message at compile-time idea
2015-05-06 15:15:33 +03:00
Torsten Ruger
8a7db6d4f2
remove message as third arg to compile
2015-05-06 15:14:47 +03:00
Torsten Ruger
1feed6af44
create one file per instruction
2015-05-06 08:55:14 +03:00
Torsten Ruger
4f1508ca61
moved slots to own directory
2015-05-06 08:38:29 +03:00
Torsten Ruger
cdea4915f9
bit more cleanup after compiler
2015-05-05 15:11:09 +03:00
Torsten Ruger
001af3f8b6
reviving more tests
2015-05-05 14:04:37 +03:00
Torsten Ruger
e4c799ecb6
first tests comping through after ast/compile change
2015-05-04 23:03:52 +03:00
Torsten Ruger
ff22c17784
move ast to compiler
...
new compile module does just that: compile
Dispatch with visitor pattern
no more patching into ast
2015-05-04 14:22:22 +03:00
Torsten Ruger
92bbd70c77
move builtin to register, where it belongs
2015-05-04 11:12:31 +03:00
Torsten Ruger
3659cb4b81
make the tests run (and pass) again
2015-05-04 11:10:40 +03:00
Torsten Ruger
8180c67d48
move sof to own repo
2015-05-03 20:38:13 +03:00
Torsten Ruger
618b8d05f8
adding ruby method lists
...
Just for reference (not to copy)
2015-04-15 11:39:12 +03:00
Torsten Ruger
5792fb983b
add module
...
between class and object, as in ruby
2015-04-15 11:38:46 +03:00
Torsten Ruger
c14bacd171
fix inheritance
2015-04-10 14:02:28 +03:00
Torsten Ruger
aaf6da8808
make object derivation explicit
...
in parfait
2015-04-08 20:33:15 +03:00
Torsten Ruger
81e3a98af8
add integer to parfait
2015-04-08 20:32:56 +03:00
Torsten Ruger
fdb3fbc825
Parfait documentation
...
outline of expanded parfait, documented but not coded
2015-04-08 20:24:50 +03:00
Torsten Ruger
4f1e99d744
adding stubs for coming classes
2015-04-06 11:38:11 +03:00
Torsten Ruger
f8fe074af2
change arg to arg_names
...
and a bit of clean up
2015-03-28 20:20:01 +02:00
Torsten Ruger
c0dcf6feb0
add todo comment
2015-03-28 12:29:17 +02:00
Torsten Ruger
e881a5f2ee
separate frames and messages
...
also not using context which was not defined anyway
2015-03-28 12:25:04 +02:00
Torsten Ruger
0c08c335e5
fix the conditional parfait
2015-03-25 18:30:47 +02:00
Torsten Ruger
aee36d9f5f
bit of line wrapping
2015-03-25 17:29:39 +02:00
Torsten Ruger
d758a23eb6
correct parfait module
...
parfait only needs to be in a module when it is used in the vm, not
when it is parsed.
The parsed parfait must be without namespace.
2015-03-25 17:16:20 +02:00
Torsten Ruger
6e6dd257e4
rename
2014-10-18 13:53:01 +03:00
Torsten Ruger
f09a70a65b
correctly jumping to __init and then calling main
2014-10-07 15:35:13 +03:00
Torsten Ruger
30a982be0e
better debug fo the booting parts
2014-10-07 15:34:43 +03:00
Torsten Ruger
c10ef20622
was issuing wrong instruction
2014-10-07 12:23:59 +03:00
Torsten Ruger
9ac165c34c
some checks
2014-10-07 12:23:27 +03:00
Torsten Ruger
cae99f217c
just make sre we really ret registers (some constants were flying about)
2014-10-07 12:23:08 +03:00
Torsten Ruger
e1b29d799a
limit to_s length
2014-10-07 12:21:40 +03:00
Torsten Ruger
b7164b354d
better solution for initial jump
2014-10-07 12:01:33 +03:00
Torsten Ruger
5c90ad83e0
add initial jump instruction
2014-10-06 19:57:44 +03:00
Torsten Ruger
e1aa3fd843
implement the vm call logic
2014-10-05 18:40:47 +03:00
Torsten Ruger
dbbcc738c4
remove walue which was eold
2014-10-05 01:18:11 +03:00
Torsten Ruger
965e5f2a0f
minor
2014-10-05 01:13:57 +03:00
Torsten Ruger
a99e2602ae
introduce method call that includes setup
2014-10-05 01:13:43 +03:00
Torsten Ruger
486580aeb2
fix bad scoping bug
2014-10-05 01:12:44 +03:00
Torsten Ruger
d38097aea4
fixing pass order by require order (easier to track)
2014-10-05 01:12:16 +03:00
Torsten Ruger
8f0fb7e4e2
correct function call to method call (includes vm setup)
2014-10-05 01:10:10 +03:00
Torsten Ruger
3aca3cc33d
making good headway with register machine implementation in arm
2014-10-05 01:05:18 +03:00
Torsten Ruger
7968cadaf9
remove singleton in arm machine and use class methods
2014-10-04 17:34:51 +03:00
Torsten Ruger
d7d2622d7f
use register instructions
2014-10-04 17:22:23 +03:00
Torsten Ruger
9939c6afa0
fix imports and name issues
2014-10-04 12:52:47 +03:00
Torsten Ruger
4f7fefb0ab
using new register instructions
2014-10-04 12:52:28 +03:00
Torsten Ruger
e3c3840bc6
a creative moment, making up instructions
2014-10-04 12:51:08 +03:00
Torsten Ruger
f77d3ea7eb
move to virtual as it leaves vm instructions
2014-10-04 12:50:28 +03:00
Torsten Ruger
c5655b1059
a long string of import order and namespace issues which is not over yet
2014-10-03 14:52:47 +03:00
Torsten Ruger
1347a85eb7
fixing import order
2014-10-03 14:33:06 +03:00
Torsten Ruger
a083c03b1d
move function call instruction to register level and the pass to arm
2014-10-03 14:32:54 +03:00
Torsten Ruger
1af66567fb
fixed the SetImplementation with new register instructions
2014-10-03 11:07:18 +03:00
Torsten Ruger
38a286942e
move the hash access stuff to arm, not sure if needed at all
2014-10-03 11:05:17 +03:00
Torsten Ruger
220d9f6213
moving instrctions into own folders and arm machine out of the way
2014-10-03 10:25:10 +03:00
Torsten Ruger
ad73e320b0
moved unsued code out of the way
2014-10-02 22:34:58 +03:00
Torsten Ruger
277dddeb6a
time was up for the Bassembler
2014-10-02 22:33:09 +03:00
Torsten Ruger
1be71918a5
move all arm instructions to own folder and fold inheritance
2014-10-02 22:28:34 +03:00
Torsten Ruger
9923eb0b07
move passes to own dir
2014-10-02 16:11:45 +03:00
Torsten Ruger
cc08016a0f
fix the logic of move, but really there is a deeper issue (we'd have to add to get pc relative addressing for constants)
2014-10-02 16:08:24 +03:00
Torsten Ruger
0e3e11a699
add more debug (string values)
2014-10-02 16:06:05 +03:00
Torsten Ruger
493b02674c
remove some boiler
2014-09-30 12:08:12 +03:00
Torsten Ruger
fba66371c0
(semi) proper fix for large moves, integers or virtual constants(was buggy)
2014-09-30 12:07:21 +03:00
Torsten Ruger
527e591e75
fix add instruction and test
2014-09-29 21:04:38 +03:00
Torsten Ruger
7d52e71f5c
found and implemented the movw, but not for pi :-(
2014-09-29 20:26:55 +03:00
Torsten Ruger
d8710de590
fix frame more
2014-09-28 11:18:24 +03:00
Torsten Ruger
5a17bf3396
more headway on the (new) frame implementation
2014-09-27 14:59:16 +03:00
Torsten Ruger
2ce17ed5ff
fold messages and frames to save an instance in bootspace
2014-09-25 20:31:21 +03:00
Torsten Ruger
efe39292ae
extract position as module to be included
2014-09-25 20:30:02 +03:00
Torsten Ruger
6c7004688b
bit of namespace cleanup
2014-09-25 20:29:05 +03:00
Torsten Ruger
4d07113429
add register reference where symbols are allowed
2014-09-25 20:28:40 +03:00
Torsten Ruger
df9d6284ae
up to, ut not including, creating frames
2014-09-24 18:25:18 +03:00
Torsten Ruger
363fe5e35f
scaffold for NewMessage and Frame
2014-09-24 18:15:08 +03:00
Torsten Ruger
31ee3a62fe
rename __send__ for now
2014-09-24 18:14:23 +03:00
Torsten Ruger
892f251d18
implement how send should work (but parfait doesn't parse yet, so it doesnt)
2014-09-23 20:16:05 +03:00
Torsten Ruger
f5ec7f3bdb
fixed
2014-09-23 19:23:52 +03:00
Torsten Ruger
c5765d4255
improve return implementation
2014-09-23 19:20:55 +03:00
Torsten Ruger
4e01bc798f
add NewMessage / Frame instructions (without actual implementation)
2014-09-23 19:06:10 +03:00
Torsten Ruger
3d5eb685a1
more constants for slots
2014-09-20 17:06:11 +03:00
Torsten Ruger
21177bd7ce
add a list of symbols to boot space
2014-09-19 19:11:30 +03:00
Torsten Ruger
457b40a7de
fix api and implement the big constant move
2014-09-18 17:05:59 +03:00
Torsten Ruger
c32ca84861
clean
2014-09-18 17:05:22 +03:00
Torsten Ruger
f80df69262
clean
2014-09-18 17:04:54 +03:00
Torsten Ruger
49b6b99ab9
more work on large moves, including the notion of linking again
2014-09-17 17:00:19 +03:00
Torsten Ruger
4af93493fb
class code went
2014-09-17 16:32:21 +03:00
Torsten Ruger
e7f7f9c319
move fits_u8 to integer constant (from numberic)
2014-09-17 16:23:29 +03:00
Torsten Ruger
95c7e44342
at least it assembles again
2014-09-17 12:11:34 +03:00
Torsten Ruger
e4474e7e2c
rename length to mem_length and suffer the consequences
2014-09-17 12:04:54 +03:00
Torsten Ruger
79e42003b2
collect all add functions at bottom (rename too)
2014-09-16 18:50:44 +03:00
Torsten Ruger
8b8a8eea56
rename code.length tp mem_length with lots of noise impact
2014-09-16 17:16:56 +03:00
Torsten Ruger
cffa7f1953
small function naming adjustments
2014-09-16 17:16:13 +03:00
Torsten Ruger
db01529b67
eol warning
2014-09-16 17:15:17 +03:00
Torsten Ruger
45977ecc01
move assembly from visitor into objects, part one
2014-09-16 16:06:56 +03:00
Torsten Ruger
bbcfef3c43
make a little more real
2014-09-16 16:05:38 +03:00
Torsten Ruger
dd8e46fd1c
move length here
2014-09-16 16:05:08 +03:00
Torsten Ruger
56facae658
eol signal
2014-09-16 16:04:53 +03:00
Torsten Ruger
16b3cacc8d
work to move large constants
2014-09-16 11:39:08 +03:00
Torsten Ruger
c92b165a3f
carry constants through in reference slots. resolve functions with it
2014-09-15 12:08:37 +03:00
Torsten Ruger
bdd4a3d6ad
just checking which part of unimplemented i hit
2014-09-14 21:26:30 +03:00
Torsten Ruger
c51dbf51e1
renamed true,false,nil class to constant (from value)
2014-09-14 18:15:33 +03:00
Torsten Ruger
6b85054958
better, correcter use of return storage
2014-09-14 18:14:57 +03:00
Torsten Ruger
b29de4600e
use slot constants
2014-09-11 21:30:40 +03:00
Torsten Ruger
b7e0d3fba4
more on set
2014-09-11 21:26:22 +03:00
Torsten Ruger
1d33c03537
corrected method enter and return and created those missing constants
2014-09-11 19:00:14 +03:00
Torsten Ruger
771eeb7a3d
fix block positions for debug
2014-09-11 15:19:29 +03:00
Torsten Ruger
98a88ec10e
change to module style like other modules in this dir
2014-09-11 15:08:56 +03:00
Torsten Ruger
3d66ffcc17
start on __init__
2014-09-11 15:01:50 +03:00
Torsten Ruger
cb727c658e
add inital jump to __init__
2014-09-11 10:30:23 +03:00
Torsten Ruger
f44965ef21
fix padding bug
2014-09-10 21:43:05 +03:00
Torsten Ruger
e53de8ad43
fixup names in builtin module
2014-09-10 21:35:52 +03:00
Torsten Ruger
5a5e977b8f
get some old builtin code backonline and improve imports
2014-09-09 18:03:13 +03:00
Torsten Ruger
61e80d4f28
had to boot_classes outside constructor (unfortunately) because of recursion
2014-09-09 17:51:34 +03:00
Torsten Ruger
7036a87678
fix the address for calls to jump past the method object header
2014-09-09 17:36:33 +03:00
Torsten Ruger
e3fdbb30a5
remove relative positions. have to fix them up somehow
2014-09-09 17:29:24 +03:00
Torsten Ruger
97bfd77038
implements the type word
2014-09-09 13:28:07 +03:00
Torsten Ruger
8040829501
moves link slot positions to bytes (from words). easier maths and better for later
2014-09-07 17:31:40 +03:00
Torsten Ruger
f00b06bb44
move to relative (to self) addressing
2014-09-06 23:03:33 +03:00
Torsten Ruger
c6072c683b
oops, less said the better
2014-09-06 22:48:58 +03:00
Torsten Ruger
64a433fd15
move the 2 to pad_to (from each call)
2014-09-06 22:38:32 +03:00
Torsten Ruger
bfa3f28e97
fix assembly (at least lositions and padding)
2014-09-06 19:48:56 +03:00
Torsten Ruger
197ecd576e
debugging assembly
2014-09-05 20:56:05 +03:00
Torsten Ruger
d94ec6c72c
fix parfait test
2014-09-04 14:22:28 +03:00
Torsten Ruger
5bb03f2d8b
unscoping block names and adding labels to objects (which are off)
2014-08-30 20:55:22 +03:00
Torsten Ruger
ccb5b37a3c
reinserted arm for now, until dependecy is cleaned up. fixed tests
2014-08-30 19:40:37 +03:00
Torsten Ruger
050a8ada9f
fix position handling
2014-08-30 17:08:30 +03:00
Torsten Ruger
6d67c03cc9
make block replace take array or single instruction
2014-08-30 16:57:56 +03:00
Torsten Ruger
48b33e5f9d
add position to instruction (for relative calculations)
2014-08-30 16:57:34 +03:00
Torsten Ruger
18f33770b5
fix and use object writer in test
2014-08-30 14:17:00 +03:00
Torsten Ruger
b5c39b2749
minor debug remove
2014-08-30 14:16:41 +03:00
Torsten Ruger
726a514c9e
fix assembler recursion
2014-08-30 14:01:22 +03:00
Torsten Ruger
50af6a8f41
lots of rework on assembly. constant object for layouts, hash implementation.
2014-08-30 13:48:52 +03:00
Torsten Ruger
d33077c2b1
reworking method and block assembly for new aproach
2014-08-30 13:47:51 +03:00
Torsten Ruger
90e5b4584a
rework link into two phase
2014-08-29 21:00:25 +03:00
Torsten Ruger
cec339890c
fold the linker back into assembler. too easy to get the link and assemble functions out off sync
2014-08-29 17:20:59 +03:00
Torsten Ruger
3ed1e814ec
more towards correct assembly
2014-08-29 15:49:59 +03:00
Torsten Ruger
99b4468599
fix spelling
2014-08-28 22:32:53 +03:00
Torsten Ruger
35b738639b
improve readmes
2014-08-28 19:12:46 +03:00
Torsten Ruger
1fc3f1fb18
renaming ripples
2014-08-28 18:53:48 +03:00
Torsten Ruger
09698ec70a
moved to consitent md ending
2014-08-28 18:52:55 +03:00
Torsten Ruger
b8a74f4a77
renamed the kernel dir/ module to Builtin (so to not confuse with ruby kernel module)
2014-08-28 18:27:04 +03:00
Torsten Ruger
8c1c72f1c3
remove that all include file
2014-08-28 16:44:27 +03:00
Torsten Ruger
9dd37a74df
add a kenrnel array class with function stubs
2014-08-28 16:39:35 +03:00
Torsten Ruger
da3cd69a5c
fixed the old list tests for hash, and fixed hash to pass them
2014-08-28 16:28:25 +03:00
Torsten Ruger
d3c4087871
use simple array based hash, so assembly of it will be easy
2014-08-28 16:20:09 +03:00
Torsten Ruger
0bc0506c5a
small fix for str len
2014-08-28 16:19:43 +03:00
Torsten Ruger
c7bc18dac8
small fix for str len
2014-08-28 16:19:30 +03:00
Torsten Ruger
fb42cb16f0
move get implementation to virtual as it should not result in register action
2014-08-28 08:43:38 +03:00
Torsten Ruger
41de2b5822
moved boot_class back to virtual (as things get clearer)
2014-08-28 08:24:37 +03:00
Torsten Ruger
7d35732923
renamed method definition to compiled method
2014-08-28 08:10:33 +03:00
Torsten Ruger
e09d3c2f65
adding legth of object itself
2014-08-28 08:08:11 +03:00
Torsten Ruger
a71f55f661
moved all link functions to a (da da) linker class
2014-08-27 21:44:23 +03:00
Torsten Ruger
aad3f7ca15
equivalent transformation, just looks
2014-08-27 17:23:50 +03:00
Torsten Ruger
fc9615a649
short hash, inline like for array. with curly braces off course
2014-08-27 14:46:34 +03:00
Torsten Ruger
6343e644b4
prepare for short hash, but no change yet
2014-08-27 14:42:41 +03:00
Torsten Ruger
97f68a1a54
basic assembly frame
2014-08-26 22:35:56 +03:00
Torsten Ruger
8f9bbe2f1d
fold old link and length into one function
2014-08-26 16:36:12 +03:00
Torsten Ruger
1379b4ea4e
slightly better enter
2014-08-26 16:16:59 +03:00
Torsten Ruger
888acdca0c
slightly better enter
2014-08-26 16:15:00 +03:00
Torsten Ruger
714cd2a5d6
slightly better return implementation
2014-08-26 16:12:20 +03:00
Torsten Ruger
dd0674c7dd
dummy implementation of enter and return
2014-08-26 12:05:49 +03:00
Torsten Ruger
7fd9ff44db
simple call implementation
2014-08-26 11:58:28 +03:00
Torsten Ruger
a3a55aec08
add volotiles in their classes
2014-08-26 11:50:43 +03:00
Torsten Ruger
b4419fc438
start on linking and assembly (again, hurra)
2014-08-25 17:03:39 +03:00
Torsten Ruger
0b65e5840e
move space accesor to boot_space
2014-08-24 21:32:21 +03:00
Torsten Ruger
dd82095cca
reditribute boot dir evenly. some was parfait, some virtual, some kernel
2014-08-24 00:25:15 +03:00
Torsten Ruger
5f3b0c1779
moved list to parf
2014-08-24 00:03:25 +03:00
Torsten Ruger
a7bfb6e6ee
rename (corrected) method def to instance methods in class
2014-08-23 23:57:47 +03:00
Torsten Ruger
ad6be2676c
start on call implementation, getting separation issues
2014-08-23 23:37:33 +03:00
Torsten Ruger
594784c729
create hard dependency to salama-arm (for now)(as path for now-now)
2014-08-23 21:49:52 +03:00
Torsten Ruger
435fefd310
implementation passes involving assembly go to register directory
2014-08-23 21:49:09 +03:00
Torsten Ruger
495df14e19
started coding, but
2014-08-23 20:25:19 +03:00
Torsten Ruger
f0efb1e0d9
start on implementing set
2014-08-23 13:57:14 +03:00
Torsten Ruger
a63e37fc50
scaffold for instance variable get implementation
2014-08-23 10:59:35 +03:00
Torsten Ruger
0fcb1c8f68
move the send to send_implementation, functions to add passes
2014-08-23 10:25:55 +03:00
Torsten Ruger
4783e6c326
more renaming ripples
2014-08-22 18:00:23 +03:00
Torsten Ruger
e398a6b053
make space for new passes
2014-08-22 17:46:09 +03:00
Torsten Ruger
b196810e89
adjusted module name accordingly
2014-08-22 17:40:09 +03:00
Torsten Ruger
b100956909
renamed
2014-08-22 17:27:57 +03:00
Torsten Ruger
f735d6cbc9
remove old stuff that i only kept for reference. be gone
2014-08-22 17:26:49 +03:00
Torsten Ruger
fd2e717b62
remove old boot stuff, was quite same and always mixed them up
2014-08-22 15:12:54 +03:00
Torsten Ruger
91ce05364a
add FunctionCall instruction and the missing puts (stub)
2014-08-22 15:08:46 +03:00
Torsten Ruger
e19b7be111
getting to where where the puts should be, but it aint there
2014-08-22 10:21:12 +03:00
Torsten Ruger
b305a56576
more work on send
2014-08-22 09:21:59 +03:00
Torsten Ruger
5b1e86da49
more work on send, remove yaml hack in test
2014-08-21 22:57:20 +03:00
Torsten Ruger
2260c680b2
getting the passes back and starting on send
2014-08-21 17:46:12 +03:00
Torsten Ruger
3915f5b7f9
fix the missing reference bug on class
2014-08-21 15:35:55 +03:00
Torsten Ruger
0677069fc0
fix folded array bug by using object_id, fix ref bug but only counting first
2014-08-21 15:21:20 +03:00
Torsten Ruger
9608e5f626
supressing nil attributes on objects
2014-08-20 22:33:08 +03:00
Torsten Ruger
1371d395ec
pretty much redid the variable idea (now slot)
2014-08-20 17:14:52 +03:00
Torsten Ruger
d401327319
made a simple node for small objects. bad news is that tests pass unchanged
2014-08-19 23:16:40 +03:00
Torsten Ruger
8ff55fdb1f
that make four (times of identical == definitions)
2014-08-19 23:03:39 +03:00
Torsten Ruger
52ca7110c3
ad a preliminary syntax for class objects, which is just the class name
2014-08-19 23:01:19 +03:00
Torsten Ruger
a7dc60e638
just formatting
2014-08-19 22:57:08 +03:00
Torsten Ruger
dd59a2f9c6
remove unused attributes() boilerplate
2014-08-19 22:54:28 +03:00
Torsten Ruger
4b17a1e58f
use the sof attributes for equality
2014-08-19 22:40:28 +03:00
Torsten Ruger
28b4344ef9
make attributes available outside sof (iw as module funtion)
2014-08-19 22:39:58 +03:00
Torsten Ruger
9d5f62eded
only marking/counting occurences that are actually referenced, so numbers stay smaller
2014-08-18 17:25:49 +03:00
Torsten Ruger
e13801c764
moving (back) to 1.9 style hash, clearer that it is an association. didnt like the double colon
2014-08-18 17:19:34 +03:00
Torsten Ruger
81f8f0f3a2
actually using volotile attributes and outputting sof in test. very readable
2014-08-18 17:16:18 +03:00
Torsten Ruger
a594b716bc
inlining references into objects as simple data
2014-08-18 14:54:03 +03:00
Torsten Ruger
a874bd49d2
short version for array
2014-08-18 14:28:28 +03:00
Torsten Ruger
1dee9a4bd1
adding the actual references for referenced objects
2014-08-18 13:53:05 +03:00
Torsten Ruger
338c669a00
fix level bug that became obvous with recursion
2014-08-18 13:33:40 +03:00
Torsten Ruger
ad4aaaff8a
fix recursive arrays
2014-08-18 13:22:03 +03:00
Torsten Ruger
99e0c0db18
cleanup
2014-08-18 13:01:52 +03:00
Torsten Ruger
9f292ba618
fix weird object bug
2014-08-18 12:49:38 +03:00
Torsten Ruger
a3c9ab7e29
simpler but more verbose node model fixes everything but one
2014-08-18 08:19:48 +03:00
Torsten Ruger
b0472753f4
fixing arrays/hashs and starting complex objects
2014-08-17 21:44:34 +03:00
Torsten Ruger
9669831f78
fix all existing (hash) tests
2014-08-16 15:16:07 +03:00
Torsten Ruger
90e4837b2e
broaden the node hierachy
2014-08-16 12:34:25 +03:00
Torsten Ruger
2f84c0dfa6
fixing array tests, seperated nodes into different types
2014-08-16 11:43:41 +03:00
Torsten Ruger
7f7a174554
fixes object
2014-08-16 09:56:11 +03:00
Torsten Ruger
a10321922e
add transformation step to tree before output to help with the logic
2014-08-15 22:29:48 +03:00
Torsten Ruger
b0a54cb8c2
working up
2014-08-15 18:27:32 +03:00
Torsten Ruger
0a7814a07b
add hash with object
2014-08-15 17:18:15 +03:00
Torsten Ruger
16261f96b0
adds simple hash and test
2014-08-15 17:14:49 +03:00
Torsten Ruger
716bc93e4a
test for array with array
2014-08-15 15:04:13 +03:00
Torsten Ruger
198e70b6bd
fix array with object
2014-08-15 14:59:38 +03:00
Torsten Ruger
85dad14cc8
fix simple array
2014-08-14 20:24:26 +03:00
Torsten Ruger
2f5ed43073
move from known attributes to volotile (white to blacklist)
2014-08-14 20:04:15 +03:00
Torsten Ruger
6b19b915a1
rewrote write to use known attributes or instance variables, simple values inline
2014-08-14 19:49:20 +03:00
Torsten Ruger
7eeb269d50
fixed scope
2014-08-14 19:48:26 +03:00
Torsten Ruger
519283a034
moved utility functions to own module (used from members and writer)
2014-08-14 19:48:06 +03:00
Torsten Ruger
0a33f940cf
moving away from the attributes aproach, tests fixed
2014-08-14 19:24:18 +03:00
Torsten Ruger
2c2ae14928
getting some sof output and adding some tests. issues though. abound
2014-08-14 17:40:56 +03:00
Torsten Ruger
7e60827dd3
redoing the ifs with new (old) block structure
2014-08-13 20:05:32 +03:00
Torsten Ruger
90cbeddc0a
premature start on the salama object files, just for reading the compiled code
2014-08-13 20:05:00 +03:00
Torsten Ruger
200228a33d
adding the blocks to virtual machine and store instructions in array not list
2014-08-13 11:59:51 +03:00
Torsten Ruger
c2ae184e6e
simple test for get type
2014-08-07 15:41:13 +03:00
Torsten Ruger
a9ab3ca13e
forgot to add compiled methods to the class, fixed
2014-08-07 15:37:32 +03:00
Torsten Ruger
b9e259e11a
first ginger parfait test
2014-08-06 18:49:20 +03:00
Torsten Ruger
9a197ff7c1
expanded the send a bit
2014-08-06 18:37:19 +03:00
Torsten Ruger
ce3505710a
basic send
2014-08-05 15:55:24 +03:00
Torsten Ruger
e92f949a71
fix the vm in link
2014-07-31 21:55:54 +03:00
Torsten Ruger
8effcc866a
more machinery to the machine
2014-07-30 21:43:12 +03:00
Torsten Ruger
5add9c42f2
juggle into the machine
2014-07-30 21:07:48 +03:00
Torsten Ruger
7b6f364ba8
namechange
2014-07-29 18:33:11 +03:00
Torsten Ruger
da9a57b3cf
delete some files i had kept for reference
2014-07-28 12:59:43 +03:00
Torsten Ruger
8718ebf476
last inherited test
2014-07-27 10:09:31 +03:00
Torsten Ruger
1a95835442
adds message get and set instructions
2014-07-25 20:28:38 +03:00
Torsten Ruger
7df1490da8
mostly comments
2014-07-25 11:48:06 +03:00
Torsten Ruger
8d7b353f33
pass message to compile, not frame
2014-07-25 10:49:34 +03:00
Torsten Ruger
13a05e7b72
comments and cosmetics
2014-07-24 21:56:31 +03:00
Torsten Ruger
e427bcef43
change method and frame around in calling, easier to understand static first
2014-07-24 14:56:27 +03:00
Torsten Ruger
e408b0e4b9
fixed while instruciton linking after change in method add
2014-07-22 23:27:13 +03:00
Torsten Ruger
eb44011177
fixed that branch numbering bug
2014-07-19 21:15:27 +03:00
Torsten Ruger
c03c4f9cc9
add return instruction and fix the tests
2014-07-18 11:56:46 +03:00
Torsten Ruger
2e79caa791
using yaml as the storage format of the result as it handles graphs out of the box
2014-07-18 00:30:36 +03:00
Torsten Ruger
98db88ac2f
not recursing into labels to avoid infinite loops
2014-07-18 00:29:45 +03:00
Torsten Ruger
e02c6ed082
codes the while, but the testing throws stack too deep because loop detection is missing
2014-07-17 16:46:17 +03:00
Torsten Ruger
f00fa98818
fixed import
2014-07-17 03:01:34 +03:00
Torsten Ruger
337b1a8ee0
renamed to kide(crystal)
2014-07-17 02:26:13 +03:00
Torsten Ruger
fb105cb895
had to let go of crystal (sniff) as the name was taken
2014-07-17 01:00:15 +03:00
Torsten Ruger
f8e3f17660
split frame into message (caller) and frame (receiver)
2014-07-17 00:53:19 +03:00
Torsten Ruger
58298ab62b
some cleaning of scratches
2014-07-16 22:36:24 +03:00
Torsten Ruger
efeb910843
move branch counter to branch instruction (from if) in preperation of while
2014-07-16 22:28:28 +03:00
Torsten Ruger
7534626d87
fix the if test by naming branch and label and stitching them in constructor
2014-07-16 21:16:08 +03:00
Torsten Ruger
ba15f352db
gets the if coded, but test fail die to instruction being a graph now
2014-07-16 20:16:40 +03:00
Torsten Ruger
4185758532
slight rename tremours
2014-07-16 20:16:10 +03:00
Torsten Ruger
1ff7ae2b0a
rename method
2014-07-16 19:24:41 +03:00
Torsten Ruger
55cb6bd2d6
working on if
2014-07-16 13:20:47 +03:00
Torsten Ruger
3a152c1295
adds self to sends args
2014-07-15 18:34:03 +03:00
Torsten Ruger
4d725ea1ae
adds explicit load_self instruction
2014-07-15 18:27:13 +03:00
Torsten Ruger
930740e1db
fixes the tests after fixing hierarchy
2014-07-15 10:35:29 +03:00
Torsten Ruger
49f73c090d
fixed tests because of inheritance changes
2014-07-15 09:34:45 +03:00
Torsten Ruger
bb051230f4
fixed relation of values and types that had got watered in the virtual move
2014-07-15 09:31:25 +03:00
Torsten Ruger
102c5c2327
remove singletons and make them constants
2014-07-15 09:15:04 +03:00
Torsten Ruger
3ca61d54eb
fixes constant to be values not object. interestingly tests still pass
2014-07-15 09:12:51 +03:00
Torsten Ruger
9891da88a4
fix all tests
2014-07-15 00:00:00 +03:00
Torsten Ruger
b59a9da34e
reduce method return type to type and introduce a single instruction for instance get
2014-07-14 21:28:21 +03:00
Torsten Ruger
16a378e3da
fix class function test
2014-07-14 17:08:52 +03:00
Torsten Ruger
93bdd8a243
removing exceptions
2014-07-14 16:19:47 +03:00
Torsten Ruger
c7c4387e16
adds self reference and improve methods a little
2014-07-14 14:29:33 +03:00
Torsten Ruger
db8b1488d0
function test, slow but steady
2014-07-14 14:06:09 +03:00
Torsten Ruger
d531a24930
first method test
2014-07-14 11:29:38 +03:00
Torsten Ruger
c1f475070b
and another one, and another one....
2014-07-13 16:00:48 +03:00
Torsten Ruger
ae21863245
one more basic test back online
2014-07-13 14:12:43 +03:00
Torsten Ruger
dc6cb2bb52
a lot of work to get one more test to pass
2014-07-12 21:59:17 +03:00
Torsten Ruger
842c4e3044
copied old boot for later reference
2014-07-12 21:18:45 +03:00
Torsten Ruger
c505db490f
brainstorming mode on the new way (tm)
2014-07-10 17:14:38 +03:00
Torsten Ruger
ee5615ec03
fix rename
2014-07-01 19:12:32 +03:00
Torsten Ruger
f74999af57
zwischenstopp
2014-07-01 18:58:25 +03:00
Torsten Ruger
7045a4b256
update reader and implement singletons
2014-07-01 15:57:13 +03:00
Torsten Ruger
94d1140686
remove intel as it is in own rep now
2014-06-30 15:34:51 +03:00
Torsten Ruger
84d27ce9d9
remove arm as it is in own rep now
2014-06-30 15:28:39 +03:00
Torsten Ruger
1e866ae0ae
minor
2014-06-30 14:56:58 +03:00
Torsten Ruger
18faeeb042
add the idea of a frame
2014-06-29 19:05:35 +03:00
Torsten Ruger
16ceb2a60d
hurra, a first test. looks a lot.... but lets not spoil th efeeling
2014-06-26 18:39:02 +03:00
Torsten Ruger
525f9d45c5
rename
2014-06-26 17:52:15 +03:00
Torsten Ruger
33c62a7db1
update reader
2014-06-26 17:48:33 +03:00
Torsten Ruger
9d0d5aa431
update reader
2014-06-26 11:34:48 +03:00
Torsten Ruger
b9ddd75a33
rewrote with ternary operator for conciseness
2014-06-25 16:03:39 +03:00
Torsten Ruger
d28df7671d
add the simplest possible hash replacement with tests
2014-06-25 16:00:24 +03:00
Torsten Ruger
5c887846f0
updates
2014-06-25 15:59:22 +03:00
Torsten Ruger
fe337fad79
rename and a tiny start
2014-06-25 15:20:46 +03:00
Torsten Ruger
e41bb8027d
copies of the old code to start the new layer
2014-06-25 02:47:59 +03:00
Torsten Ruger
9b39a3a816
renaming, making space for extra layer
2014-06-25 02:33:44 +03:00
Torsten Ruger
3771f44e62
just moving code around
2014-06-24 19:34:36 +03:00
Torsten Ruger
98de7404ef
named syscall register
2014-06-24 12:40:49 +03:00
Torsten Ruger
17904d8e02
rename blocks do_add to be the same as sunctions add_code to blur the difference
2014-06-24 12:36:32 +03:00
Torsten Ruger
43a2649635
new list test and debugs
2014-06-24 12:25:03 +03:00
Torsten Ruger
b8b1d98a7c
towards rubys true definition
2014-06-24 12:24:36 +03:00
Torsten Ruger
bc89da0bc1
instance setter
2014-06-24 12:23:58 +03:00
Torsten Ruger
07b98d684a
more on method lookup
2014-06-24 12:23:39 +03:00
Torsten Ruger
98e25abf8e
broaden ifs possibilities
2014-06-24 12:22:32 +03:00
Torsten Ruger
25c5b2da6e
more setter work
2014-06-24 12:20:59 +03:00
Torsten Ruger
dc198ac79f
more setter work
2014-06-24 12:20:38 +03:00
Torsten Ruger
9251bab507
add setter and remove debug
2014-06-24 12:20:10 +03:00
Torsten Ruger
a859951a8f
slight cleanup and rename test case
2014-06-17 14:25:33 +02:00
Torsten Ruger
7d05b7c42f
adds plocks (Proc Block) as descibed in posts. Usage also described, but not coded yet
2014-06-17 01:01:00 +02:00
Torsten Ruger
a68d84a781
introducing references
2014-06-14 23:48:12 +03:00
Torsten Ruger
4db54a760e
gives values their own directory and seperate files
2014-06-14 21:29:57 +03:00
Torsten Ruger
87fa71277a
some inlining and renaming
2014-06-14 11:12:53 +03:00
Torsten Ruger
0dbaebf647
fix all tests and a little cleaning
2014-06-14 10:59:25 +03:00
Torsten Ruger
2c26415de7
transformations according to todays post
2014-06-14 00:19:12 +03:00
Torsten Ruger
12a92e4db0
move boot* classes to boot directory
2014-06-13 23:51:53 +03:00
Torsten Ruger
a7551ea8b6
still working on the method dispatch
2014-06-13 23:41:45 +03:00
Torsten Ruger
017d93d929
add to_asm debug output functions
2014-06-12 21:40:25 +03:00
Torsten Ruger
dcd691fe00
minor
2014-06-12 21:27:47 +03:00
Torsten Ruger
6d6c7ddb68
register assignment fix (was not taking subsequent calls into account)
2014-06-12 21:27:30 +03:00
Torsten Ruger
200da192b4
improve output
2014-06-12 21:04:15 +03:00
Torsten Ruger
ea0572c836
fixed while compilation (block order) and fixed and improved fibo
2014-06-12 16:23:57 +03:00
Torsten Ruger
8da1bc4645
fix putint (too eager optimization broke it)
2014-06-12 13:47:06 +03:00
Torsten Ruger
506f98da5a
fixed foo and hello, next putint
2014-06-12 09:07:03 +03:00
Torsten Ruger
eef6744827
fixes the if test (regs again)
2014-06-12 08:34:46 +03:00
Torsten Ruger
b125a7c5c7
fix passes, add noop reduction, remove the wretched value operators
2014-06-11 21:36:22 +03:00
Torsten Ruger
4e6319b753
inrtoduce block passes. move the allocation there and implement those simple optimisations
2014-06-11 11:41:50 +03:00
Torsten Ruger
7cca50cd3a
still recoving from previous block - function change. no more exceptions at least
2014-06-11 00:38:46 +03:00
Torsten Ruger
e9519d4f05
move the code insertion functionality up to function. makes more sense. block still carries code though
2014-06-10 23:57:56 +03:00
Torsten Ruger
e9fc8ac6aa
making the third arg of block init explicit (not optional)
2014-06-10 18:51:27 +03:00
Torsten Ruger
7ca3207b3e
moved registers to machine, changed return to 0 (from 7) and erased all integer references to registers
2014-06-10 13:29:01 +03:00
Torsten Ruger
d7a60f2803
new register allocation generates good looking push/pop
2014-06-09 19:24:09 +03:00
Torsten Ruger
b66c4157d5
keep track of used and assigned registers for each block
2014-06-08 01:41:56 +03:00
Torsten Ruger
fbcfa844de
renaming and small fixes
2014-06-08 00:56:40 +03:00
Torsten Ruger
e7bb774da0
fix block insert ordering with depth > 1
2014-06-08 00:56:15 +03:00
Torsten Ruger
42a840614e
adding call counter and splitting block after call
2014-06-08 00:55:18 +03:00
Torsten Ruger
0a14cffefb
fixing fragment tests, most done
2014-06-07 23:22:32 +03:00
Torsten Ruger
6b715bbb1b
remoe hash attributes (less magic) and make attributes on context explicit
2014-06-07 22:41:02 +03:00
Torsten Ruger
36f237c633
removed the (too) fancy dsl. Also introduce register indirection
2014-06-07 17:59:44 +03:00
Torsten Ruger
6433a394e7
adding receiver and a register abstraction
2014-06-06 21:49:03 +03:00
Torsten Ruger
c59f22f11f
first oo program to compile. But no worries, there is still work left to be done
2014-06-05 18:17:00 +03:00
Torsten Ruger
e6e969b4e4
a spirited effort to make assembly repeatable
2014-06-05 10:46:42 +03:00
Torsten Ruger
41a02a7190
small step to making the assmebly process repeatable (is destructive at the moment)
2014-06-05 10:28:53 +03:00
Torsten Ruger
7cc4c6344c
remove the parse code and fix the rest to work with the gem (from git for now)
2014-06-04 22:03:45 +03:00
Nigel Thorne
5145d21e37
Merge branch 'master' of https://github.com/ruby-in-ruby/crystal
2014-06-04 21:49:06 +10:00
Nigel Thorne
20433e3ad2
Change to NigelThorne fork to detect infinite loops
...
and fixed grammar to ignore missing parameter list.
2014-06-04 21:48:32 +10:00
Torsten Ruger
72d4adc7af
another step closer to a working oo system
2014-06-03 22:16:57 +03:00
Torsten Ruger
ca19f5cb16
move to syms for names
2014-06-03 20:47:06 +03:00
Torsten Ruger
b7c2089046
the further down this goes, the smaller the circles. Soon the point will come. And then back out
2014-06-03 14:49:02 +03:00
Torsten Ruger
88a26414eb
change the debug output to be more readable
2014-06-02 15:11:48 +03:00
Torsten Ruger
7c1c5431bc
add qualification to function definitions
2014-06-02 14:00:30 +03:00
Torsten Ruger
1cff296ab5
small fixes, wown parse for class test
2014-06-02 13:45:08 +03:00
Torsten Ruger
83d4ce55ca
fix the load memory instruction
2014-06-01 22:06:59 +03:00
Torsten Ruger
31a55b07ac
makes memory a three operand instruction, like add etc. But 3 regs are still undone
2014-06-01 21:20:44 +03:00
Torsten Ruger
08bbad0fdc
more on classes, have to work on asm next
2014-06-01 21:03:08 +03:00
Torsten Ruger
1d10c2c03e
had forgotten calls on instance variables. corrected + tests
2014-06-01 14:46:16 +03:00
Torsten Ruger
9ea0acf2e3
first oo steps are wobbly, but a string.plus parses
2014-06-01 14:24:54 +03:00
Torsten Ruger
86431120d5
add also calls on classes and more tests for that
2014-05-31 17:58:26 +03:00
Torsten Ruger
4038bd331a
clean up block names and export of qualified names makes assembler nicer to read
2014-05-31 17:02:55 +03:00
Torsten Ruger
5756e0b325
move that test to core (cant be done in compiled code) and focus on string addition instead
2014-05-31 16:43:03 +03:00
Torsten Ruger
cdfc1ac891
kernel functions are not fixed to be Object functions
2014-05-31 16:19:44 +03:00
Torsten Ruger
a6f02d6be3
let the BootClasses carry functions, ie one level squeezed between object_space and funtion, the class is coming to life
2014-05-31 14:35:33 +03:00
Torsten Ruger
3713d08748
renamed program to boot_space, as in object_space at boot time. thats the way its going
2014-05-31 12:52:29 +03:00
Torsten Ruger
c9c484f353
change program to inherit stright from code, not block (as it keeps the funcitons anyway)
2014-05-31 12:38:15 +03:00
Torsten Ruger
3156887a81
add instance variables and module name as basic types (as name was there already) and add tests
2014-05-30 14:25:08 +03:00
Torsten Ruger
806960a4d6
fixing module and class rules to actually use module names. fix all tests
2014-05-30 12:17:11 +03:00
Torsten Ruger
f03d445f3d
add module names and instance variables as parse rules
2014-05-30 12:06:42 +03:00
Torsten Ruger
3e93517986
adds class definition with tests
2014-05-30 10:59:49 +03:00
Torsten Ruger
e7a823bf3e
renamed module_def too module_definition and fixed leading space tests
2014-05-30 10:42:43 +03:00
Torsten Ruger
caec5ee6f0
add module to root parse and tests
2014-05-30 10:31:25 +03:00
Torsten Ruger
c69a44f316
define modules and tests, no compiling
2014-05-29 15:57:33 +03:00
Torsten Ruger
25cd80c76b
small fix to return gets recursive fibonacchi to work
2014-05-28 20:13:03 +03:00
Torsten Ruger
4186c9cafe
add <= operator for fibo
2014-05-28 20:10:16 +03:00
Torsten Ruger
5c0f62ebb9
upgrade calls with operator argument and chaining. Almost feels like cheating, too easy
2014-05-28 15:22:37 +03:00
Torsten Ruger
0f118c591d
fix return compilation and use it on the while fibo. worked immediately :-)
2014-05-28 15:03:54 +03:00
Torsten Ruger
5a415aed92
fix fragment tests to actually execute on the pi and check the output
2014-05-28 14:55:13 +03:00
Torsten Ruger
e9720c4c54
padding with space not zero
2014-05-28 14:27:37 +03:00
Torsten Ruger
07ef170db0
padding with space not zero
2014-05-28 14:26:24 +03:00
Torsten Ruger
6bfe643032
add some return test to functions
2014-05-27 16:51:37 +03:00
Torsten Ruger
fbaf292bb6
add a simple return, ie the normal kind, not with trailing statements
2014-05-27 16:33:24 +03:00
Torsten Ruger
21a53c6a7f
fix the compound type parser tests
2014-05-27 15:41:34 +03:00
Torsten Ruger
0b07e77782
fix the spurious root expression and add conmound types back (thanks to kasper for fixing that)
2014-05-27 15:36:51 +03:00
Torsten Ruger
1f17262887
fix the handcoded fibonacci (registers again)
2014-05-25 13:34:06 +03:00
Torsten Ruger
5afa6f4239
move the if logic around (execute false first) and fix the parameters passing
2014-05-25 11:35:45 +03:00
Torsten Ruger
5a5b016a7e
use crystal calling convention, documented in readme
2014-05-25 10:57:56 +03:00
Torsten Ruger
6ac92cac3a
working on registers, awip (a work in progress)
2014-05-25 08:43:07 +03:00
Torsten Ruger
1e326e00b9
fix tests after register allocation work
2014-05-24 16:52:54 +03:00
Torsten Ruger
4a67504a61
remove parslet, bundling now
2014-05-24 14:51:50 +03:00
Torsten Ruger
61a60abd08
ridiculously easy to implement the if now
2014-05-24 10:41:57 +03:00
Torsten Ruger
00d85156da
rename conditional to if expression
2014-05-24 10:18:54 +03:00
Torsten Ruger
2c90006697
that fixes the while. To work. Actually work. Fibonacci and all :-)
2014-05-23 20:27:14 +03:00
Torsten Ruger
86e73bf1ba
save and restore the right registers
2014-05-22 21:55:17 +03:00
Torsten Ruger
4f0b769e82
get conditions to work for while
2014-05-22 21:38:57 +03:00
Torsten Ruger
7c2d149106
solves control flow issue when adding blocks
2014-05-22 16:35:59 +03:00
Torsten Ruger
8596fb312d
while coded
2014-05-22 14:56:31 +03:00
Torsten Ruger
ccf88319e0
gives function the list of blocks it needs for branching and documents also the blocks better
2014-05-22 14:18:22 +03:00
Torsten Ruger
cf87c5323d
using the next field of blocks for a consecutive code line
2014-05-22 13:59:47 +03:00
Torsten Ruger
e3bccaa0fe
thats putstring working again (better testing == better code => better sleep, longer life :-)
2014-05-21 21:27:05 +03:00
Torsten Ruger
587fd56300
remove a layer of indirection
2014-05-21 21:15:23 +03:00
Torsten Ruger
bc278a61eb
using function args for call
2014-05-21 21:12:46 +03:00
Torsten Ruger
65cde70114
add space at file end
2014-05-21 21:08:15 +03:00
Torsten Ruger
46102e56ad
rename c to register machine
2014-05-21 19:43:46 +03:00
Torsten Ruger
937f566b27
value is not derived from code (was too much generalisation/confusing)
2014-05-21 19:41:51 +03:00
Torsten Ruger
067cde8d43
remove remnant of old dsl
2014-05-21 19:34:58 +03:00
Torsten Ruger
c36a08d52d
small fixes
2014-05-21 19:33:58 +03:00
Torsten Ruger
b281c24a39
move towards locals (not hardcoding registers)
2014-05-21 19:27:27 +03:00
Torsten Ruger
570b6db659
start using locals
2014-05-21 19:06:21 +03:00
Torsten Ruger
847a486288
fix from assign
2014-05-21 19:06:06 +03:00
Torsten Ruger
c701eb9f5b
outputting hex for better comparison with objdump
2014-05-21 19:04:48 +03:00
Torsten Ruger
127ce5a5d9
outputting entries to get jumps rights
2014-05-21 19:04:16 +03:00
Torsten Ruger
2df2dcc528
function now returns locals, not free registers
2014-05-21 16:42:36 +03:00
Torsten Ruger
e1f889fd10
fix fibo with new syntax. certainly works for operators, but not everything
2014-05-21 12:47:40 +03:00
Torsten Ruger
16a07d5aa2
fixed method_missing to check whether local var exists (not gobble everything up)
2014-05-21 12:44:36 +03:00
Torsten Ruger
53cfeb72a4
fix test and remove hack for -
2014-05-21 12:42:54 +03:00
Torsten Ruger
9d873d3cba
implement string loading and convert hello test
2014-05-20 19:21:29 +03:00
Torsten Ruger
c7a2ce5af9
phase 2, add/sub instructions work with +- operator
2014-05-20 11:54:59 +03:00
Torsten Ruger
c3c6928dc8
phase one, assignment for constants (moves) work
2014-05-20 11:14:18 +03:00
Torsten Ruger
7056f6f05c
first step of assignment magic
2014-05-20 11:03:18 +03:00
Torsten Ruger
fcf76eed34
better testing for small assembly (for coming changes)
2014-05-20 10:29:08 +03:00
Torsten Ruger
0fa47d204e
minor
2014-05-20 10:28:34 +03:00
Torsten Ruger
f34fddd383
minor
2014-05-19 21:28:18 +03:00
Torsten Ruger
fe1414f383
adds hand coded fibo, works
2014-05-19 17:32:41 +03:00
Torsten Ruger
285988f173
putint works, work on syntax goes on
2014-05-19 15:44:12 +03:00
Torsten Ruger
76ce9aa654
improve argument handling for puntint
2014-05-19 12:18:01 +03:00
Torsten Ruger
8ba79d8de8
fibinacci actually compiles, doesnt mean it works though
2014-05-19 11:29:18 +03:00
Torsten Ruger
c56b7cdf09
minor
2014-05-19 11:28:37 +03:00
Torsten Ruger
59952f8503
more work on instruction format
2014-05-19 11:28:13 +03:00
Torsten Ruger
76f1537174
fix some arguemnt names
2014-05-18 12:34:53 +03:00
Torsten Ruger
9fc8bfbb55
fixin up mov arguments
2014-05-18 12:30:49 +03:00
Torsten Ruger
2be96dccdc
fix logic instruction arguments
2014-05-18 12:18:57 +03:00
Torsten Ruger
6abd10f278
started naming instruction arguments properly, starting with compare
2014-05-18 11:11:26 +03:00
Torsten Ruger
f65ad813af
move first arg into derived intruction constructor
2014-05-18 10:27:35 +03:00
Torsten Ruger
a35bba39bc
merge logichelper into last class that uses it
2014-05-18 10:24:14 +03:00
Torsten Ruger
7b1b2c5d87
aliased add_code to <<, to give a bit of the stream feel
2014-05-18 10:15:43 +03:00
Torsten Ruger
53666e8b33
bit of evaling
2014-05-16 23:33:25 +03:00
Torsten Ruger
a08661955f
a bit of cleanup and the good news is, we can output a (small) number
2014-05-16 23:24:19 +03:00
Torsten Ruger
fee82643e5
strangely the coredumps stopped. sure didnt feel like they would
2014-05-16 23:08:45 +03:00
Torsten Ruger
7e2210f772
renaming update_status_flag to just update_status
2014-05-16 19:56:13 +03:00
Torsten Ruger
b3f7b66ceb
coding the weird udiv10 and utoa
2014-05-16 19:55:46 +03:00
Torsten Ruger
823c11a381
more work on instrucitons, mov this time
2014-05-16 17:31:01 +03:00
Torsten Ruger
4030f32ead
finally coded the logic Shifting (what a beast)
2014-05-16 12:55:51 +03:00
Torsten Ruger
87e0f297e3
rename extra to right in logic inst
2014-05-16 11:27:30 +03:00
Torsten Ruger
ccafb09224
rename first hash argument from right to left in logic inst
2014-05-16 10:54:56 +03:00
Torsten Ruger
ef17bbf9dd
rename left to first in instruction and started on logic instruction cleanup
2014-05-16 10:42:25 +03:00
Torsten Ruger
009c0895f4
change right syntax to 1.9 style, looks a little nicer
2014-05-15 21:35:45 +03:00
Torsten Ruger
a0f0d08e81
named the first intruction constructor argument
2014-05-15 19:41:51 +03:00
Torsten Ruger
b4c79d218f
work on Integer.to_s , not a simple task as it turns out
2014-05-15 16:54:23 +03:00
Torsten Ruger
c9ffb78e82
allowing comments instead of newlines and not capturing comments (leave that for later as it messes the output)
2014-05-14 22:19:20 +03:00
Torsten Ruger
3912e0cd31
fix register issues, some typos
2014-05-14 22:04:03 +03:00
Torsten Ruger
e10f4863ee
exporting labels to elf for (a lot) better readability
2014-05-14 16:15:47 +03:00
Torsten Ruger
d8d536aa2c
while assembles, now for some nice assmbler reading
2014-05-14 12:54:23 +03:00
Torsten Ruger
a5b4f3d9ad
remove NumLiteral, replace with IntegerConstant
2014-05-14 12:08:06 +03:00
Torsten Ruger
d6b5d46165
while compiles. jo
2014-05-14 12:02:54 +03:00
Torsten Ruger
d50c38f5ad
add more functionality to get while to work (not there yet)
2014-05-14 11:33:23 +03:00
Torsten Ruger
2230a4f25e
clean up intruction instantiation and fix tests
2014-05-14 10:47:30 +03:00
Torsten Ruger
46ea1df51e
rename function_call to call_site in all levels to avoid confusion
2014-05-13 21:15:02 +03:00
Torsten Ruger
04af367bc0
coming together, more and more each day
2014-05-13 21:06:12 +03:00
Torsten Ruger
f6711ea49c
checkpointing on the mad road to register allocation
2014-05-13 18:21:24 +03:00
Torsten Ruger
b0302948dd
rename machine to c_machine
2014-05-13 17:06:42 +03:00
Torsten Ruger
d7f31e7f39
introduce constant class and add block to compile signature(wip, work in progress)
2014-05-13 16:24:19 +03:00
Torsten Ruger
dd05b30230
ads to_s to ast for better readability
2014-05-13 10:49:26 +03:00
Torsten Ruger
cd67589f3e
life must go on, compunds must go (for now)
2014-05-13 08:35:49 +03:00
Torsten Ruger
72de0089b2
small renames
2014-05-13 08:24:55 +03:00
Torsten Ruger
ff612446be
using hash_key and value rules
2014-05-12 21:44:51 +03:00
Torsten Ruger
fdb5dd4f67
a good stab at array anf hash constants
2014-05-12 21:36:38 +03:00
Torsten Ruger
25a7c3ea68
fixed fibonacci example
2014-05-12 14:24:36 +03:00
Torsten Ruger
1170b0798b
make condition brackets optional
2014-05-12 13:57:24 +03:00
Torsten Ruger
956d1eb135
newline fiddling in the parser yields goods results
2014-05-12 13:47:47 +03:00
Torsten Ruger
ee4d8033af
redid while with brackets and just one condition expression
2014-05-12 12:26:38 +03:00
Torsten Ruger
e2fb0a5f34
rename conditional to control in parser
2014-05-12 12:20:31 +03:00
Torsten Ruger
7940efc64d
still trying that while loop. Check as everything else works
2014-05-12 12:14:04 +03:00
Torsten Ruger
cc5915135a
add lots of operators. Assignment becomes operator. fix the mess
2014-05-11 18:37:26 +03:00
Torsten Ruger
b4af123c9e
operator docs
2014-05-11 17:05:21 +03:00
Torsten Ruger
be4825579d
finally remove kaspers example from which the oprerator stuff is copied
2014-05-10 21:43:03 +03:00
Torsten Ruger
2d389d2e00
adds basic math operators, thanks to kasper associative and prioritised
2014-05-10 21:41:46 +03:00
Torsten Ruger
6378209f33
leave assignee as name_expression in assignment, fix tests accordingly
2014-05-10 19:11:32 +03:00
Torsten Ruger
47f1608685
start to add while loop
2014-05-10 19:02:51 +03:00
Torsten Ruger
e600911fe8
adds variable, something compliles , but...
2014-05-10 17:55:02 +03:00
Torsten Ruger
5b002c0ff6
little more attribute filing
2014-05-10 16:08:53 +03:00
Torsten Ruger
9e5b60dfab
moving many attributes into the attributes hash, but not nearly all
2014-05-10 15:59:46 +03:00
Torsten Ruger
8faf0ba17f
phase 1- get rid of the pesty args in structions
2014-05-10 15:47:27 +03:00
Torsten Ruger
3f88fe15b4
some reagganging on my way to retire logic_helper
2014-05-10 15:34:05 +03:00
Torsten Ruger
cba171cc7d
remove the old asm (that is now arm)
2014-05-10 15:27:10 +03:00
Torsten Ruger
79a28ac5fa
trying to get function calls to work (but will have to rework regeister handling)
2014-05-10 15:24:56 +03:00
Torsten Ruger
e69decee90
slight shuffling
2014-05-10 12:54:31 +03:00
Torsten Ruger
20128627c7
implements inspect for copy paste into tests
2014-05-10 12:54:10 +03:00
Torsten Ruger
051b0ea7dc
remove the double transform rules (as not using maybe anymore)
2014-05-10 12:02:11 +03:00
Torsten Ruger
8f2a22d12f
add a repeat to the root parser rule (need to test the root more)
2014-05-10 11:18:39 +03:00
Torsten Ruger
b266bb84ba
splitting the parser up more
2014-05-10 11:14:34 +03:00
Torsten Ruger
af1df1a104
renamed root parser class to Crystal
2014-05-10 11:03:23 +03:00
Torsten Ruger
31aa9c8768
actually ads a value to Value
2014-05-10 10:59:56 +03:00
Torsten Ruger
7341586d15
more expressions compile
2014-05-10 10:58:25 +03:00
Torsten Ruger
8e6297dcff
improving the string according to kasper
2014-05-09 13:51:47 +03:00
Torsten Ruger
6ee290e0bb
fixes all existing parser tests
2014-05-08 21:09:07 +03:00
Torsten Ruger
53a8efaa59
get the conditionals to work again
2014-05-08 19:49:15 +03:00
Torsten Ruger
b82c2241b7
get parameter lists to work again (no more ifs as function arguments:-)
2014-05-08 19:41:27 +03:00
Torsten Ruger
9c609ee299
make machine init default to the running one with ruby config
2014-05-08 19:30:46 +03:00
Torsten Ruger
9c2dfe79da
at least basic tests work again
2014-05-08 18:42:24 +03:00
Torsten Ruger
034ae4f7ca
add comment and remove newline from space (starting a long whitespace battle)
2014-05-08 18:38:49 +03:00
Torsten Ruger
f0ad11bf8c
resistance was useless, wilson is now part of the collective (as intel)
2014-05-08 15:09:56 +03:00
Torsten Ruger
f7f0eee31a
adjust program tests to new syntax, hello world works there too -)
2014-05-08 14:14:15 +03:00
Torsten Ruger
ee864fc602
fixed arm tests to use ArmMachine
2014-05-07 14:58:38 +03:00
Torsten Ruger
4135c4d2dc
crystal says Hello.
2014-05-06 21:36:28 +03:00
Torsten Ruger
fa123e0354
move kernel to core and apply the classmethod pattern to all core classes
2014-05-06 12:47:07 +03:00
Torsten Ruger
12b6800efe
work on function entry and exit. fix stack instructions
2014-05-06 12:42:43 +03:00
Torsten Ruger
22b5117c8b
getting a _start and _exit, just missing the actual code
2014-05-06 00:12:04 +03:00
Torsten Ruger
7d20b5e2df
at least its in shape to start debugging again (that must count as half full)
2014-05-05 22:21:11 +03:00
Torsten Ruger
69b04d930f
cleanup
2014-05-05 15:59:29 +03:00
Torsten Ruger
de66238a9e
moved all compile to ast, vm does link and assemble. Getting there
2014-05-05 11:03:43 +03:00
Torsten Ruger
99da6f5be3
gets rid of conversion approach, ast compiles
2014-05-05 10:13:49 +03:00
Torsten Ruger
c67ee7f6f3
extracted ast classes to own files
2014-05-05 10:02:02 +03:00