David Van Horn | 10 Dec 2006 21:37
Picon

Re: Vector patterns in syntax-rules

Emilio Lopes wrote:
> Hello,
> 
> Scheme 48 barks at this:
> 
>   226> (define-syntax foobar
>          (syntax-rules ()
>            ((foobar #(v ...))
>             (list v ...))))
> 
>   Warning: too many ...'s
>            (v ...)
>            (&syntax-error)
>   #{Unspecific}

This warning is indicating that the ellipsis used in the template has no 
corresponding ellipsis in the pattern, hinting at the fact that the v 
and ellipsis in #(v ...) are being interpreted literally, rather than as 
a pattern variable and pattern ellipsis, as they should.

If we change the example to:

(define-syntax foobar
   (syntax-rules ()
     ((foobar #(v ...)) #t)))

the warning goes away, and we can see how this macro is (incorrectly) 
being interpreted:

(foobar #(1 2 3)) => syntax error
(Continue reading)

Michael Sperber | 12 Dec 2006 09:54
Picon

Re: bug in PACKAGE-NOTE-CACHING!


I've finally committed this one; it will be in the next release.

Thanks, Taylor!

--

-- 
Cheers =8-} Mike
Friede, Völkerverständigung und überhaupt blabla

Michael Sperber | 18 Dec 2006 07:42
Picon

Re: POSIX Structures in Windows Distribution


"Emilio Lopes" <eclig <at> gmx.net> writes:

> I've tried to generate the scheme48.image manually and I get the
> following error message:
>
>   build\build-usual-image.bat "C:\Program Files\Scheme 48\Scheme 48
> 1.3\" "C:\Program Files\Scheme 48\Scheme 48 1.3\scheme" "C:\Program
> Files\Scheme 48\Scheme 48 1.3\scheme48.image" "C:\Program Files\Scheme
> 48\Scheme 48 1.3\scheme48vm.exe" "C:\Program Files\Scheme 48\Scheme 48
> 1.3\build\initial.image"
>   C:\Program Files\Scheme 48\Scheme 48 1.3\scheme/env/init-defpackage.scm

I've finally fixed that; the fix will be in 1.4.  Thanks for figuring
out where the problem is!

--

-- 
Cheers =8-} Mike
Friede, Völkerverständigung und überhaupt blabla

Michael Sperber | 23 Dec 2006 17:24
Picon

Scheme 48 1.4 available


Scheme 48 is an implementation of Scheme written by Richard Kelsey and 
Jonathan Rees. It is based on a byte-code interpreter and is designed 
to be used as a testbed for experiments in implementation techniques 
and as an expository tool. It comes with a module system, an extensive 
set of libraries, an interactive command-line-based development 
environment and a manual in various formats. Scheme 48 runs on most 
Unix/Linux systems, as well as Windows NT, 2000, and XP, and is fully 
R5RS-conformant. 

Scheme 48 is available (under a very liberal license) from 

http://www.s48.org/

Scheme 48 1.4 has some modest feature additions, and many bug fixes
over the previous release.  It will quickly be followed by Scheme 48
1.5, which will feature Unicode support.

Enjoy! 
The Scheme 48 maintainers

---
12/23/06 (version 1.4)
	 Additions:
	  REGEXP? is now exported from the REXEXPS structure.
	  SRFIs 4, 39, 40, 43, 43, 60, 61, 63, 66, 67, 71, 78
	   (mostly thanks to David Van Horn)
	  In the command processor, switches were generalized to
	   settings, specifically to customize various printing
	   parameters.	See the manual for details.
(Continue reading)

Taylor R Campbell | 26 Dec 2006 09:21
Favicon

a small gift for Scheme48: s48-stubber

Over the past weekend I wrote a simple stub generator for Scheme48,
after growing weary of the same repetitive patterns of C interfaces
over and over.  The stub generator, which I am calling `s48-stubber'
for lack of a better name, reads in stub descriptions and generates
both C stubs and Scheme stubs for the described library calls.  The
stub description language is S-expression-based, extensible, and
fairly precisely expressive of the translation between C and Scheme
data.

One noteworthy feature of s48-stubber is that not only does it
generate stubs for C functions, but it also generates all the code
necessary to represent enumerated C constants in Scheme without
actually storing their system-dependent values in the Scheme heap.
This means, for example, that I can write (SOCKET-DOMAIN INTERNET) to
get a portable object describing the internet socket domain, and then
the C side on whatever host machine my image is running on at the
moment will map that to the actual value of AF_INET.  I plan to
implement something similar for structs soon.

A beta version of s48-stubber is available here:

<http://mumble.net/~campbell/scheme/s48-stubber.tar.gz>

I have tested it lightly on the example provided, which is a stub
description for a few BSD socket calls along with some important
enumerations; I intend to expand this stub description into a full
replacement for my s48-network library.  The stub generator works for
my simple examples, but I still have yet to exhaustively test it.
However, I'd be happy to hear any reports of its working or failing
alike, preferably with some context and code.
(Continue reading)

Taylor R Campbell | 30 Dec 2006 05:34
Favicon

64-bit Scheme48 1.4

I just tested my 64-bit patch for Scheme48 1.3 on Scheme48 1.4, and,
although one patch hunk is rejected, that hunk is rejected because the
change to fix the bug it patched was made in the 1.4 tree.  Other than
that it seems to work, and the test suite completes successfully.

To make a 64-bit-capable Schem48 1.4 tree, you must have an existing
Scheme48 instance.  Apply the `s48-64' patch, configure, and make the
`i-know-what-i-am-doing' and `build/initial.image' targets.  Note that
the `s48-64-all' patch won't work, because it modifies the generated C
code for the virtual machine, which changes dramatically from version
to version because it is automatically generated.

The patch is available at
<http://people.csail.mit.edu/riastradh/tmp/s48-64.patch>.


Gmane