Commit Graph

1020 Commits

Author SHA1 Message Date
Torsten Ruger
7e9b940890 add init_message to space
so kernel::__init can use that and the first next_message does not need
to be reused
2015-06-30 09:52:17 +03:00
Torsten Ruger
df2a080bd0 move register_machine to register 2015-06-30 09:46:11 +03:00
Torsten Ruger
ee2294ded7 remove unused reference 2015-06-30 09:45:45 +03:00
Torsten Ruger
60c8f8ef73 move generator functions to the instructions they generate 2015-06-30 09:43:50 +03:00
Torsten Ruger
bd77db656a remove class_eval on slots to map registers
Use their class names (or for now called object names)
these are the same that Register helper functions accept already anyway
2015-06-30 09:39:45 +03:00
Torsten Ruger
c4502c5030 get rid of the last constants
return them by method, nicer code
2015-06-30 09:38:32 +03:00
Torsten Ruger
b8090e0ecd fix init to load into new message 2015-06-30 09:37:25 +03:00
Torsten Ruger
3a6d3143c5 change method debug format for gdb autocomplete 2015-06-30 09:37:01 +03:00
Torsten Ruger
0f2c8e4201 finally scoping builtin to register
had put this off because it breaks history
but now the references to register stuff which
builtin is off course full of, become much shorter
2015-06-29 21:03:58 +03:00
Torsten Ruger
a03dcecbbd fix namespacing and remove indexes 2015-06-29 20:58:52 +03:00
Torsten Ruger
553f30c874 more ripples from removing index constants 2015-06-29 20:58:06 +03:00
Torsten Ruger
1e18db00c9 add set_slot and save_return
as functions to generate instructions
2015-06-29 20:57:16 +03:00
Torsten Ruger
a24e96efbc asserts to debug 2015-06-29 20:56:11 +03:00
Torsten Ruger
218fafca05 renames 2015-06-29 20:55:45 +03:00
Torsten Ruger
5ce7b6c7c9 removing those ugly slot index constants
The constants were bad enough,
but they were also at the wrong level

Now register level is defining mappings from
symbol names to indexes, by using the layout
2015-06-29 10:55:22 +03:00
Torsten Ruger
06b5d24729 fixing require order
so Register stuff is defined when builtin is loaded
2015-06-29 10:53:27 +03:00
Torsten Ruger
a16abeb3e6 giving the method to return and save
so they can make decisions
like wether to create a frame or not
2015-06-28 22:03:21 +03:00
Torsten Ruger
02615db508 minor 2015-06-28 22:02:27 +03:00
Torsten Ruger
8674c322c4 correctly linking frames and messages 2015-06-28 22:02:07 +03:00
Torsten Ruger
31635d9747 fixing index issues 2015-06-28 22:01:13 +03:00
Torsten Ruger
99b59d920c constant fixes 2015-06-28 10:52:02 +03:00
Torsten Ruger
a00a49ecdb fix frame indexes 2015-06-28 10:50:47 +03:00
Torsten Ruger
ef42abe611 unifying register comstants
were in several files with different names
many files touched, but just renames
2015-06-27 21:16:46 +03:00
Torsten Ruger
97b4c469f8 fixing register order in some instructions
and their use
Arm is confusing as it has result as first arg
we use forward logic, i.e. from -> to
2015-06-27 20:09:21 +03:00
Torsten Ruger
add79e5157 use sod names for debug info 2015-06-27 20:08:07 +03:00
Torsten Ruger
294ea8de4f fix the move, correct for funny pipeline 2015-06-27 20:07:42 +03:00
Torsten Ruger
485d6566ad write object refs at offset
that is (only) the linux/arm offset off course
2015-06-27 15:17:15 +03:00
Torsten Ruger
d0d857bbe0 fix object loading
by (ahem) copying the code from MoveInst.
2015-06-26 20:36:00 +03:00
Torsten Ruger
5539d8fe32 just a little more precise 2015-06-26 20:35:16 +03:00
Torsten Ruger
e20fba61d9 allowing for relinking to add more instructions 2015-06-26 20:34:40 +03:00
Torsten Ruger
55b7ca83e1 fixing load constant
which needs to add to pc to get an object reference
2015-06-26 20:01:52 +03:00
Torsten Ruger
108cc8af45 minor cleanup 2015-06-26 20:00:50 +03:00
Torsten Ruger
37403f1139 fix misunderstood mov usage
When moving a reference (pointer) to a register
one needs to ADD to the pc
i.e. one needs an add, not mov instruction
2015-06-26 20:00:33 +03:00
Torsten Ruger
32e1903884 finished init routine
and better implemented sys calls
2015-06-25 16:31:09 +03:00
Torsten Ruger
cedc6e1b61 Fix parfait bug for word_length 2015-06-24 16:08:06 +03:00
Torsten Ruger
59188105ba finish syscall
works, even had to fix parfait bug to see
2015-06-24 16:07:27 +03:00
Torsten Ruger
1a82ebcd69 mor on sys call implementation 2015-06-23 19:55:54 +03:00
Torsten Ruger
2aba926f1f start on reworking sys calls 2015-06-22 22:48:42 +03:00
Torsten Ruger
9c21f4274d better names for index constants 2015-06-21 21:09:15 +03:00
Torsten Ruger
836089a249 clean up Get/SetSlot
document and make arguments consistent
2015-06-21 21:00:16 +03:00
Torsten Ruger
f3ee11fca5 simple set optimisation
the price of having simple code (generation) is that
it is sometimes stupid code that gets generated
Filter some of the really daft stuff out
2015-06-21 17:25:27 +03:00
Torsten Ruger
aafb179c61 move frame_impl to register 2015-06-21 17:23:15 +03:00
Torsten Ruger
3fe35e34ec fix slot constant access 2015-06-21 17:22:51 +03:00
Torsten Ruger
cdf17a73b2 changed Set order
from to seems more logical than to,from
2015-06-21 13:29:27 +03:00
Torsten Ruger
6867175bd1 slot docs and rename 2015-06-21 00:21:42 +03:00
Torsten Ruger
eeaf2d97de starting to clear up slots
mostly docs
2015-06-20 23:49:30 +03:00
Torsten Ruger
7551a16b6e pretty names for references 2015-06-19 19:50:53 +03:00
Torsten Ruger
a2bfaf1b2c remove memory from sod but keep layout 2015-06-19 13:11:40 +03:00
Torsten Ruger
87143091ca moved sod write method to module 2015-06-19 12:29:41 +03:00
Torsten Ruger
1baece99c7 split the pass runs to debug 2015-06-12 18:52:06 +03:00
Torsten Ruger
54c71fa216 split pass runs for debug in-between 2015-06-11 17:04:18 +02:00
Torsten Ruger
a1848a051d don't print binary codes in sof
keeps more readable and binary is really only useful with decompiler
2015-06-11 07:05:39 +02:00
Torsten Ruger
9b89f6cb16 move the pass running out of elf
and leave it up to user
later partial running planned
2015-06-11 07:04:55 +02:00
Torsten Ruger
ee6f9d733b rename Mystery
just unknown, mystery should be more difficult to find out.
After all we keep run time info, so just need unknown at compile time
2015-06-11 07:04:14 +02:00
Torsten Ruger
d8fa266b5d fix method call addresses
was jumping to the method
but needs to jump to the code of the method
2015-06-10 11:10:46 +02:00
Torsten Ruger
6f111a5ae0 fix the initial jump 2015-06-10 10:43:50 +02:00
Torsten Ruger
c9ec6e2f39 fix debug 2015-06-09 11:38:03 +02:00
Torsten Ruger
20b28077a1 we have executables again
they are missing their initial jump, but reassemble fi
2015-06-09 11:37:32 +02:00
Torsten Ruger
7818059734 remove dead code 2015-06-08 12:24:28 +02:00
Torsten Ruger
f8688cbe17 it actually assembles again 2015-06-08 12:19:53 +02:00
Torsten Ruger
0122585b3b fixed, nay, hacked list problem
lists were in object space but not liked due to
equality returning true
2015-06-08 11:52:56 +02:00
Torsten Ruger
5b3045e42a remove positioned copy paste 2015-06-08 11:37:20 +02:00
Torsten Ruger
575d19cb02 assembling layout 2015-06-07 10:06:08 +02:00
Torsten Ruger
13ab029cc5 word length fixes 2015-06-06 18:46:53 +02:00
Torsten Ruger
1c29fcfd43 mem_length to word/byte length
be more specific, and don’t include padding
2015-06-05 09:20:43 +03:00
Torsten Ruger
30d9aaf61b extract padding functions to module
and finally TEST them
its especially the brain bending stuff that needs tests
2015-06-04 08:22:38 +03:00
Torsten Ruger
4ddfcc4900 assembles more already 2015-06-03 10:01:59 +03:00
Torsten Ruger
3cdb3d513c move to basic types (not wrapped) 2015-06-02 09:05:27 +03:00
Torsten Ruger
aea8f20be5 more symbol related fixes 2015-06-01 17:31:35 +03:00
Torsten Ruger
5726d2c181 move machine to module level
makes for shorter, more concise, access
also remove one more bug possibility
(reinitiation)
2015-06-01 08:40:17 +03:00
Torsten Ruger
336e6c18de register reference creation got more complicated 2015-06-01 08:34:17 +03:00
Torsten Ruger
66f5dcf152 method stores constants 2015-06-01 08:33:51 +03:00
Torsten Ruger
f08d9659fc getting the symbols to work 2015-06-01 08:33:23 +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
5d870ef154 got it down to string equality/identity 2015-05-31 17:54:36 +03:00
Torsten Ruger
1509e7ba2f better assembly
but bug is still scuttling around there in
link/assembly process
2015-05-31 14:45:28 +03:00
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