Commit Graph

11 Commits

Author SHA1 Message Date
Stevie Strickland
290a73b56b Check and unwrap instead of grabbing the property value, then using it to
unwrap.

svn: r18610
2010-03-24 21:32:32 +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
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
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
fb85388288 Add this%, which is the class counterpart of the object reference "this".
svn: r17359
2009-12-19 20:56:40 +00:00
Stevie Strickland
c993533814 Change from (module ...) -> #lang and also move any mzscheme -> scheme/base.
svn: r16563
2009-11-05 17:18:54 +00:00
Matthew Flatt
a58010fd0d scheme/class: fix local member names to provide an better message on misuse, and to declare itself as an expression form
svn: r13050
2009-01-09 21:00:50 +00:00
Matthew Flatt
6e9ccd3f43 better checking of case where a local name is used before it is defined (in an int-def context)
svn: r12659
2008-12-01 12:54:16 +00:00
Matthew Flatt
e25e7a1098 keyword in methods and apply; procedure-reduce-keyword-arity
svn: r9396
2008-04-22 18:00:04 +00:00
Eli Barzilay
b1a08edd5a use new require specs in many places
svn: r8774
2008-02-23 09:42:03 +00:00
Robby Findler
9a0498b44d moved class, contracts, serialize, and traits into scheme/ and changed the class and contract interface so that contracts no longer depend on the class system (instead its the other way around)
svn: r8017
2007-12-15 18:46:55 +00:00