improve texts
This commit is contained in:
parent
b7902e6953
commit
6d950086e7
@ -1,4 +1,4 @@
|
||||
Copyright (c) 2014-8 Torsten Ruger
|
||||
Copyright (c) 2014-20 Torsten Ruger
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
|
23
README.md
23
README.md
@ -101,6 +101,9 @@ they are
|
||||
([quite readable](https://github.com/ruby-x/rubyx/blob/2f07cc34f3f56c72d05c7d822f40fa6c15fd6a08/lib/risc/builtin/object.rb#L48))
|
||||
through the ruby magic.
|
||||
|
||||
I am in the process of converting builtin to a simple language on top of SlotMachine,
|
||||
which i'm calling SlotLanguage. But this is wip.
|
||||
|
||||
## Types and classes, static vs dynamic
|
||||
|
||||
Classes in dynamic languages are open. They can change at any time, meaning you can
|
||||
@ -129,6 +132,20 @@ by SlotMachine and Risc only.
|
||||
|
||||
## Other
|
||||
|
||||
### CLI
|
||||
|
||||
There is a basic command line interface in *bin/rubyxc* . It can be used to
|
||||
- *compile* ie create an executable form a ruby source file
|
||||
- *interpret* compile the given source file to risc, and run the interpreter on it
|
||||
- *execute* like compile, but runs the executable (needs qemu configured)
|
||||
|
||||
The easiest way to execute a binary is by using qemu on your machine. Qemu comes with
|
||||
commands that have a linux baked in, qemu-arm in case of arm. So running
|
||||
*./bin/rubyxc hello.rb* will produce a *hello* arm executable, that can be run on any
|
||||
machine where qemu is installed with *qemu-arm ./hello* .
|
||||
|
||||
On my fedora, the package to install is "qemu", quite possible on mac with homebew, too.
|
||||
|
||||
### Interpreter
|
||||
|
||||
After doing some debugging on the generated binaries i opted to write an interpreter for the
|
||||
@ -169,8 +186,12 @@ in vain. If you're interested in an existing issues, just comment on it.
|
||||
|
||||
Fork and create a branch before sending pulls.
|
||||
|
||||
PS: I have started formulating a Democratic Open Source process, but it is still early days.
|
||||
Still, if you want to help, reach out. I am hoping to initiate an alternative to the
|
||||
benevolent dictator model that is currently the norm.
|
||||
|
||||
## Copyright
|
||||
|
||||
Copyright (c) 2014-8 Torsten Ruger.
|
||||
Copyright (c) 2014-20 Torsten Ruger.
|
||||
|
||||
See LICENSE.txt for further details.
|
||||
|
44
ToDo.md
44
ToDo.md
@ -1,16 +1,39 @@
|
||||
ToDo
|
||||
=====
|
||||
# ToDo
|
||||
|
||||
Some things that would be nice . .
|
||||
These are things that could be nice improvements to the current ruby-x.
|
||||
Below is a list for things that are outside the scope of rubyx gem.
|
||||
|
||||
- Better elf support. I think it should be relatively easy to produce an executable binary
|
||||
(so linking could be skipped). Off course the possibility to link in another library would be nice
|
||||
- Better elf support
|
||||
- better elf tests
|
||||
- more mains tests
|
||||
- ruby spec integration
|
||||
- better arm coverage (more instructions, better tests)
|
||||
- utf8 support (string improvements generally)
|
||||
- risc optimisations
|
||||
- register allocation
|
||||
|
||||
## Parfait
|
||||
|
||||
Improving any of the parfait classes is a simple way to get started. Most of the classes
|
||||
in lib/parfait , that have an mri equivalent (like string/array/hash/integer) have a list
|
||||
of methods at the bottom that need implementing (and testing)
|
||||
|
||||
## Github issues
|
||||
|
||||
Some issues already exist, any many more are obvious, just have not been written down.
|
||||
If you wan to start on something, make it an issue first.
|
||||
|
||||
## Concurrency
|
||||
|
||||
Solving concurrency is up for grabs. Any solution is a start, channels ala go are nice and
|
||||
lock free stuff is the ultimate goal.
|
||||
|
||||
## GC
|
||||
|
||||
No attempt has been made to garbage collect. It is not easy, and also interlinked with
|
||||
concurrency, to make it even more fun. My personal thinking is that there are many more
|
||||
pressing things, but if someone want to have a shot, so be it.
|
||||
|
||||
# External (new) gems
|
||||
|
||||
## Platforms
|
||||
|
||||
@ -27,6 +50,9 @@ Is admittedly a little more fun, but also not really my personal goal in the nea
|
||||
If i am really honest about this, i think ruby is a little quirky around the edges and i
|
||||
think a lot of that can/should be done as a compatibility layer. Keeping the core clean (and shiny).
|
||||
|
||||
RubyX follows the microkernel idea: if you can leave it out, do. Most of what makes the
|
||||
current mri should be external gems.
|
||||
|
||||
## Stdlib
|
||||
|
||||
Stdlib is not clean. More like a layer that accumulated over the years.
|
||||
@ -35,12 +61,10 @@ Very nice solutions exist for most of the important things.
|
||||
Like celluloid for concurrency. Celluloid-io for
|
||||
good performance io with or without zero-mq. Fiddle looks nice admittedly.
|
||||
|
||||
## Concurrency
|
||||
Stdlib should be implemented as a n external gem.
|
||||
|
||||
Solving concurrency is up for grabs. Any solution is a start, channels ala go are nice and
|
||||
lock free stuff is the ultimate goal.
|
||||
|
||||
## Stary sky
|
||||
# Stary sky
|
||||
|
||||
Iterate:
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user