Commit Graph

21 Commits

Author SHA1 Message Date
mainzelm 84f85be750 Merge from S48 repository
Original commit message from Mike Sperber:


Subject: Add implementation of FOR-EACH to SRFI-1

This was missing from Olin's reference implementation.

Note that currently, the native versions of MAP and FOR-EACH already
implement the extended semantics specified by SRFI 1.  However, we
might want to enforce the R5RS restrictions to MAP and FOR-EACH at
some time in the future, so it still makes sense to have separate
implementations in SRFI 1.
2004-02-26 16:20:53 +00:00
mainzelm f344e2be87 Fixed bug in STRING-CONCATENATE-REVERSE/SHARED reported by Francisco
Solsona at srfi-13@srfi.schemers.org on 12 Feb 2004.
2004-02-17 07:47:41 +00:00
mainzelm 6f771517e1 Removed old, non-free sort code. 2004-02-09 08:45:16 +00:00
mainzelm 5e52592084 Bail out if inliner gets invoked on code that was already processed by
FLAT-ENVIRONMENTS optimizer.
2004-02-09 08:22:54 +00:00
mainzelm 47b9d6028e Use NAME->SYMBOL to generate formal arguments of lambda nodes that get inlined.
Test case is:

,config (define-structure foo (export)
  (open scheme
        finite-types)
  (optimize auto-integrate)
  (begin
   (define-enumerated-type afs-permission :afs-permission
     afs-permission?
     the-afs-permissions
     afs-permission-name
     afs-permission-index
     (read))))

> ,config (define-structure foo (export)
  (open scheme
        finite-types)
  (optimize auto-integrate)
  (begin
   (define-enumerated-type afs-permission :afs-permission
     afs-permission?
     the-afs-permissions
     afs-permission-name
     afs-permission-index
     (read))))
> ,in foo the-afs-permissions
Load structure foo (y/n)? y
[foo
Analyzing...
Calls will be compiled in line: (#{Generated maker 1408} afs-permission-index afs-permission-name)
]
'#(#{Afs-permission #{Generated name 1408}})
> ,inspect

 [0] '#{Afs-permission #{Generated name 1408}}
inspect: 0
'#{Afs-permission #{Generated name 1408}}

 [0: name] '#{Generated name 1408}
 [1: index] '#{Generated index 1408}
2004-02-09 08:21:05 +00:00
mainzelm f5833ad272 Use FORCE-NODE instead of FORCE in case a previous optmizer already
forced the nodes.
2004-02-09 08:15:48 +00:00
mainzelm 252e390354 Replaced the original MIT license with a new BSD-style license.
Chris Hanson from MIT Scheme granted the new license in a private
email on 12 Dec 2003.

In addition, I added a private email from Olin, saying that the MIT
code has nothing in common with MIT Scheme anymore.
2004-01-27 14:36:28 +00:00
mainzelm d1b1c3dee3 Replaced the original MIT license with a new BSD-style license.
Chris Hanson from MIT Scheme granted the new license in a private
email on 12 Dec 2003.
2004-01-27 14:33:39 +00:00
mainzelm e8a662ea1b Re-add interface of SRFI-42, which was accidentally removed on the last commit. 2004-01-27 09:51:36 +00:00
sperber 3f108f501f Hook Olin's sorting code into the regular build, replacing the old T
implementation.
2004-01-26 21:30:55 +00:00
sperber d772a5df84 - fix paren typo in sort interfaces
- rename SORT to SORTING so we can hook it into the regular build
2004-01-26 21:25:22 +00:00
sperber cb9f440657 Import sort code from s48-tuebingen/trunk, rev 573. 2004-01-22 19:52:15 +00:00
mainzelm 90ea0cf502 Fixed implementation of STRING-CONTAINS by using the commented out
"slow & simple" version instead of calling the KMP searcher.

See http://srfi.schemers.org/srfi-13/post-mail-archive/msg00003.html

I fixed the mentioned "off-by-one error" by using <= instead of < at
the termination check.
2004-01-13 15:37:35 +00:00
mainzelm eb9410cc44 Fix bug in S48_RECORD_TYPE: third parameter to s48_stob_ref was missing. 2004-01-13 12:08:28 +00:00
mainzelm ba5cdcf6fb Removed infix directory. It has a non-free copyright and will
therefore be removed from S48 as well.
2003-11-12 11:11:55 +00:00
mainzelm b1cc92b55f Added SRFI-42 2003-10-24 08:34:38 +00:00
mainzelm b7bb1fa2e5 Subject: Extend type<->sexp conversion to variable type
type->sexp was not capable of converting the variable type to a
sexp. This caused problems if the module system wanted to tell the
user that the types of exported bindings did not match:

config> (define-structure foo (export (bar :syntax)) (open scheme) (begin (define bar 1)))
; no values returned
config> ,user
> ,open foo

Error: exception
       wrong-type-argument
       (checked-record-ref '(variable #{Type :value #f #f}) '#{Record-type 14 meta-type} 1)

I've now extended TYPE->SEXP by a check for the variable type and let
it produce a list with 'VARIABLE as first and the actual type as
second element. Likewise, I extended SEXP->TYPE to produce a variable
type if 'VARIABEL is the first element of a list.

This seems to work but a second look by someone who really understands
the type system would be appreciated.

(Merge from s48 rev 423)
2003-08-04 07:31:33 +00:00
mainzelm 8805f7b7cc check-nargs= --> protocol 2003-05-05 06:37:45 +00:00
mainzelm 3e397f65c5 GC_PROTECT some variables. 2003-05-01 10:21:33 +00:00
marting 37210efdc5 Imported scheme48-0.53 sources as base 1999-09-14 12:45:00 +00:00
marting 606245fc41 *** empty log message *** 1999-09-14 12:45:02 +00:00