Commit Graph

2466 Commits

Author SHA1 Message Date
Torsten 861fa3203f updated qemu wuth buster
Also updated website
2019-07-23 12:08:06 +03:00
Torsten 27fc66a8ca adapted scripts for linux 2019-07-23 12:07:24 +03:00
Torsten 1c4882c40d update parser
to get rid of warning
bundling (locally) to vendor
remove dead file
2019-06-01 21:01:11 +03:00
Torsten Ruger 1391667f6c still doing attr_reader, but closing #25
cattr still missing, but only one occurence. Later.
2019-03-07 11:00:18 +02:00
Torsten Ruger 5ed6a07083 better test for attr
still #25
2019-03-07 10:47:48 +02:00
Torsten Ruger 04720d4950 implement attr setter correctly
part of #25
still need to do for list and attr_reader
2019-03-06 11:21:09 +02:00
Torsten Ruger b4b1e6e13b start rewriting for parfait #25
just some infrastructure for now.
2019-03-05 20:36:40 +02:00
Torsten Ruger 11c5389e24 Fix if logic error
ifs may have an empty true block
Especially for unlesses thet is normal, so allow
2019-03-05 20:30:24 +02:00
Torsten Ruger 9bd2195a15 use cattr instead of metaclass
so we can catch it in the compiler, like also attr
define cattr in adapter, no change in tests !
2019-03-04 19:56:53 +02:00
Torsten Ruger 8d4eab72bf update parser to use 2.6
was choking on &. syntax
improved error reporting slightly
2019-03-04 19:00:47 +02:00
Torsten Ruger fb89c01681 clean up test option handling 2019-03-04 10:24:08 +02:00
Torsten Ruger 0a75e8c3ba update parser since not we run 2.4+
also update the statistics gatherer
2019-02-27 10:13:38 +02:00
Torsten Ruger eec72a9fca Successfully interpret class methods
just about closes #24
2019-02-27 09:48:21 +02:00
Torsten Ruger 461a6933c6 better tests for class sending
still #24
2019-02-23 18:17:26 +02:00
Torsten Ruger 0ebb8e31c6 to_s for parfait list 2019-02-17 18:16:19 +02:00
Torsten Ruger e430701645 Using MetaClass to compile class methods into
still #24, still wip
2019-02-17 14:37:50 +02:00
Torsten Ruger 3db7707614 Get a basic MetaClass going
Does get created in new, but not in boot.
Also not yet used in compiling
2019-02-16 23:24:16 +02:00
Torsten Ruger 2fbea82039 bring class methods down to mom
not functionally correct, still compiling into class, not metaclass
part of #24
2019-02-16 17:54:45 +02:00
Torsten Ruger 40581494de class Methods down to vool #24 2019-02-14 19:24:12 +02:00
Torsten Ruger 86e3103543 More or less a stash 2019-02-12 22:41:42 +02:00
Torsten Ruger 37571a0ff9 Add ruby class methods
Ruby parser and ruby level for #24
2019-02-12 22:36:37 +02:00
Torsten Ruger 403540b3ca slightly better messages for unsupported ruby
Very slightly unfortunately, just just enought to find the error.
Also testing what is unsupported, so it's documented.
2019-02-10 21:02:16 +02:00
Torsten Ruger d24b6ee153 start writing parfait witout the module
Parfait classes must be unscoped. Now we start parsing Parfait, it must be without the module.
Luckily module_eval makes this a breeze.
Also remove string interpolation that is not yet processed
2019-02-10 21:00:25 +02:00
Torsten Ruger a89301d623 finally creating less objects in the test
basic still #23 , now applied
Basic size of 20, interpreter gets 50 and the full set is 1024

Tests run more than twice as fast!!
2019-02-09 12:44:35 +02:00
Torsten Ruger 37eeb81f45 fix all tests for previous commit 2019-02-08 23:03:23 +02:00
Torsten Ruger 74b790250a use class variables instead of globals
and set page size from new argument
This closes #23 , though ripples will follow
2019-02-08 23:03:08 +02:00
Torsten Ruger d777b4fa88 fix travis (try 1) 2019-02-07 19:05:06 +02:00
Torsten Ruger 8d3a1954fa close #21
Mostly replaced Fixnum with integer
also in the rx-file dependency
all travis and testing with 2.4+
2019-02-07 18:24:35 +02:00
Torsten Ruger 51eff62931 Very basic cli to compile ruby files
Off course this is basically a cross compiler and the files
have to be transferred to an arm machine (and fixed as per note)
close #22
2019-02-07 11:07:57 +02:00
Torsten Ruger e634781d6c upgrade ruby and include thor in general 2019-02-07 11:05:40 +02:00
Torsten Ruger 4d30727811 test and last fixes for previous commits (allocalte ints)
mostly just fixing the additional instructions
close #20
2018-11-24 22:40:22 +02:00
Torsten Ruger e6615d0a6a remove the old add_new_int and calls
last orrurences in syscalls replaced, 2 variants
- exit does not actually need the int
- all else, preallocate the int beforehand and in syscall assume the reg name (integer_tmp)

test missing
2018-11-22 09:16:56 +02:00
Torsten Ruger a8d1f070f1 replace add_new_int in most builtins
in integer and word mainly, replaced with allocate_int
(tests pending as syscalls are undone)
2018-11-21 20:29:22 +02:00
Torsten Ruger bbb7dbef75 First part of int allocation
implemented allocate_int
instead of add_new_int
2018-11-21 11:12:39 +02:00
Torsten Ruger 5015a11108 function docs improvements 2018-11-14 12:41:13 +02:00
Torsten Ruger fb6a1a0e01 fix the statement moming 2018-11-02 17:27:46 -07:00
Torsten Ruger 4ff84133d2 add append to MomCompiler
also lazy init boot_function, so that compilers can be added up
before going to translate, where the boot_compilers are used
2018-11-02 15:54:30 -07:00
Torsten Ruger 1377bda641 combining sources at vool level
using ScopeStatements
(those unfortunately don't go to_mom)
2018-11-02 12:36:23 -07:00
Torsten Ruger 52f6f1eaa8 cleaner interfaces for rubyXcompiler
store the vool
seperate api for ruby -> X and stored vool -> X
2018-11-02 12:19:13 -07:00
Torsten Ruger 87fc91cd5c start to integrate sources 2018-11-02 11:57:54 -07:00
Torsten Ruger 6606593169 add parallel testing possibility
3 time speedup on 8 cores, 2,5 on 4. with

NCPU=8 RUBYOPT=-rminitest/parallel_fork ruby test/test_all.rb
2018-09-07 16:08:53 +03:00
Torsten Ruger 7fc104a019 Use minitest-profile to find long tests
Only found one big fibo
All else due to large amount of objects
(now with factories it jumped from hundreds to thousands)
2018-09-02 13:58:42 +03:00
Torsten Ruger 8a81d41d5e Move booting to RubyXCompiler init
Also pass the source into the compile method.
This way compiler can be reused for subsequent compile.
Does remove some double boots, but no major time save
2018-09-02 13:57:19 +03:00
Torsten Ruger d73e1526cd Some docs and to_s testing
somewhat code_climate inspired
2018-09-01 15:54:25 +03:00
Torsten Ruger 2bb6ad5f61 remove unused code
Arrays and Hashes have to resolve to object creation calls
Not to constants. In the future off course
2018-09-01 15:14:07 +03:00
Torsten Ruger f798173a09 change to_risc and builtin code according to last commit
Wherever space was loaded to get to the next_message
we now load the Message factory.
Otherwise much the same, only the attribute is next_object, not next_message
The binary is growing with 1k objects per factory, so i had to fix (hack) arm to handle bigger constants
close #14
2018-09-01 11:28:53 +03:00
Torsten Ruger d964e9ea9d let spce keep the messages in a factory #14
Like Integers and addresses before, messages are now in a factory
Factories keep allocated (uninitialised) objects, had to make init public to call it
2018-09-01 11:24:16 +03:00
Torsten Ruger 0a390cc5a9 shaves an instruction off resolve_method
by loading nil directly,  not space first
2018-09-01 11:20:59 +03:00
Torsten Ruger c3b026a180 expand constant load
slightly hacky, but in good tradition
previous implementation only worked until 16 significant bits, which is getting to little
this one just keeps adding more instructions to arrive at the constant by force
There are surely cleverer ways of doing this, ie by using the barrel shifter
A start on #15, admittedly a hack
2018-08-31 23:28:31 +03:00
Torsten Ruger b2339dc330 fix address nil values 2018-08-30 16:38:00 +03:00