Author: theraven
Date: Tue Jan 26 15:58:39 2010
New Revision: 5871

URL: http://svn.gna.org/viewcvs/etoile?rev=5871&view=rev
Log:
Added LKObject.h, which provides an Objective-C interface for dealing with 
LanguageKit objects (which are either ObjC objects or small ints hidden inside 
pointers).

LanguageKit will continue to adopt the types for selectors and ivars declared 
in Objective-C, however for new ivars and new selectors will all use LKObject 
instead of id.  This means that LK methods can pass SmallInts between each 
other without boxing.  

What does this mean for the user?  Not so much.  You may now get SmallInts 
where previously you got objects and your code will now be faster.  The 
fibonacci benchmark (with the JIT) now takes 1.6 seconds instead of 16 to 
calculate fib(30) on my machine.  Recursive calls will return SmallInts for 
values that fit in a SmallInt and BigInts for objects that don't.


Added:
    trunk/Etoile/Languages/LanguageKit/Runtime/LKObject.h
Modified:
    trunk/Etoile/Languages/LanguageKit/CodeGen/CodeGenLexicalScope.cpp
    trunk/Etoile/Languages/LanguageKit/CodeGen/CodeGenModule.cpp
    trunk/Etoile/Languages/LanguageKit/CodeGen/LLVMCodeGen.cpp
    trunk/Etoile/Languages/LanguageKit/CodeGen/LLVMCodeGen.m
    trunk/Etoile/Languages/LanguageKit/LKModule.m
    trunk/Etoile/Languages/LanguageKit/Runtime/GNUmakefile


_______________________________________________
Etoile-cvs mailing list
[email protected]
https://mail.gna.org/listinfo/etoile-cvs

Reply via email to