Commit Graph

220 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