Commit Graph
100 Commits
Author SHA1 Message Date
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
Torsten Ruger 2c5541fb19 small test improvement 2016-12-13 18:48:42 +02:00
Torsten Ruger c346260bde change method arguments to be a type instance
where is was a list of variables (half baked)
variables also having values (not applicable)
2016-12-13 18:47:44 +02:00
Torsten Ruger 1c28926c6b improve type tests 2016-12-13 18:46:03 +02:00
Torsten Ruger 357490ff5f add little bit docs 2016-12-13 11:02:53 +02:00
Torsten Ruger 17023fdeb1 rename method to typed_method 2016-12-12 23:38:55 +02:00
Torsten Ruger 4ff684b6a4 even more refactoring for assembler 2016-12-11 16:48:01 +02:00
Torsten Ruger fffe814205 more assembler refactor 2016-12-11 16:12:39 +02:00
Torsten Ruger 90a808b1c5 assebler refactor 2016-12-11 14:48:12 +02:00