Commit Graph

164 Commits

Author SHA1 Message Date
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
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
Matthew Flatt
6ac33a62be set `read-accept-lang' to #t by default, plus related adjustments
including adding some uses of `with-module-read-parameterization'
 so that `read-accept-lang' is set right anyway; still, so many
 many places just set `read-accept-reader' to #t that making
 `read-accept-lang' #f by default looks like too big of an
 incompatibility
2010-10-08 19:01:33 -06: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
5dad68b384 Zap `DMdA-' from primitive procedures in DMdA.
Meaning the the procedure names are displayed without the "DMdA-"
prefix in the stepper and the REPL.
2010-10-08 15:25:44 +02:00
Mike Sperber
b4493fdab4 Add cons' and cons?' as synonyms for make-pair' and pair?' to DMdA.
Requested by Michael Hanus & Peter Thiemann.
2010-10-08 15:25:44 +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
9b1188c77a Re-instate Robby's hack to display test results off REPL errors.
... and generalize it so there's an action before (clearing the old
tests out) in addition to after (displaying the test results).

Also, do for DMdA as for HtDP.
2010-10-08 15:25:44 +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
b98b83b672 Make uncaught exceptions in teaching languages pop up test-engine display.
... so as to catch any test-case failures or signature violations that
may have occurred.
2010-10-08 10:25:37 +02:00
Eli Barzilay
2189957b6f Change the errortrace protocol for `initialize-test-coverage-point' and
`test-covered' to use just the expression -- looks like there's no
reason to use an additional key.

Also, change its uses to map each syntax to an mcons where its mcar is
used to track coverage.  This is done everywhere, since it turns out to
be much faster to insert a `set-mcar!' with a 3d mpair, rather than a
call to a thunk.

Note that it still uses mpairs as a hack.  It "works" in the same way
that this simplified example does:

  (define-syntax m
    (let ([b (mcons 0 0)])
      (lambda (stx)
        (with-syntax ([b b])
          #'(case-lambda [() (mcar b)]
                         [(x) (set-mcar! b x)])))))

I think that it's fragile, and likely to stop working at some point, but
I don't see anything better for now.
2010-10-04 17:24:22 -04:00
Mike Sperber
593f8588fe Implement lazy signature checking for ordinary pairs. 2010-09-22 11:03:01 +02:00
Mike Sperber
716c722bab LaTeX fix for documentation. 2010-09-18 15:09:11 +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
11f6ec1b98 Updated DMdA signature docs.
Added `any' and `unspecific', and some minor reorganization.
2010-09-17 10:00:54 +02:00
Mike Sperber
9e94a327b8 Add `any' signature to DMdA languages. 2010-09-16 18:19:32 +02:00
Mike Sperber
9d35548997 Unbreak `list-of'. 2010-09-09 13:17:22 +02:00
Mike Sperber
3f8b2e6ea2 Provide built-in `computer' record type for DMdA.
`chocolate-cookie' has been wildly unpopular, so we'll try this next semester.

Also, clean up the `provide' forms for the chocolate cookies.
2010-09-09 11:56:42 +02:00
Mike Sperber
8611cd8731 Zap `begin' from DMdA-beginner and DMdA-vanilla. 2010-09-09 11:32:37 +02:00
Mike Sperber
c47ad74b1b Move the prim-op-defns of the DMdA-vanilla docs to right place. 2010-09-09 11:28:59 +02:00
Mike Sperber
d874065e26 Zap let, letrec, let* from DMdA-beginner language. 2010-09-09 11:22:57 +02:00
Mike Sperber
050f0a141b Add `list-of' signature to DMdA languages. 2010-09-09 11:12:33 +02:00
Eli Barzilay
7dc4d2e5a6 Change a bunch of "~%" and "~n" in format strings to "\n". 2010-08-25 17:17:01 -04: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
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
30f9cd0dab Merge remote branch 'local-plt/master' 2010-06-08 14:22:51 +02:00
Mike Sperber
b0e6e6b55d Merge remote branch 'origin/master' 2010-06-07 17:26:34 +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
a0d82d07a6 Fix interaction between new DMdA contract representation and stepper.
- add proper hash procedures
- fix prining
2010-06-01 20:10:11 +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
8d39c15b17 Make contracts available in HtDP languages.
Known breakage: when blame is assigned to a procedure defined via
(define (f ...) ...), its source position isn't reported because its
lambda expression is generated.
2010-05-21 19:30:37 +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
799d356871 Merge deinprogramm/contract/contract-test-display into test-engine/test-display.scm. 2010-05-20 16:57:46 +02:00
Mike Sperber
3e0d3b84ec String constants for check-property error messages. 2010-05-20 16:15:15 +02:00
Mike Sperber
2f747dfa1f Cosmetic change to new-style require. 2010-05-20 16:12:50 +02:00
Mike Sperber
5f443141f1 String constants for the remaining untranslated test-engine messages 2010-05-20 16:05:15 +02:00
Mike Sperber
8590e8cadf Merge deinprogramm contract test-engine into the regular one.
This adds support for contracts.
2010-05-20 15:31:45 +02:00
Eli Barzilay
de0cc7771b A lot of "DrScheme" -> "DrRacket"s. 2010-05-17 01:27:03 -04:00
Sam Tobin-Hochstadt
2c315742d8 fix warning on `define-record-procedures-parametric' 2010-05-05 10:14:53 -04:00
Robby Findler
9b2987d7fb improved the suggest-a-language dialog that you get in the there-is-no-language-picked-yet language 2010-04-29 12:21:10 -05:00
Matthew Flatt
28b4043077 rename all files .ss -> .rkt 2010-04-27 16:50:15 -06: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
d64254f49f DMdA Contract bug fix: In yet another place, make sure that the
enforcer calls `contract-violation' in tail position.

svn: r18095
2010-02-16 07:51:02 +00:00
Mike Sperber
30e8c7d039 Zap obsolete comment.
svn: r18094
2010-02-16 07:39:22 +00:00
Mike Sperber
4ea713a87a Typo fix.
svn: r17617
2010-01-12 12:38:42 +00:00
Eli Barzilay
01536ba44e switch to "#lang setup/infotab"
svn: r17598
2010-01-11 02:24:24 +00:00
Mike Sperber
e63e96f07c Typo fix.
svn: r17132
2009-12-01 12:59:26 +00:00
Mike Sperber
65f3695afb DMdA doc fix.
svn: r17107
2009-11-30 13:47:41 +00:00
Mike Sperber
97a41443a9 Add string->symbol to DeinProgramm / DMdA advanced.
Also, exclude symbol-related stuff from everything below.

svn: r17082
2009-11-27 16:40:44 +00:00
Mike Sperber
0257ac515a Make the stepper ignore `check-property'.
svn: r17013
2009-11-23 20:44:47 +00:00
Mike Sperber
ffadf59303 Fix really stupid bug in `convert-explicit'.
svn: r16989
2009-11-23 11:21:30 +00:00
Mike Sperber
b68bb30d70 Handle sharing correctly in the DeinProgramm `write' handler.
svn: r16779
2009-11-15 10:47:27 +00:00
Mike Sperber
a17dc333f6 Only print sharing from "DMdA mit Zuweisungen" upwards.
svn: r16778
2009-11-15 10:18:50 +00:00
Mike Sperber
9d1c9672d9 Add `property' contract for QuickCheck properties to DeinProgramm languages
... and don't export the old property "combinator" to the language levels.

svn: r16770
2009-11-14 14:28:31 +00:00
Mike Sperber
3c68ac4a0c Add `contract' contract to DeinProgramm / DMdA languages.
While we're at it, improve source-location reporting for application
contracts.

svn: r16769
2009-11-14 14:17:06 +00:00
Mike Sperber
01058dfd26 Add expect-member-of' and expect-range' to DeinProgramm / DMdA languages.
svn: r16750
2009-11-13 18:02:10 +00:00
Mike Sperber
26ff29b12f Fix performance bug in QuickCheck.
This would make generators with `number' or `real' in a co-arbitrary
position essentially never terminate.

svn: r16571
2009-11-06 14:52:56 +00:00
Mike Sperber
22632b3963 Add hyperlink for "Eigenschaft".
svn: r16559
2009-11-05 14:58:21 +00:00
Mike Sperber
2a8e5d64be Make the DeinProgramm / DMdA one-of' / case' contracts use beginner-equal?.
svn: r16556
2009-11-05 10:10:17 +00:00
Mike Sperber
800a2302a8 Fix two buguettes in the DMdA language grammar.
svn: r16366
2009-10-19 14:49:47 +00:00
Mike Sperber
aa2e094311 Add check-member-of' and check-range' to the DeinProgramm/DMdA
languages.

svn: r16337
2009-10-16 11:53:04 +00:00
Mike Sperber
d92c77adf2 Typo fix.
svn: r16244
2009-10-05 09:01:38 +00:00
Mike Sperber
3ce1ce4c73 Don't let the stepper snoop inside `for-all'.
svn: r16076
2009-09-19 18:01:30 +00:00
Mike Sperber
65119301e6 Better error messages for `for-all'.
svn: r16075
2009-09-19 17:55:59 +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
c94c63ebe1 Commit forgotten part of rev 16038.
svn: r16044
2009-09-17 15:15:30 +00:00
Mike Sperber
368b491474 Don't display "trace" as part of the error message.
This never worked.

svn: r16043
2009-09-17 14:38:44 +00:00
Mike Sperber
3af715fe11 Better error message if argument to `check-property' is not a property.
svn: r16042
2009-09-17 14:32:30 +00:00
Mike Sperber
1e0a68516e Replace another exn? check by exn:fail?.
svn: r16040
2009-09-17 13:14:07 +00:00
Mike Sperber
e5df901306 Better output for procedures that failed property checks.
svn: r16039
2009-09-17 13:05:12 +00:00
Mike Sperber
f3676a152b Generate only printable strings for `string' contract.
svn: r16038
2009-09-17 12:50:54 +00:00
Mike Sperber
01758624fd Typo fix.
svn: r16036
2009-09-17 12:41:46 +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
34d365d3a8 Contracts for accumulating helper procedures.
... now that we have proper tail recursion for these procedures.

svn: r16034
2009-09-17 12:02:17 +00:00
Mike Sperber
c26b3b8c6c Make the Stepper behavior on and/or configurable:
In the HtDP languages, initial subexpressions that have evaluated to
#t / #f remain in the residual term, whereas in the DMdA languages,
they do not.

svn: r16018
2009-09-15 17:32:21 +00:00
Mike Sperber
e26af436bc Fix comment about location of deinprogramm image.ss's tests.
svn: r16003
2009-09-14 14:44:35 +00:00
Mike Sperber
650cd264b3 Brush up the (commented-out) documentation of `require' for the DMdA
languages.

svn: r16002
2009-09-14 14:42:52 +00:00
Mike Sperber
bdb70912da Don't export quote, symbol? from DMdA-assignments language.
svn: r16001
2009-09-14 14:26:20 +00:00
Mike Sperber
418460cff5 Add style file to render ka.scrbl.
svn: r16000
2009-09-14 14:17:57 +00:00
Mike Sperber
e6400281f1 Don't print #i prefix in Stepper for DMdA languages.
svn: r15999
2009-09-14 12:05:05 +00:00
Mike Sperber
b6ca1e1673 Zap a bunch more `define-contract' forms.
svn: r15971
2009-09-11 09:38:59 +00:00
Mike Sperber
4a1ee8bb44 Check that the operands of `one-of' don't yield contracts.
svn: r15936
2009-09-09 15:18:14 +00:00
Mike Sperber
332fdb8602 Export contract' from the DMdA languages, making define-contract' obsolete.
svn: r15934
2009-09-09 15:00:54 +00:00
Mike Sperber
38d9c6d8af In `make-property-contract', transfer arity from procedure to contract
wrapper.

svn: r15933
2009-09-09 14:43:26 +00:00
Mike Sperber
89ec442c04 Merge branches/mike/quickcheck:
Add QuickCheck-based property testing to the DeinProgramm/DMdA languages.

svn: r15901
2009-09-07 16:31:18 +00:00
Mike Sperber
a3c947806c Make DMdA language contracts do right wrt. immediate tail recursion.
svn: r15892
2009-09-05 19:38:46 +00:00
Mike Sperber
bb3818ee07 Zap leftover file.
svn: r15755
2009-08-17 09:33:50 +00:00
Matthew Flatt
345c17e85c major Scribble revision (v4.2.1.2)
svn: r15569
2009-07-25 20:25:33 +00:00
Eli Barzilay
a70bf64fd9 Newlines at EOFs
svn: r15380
2009-07-04 02:28:31 +00:00