Commit Graph

647 Commits

Author SHA1 Message Date
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
c221f41695 Fix handling of imports in unit contracts.
svn: r13864
2009-02-27 01:02:27 +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
7e8816ce0f * Add initial version of define-struct/contract
* Allow uncontracted exports of syntax from a with-contract form.

svn: r13717
2009-02-18 02:25:45 +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
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
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
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
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
Matthew Flatt
20f2e32f99 adjust handling of version numbers with dylib suffix
svn: r13476
2009-02-06 23:46:29 +00:00
Eli Barzilay
cc6ff9d5d7 use the cstruct type directly, not via ctype-basetype
svn: r13345
2009-02-01 03:31:41 +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
654a70ff90 Adding with-contract from sstrickl/with-contract, with a slight nudge to
the recent unit contract work to use the same syntax parameter as this
work.

svn: r13185
2009-01-16 22:59:48 +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
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
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
c7ee5b600c Change this more to how it should be.
svn: r13124
2009-01-14 21:35:07 +00:00
Stevie Strickland
5ac3135cd6 Syncing up here as well.
svn: r13118
2009-01-14 18:27:06 +00:00
Stevie Strickland
4ca79e31ff Syncing up to trunk.
svn: r13115
2009-01-14 16:45:50 +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
Eli Barzilay
d1a0086471 newlines at EOFs
svn: r13105
2009-01-14 03:10:47 +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
22ee00b10f Oh, no! Aliens, bio-duplication, nude conspiracies.. oh my God,
Lyndon LaRouche was right!

svn: r13037
2009-01-08 14:55:23 +00:00
Stevie Strickland
d5f0b90981 My fellow Americans. As a young boy, I dreamed of being a baseball,
but tonight I say, we must move forward, not backward, upward, not
forward, and always twirling, twirling, twirling towards freedom.

svn: r13036
2009-01-08 14:53:46 +00:00
Matthew Flatt
0663588ee1 change _string/utf-16 and _string/ucs-4 so that #f = NULL (for consistency with other pointer types), and drop the /null variants
svn: r13031
2009-01-07 17:49:14 +00:00
Robby Findler
cda64e40da opened up the trace library a little more to make it more useable for Redex
svn: r13027
2009-01-07 15:44:07 +00:00
Matthew Flatt
61685c72f9 revised Mac OS X sleeping; optional atomic mode for FFI callbacks
svn: r13016
2009-01-06 13:07:45 +00:00
Eli Barzilay
8a2753efb8 2008 -> 2009
svn: r13001
2009-01-04 15:34:50 +00:00
Matthew Flatt
d596401804 scheme/foreign: allow #f as NULL function pointer, allow callback as cpointer
svn: r12992
2009-01-03 18:51:15 +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
9e4d8d08b9 Syncing
svn: r12929
2008-12-23 03:20:02 +00:00
Stevie Strickland
4f002a60d5 Sync again
svn: r12928
2008-12-23 03:05:16 +00:00
Matthew Flatt
ec600c59bb fine-tune typechecking index entry
svn: r12920
2008-12-21 13:57:46 +00:00
Matthew Flatt
82ead03b92 change _fpointer handling to work with function pointers in structs and other such uses; add 'function-ptr' casting operation
svn: r12913
2008-12-20 05:09:35 +00:00
Eli Barzilay
a62b6a3128 fix _-identifier? typo
svn: r12912
2008-12-20 03:06:59 +00:00
Matthew Flatt
7dc56df949 add FFI types _string/utf-16/null and _string/ucs-4/null
svn: r12911
2008-12-19 23:59:33 +00:00
Stevie Strickland
d81776083f Sync
svn: r12899
2008-12-19 05:43:50 +00:00
Stevie Strickland
3def625a77 Sync
svn: r12898
2008-12-19 05:42:21 +00:00
Matthew Flatt
2c95f77c31 ctype->layout in scheme/foreign; prototype Objective-C binding in ffi collection
svn: r12890
2008-12-18 20:05:21 +00:00
Stevie Strickland
29487b251e I guess this documentation got lost at some point during the various branch
moves, so add it back.

svn: r12888
2008-12-18 17:13:13 +00:00
Stevie Strickland
48ea3995b4 Another day, another sync.
svn: r12887
2008-12-18 15:24:18 +00:00
Eli Barzilay
6283205982 ctype-basetype now holds:
* a symbol naming the type for primitive types
* a list of ctypes for cstruct types
* another ctype for user-defined ctypes

svn: r12882
2008-12-18 06:48:10 +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
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
e94cadd86d Syncing -- nothing to see here.
svn: r12660
2008-12-01 15:11:00 +00:00
Eli Barzilay
7ea8ab6592 switch to #lang, reformat
svn: r12655
2008-12-01 03:21:46 +00:00
Stevie Strickland
6f83ed1a80 Sync that beautiful trunk footage
svn: r12593
2008-11-25 21:18:04 +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
Stevie Strickland
eca59f6b1d Missed a file.
svn: r12452
2008-11-14 16:49:10 +00:00
Stevie Strickland
3212d11712 Add all changes from branches/with-contract (which this branch will replace
eventually), plus a couple of fixes in contract-test.ss.

svn: r12451
2008-11-14 16:48:17 +00:00
Eli Barzilay
987b164478 better syntax error message when define-cstruct gets an identifier without a _
svn: r12420
2008-11-13 02:18:16 +00:00
Matthew Flatt
a6d953b6f5 add port->string, file->string, etc.
svn: r12388
2008-11-11 17:55:14 +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
8b666c1710 streamline srfi-4 index-argument check
svn: r12155
2008-10-28 12:12:09 +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
e2d4bc0d2b finish decompiler on syntax objects
svn: r12077
2008-10-21 00:10:47 +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
Matthew Flatt
ec68bafa9c add eqv hash tables; add hash-update
svn: r12018
2008-10-13 16:21:18 +00:00
Eli Barzilay
2bd0019110 register-finalizer is not unsafe
svn: r11994
2008-10-12 06:13:46 +00:00
Eli Barzilay
8d06e0c707 rename holder -> keep
svn: r11932
2008-10-04 19:10:38 +00:00