Commit Graph

2247 Commits

Author SHA1 Message Date
c947c27a14 clean up booting
many machine boot became obsolete
or just neede parfait to boot
actual linker functionality pending
2018-07-01 14:12:42 +03:00
e75aef933d have to pass constants around now
as they are not global anymore
2018-07-01 14:11:29 +03:00
e10092a4be rename machine to linker
even work is not quite finished, but helps root out offenders
(needless to say this is wip, deep red wip)
2018-07-01 13:45:14 +03:00
57fc67ddf6 move address list to object_space
where i guess it should have been from the start
2018-07-01 13:43:53 +03:00
35b10c46a3 adds the risc instructions to the compiler
since they are not in the method anymore
2018-07-01 11:59:52 +03:00
22b1fea587 use rubyc_compiler as instance
not as before class methods
so we can carry the state around
2018-07-01 11:59:07 +03:00
1505df894a remove translation
from machine, which is quickly becoming a linker
2018-07-01 11:58:06 +03:00
1a97408e22 return compiler, not generated mom
does make the tests more verbose, but the code cleaner
2018-07-01 11:57:17 +03:00
f7dfa1c45e return assemblers from translation
result of translate is cpu instructions, our equivalent of assembly.
So return Assemblers for next stage
2018-07-01 11:56:09 +03:00
3813de19fc finally removing instruction from parfait method
instructions are intermediate results on the way down
and as such never should have been in there
2018-07-01 11:54:44 +03:00
2d83473d74 add assembler
getting the layers better
2018-07-01 11:53:18 +03:00
05669065ca back to method_compiler
it is what it is
2018-06-30 23:26:28 +03:00
91a99b1239 let boot_functions return the compilers
methods are still added, but this is a good step to removing the risc/cpu level from the methods
2018-06-30 23:16:17 +03:00
208b98d709 start to move translate code 2018-06-30 22:53:32 +03:00
daf1b56062 start on class compiler
idea is to get cleaner layer seperation
reduce machine and rework builtin boot
2018-06-30 19:20:17 +03:00
4a7cc72732 always list of methods in class
improve vool test dirs
2018-06-30 10:08:18 +03:00
46d8f5002f hoist parfait boot out of the machine boot 2018-06-30 00:39:23 +03:00
8d7a2fe4d6 fix mom tests
and always have a list inside a class
2018-06-29 23:29:10 +03:00
5b87133df2 split rubyx tests
in vool and mom level
2018-06-29 23:04:50 +03:00
7006c8e3aa fix remaining tests
rename ripples
2018-06-29 22:56:49 +03:00
c8451d0048 create rubyx dir and move previous vool_compiler there 2018-06-29 22:46:39 +03:00
63dd6d9039 moved statements up one dir 2018-06-29 22:46:00 +03:00
7377522417 fix test ripples and minor parfait naming
Parfait ruby and boot names desynced, fixed that
2018-06-29 21:03:06 +03:00
ae35fed0ab fix list to expand
prevously fixed max length list
now expanding on demand, using next
quite like binary_code, a pattern is emerging
2018-06-29 20:58:59 +03:00
5036dd68df remove to_mom from ruby_to_vool
must have slipped in
affects mosty tests
2018-06-29 14:57:48 +03:00
6bd01fd55f rename method_compiler
in line with other compiler XX_Compiler being the compiler for that layer
remove type from compiler as it is in method available
2018-06-29 14:48:52 +03:00
114dc95b60 move parfait boot into parfait
and out of risc
2018-06-29 14:36:11 +03:00
e6f01748ff move adapter stuff around 2018-06-29 14:26:25 +03:00
86b1edb40c add seperate builders
remove if with polymorphism for different builders
(easier to understand by naming)
2018-06-29 13:27:57 +03:00
3dffebed3f rename a bit 2018-06-29 13:03:19 +03:00
d50893bb0f rename risc_value to register_value
almost to register, but it still carries that value
2018-06-29 11:39:07 +03:00
606c7bf906 remove booted flag
just boot if needed
2018-06-29 11:36:14 +03:00
f1b09ac58d move builtin boot to builtin module 2018-06-29 11:23:26 +03:00
75507c69b4 bundle update 2018-06-28 20:17:38 +03:00
18994d2b4b start on yield statement 2018-06-28 20:15:24 +03:00
2e086a78e2 bit of refactoring 2018-06-27 17:09:50 +03:00
f0ba863721 remove to_mom / create_objects dichotomy
wsa supposed to be clearer, but even to me seems confusing now.
2018-06-26 20:46:58 +03:00
c6a903073a start on blocks 2018-06-26 20:28:27 +03:00
4103da7490 small test fixes 2018-06-25 20:21:15 +03:00
67a6ef9f67 add rewriting of operator assignment
foo += 1 becomes foo = foo + 1 in vool
2018-06-25 16:32:20 +03:00
70d7e654c4 only check object file creation in efl
remote execution only per request
2018-06-25 00:39:13 +03:00
b804be5f70 fix dynamic call
which had the method in the regsiter, not the binary.
Single SlotToReg added (and some tests)
Which amazingly fixed all broken binary tests
2018-06-25 00:19:43 +03:00
068bda492c implement DynamicJump for Arm
which is in fact the same as return (moving address into pc)
2018-06-24 19:13:55 +03:00
f83f52faa0 reusing ssh instance for arm
some speedup , but hoped for more
2018-06-24 17:44:02 +03:00
c8a903cd83 adds arm testing of same files 2018-06-24 17:10:39 +03:00
ae976c8fb9 generate mains test methods according to file name 2018-06-24 16:48:23 +03:00
8d369dbfa1 automate mains test more
move sources and include exit code and stdout in filename
2018-06-24 13:37:36 +03:00
563ed4647a extract the ruby from mains tests
move up in directory
in preparation for arm tests
2018-06-24 11:56:10 +03:00
87be6bf9d5 add automated arm tests 2018-06-23 15:58:43 +03:00
ce79617875 fix the exit sequence
was returning wrong register (1, not 0)
also saving the message for test, which changes order as the return value destroys the message
2018-06-19 19:52:06 +03:00