Matthew Flatt
a94e6f2ea9
fix (_bytes o n) as an FFI result type
...
svn: r18502
2010-03-10 02:18:05 +00:00
Matthew Flatt
4673b36dcf
adjust inlining heuristics again
...
svn: r18479
2010-03-06 03:44:07 +00:00
Stevie Strickland
bf60da75e1
Refactor out new has-contract?/value-contract functionality so that it's
...
the responsibility of the (higher-order) contract to add the contract
(plus possibly more in the future) to the wrapped value.
svn: r18469
2010-03-04 21:10:44 +00:00
Sam Tobin-Hochstadt
80fcee2577
Fix PR 10806.
...
svn: r18464
2010-03-04 13:45:25 +00:00
Robby Findler
07f280419a
added has-contract? and get-contract
...
svn: r18460
2010-03-04 03:58:33 +00:00
Stevie Strickland
5fe0a790c1
Change how contracts for multiple values are handled to be a little cleaner
...
syntactically.
svn: r18458
2010-03-04 00:04:07 +00:00
Stevie Strickland
f2788561d3
Add the ability to contract more than one value returned from a with-contract
...
block in expression position.
svn: r18456
2010-03-03 21:54:18 +00:00
Jay McCarthy
eec0ff66c6
Adding a custom printer similar to hasheq's for sets
...
svn: r18450
2010-03-03 18:01:04 +00:00
Stevie Strickland
77f2555b9c
Remove now-redundant object? check in is-a?
...
svn: r18448
2010-03-03 17:04:41 +00:00
Stevie Strickland
3fb2e1d9ae
Check that we have an object before trying to unwrap it in class-field-*.
...
svn: r18443
2010-03-03 14:39:44 +00:00
Stevie Strickland
f37f81cdb2
Maintain source locations appropriately.
...
svn: r18422
2010-03-01 23:47:31 +00:00
Sam Tobin-Hochstadt
83cdaac011
Allow `path-up' to take multiple paths.
...
svn: r18415
2010-03-01 21:27:03 +00:00
Stevie Strickland
16dbb0edc1
Fix bug in field mutation on contracted objects.
...
svn: r18390
2010-02-27 20:59:40 +00:00
Eli Barzilay
cd076ae512
Fix bad assumption that paths can be turned to require specs (which breaks on
...
Windows).
svn: r18388
2010-02-27 20:20:25 +00:00
Stevie Strickland
54b81b3bdb
Fix bug introduced by last commit.
...
svn: r18385
2010-02-27 18:04:47 +00:00
Stevie Strickland
9f17622e1a
Cleanups here, moving some of the other parts to syntax-parse.
...
svn: r18383
2010-02-27 17:41:43 +00:00
Stevie Strickland
7dacfaea85
Add with-contract for expression positions.
...
svn: r18372
2010-02-27 01:05:03 +00:00
Stevie Strickland
e54f1c3a5e
scheme/contract => scheme/contract/base
...
svn: r18371
2010-02-27 01:03:55 +00:00
Sam Tobin-Hochstadt
7accc0bd7d
Need to unwrap objects at two other points:
...
* When the C++ code uses direct access on objects (look for check_valid)
* In the functions returned by class-field-accessor/mutator
svn: r18344
2010-02-25 23:42:13 +00:00
Carl Eastlund
8b93f081bc
Renamed make-set{,eq,eqv} to set{,eq,eqv} for uniformity with list, vector, etc.
...
svn: r18338
2010-02-25 19:46:36 +00:00
Stevie Strickland
1f10c4e422
Have external field accessors/mutators just redirect to the old object
...
themselves. Also, have all objects carry the prop:unwrap property.
svn: r18330
2010-02-24 23:32:44 +00:00
Stevie Strickland
af0387e3a6
Fuck you, C, and the flea-bitten, mange-covered, syphilis-ridden horse you
...
rode in on.
svn: r18318
2010-02-24 16:35:30 +00:00
Stevie Strickland
60b6c81f9f
Okay, updates to all this crapola. Going to try and see what happens if I
...
only attach prop:unwrap to wrapped objects.
svn: r18313
2010-02-23 23:56:08 +00:00
Stevie Strickland
f60645da2c
ARGHGHGHGHGHGHGHGGHGH
...
svn: r18308
2010-02-23 21:43:08 +00:00
Stevie Strickland
e1cd160a40
Now that the C code is back at a compile-ready point, I'll check in.
...
svn: r18306
2010-02-23 20:57:22 +00:00
Stevie Strickland
472ef1e873
Other cleanups.
...
svn: r18303
2010-02-23 15:59:22 +00:00
Stevie Strickland
1eeb27fc30
Small fixes in make-wrapper-class/object.
...
svn: r18302
2010-02-23 15:58:00 +00:00
Stevie Strickland
6583b0b77c
My first foray into the C side of things.
...
svn: r18299
2010-02-23 14:55:24 +00:00
Stevie Strickland
09425bc801
Keep the original class in the supers list. Also, copy over the no-super-init?
...
flag.
svn: r18296
2010-02-23 12:51:27 +00:00
Stevie Strickland
e4f7f0032e
Get rid of the loop that's no longer a loop, and also add in the necessary
...
object unwrapping.
svn: r18288
2010-02-23 04:13:09 +00:00
Stevie Strickland
978a9586f5
We no longer need the #:error thing here, because we've fixed object-contract
...
for real now.
svn: r18286
2010-02-23 04:02:03 +00:00
Stevie Strickland
14ab0175c3
Okay, expanding field accesses and mutations to basically inline the
...
unwrapping operation helps a bit, especially with inherited fields.
Unfortunately, as one might expect, TANSTAAFL applies here. In order
to make sure that we keep the contracted objects around as much as
possible to make sure there are no holes, we end up making local and
inherited field access codes 2-3x more than they did before. However,
this is still something on the order of 5x faster than external
access. But blah.
CONTRACTS ARE NOT FREE. Just ask your local lawyer.
svn: r18285
2010-02-23 03:15:43 +00:00
Stevie Strickland
53381bbf03
Remove unwrapping in find-method/who until I figure out what I actually need
...
to do.
Also fix up is-a? and subclass? so that they should work the same when
contracts are removed from a program.
svn: r18282
2010-02-23 01:15:11 +00:00
Stevie Strickland
f1b0bfdd79
Yeah, accessors need arguments.
...
svn: r18281
2010-02-23 00:46:47 +00:00
Stevie Strickland
cfdb9dd39b
Time to unveil object/c.
...
svn: r18280
2010-02-23 00:43:25 +00:00
Stevie Strickland
ab2561e08a
Now we don't need to recur down to unwrap something, but if we get a wrapped
...
primitive object in a method send, we need to unwrap all objects for its
method.
svn: r18279
2010-02-23 00:40:59 +00:00
Stevie Strickland
2af44afb17
Now I see -- I was handling local fields in an incorrect manner. We don't
...
want later projections to affect local accesses or mutations -- so we just
have to add the unwrap check in case it's a wrapped object.
svn: r18277
2010-02-22 22:43:47 +00:00
Stevie Strickland
0e3af71176
So now object-contract works again, but we seem to have introduced a bug
...
in the class/c inherit-field form, so now time to fix that.
svn: r18276
2010-02-22 22:26:27 +00:00
Stevie Strickland
a3a1d0d9c7
Fix shadowing in make-wrapper-class. Now delay lookup for
...
accessors/mutators used for internal field access. This fixes public
fields, but not private fields. Next should fix that up.
Will definitely need to benchmark all this delay though.
svn: r18275
2010-02-22 22:10:30 +00:00
Stevie Strickland
d820493feb
First cut of converting object-contract to share a common base that
...
object/c will also use.
svn: r18274
2010-02-22 21:55:32 +00:00
Stevie Strickland
815dd80923
Sync up to catch my fix.
...
svn: r18270
2010-02-22 20:58:53 +00:00
Stevie Strickland
11b8fd4204
Fix vector creation for internal field access.
...
svn: r18269
2010-02-22 20:57:36 +00:00
Stevie Strickland
c2fcdbba65
Class Contracts Phase 2: Object/c Boogaloo
...
This isn't just a copy of trunk r18264 -- it has a slight difference in how
local field accessors and mutators are handled that will eventually play a
larger role.
svn: r18265
2010-02-22 19:09:42 +00:00
Carl Eastlund
1d6111c532
Renamed simple-contract and simple-flat-contract to make-contract and make-flat-contract.
...
svn: r18259
2010-02-22 02:51:16 +00:00
Stevie Strickland
a0769da5ea
Add the contract shorthands for -> and ->* to use for methods where we don't
...
care about properties of this.
svn: r18248
2010-02-21 02:54:06 +00:00
Stevie Strickland
ffa34e1f7d
Add augride, which is like augment but enables the contract writer to give
...
subclasses an idea of whether a method can be augmented (augment) or whether
a method augmentation can be overridden (augride).
svn: r18240
2010-02-21 00:17:42 +00:00
Stevie Strickland
f72ca7bb1b
Now inherit works (and tests!)
...
svn: r18237
2010-02-20 22:54:11 +00:00
Stevie Strickland
370792b881
Refactoring done, and I think that's actually cleaned up things a bit. Now
...
to handle inherit.
svn: r18236
2010-02-20 22:44:53 +00:00
Stevie Strickland
b589c3c230
More preparation to move all the int-method/dynamic-proj expansion into
...
class/c-proj instead of compose-class.
svn: r18235
2010-02-20 22:00:45 +00:00
Stevie Strickland
66ce493ede
Adding original class field (we'll see what this is for in a sec.)
...
svn: r18234
2010-02-20 21:48:00 +00:00