Torsten Ruger
3d83f203ca
fixing and testing operators
2015-10-15 09:32:47 +03:00
Torsten Ruger
e436581ce8
adds value to used regs and test for it
2015-10-15 09:07:47 +03:00
Torsten Ruger
f105b1eb3c
fix name expression
2015-10-14 21:34:18 +03:00
Torsten Ruger
1141ed9c99
type now means class name
...
update reader (with new type definition)
remove type class (now symbol)
update all types to class name symbols
2015-10-14 16:16:03 +03:00
Torsten Ruger
d899d542a4
checking return type is a type
2015-10-14 14:02:34 +03:00
Torsten Ruger
e33a20dd41
minor housekeeping
2015-10-14 13:48:42 +03:00
Torsten Ruger
82d6ebf392
giving the register_value it's value
...
though not used yet
2015-10-14 13:45:46 +03:00
Torsten Ruger
5122137a33
start new elf testing category (and minors)
2015-10-13 17:30:39 +03:00
Torsten Ruger
aa20f2ca77
renamed reg ref to reg val
...
more appropriate
alas, salaam-arm will break for a sec
2015-10-10 21:38:55 +03:00
Torsten Ruger
dd3381e38b
move type to phial and add type to reg_ref
2015-10-10 19:14:27 +03:00
Torsten Ruger
3d342f7d88
remove new_message instruction
2015-10-10 12:04:34 +03:00
Torsten Ruger
4334b68736
remove virtual main instruction
...
on a quest to remove all virtual instructions
2015-10-10 11:14:31 +03:00
Torsten Ruger
99098951ca
rename bosl to phisol
2015-10-07 15:22:47 +03:00
Torsten Ruger
e669489419
went over the various readmes
2015-10-07 11:32:48 +03:00
Torsten Ruger
83ef902b55
better calcite and operator to expand the interpreter test
2015-10-07 10:05:34 +03:00
Torsten Ruger
f0611e52db
work on branches
...
the concept is different in bosl, move appropriate to virtual
2015-10-07 10:02:51 +03:00
Torsten Ruger
4e26166dff
fix type in call issue
2015-10-06 15:26:57 +03:00
Torsten Ruger
f4a4ccb98e
several larger changes came together, bit of cleaning too
...
- all code must be in functions (which must be in classes).
— changes a fair few tests
— also changes api, as method is not recursive, not passed around
- all state in instance vars in compiler (no accessors)
- class is another such variable, surely more coming
all green again
2015-10-06 00:27:13 +03:00
Torsten Ruger
18935366fe
introducing class variable and typed arguments
2015-09-27 14:30:41 +03:00
Torsten Ruger
9fe01c7b31
remove unknown type
2015-09-23 18:35:37 +03:00
Torsten Ruger
4e56056b62
better test for add
2015-08-09 00:53:04 +03:00
Torsten Ruger
bae7f5dcb1
better to_s for load constant
2015-08-09 00:52:47 +03:00
Torsten Ruger
5d838056fa
small rename and new test for layout
2015-08-08 18:08:47 +03:00
Torsten Ruger
ca14ef8914
fix test result, but not test yet
2015-08-07 16:46:55 +03:00
Torsten Ruger
9ebe6eb5b7
move to clss names as types
...
so as not to mix ruby class names into parfait code
2015-08-06 18:28:40 +03:00
Torsten Ruger
75c43d1b03
add fixnum as constant (was buggy)
2015-08-06 18:28:09 +03:00
Torsten Ruger
8560f15c87
plus function, indentation
2015-08-05 18:49:37 +03:00
Torsten Ruger
21b0702154
fix tests (just using local gem)
2015-08-04 22:01:20 +03:00
Torsten Ruger
9680ff2a71
fxes for add test
2015-08-04 21:46:33 +03:00
Torsten Ruger
36f635f7c1
adding sources to register instructions
2015-07-27 12:13:39 +03:00
Torsten Ruger
e7b8f2fcc8
critical bug from array/list mix up
2015-07-26 18:27:54 +03:00
Torsten Ruger
b0c78479ff
clearer to_s s
2015-07-25 09:30:58 +03:00
Torsten Ruger
772212bad9
fix the reg test (one off)
2015-07-24 17:23:44 +03:00
Torsten Ruger
139b0174d8
to_s for reg instructions
2015-07-24 13:23:56 +03:00
Torsten Ruger
2f409ea4e1
more dead code goes
2015-07-21 20:24:31 +03:00
Torsten Ruger
074f3af174
uncomment dead code
...
it’s dead, unfair to say it’s untested.
percentage wise i mean
2015-07-21 19:57:38 +03:00
Torsten Ruger
e3577d18af
fix that silly mistake that made the percentage plummet
...
mostly due to the fact that object is a hash now,
not array. Took a while though
2015-07-21 19:41:30 +03:00
Torsten Ruger
53d8f4b163
add source to instruction
...
for debug
2015-07-18 11:21:49 +03:00
Torsten Ruger
50da6a40f2
Move the Main instruction from register to virtual
...
also needs a branch in register.
This way the register level is self sufficient
(noticed while writing debugger)
2015-07-17 13:21:57 +03:00
Torsten Ruger
b61c73acdd
renamed info to MethodSource
2015-07-03 20:13:03 +03:00
Torsten Ruger
4f2f56fff8
minors
2015-07-02 13:49:33 +03:00
Torsten Ruger
69781fb505
remoe sys call message
...
and rely on linux to restore all registers
save message in r8
2015-07-02 13:48:32 +03:00
Torsten Ruger
11997ef354
had to revert name method change
...
method is not known when message is created
2015-07-02 09:48:41 +03:00
Torsten Ruger
7136450bde
move put string to string where it belongs
2015-07-01 21:45:41 +03:00
Torsten Ruger
8f0fd30ef3
small name update
2015-07-01 21:42:31 +03:00
Torsten Ruger
6a23ef8b26
storing method, not just name in message
...
goes with a rename and other admin
2015-07-01 19:39:23 +03:00
Torsten Ruger
5e85d0781f
have to retry in assembler
...
can raise several times, calling once was not enough
tbr: to be revisited
2015-07-01 19:36:18 +03:00
Torsten Ruger
60fe0dfd1c
separate New frame and message
...
and also much much shorter now, as all is static
2015-07-01 19:27:52 +03:00
Torsten Ruger
135fcaa8fa
static message chain
...
Rewrote Message + frame, only static linked list needed, not dynamic
frames either
2015-07-01 19:27:18 +03:00
Torsten Ruger
fb67f550ec
more index fixes, this time arguments
2015-07-01 09:48:20 +03:00
Torsten Ruger
047c77e186
fixed that darn method address bug
2015-07-01 09:47:10 +03:00
Torsten Ruger
9541712af8
fixing all the indexes
...
with the type word and layout
but the list starting at 1, indexes still need 1 added
and for arm x 4.
Tried to get all that into one function, resolve_index
2015-06-30 18:38:56 +03:00
Torsten Ruger
c0f11d70f1
rephrased the retry, didnt find the bug though
2015-06-30 18:35:37 +03:00
Torsten Ruger
b9e2d4dd21
remove some debug
2015-06-30 10:22:54 +03:00
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
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