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
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
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
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
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
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
5539d8fe32
just a little more precise
2015-06-26 20:35:16 +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
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
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
87143091ca
moved sod write method to module
2015-06-19 12:29:41 +03:00
Torsten Ruger
54c71fa216
split pass runs for debug in-between
2015-06-11 17:04:18 +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
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
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
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
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
079306dbf8
move main to object (from kernel)
2015-05-30 14:49:10 +03:00
Torsten Ruger
e651b57d08
homing in on line length 100
2015-05-30 12:20:39 +03:00
Torsten Ruger
bea10cc560
fix bug where layout wasn't initialized
2015-05-30 11:55:46 +03:00
Torsten Ruger
73e5ec550a
small fixes
2015-05-29 12:33:59 +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
4d0773ebae
misc
2015-05-24 20:00:11 +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
29a34b4d24
no need to keep object list in linker (use space)
2015-05-24 16:25:17 +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
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
fe2be323d8
improve boot
...
also move to superclass not superclass_name in class
Makes ripples
2015-05-16 20:16:49 +03:00
Torsten Ruger
bee269f7a8
just renaming
2015-05-16 12:54:11 +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
f92e5cf475
fix all tests again
2015-05-13 12:15:14 +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
e4c799ecb6
first tests comping through after ast/compile change
2015-05-04 23:03:52 +03:00
Torsten Ruger
92bbd70c77
move builtin to register, where it belongs
2015-05-04 11:12:31 +03:00
Torsten Ruger
aee36d9f5f
bit of line wrapping
2015-03-25 17:29:39 +02: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
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
965e5f2a0f
minor
2014-10-05 01:13:57 +03:00
Torsten Ruger
d38097aea4
fixing pass order by require order (easier to track)
2014-10-05 01:12:16 +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
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
9923eb0b07
move passes to own dir
2014-10-02 16:11:45 +03:00
Torsten Ruger
493b02674c
remove some boiler
2014-09-30 12:08:12 +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
6c7004688b
bit of namespace cleanup
2014-09-25 20:29:05 +03:00
Torsten Ruger
df9d6284ae
up to, ut not including, creating frames
2014-09-24 18:25:18 +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
c32ca84861
clean
2014-09-18 17:05:22 +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
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
45977ecc01
move assembly from visitor into objects, part one
2014-09-16 16:06:56 +03:00
Torsten Ruger
16b3cacc8d
work to move large constants
2014-09-16 11:39:08 +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
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
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
5a5e977b8f
get some old builtin code backonline and improve imports
2014-09-09 18:03:13 +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
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
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
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
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
09698ec70a
moved to consitent md ending
2014-08-28 18:52:55 +03:00
Torsten Ruger
0bc0506c5a
small fix for str len
2014-08-28 16:19:43 +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
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
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
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
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