Commit Graph

270 Commits

Author SHA1 Message Date
Stevie Strickland
e453483b09 Okay, after some deep thought, I think I finally have a mental model for
exactly what unit/c is doing here that's appropriate for fixing this
section of code.  ASCII art diagrams for the win!

This also shows how a unit/c contract addition differs from the use
of unit/new-import-export to switch sigs, which means that I'll likely
not be able to unify as much of the guts of the two as I'd like.  Schade.

svn: r13605
2009-02-15 09:59:51 +00:00
Stevie Strickland
cbcad0528c There is now a new form, define-unit/contract, that basically mixes
define-unit with the application of a unit contract.  So you can think
of it as a define/contract for units that keeps the static info needed
for link inference.

svn: r13584
2009-02-14 21:32:02 +00:00
Stevie Strickland
ebe06e9572 Allowing _all_ types of tagged-sig-specs in unit/c, though whether that
makes sense or not, we'll see.  Easy enough to set up, and it also sets
up the plan for a new form I'd like to add, which is why I've factored out
the syntax classes into their own file.

svn: r13570
2009-02-14 07:40:50 +00:00
Stevie Strickland
387c8b210f * Fix unit/c so that less unnecessary code is generated.
* Fix contracts for signatures and units so that references to
   other signature members work appropriately.
 * Add text about signature and unit contracts to the Guide.

svn: r13562
2009-02-13 22:50:49 +00:00
Stevie Strickland
fbb5de4fa7 Adding the initial cut at unit/c.
svn: r13524
2009-02-11 22:46:48 +00:00
Stevie Strickland
e1d5ced45e Only apply a single contract wrapping to a value contracted through unit
exporting/importing.  Also add some more unit contract tests.

svn: r13203
2009-01-18 10:38:52 +00:00
Stevie Strickland
0fcf609e2b Syncing again
svn: r13178
2009-01-16 19:11:18 +00:00
Stevie Strickland
cc9925dd6b Add unit contracts from branches/sstrickl/unit-contracts.
svn: r13177
2009-01-16 19:03:11 +00:00
Stevie Strickland
dbe366c6a0 Add error checking for contracted form, also added documentation in reference
svn: r13135
2009-01-15 00:42:49 +00:00
Stevie Strickland
c7ee5b600c Change this more to how it should be.
svn: r13124
2009-01-14 21:35:07 +00:00
Stevie Strickland
6d966c80af Syncing
svn: r12982
2009-01-03 03:09:06 +00:00
Stevie Strickland
a80ac8d72f Syncing up.
svn: r12981
2009-01-03 02:51:36 +00:00
Matthew Flatt
1c38bd2d3f fix unit signature 'open' by adjusting 'rename', 'only', and 'execpt'
svn: r12964
2009-01-01 21:15:56 +00:00
Stevie Strickland
8bc883d1cb Last changes, everything works up to here.
svn: r12765
2008-12-10 18:51:40 +00:00
Stevie Strickland
56854a84bd I'd like a better way of handling export contracts (some of the work that
should be doable at compile time is being done at run time), but at least
this works for now and gives us a chance to play around with it.

svn: r12763
2008-12-10 17:19:39 +00:00
Stevie Strickland
a9be78545d Add contracts to unit imports and values imported via
define-values/invoke-unit.  We still need contracts on unit exports,
and we might want to do the stuff here in a cleaner fashion (particularly
for define-values/invoke-unit).

svn: r12759
2008-12-09 22:14:11 +00:00
Stevie Strickland
52b76b8dfa Removing the work that's now on unit-contracts.
svn: r12744
2008-12-08 17:09:33 +00:00
Stevie Strickland
bf5dddbd13 Adding current unit contract work over here.
svn: r12743
2008-12-08 17:06:53 +00:00
Stevie Strickland
beb5f19530 Now to move the contract info appropriately into sigs from signatures.
svn: r12712
2008-12-05 17:55:47 +00:00
Stevie Strickland
1b4d2cb7bf Start on adding contracts to units. Here we're just adding contract(ed) forms,
but they're not (yet) used further in.

svn: r12711
2008-12-05 17:47:37 +00:00
Stevie Strickland
6f83ed1a80 Sync that beautiful trunk footage
svn: r12593
2008-11-25 21:18:04 +00:00
Matthew Flatt
a0f91d905e revised internal-definitions context and a basic 'define-package' form
svn: r12579
2008-11-24 19:52:41 +00:00
Stevie Strickland
eca59f6b1d Missed a file.
svn: r12452
2008-11-14 16:49:10 +00:00
Matthew Flatt
209b252f2c fix shared on top-level 'list' binding
svn: r12387
2008-11-11 17:53:12 +00:00
Matthew Flatt
ad75c8aa58 fix problems in lex-rename simplification; other tiny improvements and doc repairs
svn: r12380
2008-11-10 22:50:54 +00:00
Matthew Flatt
95bedb17fb change contracts to reflect context via #%variable-reference instead of syntax objects; add id-less #%variable-reference form; drop link to unneeded CPort objects in delayed thunks; streamline some modules that tend to show up in deep phases
svn: r12231
2008-11-04 14:24:12 +00:00
Matthew Flatt
bb7d3d1a28 fix 'local-expand' checking of stop list to disallow symbols; extend 'continuation-marks' to work on threads; fix HtDP language module-level stop list
svn: r12101
2008-10-23 13:38:03 +00:00
Matthew Flatt
7a55275a26 unit bug fixes related to new scoping of signature elements; change scribble/manual to compute ids typeset as variables at compile time, in preparation for moving from a parameter to syntax bindings; fix docs typos; extend decompiler's support for unmarshaling syntax objects
svn: r12046
2008-10-15 22:23:56 +00:00
Matthew Flatt
8b595ed120 make-syntax-delta-introducer and adjusted binding in scheme/unit forms
svn: r12032
2008-10-14 13:27:43 +00:00
Robby Findler
06a4d0df4a got rid of define-struct/prop since scheme/base has a define-struct that does all that (and more) now
svn: r11727
2008-09-13 16:29:01 +00:00
Danny Yoo
b44494abe5 Disabling debug printf statement.
svn: r11538
2008-09-04 19:35:51 +00:00
Eli Barzilay
a48366ce12 move cm-ctime to compiler/private, move away compiler/cm and compiler/cm-accomplice stubs
svn: r11312
2008-08-19 00:13:43 +00:00
Eli Barzilay
91fb6ffce0 move sandbox-coverage to scheme/private
svn: r10690
2008-07-09 07:20:51 +00:00
Eli Barzilay
7d50e61c7f * Newlines at EOFs
* Another big chunk of v4-require-isms
* Allow `#lang framework/keybinding-lang' for keybinding files
* Move hierlist sources into "mrlib/hierlist", leave stub behind

svn: r10689
2008-07-09 07:18:06 +00:00
Matthew Flatt
44c5a75739 fix some phase problems in program-processing programs
svn: r10503
2008-06-29 15:11:20 +00:00
Matthew Flatt
44a8c8b6b1 fix minor 'unit' phase problems
svn: r9964
2008-05-26 19:59:11 +00:00
Matthew Flatt
d1628d6238 fix some phase issues in 'match' implementation
svn: r9963
2008-05-26 19:51:06 +00:00
Matthew Flatt
021d4d7527 new hash function names and ops (3.99.0.23)
svn: r9209
2008-04-08 21:42:38 +00:00
Sam Tobin-Hochstadt
ae4acf1d51 Remove old match implementation.
Fix typed-scheme to work w/ new match.
Factor out lots of common code.
Implement (mcons ..) patterns

svn: r9086
2008-03-25 18:26:39 +00:00
Sam Tobin-Hochstadt
afa5e930fe remove debugging code
svn: r9029
2008-03-20 13:29:50 +00:00
Matthew Flatt
a8ae46ba34 workaround limitation in syntax system related to nested marks
svn: r8969
2008-03-14 00:37:19 +00:00
Matthew Flatt
293ba025ba prefab structure types (3.99.0.18)
svn: r8967
2008-03-13 20:59:22 +00:00
Sam Tobin-Hochstadt
6326734300 Fix handling of quote inside unquote-splicing in quasipattern.
svn: r8959
2008-03-12 14:05:02 +00:00
Eli Barzilay
b76390a452 revise the way setup-plt crawls over the collection trees
svn: r8860
2008-03-03 22:04:28 +00:00
Eli Barzilay
bb34f747b6 make all files terminate with a newline
svn: r8786
2008-02-24 21:27:36 +00:00
Eli Barzilay
b1a08edd5a use new require specs in many places
svn: r8774
2008-02-23 09:42:03 +00:00
Sam Tobin-Hochstadt
79bece6c13 Use syntax/loc for the definitions of the plt-match forms.
svn: r8725
2008-02-19 15:25:24 +00:00
Eli Barzilay
699c40643d * Changed setup-plt to compile collections if they have an "info.ss"
file.  (That is, it does not require the file to have a `name'
  entry.)

* The name shown when setup works is the directory name, followed by
  the `name' field from the info file when specified.

* This means that many `name's are no longer needed, so I'm removing
  them.  To see if you need a `name' entry, consider that the name
  will be shown like this:
    ... foo (<your name here>)
  This means that if the name is the same as the directory name, then
  there is no point in having it.  I also removed cases where the name
  differed only in its capitalization for collections where the case
  is obvious.

* Also, for subcollections, the name should clarify the name of the
  subcollection in context.  For example "Acknowledgments" explains
  what scribbling/acks is, but there's no need to add the context name
  as in "Scribblings: Acknowledgments".

* There may also be a point in keeping names for other uses.  One such
  example was in games, where the name field was used in the PLT Games
  application.  (This was changed to default on the directory name, so
  it is no longer needed in most games.)  Another example is in planet
  packages.

svn: r8629
2008-02-12 10:33:01 +00:00
Sam Tobin-Hochstadt
5d17cf0417 Byte strings are legal literals in match constants.
svn: r8543
2008-02-05 17:48:10 +00:00
Eli Barzilay
3c72e71e24 switched info.ss files to #lang
svn: r8532
2008-02-04 23:00:35 +00:00
Matthew Flatt
b2dbe63ed1 small doc fixes, plus change to syntax pattern matching to allow null as a dotted match after ellipses
svn: r8384
2008-01-23 01:35:26 +00:00
Sam Tobin-Hochstadt
f951cac011 Use let-bound identifiers properly for handle-end-ddk-list.
svn: r8372
2008-01-20 14:36:32 +00:00
Sam Tobin-Hochstadt
f2c9c59b06 Start add match-...-nesting parameter.
svn: r8371
2008-01-20 14:35:58 +00:00
Sam Tobin-Hochstadt
3f93fd0f25 Use an extra let binding to make Typed Scheme happy.
svn: r8366
2008-01-18 22:44:54 +00:00
Robby Findler
3cf6ed4673 mostly finished the contract library changes
svn: r8195
2008-01-03 18:10:43 +00:00
Robby Findler
90de53d2b2 finished ->d
svn: r8166
2007-12-30 23:36:58 +00:00
Robby Findler
342eb86c10 finished the new ->*
svn: r8086
2007-12-20 20:35:58 +00:00
Matthew Flatt
f70ea2d03a shared
svn: r8069
2007-12-19 21:32:07 +00:00
Robby Findler
9a0498b44d moved class, contracts, serialize, and traits into scheme/ and changed the class and contract interface so that contracts no longer depend on the class system (instead its the other way around)
svn: r8017
2007-12-15 18:46:55 +00:00
Matthew Flatt
a58893f4ba fix bug in deserializer related to order of shared values
svn: r7978
2007-12-12 21:50:31 +00:00
Robby Findler
a295a42c15 improved contract library so that structs without mutators work and it now passes the test suite
svn: r7879
2007-11-30 22:50:01 +00:00
Sam Tobin-Hochstadt
b997f8b0f7 Use symbolic comparison for => in match, to handle new bindings from `cond'.
svn: r7864
2007-11-29 23:02:23 +00:00
Robby Findler
47a4b69e5d some progress on the contract test suite
svn: r7850
2007-11-28 04:38:23 +00:00
Matthew Flatt
5f312dcbde doc fixes
svn: r7832
2007-11-25 19:48:41 +00:00
Matthew Flatt
44478fa8e0 match docs
svn: r7817
2007-11-22 18:51:26 +00:00
Matthew Flatt
6056159ad7 class and mzc -k fixes
svn: r7724
2007-11-14 16:24:48 +00:00
Matthew Flatt
39cedb62ed v3.99.0.2
svn: r7706
2007-11-13 12:40:00 +00:00
Robby Findler
359196ae82 improved contract libraries handling of #%app for provide/contract'd variables
svn: r7590
2007-10-29 21:07:43 +00:00
Robby Findler
3724e47d0c possible fix to PR 9204
svn: r7587
2007-10-29 02:28:30 +00:00
Robby Findler
018bc0e8f6 removed extraneous requires
svn: r7548
2007-10-21 22:57:12 +00:00
Robby Findler
176a888bb4 changed the case-> combinator back so that it does not use a symbolic comparison to find -> and friends
svn: r7460
2007-10-09 12:57:18 +00:00
Matthew Flatt
4ebccec087 fix problem with lifting contract applications by delaying expansion to an expression context
svn: r7434
2007-10-05 19:57:05 +00:00
Robby Findler
d9cb743afc removed an optimization that obscures the names in contracted functions
svn: r7379
2007-09-18 15:48:28 +00:00
Robby Findler
ac52b9f2ba avoid lifting more than once
svn: r7364
2007-09-17 16:33:40 +00:00
Eli Barzilay
f7e4690841 set svn:eol-style
svn: r7358
2007-09-17 05:16:55 +00:00
Robby Findler
bd93217061 refactored the contract system so that contracts do not depend on the class system, and now the class contracts are exported from class.ss
svn: r7357
2007-09-17 02:27:05 +00:00
Robby Findler
b7c441833e tried to improve size of generated code for structs
svn: r7348
2007-09-15 19:57:28 +00:00
Robby Findler
33311ab211 few minor improvements to the code generated by the contract library
svn: r7339
2007-09-14 21:27:53 +00:00
Eli Barzilay
449d9097c7 Avoid having hard-wired paths in contract error messages.
These will use "<collects>/..." now.  (A perhaps better solution
is to do what "mzlib/etc.ss" does and insert code that expands
to the file on the client machine.)

svn: r7306
2007-09-10 02:26:59 +00:00
Eli Barzilay
6f83062a51 improved code for build-src-loc-string (no change in functionality)
svn: r7303
2007-09-09 18:25:29 +00:00
Matthew Flatt
e4cbc4e6a9 371.2
svn: r7263
2007-09-02 17:39:32 +00:00
Eli Barzilay
6793e45228 typo
svn: r7029
2007-08-06 13:00:49 +00:00
Robby Findler
67dd80eb78 changes noticed by Matthew
svn: r6980
2007-07-29 18:56:32 +00:00
Robby Findler
cb47325215 fixed parameter contracts
svn: r6833
2007-07-07 15:19:46 +00:00
Matthew Flatt
9764065c6a 370.5
svn: r6832
2007-07-07 08:31:19 +00:00
Robby Findler
2dfd35e5c7 added parameter/c
svn: r6770
2007-06-29 16:44:18 +00:00
Shu-Yu Guo
5016e59f8e fixes match
svn: r6674
2007-06-16 16:58:37 +00:00
Robby Findler
ea5b3493f3 fixed define-contract-struct so that it defines (via define-syntax) the struct name, following the define-struct covention
svn: r6664
2007-06-14 21:14:14 +00:00
Robby Findler
3857b95a7b fixed PR 8737
svn: r6596
2007-06-12 15:23:54 +00:00
Robby Findler
f597eef4db svn: r6558 2007-06-09 18:33:37 +00:00
Robby Findler
377c5b3ad0 had to find a new way to defeat the inlining
svn: r6413
2007-05-30 17:32:39 +00:00
Robby Findler
2f97ee61a8 fixed comment
svn: r6292
2007-05-25 13:22:29 +00:00
Robby Findler
e41ff4705e improved error checking for provide/contract struct clauses
svn: r6155
2007-05-05 17:50:19 +00:00
Robby Findler
5ac3fdd86e added unsafe list contract combinators
svn: r6096
2007-04-29 21:46:27 +00:00
Matthew Flatt
e9bf34f193 369.11
svn: r6085
2007-04-29 02:08:24 +00:00
Robby Findler
2cb314de1b improved error message a little more, thanks to Jon Rafkind
svn: r6073
2007-04-28 21:50:05 +00:00
Robby Findler
bbb4f1c307 tweaked wording of any error message
svn: r6071
2007-04-28 20:21:04 +00:00
Robby Findler
ddf5ddaf68 fixed a bug in structs
svn: r6059
2007-04-27 22:02:14 +00:00
Robby Findler
c3e07c0a8c removed bogus inference from matcher's optimizer
svn: r6034
2007-04-24 18:22:10 +00:00
Matthew Flatt
a45251d272 369.10
svn: r6003
2007-04-20 01:16:15 +00:00