diff options
| author | Matthias Andreas Benkard <code@mail.matthias.benkard.de> | 2013-03-29 22:53:36 +0100 | 
|---|---|---|
| committer | Matthias Andreas Benkard <code@mail.matthias.benkard.de> | 2013-03-29 22:53:36 +0100 | 
| commit | d2b03ad4635e30977f13f5bcfb02b79a2c28e0ec (patch) | |
| tree | 2b3a5a83f5c01e5d3fb39de0ea75485240f94249 | |
| parent | cc920390a43b6e79caba2b113621d54bcc954d76 (diff) | |
| -rw-r--r-- | MLKCons.h | 2 | ||||
| -rw-r--r-- | MLKCons.m | 2 | ||||
| -rw-r--r-- | MLKForm.m | 3 | ||||
| -rw-r--r-- | MLKInterpreter.m | 2 | ||||
| -rw-r--r-- | MLKLLVMCompiler.h | 50 | ||||
| -rw-r--r-- | MLKLLVMCompiler.mm | 31 | ||||
| -rw-r--r-- | MLKLexicalContext-MLKLLVMCompilation.h | 40 | ||||
| -rw-r--r-- | MLKRoot.m | 4 | ||||
| -rw-r--r-- | MLKSymbol.h | 2 | ||||
| -rw-r--r-- | MLKSymbol.m | 2 | ||||
| -rw-r--r-- | Toilet Lisp.xcodeproj/project.pbxproj | 530 | ||||
| -rw-r--r-- | llvm_context.h | 14 | ||||
| -rw-r--r-- | llvm_context.mm | 14 | 
13 files changed, 529 insertions, 167 deletions
| @@ -131,7 +131,7 @@  -(id) copyWithZone:(NSZone *)zone;  -(BOOL) isEqual:(id)object; --(unsigned int) hash; +-(NSUInteger) hash;  -(void) dealloc;  @end @@ -183,7 +183,7 @@      return NO;  } --(unsigned int) hash +-(NSUInteger) hash  {    // FIXME: Well...    return [nullify(_car) hash]/2 + [nullify(_cdr) hash]/2; @@ -507,7 +507,8 @@  #else    _argumentTypes = malloc (_argc * sizeof (MLKForeignType));  #endif - +     +  i = 0;    while (argtypes)      {        _argumentTypes[i] = MLKForeignTypeWithTypeDesignator ([argtypes car]); diff --git a/MLKInterpreter.m b/MLKInterpreter.m index e7e95ba..ddabffc 100644 --- a/MLKInterpreter.m +++ b/MLKInterpreter.m @@ -560,7 +560,7 @@ PRIMARY (NSArray *array)  {    id catchTag;    NSArray *values; -  NSDictionary *userInfo; +  NSDictionary *userInfo = [NSDictionary dictionary];    catchTag = PRIMARY([_tagForm interpretWithEnvironment:env]);    values = [_valueForm interpretWithEnvironment:env]; diff --git a/MLKLLVMCompiler.h b/MLKLLVMCompiler.h index e0ff2d4..b51cbb8 100644 --- a/MLKLLVMCompiler.h +++ b/MLKLLVMCompiler.h @@ -28,7 +28,7 @@  #include <vector>  #include <llvm/Value.h>  #include <llvm/BasicBlock.h> -using namespace llvm; +//using namespace llvm;  #endif  @interface MLKLLVMCompiler : NSObject @@ -48,43 +48,43 @@ using namespace llvm;  +(void) markVariablesForHeapAllocationInForm:(MLKForm *)form;  #ifdef __cplusplus -+(Value *) processForm:(MLKForm *)form; ++(llvm::Value *) processForm:(MLKForm *)form; -+(Value *) insertSelectorLookup:(NSString *)name; ++(llvm::Value *) insertSelectorLookup:(NSString *)name; -+(Value *) insertMethodCall:(NSString *)messageName -                   onObject:(Value *)object -         withArgumentVector:(std::vector<Value*> *)argv; -+(Value *) insertMethodCall:(NSString *)messageName -                   onObject:(Value *)object -         withArgumentVector:(std::vector<Value*> *)argv ++(llvm::Value *) insertMethodCall:(NSString *)messageName +                   onObject:(llvm::Value *)object +         withArgumentVector:(std::vector<llvm::Value*> *)argv; ++(llvm::Value *) insertMethodCall:(NSString *)messageName +                   onObject:(llvm::Value *)object +         withArgumentVector:(std::vector<llvm::Value*> *)argv                         name:(NSString *)name; -+(Value *) insertMethodCall:(NSString *)messageName -                   onObject:(Value *)object -         withArgumentVector:(std::vector<Value*> *)argv ++(llvm::Value *) insertMethodCall:(NSString *)messageName +                   onObject:(llvm::Value *)object +         withArgumentVector:(std::vector<llvm::Value*> *)argv                         name:(NSString *)name -                 returnType:(const Type *)returnType; -+(Value *) insertVoidMethodCall:(NSString *)messageName -                       onObject:(Value *)object -             withArgumentVector:(std::vector<Value*> *)argv; - -+(Value *) insertMethodCall:(NSString *)messageName -                   onObject:(Value *)object; -+(Value *) insertMethodCall:(NSString *)messageName -                   onObject:(Value *)object +                 returnType:(llvm::Type *)returnType; ++(llvm::Value *) insertVoidMethodCall:(NSString *)messageName +                       onObject:(llvm::Value *)object +             withArgumentVector:(std::vector<llvm::Value*> *)argv; + ++(llvm::Value *) insertMethodCall:(NSString *)messageName +                   onObject:(llvm::Value *)object; ++(llvm::Value *) insertMethodCall:(NSString *)messageName +                   onObject:(llvm::Value *)object                     withName:(NSString *)name; -+(Value *) insertClassLookup:(NSString *)className; ++(llvm::Value *) insertClassLookup:(NSString *)className;  +(void) insertTrace:(NSString *)message; -+(void) insertPointerTrace:(Value *)value; ++(void) insertPointerTrace:(llvm::Value *)value;  #endif  @end  #ifdef __cplusplus  @interface MLKForm (MLKLLVMCompilation) --(Value *) processForLLVMWithMultiValue:(Value *)multiValue; --(Value *) reallyProcessForLLVMWithMultiValue:(Value *)multiValue; +-(llvm::Value *) processForLLVMWithMultiValue:(llvm::Value *)multiValue; +-(llvm::Value *) reallyProcessForLLVMWithMultiValue:(llvm::Value *)multiValue;  @end  #endif diff --git a/MLKLLVMCompiler.mm b/MLKLLVMCompiler.mm index 10dd1b7..2fdec5c 100644 --- a/MLKLLVMCompiler.mm +++ b/MLKLLVMCompiler.mm @@ -47,9 +47,9 @@  #include <llvm/Instructions.h>  #include <llvm/Module.h>  #include <llvm/PassManager.h> -#include <llvm/Support/IRBuilder.h> -#include <llvm/Target/TargetData.h> -#include <llvm/Target/TargetSelect.h> +#include <llvm/IRBuilder.h> +//#include <llvm/Support/TargetData.h> +#include <llvm/Support/TargetSelect.h>  #include <llvm/Transforms/Scalar.h>  #include <llvm/Transforms/IPO.h>  #include <llvm/Transforms/Utils/Cloning.h>  // InlineFunction @@ -83,7 +83,7 @@ static Constant    Constant *(indices[2]);    indices[0] = indices[1] = ConstantInt::get (Int32Ty, 0); -  Constant *str = ConstantArray::get (*llvm_context, string, true); +  Constant *str = ConstantDataArray::getString (*llvm_context, string, true);    Constant *str2 = new GlobalVariable (*module,                                         str->getType(),                                         true,  @@ -92,7 +92,7 @@ static Constant                                         "");      //  ArrayRef<Constant*> aindices(indices, 2);      //  Constant *ptr = ConstantExpr::getGetElementPtr (str2, aindices, false); -  Constant *ptr = ConstantExpr::getGetElementPtr (str2, indices, 2, false); +  Constant *ptr = ConstantExpr::getGetElementPtr (str2, indices, false);    return ptr;  } @@ -138,7 +138,9 @@ static Constant    assert(execution_engine);    fpm = new FunctionPassManager (module); -  fpm->add (new TargetData (*execution_engine->getTargetData())); +  //FIXME gone in 3.2?? +  // fpm->add (new TargetData (*execution_engine->getTargetData())); +      //fpm->add (new TargetData (module));    fpm->add (createScalarReplAggregatesPass());    fpm->add (createInstructionCombiningPass()); @@ -326,9 +328,9 @@ static Constant                     onObject:(Value *)object           withArgumentVector:(vector<Value*> *)argv                         name:(NSString *)name -                 returnType:(const Type *)returnType +                 returnType:(Type *)returnType  { -  vector <const Type *> argtypes (2, VoidPointerTy); +  vector <Type *> argtypes (2, VoidPointerTy);    FunctionType *ftype = FunctionType::get (returnType, argtypes, true);    Value *sel = [self insertSelectorLookup:messageName]; @@ -337,7 +339,7 @@ static Constant    Constant *function =       module->getOrInsertFunction ("objc_msgSend", ftype);  #else -  vector <const Type *> lookup_argtypes (2, VoidPointerTy); +  vector <Type *> lookup_argtypes (2, VoidPointerTy);    FunctionType *lookup_ftype = FunctionType::get (PointerType::get (ftype, 0),                                                    lookup_argtypes,                                                    false); @@ -359,7 +361,7 @@ static Constant    for (e = argv->begin(); e != argv->end(); e++)      argd.push_back (*e); -  return builder->CreateCall (function, argd.begin(), argd.end()); +  return builder->CreateCall (function, argd);  }  +(Value *) insertMethodCall:(NSString *)messageName @@ -574,7 +576,7 @@ static Constant    if ((built_in_name = toilet_built_in_function_name(_head)))      {        //vector <const Type *> argtypes (2, VoidPointerTy); -      vector <const Type *> argtypes (2 + [_argumentForms count] + 1, VoidPointerTy); +      vector <Type *> argtypes (2 + [_argumentForms count] + 1, VoidPointerTy);        argtypes[1] = PointerPointerTy;        FunctionType *ftype = FunctionType::get (VoidPointerTy, argtypes, false);        functionPtr = @@ -614,7 +616,7 @@ static Constant        Value *code = builder->CreateLoad (codeptr, "closure_code");        Value *data = builder->CreateLoad (dataptr, "closure_data"); -      std::vector<const Type *> types (2, PointerPointerTy); +      std::vector<Type *> types (2, PointerPointerTy);        functionPtr = builder->CreateBitCast (code, PointerType::get(FunctionType::get(VoidPointerTy,                                                                                      types,                                                                                      true), @@ -654,8 +656,7 @@ static Constant    //[_compiler insertPointerTrace:functionPtr];    CallInst *call = builder->CreateCall(functionPtr, -                                       args.begin(), -                                       args.end(), +                                       args,                                         [MLKPrintToString(_head) UTF8String]);    call->setCallingConv(CallingConv::C);    call->setTailCall(true); @@ -686,7 +687,7 @@ build_simple_function_definition (MLKBodyForm *processed_form,    MLKLexicalContext *_context = [processed_form context];    id _compiler = [MLKLLVMCompiler class]; -  vector <const Type *> argtypes (2, PointerPointerTy); +  vector <Type *> argtypes (2, PointerPointerTy);    FunctionType *ftype = FunctionType::get (VoidPointerTy, argtypes, true);    function = Function::Create (ftype,                                 Function::InternalLinkage, diff --git a/MLKLexicalContext-MLKLLVMCompilation.h b/MLKLexicalContext-MLKLLVMCompilation.h index 52eed21..48babba 100644 --- a/MLKLexicalContext-MLKLLVMCompilation.h +++ b/MLKLexicalContext-MLKLLVMCompilation.h @@ -19,18 +19,18 @@  #import "MLKForm.h"  #import "MLKLexicalContext.h" -#import <Foundation/NSObject.h> -#import <Foundation/NSString.h> -  #ifdef __cplusplus -#define __STDC_CONSTANT_MACROS +//#define __STDC_CONSTANT_MACROS  #include <vector>  #include <llvm/Value.h>  #include <llvm/BasicBlock.h>  #include <llvm/Instructions.h> -using namespace llvm; +//using namespace llvm;  #endif +#import <Foundation/NSObject.h> +#import <Foundation/NSString.h> +  extern id MLKDummyUseLLVMLexicalContext; @@ -38,20 +38,20 @@ extern id MLKDummyUseLLVMLexicalContext;  #ifdef __cplusplus  -(void) setVariableHeapAllocation:(BOOL)heapp forSymbol:(id)name;  -(BOOL) variableHeapAllocationForSymbol:(id)name; --(Instruction *) functionCellValueForSymbol:(id)name; --(Instruction *) closureDataPointerValueForSymbol:(id)name; --(Instruction *) closureDataLengthValueForSymbol:(id)name; --(Value *) bindingValueForSymbol:(id)name;  --(void) locallySetBindingValue:(Value *)value forSymbol:(id)name; --(void) setBindingValue:(Value *)value forSymbol:(id)name; --(Value *) functionBindingValueForSymbol:(id)name; --(void) locallySetFunctionBindingValue:(Value *)value forSymbol:(id)name; --(void) setFunctionBindingValue:(Value *)value forSymbol:(id)name;   --(Instruction *) globalBindingValueForSymbol:(id)name; --(Value *) valueValueForSymbol:(id)name; -//-(void) setFunctionCellValue:(Value *)cellPtr forSymbol:(id)name; -//-(void) setClosureDataPointerValue:(Value *)pointer forSymbol:(id)name; -//-(void) setBindingValue:(Value *)binding forSymbol:(id)name; --(void) setValueValue:(Value *)value forSymbol:(id)name; +-(llvm::Instruction *) functionCellValueForSymbol:(id)name; +-(llvm::Instruction *) closureDataPointerValueForSymbol:(id)name; +-(llvm::Instruction *) closureDataLengthValueForSymbol:(id)name; +-(llvm::Value *) bindingValueForSymbol:(id)name; +-(void) locallySetBindingValue:(llvm::Value *)value forSymbol:(id)name; +-(void) setBindingValue:(llvm::Value *)value forSymbol:(id)name; +-(llvm::Value *) functionBindingValueForSymbol:(id)name; +-(void) locallySetFunctionBindingValue:(llvm::Value *)value forSymbol:(id)name; +-(void) setFunctionBindingValue:(llvm::Value *)value forSymbol:(id)name; +-(llvm::Instruction *) globalBindingValueForSymbol:(id)name; +-(llvm::Value *) valueValueForSymbol:(id)name; +//-(void) setFunctionCellValue:(llvm::Value *)cellPtr forSymbol:(id)name; +//-(void) setClosureDataPointerValue:(llvm::Value *)pointer forSymbol:(id)name; +//-(void) setBindingValue:(llvm::Value *)binding forSymbol:(id)name; +-(void) setValueValue:(llvm::Value *)value forSymbol:(id)name;  #endif  @end @@ -657,8 +657,8 @@ toilet_send_by_name (id *_data, id *_multireturn, id object, NSString *methodNam    if (returnType == MLKT_INVALID)      {        [NSException raise:@"MLKInvalidReturnTypeError" -                   format:@"Cannot handle an Objective-C return type of \"%s\" \ -as provided by method %@ of object %@", +                   format:@"Cannot handle an Objective-C return type of \"%@\" \ +as provided by method %@ of object %s",                            methodName, object, [signature methodReturnType]];        return nil;      } diff --git a/MLKSymbol.h b/MLKSymbol.h index 3d5edfe..5b66660 100644 --- a/MLKSymbol.h +++ b/MLKSymbol.h @@ -53,7 +53,7 @@  // copying.  (The hack is called real_identity and it's an ivar of this  // class.)  See the comment above copyWithZone: for why it even exists.  -(BOOL) isEqual:(id)object; --(unsigned) hash; +-(NSUInteger) hash;  -(void) dealloc;  @end diff --git a/MLKSymbol.m b/MLKSymbol.m index b6bc55f..53a8113 100644 --- a/MLKSymbol.m +++ b/MLKSymbol.m @@ -170,7 +170,7 @@                 : self)));  } --(unsigned) hash +-(NSUInteger) hash  {    if (real_identity)      return [real_identity hash]; diff --git a/Toilet Lisp.xcodeproj/project.pbxproj b/Toilet Lisp.xcodeproj/project.pbxproj index 122feac..4818b8a 100644 --- a/Toilet Lisp.xcodeproj/project.pbxproj +++ b/Toilet Lisp.xcodeproj/project.pbxproj @@ -915,7 +915,7 @@  		A7E5C3CE0E21682800A01D81 /* Project object */ = {  			isa = PBXProject;  			attributes = { -				LastUpgradeCheck = 0410; +				LastUpgradeCheck = 0460;  			};  			buildConfigurationList = A7E5C3CF0E21682800A01D81 /* Build configuration list for PBXProject "Toilet Lisp" */;  			compatibilityVersion = "Xcode 3.2"; @@ -1077,6 +1077,7 @@  		A72BC6F20E65DE4900486804 /* Debug */ = {  			isa = XCBuildConfiguration;  			buildSettings = { +				COMBINE_HIDPI_IMAGES = YES;  				COPY_PHASE_STRIP = NO;  				GCC_DYNAMIC_NO_PIC = NO;  				GCC_ENABLE_OBJC_EXCEPTIONS = YES; @@ -1110,39 +1111,89 @@  					"-L/opt/local/lib",  					"-lpthread",  					"-lm", -					"-lLLVMObject", -					"-lLLVMMCJIT", -					"-lLLVMMCDisassembler", -					"-lLLVMLinker", -					"-lLLVMipo", -					"-lLLVMInterpreter", +					"-lstdc++", +					"-lLLVMAsmParser",  					"-lLLVMInstrumentation", +					"-lLLVMLinker", +					"-lLLVMArchive", +					"-lLLVMBitReader", +					"-lLLVMDebugInfo",  					"-lLLVMJIT", -					"-lLLVMExecutionEngine", +					"-lLLVMipo", +					"-lLLVMVectorize",  					"-lLLVMBitWriter", -					"-lLLVMX86Disassembler", +					"-lLLVMTableGen", +					"-lLLVMHexagonCodeGen", +					"-lLLVMHexagonDesc", +					"-lLLVMHexagonInfo", +					"-lLLVMHexagonAsmPrinter", +					"-lLLVMNVPTXCodeGen", +					"-lLLVMNVPTXDesc", +					"-lLLVMNVPTXAsmPrinter", +					"-lLLVMNVPTXInfo", +					"-lLLVMMBlazeCodeGen", +					"-lLLVMMBlazeDisassembler", +					"-lLLVMMBlazeDesc", +					"-lLLVMMBlazeAsmPrinter", +					"-lLLVMMBlazeAsmParser", +					"-lLLVMMBlazeInfo", +					"-lLLVMCppBackendCodeGen", +					"-lLLVMCppBackendInfo", +					"-lLLVMMSP430CodeGen", +					"-lLLVMMSP430Desc", +					"-lLLVMMSP430Info", +					"-lLLVMMSP430AsmPrinter", +					"-lLLVMXCoreCodeGen", +					"-lLLVMXCoreDesc", +					"-lLLVMXCoreInfo", +					"-lLLVMCellSPUCodeGen", +					"-lLLVMCellSPUDesc", +					"-lLLVMCellSPUInfo", +					"-lLLVMMipsCodeGen", +					"-lLLVMMipsAsmParser", +					"-lLLVMMipsDisassembler", +					"-lLLVMMipsDesc", +					"-lLLVMMipsAsmPrinter", +					"-lLLVMMipsInfo", +					"-lLLVMARMDisassembler", +					"-lLLVMARMAsmParser", +					"-lLLVMARMCodeGen", +					"-lLLVMARMDesc", +					"-lLLVMARMInfo", +					"-lLLVMARMAsmPrinter", +					"-lLLVMPowerPCCodeGen", +					"-lLLVMPowerPCDesc", +					"-lLLVMPowerPCInfo", +					"-lLLVMPowerPCAsmPrinter", +					"-lLLVMSparcCodeGen", +					"-lLLVMSparcDesc", +					"-lLLVMSparcInfo",  					"-lLLVMX86AsmParser", +					"-lLLVMX86Disassembler",  					"-lLLVMX86CodeGen",  					"-lLLVMSelectionDAG", +					"-lLLVMAsmPrinter", +					"-lLLVMX86Desc", +					"-lLLVMX86Info",  					"-lLLVMX86AsmPrinter",  					"-lLLVMX86Utils", -					"-lLLVMX86Info", -					"-lLLVMAsmPrinter", +					"-lLLVMMCDisassembler",  					"-lLLVMMCParser", +					"-lLLVMInterpreter",  					"-lLLVMCodeGen",  					"-lLLVMScalarOpts",  					"-lLLVMInstCombine",  					"-lLLVMTransformUtils",  					"-lLLVMipa", -					"-lLLVMAsmParser", -					"-lLLVMArchive", -					"-lLLVMBitReader",  					"-lLLVMAnalysis", +					"-lLLVMMCJIT", +					"-lLLVMRuntimeDyld", +					"-lLLVMExecutionEngine",  					"-lLLVMTarget",  					"-lLLVMMC", +					"-lLLVMObject",  					"-lLLVMCore",  					"-lLLVMSupport", -					"-lstdc++",  				);  				PRODUCT_NAME = "Toilet Lisp";  				USER_HEADER_SEARCH_PATHS = "/opt/homebrew/include /opt/local/include"; @@ -1154,6 +1205,7 @@  		A72BC6F30E65DE4900486804 /* Debug 10.4+ (fast) */ = {  			isa = XCBuildConfiguration;  			buildSettings = { +				COMBINE_HIDPI_IMAGES = YES;  				GCC_ENABLE_OBJC_EXCEPTIONS = YES;  				GCC_MODEL_TUNING = G5;  				GCC_PRECOMPILE_PREFIX_HEADER = YES; @@ -1183,39 +1235,89 @@  					"-L/opt/local/lib",  					"-lpthread",  					"-lm", -					"-lLLVMObject", -					"-lLLVMMCJIT", -					"-lLLVMMCDisassembler", -					"-lLLVMLinker", -					"-lLLVMipo", -					"-lLLVMInterpreter", +					"-lstdc++", +					"-lLLVMAsmParser",  					"-lLLVMInstrumentation", +					"-lLLVMLinker", +					"-lLLVMArchive", +					"-lLLVMBitReader", +					"-lLLVMDebugInfo",  					"-lLLVMJIT", -					"-lLLVMExecutionEngine", +					"-lLLVMipo", +					"-lLLVMVectorize",  					"-lLLVMBitWriter", -					"-lLLVMX86Disassembler", +					"-lLLVMTableGen", +					"-lLLVMHexagonCodeGen", +					"-lLLVMHexagonDesc", +					"-lLLVMHexagonInfo", +					"-lLLVMHexagonAsmPrinter", +					"-lLLVMNVPTXCodeGen", +					"-lLLVMNVPTXDesc", +					"-lLLVMNVPTXAsmPrinter", +					"-lLLVMNVPTXInfo", +					"-lLLVMMBlazeCodeGen", +					"-lLLVMMBlazeDisassembler", +					"-lLLVMMBlazeDesc", +					"-lLLVMMBlazeAsmPrinter", +					"-lLLVMMBlazeAsmParser", +					"-lLLVMMBlazeInfo", +					"-lLLVMCppBackendCodeGen", +					"-lLLVMCppBackendInfo", +					"-lLLVMMSP430CodeGen", +					"-lLLVMMSP430Desc", +					"-lLLVMMSP430Info", +					"-lLLVMMSP430AsmPrinter", +					"-lLLVMXCoreCodeGen", +					"-lLLVMXCoreDesc", +					"-lLLVMXCoreInfo", +					"-lLLVMCellSPUCodeGen", +					"-lLLVMCellSPUDesc", +					"-lLLVMCellSPUInfo", +					"-lLLVMMipsCodeGen", +					"-lLLVMMipsAsmParser", +					"-lLLVMMipsDisassembler", +					"-lLLVMMipsDesc", +					"-lLLVMMipsAsmPrinter", +					"-lLLVMMipsInfo", +					"-lLLVMARMDisassembler", +					"-lLLVMARMAsmParser", +					"-lLLVMARMCodeGen", +					"-lLLVMARMDesc", +					"-lLLVMARMInfo", +					"-lLLVMARMAsmPrinter", +					"-lLLVMPowerPCCodeGen", +					"-lLLVMPowerPCDesc", +					"-lLLVMPowerPCInfo", +					"-lLLVMPowerPCAsmPrinter", +					"-lLLVMSparcCodeGen", +					"-lLLVMSparcDesc", +					"-lLLVMSparcInfo",  					"-lLLVMX86AsmParser", +					"-lLLVMX86Disassembler",  					"-lLLVMX86CodeGen",  					"-lLLVMSelectionDAG", +					"-lLLVMAsmPrinter", +					"-lLLVMX86Desc", +					"-lLLVMX86Info",  					"-lLLVMX86AsmPrinter",  					"-lLLVMX86Utils", -					"-lLLVMX86Info", -					"-lLLVMAsmPrinter", +					"-lLLVMMCDisassembler",  					"-lLLVMMCParser", +					"-lLLVMInterpreter",  					"-lLLVMCodeGen",  					"-lLLVMScalarOpts",  					"-lLLVMInstCombine",  					"-lLLVMTransformUtils",  					"-lLLVMipa", -					"-lLLVMAsmParser", -					"-lLLVMArchive", -					"-lLLVMBitReader",  					"-lLLVMAnalysis", +					"-lLLVMMCJIT", +					"-lLLVMRuntimeDyld", +					"-lLLVMExecutionEngine",  					"-lLLVMTarget",  					"-lLLVMMC", +					"-lLLVMObject",  					"-lLLVMCore",  					"-lLLVMSupport", -					"-lstdc++",  				);  				PRODUCT_NAME = "Toilet Lisp";  				USER_HEADER_SEARCH_PATHS = "/opt/homebrew/include /opt/local/include"; @@ -1227,6 +1329,7 @@  		A72BC6F40E65DE4900486804 /* Debug 10.4+ (fast + GC) */ = {  			isa = XCBuildConfiguration;  			buildSettings = { +				COMBINE_HIDPI_IMAGES = YES;  				GCC_ENABLE_OBJC_EXCEPTIONS = YES;  				GCC_ENABLE_OBJC_GC = required;  				GCC_MODEL_TUNING = G5; @@ -1257,39 +1360,89 @@  					"-L/opt/local/lib",  					"-lpthread",  					"-lm", -					"-lLLVMObject", -					"-lLLVMMCJIT", -					"-lLLVMMCDisassembler", -					"-lLLVMLinker", -					"-lLLVMipo", -					"-lLLVMInterpreter", +					"-lstdc++", +					"-lLLVMAsmParser",  					"-lLLVMInstrumentation", +					"-lLLVMLinker", +					"-lLLVMArchive", +					"-lLLVMBitReader", +					"-lLLVMDebugInfo",  					"-lLLVMJIT", -					"-lLLVMExecutionEngine", +					"-lLLVMipo", +					"-lLLVMVectorize",  					"-lLLVMBitWriter", -					"-lLLVMX86Disassembler", +					"-lLLVMTableGen", +					"-lLLVMHexagonCodeGen", +					"-lLLVMHexagonDesc", +					"-lLLVMHexagonInfo", +					"-lLLVMHexagonAsmPrinter", +					"-lLLVMNVPTXCodeGen", +					"-lLLVMNVPTXDesc", +					"-lLLVMNVPTXAsmPrinter", +					"-lLLVMNVPTXInfo", +					"-lLLVMMBlazeCodeGen", +					"-lLLVMMBlazeDisassembler", +					"-lLLVMMBlazeDesc", +					"-lLLVMMBlazeAsmPrinter", +					"-lLLVMMBlazeAsmParser", +					"-lLLVMMBlazeInfo", +					"-lLLVMCppBackendCodeGen", +					"-lLLVMCppBackendInfo", +					"-lLLVMMSP430CodeGen", +					"-lLLVMMSP430Desc", +					"-lLLVMMSP430Info", +					"-lLLVMMSP430AsmPrinter", +					"-lLLVMXCoreCodeGen", +					"-lLLVMXCoreDesc", +					"-lLLVMXCoreInfo", +					"-lLLVMCellSPUCodeGen", +					"-lLLVMCellSPUDesc", +					"-lLLVMCellSPUInfo", +					"-lLLVMMipsCodeGen", +					"-lLLVMMipsAsmParser", +					"-lLLVMMipsDisassembler", +					"-lLLVMMipsDesc", +					"-lLLVMMipsAsmPrinter", +					"-lLLVMMipsInfo", +					"-lLLVMARMDisassembler", +					"-lLLVMARMAsmParser", +					"-lLLVMARMCodeGen", +					"-lLLVMARMDesc", +					"-lLLVMARMInfo", +					"-lLLVMARMAsmPrinter", +					"-lLLVMPowerPCCodeGen", +					"-lLLVMPowerPCDesc", +					"-lLLVMPowerPCInfo", +					"-lLLVMPowerPCAsmPrinter", +					"-lLLVMSparcCodeGen", +					"-lLLVMSparcDesc", +					"-lLLVMSparcInfo",  					"-lLLVMX86AsmParser", +					"-lLLVMX86Disassembler",  					"-lLLVMX86CodeGen",  					"-lLLVMSelectionDAG", +					"-lLLVMAsmPrinter", +					"-lLLVMX86Desc", +					"-lLLVMX86Info",  					"-lLLVMX86AsmPrinter",  					"-lLLVMX86Utils", -					"-lLLVMX86Info", -					"-lLLVMAsmPrinter", +					"-lLLVMMCDisassembler",  					"-lLLVMMCParser", +					"-lLLVMInterpreter",  					"-lLLVMCodeGen",  					"-lLLVMScalarOpts",  					"-lLLVMInstCombine",  					"-lLLVMTransformUtils",  					"-lLLVMipa", -					"-lLLVMAsmParser", -					"-lLLVMArchive", -					"-lLLVMBitReader",  					"-lLLVMAnalysis", +					"-lLLVMMCJIT", +					"-lLLVMRuntimeDyld", +					"-lLLVMExecutionEngine",  					"-lLLVMTarget",  					"-lLLVMMC", +					"-lLLVMObject",  					"-lLLVMCore",  					"-lLLVMSupport", -					"-lstdc++",  				);  				PRODUCT_NAME = "Toilet Lisp";  				USER_HEADER_SEARCH_PATHS = "/opt/homebrew/include /opt/local/include"; @@ -1301,6 +1454,7 @@  		A72BC6F50E65DE4900486804 /* Release */ = {  			isa = XCBuildConfiguration;  			buildSettings = { +				COMBINE_HIDPI_IMAGES = YES;  				COPY_PHASE_STRIP = YES;  				GCC_ENABLE_OBJC_EXCEPTIONS = YES;  				GCC_GENERATE_DEBUGGING_SYMBOLS = NO; @@ -1332,39 +1486,89 @@  					"-L/opt/local/lib",  					"-lpthread",  					"-lm", -					"-lLLVMObject", -					"-lLLVMMCJIT", -					"-lLLVMMCDisassembler", -					"-lLLVMLinker", -					"-lLLVMipo", -					"-lLLVMInterpreter", +					"-lstdc++", +					"-lLLVMAsmParser",  					"-lLLVMInstrumentation", +					"-lLLVMLinker", +					"-lLLVMArchive", +					"-lLLVMBitReader", +					"-lLLVMDebugInfo",  					"-lLLVMJIT", -					"-lLLVMExecutionEngine", +					"-lLLVMipo", +					"-lLLVMVectorize",  					"-lLLVMBitWriter", -					"-lLLVMX86Disassembler", +					"-lLLVMTableGen", +					"-lLLVMHexagonCodeGen", +					"-lLLVMHexagonDesc", +					"-lLLVMHexagonInfo", +					"-lLLVMHexagonAsmPrinter", +					"-lLLVMNVPTXCodeGen", +					"-lLLVMNVPTXDesc", +					"-lLLVMNVPTXAsmPrinter", +					"-lLLVMNVPTXInfo", +					"-lLLVMMBlazeCodeGen", +					"-lLLVMMBlazeDisassembler", +					"-lLLVMMBlazeDesc", +					"-lLLVMMBlazeAsmPrinter", +					"-lLLVMMBlazeAsmParser", +					"-lLLVMMBlazeInfo", +					"-lLLVMCppBackendCodeGen", +					"-lLLVMCppBackendInfo", +					"-lLLVMMSP430CodeGen", +					"-lLLVMMSP430Desc", +					"-lLLVMMSP430Info", +					"-lLLVMMSP430AsmPrinter", +					"-lLLVMXCoreCodeGen", +					"-lLLVMXCoreDesc", +					"-lLLVMXCoreInfo", +					"-lLLVMCellSPUCodeGen", +					"-lLLVMCellSPUDesc", +					"-lLLVMCellSPUInfo", +					"-lLLVMMipsCodeGen", +					"-lLLVMMipsAsmParser", +					"-lLLVMMipsDisassembler", +					"-lLLVMMipsDesc", +					"-lLLVMMipsAsmPrinter", +					"-lLLVMMipsInfo", +					"-lLLVMARMDisassembler", +					"-lLLVMARMAsmParser", +					"-lLLVMARMCodeGen", +					"-lLLVMARMDesc", +					"-lLLVMARMInfo", +					"-lLLVMARMAsmPrinter", +					"-lLLVMPowerPCCodeGen", +					"-lLLVMPowerPCDesc", +					"-lLLVMPowerPCInfo", +					"-lLLVMPowerPCAsmPrinter", +					"-lLLVMSparcCodeGen", +					"-lLLVMSparcDesc", +					"-lLLVMSparcInfo",  					"-lLLVMX86AsmParser", +					"-lLLVMX86Disassembler",  					"-lLLVMX86CodeGen",  					"-lLLVMSelectionDAG", +					"-lLLVMAsmPrinter", +					"-lLLVMX86Desc", +					"-lLLVMX86Info",  					"-lLLVMX86AsmPrinter",  					"-lLLVMX86Utils", -					"-lLLVMX86Info", -					"-lLLVMAsmPrinter", +					"-lLLVMMCDisassembler",  					"-lLLVMMCParser", +					"-lLLVMInterpreter",  					"-lLLVMCodeGen",  					"-lLLVMScalarOpts",  					"-lLLVMInstCombine",  					"-lLLVMTransformUtils",  					"-lLLVMipa", -					"-lLLVMAsmParser", -					"-lLLVMArchive", -					"-lLLVMBitReader",  					"-lLLVMAnalysis", +					"-lLLVMMCJIT", +					"-lLLVMRuntimeDyld", +					"-lLLVMExecutionEngine",  					"-lLLVMTarget",  					"-lLLVMMC", +					"-lLLVMObject",  					"-lLLVMCore",  					"-lLLVMSupport", -					"-lstdc++",  				);  				PRODUCT_NAME = "Toilet Lisp";  				USER_HEADER_SEARCH_PATHS = "/opt/homebrew/include /opt/local/include"; @@ -1376,6 +1580,7 @@  		A72BC6F60E65DE4900486804 /* Release 10.4+ (fast) */ = {  			isa = XCBuildConfiguration;  			buildSettings = { +				COMBINE_HIDPI_IMAGES = YES;  				GCC_ENABLE_OBJC_EXCEPTIONS = YES;  				GCC_MODEL_TUNING = G5;  				GCC_PRECOMPILE_PREFIX_HEADER = YES; @@ -1405,39 +1610,89 @@  					"-L/opt/local/lib",  					"-lpthread",  					"-lm", -					"-lLLVMObject", -					"-lLLVMMCJIT", -					"-lLLVMMCDisassembler", -					"-lLLVMLinker", -					"-lLLVMipo", -					"-lLLVMInterpreter", +					"-lstdc++", +					"-lLLVMAsmParser",  					"-lLLVMInstrumentation", +					"-lLLVMLinker", +					"-lLLVMArchive", +					"-lLLVMBitReader", +					"-lLLVMDebugInfo",  					"-lLLVMJIT", -					"-lLLVMExecutionEngine", +					"-lLLVMipo", +					"-lLLVMVectorize",  					"-lLLVMBitWriter", -					"-lLLVMX86Disassembler", +					"-lLLVMTableGen", +					"-lLLVMHexagonCodeGen", +					"-lLLVMHexagonDesc", +					"-lLLVMHexagonInfo", +					"-lLLVMHexagonAsmPrinter", +					"-lLLVMNVPTXCodeGen", +					"-lLLVMNVPTXDesc", +					"-lLLVMNVPTXAsmPrinter", +					"-lLLVMNVPTXInfo", +					"-lLLVMMBlazeCodeGen", +					"-lLLVMMBlazeDisassembler", +					"-lLLVMMBlazeDesc", +					"-lLLVMMBlazeAsmPrinter", +					"-lLLVMMBlazeAsmParser", +					"-lLLVMMBlazeInfo", +					"-lLLVMCppBackendCodeGen", +					"-lLLVMCppBackendInfo", +					"-lLLVMMSP430CodeGen", +					"-lLLVMMSP430Desc", +					"-lLLVMMSP430Info", +					"-lLLVMMSP430AsmPrinter", +					"-lLLVMXCoreCodeGen", +					"-lLLVMXCoreDesc", +					"-lLLVMXCoreInfo", +					"-lLLVMCellSPUCodeGen", +					"-lLLVMCellSPUDesc", +					"-lLLVMCellSPUInfo", +					"-lLLVMMipsCodeGen", +					"-lLLVMMipsAsmParser", +					"-lLLVMMipsDisassembler", +					"-lLLVMMipsDesc", +					"-lLLVMMipsAsmPrinter", +					"-lLLVMMipsInfo", +					"-lLLVMARMDisassembler", +					"-lLLVMARMAsmParser", +					"-lLLVMARMCodeGen", +					"-lLLVMARMDesc", +					"-lLLVMARMInfo", +					"-lLLVMARMAsmPrinter", +					"-lLLVMPowerPCCodeGen", +					"-lLLVMPowerPCDesc", +					"-lLLVMPowerPCInfo", +					"-lLLVMPowerPCAsmPrinter", +					"-lLLVMSparcCodeGen", +					"-lLLVMSparcDesc", +					"-lLLVMSparcInfo",  					"-lLLVMX86AsmParser", +					"-lLLVMX86Disassembler",  					"-lLLVMX86CodeGen",  					"-lLLVMSelectionDAG", +					"-lLLVMAsmPrinter", +					"-lLLVMX86Desc", +					"-lLLVMX86Info",  					"-lLLVMX86AsmPrinter",  					"-lLLVMX86Utils", -					"-lLLVMX86Info", -					"-lLLVMAsmPrinter", +					"-lLLVMMCDisassembler",  					"-lLLVMMCParser", +					"-lLLVMInterpreter",  					"-lLLVMCodeGen",  					"-lLLVMScalarOpts",  					"-lLLVMInstCombine",  					"-lLLVMTransformUtils",  					"-lLLVMipa", -					"-lLLVMAsmParser", -					"-lLLVMArchive", -					"-lLLVMBitReader",  					"-lLLVMAnalysis", +					"-lLLVMMCJIT", +					"-lLLVMRuntimeDyld", +					"-lLLVMExecutionEngine",  					"-lLLVMTarget",  					"-lLLVMMC", +					"-lLLVMObject",  					"-lLLVMCore",  					"-lLLVMSupport", -					"-lstdc++",  				);  				PRODUCT_NAME = "Toilet Lisp";  				USER_HEADER_SEARCH_PATHS = "/opt/homebrew/include /opt/local/include"; @@ -1449,6 +1704,7 @@  		A72BC6F70E65DE4900486804 /* Release 10.4+ (fast + GC) */ = {  			isa = XCBuildConfiguration;  			buildSettings = { +				COMBINE_HIDPI_IMAGES = YES;  				GCC_ENABLE_OBJC_EXCEPTIONS = YES;  				GCC_ENABLE_OBJC_GC = required;  				GCC_MODEL_TUNING = G5; @@ -1479,39 +1735,89 @@  					"-L/opt/local/lib",  					"-lpthread",  					"-lm", -					"-lLLVMObject", -					"-lLLVMMCJIT", -					"-lLLVMMCDisassembler", -					"-lLLVMLinker", -					"-lLLVMipo", -					"-lLLVMInterpreter", +					"-lstdc++", +					"-lLLVMAsmParser",  					"-lLLVMInstrumentation", +					"-lLLVMLinker", +					"-lLLVMArchive", +					"-lLLVMBitReader", +					"-lLLVMDebugInfo",  					"-lLLVMJIT", -					"-lLLVMExecutionEngine", +					"-lLLVMipo", +					"-lLLVMVectorize",  					"-lLLVMBitWriter", -					"-lLLVMX86Disassembler", +					"-lLLVMTableGen", +					"-lLLVMHexagonCodeGen", +					"-lLLVMHexagonDesc", +					"-lLLVMHexagonInfo", +					"-lLLVMHexagonAsmPrinter", +					"-lLLVMNVPTXCodeGen", +					"-lLLVMNVPTXDesc", +					"-lLLVMNVPTXAsmPrinter", +					"-lLLVMNVPTXInfo", +					"-lLLVMMBlazeCodeGen", +					"-lLLVMMBlazeDisassembler", +					"-lLLVMMBlazeDesc", +					"-lLLVMMBlazeAsmPrinter", +					"-lLLVMMBlazeAsmParser", +					"-lLLVMMBlazeInfo", +					"-lLLVMCppBackendCodeGen", +					"-lLLVMCppBackendInfo", +					"-lLLVMMSP430CodeGen", +					"-lLLVMMSP430Desc", +					"-lLLVMMSP430Info", +					"-lLLVMMSP430AsmPrinter", +					"-lLLVMXCoreCodeGen", +					"-lLLVMXCoreDesc", +					"-lLLVMXCoreInfo", +					"-lLLVMCellSPUCodeGen", +					"-lLLVMCellSPUDesc", +					"-lLLVMCellSPUInfo", +					"-lLLVMMipsCodeGen", +					"-lLLVMMipsAsmParser", +					"-lLLVMMipsDisassembler", +					"-lLLVMMipsDesc", +					"-lLLVMMipsAsmPrinter", +					"-lLLVMMipsInfo", +					"-lLLVMARMDisassembler", +					"-lLLVMARMAsmParser", +					"-lLLVMARMCodeGen", +					"-lLLVMARMDesc", +					"-lLLVMARMInfo", +					"-lLLVMARMAsmPrinter", +					"-lLLVMPowerPCCodeGen", +					"-lLLVMPowerPCDesc", +					"-lLLVMPowerPCInfo", +					"-lLLVMPowerPCAsmPrinter", +					"-lLLVMSparcCodeGen", +					"-lLLVMSparcDesc", +					"-lLLVMSparcInfo",  					"-lLLVMX86AsmParser", +					"-lLLVMX86Disassembler",  					"-lLLVMX86CodeGen",  					"-lLLVMSelectionDAG", +					"-lLLVMAsmPrinter", +					"-lLLVMX86Desc", +					"-lLLVMX86Info",  					"-lLLVMX86AsmPrinter",  					"-lLLVMX86Utils", -					"-lLLVMX86Info", -					"-lLLVMAsmPrinter", +					"-lLLVMMCDisassembler",  					"-lLLVMMCParser", +					"-lLLVMInterpreter",  					"-lLLVMCodeGen",  					"-lLLVMScalarOpts",  					"-lLLVMInstCombine",  					"-lLLVMTransformUtils",  					"-lLLVMipa", -					"-lLLVMAsmParser", -					"-lLLVMArchive", -					"-lLLVMBitReader",  					"-lLLVMAnalysis", +					"-lLLVMMCJIT", +					"-lLLVMRuntimeDyld", +					"-lLLVMExecutionEngine",  					"-lLLVMTarget",  					"-lLLVMMC", +					"-lLLVMObject",  					"-lLLVMCore",  					"-lLLVMSupport", -					"-lstdc++",  				);  				PRODUCT_NAME = "Toilet Lisp";  				USER_HEADER_SEARCH_PATHS = "/opt/homebrew/include /opt/local/include"; @@ -1523,6 +1829,7 @@  		A745C3530E607C8700C43A04 /* Debug */ = {  			isa = XCBuildConfiguration;  			buildSettings = { +				COMBINE_HIDPI_IMAGES = YES;  				COPY_PHASE_STRIP = NO;  				GCC_DYNAMIC_NO_PIC = NO;  				GCC_ENABLE_OBJC_EXCEPTIONS = YES; @@ -1571,6 +1878,7 @@  		A745C3540E607C8700C43A04 /* Debug 10.4+ (fast) */ = {  			isa = XCBuildConfiguration;  			buildSettings = { +				COMBINE_HIDPI_IMAGES = YES;  				GCC_ENABLE_OBJC_EXCEPTIONS = YES;  				GCC_MODEL_TUNING = G5;  				GCC_PRECOMPILE_PREFIX_HEADER = YES; @@ -1615,6 +1923,7 @@  		A745C3550E607C8700C43A04 /* Debug 10.4+ (fast + GC) */ = {  			isa = XCBuildConfiguration;  			buildSettings = { +				COMBINE_HIDPI_IMAGES = YES;  				GCC_ENABLE_OBJC_EXCEPTIONS = YES;  				GCC_ENABLE_OBJC_GC = supported;  				GCC_MODEL_TUNING = G5; @@ -1660,6 +1969,7 @@  		A745C3560E607C8700C43A04 /* Release */ = {  			isa = XCBuildConfiguration;  			buildSettings = { +				COMBINE_HIDPI_IMAGES = YES;  				COPY_PHASE_STRIP = YES;  				GCC_ENABLE_OBJC_EXCEPTIONS = YES;  				GCC_GENERATE_DEBUGGING_SYMBOLS = NO; @@ -1706,6 +2016,7 @@  		A745C3570E607C8700C43A04 /* Release 10.4+ (fast) */ = {  			isa = XCBuildConfiguration;  			buildSettings = { +				COMBINE_HIDPI_IMAGES = YES;  				GCC_ENABLE_OBJC_EXCEPTIONS = YES;  				GCC_MODEL_TUNING = G5;  				GCC_PRECOMPILE_PREFIX_HEADER = YES; @@ -1750,6 +2061,7 @@  		A745C3580E607C8700C43A04 /* Release 10.4+ (fast + GC) */ = {  			isa = XCBuildConfiguration;  			buildSettings = { +				COMBINE_HIDPI_IMAGES = YES;  				GCC_ENABLE_OBJC_EXCEPTIONS = YES;  				GCC_ENABLE_OBJC_GC = supported;  				GCC_MODEL_TUNING = G5; @@ -2053,6 +2365,7 @@  		A78711410E4C46FA00A7191F /* Debug 10.4+ (fast) */ = {  			isa = XCBuildConfiguration;  			buildSettings = { +				COMBINE_HIDPI_IMAGES = YES;  				COPY_PHASE_STRIP = NO;  				DYLIB_COMPATIBILITY_VERSION = 1;  				DYLIB_CURRENT_VERSION = 1; @@ -2174,10 +2487,17 @@  			isa = XCBuildConfiguration;  			buildSettings = {  				ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; +				CLANG_WARN_CONSTANT_CONVERSION = YES; +				CLANG_WARN_ENUM_CONVERSION = YES; +				CLANG_WARN_INT_CONVERSION = YES; +				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;  				COPY_PHASE_STRIP = NO;  				GCC_ENABLE_OBJC_GC = supported;  				GCC_INPUT_FILETYPE = automatic;  				GCC_VERSION = com.apple.compilers.llvm.clang.1_0; +				GCC_WARN_ABOUT_RETURN_TYPE = YES; +				GCC_WARN_UNINITIALIZED_AUTOS = YES; +				GCC_WARN_UNUSED_VARIABLE = YES;  				ONLY_ACTIVE_ARCH = YES;  				OTHER_CFLAGS = (  					"$(inherited)", @@ -2195,6 +2515,7 @@  		A78711440E4C473D00A7191F /* Debug 10.4+ (fast + GC) */ = {  			isa = XCBuildConfiguration;  			buildSettings = { +				COMBINE_HIDPI_IMAGES = YES;  				COPY_PHASE_STRIP = NO;  				DYLIB_COMPATIBILITY_VERSION = 1;  				DYLIB_CURRENT_VERSION = 1; @@ -2318,10 +2639,17 @@  			isa = XCBuildConfiguration;  			buildSettings = {  				ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; +				CLANG_WARN_CONSTANT_CONVERSION = YES; +				CLANG_WARN_ENUM_CONVERSION = YES; +				CLANG_WARN_INT_CONVERSION = YES; +				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;  				COPY_PHASE_STRIP = NO;  				GCC_ENABLE_OBJC_GC = supported;  				GCC_INPUT_FILETYPE = automatic;  				GCC_VERSION = com.apple.compilers.llvm.clang.1_0; +				GCC_WARN_ABOUT_RETURN_TYPE = YES; +				GCC_WARN_UNINITIALIZED_AUTOS = YES; +				GCC_WARN_UNUSED_VARIABLE = YES;  				ONLY_ACTIVE_ARCH = YES;  				OTHER_CFLAGS = (  					"$(inherited)", @@ -2345,6 +2673,7 @@  					i386,  					x86_64,  				); +				COMBINE_HIDPI_IMAGES = YES;  				COPY_PHASE_STRIP = YES;  				DYLIB_COMPATIBILITY_VERSION = 1;  				DYLIB_CURRENT_VERSION = 1; @@ -2391,6 +2720,7 @@  					i386,  					x86_64,  				); +				COMBINE_HIDPI_IMAGES = YES;  				COPY_PHASE_STRIP = YES;  				DYLIB_COMPATIBILITY_VERSION = 1;  				DYLIB_CURRENT_VERSION = 1; @@ -2598,10 +2928,17 @@  			isa = XCBuildConfiguration;  			buildSettings = {  				ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; +				CLANG_WARN_CONSTANT_CONVERSION = YES; +				CLANG_WARN_ENUM_CONVERSION = YES; +				CLANG_WARN_INT_CONVERSION = YES; +				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;  				COPY_PHASE_STRIP = YES;  				GCC_ENABLE_OBJC_GC = supported;  				GCC_INPUT_FILETYPE = automatic;  				GCC_VERSION = com.apple.compilers.llvm.clang.1_0; +				GCC_WARN_ABOUT_RETURN_TYPE = YES; +				GCC_WARN_UNINITIALIZED_AUTOS = YES; +				GCC_WARN_UNUSED_VARIABLE = YES;  				ONLY_ACTIVE_ARCH = YES;  				OTHER_CFLAGS = (  					"$(inherited)", @@ -2620,10 +2957,17 @@  			isa = XCBuildConfiguration;  			buildSettings = {  				ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; +				CLANG_WARN_CONSTANT_CONVERSION = YES; +				CLANG_WARN_ENUM_CONVERSION = YES; +				CLANG_WARN_INT_CONVERSION = YES; +				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;  				COPY_PHASE_STRIP = YES;  				GCC_ENABLE_OBJC_GC = supported;  				GCC_INPUT_FILETYPE = automatic;  				GCC_VERSION = com.apple.compilers.llvm.clang.1_0; +				GCC_WARN_ABOUT_RETURN_TYPE = YES; +				GCC_WARN_UNINITIALIZED_AUTOS = YES; +				GCC_WARN_UNUSED_VARIABLE = YES;  				ONLY_ACTIVE_ARCH = YES;  				OTHER_CFLAGS = (  					"$(inherited)", @@ -2642,10 +2986,17 @@  			isa = XCBuildConfiguration;  			buildSettings = {  				ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; +				CLANG_WARN_CONSTANT_CONVERSION = YES; +				CLANG_WARN_ENUM_CONVERSION = YES; +				CLANG_WARN_INT_CONVERSION = YES; +				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;  				COPY_PHASE_STRIP = NO;  				GCC_ENABLE_OBJC_GC = supported;  				GCC_INPUT_FILETYPE = automatic;  				GCC_VERSION = com.apple.compilers.llvm.clang.1_0; +				GCC_WARN_ABOUT_RETURN_TYPE = YES; +				GCC_WARN_UNINITIALIZED_AUTOS = YES; +				GCC_WARN_UNUSED_VARIABLE = YES;  				ONLY_ACTIVE_ARCH = YES;  				OTHER_CFLAGS = (  					"$(inherited)", @@ -2664,10 +3015,17 @@  			isa = XCBuildConfiguration;  			buildSettings = {  				ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; +				CLANG_WARN_CONSTANT_CONVERSION = YES; +				CLANG_WARN_ENUM_CONVERSION = YES; +				CLANG_WARN_INT_CONVERSION = YES; +				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;  				COPY_PHASE_STRIP = YES;  				GCC_ENABLE_OBJC_GC = supported;  				GCC_INPUT_FILETYPE = automatic;  				GCC_VERSION = com.apple.compilers.llvm.clang.1_0; +				GCC_WARN_ABOUT_RETURN_TYPE = YES; +				GCC_WARN_UNINITIALIZED_AUTOS = YES; +				GCC_WARN_UNUSED_VARIABLE = YES;  				ONLY_ACTIVE_ARCH = YES;  				OTHER_CFLAGS = (  					"$(inherited)", @@ -2685,6 +3043,7 @@  		A7E5C3EE0E2168A000A01D81 /* Debug */ = {  			isa = XCBuildConfiguration;  			buildSettings = { +				COMBINE_HIDPI_IMAGES = YES;  				COPY_PHASE_STRIP = NO;  				DYLIB_COMPATIBILITY_VERSION = 1;  				DYLIB_CURRENT_VERSION = 1; @@ -2732,6 +3091,7 @@  					i386,  					x86_64,  				); +				COMBINE_HIDPI_IMAGES = YES;  				COPY_PHASE_STRIP = YES;  				DYLIB_COMPATIBILITY_VERSION = 1;  				DYLIB_CURRENT_VERSION = 1; diff --git a/llvm_context.h b/llvm_context.h index f2acdd7..97f111e 100644 --- a/llvm_context.h +++ b/llvm_context.h @@ -13,12 +13,12 @@  #include <llvm/LLVMContext.h>   extern llvm::LLVMContext* llvm_context; -extern const llvm::Type* Int8Ty; -extern const llvm::Type* Int16Ty; -extern const llvm::Type* Int32Ty; -extern const llvm::Type* Int64Ty; -extern const llvm::Type* VoidTy; -extern const llvm::PointerType* VoidPointerTy; -extern const llvm::PointerType* PointerPointerTy; +extern llvm::Type* Int8Ty; +extern llvm::Type* Int16Ty; +extern llvm::Type* Int32Ty; +extern llvm::Type* Int64Ty; +extern llvm::Type* VoidTy; +extern llvm::PointerType* VoidPointerTy; +extern llvm::PointerType* PointerPointerTy;  #endif diff --git a/llvm_context.mm b/llvm_context.mm index 5eefdb4..0c5480e 100644 --- a/llvm_context.mm +++ b/llvm_context.mm @@ -17,11 +17,11 @@ using namespace llvm;  LLVMContext *llvm_context;  //const Type* IntPtrTy = IntegerType::getInt32Ty(C); -const Type* Int8Ty; -const Type* Int16Ty; -const Type* Int32Ty; -const Type* Int64Ty; +Type* Int8Ty; +Type* Int16Ty; +Type* Int32Ty; +Type* Int64Ty;  //const Type* VoidTy = TypeBuilder<void, false>::get(llvm_context); -const Type* VoidTy; -const PointerType* VoidPointerTy; -const PointerType* PointerPointerTy; +Type* VoidTy; +PointerType* VoidPointerTy; +PointerType* PointerPointerTy; | 
