Torsten Ruger
25ae6e3d26
remove next_list from NamedList
...
Was legacy from the days of (linked) Frames
Now only messages are linked
2016-12-28 18:08:07 +02:00
Torsten Ruger
8867b13240
yep, opal != OPAL
...
engine has to be in small letters it seems
OPAL came from the original commit in 2013, but alas
2016-12-28 14:35:07 +02:00
Torsten Ruger
9226de4502
testing to_s
2016-12-28 14:11:05 +02:00
Torsten Ruger
266764be06
testing to_s on Code
2016-12-28 13:59:02 +02:00
Torsten Ruger
a8f3d5a634
had to fix the string hash for opal
2016-12-28 13:53:57 +02:00
Torsten Ruger
4940bc41a3
keep positions globally, not in the object
...
hopefully cleaner switch after bootstrapping
2016-12-28 12:51:18 +02:00
Torsten Ruger
9fb89e09f3
fixes for tighter argument handling
2016-12-27 20:41:01 +02:00
Torsten Ruger
7462d0c486
lots more ripples from changing calling convention
2016-12-27 20:40:37 +02:00
Torsten Ruger
903fc3e4cf
much ripples from changing the calling convention
...
See previous commit
Now args and locals are arrays in the Message
2016-12-27 20:39:39 +02:00
Torsten Ruger
f1cfd3c379
change calling convention
...
Message carries arrays for arguments and locals
This means an extra load for any access
Also fix silly bug: using the wrong method (the one we’re in, not the
one we’re calling)
2016-12-27 20:37:53 +02:00
Torsten Ruger
3c3dedadd1
remove indexed_length from NamedList
2016-12-27 20:34:47 +02:00
Torsten Ruger
aaa94f0743
small fixes
2016-12-27 20:34:11 +02:00
Torsten Ruger
b9b05378f5
split the if test into a plain and one with call
2016-12-27 20:32:38 +02:00
Torsten Ruger
a5946cb644
same renames for bytes (set/get_byte)
2016-12-25 18:11:58 +02:00
Torsten Ruger
f648bf7bd5
rename also get_slot, to slot_to_reg
...
makes source and target clear
2016-12-25 18:05:39 +02:00
Torsten Ruger
35adf9a5e6
rename set_slot
...
set_slot was clear about the target, but not the source.
Better with reg_to_slot (and soon it’s inverse slot_to_reg)
2016-12-25 18:02:39 +02:00
Torsten Ruger
1b8d6149dd
adding to_s to code for debugging
2016-12-23 21:31:31 +02:00
Torsten Ruger
6c9bd7e476
remove unused code
...
also just came through opal
2016-12-22 21:16:56 +02:00
Torsten Ruger
3b888b203d
crude rework of the hashing to work in opal
2016-12-22 21:16:36 +02:00
Torsten Ruger
2adec3226c
opal gods require explicit requires
2016-12-22 21:15:20 +02:00
Torsten Ruger
c3c52d36b8
seperate args from message (just like frame)
2016-12-21 22:35:36 +02:00
Torsten Ruger
ed12108425
rename locals from type to role in message
2016-12-21 19:01:42 +02:00
Torsten Ruger
0e99ff33ae
use frame type rather than the indexed construct
2016-12-21 18:59:07 +02:00
Torsten Ruger
93ba5543b3
more renaming of frame
2016-12-21 18:51:22 +02:00
Torsten Ruger
0040baae28
rename frame to named_list to be shared soon
2016-12-21 18:45:18 +02:00
Torsten Ruger
b242f9e223
bringing the locals into the ruby method
2016-12-21 11:30:35 +02:00
Torsten Ruger
9ec9ccb9b6
start on collector for local variables
2016-12-21 11:20:36 +02:00
Torsten Ruger
8b05951883
extracting processor comonality before adding a third
2016-12-21 10:51:33 +02:00
Torsten Ruger
cfa0c23373
Merge branch 'master' of github.com:salama/salama
2016-12-20 20:13:37 +02:00
Torsten Ruger
8507bef08b
extracting methods for the compiler to handle
2016-12-20 20:02:52 +02:00
Torsten Ruger
a70d20d63e
add a ruby method
...
including source ast and args, later locals
2016-12-20 20:02:20 +02:00
Torsten Ruger
9e89306733
rename to get guard matches
2016-12-20 20:01:28 +02:00
Torsten Ruger
aa6685a0cb
test collector for ivar assignment
2016-12-20 15:46:23 +02:00
Torsten Ruger
aa5f48e3c6
remove instance_names from class again
...
and use types names instead. For now assuming Object class
2016-12-19 14:20:47 +02:00
Torsten Ruger
af9fed863f
small rename
2016-12-19 14:16:10 +02:00
Torsten Ruger
107e3e6d58
pick up instance variables from the class
...
Crude first set to creating types
2016-12-18 20:05:11 +02:00
Torsten Ruger
e77298f4b1
Give the class a list of ivars
...
Which is redundant with the type’s names, so let’s see
2016-12-18 20:04:40 +02:00
Torsten Ruger
af9987659f
create and test derived classes too
2016-12-18 17:17:58 +02:00
Torsten Ruger
170d453a36
start with melon and tests
...
First step, create a basic class
2016-12-18 17:02:55 +02:00
Torsten Ruger
b8cf72e729
move old tests out of the way
2016-12-18 17:01:30 +02:00
Torsten Ruger
756cb52a98
renames compiler to method_compiler
2016-12-18 14:15:19 +02:00
Torsten Ruger
272f99daf7
the cop struck again
2016-12-17 20:09:17 +02:00
Torsten Ruger
48af14f5c9
removes class statements
...
classes have to be created in melon, a level up
2016-12-17 18:31:26 +02:00
Torsten Ruger
ffb69a2c55
remove function statements
...
functions need to be defined a level up
2016-12-17 18:28:42 +02:00
Torsten Ruger
4875d3aea7
still struggling with the config
2016-12-17 13:52:29 +02:00
Torsten Ruger
fa3f96103a
and remove reek
2016-12-17 13:46:28 +02:00
Torsten Ruger
d9fedcc966
still trying to get rid of test for codeclimate
2016-12-17 13:43:41 +02:00
Torsten Ruger
0695e0182a
remove test and stash from codeclimate and add vanilla rubocop
2016-12-17 13:25:20 +02:00
Torsten Ruger
8845b91529
remove FieldDef
...
and on_field_def , :field_def and fixed all related tests
local variables will have to be determined outside the typed layer
2016-12-17 13:12:49 +02:00
Torsten Ruger
c12f11fba5
try both ree and cop
2016-12-17 09:44:21 +02:00
Torsten Ruger
782627ae79
small rename
...
to avoid confusion with type.create_method
2016-12-17 00:21:12 +02:00
Torsten Ruger
1a224f904b
much less test code (s-exps) needed because compiler defaults to main
...
but some compilation outside needed, hence clean_compile
2016-12-17 00:19:23 +02:00
Torsten Ruger
5c34835ae3
type converts method args if needed
2016-12-17 00:17:54 +02:00
Torsten Ruger
681b53cc4c
make compiler default to compiling Space.main
2016-12-17 00:17:35 +02:00
Torsten Ruger
ece017fa86
small shuffle of test helpers, also guard helpers
2016-12-17 00:15:27 +02:00
Torsten Ruger
f8cefcde3c
retiring ClassField and class_field from typed layer
...
Creating classes is the responsibility of melon
2016-12-16 19:05:49 +02:00
Torsten Ruger
dd6dede6ef
refactor object file somewhat
2016-12-16 16:18:14 +02:00
Torsten Ruger
e10fc3eedd
some reek assited coding on assembler
2016-12-16 15:41:26 +02:00
Torsten Ruger
5cd05f6135
refactor memory instruction (needs better tests)
2016-12-16 15:40:52 +02:00
Torsten Ruger
190a0ffa47
adds set_byte interpreter test
2016-12-16 01:43:54 +02:00
Torsten Ruger
b2579a2b82
dead code removal
2016-12-16 01:31:38 +02:00
Torsten Ruger
6f9955a726
more auto guard rules
...
and related renaming of files
2016-12-16 01:14:09 +02:00
Torsten Ruger
516bbd10b7
little fat of meta class
...
meta is firmly in the ruby world, not implemented in type world
2016-12-16 00:57:10 +02:00
Torsten Ruger
f7e01ff05e
remove the value class
...
more of an idea, had no impact on implementation
2016-12-16 00:56:25 +02:00
Torsten Ruger
fd519314cb
strip down compare instruction
...
not really used, using conditional branches instead.
(in arm any instruction can execute conditionally)
2016-12-16 00:41:37 +02:00
Torsten Ruger
ed0900df7f
extracting to_s from getter and setter
2016-12-16 00:30:26 +02:00
Torsten Ruger
be2b59bd01
locally passed but globally clashed
...
tests needs modules too :-)
2016-12-15 22:29:17 +02:00
Torsten Ruger
d357b8b928
fix silly scope
2016-12-15 22:28:42 +02:00
Torsten Ruger
bc22c40101
Get Byte interpreter test
2016-12-15 22:15:58 +02:00
Torsten Ruger
193278c8c2
more class tests
2016-12-15 22:15:40 +02:00
Torsten Ruger
36dfc1b1d3
some positioning tests
2016-12-15 22:15:20 +02:00
Torsten Ruger
00987519cc
complete log tests
2016-12-15 22:14:24 +02:00
Torsten Ruger
886220d388
remove unused variable class
2016-12-15 19:43:53 +02:00
Torsten Ruger
dc56274940
refactor also building word
...
obviously created by copy/paste, more refactoring possible
2016-12-15 19:31:39 +02:00
Torsten Ruger
5ea6bfed27
refactor builtin object, some machine too
2016-12-15 19:20:54 +02:00
Torsten Ruger
94c423c2b3
whittling arm_translator
2016-12-15 18:21:08 +02:00
Torsten Ruger
e2c006b5ad
minor
2016-12-15 18:08:55 +02:00
Torsten Ruger
884bf23e5f
fix elf test
2016-12-15 17:57:45 +02:00
Torsten Ruger
1571c796bb
remove unused from type
2016-12-15 14:00:34 +02:00
Torsten Ruger
2b3f9c398e
add find method to indexed
2016-12-15 14:00:03 +02:00
Torsten Ruger
b93f207638
some common instruction extration
2016-12-15 12:38:22 +02:00
Torsten Ruger
fdefb8e7a5
more refactoring on compare
2016-12-15 12:38:03 +02:00
Torsten Ruger
ec2b0a563e
bunch of method extraction on instructions
2016-12-14 21:53:26 +02:00
Torsten Ruger
55c108a8d7
refactor move_instruction a bit
2016-12-14 21:13:41 +02:00
Torsten Ruger
b3eeb7db21
memory instruction refactor (small)
2016-12-14 21:05:24 +02:00
Torsten Ruger
6eea3f2b2a
refactor logic instruction
2016-12-14 20:31:37 +02:00
Torsten Ruger
c1d23a8d48
whitespace round plusses
2016-12-14 19:57:09 +02:00
Torsten Ruger
27e7a362db
comment unused code
2016-12-14 19:52:08 +02:00
Torsten Ruger
56bf875f36
refactor call_instruction
2016-12-14 19:07:03 +02:00
Torsten Ruger
bf4ddd16ee
remove dead code
2016-12-14 19:06:48 +02:00
Torsten Ruger
b3bf881c49
streamline arm test names and get guard to pick up right tests
2016-12-14 19:06:32 +02:00
Torsten Ruger
0a0f9154e1
use Simpleconv for code_climate
2016-12-14 13:52:44 +02:00
Torsten Ruger
456e9b1ec0
folded salama-arm in
2016-12-14 13:43:13 +02:00
Torsten Ruger
56032c9b08
fix tests because of type changes
2016-12-14 13:25:06 +02:00
Torsten Ruger
9a0e2bcb11
typed methods now for type only
2016-12-14 13:24:42 +02:00
Torsten Ruger
b3a9d8b1bc
register and boot consequences of typed method
2016-12-14 13:23:46 +02:00
Torsten Ruger
021fab31db
small things
2016-12-14 13:22:47 +02:00
Torsten Ruger
bd875be023
move typed method's home to type
...
class should in the future have ruby_methods
2016-12-14 13:21:55 +02:00
Torsten Ruger
012b5d683c
change method locals to type object too (same as args)
2016-12-13 19:18:17 +02:00
Torsten Ruger
16b3a77350
fixes from the method argument change
...
Affects
method creation
argument manipulation
compiler / to_code
2016-12-13 18:49:45 +02:00