~ chicken-core (chicken-5) c2d6ee14e9eac239b2d4c02bb574f58e43e578c1
commit c2d6ee14e9eac239b2d4c02bb574f58e43e578c1
Merge: 4d40a7af 3744e608
Author: felix <felix@call-with-current-continuation.org>
AuthorDate: Tue Aug 30 20:18:51 2011 +0200
Commit: felix <felix@call-with-current-continuation.org>
CommitDate: Tue Aug 30 20:18:51 2011 +0200
resolved conflicts
diff --cc types.db
index d02342a1,60ea3c21..c7d3384b
--- a/types.db
+++ b/types.db
@@@ -1220,55 -1046,51 +1220,55 @@@
;; irregex
-(irregex (procedure irregex (#!rest) *))
+;;XXX these need to be reviewed by Alex and/or sjamaan
+
+;;XXX which do not invoke stored procedures that may modify local state? (clean)
+
+(irregex (#(procedure #:clean) irregex (#!rest) *))
;irregex-apply-match
-(irregex-dfa (procedure! irregex-dfa ((struct regexp)) *)
+(irregex-dfa (#(procedure #:clean #:enforce) irregex-dfa ((struct regexp)) *)
(((struct regexp)) (##sys#slot #(1) '1)))
-(irregex-dfa/extract (procedure! irregex-dfa/extract ((struct regexp)) *)
+(irregex-dfa/extract (#(procedure #:clean #:enforce) irregex-dfa/extract ((struct regexp)) *)
(((struct regexp)) (##sys#slot #(1) '3)))
-(irregex-dfa/search (procedure! irregex-dfa/search ((struct regexp)) *)
+(irregex-dfa/search (#(procedure #:clean #:enforce) irregex-dfa/search ((struct regexp)) *)
(((struct regexp)) (##sys#slot #(1) '2)))
-(irregex-extract (procedure! irregex-extract (* string #!optional fixnum fixnum) list))
-(irregex-flags (procedure! irregex-flags ((struct regexp)) *)
+(irregex-extract (#(procedure #:enforce) irregex-extract (* string #!optional fixnum fixnum) list)) ;XXX specialize?
+(irregex-flags (#(procedure #:clean #:enforce) irregex-flags ((struct regexp)) *)
(((struct regexp)) (##sys#slot #(1) '5)))
-(irregex-fold (procedure! irregex-fold (* (procedure (fixnum (struct regexp-match) *) *) * string #!optional (procedure (fixnum *) *) fixnum fixnum) *))
+(irregex-fold (#(procedure #:enforce) irregex-fold (* (procedure (fixnum (struct regexp-match) *) *) * string #!optional (procedure (fixnum *) *) fixnum fixnum) *))
-(irregex-fold/chunked (procedure! irregex-fold/chunked (* (procedure (* fixnum (struct regexp-match) *) *) * procedure * #!optional (procedure (* fixnum *) *) fixnum fixnum) *))
+(irregex-fold/chunked (#(procedure #:enforce) irregex-fold/chunked (* (procedure (* fixnum (struct regexp-match) *) *) * procedure * #!optional (procedure (* fixnum *) *) fixnum fixnum) *))
-(irregex-lengths (procedure! irregex-lengths ((struct regexp)) *)
+(irregex-lengths (#(procedure #:clean #:enforce) irregex-lengths ((struct regexp)) *)
(((struct regexp)) (##sys#slot #(1) '7)))
- (irregex-match (#(procedure #:enforce) irregex-match (* string) *))
-(irregex-match (procedure! irregex-match (* string #!optional fixnum fixnum) *))
++(irregex-match (#(procedure #:enforce) irregex-match (* string #!optional fixnum fixnum) *))
;irregex-match?
-(irregex-match-data? (procedure? (struct regexp-match) irregex-match-data? (*) boolean))
+(irregex-match-data? (#(procedure #:pure #:predicate (struct regexp-match)) irregex-match-data? (*) boolean))
-(irregex-match-end (procedure irregex-match-end (* #!optional *) *))
+(irregex-match-end (#(procedure) irregex-match-end (* #!optional *) *))
;irregex-match-end-chunk
-(irregex-match-end-index (procedure! irregex-match-end-index ((struct regexp-match) #!optional *) fixnum))
+(irregex-match-end-index (#(procedure #:enforce) irregex-match-end-index ((struct regexp-match) #!optional *) fixnum))
-(irregex-match-names (procedure! irregex-match-names ((struct regexp-match)) list)
+(irregex-match-names (#(procedure #:enforce) irregex-match-names ((struct regexp-match)) list)
(((struct regexp-match)) (##sys#slot #(1) '2)))
-(irregex-match-num-submatches (procedure! irregex-match-num-submatches ((struct regexp-match)) fixnum))
-(irregex-match-start (procedure irregex-match-start (* #!optional *) *))
+(irregex-match-num-submatches (#(procedure #:enforce) irregex-match-num-submatches ((struct regexp-match)) fixnum))
+(irregex-match-start (#(procedure) irregex-match-start (* #!optional *) *))
;irregex-match-start-chunk
-(irregex-match-start-index (procedure! irregex-match-start-index ((struct regexp-match) #!optional *) fixnum))
-(irregex-match-string (procedure irregex-match-string (*) *))
-(irregex-match-subchunk (procedure! irregex-match-subchunk ((struct regexp-match) #!optional *) *))
-(irregex-match-substring (procedure irregex-match-substring (* #!optional *) *))
-(irregex-match/chunked (procedure! irregex-match/chunked (* * * #!optional fixnum) *))
+(irregex-match-start-index (#(procedure #:enforce) irregex-match-start-index ((struct regexp-match) #!optional *) fixnum))
+(irregex-match-string (#(procedure) irregex-match-string (*) *))
+(irregex-match-subchunk (#(procedure #:enforce) irregex-match-subchunk ((struct regexp-match) #!optional *) *))
+(irregex-match-substring (#(procedure) irregex-match-substring (* #!optional *) *))
+(irregex-match/chunked (#(procedure #:enforce) irregex-match/chunked (* * * #!optional fixnum) *))
-(irregex-names (procedure! irregex-names ((struct regexp)) *)
+(irregex-names (#(procedure #:clean #:enforce) irregex-names ((struct regexp)) *)
(((struct regexp)) (##sys#slot #(1) '8)))
(irregex-new-matches (procedure irregex-new-matches (*) *))
Trap