From a8a3de11ce7219d9567fb5d341276325f8df04be Mon Sep 17 00:00:00 2001 From: Matthias Andreas Benkard Date: Wed, 13 Aug 2008 11:04:55 +0200 Subject: Add COMPILE. --- MLKPackage.m | 1 + MLKRoot.m | 12 ++++++++++++ 2 files changed, 13 insertions(+) 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"]]; diff --git a/MLKRoot.m b/MLKRoot.m index 940181c..a003912 100644 --- a/MLKRoot.m +++ b/MLKRoot.m @@ -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 -- cgit v1.2.3