Skip to content
master
Switch branches/tags
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
doc
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Prota

An implementation of NewtonScript

I wrote this in 1997. It got to this point before I got distracted by other things. :) I originally called it "Proto" and got about halfway through changing it to "Prota".

It implements

  • The basic NewtonScript object model
  • A NewtonScript interpreter (missing floating point and a few other niceties)
  • A package stream reader (no writer)
  • A printer

It does not implement

  • A NewtonScript compiler (I used NTK to compile the initial objects and the interpreter test programs, which is why you'll see NTK files here.)
  • An object store
  • A UI system
  • Any other Newton technology :)

I used the Boehm conservative garbage collection library for memory management rather than the error-prone RefVar system used for precise GC in the Newton OS. There might be a nicer way to do this in C++ now, but I haven't written any serious C++ in this century. :)

This was last compiled in MS Visual C++ in 1997. I have it working on OS X (clang) in 2017. At least, it compiles and does something. :)

BTW, this is pretty close to what the original NewtonScript source code looks like. My style didn't change much in six years.

Build instructions

# required once
git clone https://github.com/ivmai/bdwgc.git
cd bdwgc
git clone git://github.com/ivmai/libatomic_ops.git
make -f Makefile.direct ABI_FLAG=-m32
cd ..

# then
make
cd test
../build/nstest

About

An implementation of NewtonScript

Resources

License

Releases

No releases published

Packages

No packages published