Commit Graph

50 Commits

Author SHA1 Message Date
Stevie Strickland
c6b92782e2 Rename cstruct to struct/ctc, to avoid confusion with cstruct from the ffi.
svn: r13661
2009-02-16 14:50:59 +00:00
Stevie Strickland
340035bef7 Adding cstruct, which is like the struct signature form but with contracts.
svn: r13647
2009-02-16 02:51:12 +00:00
Stevie Strickland
af1e57d33e Fix scoping of name.
svn: r13601
2009-02-15 06:36:00 +00:00
Stevie Strickland
62d82ca9be Clean up some bindings, moving them from defines to letrec-syntax.
svn: r13599
2009-02-15 05:20:30 +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
dba74f8f15 Make a table of the original imports these came from for easy lookup. This
way we can actually bind only the identifiers which were in the original
signature over the contract.

svn: r13567
2009-02-14 02:33:15 +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
8656e7e918 Fix up the contracts so that they properly refer to locally defined variables.
svn: r13527
2009-02-12 03:51:40 +00:00
Stevie Strickland
fbb5de4fa7 Adding the initial cut at unit/c.
svn: r13524
2009-02-11 22:46:48 +00:00
Stevie Strickland
f6493e1c32 Abstraction of the boxes used for unit imports/exports to allow for adding
contracts in an already created unit.

svn: r13331
2009-01-31 01:39:23 +00:00
Stevie Strickland
2f323578de Disallow unit/new-import-export if contracts are involved. This is not
planned to be permanent, but until I've figured out how to implement the
fix, just say no.

svn: r13311
2009-01-29 07:19:23 +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
39d9cfbb0a Now that we're in with-contract land, use the same syntax parameter for units
as well as with-contract and define/contract.

svn: r13181
2009-01-16 20:41:51 +00:00
Stevie Strickland
9df50b125a Missed a case. Oops.
svn: r13142
2009-01-15 05:37:23 +00:00
Stevie Strickland
bd802748e0 Okay, let's try using the "internal" names instead of the "external", which
might make some errors more obvious.

svn: r13141
2009-01-15 05:32:46 +00:00
Stevie Strickland
6e86da95e6 Actually make this used specifically for blame, not the unit name.
We might end up collapsing this and what's introduced in with-contract.

svn: r13140
2009-01-15 05:17:27 +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
12fc114993 Let's just make some differently painted identifiers so that some
error messages won't reveal the non-similarly-named ids behind the
curtain.

(I have my hammer, and damn if I won't use it.)

svn: r13107
2009-01-14 03:14:26 +00:00
Stevie Strickland
b5efb99548 Going to try switching this back, but need to sync from trunk to get Matthew's
changes to see if it works.

svn: r13098
2009-01-14 01:12:52 +00:00
Stevie Strickland
37b2272ecf Move away from using the error-syntax to grab the unit name wherever we want
it -- just use a syntax parameter.

svn: r13096
2009-01-13 23:08:47 +00:00
Stevie Strickland
0db2eb851a Allow multiple identifier/contract pairs in the same contracted form.
svn: r13054
2009-01-09 22:22:24 +00:00
Stevie Strickland
af69c0bbec Tag the contracts so we know what are truly contracts and which are just
placeholder #fs.

svn: r13048
2009-01-09 19:50:28 +00:00
Stevie Strickland
bae2c7b5e1 Basically write begin-with-definitions here by hand, which _does_ work.
So that should pretty much give us unit contracts, modulo whether we can
separate out the projections so that contracts aren't checked twice
inappropriately.

svn: r13047
2009-01-09 19:08:03 +00:00
Stevie Strickland
8d1b82bcd2 There's no need for the special-casing define-values with one binding, so
simplify this.

svn: r13044
2009-01-09 00:59:04 +00:00
Stevie Strickland
a932bfc84a Small fixes
svn: r13043
2009-01-09 00:33:43 +00:00
Stevie Strickland
e402d7ea36 We do _not_ want (void) last, we want it first here.
svn: r13040
2009-01-08 20:52:18 +00:00
Stevie Strickland
bf0d872afd Changed to be more like what Sam and I envisioned.
svn: r13039
2009-01-08 20:50:33 +00:00
Stevie Strickland
821a3ae900 Remove unused argument
svn: r12872
2008-12-16 20:35:19 +00:00
Stevie Strickland
f7c37571ce Handle this similarly to scheme/private/contract.
svn: r12869
2008-12-16 19:42:06 +00:00
Stevie Strickland
bc62c06e1c These lets aren't doing anything, so remove them.
svn: r12769
2008-12-10 19:29:21 +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
90ad3f9221 Do the let so that (hopefully) the contract errors will get reported on the
identifier.  With a small change in scheme/contract, it does, but even with
this, it doesn't seem to.  How odd.

svn: r12760
2008-12-09 23:16:48 +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
bf5dddbd13 Adding current unit contract work over here.
svn: r12743
2008-12-08 17:06:53 +00:00
Matthew Flatt
ed536c002e scheme/package (and more int-def repairs)
svn: r12589
2008-11-25 17:58:21 +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
Matthew Flatt
8b595ed120 make-syntax-delta-introducer and adjusted binding in scheme/unit forms
svn: r12032
2008-10-14 13:27:43 +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
Eli Barzilay
b1a08edd5a use new require specs in many places
svn: r8774
2008-02-23 09:42:03 +00:00
Matthew Flatt
39cedb62ed v3.99.0.2
svn: r7706
2007-11-13 12:40:00 +00:00
Matthew Flatt
e9bf34f193 369.11
svn: r6085
2007-04-29 02:08:24 +00:00
Matthew Flatt
42bf3cfbe0 minor streamlining of unit compilation
svn: r5424
2007-01-22 03:45:26 +00:00
Matthew Flatt
7b13755dad unit clean-up
svn: r5160
2006-12-22 01:26:58 +00:00
Eli Barzilay
3459c3a58f merged units branch
svn: r5033
2006-12-05 20:31:14 +00:00
Matthew Flatt
ebe051694d 350.3
svn: r3571
2006-07-01 18:53:09 +00:00
Matthew Flatt
4c5aff33a8 avoid leading colon for id
svn: r939
2005-09-29 15:50:33 +00:00
Matthew Flatt
0d4bc2cd9d 299.107
svn: r259
2005-06-28 17:01:03 +00:00
Eli Barzilay
017d151d59 Adding collects, with all the right properties (except eoln-style).
svn: r3
2005-05-27 18:56:37 +00:00