Re: [racket-users] Re: Boot To Racket

2017-07-11 Thread Neil Van Dyke
Oh, this variation might be easier than writing enough OS from scratch 
to run Racket, and perhaps more interesting: go directly from figuring 
out the magical incantations (device initialization, etc.) to bring up a 
RasPi to the point you can blink an LED, to displaying something on the 
video device, to running your own R5RS Scheme REPL, implemented in C or 
assembly.


Don't be scared away from coding your own Scheme from scratch.  A whole 
lot of them got started that way, because it's easy to code your own (If 
you borrow existing approaches for garbage collection and evaluation 
with tail calls), then do something different with it.  In your case, 
you're implementing Scheme on bare metal, and can see how that can 
accommodate Scheme.  For possibly easier debugging, you can develop your 
ARM Scheme implementation mostly on your Linux desktop, in normal 
userspace and/or in an ARM QEMU.


Later on, you can borrow key stuff from Racket, like its syntax 
reading&transforming and phases&modules.


--
You received this message because you are subscribed to the Google Groups "Racket 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [racket-users] Re: Boot To Racket

2017-07-11 Thread Neil Van Dyke
My comments were about adapting off-the-shelf solutions.  If you want to 
do it from scratch, for educational/hack value, or because you want to 
do something better in some way, then Just Do It.


Suggestions, based only on a general familiarity...

There are introductory textbooks on operating systems that you can skim, 
to introduce scheduling, virtual memory, devices, and filesystems.  Also 
get docs for the particular ARM architecture and the exact SoC and 
peripherals that your chosen model of RasPi uses. And some 
Linux-specific docs (maybe even just a device drivers book).


In parallel with book-learnin', to motivate and anchor, you might also 
look through the Linux source, to see what it does to bring up a RasPi.  
Try to trim that down to a minimal set of stuff you need to implement, 
to boot a RasPi to the point you can blink an LED under your control.  
Then implement that, then implement the rest of your jeOS.  
http://knowyourmeme.com/memes/how-to-draw-an-owl


You can look into the Racket code, to see what OS system calls it needs 
to make for a REPL.  It might be a lot of Posix you have to implement.


There's also this RasPi-specific OS text, and perhaps others like it, 
though I haven't looked through it: 
http://www.cl.cam.ac.uk/projects/raspberrypi/tutorials/os/
Something more prepared, like that, might be the best way to get 
started.  Even Linux started that way.


--
You received this message because you are subscribed to the Google Groups "Racket 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [racket-users] Re: Boot To Racket

2017-07-11 Thread jukka . tuominen


I've been following this discussion with keen interest. Although my 
Liitin.org project is far from minimal in size (viable sized by design), 
it does have some common objectives. Racket is used as "the native 
language" that is meant to be able to control all areas of the 
cloud-based, native Linux environment. I'm very GUI-oriented myself, but 
will do my best to provide convenient command-line tools as well.


br, jukka


Lehi Toskin:
"I have this idea, this vision. I wish to create a small system that 
would more or less only be to turn on the machine (probably an RPi) and 
then you'd immediately be inside a Racket REPL..."


William G Hatch:
"I would love to see a Racket unikernel, and be able to essentially run 
a

modern Lisp machine..."

--
You received this message because you are subscribed to the Google Groups "Racket 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.