have started myself, change text

This commit is contained in:
Torsten Ruger 2016-12-18 17:45:50 +02:00
parent bff0e70556
commit 769b8432e7

View File

@ -3,23 +3,17 @@ layout: news
author: Torsten author: Torsten
--- ---
The sad fact is that i will not have time to finish this. I am now running a development bootcamp
called [WebDev Camp](http://webdev.camp). The good news is that this produces money, so i am now
looking for paid help. The budget is thin to start with, but in fact i am quite happy to change the
model, and hope to find people where even a little makes a difference.
So, the plan, in short: So, the plan, in short:
1. I need to work a little more on docs. Reading them i notice they are still not up to date 1. I need to work a little more on docs. Reading them i notice they are still not up to date
2. I need to find one or two people to do the rest of the points 2. The Type system needs work
3. The Type system needs work 3. The Method-Function relationship needs to be created
4. The Method-Function relationship needs to be created 4. Ruby compiler needs to be written
5. Ruby compiler needs to be written 5. Parfait moves back completely into ruby land
6. Parfait moves back completely into ruby land 6. Soml parser should be scrapped (or will become redundant by 2-4)
7. Soml parser should be scrapped (or will become redundant by 3-5) 7. The memory model needs reworking (global not object based memory)
8. The memory model needs reworking (global not object based memory)
### 3. Type system ### 2. Type system
A Type is an ordered list of associations from name to BasicType (Object/Integer). The class exists A Type is an ordered list of associations from name to BasicType (Object/Integer). The class exists
off course and has been implemented as an array with the names and BasicTypes laid out in sequence. off course and has been implemented as an array with the names and BasicTypes laid out in sequence.
@ -38,7 +32,7 @@ The implementation needs to establish this graph (possibly lazily), so that the
The most likely implementation seems a hash, so a hashing function has to be designed and the equals The most likely implementation seems a hash, so a hashing function has to be designed and the equals
implemented. implemented.
### 4. Method-Function relationship ### 3. Method-Function relationship
Just to get the naming clear: A method is at the ruby level, untyped. A Class has references to Just to get the naming clear: A method is at the ruby level, untyped. A Class has references to
Methods. Methods.
@ -54,7 +48,7 @@ A (ruby) Method has N Function "implementations". One function for each differen
BasicTypes for arguments and local variables. Functions know which Method they belong to, because BasicTypes for arguments and local variables. Functions know which Method they belong to, because
their parent Type class holds a reference to the Class that the Type describes. their parent Type class holds a reference to the Class that the Type describes.
### 5. Ruby Compiler ### 4. Ruby Compiler
Currently there is only the Function level and the soml compiler. The ruby level / compiler is Currently there is only the Function level and the soml compiler. The ruby level / compiler is
missing. missing.
@ -73,7 +67,7 @@ dependent on the BasicType that is being returned. This involves associating the
the function level) with the ast nodes they come from (at the method level). With this, the compiler the function level) with the ast nodes they come from (at the method level). With this, the compiler
ensures that the type of the variable receiving the return value is correct. ensures that the type of the variable receiving the return value is correct.
### 6. Parfait in ruby ### 5. Parfait in ruby
After SOML was originally written, parts of the run-time (parfait) was ported to soml. This was done with the After SOML was originally written, parts of the run-time (parfait) was ported to soml. This was done with the
idea that the run-time is low level and thus needs to be fully typed. As it turns out this is only idea that the run-time is low level and thus needs to be fully typed. As it turns out this is only
@ -86,16 +80,15 @@ strange at first, one must remember that the ruby-compiler creates N Functions o
all possible type combinations. This means if the ruby method is correctly implemented, error all possible type combinations. This means if the ruby method is correctly implemented, error
handling, for type errors, will be correctly generated by the compiler. handling, for type errors, will be correctly generated by the compiler.
### 7. SOML goodbye ### 6. SOML goodbye
By this time the soml language can be removed. Meaning the parser for the language and all By this time the soml language can be removed. Meaning the parser for the language and all
documentation is not needed. The ruby-complier compilers straight into the soml internal documentation is not needed. The ruby-complier compilers straight into the soml internal
representation (as the soml parser) and because parfait is back in ruby land, soml should be representation (as the soml parser) and because parfait is back in ruby land, soml should be
removed. Which is a relief, because there are definitely enough languages in the world. removed. Which is a relief, because there are definitely enough languages in the world.
A twist on this would be to rename SOML to SOML, so it would become the Salama Object Machine Layer :-)
### 8. Memory model rework ### 7. Memory model rework
Slightly unrelated to the above (read: can be done at the same time), the memory model needs to be Slightly unrelated to the above (read: can be done at the same time), the memory model needs to be
expanded. The current per object *fake* memory works fine, but leaves memory management in expanded. The current per object *fake* memory works fine, but leaves memory management in
@ -104,10 +97,3 @@ the compiler.
Since ultimately memory management should be part of the run-time, the model needs to be changed Since ultimately memory management should be part of the run-time, the model needs to be changed
to a global one. This means class Page and Space should be implemented, and the *fake* memory to a global one. This means class Page and Space should be implemented, and the *fake* memory
mapped to a global array. mapped to a global array.
## In Conclusion
- [WebDev Camp](http://webdev.camp) will sponsor some or all of the work above
- Candidates should understand the work and be interested.
- Candidates need to know ruby and speak english
- apply to torsten@webdev.camp , time and compensation model negotiable