Commit Graph

345 Commits

Author SHA1 Message Date
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
Mike Sperber
99e66e0dea Fix cycle detection in `tequal?'.
... and thus in `check-within', by using an eq? hash table.  Also,
while we're at it, add cycle detection to `tech-equal?'.

Fixes PR #11423.
2010-11-17 17:15:31 +01:00
Mike Sperber
69b858a7f5 Unbreak printing in DMdA.
Fix the the name by which the HtDP and DMdA languages refer to the
signatures module, making sure everybody sees the same properties.
2010-11-10 07:32:52 +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
Robby Findler
22ce241d4d no #%plain-app because test is not a function... 2010-10-22 06:45:56 -05:00
Robby Findler
c34bd6c28d fix the metadata parsing to be more robust so drracket does not crash when opening a corrupt htdp teaching language file
closes PR 11332
2010-10-22 06:45:56 -05:00
Robby Findler
ae37e186e7 use #%plain-app to avoid possible problems with code injected into the teaching languages 2010-10-19 07:07:08 -05:00
Matthew Flatt
9f959f247e fix quotability annotation on HtDP-language structs
Merge to 5.0.2
2010-10-17 19:32:17 -07: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
Robby Findler
8032705cf9 The call to display-results depends on the value of the current-namespace
parameter. Specifically, it is expected to be a namespace that has the GUI
bindings available. Unfortunately, during the dynamic extent of the
uncaught-exception-handler when a syntax error is raised, this may not be
the case because you get a phase 1 namespace, not a phase 0 one.

So, move the call to display-results to the code that runs the student language
programs and out of the uncaught exception handler.
2010-10-13 15:55:16 -05:00
Robby Findler
2de8b978ba move read-accept-lang parameter setting to the right place 2010-10-13 15:55:16 -05:00
Matthias Felleisen
852aaed2ea removed signatures for now 2010-10-13 12:49:26 -04:00
Matthias Felleisen
df62ca47e9 added 'function', Closes PR 11283 2010-10-13 10:31:00 -04: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
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
4ec7cb1d88 Unbreak coverage for *SL `define-struct'. 2010-10-08 19:56:51 +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
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
7572b24870 Unbreak stepper.
(It was broken by fed1e3dc3e2d7268c0297a0ce699d3deb2ba75c5.)
2010-10-08 13:41:44 +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
Mike Sperber
6997b08fa2 Remove front-end/interaction hack for test-engine.
It's not needed anymore after Robby's fix to namespace handling in the
teaching languages.
2010-10-08 09:28:07 +02:00
Robby Findler
fed1e3dc3e adjusted the way the teaching languages work so that signature
violations in the REPL are tracked.
2010-10-07 14:27:56 -05: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
Matthias Felleisen
725da3b2ed fix string-ith problem, Closes PR 11261 2010-09-28 18:07:10 -04:00
Robby Findler
feddcdaef9 closes PR 11241 2010-09-23 06:25:21 -05:00
Mike Sperber
65bd667be2 Make parametric signatures work in BSL. 2010-09-22 11:35:00 +02:00
Mike Sperber
7304c061e3 Add `cons-of' signature constructor to HtDP languages. 2010-09-22 11:31:24 +02:00
Mike Sperber
593f8588fe Implement lazy signature checking for ordinary pairs. 2010-09-22 11:03:01 +02:00
Mike Sperber
98c9ad4d22 Add `Any' contract to HtDP languages. 2010-09-21 16:23:58 +02:00
Mike Sperber
333d82e6df Fix some error messages for invalid : signature declarations. 2010-09-17 18:02:33 +02:00
Mike Sperber
8bc95ace01 Unbreak signatures for BSL. 2010-09-17 18:02:33 +02:00
Robby Findler
4bbb1f4cd9 Added a second column for the 2htdp teachpacks to the choose-a-teachpack dialog
closes PR 11170
2010-09-07 17:34:08 -05:00
Robby Findler
5e04a5c6d9 When opening a new window where the language is one of the htdp languages (via the
language dialog, not the #lang htdp/* variants), teachpacks are put into the
initial REPL (instead of just having the language primitives).

closes PR 11160
2010-09-04 19:37:02 -05:00
Matthew Flatt
036ed57000 fix *SL `define-struct' expand-time info: omit non-existent struct type 2010-08-30 16:11:08 -06:00
Robby Findler
b1550d6c9b changed the expansion of the ... macro in the teaching languages so that
it cooperates with the test coverage annotations in drracket.
closes PR 11138
2010-08-30 09:23:34 -05:00
Robby Findler
7020cb6e4c adjusted the language dialog so that the output-style and fraction-style radio boxes aren't adjacent 2010-08-29 08:20:53 -05:00
Eli Barzilay
8e0f8dd39c More "~n" -> "\n" changes 2010-08-26 12:11:00 -04:00
Jay McCarthy
45a8854398 Adding immutable hash operations to ASL 2010-08-25 10:36:36 -06:00
Jay McCarthy
368d711ae2 Optional arguments to hash table constructors in ASL 2010-08-25 10:36:34 -06:00
Matthew Flatt
0955ed6e8b fix custom printer attached to *SL structure types 2010-08-24 06:23:22 -06:00
Robby Findler
611e04abda adjusted the expansion so that the references to "foo" in this ISL program:
(define-struct foo (x))

(: make-foo (Number -> foo))
(: foo-x (foo -> Number))

(define x (make-foo 5))
(foo-x x)

don't get colored the "not yet executed" color.
2010-08-23 10:23:34 -05:00
Matthew Flatt
a7bc964c69 fix problem with binding of *SL struct-type name and application 2010-08-19 07:38:25 -06:00
Robby Findler
ee3a837ee2 fixes the other aspect of PR 11062 2010-07-31 09:15:11 -05:00
Matthew Flatt
0e8af6bc5d fix acc/mut error msgs from `define-struct' in teaching languages
Merge to 5.0.1
 Closes PR 11062
2010-07-30 11:16:32 -06:00
Jay McCarthy
407dcee206 Adding match to ASL 2010-07-22 15:39:53 -06:00
Jay McCarthy
eeada45868 Fixing error string 2010-07-22 15:12:07 -06:00
Jay McCarthy
9eb053d4db Adding define-datatype to ASL 2010-07-22 11:36:04 -06:00
Jay McCarthy
c9ccf6d48b Adding all hash prims per SK 2010-07-16 09:43:03 -06:00
Jay McCarthy
d17deb5fef Adding hash table functions to ASL 2010-07-15 15:45:54 -06:00
Mike Sperber
5cd0a37d5e Re-export struct:posn from lang/posn.
I hadn't checked someone is using it.
2010-06-28 15:00:32 +02:00
Mike Sperber
faf8ec358f Rename DMdA/HtDP "contract" to "signature". 2010-06-28 14:58:16 +02:00
Mike Sperber
3319fa41d0 Add properties to the HtDP teaching languages. 2010-06-09 14:16:34 +02:00
Mike Sperber
c7a7eb0a58 Export Symbol contract into HtDP teaching languages. 2010-06-09 13:57:17 +02:00
Mike Sperber
f29b6483f9 Export `posn' contract to the HtDP teaching languages. 2010-06-09 13:46:51 +02:00
Mike Sperber
744b45f470 Rename HtDP list' contract to list-of'. 2010-06-09 12:07:47 +02:00
Mike Sperber
5b4d25295d Make `define-struct' define contracts.
In particular, in

(define-struct foo (a b))

... foo is a contract, and a contract combinator `foo-of' is defined.
2010-06-09 11:07:22 +02:00
Mike Sperber
da88f22b0e Change do-define-struct' to use make-struct-type' explicitly.
This is to enable the contracts work that is to come.
2010-06-08 14:20:07 +02:00
Mike Sperber
97a04e9f9d Fix error message to match the test suite's check for it. 2010-06-08 11:22:35 +02:00
Mike Sperber
dee21e9e73 Add what's needed, delete what's in the way.
Stuff I had forgotten earlier.
2010-06-08 09:26:07 +02:00
Mike Sperber
b0e6e6b55d Merge remote branch 'origin/master' 2010-06-07 17:26:34 +02:00
Robby Findler
c96bbe640d makes image=? work on 2htdp/image images. 2010-05-26 20:55:24 -05:00
Mike Sperber
f899fdf15d Report the correct position for a blamed procedure.
... if the `lambda' of that procedure was the result of expanding a `define':
Attach the `define''s source location to the `lambda' expression.
2010-05-21 19:39:27 +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
8590e8cadf Merge deinprogramm contract test-engine into the regular one.
This adds support for contracts.
2010-05-20 15:31:45 +02:00
Matthew Flatt
9fc5cbfa2c Fix syntax error in ASL
Closes PR 10914
 Merge to v5.0
2010-05-19 15:11:41 -06:00
Eli Barzilay
de0cc7771b A lot of "DrScheme" -> "DrRacket"s. 2010-05-17 01:27:03 -04:00
Eli Barzilay
7f6efdc8be A lot of "MrEd" -> "GRacket"s. 2010-05-16 23:46:05 -04:00
Matthew Flatt
b26bf5e225 fix DrRacket printing styles and distinguish 'print' vs. 'write' 2010-05-08 10:18:50 -06:00
Matthew Flatt
eb15dceb34 rackety misc docs 2010-05-07 09:13:51 -06:00
Matthew Flatt
043f97df97 fix more test files 2010-05-01 07:23:05 -06:00
Robby Findler
f46ad89200 fixed a preference setting 2010-04-29 11:06:27 -05:00
Matthew Flatt
32de6647dc fix HtDP language printing 2010-04-28 08:55:16 -06:00
Matthew Flatt
28b4043077 rename all files .ss -> .rkt 2010-04-27 16:50:15 -06:00
Matthew Flatt
616080c7c4 change 'define-struct' to bind the type name as a constructor, add an #:extra-constructor-name option, etc. 2010-04-25 12:10:36 -06:00
Matthias Felleisen
6bc3484ae0 added member? as an alias for member to BSL 2010-04-20 22:48:41 -04:00
Matthew Flatt
0550cc3680 htdp language readers introduce explicit #%module-begin (for consistency with other #lang-based languages, as requested by JPR); merge to4.2.5
svn: r18605
2010-03-23 13:34:00 +00:00
Robby Findler
50a6a585b1 fixed some repl-printing related bugs that would make 'write' sensitive to pretty-print's parameters in drscheme's repl
svn: r18321
2010-02-24 17:35:09 +00:00
Robby Findler
6f4c164793 improved the implementation of error in the teaching languages, added test casees
svn: r17923
2010-02-01 15:39:33 +00:00
Matthew Flatt
1086cefc7a add empty to the list of things that are not structs for HtDP langs
svn: r17563
2010-01-08 13:38:48 +00:00
Matthew Flatt
1e2cb09f39 fix HtDP advanced docs for random
svn: r17470
2010-01-03 18:04:44 +00:00
Matthias Felleisen
560234138c error docs fixed
svn: r17455
2009-12-31 19:08:19 +00:00
Matthias Felleisen
7f2bce0130 added with-in/out from/to string for Bloch
svn: r17453
2009-12-31 14:50:47 +00:00
Matthias Felleisen
5296a0a877 added gensym, current-millisecond, sleep, assoc, with-i/o-from-to
svn: r17444
2009-12-30 22:45:12 +00:00
Matthias Felleisen
e9be5c92fe added (random) to ASL
svn: r17438
2009-12-30 15:26:28 +00:00
Robby Findler
e821a0c461 separated 2htdp/universe from htdp/image, allowing either htdp/image or 2htdp/image to be used
svn: r17430
2009-12-29 23:59:39 +00:00
Matthias Felleisen
bd0f694803 svn: r17109 2009-11-30 16:16:50 +00:00
Matthias Felleisen
2bb3403f88 modified error to take arbitrary number of arguments
svn: r17108
2009-11-30 15:31:38 +00:00
Eli Barzilay
09c8baf7e7 Re-enable context searches for the htdp languages, with results that
come from the language or the teachpacks.

svn: r16945
2009-11-21 22:05:28 +00:00
Matthias Felleisen
2153c258db fixed to docs of eq?, eqv?, memq, and memv
svn: r16742
2009-11-13 03:30:46 +00:00
Matthias Felleisen
26bf0a7297 added list* to advanced
svn: r16492
2009-10-31 16:13:57 +00:00
Matthew Flatt
f3de56f742 fix 'append' in ISL+ to disallow a non-list last argument (merge to 4.2.2)
svn: r16166
2009-09-29 15:28:44 +00:00