David Place | 1 Feb 1995 10:48
Picon

Module nit


Hi,

Here's a small nit with the module system.  When using the auto-integrate
spurious warnings are given. (see below)  The code seems to work though.

-David

Welcome to Scheme 48 0.38 (suspended image).
[...]
config> 
(define-structure nit1 (export)
  (open scheme big-scheme)
  (begin (define-record-type bar
	   ()
	   ((touched? #f)))
	 (define baaz (bar-maker)))
  (optimize auto-integrate))

config> config> config> ,open nit1
Load structure nit1 (y/n)? y
[nit1

Warning: invalid expression
         ()

Analyzing... 
Calls will be compiled in line: (bar-maker bar-touched? set-bar-touched?!)

Warning: wrong number of arguments
(Continue reading)

Brian D. Carlstrom | 5 Feb 1995 22:13
Picon

rts/continuation.scm

trying to make debug/medium.image I noticed a capitialization
inconsistancy in continuation parent. the two marked lines 
have A and B instead of a and b. I realize this is a not bug
but wanted to report it since its the only place i've seen this
problem for scsh, which does have a case sensitive reader.

-bri

(define (continuation-parent a)
  (let ((b (continuation-cont a)))
    (if (and (continuation? b)
	     (eq? (continuation-template b) (continuation-template a))
	     (> (continuation-pc b) (continuation-pc a))
> 	     (let loop ((env (continuation-env A)))
> 	       (or (eq? env (continuation-env B))
		   (and (vector? env)
			(loop (vector-ref env 0))))))
	(continuation-parent b)
	b)))

Brian D. Carlstrom | 5 Feb 1995 22:37
Picon

nitpick

can the vm be fixed to put a newline after the error message:

	"heap is in an inconsistent state."

-bri

Stephane.Lentz | 14 Feb 1995 08:00
Picon

Scsh 0.3 's installation on Solaris


	Hi, 
I'm just  trying to install Scsh 0.3 on solaris and I'm faced with some 
troubles : first, there is no ranlib and I get the following error after 
correcting the RANLIB definition (RANLIB= echo ) : 

ar cq cig/libscshvm.a main.o unix.o dynload.o prescheme.o extension.o scheme48vm.o cig/libcig.o
cig/libcig1.o proc2.o  scsh/dirstuff1.o scsh/fdports1.o scsh/rescm.o scsh/syscalls.o
scsh/syscalls1.o scsh/userinfo.o scsh/stdio_dep.o scsh/putenv.o scsh/regexp/libregexp.a
scsh/time.o scsh/time1.o scsh/network.o scsh/network1.o scsh/re.o
ar: scsh/regexp/libregexp.a is in archive format - embedded archives are not all
owed
make: *** [cig/libscshvm.a] Error 1

Dos anybody have report this problem ?
This strange since I installed scsh0.2 and didn't get such a thing on Solaris2.3

Regards, 
Stephane Lentz.

Brian D. Carlstrom | 16 Feb 1995 06:27
Picon

small doc bug


big/external.scm says:

; Code for keeping external pointers in a table similar to the symbol table.
;
; The entry points for this code are:
;
; (GET-EXTERNAL string)    returns an external pointer
; (LOOKUP-ALL-EXTERNALS)   looks up new values for all external pointers;
;                          ideally this should be called automatically
;                          on startup

but more-interfaces shows that null-terminate is also exported:

(define-interface externals-interface
  (export get-external
	  lookup-all-externals
	  external-call
	  null-terminate))

also, i have a need to have access to *the-external-table* to table-walk
over it. can it or a procedural way of accessing it be exported?

-bri

kelsey | 16 Feb 1995 16:30
Picon

Re: small doc bug


   From: Brian D. Carlstrom <bdc <at> clark.lcs.mit.edu>
   Date: Thu, 16 Feb 95 00:27:22 -0500
   Reply-To: bdc <at> ai.mit.edu

   big/external.scm says:

   ; Code for keeping external pointers in a table similar to the symbol table.
   ;
   ; The entry points for this code are:
   ;
   ; (GET-EXTERNAL string)    returns an external pointer
   ; (LOOKUP-ALL-EXTERNALS)   looks up new values for all external pointers;
   ;                          ideally this should be called automatically
   ;                          on startup

   but more-interfaces shows that null-terminate is also exported:

   (define-interface externals-interface
     (export get-external
	     lookup-all-externals
	     external-call
	     null-terminate))

Starting with version 0.36 all Scheme 48 strings are null-terminated.
The documentation is fine, it is the interface that needs to be changed.

   also, i have a need to have access to *the-external-table* to table-walk
   over it. can it or a procedural way of accessing it be exported?

(Continue reading)

Axel Wienberg | 16 Feb 1995 18:08
Picon

doodl bug?


I am using Scheme48 v 0.36 (the one that comes with scsh) under Linux,
and was experimenting with doodl. Now it seems I can't even run the
examples: I get mysterious complaints whenever I try to use setters.

Transcript:
-----------------------------------------------------------------------
bash$ scshvm -i scheme48.image -o scshvm
Welcome to Scheme 48 0.36 (made by  on Mon Jan 23 18:37:28 MET 1995).
Copyright (c) 1993, 1994 by Richard Kelsey and Jonathan Rees.
Please report bugs to scheme-48-bugs <at> martigny.ai.mit.edu.
Type ,? (comma question-mark) for help.
> ,config ,load misc/packages.scm
misc/packages.scm ......
> ,open doodl
Load structure doodl (y/n)? y
[doodl
[annotations
[assembler
[for-syntax
[assembling
/usr/local/lib/scsh/env/assem.scm .............................
]
]

]
misc/annotate.scm ..
]
[define-record-types
/usr/local/lib/scsh/rts/jar-defrecord.scm 
(Continue reading)

Jonathan Rees | 16 Feb 1995 21:41
Picon
Picon

doodl bug?

The "misc" directory should be considered to be unsupported.  I
suppose the documentation ought to say this somewhere.

If I remember to, I'll ask Richard to remove DOODL from the
distribution.  I think we're already planning on flushing the GENERICS
module (on which DOODL is based), or at least moving it to the misc/
directory.

For an object system, I suggest you try Tiny CLOS or SOS.  SOS is
probably available somewhere on ftp-swiss.ai.mit.edu or in the Scheme
Repository.  I doubt that either has been ported to Scheme 48.

Jonathan

Daniel W. Connolly | 16 Feb 1995 22:13
Picon

Scheme 48 FFI issues: interpreter in ML or Modula-3?


What's the status of the scheme48 foreign function interface and heap?

I hear some good things about scsh, but I hear it takes a long time to
build up all the FFI cells. Would some kind of lazy-binding of
foreign functions be feasible?

The stop-and-copy collector has some painful implications on FFI too:
how do I keep a pointer from a C data structure to a scheme object?

How about a radical strategy change for FFI: rather than trying to
deal with the impedence mismatch between scheme (with GC and
continuations) and C (with simple stack and malloc/free), how about
implementing the virtual machine in a language whose runtime has a
smarter heap, like SML/NJ or Modula-3?

The folks that use the gcc-based virtual machine could continue
happily on their way, and the same scheme48 VM "images" could run in a
Modula-3 based virtual machine, where the M3 runtime manages the heap
(and threads...).

Since the virtual machine is written in pre-scheme, I guess this would
just mean a new pre-scheme-≥Modula3 compiler (and perhaps some changes
to the scheme48 runtime).

More conservative alternatives would include a scheme48 vm implemented
on top of something like the PPCR (portable posix compatible runtime?
from Xerox) or the SCM/guile conservative garbage collector.

Is there a Tk interface to scheme48? I think there soon will be for
(Continue reading)

kelsey | 16 Feb 1995 23:03
Picon

Re: Scheme 48 FFI issues: interpreter in ML or Modula-3?


   Date: Thu, 16 Feb 1995 15:13:14 -0600
   From: "Daniel W. Connolly" <connolly <at> hal.com>

   What's the status of the scheme48 foreign function interface and heap?

The heap is the same as always, although pressure is building for
something better.  I don't know about the FFI.

   I hear some good things about scsh, but I hear it takes a long time to
   build up all the FFI cells. Would some kind of lazy-binding of
   foreign functions be feasible?

Yes, at least for procedures.  Or, if there were some fixed set, they
could be statically linked into the VM.

   The stop-and-copy collector has some painful implications on FFI too:
   how do I keep a pointer from a C data structure to a scheme object?

Have some way of creating non-moving Scheme objects and either
use a conservative collector or require the user to free them
explicitly.  The second method is particularly easy: just malloc
the storage and add a header and tag.

   How about a radical strategy change for FFI: rather than trying to
   deal with the impedence mismatch between scheme (with GC and
   continuations) and C (with simple stack and malloc/free), how about
   implementing the virtual machine in a language whose runtime has a
   smarter heap, like SML/NJ or Modula-3?

(Continue reading)


Gmane