diff options
-rw-r--r-- | MLKPackage.m | 1 | ||||
-rw-r--r-- | MLKRoot.m | 12 |
2 files changed, 13 insertions, 0 deletions
diff --git a/MLKPackage.m b/MLKPackage.m index a05f822..acaf6db 100644 --- a/MLKPackage.m +++ b/MLKPackage.m @@ -154,6 +154,7 @@ static NSMutableDictionary *packages = nil; [sys export:[sys intern:@"FIXNUM-EQ"]]; [sys export:[sys intern:@"DECLARATIONS-AND-DOC-AND-FORMS"]]; [sys export:[sys intern:@"DECLARATIONS-AND-FORMS"]]; + [sys export:[sys intern:@"COMPILE"]]; [sys export:[sys intern:@"OBJC-CLASS-OF"]]; [sys export:[sys intern:@"OBJC-SUBCLASSP"]]; @@ -22,6 +22,7 @@ #import "MLKDynamicContext.h" #import "MLKInterpretedClosure.h" #import "MLKInterpreter.h" +#import "MLKLLVMCompiler.h" #import "MLKNumber.h" #import "MLKPackage.h" #import "MLKRoot.h" @@ -702,4 +703,15 @@ as provided by method %@ of object %@", cons:forms with:nil]]); } + + ++(NSArray *) compile:(NSArray *)args +{ + NSLog (@"Compiling lambda form."); + id thing = [MLKLLVMCompiler compile:denullify([args objectAtIndex:0]) + inContext:[MLKLexicalContext globalContext]]; + NSLog (@"Compilation done."); + NSLog (@"Compiled: %@", thing); + RETURN_VALUE (thing); +} @end |