Commit Graph

93 Commits

Author SHA1 Message Date
Stevie Strickland
5ba7ce5c73 Just a small change, nothing big.
svn: r13885

original commit: bd4c6f40ba5c854817091bf0ddf9463415987bf1
2009-03-01 01:12:03 +00:00
Stevie Strickland
2a58f8d016 Cleanups.
svn: r13884

original commit: 837906b7834c8b42c94db219fd04ebdba188c277
2009-02-28 20:34:06 +00:00
Stevie Strickland
87b0915ce1 We can't actually change how exports are set, we can only change how they're
retrieved, so having each export be a cons of an accessor/mutator pair is
misleading.  Remove the mutator, just have the unit set-box! the box directly,
and just export the accessor.

svn: r13882

original commit: b58c5881c645ae2cb248252922cb13b3e5c3c7b5
2009-02-28 19:46:47 +00:00
Stevie Strickland
74dad6d8d4 Adding unit/s and define-unit/s, which is the inferred version of
unit-new-import-export etc.

svn: r13860

original commit: cf005e3297f845dadedda0c6c55f86d2ec8bb661
2009-02-26 22:52:08 +00:00
Stevie Strickland
dd8e3a30af More name-setting fun.
svn: r13807

original commit: 5a1f31668d00469284ba9712078fdd2e854df53c
2009-02-23 22:22:06 +00:00
Stevie Strickland
5d478c9aa1 Fixing some more inferred-name placements.
svn: r13806

original commit: e727f4fd083b3728d9531486f26d2be42e2bd882
2009-02-23 22:05:09 +00:00
Stevie Strickland
5074111cf3 Try to set up the inferred-name property appropriately.
svn: r13805

original commit: 78dbc225981e467c8399b5aca535b9e69ccb1a72
2009-02-23 21:46:22 +00:00
Stevie Strickland
98d9dadb04 Rename cstruct to struct/ctc, to avoid confusion with cstruct from the ffi.
svn: r13661

original commit: c6b92782e234f99f488e12137b608e2553151dea
2009-02-16 14:50:59 +00:00
Stevie Strickland
cf063bd01f Adding cstruct, which is like the struct signature form but with contracts.
svn: r13647

original commit: 340035bef7544d1bb868c98e5fb28a18a4214222
2009-02-16 02:51:12 +00:00
Sam Tobin-Hochstadt
fa74471fad sync to trunk
svn: r13609

original commit: 738b8311afd40047e22fcf0181e34cef541e7ece
2009-02-15 17:45:53 +00:00
Stevie Strickland
3c797943eb Fix scoping of name.
svn: r13601

original commit: af1e57d33e310e1c70613dc44cb1f40875c2f061
2009-02-15 06:36:00 +00:00
Stevie Strickland
4a5a989efd Clean up some bindings, moving them from defines to letrec-syntax.
svn: r13599

original commit: 62d82ca9be81dbab8ab3472a0222bbe212c3debc
2009-02-15 05:20:30 +00:00
Stevie Strickland
f64f7896e0 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

original commit: cbcad0528c45427ebdd45350068a254e000ed159
2009-02-14 21:32:02 +00:00
Stevie Strickland
a434af8f5d 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

original commit: dba74f8f15c36dbacb0c18ee7a71dcf693d3969c
2009-02-14 02:33:15 +00:00
Stevie Strickland
eb8a57c182 * 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

original commit: 387c8b210f6d8361238fa9416e96eff225d7d6d3
2009-02-13 22:50:49 +00:00
Stevie Strickland
71aba294df Fix up the contracts so that they properly refer to locally defined variables.
svn: r13527

original commit: 8656e7e918e2f08e4873dbfc48f738cbb234a1d4
2009-02-12 03:51:40 +00:00
Stevie Strickland
0ae02503f4 Adding the initial cut at unit/c.
svn: r13524

original commit: fbb5de4fa7007e105addbf421394f28f702f2f79
2009-02-11 22:46:48 +00:00
Stevie Strickland
7a9fd5370c Abstraction of the boxes used for unit imports/exports to allow for adding
contracts in an already created unit.

svn: r13331

original commit: f6493e1c3265627799d62d422a252dd20f14675b
2009-01-31 01:39:23 +00:00
Stevie Strickland
122b049167 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

original commit: 2f323578def1504977a1238d3d5c5fbfece9cd1e
2009-01-29 07:19:23 +00:00
Stevie Strickland
caad0a01f3 Only apply a single contract wrapping to a value contracted through unit
exporting/importing.  Also add some more unit contract tests.

svn: r13203

original commit: e1d5ced45ea68ee376cd16728fa3a5dfc73eb8c2
2009-01-18 10:38:52 +00:00
Stevie Strickland
98280bd936 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

original commit: 39d9cfbb0aac1f619782a5f1867d3b68c75c18c3
2009-01-16 20:41:51 +00:00
Stevie Strickland
b4bd9f99b3 Missed a case. Oops.
svn: r13142

original commit: 9df50b125a7aa278e087c17450794861735429e5
2009-01-15 05:37:23 +00:00
Stevie Strickland
650f7a3219 Okay, let's try using the "internal" names instead of the "external", which
might make some errors more obvious.

svn: r13141

original commit: bd802748e03c3434195279056f4223b94ddfc48f
2009-01-15 05:32:46 +00:00
Stevie Strickland
f5961b496a 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

original commit: 6e86da95e60f9d2aaef92c73226c9f99f374c3ae
2009-01-15 05:17:27 +00:00
Stevie Strickland
855492f109 Add error checking for contracted form, also added documentation in reference
svn: r13135

original commit: dbe366c6a0855abc117d7be2f160be058b882ec8
2009-01-15 00:42:49 +00:00
Stevie Strickland
dc8c149c77 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

original commit: 12fc114993b4c5962791984e2ff47340d7a89a88
2009-01-14 03:14:26 +00:00
Stevie Strickland
4a1629bf41 Going to try switching this back, but need to sync from trunk to get Matthew's
changes to see if it works.

svn: r13098

original commit: b5efb99548e940818a92f41c174bc713bfa80e6b
2009-01-14 01:12:52 +00:00
Stevie Strickland
6a6a4909d4 Move away from using the error-syntax to grab the unit name wherever we want
it -- just use a syntax parameter.

svn: r13096

original commit: 37b2272ecf1a3e6826060560c826483ce4d64ced
2009-01-13 23:08:47 +00:00
Stevie Strickland
4380d8a399 Allow multiple identifier/contract pairs in the same contracted form.
svn: r13054

original commit: 0db2eb851a46185f0f09a130f707e1cdd748c50e
2009-01-09 22:22:24 +00:00
Stevie Strickland
4d8f6fdeb0 Tag the contracts so we know what are truly contracts and which are just
placeholder #fs.

svn: r13048

original commit: af69c0bbeccf2fab5e11b104cd8bb3a686f343f9
2009-01-09 19:50:28 +00:00
Stevie Strickland
ea41bc867d 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

original commit: bae2c7b5e121448891289fde194ffbaaced33a24
2009-01-09 19:08:03 +00:00
Stevie Strickland
81e4bee047 There's no need for the special-casing define-values with one binding, so
simplify this.

svn: r13044

original commit: 8d1b82bcd21e42fcc2df2827291a8264aef189d9
2009-01-09 00:59:04 +00:00
Stevie Strickland
679f32c6dc Small fixes
svn: r13043

original commit: a932bfc84a65d6a6d9a9cf124931ce0ca3b30117
2009-01-09 00:33:43 +00:00
Stevie Strickland
3301fdba75 We do _not_ want (void) last, we want it first here.
svn: r13040

original commit: e402d7ea36a8d8b85119c183458a76645776922d
2009-01-08 20:52:18 +00:00
Stevie Strickland
343618feec Changed to be more like what Sam and I envisioned.
svn: r13039

original commit: bf0d872afdcb3b511051da314cfd476c9d6e65ef
2009-01-08 20:50:33 +00:00
Stevie Strickland
dcacda86fa Remove unused argument
svn: r12872

original commit: 821a3ae90057e9e0115df51e27d1572bfa8c50cd
2008-12-16 20:35:19 +00:00
Stevie Strickland
3db841f79a Handle this similarly to scheme/private/contract.
svn: r12869

original commit: f7c37571ce844987fcb1bbfc8c20580b70e25864
2008-12-16 19:42:06 +00:00
Stevie Strickland
b4695eeac4 These lets aren't doing anything, so remove them.
svn: r12769

original commit: bc62c06e1cdd0abf4e3068dee7c1a28eb3886674
2008-12-10 19:29:21 +00:00
Stevie Strickland
6eaf47ef9a Last changes, everything works up to here.
svn: r12765

original commit: 8bc883d1cbf2921c4a42b2b19441de0155b742c2
2008-12-10 18:51:40 +00:00
Stevie Strickland
e9627fb9e2 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

original commit: 56854a84bd2958f23eae2d04a185ed29eafbc077
2008-12-10 17:19:39 +00:00
Stevie Strickland
bee6f21c4d 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

original commit: 90ad3f9221a9b5c31a673dcc820304e7b6c86872
2008-12-09 23:16:48 +00:00
Stevie Strickland
d9d718daa8 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

original commit: a9be78545d95d72e5076d14369afae8b5774dbad
2008-12-09 22:14:11 +00:00
Stevie Strickland
66dad85db5 Adding current unit contract work over here.
svn: r12743

original commit: bf5dddbd13fa45fd1950289624bbd05e9ec92135
2008-12-08 17:06:53 +00:00
Matthew Flatt
4e48a33a49 scheme/package (and more int-def repairs)
svn: r12589

original commit: ed536c002e3ef5a7f908584f9d50421fcac827b4
2008-11-25 17:58:21 +00:00
Matthew Flatt
bfb0bc4ffd revised internal-definitions context and a basic 'define-package' form
svn: r12579

original commit: a0f91d905e78288ac9ee252f24e8157f5cbea3f9
2008-11-24 19:52:41 +00:00
Matthew Flatt
52dd376826 make-syntax-delta-introducer and adjusted binding in scheme/unit forms
svn: r12032

original commit: 8b595ed1200539fa0c22ff0710d9efc5b9d79b52
2008-10-14 13:27:43 +00:00
Matthew Flatt
28ad389ced fix minor 'unit' phase problems
svn: r9964

original commit: 44a8c8b6b136f186b50f674cff1b5cdae20552bf
2008-05-26 19:59:11 +00:00
Matthew Flatt
be4a4a5538 fix some phase issues in 'match' implementation
svn: r9963

original commit: d1628d623897acc07bb14d01507f4539849e907a
2008-05-26 19:51:06 +00:00
Eli Barzilay
0cc6039906 use new require specs in many places
svn: r8774

original commit: b1a08edd5a8c0db0bae4a9e052d9a93d1faabb4f
2008-02-23 09:42:03 +00:00
Matthew Flatt
5c959ff3e6 v3.99.0.2
svn: r7706

original commit: 39cedb62edf9258b051a22a29a90be9c6841956f
2007-11-13 12:40:00 +00:00