Commit Graph

37 Commits

Author SHA1 Message Date
Mike Sperber
35f141b7bc Add some missing `delay's in DeinProgramm signatures.
Spotted by: Stephen Chang
2012-06-17 09:21:58 +02:00
Eli Barzilay
17090fca4f A bunch of fprintf' -> eprintf' conversions (and a few related things). 2012-05-06 12:06:00 -04:00
Mike Sperber
c080940d02 Fix infinite recursive signatures.
Such as this, submitted by Torsten Grust:

(define-record-procedures-parametric stream_ stream-of
  make-stream
  stream?
  (stream-head stream-tail))

(define stream
  (lambda (t)
    (signature (stream-of t (-> (stream t))))))

(: from (number -> (stream number)))
(define from
  (lambda (n)
    (make-stream n (lambda () (from (+ n 1))))))

(: foo (stream number))
(define foo (from 1))

The problem was that the arbitaries got evaluated too eagerly.
2011-12-18 14:18:42 +01:00
Mike Sperber
36d3745d4c Unbreak "Enable signature checking".
Previously, if you disabled it once, it would stay disabled.
2011-10-21 20:43:50 +02:00
Robby Findler
7acc5b7852 adjust HtDP teaching languages' first and rest so that they accept circular lists.
This commit fix an unintentional change introduced by this commit:
  c7d67f9bab
(and it also adds in test cases for what that commit appears to have
been doing)

Assuming everyone agrees that the behavior for first rest from back
in 2010 is the behavior we still want (and the lack of release notes
on the subject makes me believe that we do), then:

Please include in 5.2.
2011-10-21 08:09:34 -05:00
Matthew Flatt
d3c56c9f13 generalized `begin-for-syntax' 2011-09-08 14:06:00 -06:00
Mike Sperber
d582dd55dd Fix bug in vector signatures. 2011-05-01 11:18:10 +02:00
Robby Findler
2ddf90f3fc adjusted deinprogramm preferences to use the framework preference system so that drracket still starts up when there is a locked preference file under windows 2011-01-20 14:08:32 -06:00
Mike Sperber
69963a1f2c Fix bug in struct-wrap signature checking.
Only check the fields if we know the struct type is right.
2011-01-06 13:53:51 +01:00
Mike Sperber
fa854f62fc Add vector signatures, and `vector-of' to the HtDP signature syntax. 2010-12-19 11:20:51 +01:00
Matthew Flatt
489c5de9e8 another module-body duplication 2010-12-15 12:28:09 -07:00
Mike Sperber
3f74e662ed Add tool.rkt needed for "Disable Signature Check".
I'd screwed up previously.
2010-12-15 08:17:57 +01:00
Matthew Flatt
de271aa698 temporary workaround for missing(?) tool module 2010-12-14 14:53:47 -07:00
Casey Klein
8368dcaca1 Fixes apparent copy-paste error 2010-12-14 12:26:11 -06:00
Mike Sperber
6bee489091 Add menu item to disable signature checking. 2010-12-14 17:29:30 +01:00
Mike Sperber
dbd1cfaf10 Don't use teach-equal?' for one-of' signature.
I did this under the mistaken assumption `equal?' would not work for
cycles, I think.
2010-11-26 11:10:29 +01:00
Vincent St-Amour
c7d67f9bab *SL: first and rest should not report errors in terms of car and cdr. 2010-11-09 21:16:17 -05:00
Mike Sperber
17c4cb9254 Two more (hopefully last) renamings "Vertrag" -> "Signatur"
(i.e. "contract" -> "signature" in German)
2010-10-18 13:30:34 +02:00
Mike Sperber
39541c51b5 Add `tech-equal?'.
This refuses to work on inexact numbers and procedures.  Use it in
`check-expect' & friends.
2010-10-15 15:26:24 +02:00
Mike Sperber
f3191ff4d6 Define `any' signature differently.
... to actually enable the subtyping check.  Also, make named
signatures work for signature variables.
2010-10-13 09:41:10 +02:00
Mike Sperber
eebe5b2e2b 2nd attempt at generators for records/structs.
This time, with feeling.
2010-10-11 13:34:16 +02:00
Mike Sperber
f35477b82b Make the weak table for the signature-checked pairs truly weak.
... by wrapping ephemerons around the values.
2010-10-09 17:51:30 +02:00
Mike Sperber
219c91d8e7 Check parametric struct/record signatures eagerly. 2010-10-08 17:01:47 +02:00
Mike Sperber
3e205b6193 Better error message for certain bogus signatures. 2010-10-08 13:55:42 +02:00
Mike Sperber
38cf78e213 Allow specifying arbitary expressions in a signature declaration.
Fixes PR 11282
2010-10-08 13:12:18 +02:00
Mike Sperber
1e44fc8e43 More "contract" -> "signature" identifier renaming. 2010-10-08 11:51:33 +02:00
Mike Sperber
91590040dc Ignore duplicate signature declarations. 2010-10-08 11:50:17 +02:00
Mike Sperber
87da2f35b9 Provide English and German versions of deinprogramm/signature/signature. 2010-10-08 11:19:38 +02:00
Mike Sperber
593f8588fe Implement lazy signature checking for ordinary pairs. 2010-09-22 11:03:01 +02:00
Mike Sperber
fcdfefea10 "Vertrag" -> "Signatur" in a few places. 2010-09-17 18:02:34 +02:00
Mike Sperber
333d82e6df Fix some error messages for invalid : signature declarations. 2010-09-17 18:02:33 +02:00
Mike Sperber
9d35548997 Unbreak `list-of'. 2010-09-09 13:17:22 +02:00
Mike Sperber
050f0a141b Add `list-of' signature to DMdA languages. 2010-09-09 11:12:33 +02:00
Mike Sperber
00061e6bb9 Make `procedure-to-blame' applicable.
This unbreaks some applications of procedures with signature
violations.
2010-08-25 16:00:47 +02:00
Mike Sperber
a4e7ef3594 Push mixed' contracts down into lazy struct' contracts. 2010-08-23 14:40:21 +02:00
Mike Sperber
225a42b832 Pass back the procedure on certain signature violations.
Closes PR 11117.
2010-08-23 10:08:40 +02:00
Mike Sperber
faf8ec358f Rename DMdA/HtDP "contract" to "signature". 2010-06-28 14:58:16 +02:00