remove Kernel class for clarification

since it was a class it was fake anyway
moved methods to object
This commit is contained in:
Torsten Ruger
2018-04-02 17:06:31 +03:00
parent 87eee0b66e
commit 9fafbe4e96
9 changed files with 80 additions and 94 deletions

View File

@ -116,8 +116,9 @@ module Risc
# superclasses other than default object
def super_class_names
{ Object: :Kernel , Kernel: :Value , BinaryCode: :Word ,
Data4: :DataObject ,Data8: :DataObject , Integer: :Data4, Word: :Data8}
{ Data4: :DataObject , Data8: :DataObject ,Data16: :DataObject ,
BinaryCode: :Data16 , Integer: :Data4, Word: :Data8 ,
Object: :BasicObject}
end
# the function really just returns a constant (just avoiding the constant)
@ -137,7 +138,6 @@ module Risc
FalseClass: {},
NilClass: {},
Object: {},
Kernel: {}, #fix, kernel is a class, but should be a module
BinaryCode: {next: :BinaryCode} ,
Space: {classes: :Dictionary , types: :Dictionary ,
first_message: :Message , next_integer: :Integer ,
@ -170,14 +170,10 @@ module Risc
space_class.instance_type.add_method Builtin::Space.send(:main, nil)
obj = space.get_class_by_name(:Object)
[ :get_internal_word , :set_internal_word , :_method_missing].each do |f|
[ :get_internal_word , :set_internal_word , :_method_missing,
:exit , :__init__].each do |f|
obj.instance_type.add_method Builtin::Object.send(f , nil)
end
obj = space.get_class_by_name(:Kernel)
# create __init__ main first, __init__ calls it
[:exit , :__init__ ].each do |f|
obj.instance_type.add_method Builtin::Kernel.send(f , nil)
end
obj = space.get_class_by_name(:Word)
[:putstring , :get_internal_byte , :set_internal_byte , :resolve_method].each do |f|