comparison readme.txt @ 0:76568becd6d6

Rhope Alpha 2a source import
author Mike Pavone <pavone@retrodev.com>
date Tue, 28 Apr 2009 23:06:07 +0000
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:76568becd6d6
1 Rhope Alpha 2 Readme
2
3 Usage
4 -----
5
6 To invoke the Rhope interpreter in interactive mode simply type rhope or ./rhope at the command prompt in the appropriate directory
7
8 To run a program, type rhope program.rhope. Files ending in a .rhope extension will be processed using the new parser. Files ending in a .vistxt extension will be processed using the old parser. (Note that on Windows, rhope.exe is compiled without GUI functionality and is a console mode program, rhope_gui.exe is compiled with GUI functionality and is a window mode program)
9
10 The DS port always tries to run program.vistxt. Two binaries are provided, rhope.gnm.nds (patched for the Datel Games 'n' Music device) and rhope.nds (unpatched). If you aren't using the Datel device, you need to patch rhope.nds using dlditool for your device (or use an autopatching launcher).
11
12 Example Programs
13 ----------------
14
15 hello.rhope The classic "Hello World!" program in Rhope
16 fib.rhope Naive recursive fibonacci
17 calc.rhope A simple 2 function calculator using the built-in GUI library (only works on Windows and Syllable)
18 basicweb.rhope Serves static files over HTTP using the included webserver library
19 said.rhope A simple example of using the included web framework (implements Paul Graham's Arc challenge)
20 pair.rhope Shows how to define a new object
21 program.vistxt (DS only) A simple demo for the DS port. Displays some graphics using a tile layer and a sprite.
22
23
24 Included Libraries
25 ------------------
26
27 extendlib.rhope A number of utility workers written in Rhope
28 webserver.rhope A very basic (and incomplete) library for serving data over HTTP
29 framework.rhope A basic Web framework (uses webserver.rhope)
30 dsvideo.vistxt (DS only) Some utilities for interacting with the DS video hardware
31
32 Other Files
33 -----------
34
35 parser.vistxt The new parser written in Rhope
36 extendlib.vistxt Version of extendlib using the old syntax (needed for the parser)
37 webserver.vistxt Version of webserver library using the old syntax
38 framework.vistxt Version of the web framework using the old syntax
39
40 Changes since Alpha 1
41 ---------------------
42
43 - Parser rewritten in Rhope
44 - The new parser implements an improved version of the syntax (no more |: and :| and no more positional arguments)
45 - New parser supports negative number literals and numbers expressed in hex (e.g. 0x42)
46 - Programs using the new parser no longer have to manually initialize global stores using Init Store[]
47 - Added a primitive interactive mode to the interpretter
48 - The interpretter now supports tail call optimization
49 - Get DString@String was implemented in the core interpretter and removed from extendlib for performance
50 - Added basic support for checkboxes and dropdowns in the Syllable port
51 - Added a "Blueprint" object that allows inspection and modification of object definitions
52 - Added a number of methods to the Worker object for constructing new workers to support the new parser
53 - Made a basic port to the Nintendo DS
54 - Fixed a bug that caused iteration over Dictionary objects to sometimes skip entries
55 - Fixed a bug that caused Get DString@File to return incorrect data
56 - Fixed a number of memory leaks
57 - Fixed a bug in the argument checking code that caused a crash when Rhope was invoked with no arguments
58 - Probably fixed other bugs that I've forgotten
59
60 Building and Porting
61 --------------------
62
63 Generally speaking you just need to type make -f <makefile for your platform> to build Rhope or on Windows nmake /f <appropriate makefile>. On Syllable you can just type make with no arguments. The DS port is a bit more work. You need to copy the appropriate source files into a copy of the arm9 template from devkitPro and add a few defines to the CFLAGS in the default makefile (namely COMPILE_THREADS=0, NO_NET, CONSOLE and NINTENDO_DS).
64
65 Rhope is fairly portable. makefile.linux should work without modification for any platform with pthreads, BSD sockets and GCC. If you define COMPILE_THREADS=0 then Rhope should compile on platforms without pthreads and if you define NO_NET it should compile on platforms without BSD sockets.
66
67 Copying
68 -------
69
70 Rhope is released under a BSD-style license. See copying.txt for the full text of the license.
71
72 Notes
73 -----
74
75 The new parser is rather slow. This is particularly noticeable when running programs that use extendlib or the web framework. The new parser is also somewhat light in the error handling department. These issues will be addressed with time.
76
77 The current transaction model isn't sufficient for all tasks. Future releases will add options for handling transactions to cover a wider range of uses.
78
79 Known Issues
80 ------------
81
82 - Dictionary objects can't have an empty string as a key
83 - Can't use the -t switch in interactive mode
84 - Statements of the form foo <- bar don't work unless either bar is a parameter of the worker or foo is an output with the new parser
85 - statements of the form foo { ... do something ... } don't work with the new parser
86 - The interpreter will crash if you try to run a program that doesn't define Main
87 - DS port freezes after a while (possibly runs out of memory?)
88
89 Contact
90 -------
91
92 Questions? Comments? Bugs? Flames? My email address is: pavone@retrodev.com
93 You can also join the Rhope mailing list at http://groups.google.com/group/rhope