[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Beta testers help sought for Amiga-CLISP
- To: firstname.lastname@example.org
- Subject: Beta testers help sought for Amiga-CLISP
- From: email@example.com (Joerg-Cyril Hoehle)
- Date: Fri, 7 Oct 94 14:16:08 +0100
- Return-receipt-to: firstname.lastname@example.org
Since the last distribution of CLISP/Amiga in February, a few things
have changed. Here are the Amiga related changes (not to mention the
general changes like LOOP, French/German/English language start-time
switch, generic streams, external modules and others):
1 SYS::terminal-raw exists and can switch *terminal-io* of any CON or
RAW file-handle stream to cooked or single-character mode.
2 SYS::%mem-read, %mem-write and %libcall exist and are supposed to be
the basis of an upcoming FFI in CLISP.
3 c-C handling has been improved during READ from file-handle-streams
(i.e. also *terminal-io*).
4 a version of CLISP (called *-wide) now runs together with virtual
memory (tested with VMM) or boards that put memory above #x07ffffff
Things to do, to test and or to develop:
ad 1) has been added so that Maxima/Punimax can be supported, although
the port is not complete. This is mainly because I feel that there's a
design flaw in the functions from the SCREEN package:
returns a "window stream". As long as this stream is open, the terminal
is in cbreak/noecho mode. *TERMINAL-IO* shouldn't be used for input or
output during this time. (Use WITH-KEYBOARD and *KEYBOARD-INPUT* instead.)
(SCREEN:WITH-WINDOW . body)
binds SCREEN:*WINDOW* to a window stream and executes body. The stream is
guaranteed to be closed when the body is left. During its execution,
*TERMINAL-IO* shouldn't be used, as above.
Punimax doesn't stick to that rule and nevertheless reads from
*TERMINAL-IO*. This works on CLISP/UNIX or DOS(?) because there's a
hack in CLISP to switch the modes. I don't like to go through a hack.
In my opinion, what's missing is a way to do both screen oriented
output (setting/getting the cursor position) and read chars in either
cooked or single-character (non-echoing) mode. The current SCREEN
doesn't provide for that (when there's no *KEYBOARD-INPUT*).
ad 2) could be enhanced a lot, but I'd like people to help me on
that. If I had to write everything myself, that'd just delay and delay
a new distribution of CLISP (which is why I decided to put out a
beta). I'm still dreaming of a
(let ((w (libcall |OpenWindow| args...))) ...) with full resource-tracking.
ad 3) is just nice when you mix quotes and parentheses.
ad 4) is extremely useful _now_ (maybe even necessary to compile
Punimax on small systems).
5 CLISP doesn't work nicely with neither PIPE: nor FIFO: although it's
perfectly fine with CON: or RAW: streams. Anybody wants to investigate
on that? How to really distinguish streams that can be buffered from
6 For the advanced C programmer: I could distribute CLISP as a library
(like is done on UNIX). This would have the advantage that one can
easily add new foreign modules by linking without recompiling CLISP
itself, although that would require a GCC platform. Is there any
interest in this? That would mean even more archives :-(
7 opening "SER:" or "AUX:" is not possible with CLISP, because it
thinks that these are note correct pathnames ("SER:9600" works). Any
8 Compilation: Are you able to get a working CLISP from sources or am
I the only one?? (GCC258 is recommended).
Thanks to any volunteers,