Commit Graph

74 Commits

Author SHA1 Message Date
Matthew Flatt
c95a398754 move most of the 'scheme' collection to the 'racket' collection 2010-04-20 15:24:48 -06:00
Matthew Flatt
b4aa4d4afb add define-values-for-export to scheme/unit; sort out different unit-signature 'struct' forms for mzlib vs. scheme vs. racket
svn: r18792
2010-04-12 13:54:40 +00:00
Matthew Flatt
65d3d3240b racket: keep old 'define-struct', include new form as 'struct'
svn: r18789
2010-04-11 21:08:37 +00:00
Stevie Strickland
f37f81cdb2 Maintain source locations appropriately.
svn: r18422
2010-03-01 23:47:31 +00:00
Carl Eastlund
d00e3432d9 Replaced #%variable-reference with quote-module-path for unit contract blame.
svn: r17781
2010-01-23 18:31:10 +00:00
Carl Eastlund
7f58c26709 Replaced uses of quote-srcloc with quote-syntax.
svn: r17757
2010-01-19 23:25:07 +00:00
Carl Eastlund
5606c590bd Updated quote-syntax to quote-srcloc in mzlib unit contracts.
svn: r17735
2010-01-19 04:57:33 +00:00
Carl Eastlund
7763a4079a Ported mzlib units to new contract system.
svn: r17718
2010-01-18 18:26:02 +00:00
Stevie Strickland
73d68593af Moving unit system from mzscheme->scheme/base, reformatting and small changes
as necessary.  Ran the quiet testsuite, unit tests, and setup-plt, all good.

svn: r17582
2010-01-08 21:44:42 +00:00
Stevie Strickland
c8c66bfe7f Need to handle what happens when there's no contracts to speak of.
svn: r17574
2010-01-08 18:52:57 +00:00
Stevie Strickland
ea20ee160f Add a dummy lambda expansion to signature compilation to ensure that the
expressions only refer to locally-bound names or names that are part of the
signature itself.

svn: r17573
2010-01-08 18:47:51 +00:00
Stevie Strickland
9e0f2a3c5f Identifiers in signature contracts don't use whatever prefixing or such may be
in play in the body of a unit, so we need to rename the "external" version to
the "internal" version.  This fixes PR 10246.

svn: r17571
2010-01-08 17:20:19 +00:00
Stevie Strickland
e2f50af66c If a contracted import doesn't have a pair value (because we haven't run
the corresponding unit body yet), then result in a useful error instead of
leaking internal implementation details.

svn: r17541
2010-01-07 19:36:08 +00:00
Stevie Strickland
538cc8862f Changing from stxclass to syntax/parse.
svn: r15979
2009-09-11 19:47:27 +00:00
Stevie Strickland
7d551aa0f2 Small change so that failures due to the implicit compound-unit/infer (like
init-depend failures) will show define-values/invoke-unit/infer as the
original source of the problem.

svn: r15780
2009-08-18 23:22:32 +00:00
Stevie Strickland
732e93b9dc Fix open so that it respects contracts.
svn: r14902
2009-05-21 16:36:36 +00:00
Stevie Strickland
99aac7d745 Sam and I did some work to allow automatic inferred linking in
(define-values/)invoke-unit/infer.

svn: r14315
2009-03-27 13:47:12 +00:00
Stevie Strickland
bd4c6f40ba Just a small change, nothing big.
svn: r13885
2009-03-01 01:12:03 +00:00
Stevie Strickland
837906b783 Cleanups.
svn: r13884
2009-02-28 20:34:06 +00:00
Stevie Strickland
b58c5881c6 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
2009-02-28 19:46:47 +00:00
Stevie Strickland
cf005e3297 Adding unit/s and define-unit/s, which is the inferred version of
unit-new-import-export etc.

svn: r13860
2009-02-26 22:52:08 +00:00
Stevie Strickland
5a1f31668d More name-setting fun.
svn: r13807
2009-02-23 22:22:06 +00:00
Stevie Strickland
e727f4fd08 Fixing some more inferred-name placements.
svn: r13806
2009-02-23 22:05:09 +00:00
Stevie Strickland
78dbc22598 Try to set up the inferred-name property appropriately.
svn: r13805
2009-02-23 21:46:22 +00:00
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