Commit Graph

23 Commits

Author SHA1 Message Date
Mike Sperber
7fac9193fa In the DMdA languages, create arbitrary for record signature without fields.
This way, you don't have to use define-record-procedures-parametric
for records like this:

(define-record-procedures empty
  make-empty empty?
  ())
2011-12-18 14:18:42 +01: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
John Clements
b1d791a02e renamed stepper-define-struct-hint to stepper-black-box-expr 2011-06-29 10:03:44 -07:00
Mike Sperber
18662741fb Fix signature-checking bug with DMdA's `define-record-procedures'.
Define the predicate before the constructor, as the predicate may be
used in checking the signature of the constructor.
2011-01-22 16:23:23 +01: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
f706b0d7a7 Revert "Create arbitraties off parametric struct/record signature constructors."
This reverts commit 7df9a22a67.

It was broken in several ways.  New attempt later.
2010-10-09 17:48:58 +02:00
Mike Sperber
7df9a22a67 Create arbitraties off parametric struct/record signature constructors.
This enables QuickCheck value generations for structs/records.
2010-10-08 17:21:07 +02:00
Mike Sperber
219c91d8e7 Check parametric struct/record signatures eagerly. 2010-10-08 17:01:47 +02:00
Mike Sperber
29a0511439 Give the type-name signature off `define-record-procedures' a name. 2010-10-08 15:25:44 +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
5f25c239f2 Merge remote branch 'local-plt/master'
Conflicts:
	collects/deinprogramm/define-record-procedures.scm
	collects/test-engine/scheme-tests.rkt
	collects/test-engine/test-display.scm
2010-07-13 17:13:30 +02:00
Mike Sperber
faf8ec358f Rename DMdA/HtDP "contract" to "signature". 2010-06-28 14:58:16 +02:00
Mike Sperber
2c964b91f0 Provide prop:print-converter propery with `define-record-procedures'.
This fixes quasiquote and constructor-style printing to not fall for
the extra lazy-contract-checking field.
2010-06-09 14:37:36 +02:00
Mike Sperber
fc879f1894 Make use of stepper-define-struct-hint' in define-record-procedures'. 2010-06-09 14:33:21 +02:00
Mike Sperber
93d7ec9446 Don't recheck DMdA lazy contracts we've already checked.
We avoided re-applying contracts that haven't been checked, but not
those that have.  Do so now.
2010-06-07 17:06:07 +02:00
Mike Sperber
5f8924b1d2 Fix various interaction breakage between the new DMdA records and the stepper.
Namely, attach the `stepper-ignore-completely' property to each
individual definition, rather than just to the block of definitions as a whole.
2010-06-01 20:10:11 +02:00
Mike Sperber
b4f010c6d5 Fix breakage due to lazy contracts.
- fix check for lazy-wrap property
- supply hash procedures for records defined with `define-record-type'
  (needed by the stepper)
2010-05-20 19:55:12 +02:00
Mike Sperber
9d20fd713d Lazy contract checking for DMdA's `define-record-procedures-parametric'.
svn: r18806
2010-04-13 07:57:57 +00:00
Mike Sperber
4c70a14d7e Unbreak the stepper wrt. the new `define-record-procedures' syntax.
svn: r16074
2009-09-19 17:46:19 +00:00
Mike Sperber
698199d68c Massage syntax of `define-record-procedures-parametric'.
Now 

(define-record-procedures-parametric pare pare-of
  make-pare pare?
  (pare-one pare-two))

instead of the old

(define-record-procedures-parametric (pare a b)
  make-pare pare?
  (pare-one pare-two))

svn: r16035
2009-09-17 12:33:36 +00:00
Mike Sperber
b6ca1e1673 Zap a bunch more `define-contract' forms.
svn: r15971
2009-09-11 09:38:59 +00:00
Mike Sperber
018521cbc3 Merge from mike/dmda branch.
This adds the language levels, teachpacks, and documentation for the
textbook "Die Macht der Abstraktion".

svn: r14019
2009-03-09 07:51:09 +00:00