# HG changeset patch # User Jan Vrany # Date 1443149475 -3600 # Node ID 17a2d1d9f2057e9bedaed05b8ebbbb9cc2213418 # Parent 10a95d798b36f9ec5c95373a8ed59a0e99166322 Added standalone Tea compiler - teak It allows for compilation of .tea files from the command line. diff -r 10a95d798b36 -r 17a2d1d9f205 compiler/Make.proto --- a/compiler/Make.proto Wed Sep 23 22:21:44 2015 +0100 +++ b/compiler/Make.proto Fri Sep 25 03:51:15 2015 +0100 @@ -108,6 +108,7 @@ cd $(TOP)/libview && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)" cd $(TOP)/libview2 && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)" cd $(TOP)/goodies/sunit && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)" + cd ../../llvm_s && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)" @@ -130,7 +131,6 @@ $(OUTDIR)TClassDefinition.$(O) TClassDefinition.$(H): TClassDefinition.st $(INCLUDE_TOP)/stx/goodies/ring/RGBehaviorDefinition.$(H) $(INCLUDE_TOP)/stx/goodies/ring/RGClassDefinition.$(H) $(INCLUDE_TOP)/stx/goodies/ring/RGClassDescriptionDefinition.$(H) $(INCLUDE_TOP)/stx/goodies/ring/RGDefinition.$(H) $(INCLUDE_TOP)/stx/goodies/ring/RGGlobalDefinition.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR) $(OUTDIR)TCompilationUnitDefinition.$(O) TCompilationUnitDefinition.$(H): TCompilationUnitDefinition.st $(INCLUDE_TOP)/stx/goodies/ring/RGAbstractContainer.$(H) $(INCLUDE_TOP)/stx/goodies/ring/RGDefinition.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR) $(OUTDIR)TCompiler.$(O) TCompiler.$(H): TCompiler.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR) -$(OUTDIR)TCompilerContext.$(O) TCompilerContext.$(H): TCompilerContext.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR) $(OUTDIR)TCompilerError.$(O) TCompilerError.$(H): TCompilerError.st $(INCLUDE_TOP)/stx/libbasic/Error.$(H) $(INCLUDE_TOP)/stx/libbasic/Exception.$(H) $(INCLUDE_TOP)/stx/libbasic/GenericException.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR) $(OUTDIR)TEnvironmentProvider.$(O) TEnvironmentProvider.$(H): TEnvironmentProvider.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR) $(OUTDIR)TFormatter.$(O) TFormatter.$(H): TFormatter.st $(INCLUDE_TOP)/stx/goodies/refactoryBrowser/parser/RBFormatter.$(H) $(INCLUDE_TOP)/stx/goodies/refactoryBrowser/parser/RBProgramNodeVisitor.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR) @@ -146,6 +146,8 @@ $(OUTDIR)TTypeSpecNode.$(O) TTypeSpecNode.$(H): TTypeSpecNode.st $(INCLUDE_TOP)/stx/goodies/refactoryBrowser/parser/RBProgramNode.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR) $(OUTDIR)jv_tea_compiler.$(O) jv_tea_compiler.$(H): jv_tea_compiler.st $(INCLUDE_TOP)/stx/libbasic/LibraryDefinition.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic/ProjectDefinition.$(H) $(STCHDR) $(OUTDIR)TBinding.$(O) TBinding.$(H): TBinding.st $(INCLUDE_TOP)/jv/tea/compiler/TObjectWithProperties.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR) +$(OUTDIR)TCompilerContext.$(O) TCompilerContext.$(H): TCompilerContext.st $(INCLUDE_TOP)/jv/tea/compiler/TObjectWithProperties.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR) +$(OUTDIR)TCompilerOptions.$(O) TCompilerOptions.$(H): TCompilerOptions.st $(INCLUDE_TOP)/jv/tea/compiler/TObjectWithProperties.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR) $(OUTDIR)TCompilerPass.$(O) TCompilerPass.$(H): TCompilerPass.st $(INCLUDE_TOP)/jv/tea/compiler/TProgramNodeVisitor.$(H) $(INCLUDE_TOP)/stx/goodies/refactoryBrowser/parser/RBProgramNodeVisitor.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR) $(OUTDIR)TEnvironment.$(O) TEnvironment.$(H): TEnvironment.st $(INCLUDE_TOP)/jv/tea/compiler/TNamespaceDefinition.$(H) $(INCLUDE_TOP)/stx/goodies/ring/RGAbstractContainer.$(H) $(INCLUDE_TOP)/stx/goodies/ring/RGContainer.$(H) $(INCLUDE_TOP)/stx/goodies/ring/RGDefinition.$(H) $(INCLUDE_TOP)/stx/goodies/ring/RGNamespace.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR) $(OUTDIR)TFilesystemProvider.$(O) TFilesystemProvider.$(H): TFilesystemProvider.st $(INCLUDE_TOP)/jv/tea/compiler/TEnvironmentProvider.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR) @@ -156,7 +158,7 @@ $(OUTDIR)TBlockType.$(O) TBlockType.$(H): TBlockType.st $(INCLUDE_TOP)/jv/tea/compiler/TObjectWithProperties.$(H) $(INCLUDE_TOP)/jv/tea/compiler/TType.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR) $(OUTDIR)TClassBinding.$(O) TClassBinding.$(H): TClassBinding.st $(INCLUDE_TOP)/jv/tea/compiler/TBinding.$(H) $(INCLUDE_TOP)/jv/tea/compiler/TObjectWithProperties.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR) $(OUTDIR)TFunctionBinding.$(O) TFunctionBinding.$(H): TFunctionBinding.st $(INCLUDE_TOP)/jv/tea/compiler/TBinding.$(H) $(INCLUDE_TOP)/jv/tea/compiler/TObjectWithProperties.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR) -$(OUTDIR)TLLVMCodeGenerator.$(O) TLLVMCodeGenerator.$(H): TLLVMCodeGenerator.st $(INCLUDE_TOP)/jv/tea/compiler/TCompilerPass.$(H) $(INCLUDE_TOP)/jv/tea/compiler/TProgramNodeVisitor.$(H) $(INCLUDE_TOP)/stx/goodies/refactoryBrowser/parser/RBProgramNodeVisitor.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR) +$(OUTDIR)TLLVMCodeGenerator.$(O) TLLVMCodeGenerator.$(H): TLLVMCodeGenerator.st $(INCLUDE_TOP)/jv/llvm_s/LLVMAtomicOrdering.$(H) $(INCLUDE_TOP)/jv/llvm_s/LLVMAtomicRMWBinOp.$(H) $(INCLUDE_TOP)/jv/llvm_s/LLVMAttribute.$(H) $(INCLUDE_TOP)/jv/llvm_s/LLVMByteOrdering.$(H) $(INCLUDE_TOP)/jv/llvm_s/LLVMCallConv.$(H) $(INCLUDE_TOP)/jv/llvm_s/LLVMDLLStorageClass.$(H) $(INCLUDE_TOP)/jv/llvm_s/LLVMIntPredicate.$(H) $(INCLUDE_TOP)/jv/tea/compiler/TCompilerPass.$(H) $(INCLUDE_TOP)/jv/tea/compiler/TProgramNodeVisitor.$(H) $(INCLUDE_TOP)/stx/goodies/refactoryBrowser/parser/RBProgramNodeVisitor.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR) $(OUTDIR)TNamespaceBinding.$(O) TNamespaceBinding.$(H): TNamespaceBinding.st $(INCLUDE_TOP)/jv/tea/compiler/TBinding.$(H) $(INCLUDE_TOP)/jv/tea/compiler/TObjectWithProperties.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR) $(OUTDIR)TSemanticAnalyser.$(O) TSemanticAnalyser.$(H): TSemanticAnalyser.st $(INCLUDE_TOP)/jv/tea/compiler/TCompilerPass.$(H) $(INCLUDE_TOP)/jv/tea/compiler/TProgramNodeVisitor.$(H) $(INCLUDE_TOP)/stx/goodies/refactoryBrowser/parser/RBProgramNodeVisitor.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR) $(OUTDIR)TSimpleType.$(O) TSimpleType.$(H): TSimpleType.st $(INCLUDE_TOP)/jv/tea/compiler/TObjectWithProperties.$(H) $(INCLUDE_TOP)/jv/tea/compiler/TType.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR) diff -r 10a95d798b36 -r 17a2d1d9f205 compiler/Make.spec --- a/compiler/Make.spec Wed Sep 23 22:21:44 2015 +0100 +++ b/compiler/Make.spec Fri Sep 25 03:51:15 2015 +0100 @@ -54,7 +54,6 @@ TClassDefinition \ TCompilationUnitDefinition \ TCompiler \ - TCompilerContext \ TCompilerError \ TEnvironmentProvider \ TFormatter \ @@ -70,6 +69,8 @@ TTypeSpecNode \ jv_tea_compiler \ TBinding \ + TCompilerContext \ + TCompilerOptions \ TCompilerPass \ TEnvironment \ TFilesystemProvider \ @@ -100,7 +101,6 @@ $(OUTDIR_SLASH)TClassDefinition.$(O) \ $(OUTDIR_SLASH)TCompilationUnitDefinition.$(O) \ $(OUTDIR_SLASH)TCompiler.$(O) \ - $(OUTDIR_SLASH)TCompilerContext.$(O) \ $(OUTDIR_SLASH)TCompilerError.$(O) \ $(OUTDIR_SLASH)TEnvironmentProvider.$(O) \ $(OUTDIR_SLASH)TFormatter.$(O) \ @@ -116,6 +116,8 @@ $(OUTDIR_SLASH)TTypeSpecNode.$(O) \ $(OUTDIR_SLASH)jv_tea_compiler.$(O) \ $(OUTDIR_SLASH)TBinding.$(O) \ + $(OUTDIR_SLASH)TCompilerContext.$(O) \ + $(OUTDIR_SLASH)TCompilerOptions.$(O) \ $(OUTDIR_SLASH)TCompilerPass.$(O) \ $(OUTDIR_SLASH)TEnvironment.$(O) \ $(OUTDIR_SLASH)TFilesystemProvider.$(O) \ diff -r 10a95d798b36 -r 17a2d1d9f205 compiler/TArgumentBinding.st --- a/compiler/TArgumentBinding.st Wed Sep 23 22:21:44 2015 +0100 +++ b/compiler/TArgumentBinding.st Fri Sep 25 03:51:15 2015 +0100 @@ -1,3 +1,16 @@ +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" "{ Package: 'jv:tea/compiler' }" "{ NameSpace: Smalltalk }" @@ -9,6 +22,23 @@ category:'Languages-Tea-Compiler-Bindings' ! +!TArgumentBinding class methodsFor:'documentation'! + +copyright +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" +! ! !TArgumentBinding methodsFor:'accessing'! diff -r 10a95d798b36 -r 17a2d1d9f205 compiler/TAutomaticType.st --- a/compiler/TAutomaticType.st Wed Sep 23 22:21:44 2015 +0100 +++ b/compiler/TAutomaticType.st Fri Sep 25 03:51:15 2015 +0100 @@ -1,3 +1,16 @@ +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" "{ Package: 'jv:tea/compiler' }" "{ NameSpace: Smalltalk }" @@ -9,6 +22,24 @@ category:'Languages-Tea-Compiler-Types' ! +!TAutomaticType class methodsFor:'documentation'! + +copyright +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" +! ! + !TAutomaticType methodsFor:'comparing'! = anotherType diff -r 10a95d798b36 -r 17a2d1d9f205 compiler/TBinding.st --- a/compiler/TBinding.st Wed Sep 23 22:21:44 2015 +0100 +++ b/compiler/TBinding.st Fri Sep 25 03:51:15 2015 +0100 @@ -1,3 +1,16 @@ +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" "{ Package: 'jv:tea/compiler' }" "{ NameSpace: Smalltalk }" @@ -9,6 +22,23 @@ category:'Languages-Tea-Compiler-Bindings' ! +!TBinding class methodsFor:'documentation'! + +copyright +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" +! ! !TBinding methodsFor:'accessing'! diff -r 10a95d798b36 -r 17a2d1d9f205 compiler/TBlockBinding.st --- a/compiler/TBlockBinding.st Wed Sep 23 22:21:44 2015 +0100 +++ b/compiler/TBlockBinding.st Fri Sep 25 03:51:15 2015 +0100 @@ -1,3 +1,16 @@ +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" "{ Package: 'jv:tea/compiler' }" "{ NameSpace: Smalltalk }" @@ -9,6 +22,24 @@ category:'Languages-Tea-Compiler-Bindings' ! +!TBlockBinding class methodsFor:'documentation'! + +copyright +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" +! ! + !TBlockBinding methodsFor:'testing'! isMethodBlock diff -r 10a95d798b36 -r 17a2d1d9f205 compiler/TBlockType.st --- a/compiler/TBlockType.st Wed Sep 23 22:21:44 2015 +0100 +++ b/compiler/TBlockType.st Fri Sep 25 03:51:15 2015 +0100 @@ -1,3 +1,16 @@ +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" "{ Package: 'jv:tea/compiler' }" "{ NameSpace: Smalltalk }" @@ -9,6 +22,24 @@ category:'Languages-Tea-Compiler-Types' ! +!TBlockType class methodsFor:'documentation'! + +copyright +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" +! ! + !TBlockType class methodsFor:'instance creation'! parameters: parameterTypes returning: returnType diff -r 10a95d798b36 -r 17a2d1d9f205 compiler/TClassBinding.st --- a/compiler/TClassBinding.st Wed Sep 23 22:21:44 2015 +0100 +++ b/compiler/TClassBinding.st Fri Sep 25 03:51:15 2015 +0100 @@ -1,3 +1,16 @@ +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" "{ Package: 'jv:tea/compiler' }" "{ NameSpace: Smalltalk }" @@ -9,6 +22,24 @@ category:'Languages-Tea-Compiler-Bindings' ! +!TClassBinding class methodsFor:'documentation'! + +copyright +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" +! ! + !TClassBinding class methodsFor:'instance creation'! clazz: aTClassDefinition diff -r 10a95d798b36 -r 17a2d1d9f205 compiler/TClassDefinition.st --- a/compiler/TClassDefinition.st Wed Sep 23 22:21:44 2015 +0100 +++ b/compiler/TClassDefinition.st Fri Sep 25 03:51:15 2015 +0100 @@ -1,3 +1,16 @@ +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" "{ Package: 'jv:tea/compiler' }" "{ NameSpace: Smalltalk }" @@ -9,6 +22,24 @@ category:'Languages-Tea-Compiler-Model' ! +!TClassDefinition class methodsFor:'documentation'! + +copyright +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" +! ! + !TClassDefinition methodsFor:'accessing'! binding diff -r 10a95d798b36 -r 17a2d1d9f205 compiler/TCompilationUnitDefinition.st --- a/compiler/TCompilationUnitDefinition.st Wed Sep 23 22:21:44 2015 +0100 +++ b/compiler/TCompilationUnitDefinition.st Fri Sep 25 03:51:15 2015 +0100 @@ -1,3 +1,16 @@ +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" "{ Package: 'jv:tea/compiler' }" "{ NameSpace: Smalltalk }" @@ -9,6 +22,24 @@ category:'Languages-Tea-Compiler-Model' ! +!TCompilationUnitDefinition class methodsFor:'documentation'! + +copyright +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" +! ! + !TCompilationUnitDefinition methodsFor:'accessing'! classes @@ -71,3 +102,10 @@ "Created: / 14-09-2015 / 10:32:34 / Jan Vrany " ! ! +!TCompilationUnitDefinition class methodsFor:'documentation'! + +version_HG + + ^ '$Changeset: $' +! ! + diff -r 10a95d798b36 -r 17a2d1d9f205 compiler/TCompiler.st --- a/compiler/TCompiler.st Wed Sep 23 22:21:44 2015 +0100 +++ b/compiler/TCompiler.st Fri Sep 25 03:51:15 2015 +0100 @@ -1,3 +1,16 @@ +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" "{ Package: 'jv:tea/compiler' }" "{ NameSpace: Smalltalk }" @@ -9,6 +22,23 @@ category:'Languages-Tea-Compiler' ! +!TCompiler class methodsFor:'documentation'! + +copyright +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" +! ! !TCompiler class methodsFor:'compilation'! diff -r 10a95d798b36 -r 17a2d1d9f205 compiler/TCompilerContext.st --- a/compiler/TCompilerContext.st Wed Sep 23 22:21:44 2015 +0100 +++ b/compiler/TCompilerContext.st Fri Sep 25 03:51:15 2015 +0100 @@ -1,14 +1,45 @@ +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" "{ Package: 'jv:tea/compiler' }" "{ NameSpace: Smalltalk }" -Object subclass:#TCompilerContext - instanceVariableNames:'environment unit module' +TObjectWithProperties subclass:#TCompilerContext + instanceVariableNames:'options environment unit' classVariableNames:'' poolDictionaries:'' category:'Languages-Tea-Compiler' ! +!TCompilerContext class methodsFor:'documentation'! + +copyright +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" +! ! + !TCompilerContext methodsFor:'accessing'! environment @@ -19,13 +50,19 @@ environment := aTNamespaceDefinition. ! -module - module isNil ifTrue:[ - module := LLVMModule newWithName: unit name. +options + options isNil ifTrue:[ + options := TCompilerOptions new ]. - ^ module + ^ self. + + "Created: / 24-09-2015 / 16:17:16 / Jan Vrany " +! - "Modified: / 30-08-2015 / 09:25:54 / Jan Vrany " +options: aTCompilerOptions + options := aTCompilerOptions + + "Created: / 24-09-2015 / 16:17:31 / Jan Vrany " ! unit @@ -36,6 +73,27 @@ unit := aTCompilationUnit. ! ! +!TCompilerContext methodsFor:'accessing - llvm'! + +llvmModule + | module | + + module := self propertyAt: #llvmModule ifAbsentPut: [ nil ]. + module isNil ifTrue:[ + module := LLVMModule newWithName: unit name. + self llvmModule: module. + ]. + ^ module. + + "Created: / 24-09-2015 / 16:18:43 / Jan Vrany " +! + +llvmModule: anLLVMModule + ^ self propertyAt: #llvmModule put: anLLVMModule + + "Created: / 24-09-2015 / 17:05:06 / Jan Vrany " +! ! + !TCompilerContext methodsFor:'error reporting'! reportSemanticError: message diff -r 10a95d798b36 -r 17a2d1d9f205 compiler/TCompilerError.st --- a/compiler/TCompilerError.st Wed Sep 23 22:21:44 2015 +0100 +++ b/compiler/TCompilerError.st Fri Sep 25 03:51:15 2015 +0100 @@ -1,3 +1,16 @@ +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" "{ Package: 'jv:tea/compiler' }" "{ NameSpace: Smalltalk }" @@ -9,3 +22,21 @@ category:'Languages-Tea-Compiler-Exceptions' ! +!TCompilerError class methodsFor:'documentation'! + +copyright +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" +! ! + diff -r 10a95d798b36 -r 17a2d1d9f205 compiler/TCompilerExamples.st --- a/compiler/TCompilerExamples.st Wed Sep 23 22:21:44 2015 +0100 +++ b/compiler/TCompilerExamples.st Fri Sep 25 03:51:15 2015 +0100 @@ -1,3 +1,16 @@ +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" "{ Package: 'jv:tea/compiler' }" "{ NameSpace: Smalltalk }" @@ -9,6 +22,24 @@ category:'Languages-Tea-Compiler-Examples' ! +!TCompilerExamples class methodsFor:'documentation'! + +copyright +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" +! ! + !TCompilerExamples class methodsFor:'asserting'! isTestSelector:aSelector diff -r 10a95d798b36 -r 17a2d1d9f205 compiler/TCompilerOptions.st --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/compiler/TCompilerOptions.st Fri Sep 25 03:51:15 2015 +0100 @@ -0,0 +1,98 @@ +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" +"{ Package: 'jv:tea/compiler' }" + +"{ NameSpace: Smalltalk }" + +TObjectWithProperties subclass:#TCompilerOptions + instanceVariableNames:'' + classVariableNames:'' + poolDictionaries:'' + category:'Languages-Tea-Compiler' +! + +!TCompilerOptions class methodsFor:'documentation'! + +copyright +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" +! ! + +!TCompilerOptions methodsFor:'accessing'! + +optionAt: option + ^ self propertyAt: option + + "Created: / 24-09-2015 / 16:12:59 / Jan Vrany " +! + +optionAt: option default: default + ^ self propertyAt: option ifAbsent:[ default ] + + "Created: / 24-09-2015 / 16:13:20 / Jan Vrany " +! + +optionAt: option put: value + ^ self propertyAt: option put: value + + "Created: / 24-09-2015 / 16:13:08 / Jan Vrany " +! ! + +!TCompilerOptions methodsFor:'options'! + +emitIR + ^ self optionAt: #emitIR default: false + + "Created: / 24-09-2015 / 16:38:58 / Jan Vrany " +! + +emitIR: aBoolean + self optionAt: #emitIR put: aBoolean + + "Created: / 24-09-2015 / 16:39:12 / Jan Vrany " +! + +output + ^ self optionAt: #output default: nil + + "Created: / 24-09-2015 / 16:38:28 / Jan Vrany " +! + +output: aSgtring + self optionAt: #output put: aSgtring. + + "Created: / 24-09-2015 / 16:38:15 / Jan Vrany " +! ! + +!TCompilerOptions class methodsFor:'documentation'! + +version + ^ 'Path: jv/tea/compiler/TCompilerOptions.st, Version: 1.0, User: jv, Time: 2015-09-25T03:26:11.669+01' +! + +version_HG + ^ 'Path: jv/tea/compiler/TCompilerOptions.st, Version: 1.0, User: jv, Time: 2015-09-25T03:26:11.669+01' +! ! + diff -r 10a95d798b36 -r 17a2d1d9f205 compiler/TCompilerPass.st --- a/compiler/TCompilerPass.st Wed Sep 23 22:21:44 2015 +0100 +++ b/compiler/TCompilerPass.st Fri Sep 25 03:51:15 2015 +0100 @@ -1,3 +1,16 @@ +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" "{ Package: 'jv:tea/compiler' }" "{ NameSpace: Smalltalk }" @@ -9,6 +22,24 @@ category:'Languages-Tea-Compiler-Internals' ! +!TCompilerPass class methodsFor:'documentation'! + +copyright +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" +! ! + !TCompilerPass class methodsFor:'running'! runOn: anObject diff -r 10a95d798b36 -r 17a2d1d9f205 compiler/TConstantBinding.st --- a/compiler/TConstantBinding.st Wed Sep 23 22:21:44 2015 +0100 +++ b/compiler/TConstantBinding.st Fri Sep 25 03:51:15 2015 +0100 @@ -1,3 +1,16 @@ +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" "{ Package: 'jv:tea/compiler' }" "{ NameSpace: Smalltalk }" @@ -9,6 +22,23 @@ category:'Languages-Tea-Compiler-Bindings' ! +!TConstantBinding class methodsFor:'documentation'! + +copyright +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" +! ! !TConstantBinding class methodsFor:'instance creation'! diff -r 10a95d798b36 -r 17a2d1d9f205 compiler/TEnvironment.st --- a/compiler/TEnvironment.st Wed Sep 23 22:21:44 2015 +0100 +++ b/compiler/TEnvironment.st Fri Sep 25 03:51:15 2015 +0100 @@ -1,3 +1,16 @@ +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" "{ Package: 'jv:tea/compiler' }" "{ NameSpace: Smalltalk }" @@ -9,6 +22,24 @@ category:'Languages-Tea-Compiler-Model' ! +!TEnvironment class methodsFor:'documentation'! + +copyright +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" +! ! + !TEnvironment methodsFor:'accessing'! provider diff -r 10a95d798b36 -r 17a2d1d9f205 compiler/TEnvironmentProvider.st --- a/compiler/TEnvironmentProvider.st Wed Sep 23 22:21:44 2015 +0100 +++ b/compiler/TEnvironmentProvider.st Fri Sep 25 03:51:15 2015 +0100 @@ -1,3 +1,16 @@ +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" "{ Package: 'jv:tea/compiler' }" "{ NameSpace: Smalltalk }" @@ -9,6 +22,23 @@ category:'Languages-Tea-Compiler-Model-Provider' ! +!TEnvironmentProvider class methodsFor:'documentation'! + +copyright +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" +! ! !TEnvironmentProvider methodsFor:'accessing'! diff -r 10a95d798b36 -r 17a2d1d9f205 compiler/TFilesystemProvider.st --- a/compiler/TFilesystemProvider.st Wed Sep 23 22:21:44 2015 +0100 +++ b/compiler/TFilesystemProvider.st Fri Sep 25 03:51:15 2015 +0100 @@ -1,3 +1,16 @@ +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" "{ Package: 'jv:tea/compiler' }" "{ NameSpace: Smalltalk }" @@ -9,6 +22,23 @@ category:'Languages-Tea-Compiler-Model-Provider' ! +!TFilesystemProvider class methodsFor:'documentation'! + +copyright +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" +! ! !TFilesystemProvider class methodsFor:'instance creation'! @@ -49,6 +79,12 @@ ^ unit classes detect:[:class | class name = name ] ifNone:[ nil ] "Created: / 14-09-2015 / 15:10:59 / Jan Vrany " +! + +classpath + ^ classpath + + "Created: / 24-09-2015 / 16:45:49 / Jan Vrany " ! ! !TFilesystemProvider methodsFor:'initialization'! diff -r 10a95d798b36 -r 17a2d1d9f205 compiler/TFormatter.st --- a/compiler/TFormatter.st Wed Sep 23 22:21:44 2015 +0100 +++ b/compiler/TFormatter.st Fri Sep 25 03:51:15 2015 +0100 @@ -1,3 +1,16 @@ +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" "{ Package: 'jv:tea/compiler' }" "{ NameSpace: Smalltalk }" @@ -9,6 +22,24 @@ category:'Languages-Tea-Compiler-AST' ! +!TFormatter class methodsFor:'documentation'! + +copyright +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" +! ! + !TFormatter methodsFor:'visitor-double dispatching'! acceptSimpleTypeNode: aTSimpleTypeNode diff -r 10a95d798b36 -r 17a2d1d9f205 compiler/TFunctionBinding.st --- a/compiler/TFunctionBinding.st Wed Sep 23 22:21:44 2015 +0100 +++ b/compiler/TFunctionBinding.st Fri Sep 25 03:51:15 2015 +0100 @@ -1,3 +1,16 @@ +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" "{ Package: 'jv:tea/compiler' }" "{ NameSpace: Smalltalk }" @@ -9,6 +22,24 @@ category:'Languages-Tea-Compiler-Bindings' ! +!TFunctionBinding class methodsFor:'documentation'! + +copyright +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" +! ! + !TFunctionBinding methodsFor:'accessing'! parameterTypes diff -r 10a95d798b36 -r 17a2d1d9f205 compiler/TLLVMCodeGenerator.st --- a/compiler/TLLVMCodeGenerator.st Wed Sep 23 22:21:44 2015 +0100 +++ b/compiler/TLLVMCodeGenerator.st Fri Sep 25 03:51:15 2015 +0100 @@ -1,3 +1,16 @@ +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" "{ Package: 'jv:tea/compiler' }" "{ NameSpace: Smalltalk }" @@ -5,10 +18,29 @@ TCompilerPass subclass:#TLLVMCodeGenerator instanceVariableNames:'function asm' classVariableNames:'SelectorSpecialCharMappingTable' - poolDictionaries:'' + poolDictionaries:'LLVMAtomicOrdering LLVMAtomicRMWBinOp LLVMAttribute + LLVMByteOrdering LLVMCallConv LLVMDLLStorageClass + LLVMIntPredicate' category:'Languages-Tea-Compiler-Internals' ! +!TLLVMCodeGenerator class methodsFor:'documentation'! + +copyright +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" +! ! !TLLVMCodeGenerator class methodsFor:'initialization'! @@ -92,13 +124,13 @@ allocas := anRBVariableNode scope llvmAllocas. block := asm block. asm block: allocas. - value := asm alloca: (binding type asLLVMTypeInModule: context module) as: binding name. + value := asm alloca: (binding type asLLVMTypeInModule: context llvmModule) as: binding name. asm block: block. ]. binding llvmValue: value. "Created: / 02-09-2015 / 08:43:00 / Jan Vrany " - "Modified: / 23-09-2015 / 21:47:38 / Jan Vrany " + "Modified: / 24-09-2015 / 16:18:03 / Jan Vrany " ! ! !TLLVMCodeGenerator methodsFor:'visitor-double dispatching'! @@ -191,10 +223,10 @@ ! acceptLiteralNode: aLiteralNode - ^ aLiteralNode binding asLLVMValueInModule: context module. + ^ aLiteralNode binding asLLVMValueInModule: context llvmModule. "Created: / 31-08-2015 / 10:13:55 / Jan Vrany " - "Modified: / 31-08-2015 / 12:20:52 / Jan Vrany " + "Modified: / 24-09-2015 / 16:17:51 / Jan Vrany " ! acceptMessageNode: aMessageNode @@ -202,18 +234,18 @@ receiver := self visitNode: aMessageNode receiver. arguments := aMessageNode arguments collect: [:argument | self visitNode: argument ]. - methodFunction := aMessageNode binding asLLVMValueInModule: context module. + methodFunction := aMessageNode binding asLLVMValueInModule: context llvmModule. ^ asm call: methodFunction _: { receiver } , arguments "Created: / 31-08-2015 / 10:13:51 / Jan Vrany " - "Modified (format): / 15-09-2015 / 07:14:45 / Jan Vrany " + "Modified: / 24-09-2015 / 16:17:54 / Jan Vrany " ! acceptMethodNode: aMethodNode | allocas entry | - function := aMethodNode binding asLLVMValueInModule: context module. + function := aMethodNode binding asLLVMValueInModule: context llvmModule. allocas := function addBasicBlockNamed: 'allocas'. entry := function addBasicBlockNamed: 'entry'. aMethodNode scope llvmAllocas: allocas. @@ -224,7 +256,7 @@ asm br: entry. "Created: / 31-08-2015 / 09:42:58 / Jan Vrany " - "Modified: / 23-09-2015 / 22:32:04 / Jan Vrany " + "Modified: / 24-09-2015 / 16:17:59 / Jan Vrany " ! acceptOptimizedNode: anOptimizedNode @@ -234,9 +266,12 @@ ! acceptPragmaNode: aPragmaNode - self notYetImplemented + aPragmaNode selector = 'primitive:' ifTrue:[ + self acceptPrimitiveNode: aPragmaNode + ]. "Created: / 31-08-2015 / 10:13:41 / Jan Vrany " + "Modified: / 24-09-2015 / 18:53:54 / Jan Vrany " ! acceptPrimitiveNode: aPragmaNode @@ -256,13 +291,13 @@ ]. ]. emitMethodNode selector:(String streamContents: [ :s | emitMethodNode arguments size timesRepeat:[s nextPutAll:'_:'] ]). - emitMethod := Compiler compile: emitMethodNode formattedCode forClass: UndefinedObject install: false. + emitMethod := Compiler compile: emitMethodNode formattedCode forClass: self class install: false. emitMethod valueWithReceiver: nil arguments: { asm } , ((1 to: function numArgs) collect: [ :i | function parameterAt: i ]) "Created: / 22-09-2015 / 18:03:33 / Jan Vrany " - "Modified: / 23-09-2015 / 06:27:56 / Jan Vrany " + "Modified: / 24-09-2015 / 18:58:42 / Jan Vrany " ! acceptReturnNode: aReturnNode diff -r 10a95d798b36 -r 17a2d1d9f205 compiler/TLocalBinding.st --- a/compiler/TLocalBinding.st Wed Sep 23 22:21:44 2015 +0100 +++ b/compiler/TLocalBinding.st Fri Sep 25 03:51:15 2015 +0100 @@ -1,3 +1,16 @@ +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" "{ Package: 'jv:tea/compiler' }" "{ NameSpace: Smalltalk }" @@ -9,6 +22,24 @@ category:'Languages-Tea-Compiler-Bindings' ! +!TLocalBinding class methodsFor:'documentation'! + +copyright +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" +! ! + !TLocalBinding methodsFor:'printing & storing'! printOn:aStream diff -r 10a95d798b36 -r 17a2d1d9f205 compiler/TMetaDefinition.st --- a/compiler/TMetaDefinition.st Wed Sep 23 22:21:44 2015 +0100 +++ b/compiler/TMetaDefinition.st Fri Sep 25 03:51:15 2015 +0100 @@ -1,3 +1,16 @@ +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" "{ Package: 'jv:tea/compiler' }" "{ NameSpace: Smalltalk }" @@ -9,6 +22,24 @@ category:'Languages-Tea-Compiler-Model' ! +!TMetaDefinition class methodsFor:'documentation'! + +copyright +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" +! ! + !TMetaDefinition methodsFor:'accessing'! binding diff -r 10a95d798b36 -r 17a2d1d9f205 compiler/TMethodBinding.st --- a/compiler/TMethodBinding.st Wed Sep 23 22:21:44 2015 +0100 +++ b/compiler/TMethodBinding.st Fri Sep 25 03:51:15 2015 +0100 @@ -1,3 +1,16 @@ +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" "{ Package: 'jv:tea/compiler' }" "{ NameSpace: Smalltalk }" @@ -9,6 +22,23 @@ category:'Languages-Tea-Compiler-Bindings' ! +!TMethodBinding class methodsFor:'documentation'! + +copyright +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" +! ! !TMethodBinding class methodsFor:'instance creation'! diff -r 10a95d798b36 -r 17a2d1d9f205 compiler/TMethodDefinition.st --- a/compiler/TMethodDefinition.st Wed Sep 23 22:21:44 2015 +0100 +++ b/compiler/TMethodDefinition.st Fri Sep 25 03:51:15 2015 +0100 @@ -1,3 +1,16 @@ +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" "{ Package: 'jv:tea/compiler' }" "{ NameSpace: Smalltalk }" @@ -9,6 +22,23 @@ category:'Languages-Tea-Compiler-Model' ! +!TMethodDefinition class methodsFor:'documentation'! + +copyright +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" +! ! !TMethodDefinition methodsFor:'accessing'! diff -r 10a95d798b36 -r 17a2d1d9f205 compiler/TMethodDefinitionTests.st --- a/compiler/TMethodDefinitionTests.st Wed Sep 23 22:21:44 2015 +0100 +++ b/compiler/TMethodDefinitionTests.st Fri Sep 25 03:51:15 2015 +0100 @@ -1,3 +1,16 @@ +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" "{ Package: 'jv:tea/compiler' }" "{ NameSpace: Smalltalk }" @@ -9,6 +22,24 @@ category:'Languages-Tea-Compiler-Model-Tests' ! +!TMethodDefinitionTests class methodsFor:'documentation'! + +copyright +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" +! ! + !TMethodDefinitionTests methodsFor:'tests'! test_01 diff -r 10a95d798b36 -r 17a2d1d9f205 compiler/TNamespaceBinding.st --- a/compiler/TNamespaceBinding.st Wed Sep 23 22:21:44 2015 +0100 +++ b/compiler/TNamespaceBinding.st Fri Sep 25 03:51:15 2015 +0100 @@ -1,3 +1,16 @@ +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" "{ Package: 'jv:tea/compiler' }" "{ NameSpace: Smalltalk }" @@ -9,6 +22,23 @@ category:'Languages-Tea-Compiler-Bindings' ! +!TNamespaceBinding class methodsFor:'documentation'! + +copyright +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" +! ! !TNamespaceBinding class methodsFor:'instance creation'! diff -r 10a95d798b36 -r 17a2d1d9f205 compiler/TNamespaceDefinition.st --- a/compiler/TNamespaceDefinition.st Wed Sep 23 22:21:44 2015 +0100 +++ b/compiler/TNamespaceDefinition.st Fri Sep 25 03:51:15 2015 +0100 @@ -1,3 +1,16 @@ +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" "{ Package: 'jv:tea/compiler' }" "{ NameSpace: Smalltalk }" @@ -9,6 +22,24 @@ category:'Languages-Tea-Compiler-Model' ! +!TNamespaceDefinition class methodsFor:'documentation'! + +copyright +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" +! ! + !TNamespaceDefinition methodsFor:'accessing'! binding diff -r 10a95d798b36 -r 17a2d1d9f205 compiler/TObjectWithProperties.st --- a/compiler/TObjectWithProperties.st Wed Sep 23 22:21:44 2015 +0100 +++ b/compiler/TObjectWithProperties.st Fri Sep 25 03:51:15 2015 +0100 @@ -1,3 +1,16 @@ +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" "{ Package: 'jv:tea/compiler' }" "{ NameSpace: Smalltalk }" @@ -9,6 +22,24 @@ category:'Languages-Tea-Compiler-Internals' ! +!TObjectWithProperties class methodsFor:'documentation'! + +copyright +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" +! ! + !TObjectWithProperties methodsFor:'accessing-properties'! hasProperty: aKey diff -r 10a95d798b36 -r 17a2d1d9f205 compiler/TParser.st --- a/compiler/TParser.st Wed Sep 23 22:21:44 2015 +0100 +++ b/compiler/TParser.st Fri Sep 25 03:51:15 2015 +0100 @@ -1,3 +1,16 @@ +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" "{ Package: 'jv:tea/compiler' }" "{ NameSpace: Smalltalk }" @@ -9,6 +22,24 @@ category:'Languages-Tea-Compiler-AST' ! +!TParser class methodsFor:'documentation'! + +copyright +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" +! ! + !TParser class methodsFor:'parsing'! parseMethod: aString diff -r 10a95d798b36 -r 17a2d1d9f205 compiler/TParserTests.st --- a/compiler/TParserTests.st Wed Sep 23 22:21:44 2015 +0100 +++ b/compiler/TParserTests.st Fri Sep 25 03:51:15 2015 +0100 @@ -1,3 +1,16 @@ +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" "{ Package: 'jv:tea/compiler' }" "{ NameSpace: Smalltalk }" @@ -9,6 +22,24 @@ category:'Languages-Tea-Compiler-AST-Tests' ! +!TParserTests class methodsFor:'documentation'! + +copyright +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" +! ! + !TParserTests methodsFor:'tests'! test_blockargs diff -r 10a95d798b36 -r 17a2d1d9f205 compiler/TProgramNodeVisitor.st --- a/compiler/TProgramNodeVisitor.st Wed Sep 23 22:21:44 2015 +0100 +++ b/compiler/TProgramNodeVisitor.st Fri Sep 25 03:51:15 2015 +0100 @@ -1,3 +1,16 @@ +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" "{ Package: 'jv:tea/compiler' }" "{ NameSpace: Smalltalk }" @@ -9,6 +22,23 @@ category:'Languages-Tea-Compiler-AST' ! +!TProgramNodeVisitor class methodsFor:'documentation'! + +copyright +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" +! ! !TProgramNodeVisitor methodsFor:'visiting'! diff -r 10a95d798b36 -r 17a2d1d9f205 compiler/TScope.st --- a/compiler/TScope.st Wed Sep 23 22:21:44 2015 +0100 +++ b/compiler/TScope.st Fri Sep 25 03:51:15 2015 +0100 @@ -1,3 +1,16 @@ +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" "{ Package: 'jv:tea/compiler' }" "{ NameSpace: Smalltalk }" @@ -9,6 +22,24 @@ category:'Languages-Tea-Compiler-Bindings' ! +!TScope class methodsFor:'documentation'! + +copyright +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" +! ! + !TScope class methodsFor:'instance creation'! node: node diff -r 10a95d798b36 -r 17a2d1d9f205 compiler/TSemanticAnalyser.st --- a/compiler/TSemanticAnalyser.st Wed Sep 23 22:21:44 2015 +0100 +++ b/compiler/TSemanticAnalyser.st Fri Sep 25 03:51:15 2015 +0100 @@ -1,3 +1,16 @@ +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" "{ Package: 'jv:tea/compiler' }" "{ NameSpace: Smalltalk }" @@ -11,6 +24,22 @@ !TSemanticAnalyser class methodsFor:'documentation'! +copyright +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" +! + documentation " This is the very first pass on the code. Its responsibility is: diff -r 10a95d798b36 -r 17a2d1d9f205 compiler/TSemanticAnalyserTests.st --- a/compiler/TSemanticAnalyserTests.st Wed Sep 23 22:21:44 2015 +0100 +++ b/compiler/TSemanticAnalyserTests.st Fri Sep 25 03:51:15 2015 +0100 @@ -1,3 +1,16 @@ +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" "{ Package: 'jv:tea/compiler' }" "{ NameSpace: Smalltalk }" @@ -9,6 +22,23 @@ category:'Languages-Tea-Compiler-Internals-Tests' ! +!TSemanticAnalyserTests class methodsFor:'documentation'! + +copyright +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" +! ! !TSemanticAnalyserTests methodsFor:'running'! diff -r 10a95d798b36 -r 17a2d1d9f205 compiler/TSimpleType.st --- a/compiler/TSimpleType.st Wed Sep 23 22:21:44 2015 +0100 +++ b/compiler/TSimpleType.st Fri Sep 25 03:51:15 2015 +0100 @@ -1,3 +1,16 @@ +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" "{ Package: 'jv:tea/compiler' }" "{ NameSpace: Smalltalk }" @@ -9,6 +22,24 @@ category:'Languages-Tea-Compiler-Types' ! +!TSimpleType class methodsFor:'documentation'! + +copyright +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" +! ! + !TSimpleType class methodsFor:'instance creation'! named: aString diff -r 10a95d798b36 -r 17a2d1d9f205 compiler/TSimpleTypeNode.st --- a/compiler/TSimpleTypeNode.st Wed Sep 23 22:21:44 2015 +0100 +++ b/compiler/TSimpleTypeNode.st Fri Sep 25 03:51:15 2015 +0100 @@ -1,3 +1,16 @@ +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" "{ Package: 'jv:tea/compiler' }" "{ NameSpace: Smalltalk }" @@ -9,6 +22,24 @@ category:'Languages-Tea-Compiler-AST' ! +!TSimpleTypeNode class methodsFor:'documentation'! + +copyright +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" +! ! + !TSimpleTypeNode methodsFor:'accessing'! name diff -r 10a95d798b36 -r 17a2d1d9f205 compiler/TSourceReader.st --- a/compiler/TSourceReader.st Wed Sep 23 22:21:44 2015 +0100 +++ b/compiler/TSourceReader.st Fri Sep 25 03:51:15 2015 +0100 @@ -1,3 +1,16 @@ +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" "{ Package: 'jv:tea/compiler' }" "{ NameSpace: Smalltalk }" @@ -9,6 +22,24 @@ category:'Languages-Tea-Compiler-Model' ! +!TSourceReader class methodsFor:'documentation'! + +copyright +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" +! ! + !TSourceReader class methodsFor:'reading'! read: aStringOrFilenameOrStream diff -r 10a95d798b36 -r 17a2d1d9f205 compiler/TSourceReaderTests.st --- a/compiler/TSourceReaderTests.st Wed Sep 23 22:21:44 2015 +0100 +++ b/compiler/TSourceReaderTests.st Fri Sep 25 03:51:15 2015 +0100 @@ -1,3 +1,16 @@ +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" "{ Package: 'jv:tea/compiler' }" "{ NameSpace: Smalltalk }" @@ -9,6 +22,24 @@ category:'Languages-Tea-Compiler-Model-Tests' ! +!TSourceReaderTests class methodsFor:'documentation'! + +copyright +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" +! ! + !TSourceReaderTests methodsFor:'tests'! test_01 diff -r 10a95d798b36 -r 17a2d1d9f205 compiler/TSpecialFormNode.st --- a/compiler/TSpecialFormNode.st Wed Sep 23 22:21:44 2015 +0100 +++ b/compiler/TSpecialFormNode.st Fri Sep 25 03:51:15 2015 +0100 @@ -1,3 +1,16 @@ +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" "{ Package: 'jv:tea/compiler' }" "{ NameSpace: Smalltalk }" @@ -11,6 +24,22 @@ !TSpecialFormNode class methodsFor:'documentation'! +copyright +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" +! + documentation " TSpecialNode diff -r 10a95d798b36 -r 17a2d1d9f205 compiler/TType.st --- a/compiler/TType.st Wed Sep 23 22:21:44 2015 +0100 +++ b/compiler/TType.st Fri Sep 25 03:51:15 2015 +0100 @@ -1,3 +1,16 @@ +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" "{ Package: 'jv:tea/compiler' }" "{ NameSpace: Smalltalk }" @@ -9,6 +22,23 @@ category:'Languages-Tea-Compiler-Types' ! +!TType class methodsFor:'documentation'! + +copyright +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" +! ! !TType methodsFor:'comparing'! diff -r 10a95d798b36 -r 17a2d1d9f205 compiler/TTypeNode.st --- a/compiler/TTypeNode.st Wed Sep 23 22:21:44 2015 +0100 +++ b/compiler/TTypeNode.st Fri Sep 25 03:51:15 2015 +0100 @@ -1,3 +1,16 @@ +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" "{ Package: 'jv:tea/compiler' }" "{ NameSpace: Smalltalk }" @@ -9,6 +22,24 @@ category:'Languages-Tea-Compiler-AST' ! +!TTypeNode class methodsFor:'documentation'! + +copyright +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" +! ! + !TTypeNode class methodsFor:'accessing'! formatterClass diff -r 10a95d798b36 -r 17a2d1d9f205 compiler/TTypeSpecNode.st --- a/compiler/TTypeSpecNode.st Wed Sep 23 22:21:44 2015 +0100 +++ b/compiler/TTypeSpecNode.st Fri Sep 25 03:51:15 2015 +0100 @@ -1,3 +1,16 @@ +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" "{ Package: 'jv:tea/compiler' }" "{ NameSpace: Smalltalk }" @@ -9,6 +22,24 @@ category:'Languages-Tea-Compiler-AST' ! +!TTypeSpecNode class methodsFor:'documentation'! + +copyright +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" +! ! + !TTypeSpecNode class methodsFor:'accessing'! formatterClass diff -r 10a95d798b36 -r 17a2d1d9f205 compiler/TTypechecker.st --- a/compiler/TTypechecker.st Wed Sep 23 22:21:44 2015 +0100 +++ b/compiler/TTypechecker.st Fri Sep 25 03:51:15 2015 +0100 @@ -1,3 +1,16 @@ +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" "{ Package: 'jv:tea/compiler' }" "{ NameSpace: Smalltalk }" @@ -9,6 +22,23 @@ category:'Languages-Tea-Compiler-Internals' ! +!TTypechecker class methodsFor:'documentation'! + +copyright +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" +! ! !TTypechecker methodsFor:'visiting'! diff -r 10a95d798b36 -r 17a2d1d9f205 compiler/TTypecheckerTests.st --- a/compiler/TTypecheckerTests.st Wed Sep 23 22:21:44 2015 +0100 +++ b/compiler/TTypecheckerTests.st Fri Sep 25 03:51:15 2015 +0100 @@ -1,3 +1,16 @@ +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" "{ Package: 'jv:tea/compiler' }" "{ NameSpace: Smalltalk }" @@ -9,6 +22,24 @@ category:'Languages-Tea-Compiler-Internals-Tests' ! +!TTypecheckerTests class methodsFor:'documentation'! + +copyright +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" +! ! + !TTypecheckerTests methodsFor:'tests - bindings'! test_binding_01 diff -r 10a95d798b36 -r 17a2d1d9f205 compiler/TValueBinding.st --- a/compiler/TValueBinding.st Wed Sep 23 22:21:44 2015 +0100 +++ b/compiler/TValueBinding.st Fri Sep 25 03:51:15 2015 +0100 @@ -1,3 +1,16 @@ +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" "{ Package: 'jv:tea/compiler' }" "{ NameSpace: Smalltalk }" @@ -9,6 +22,24 @@ category:'Languages-Tea-Compiler-Bindings' ! +!TValueBinding class methodsFor:'documentation'! + +copyright +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" +! ! + !TValueBinding class methodsFor:'queries'! isAbstract diff -r 10a95d798b36 -r 17a2d1d9f205 compiler/TVariableBinding.st --- a/compiler/TVariableBinding.st Wed Sep 23 22:21:44 2015 +0100 +++ b/compiler/TVariableBinding.st Fri Sep 25 03:51:15 2015 +0100 @@ -1,3 +1,16 @@ +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" "{ Package: 'jv:tea/compiler' }" "{ NameSpace: Smalltalk }" @@ -9,6 +22,23 @@ category:'Languages-Tea-Compiler-Bindings' ! +!TVariableBinding class methodsFor:'documentation'! + +copyright +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" +! ! !TVariableBinding class methodsFor:'instance creation'! diff -r 10a95d798b36 -r 17a2d1d9f205 compiler/abbrev.stc --- a/compiler/abbrev.stc Wed Sep 23 22:21:44 2015 +0100 +++ b/compiler/abbrev.stc Fri Sep 25 03:51:15 2015 +0100 @@ -4,23 +4,29 @@ TClassDefinition TClassDefinition jv:tea/compiler 'Languages-Tea-Compiler-Model' 0 TCompilationUnitDefinition TCompilationUnitDefinition jv:tea/compiler 'Languages-Tea-Compiler-Model' 0 TCompiler TCompiler jv:tea/compiler 'Languages-Tea-Compiler' 0 -TCompilerContext TCompilerContext jv:tea/compiler 'Languages-Tea-Compiler' 0 TCompilerError TCompilerError jv:tea/compiler 'Languages-Tea-Compiler-Exceptions' 1 TCompilerExamples TCompilerExamples jv:tea/compiler 'Languages-Tea-Compiler-Examples' 1 TEnvironmentProvider TEnvironmentProvider jv:tea/compiler 'Languages-Tea-Compiler-Model-Provider' 0 TFormatter TFormatter jv:tea/compiler 'Languages-Tea-Compiler-AST' 0 TMetaDefinition TMetaDefinition jv:tea/compiler 'Languages-Tea-Compiler-Model' 0 TMethodDefinition TMethodDefinition jv:tea/compiler 'Languages-Tea-Compiler-Model' 0 +TMethodDefinitionTests TMethodDefinitionTests jv:tea/compiler 'Languages-Tea-Compiler-Model-Tests' 1 TNamespaceDefinition TNamespaceDefinition jv:tea/compiler 'Languages-Tea-Compiler-Model' 0 TObjectWithProperties TObjectWithProperties jv:tea/compiler 'Languages-Tea-Compiler-Internals' 0 TParser TParser jv:tea/compiler 'Languages-Tea-Compiler-AST' 0 +TParserTests TParserTests jv:tea/compiler 'Languages-Tea-Compiler-AST-Tests' 1 TProgramNodeVisitor TProgramNodeVisitor jv:tea/compiler 'Languages-Tea-Compiler-AST' 0 +TSemanticAnalyserTests TSemanticAnalyserTests jv:tea/compiler 'Languages-Tea-Compiler-Internals-Tests' 1 TSourceReader TSourceReader jv:tea/compiler 'Languages-Tea-Compiler-Model' 0 +TSourceReaderTests TSourceReaderTests jv:tea/compiler 'Languages-Tea-Compiler-Model-Tests' 1 TSpecialFormNode TSpecialFormNode jv:tea/compiler 'Languages-Tea-Compiler-AST' 0 TTypeNode TTypeNode jv:tea/compiler 'Languages-Tea-Compiler-AST' 0 TTypeSpecNode TTypeSpecNode jv:tea/compiler 'Languages-Tea-Compiler-AST' 0 +TTypecheckerTests TTypecheckerTests jv:tea/compiler 'Languages-Tea-Compiler-Internals-Tests' 1 jv_tea_compiler jv_tea_compiler jv:tea/compiler '* Projects & Packages *' 3 TBinding TBinding jv:tea/compiler 'Languages-Tea-Compiler-Bindings' 0 +TCompilerContext TCompilerContext jv:tea/compiler 'Languages-Tea-Compiler' 0 +TCompilerOptions TCompilerOptions jv:tea/compiler 'Languages-Tea-Compiler' 0 TCompilerPass TCompilerPass jv:tea/compiler 'Languages-Tea-Compiler-Internals' 0 TEnvironment TEnvironment jv:tea/compiler 'Languages-Tea-Compiler-Model' 0 TFilesystemProvider TFilesystemProvider jv:tea/compiler 'Languages-Tea-Compiler-Model-Provider' 0 @@ -43,8 +49,3 @@ TVariableBinding TVariableBinding jv:tea/compiler 'Languages-Tea-Compiler-Bindings' 0 TArgumentBinding TArgumentBinding jv:tea/compiler 'Languages-Tea-Compiler-Bindings' 0 TLocalBinding TLocalBinding jv:tea/compiler 'Languages-Tea-Compiler-Bindings' 0 -TMethodDefinitionTests TMethodDefinitionTests jv:tea/compiler 'Languages-Tea-Compiler-Model-Tests' 1 -TParserTests TParserTests jv:tea/compiler 'Languages-Tea-Compiler-AST-Tests' 1 -TSemanticAnalyserTests TSemanticAnalyserTests jv:tea/compiler 'Languages-Tea-Compiler-Internals-Tests' 1 -TSourceReaderTests TSourceReaderTests jv:tea/compiler 'Languages-Tea-Compiler-Model-Tests' 1 -TTypecheckerTests TTypecheckerTests jv:tea/compiler 'Languages-Tea-Compiler-Internals-Tests' 1 diff -r 10a95d798b36 -r 17a2d1d9f205 compiler/bc.mak --- a/compiler/bc.mak Wed Sep 23 22:21:44 2015 +0100 +++ b/compiler/bc.mak Fri Sep 25 03:51:15 2015 +0100 @@ -58,6 +58,7 @@ pushd ..\..\..\stx\libview & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) " pushd ..\..\..\stx\libview2 & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) " pushd ..\..\..\stx\goodies\sunit & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) " + pushd ..\..\llvm_s & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) " @@ -77,7 +78,6 @@ $(OUTDIR)TClassDefinition.$(O) TClassDefinition.$(H): TClassDefinition.st $(INCLUDE_TOP)\stx\goodies\ring\RGBehaviorDefinition.$(H) $(INCLUDE_TOP)\stx\goodies\ring\RGClassDefinition.$(H) $(INCLUDE_TOP)\stx\goodies\ring\RGClassDescriptionDefinition.$(H) $(INCLUDE_TOP)\stx\goodies\ring\RGDefinition.$(H) $(INCLUDE_TOP)\stx\goodies\ring\RGGlobalDefinition.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) $(OUTDIR)TCompilationUnitDefinition.$(O) TCompilationUnitDefinition.$(H): TCompilationUnitDefinition.st $(INCLUDE_TOP)\stx\goodies\ring\RGAbstractContainer.$(H) $(INCLUDE_TOP)\stx\goodies\ring\RGDefinition.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) $(OUTDIR)TCompiler.$(O) TCompiler.$(H): TCompiler.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) -$(OUTDIR)TCompilerContext.$(O) TCompilerContext.$(H): TCompilerContext.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) $(OUTDIR)TCompilerError.$(O) TCompilerError.$(H): TCompilerError.st $(INCLUDE_TOP)\stx\libbasic\Error.$(H) $(INCLUDE_TOP)\stx\libbasic\Exception.$(H) $(INCLUDE_TOP)\stx\libbasic\GenericException.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) $(OUTDIR)TEnvironmentProvider.$(O) TEnvironmentProvider.$(H): TEnvironmentProvider.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) $(OUTDIR)TFormatter.$(O) TFormatter.$(H): TFormatter.st $(INCLUDE_TOP)\stx\goodies\refactoryBrowser\parser\RBFormatter.$(H) $(INCLUDE_TOP)\stx\goodies\refactoryBrowser\parser\RBProgramNodeVisitor.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) @@ -93,6 +93,8 @@ $(OUTDIR)TTypeSpecNode.$(O) TTypeSpecNode.$(H): TTypeSpecNode.st $(INCLUDE_TOP)\stx\goodies\refactoryBrowser\parser\RBProgramNode.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) $(OUTDIR)jv_tea_compiler.$(O) jv_tea_compiler.$(H): jv_tea_compiler.st $(INCLUDE_TOP)\stx\libbasic\LibraryDefinition.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\ProjectDefinition.$(H) $(STCHDR) $(OUTDIR)TBinding.$(O) TBinding.$(H): TBinding.st $(INCLUDE_TOP)\jv\tea\compiler\TObjectWithProperties.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) +$(OUTDIR)TCompilerContext.$(O) TCompilerContext.$(H): TCompilerContext.st $(INCLUDE_TOP)\jv\tea\compiler\TObjectWithProperties.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) +$(OUTDIR)TCompilerOptions.$(O) TCompilerOptions.$(H): TCompilerOptions.st $(INCLUDE_TOP)\jv\tea\compiler\TObjectWithProperties.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) $(OUTDIR)TCompilerPass.$(O) TCompilerPass.$(H): TCompilerPass.st $(INCLUDE_TOP)\jv\tea\compiler\TProgramNodeVisitor.$(H) $(INCLUDE_TOP)\stx\goodies\refactoryBrowser\parser\RBProgramNodeVisitor.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) $(OUTDIR)TEnvironment.$(O) TEnvironment.$(H): TEnvironment.st $(INCLUDE_TOP)\jv\tea\compiler\TNamespaceDefinition.$(H) $(INCLUDE_TOP)\stx\goodies\ring\RGAbstractContainer.$(H) $(INCLUDE_TOP)\stx\goodies\ring\RGContainer.$(H) $(INCLUDE_TOP)\stx\goodies\ring\RGDefinition.$(H) $(INCLUDE_TOP)\stx\goodies\ring\RGNamespace.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) $(OUTDIR)TFilesystemProvider.$(O) TFilesystemProvider.$(H): TFilesystemProvider.st $(INCLUDE_TOP)\jv\tea\compiler\TEnvironmentProvider.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) @@ -103,7 +105,7 @@ $(OUTDIR)TBlockType.$(O) TBlockType.$(H): TBlockType.st $(INCLUDE_TOP)\jv\tea\compiler\TObjectWithProperties.$(H) $(INCLUDE_TOP)\jv\tea\compiler\TType.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) $(OUTDIR)TClassBinding.$(O) TClassBinding.$(H): TClassBinding.st $(INCLUDE_TOP)\jv\tea\compiler\TBinding.$(H) $(INCLUDE_TOP)\jv\tea\compiler\TObjectWithProperties.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) $(OUTDIR)TFunctionBinding.$(O) TFunctionBinding.$(H): TFunctionBinding.st $(INCLUDE_TOP)\jv\tea\compiler\TBinding.$(H) $(INCLUDE_TOP)\jv\tea\compiler\TObjectWithProperties.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) -$(OUTDIR)TLLVMCodeGenerator.$(O) TLLVMCodeGenerator.$(H): TLLVMCodeGenerator.st $(INCLUDE_TOP)\jv\tea\compiler\TCompilerPass.$(H) $(INCLUDE_TOP)\jv\tea\compiler\TProgramNodeVisitor.$(H) $(INCLUDE_TOP)\stx\goodies\refactoryBrowser\parser\RBProgramNodeVisitor.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) +$(OUTDIR)TLLVMCodeGenerator.$(O) TLLVMCodeGenerator.$(H): TLLVMCodeGenerator.st $(INCLUDE_TOP)\jv\llvm_s\LLVMAtomicOrdering.$(H) $(INCLUDE_TOP)\jv\llvm_s\LLVMAtomicRMWBinOp.$(H) $(INCLUDE_TOP)\jv\llvm_s\LLVMAttribute.$(H) $(INCLUDE_TOP)\jv\llvm_s\LLVMByteOrdering.$(H) $(INCLUDE_TOP)\jv\llvm_s\LLVMCallConv.$(H) $(INCLUDE_TOP)\jv\llvm_s\LLVMDLLStorageClass.$(H) $(INCLUDE_TOP)\jv\llvm_s\LLVMIntPredicate.$(H) $(INCLUDE_TOP)\jv\tea\compiler\TCompilerPass.$(H) $(INCLUDE_TOP)\jv\tea\compiler\TProgramNodeVisitor.$(H) $(INCLUDE_TOP)\stx\goodies\refactoryBrowser\parser\RBProgramNodeVisitor.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) $(OUTDIR)TNamespaceBinding.$(O) TNamespaceBinding.$(H): TNamespaceBinding.st $(INCLUDE_TOP)\jv\tea\compiler\TBinding.$(H) $(INCLUDE_TOP)\jv\tea\compiler\TObjectWithProperties.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) $(OUTDIR)TSemanticAnalyser.$(O) TSemanticAnalyser.$(H): TSemanticAnalyser.st $(INCLUDE_TOP)\jv\tea\compiler\TCompilerPass.$(H) $(INCLUDE_TOP)\jv\tea\compiler\TProgramNodeVisitor.$(H) $(INCLUDE_TOP)\stx\goodies\refactoryBrowser\parser\RBProgramNodeVisitor.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) $(OUTDIR)TSimpleType.$(O) TSimpleType.$(H): TSimpleType.st $(INCLUDE_TOP)\jv\tea\compiler\TObjectWithProperties.$(H) $(INCLUDE_TOP)\jv\tea\compiler\TType.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) diff -r 10a95d798b36 -r 17a2d1d9f205 compiler/cli/Make.proto --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/compiler/cli/Make.proto Fri Sep 25 03:51:15 2015 +0100 @@ -0,0 +1,225 @@ +# $Header$ +# +# automagically generated from the projectDefinition: jv_tea_compiler_cli. +# +# -------------- no need to change anything below ---------- +# +# This makefile generates some standalone demo applications +# +# make +# generates teak +# + +TOP=../../../../stx +INCLUDE_TOP=$(TOP)/.. + +# set to a dummy file name (like FORCE=@@@FORCE-BUILD@@@) to force the build of prereq packages +FORCE= +.PHONY: $(FORCE) + +PACKAGE=jv:tea/compiler/cli +SUBDIRS= +SUPPRESS_LOCAL_ABBREVS="yes" +NOAUTOLOAD=1 +NOSUBAUTOLOAD=1 + +LOCALINCLUDES= -I$(INCLUDE_TOP)/jv/tea/compiler -I$(INCLUDE_TOP)/stx/libbasic +LOCALDEFINES= +GLOBALDEFINES= +MAIN_DEFINES=-DIGNORE_IMAGE -DNO_DISPLAY + +RCSSOURCES=Make.proto *.st +LINKSOURCES=Make.proto *.st + +DELIVERBINARIES= + +APPNAME=libjv_tea_compiler_cli +LIBNAME=libjv_tea_compiler_cli +STCLOCALOPT='-package=$(PACKAGE)' -I. -headerDir=. $(LOCALINCLUDES) $(STCLOCALOPTIMIZATIONS) $(STCWARNINGS) $(LOCALDEFINES) -headerDir=. -varPrefix=$(LIBNAME) + + +# ********** OPTIONAL: MODIFY the next line *** +# additional C-libraries that should be pre-linked with the class-objects +LD_OBJ_LIBS= +LOCAL_SHARED_LIBS= + + +# ********** OPTIONAL: MODIFY the next line *** +# additional C targets or libraries should be added below +LOCAL_EXTRA_TARGETS= + +OBJS= $(COMMON_OBJS) $(UNIX_OBJS) + + + + + +LIBLIST = $(REQUIRED_LIBS) + +# required libs: +# + +REQUIRED_LIBS= libstx_libbasic \ + + +REQUIRED_LIBOBJS= $(TOP)/libbasic/libstx_libbasic$(O_EXT) \ + + +REQUIRED_LINK_LIBOBJS= libstx_libbasic$(O_EXT) \ + + +REQUIRED_SUPPORT_DIRS=RESOURCEFILES + +SUBPROJECT_LIBS= + + +target: ALL + +all:: prereq ALL_NP + +# like ALL, but not prereqs +ALL_NP:: exe $(SUBPROJECT_LIBS) $(REQUIRED_SUPPORT_DIRS) $(SETUP_RULE) + +exe: teak registerApplication + +teak: $(APP_DIRS_TO_MAKE) $(APP_LIBOBJS) $(REQUIRED_LIBOBJS) $(OBJS) + $(MAKE) link_teak + + +link_teak: + $(MAKE) NON_GUI_APPLICATION \ + TARGET=teak \ + APPLICATION_CLASSES="$(COMMON_CLASSES) $(UNIX_CLASSES)" \ + APPLICATION_OBJS="$(OBJS)" \ + APPLICATION_LIBLIST="$(REQUIRED_LIBS)" \ + APPLICATION_LIBOBJS="$(REQUIRED_LIBOBJS)" \ + APPLICATION_LINK_LIBOBJS="$(REQUIRED_LINK_LIBOBJS)" \ + STARTUP_CLASS="TCompilerCommand" \ + STARTUP_SELECTOR="start" \ + MAIN_DEFINES="-DIGNORE_IMAGE -DNO_DISPLAY" + +# build all mandatory prerequisite packages (containing superclasses) for this package +prereq: + $(MAKE) FORCE=@@@FORCE-BUILD@@@ $(REQUIRED_LIBOBJS) + +# +# a self installable delivery +# +# backward compatible fallback +setup:: + @if test -d autopackage; then \ + makepackage; \ + else \ + echo "Error: make setup not yet available in this unix"; \ + exit 1; \ + fi + +# +# for linux, this uses autopackage +# +setup_linux: + @if test -d autopackage; then \ + makepackage; \ + else \ + echo "Error: missing autopackage directory"; \ + exit 1; \ + fi + +# +# for mac, a dmg is generated +# +setup_macosx: "TeaCompiler_dmg" + -rm "TeaCompiler.dmg" + hdiutil create -fs HFSX -layout SPUD "TeaCompiler.dmg" -srcfolder "TeaCompiler_dmg" -format UDZO -volname "TeaCompiler" -quiet + +app: "TeaCompiler_dmg" + +"TeaCompiler_dmg": $(SUBPROJECT_LIBS) $(REQUIRED_SUPPORT_DIRS) + @-rm -rf "TeaCompiler_dmg" + @-mkdir "TeaCompiler_dmg" + @-mkdir "TeaCompiler_dmg/TeaCompiler.app" + @-mkdir "TeaCompiler_dmg/TeaCompiler.app/Contents" + @-mkdir "TeaCompiler_dmg/TeaCompiler.app/Contents/MacOS" + cp "teak" "TeaCompiler_dmg/TeaCompiler.app/Contents/MacOS/TeaCompiler" + @-mkdir "TeaCompiler_dmg/TeaCompiler.app/Contents/MacOS/." + -cp -r *.so "TeaCompiler_dmg/TeaCompiler.app/Contents/MacOS/." + -cp -r symbols.stc "TeaCompiler_dmg/TeaCompiler.app/Contents/MacOS/." + -cp -r *.stx "TeaCompiler_dmg/TeaCompiler.app/Contents/MacOS/." + -cp -r *.rc "TeaCompiler_dmg/TeaCompiler.app/Contents/MacOS/." + -cp -r resources "TeaCompiler_dmg/TeaCompiler.app/Contents/MacOS/." + + +SOURCEFILES: teak_SOURCES \ + stx_SOURCES + + + + +RESOURCEFILES: teak_RESOURCES teak_BITMAPS \ + stx_RESOURCES stx_STYLES stx_BITMAPS + + +teak_RESOURCES: + mkdir -p resources/jv/tea/compiler/cli + -cp ../resources/*.rs ../resources/*.style resources/jv/tea/compiler/cli/.. + +teak_BITMAPS: + mkdir -p resources/jv/tea/compiler/cli/bitmaps + -cp *.ico *.gif *.png resources/jv/tea/compiler/cli/bitmaps + + +stx_RESOURCES: \ + libbasic_RESOURCES + +stx_STYLES: + +stx_BITMAPS: + +libbasic_RESOURCES: + mkdir -p resources/stx/libbasic + -cp $(TOP)/libbasic/resources/*.* resources/stx/libbasic + + +libstx_libbasic.so: $(TOP)/libbasic/libstx_libbasic.so + ln -sf $(TOP)/libbasic/libstx_libbasic.so . + +$(TOP)/libbasic/libstx_libbasic.so: $(TOP)/libbasic/makefile $(FORCE) + @if [ -f "$(TOP)/libbasic/.NOSOURCE" ]; then \ + echo "skip make in $(TOP)/libbasic (no source)"; \ + else \ + cd $(TOP)/libbasic && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES) "; \ + fi + +$(TOP)/libbasic/makefile: $(TOP)/libbasic/Make.proto + $(TOP)/rules/stmkmf --cd $(TOP)/libbasic + + + + + + + + + + +# Enforce recompilation of package definition class if Mercurial working +# copy state changes. Together with --guessVersion it ensures that package +# definition class always contains correct binary revision string. +ifneq (**NOHG**, $(shell hg root 2> /dev/null || echo -n '**NOHG**')) +jv_tea_compiler_cli.$(O): $(shell hg root)/.hg/dirstate +endif + + + + +clean:: + -rm -f *.so teak.$(O) + +clobber:: clean + -rm -f teak *.img *.sav + +# BEGINMAKEDEPEND --- do not remove this line; make depend needs it +$(OUTDIR)TCompilerCommand.$(O) TCompilerCommand.$(H): TCompilerCommand.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic/StandaloneStartup.$(H) $(STCHDR) +$(OUTDIR)jv_tea_compiler_cli.$(O) jv_tea_compiler_cli.$(H): jv_tea_compiler_cli.st $(INCLUDE_TOP)/stx/libbasic/ApplicationDefinition.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic/ProjectDefinition.$(H) $(STCHDR) + +# ENDMAKEDEPEND --- do not remove this line diff -r 10a95d798b36 -r 17a2d1d9f205 compiler/cli/Make.spec --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/compiler/cli/Make.spec Fri Sep 25 03:51:15 2015 +0100 @@ -0,0 +1,65 @@ +# $Header$ +# +# DO NOT EDIT +# automagically generated from the projectDefinition: jv_tea_compiler_cli. +# +# Warning: once you modify this file, do not rerun +# stmkmp or projectDefinition-build again - otherwise, your changes are lost. +# +# This file contains specifications which are common to all platforms. +# + +# Do NOT CHANGE THESE DEFINITIONS +# (otherwise, ST/X will have a hard time to find out the packages location from its packageID, +# to find the source code of a class and to find the library for a package) +MODULE=jv +MODULE_DIR=tea/compiler/cli +PACKAGE=$(MODULE):$(MODULE_DIR) + + +# Argument(s) to the stc compiler (stc --usage). +# -headerDir=. : create header files locally +# (if removed, they will be created as common +# -Pxxx : defines the package +# -Zxxx : a prefix for variables within the classLib +# -Dxxx : defines passed to to CC for inline C-code +# -Ixxx : include path passed to CC for inline C-code +# +optspace : optimized for space +# +optspace2 : optimized more for space +# +optspace3 : optimized even more for space +# +optinline : generate inline code for some ST constructs +# +inlineNew : additionally inline new +# +inlineMath : additionally inline some floatPnt math stuff +# +# ********** OPTIONAL: MODIFY the next line(s) *** +# STCLOCALOPTIMIZATIONS=+optinline +inlineNew +# STCLOCALOPTIMIZATIONS=+optspace3 +STCLOCALOPTIMIZATIONS=+optspace3 + + +# Argument(s) to the stc compiler (stc --usage). +# -warn : no warnings +# -warnNonStandard : no warnings about ST/X extensions +# -warnEOLComments : no warnings about EOL comment extension +# -warnPrivacy : no warnings about privateClass extension +# -warnUnused : no warnings about unused variables +# +# ********** OPTIONAL: MODIFY the next line(s) *** +# STCWARNINGS=-warn +# STCWARNINGS=-warnNonStandard +# STCWARNINGS=-warnEOLComments +STCWARNINGS=-warnNonStandard + +COMMON_CLASSES= \ + TCompilerCommand \ + jv_tea_compiler_cli \ + + + + +COMMON_OBJS= \ + $(OUTDIR_SLASH)TCompilerCommand.$(O) \ + $(OUTDIR_SLASH)jv_tea_compiler_cli.$(O) \ + + + diff -r 10a95d798b36 -r 17a2d1d9f205 compiler/cli/Makefile.init --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/compiler/cli/Makefile.init Fri Sep 25 03:51:15 2015 +0100 @@ -0,0 +1,27 @@ +# +# DO NOT EDIT +# +# make uses this file (Makefile) only, if there is no +# file named "makefile" (lower-case m) in the same directory. +# My only task is to generate the real makefile and call make again. +# Thereafter, I am no longer used and needed. +# +# MACOSX caveat: +# as filenames are not case sensitive (in a default setup), +# we cannot use the above trick. Therefore, this file is now named +# "Makefile.init", and you have to execute "make -f Makefile.init" to +# get the initial makefile. This is now also done by the toplevel CONFIG +# script. + +.PHONY: run + +run: makefile + $(MAKE) -f makefile + +#only needed for the definition of $(TOP) +include Make.proto + +makefile: mf + +mf: + $(TOP)/rules/stmkmf diff -r 10a95d798b36 -r 17a2d1d9f205 compiler/cli/TCompilerCommand.st --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/compiler/cli/TCompilerCommand.st Fri Sep 25 03:51:15 2015 +0100 @@ -0,0 +1,486 @@ +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" +"{ Package: 'jv:tea/compiler/cli' }" + +"{ NameSpace: Smalltalk }" + +StandaloneStartup subclass:#TCompilerCommand + instanceVariableNames:'' + classVariableNames:'' + poolDictionaries:'' + category:'Languages-Tea-Compiler' +! + +TCompilerCommand class instanceVariableNames:'debugging includes options' + +" + The following class instance variables are inherited by this class: + + StandaloneStartup - MutexHandle + Object - +" +! + +!TCompilerCommand class methodsFor:'documentation'! + +copyright +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" +! ! + +!TCompilerCommand class methodsFor:'initialization'! + +initialize + + super initialize. + debugging := Transcript notNil and:[Transcript isView]. + self setupSignalHandlers. + + "Created: / 06-11-2011 / 22:07:14 / Jan Vrany " + "Modified: / 01-09-2015 / 18:42:09 / Jan Vrany " +! ! + +!TCompilerCommand class methodsFor:'compiling'! + +process: files + "Actually compile files using `options` and `includes`." + + | env ctx compiler units | + + env := TEnvironment new. + env provider classpath addAll: includes. + + ctx := TCompilerContext new. + ctx options: options. + ctx environment: env. + + compiler := TCompiler new. + compiler context: ctx. + + files isEmpty ifTrue:[ + TCompilerError raiseErrorString:'no input files'. + ]. + units := OrderedCollection new: files size. + files do:[:filename | + | file | + + file := filename asFilename. + file isRegularFile ifFalse:[ + TCompilerError raiseErrorString: ('file does not exist: %1' bindWith: filename). + ]. + file isReadable ifFalse:[ + TCompilerError raiseErrorString: ('file not readable: %1' bindWith: filename). + ]. + file readingFileDo:[ :stream | + units add: (TSourceReader read: stream). + ]. + ]. + files with: units do:[:infile :unit | + compiler compile: unit. + options output isNil ifTrue:[ + | outfile | + + outfile := infile asFilename withSuffix: (options emitIR ifTrue:[ 'll' ] ifFalse: [ 'bc' ]). + self write: ctx llvmModule as: outfile. + ctx llvmModule: nil. + ]. + ]. + options output notNil ifTrue:[ + self write: ctx llvmModule as: options output. + ]. + + "Created: / 24-09-2015 / 16:46:48 / Jan Vrany " + "Modified: / 24-09-2015 / 18:45:53 / Jan Vrany " +! + +write: anLLVMModule as: aString + options emitIR ifTrue:[ + aString asFilename writingFileDo:[:s|anLLVMModule dumpOn: s]. + ] ifFalse:[ + anLLVMModule writeBitcodeToFile: aString + ] + + "Created: / 24-09-2015 / 17:06:23 / Jan Vrany " +! ! + +!TCompilerCommand class methodsFor:'debugging'! + +dumpProcess: aProcess + Stderr cr; cr + + "Created: / 27-06-2013 / 23:41:15 / Jan Vrany " +! + +dumpProcess: aProcess on: aStream + | ctx | + aStream cr; cr. + aStream nextPutAll: '== ['; nextPutAll: aProcess id printString; nextPutAll:'] '; nextPutAll: aProcess name; nextPutAll: ' =='; cr. + aStream cr. + aStream nextPutAll: ' State: '; nextPutAll: aProcess state printString; cr. + aStream nextPutAll: ' Group: '; nextPutAll: aProcess processGroupId printString; cr. + aStream nextPutAll: ' Creator: '; nextPutAll: aProcess processGroupId printString; cr. + aStream nextPutAll: ' Stack: '; cr; cr. + + aProcess == Processor activeProcess ifTrue:[ctx := thisContext] ifFalse:[ctx := aProcess suspendedContext]. + [ ctx notNil ] whileTrue:[ + aStream nextPutAll: ' '. + ctx fullPrintOn: aStream. + aStream cr. + ctx := ctx sender. + ]. + aStream cr. + + " + self dumpProcess: Processor activeProcess on: Transcript. + " + + "Created: / 28-06-2013 / 01:00:35 / Jan Vrany " + "Modified: / 06-06-2014 / 09:14:23 / Jan Vrany " +! + +dumpProcesses + self dumpProcessesOn: Stderr + + " + self dumpProcessesOn: Transcript. + " + + "Created: / 27-06-2013 / 23:41:15 / Jan Vrany " + "Modified (comment): / 28-06-2013 / 01:06:40 / Jan Vrany " +! + +dumpProcessesOn: aStream + Process allInstancesDo:[:process| + process isDead ifFalse:[ + self dumpProcess: process on: aStream + ] + ] + + "Created: / 27-06-2013 / 23:42:21 / Jan Vrany " +! ! + +!TCompilerCommand class methodsFor:'defaults'! + +allowCoverageMeasurementOption + + ^false "CoverageReport will do that" + + "Created: / 13-01-2012 / 11:48:40 / Jan Vrany " +! + +allowDebugOption + + ^true + + "Created: / 21-07-2011 / 09:48:21 / Jan Vrany " +! ! + +!TCompilerCommand class methodsFor:'multiple applications support'! + +applicationRegistryPath + "the key under which this application stores its process ID in the registry + as a collection of path-components. + i.e. if #('foo' 'bar' 'baz') is returned here, the current applications ID will be stored + in HKEY_CURRENT_USER\Software\foo\bar\baz\CurrentID. + (would also be used as a relative path for a temporary lock file under unix). + Used to detect if another instance of this application is already running." + + ^ #('jv' 'tea' 'compiler') + + "Modified: / 01-09-2015 / 18:33:12 / Jan Vrany " +! + +applicationUUID + "answer an application-specific unique uuid. + This is used as the name of some exclusive OS-resource, which is used to find out, + if another instance of this application is already running. + Under win32, a mutex is used; under unix, an exclusive file in the tempDir could be used." + + ^ '8a084bc0-50cf-11e5-bf6b-606720e43e2c' asUUID + + "Modified: / 01-09-2015 / 18:33:26 / Jan Vrany " +! ! + +!TCompilerCommand class methodsFor:'options'! + +cmdlineOptionEmitLLVMIR + ^CmdLineOption new + long: 'emit-llvm-ir'; + description: 'Emit LLVM IR (.ll) instead of bitcode (.bc)'; + action:[options emitIR: true]; + yourself + + "Created: / 24-09-2015 / 16:35:13 / Jan Vrany " + "Modified: / 24-09-2015 / 18:46:33 / Jan Vrany " +! + +cmdlineOptionOutput + ^CmdLineOption new + short: $o; + long: 'output'; + description: 'Place output in specified file'; + action:[:file | options output: file]; + yourself + + "Created: / 24-09-2015 / 16:32:26 / Jan Vrany " +! ! + +!TCompilerCommand class methodsFor:'startup'! + +handleSIGTERM + self dumpProcesses. + debugging ifFalse:[ + Smalltalk exit:127. + ]. + + "Created: / 27-06-2013 / 23:10:48 / Jan Vrany " + "Modified: / 28-06-2013 / 01:08:03 / Jan Vrany " +! + +handleSIGUSR2 + self dumpProcesses + + "Created: / 27-06-2013 / 23:10:48 / Jan Vrany " +! + +setupSignalHandlers + "On UNIX, this sets up a custom signal handler on SIGUSR2 and SIGTERM that + dumps stacks on all threads" + + | sigusr2 sigterm | + + OperatingSystem isUNIXlike ifTrue:[ + sigterm := Signal new. + sigterm handlerBlock: [:ex | self handleSIGTERM]. + OperatingSystem operatingSystemSignal:OperatingSystem sigTERM install: sigterm. + OperatingSystem enableSignal: OperatingSystem sigTERM. + + sigusr2 := Signal new. + sigusr2 handlerBlock: [:ex | self handleSIGUSR2]. + OperatingSystem operatingSystemSignal:OperatingSystem sigUSR2 install: sigusr2. + OperatingSystem enableSignal: OperatingSystem sigUSR2. + ]. + + " + OperatingSystem sendSignal: OperatingSystem sigUSR2 to: OperatingSystem getProcessId + " + + "Created: / 27-06-2013 / 20:57:09 / Jan Vrany " + "Modified: / 28-06-2013 / 01:11:04 / Jan Vrany " + "Modified (format): / 01-09-2015 / 18:34:09 / Jan Vrany " +! + +setupToolsForDebug + + super setupToolsForDebug. + debugging := true. + + "Created: / 06-11-2011 / 22:06:19 / Jan Vrany " +! + +start + Smalltalk silentLoading: true. + ^ super start. + + "Created: / 22-01-2014 / 09:17:12 / Jan Vrany " +! + +usage + + Stderr nextPutAll:'usage: tc'; + nextPutAll: '[options] [FILE1 [FILE2 [...]]]'; cr. + + Stderr nextPutLine:'Common options:'; cr. + + Stderr nextPutLine:' --help .................. output this message'. +"/ Stderr nextPutLine:' --verbose ............... verbose startup'. +"/ Stderr nextPutLine:' --noBanner .............. no splash screen'. +"/ Stderr nextPutLine:' --newAppInstance ........ start as its own application process (do not reuse'. +"/ Stderr nextPutLine:' a running instance)'. +"/ self allowScriptingOption ifTrue:[ +"/ Stderr nextPutLine:' --scripting portNr ...enable scripting via port (or stdin/stdOut if 0)'. +"/ ]. + self allowDebugOption ifTrue:[ + Stderr nextPutLine:' --debug ................. enable Debugger'. + ]. + "/ ' ......................... ' + Stderr nextPutLine:' -I ................. adds to the list of directories searched for'. + Stderr nextPutLine:' sources'. + Stderr nextPutLine:' -o'. + Stderr nextPutLine:' --output ........ place output to file '. + Stderr nextPutLine:' --emit-llvm-ir .......... emit LLVM IR (.ll) instead of LLVM bitcode (.bc, default)'. + debugging ifFalse:[ + Smalltalk exit:1. + ]. + " + self usage + " + + "Created: / 13-01-2012 / 11:48:07 / Jan Vrany " + "Modified: / 24-09-2015 / 16:35:58 / Jan Vrany " +! + +usageForReportClass: class + | options | + + "/ '.........................' size 25 + options := CmdLineOption optionsFor: class new. + options := options reject:[:option | 'pF' includes: option short ]. + options notEmptyOrNil ifTrue:[ + Stderr cr. + Stderr nextPutAll: class name; nextPutLine:' options:'; cr. + options do:[:option | + | optlen | + + option short notNil ifTrue:[ + Stderr nextPutAll: ' '. + Stderr nextPut: $-; nextPut: option short; space. + optlen := 2. + option hasParam ifTrue:[ + | paramName | + + paramName := 'val'. + Stderr nextPut:$<; nextPutAll: paramName; nextPut:$>; space. + optlen := optlen + 3 + paramName size. + ]. + ]. + option long notNil ifTrue:[ + option short notNil ifTrue:[ + Stderr cr. + ]. + Stderr nextPutAll: ' --'. + Stderr nextPutAll: option long. + optlen := option long size + 2. + option hasParam ifTrue:[ + | paramName | + + paramName := 'val'. + Stderr nextPut:$=; nextPut:$<; nextPutAll: paramName; nextPut:$>. + optlen := optlen + 3 + paramName size. + ]. + Stderr space. + ]. + Stderr next: (26 - 1"space" -2"--" - optlen) put: $.. + Stderr space. + option description notNil ifTrue:[ + Stderr nextPutAll: option description + ]. + Stderr cr. + ] + ] + + " + ReportRunner usageForReportClass: TestReport. + " + + "Created: / 27-05-2014 / 16:42:27 / Jan Vrany " + "Modified: / 16-06-2014 / 11:25:36 / Jan Vrany " +! ! + +!TCompilerCommand class methodsFor:'startup-to be redefined'! + +main:argv0 + "Process command line arguments" + + | argv parser i files | + + + argv := argv0 asOrderedCollection. + argv isEmpty ifTrue:[ + self usage. + ]. + argv remove: '--abortOnSEGV' ifAbsent:[nil]. + parser := CmdLineParser new. + CmdLineOptionError autoload. + includes := OrderedCollection new. + options := TCompilerOptions new. + [ + "/ Parse -I as they cannot be handled by option parser, sigh + i := 1. + [ i <= argv size ] whileTrue:[ + | option | + + option := argv at: i. + (option = '-I') ifTrue:[ + i = argv size ifTrue:[ + Stderr nextPutAll:'Error: -I must be followed by path'. + ] ifFalse:[ + includes add: (argv at: i + 1) + ]. + argv removeAtIndex: i + 1. + argv removeAtIndex: i. + ] ifFalse:[ + (option startsWith: '-I') ifTrue:[ + | include | + + include := option copyFrom: 3. + include isEmptyOrNil ifTrue:[ + Stderr nextPutAll:'Error: -I must be followed by path'. + ] ifFalse:[ + includes add: include. + ]. + argv removeAtIndex: i. + ] ifFalse:[ + i := i + 1. + ]. + ] + ]. + files := parser parse: argv for: self. + ] on:CmdLineOptionError do:[:ex| + Stderr nextPutLine:'Error when processing options: ', ex description. + debugging ifFalse:[ + ex suspendedContext fullPrintAllOn: Stderr. + Stderr nextPutLine:'Exiting'. + Smalltalk exit:1. + ] ifTrue:[ + ex pass + ] + ]. + + debugging ifFalse:[ + NoHandlerError emergencyHandler:(NoHandlerError abortingEmergencyHandler) + ]. + + [ + self process: files. + debugging ifFalse:[ + Smalltalk exit:0. + ]. + ] on: Error do:[:ex| + Stderr nextPutAll:'Error when compiling: '. + Stderr nextPutAll:ex description; cr. + ex suspendedContext printAllOn:Stderr. + debugging ifFalse:[ + Smalltalk exit:1. + ] ifTrue:[ + ex pass + ] + ] + + "Modified: / 24-09-2015 / 16:40:46 / Jan Vrany " +! ! + + +TCompilerCommand initialize! diff -r 10a95d798b36 -r 17a2d1d9f205 compiler/cli/abbrev.stc --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/compiler/cli/abbrev.stc Fri Sep 25 03:51:15 2015 +0100 @@ -0,0 +1,5 @@ +# automagically generated by the project definition +# this file is needed for stc to be able to compile modules independently. +# it provides information about a classes filename, category and especially namespace. +TCompilerCommand TCompilerCommand jv:tea/compiler/cli 'Languages-Tea-Compiler' 4 +jv_tea_compiler_cli jv_tea_compiler_cli jv:tea/compiler/cli '* Projects & Packages *' 3 diff -r 10a95d798b36 -r 17a2d1d9f205 compiler/cli/autopackage/default.apspec --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/compiler/cli/autopackage/default.apspec Fri Sep 25 03:51:15 2015 +0100 @@ -0,0 +1,90 @@ +# -*- shell-script -*- +[Meta] +ShortName: teak +SoftwareVersion: 6.2.5.0 +DisplayName: Tea Language Compiler +RootName: @exept.de/expecco:$SOFTWAREVERSION +Summary: Tea Language Compiler +Maintainer: Jan Vrany +Packager: Jan Vrany +PackageVersion: 1 +CPUArchitectures: x86 +AutopackageTarget: 1.0 +Type: Application +License: Commercial + +[Description] +Tea Language Compiler + +[BuildPrepare] +# If you're using autotools, the default should be enough. +# prepareBuild will set up apbuild and run configure for you. If you +# need to pass arguments to configure, just add them to prepareBuild: +# prepareBuild --enable-foo --disable-bar +#prepareBuild + +[BuildUnprepare] +# If you're using prepareBuild above, there is no need to change this! +#unprepareBuild + +[Globals] +# Variables declared in this section will be available in all other sections +export APKG_BUILD_SKIP_CONFIGURE=1 +export APKG_BUILD_SKIP_MAKE=1 +export MYPREFIX=/opt/teak + +[Prepare] +#recommend '@autopackage.org/autopackage-gtk' 1 + +[Imports] +import < "stx:libui" +clear "stx:libwidg2" => "stx:libui" + +project :'teak:baseline' do + # preamble + + # -------- + + package "stx:libbasic" + + + application "jv:tea/compiler/cli" + + # postamble + + # --------- + +end diff -r 10a95d798b36 -r 17a2d1d9f205 compiler/cli/builder/package.deps.rake --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/compiler/cli/builder/package.deps.rake Fri Sep 25 03:51:15 2015 +0100 @@ -0,0 +1,135 @@ + +# Package dependencies. +# Automatically generated by project defintion. + +task "stx:libview2" => "stx:libbasic" +task "stx:libview2" => "stx:libbasic2" +task "stx:libview2" => "stx:libview" +task "stx:libview2" => "stx:libui" + +task "stx:goodies/refactoryBrowser/helpers" => "stx:libbasic" +task "stx:goodies/refactoryBrowser/helpers" => "stx:libcomp" +task "stx:goodies/refactoryBrowser/helpers" => "stx:libcompat" + +task "stx:goodies/sunit" => "stx:libbasic" +task "stx:goodies/sunit" => "stx:libview2" +task "stx:goodies/sunit" => "stx:libbasic2" +task "stx:goodies/sunit" => "stx:libview" + +task "stx:goodies/refactoryBrowser/browser" => "stx:goodies/refactoryBrowser/helpers" +task "stx:goodies/refactoryBrowser/browser" => "stx:libbasic" +task "stx:goodies/refactoryBrowser/browser" => "stx:libview2" +task "stx:goodies/refactoryBrowser/browser" => "stx:goodies/refactoryBrowser/parser" +task "stx:goodies/refactoryBrowser/browser" => "stx:libcompat" +task "stx:goodies/refactoryBrowser/browser" => "stx:libview" +task "stx:goodies/refactoryBrowser/browser" => "stx:libwidg" + +task "jv:tea/compiler" => "jv:llvm_s" +task "jv:tea/compiler" => "stx:goodies/refactoryBrowser/parser" +task "jv:tea/compiler" => "stx:goodies/ring" +task "jv:tea/compiler" => "stx:goodies/sunit" +task "jv:tea/compiler" => "stx:libbasic" +task "jv:tea/compiler" => "stx:libbasic3" + +task "stx:libtool" => "stx:goodies/refactoryBrowser/parser" +task "stx:libtool" => "stx:libbasic" +task "stx:libtool" => "stx:libbasic2" +task "stx:libtool" => "stx:libbasic3" +task "stx:libtool" => "stx:libcomp" +task "stx:libtool" => "stx:libui" +task "stx:libtool" => "stx:libview" +task "stx:libtool" => "stx:libview2" +task "stx:libtool" => "stx:libwidg" +task "stx:libtool" => "stx:libwidg2" +task "stx:libtool" => "stx:libwidg3" + +task "stx:libboss" => "stx:libbasic" +task "stx:libboss" => "stx:libbasic2" +task "stx:libboss" => "stx:libview" + +task "stx:libcomp" => "stx:libbasic" + +task "stx:libcompat" => "stx:libbasic" +task "stx:libcompat" => "stx:libbasic2" +task "stx:libcompat" => "stx:libbasic3" +task "stx:libcompat" => "stx:libview" +task "stx:libcompat" => "stx:libview2" +task "stx:libcompat" => "stx:libwidg" +task "stx:libcompat" => "stx:libwidg2" + +task "stx:libui" => "stx:libbasic" +task "stx:libui" => "stx:libview" + + +task "stx:goodies/refactoryBrowser/parser" => "stx:libbasic" +task "stx:goodies/refactoryBrowser/parser" => "stx:libbasic2" + +task "stx:libbasic3" => "stx:libbasic" +task "stx:libbasic3" => "stx:libbasic2" +task "stx:libbasic3" => "stx:libjavascript" + +task "stx:libhtml" => "stx:libbasic" +task "stx:libhtml" => "stx:libview" +task "stx:libhtml" => "stx:libwidg" + +task "stx:libwidg2" => "stx:libbasic" +task "stx:libwidg2" => "stx:libbasic2" +task "stx:libwidg2" => "stx:libview" +task "stx:libwidg2" => "stx:libview2" +task "stx:libwidg2" => "stx:libwidg" +task "stx:libwidg2" => "stx:goodies/refactoryBrowser/browser" +task "stx:libwidg2" => "stx:libboss" +task "stx:libwidg2" => "stx:libjava" +task "stx:libwidg2" => "stx:libjavascript" +task "stx:libwidg2" => "stx:libui" + +task "stx:libbasic2" => "stx:libbasic" + +task "jv:llvm_s" => "stx:goodies/sunit" +task "jv:llvm_s" => "stx:libbasic" + +task "stx:libwidg3" => "stx:libbasic" +task "stx:libwidg3" => "stx:libui" +task "stx:libwidg3" => "stx:libview" +task "stx:libwidg3" => "stx:libview2" +task "stx:libwidg3" => "stx:libwidg" +task "stx:libwidg3" => "stx:libwidg2" +task "stx:libwidg3" => "stx:libbasic2" + +task "stx:goodies/ring" => "stx:libbasic" +task "stx:goodies/ring" => "stx:libcompat" + +task "stx:libwidg" => "stx:libbasic" +task "stx:libwidg" => "stx:libview" +task "stx:libwidg" => "stx:libview2" +task "stx:libwidg" => "stx:libbasic2" +task "stx:libwidg" => "stx:libbasic3" +task "stx:libwidg" => "stx:libui" + + +task "stx:libjava" => "stx:libbasic" +task "stx:libjava" => "stx:libbasic2" +task "stx:libjava" => "stx:libbasic3" +task "stx:libjava" => "stx:libview" +task "stx:libjava" => "stx:libcomp" +task "stx:libjava" => "stx:libhtml" +task "stx:libjava" => "stx:libtool" +task "stx:libjava" => "stx:libview2" +task "stx:libjava" => "stx:libwidg" +task "stx:libjava" => "stx:libwidg2" + +task "stx:libjavascript" => "stx:libbasic" +task "stx:libjavascript" => "stx:libbasic3" +task "stx:libjavascript" => "stx:libcomp" +task "stx:libjavascript" => "stx:libtool" +task "stx:libjavascript" => "stx:goodies/refactoryBrowser/parser" +task "stx:libjavascript" => "stx:goodies/webServer" +task "stx:libjavascript" => "stx:libview2" + +task "stx:libview" => "stx:libbasic" + +task "jv:tea/compiler/cli" => "stx:libbasic" +task "jv:tea/compiler/cli" => "jv:tea/compiler" +task "jv:tea/compiler/cli" => "stx:libcomp" + + diff -r 10a95d798b36 -r 17a2d1d9f205 compiler/cli/cli.nsi --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/compiler/cli/cli.nsi Fri Sep 25 03:51:15 2015 +0100 @@ -0,0 +1,206 @@ +; $Header$ +; Script generated by ProjectDefinition. + +!define PRODUCT_NAME "TeaCompiler" +!define PRODUCT_FILENAME "TeaCompiler" +!define PRODUCT_VERSION "6.2.5.0" +!define PRODUCT_PUBLISHER "Jan Vrany" +!define PRODUCT_WEB_SITE "http://www.yoursite.com" +!define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_FILENAME}" +!define PRODUCT_UNINST_ROOT_KEY "HKLM" + +!define STX_ROOT "..\..\..\..\stx\.." + +SetCompressor /solid lzma + +!include "MUI2.nsh" +!include "x64.nsh" + +; MUI Settings + +!define MUI_WELCOMEPAGE_TITLE_3LINES +!define MUI_ABORTWARNING +!define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\modern-install.ico" +;; !define MUI_ICON "nil.ico" +!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall.ico" +;; !define MUI_UNICON "nil.ico" + +; Language Selection Dialog Settings +!define MUI_LANGDLL_REGISTRY_ROOT "${PRODUCT_UNINST_ROOT_KEY}" +!define MUI_LANGDLL_REGISTRY_KEY "${PRODUCT_UNINST_KEY}" +!define MUI_LANGDLL_REGISTRY_VALUENAME "NSIS:Language" + +; Welcome page +!insertmacro MUI_PAGE_WELCOME +; License page +; !define MUI_LICENSEPAGE_CHECKBOX + + +!insertmacro MUI_PAGE_COMPONENTS +; Directory page +!insertmacro MUI_PAGE_DIRECTORY +; Instfiles page +!insertmacro MUI_PAGE_INSTFILES +; Finish page +!insertmacro MUI_PAGE_FINISH + +; Uninstaller pages +!insertmacro MUI_UNPAGE_INSTFILES + +; Language files +!insertmacro MUI_LANGUAGE "English" +!insertmacro MUI_LANGUAGE "German" + +; MUI end ------ + + + +Name "${PRODUCT_NAME} ${PRODUCT_VERSION}" +VIProductVersion "${PRODUCT_VERSION}.0" +VIAddVersionKey /LANG=${LANG_ENGLISH} "ProductName" "${PRODUCT_NAME}" +VIAddVersionKey /LANG=${LANG_ENGLISH} "CompanyName" "${PRODUCT_PUBLISHER}" +VIAddVersionKey /LANG=${LANG_ENGLISH} "FileVersion" "6.2.32767.32767" +VIAddVersionKey /LANG=${LANG_ENGLISH} "FileDescription" "${PRODUCT_NAME} Installer" +VIAddVersionKey /LANG=${LANG_ENGLISH} "ProductVersion" "${PRODUCT_VERSION}" +VIAddVersionKey /LANG=${LANG_ENGLISH} "LegalCopyright" "(C) 2015 Jan Vrany" + + +OutFile "TeaCompilerSetup.exe" +InstallDir "$PROGRAMFILES\cli" +ShowInstDetails show +ShowUnInstDetails show + +Function .onInit + !insertmacro MUI_LANGDLL_DISPLAY +FunctionEnd + +InstType Full +InstType Partial + +Section "Programme" Section1 + SectionIn 1 2 + SetOutPath "$INSTDIR\bin" + SetOverwrite ifnewer + File "teak.com" + File "*.dll" + File "symbols.stc" + File "*.stx" + File "*.rc" + File /r /x CVS /x ".*" resources + + + + + + WriteRegStr HKCR "Jv.TeaCompiler.1" "" "TeaCompiler File" + WriteRegStr HKCR "Jv.TeaCompiler.1\DefaultIcon" "" '$INSTDIR\bin\teak.exe,0' + WriteRegStr HKCR "Jv.TeaCompiler.1\Shell\open" "" $(appOpen) + WriteRegStr HKCR "Jv.TeaCompiler.1\Shell\open\command" "" '"$INSTDIR\bin\teak.exe" -- "%1"' +SectionEnd + +;; Section "Online-Documentation for TeaCompiler" Section2 +;; SectionIn 1 +;; SetOutPath "$INSTDIR\doc" +;; SetOverwrite ifnewer +;; File /r /x CVS "${STX_ROOT}\jv\teak\doc\*" +;; SectionEnd + +;; Section "TeaCompiler Libraries and Demos" Section3 +;; SectionIn 1 +;; SetOutPath "$INSTDIR\lib" +;; SetOverwrite ifnewer +;; ; File /r /x CVS "${STX_ROOT}\jv\teak\examples\*" +;; SectionEnd +;; +;; Section "TeaCompiler Reports and Printing" Section4 +;; SectionIn 1 +;; SetOutPath "$INSTDIR\reportGenerator" +;; SetOverwrite ifnewer +;; ; File /r /x CVS "..\reportGenerator\java" "..\reportGenerator\rules" "..\reportGenerator\*.xml" "..\reportGenerator\*.xslt" "..\reportGenerator\CloseApp.exe" "..\reportGenerator\expecco.jpg" +;; SectionEnd + + + + + + + + +Section -AdditionalIcons + SetOutPath "$INSTDIR\bin" + WriteIniStr "$INSTDIR\${PRODUCT_FILENAME}.url" "InternetShortcut" "URL" "${PRODUCT_WEB_SITE}" + CreateDirectory "$SMPROGRAMS\${PRODUCT_FILENAME}" + CreateShortCut "$SMPROGRAMS\${PRODUCT_FILENAME}\teak.lnk" "$INSTDIR\bin\teak.exe" + CreateShortCut "$DESKTOP\teak.lnk" "$INSTDIR\bin\teak.exe" + CreateShortCut "$SMPROGRAMS\${PRODUCT_FILENAME}\Website.lnk" "$INSTDIR\${PRODUCT_FILENAME}.url" + CreateShortCut "$SMPROGRAMS\${PRODUCT_FILENAME}\Uninstall.lnk" "$INSTDIR\uninst.exe" +SectionEnd + +Section -Post + WriteUninstaller "$INSTDIR\uninst.exe" + WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)" + WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$INSTDIR\uninst.exe" + WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}" + WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "URLInfoAbout" "${PRODUCT_WEB_SITE}" + WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "Publisher" "${PRODUCT_PUBLISHER}" +SectionEnd + +LangString appOpen ${LANG_GERMAN} "Mit TeaCompiler öffnen" +LangString appOpen ${LANG_ENGLISH} "Open with TeaCompiler" + +LangString DESC_Section1 ${LANG_ENGLISH} "Program components of TeaCompiler" +LangString DESC_Section1 ${LANG_GERMAN} "Alle Programmkomponenten von TeaCompiler" +;; LangString DESC_Section2 ${LANG_ENGLISH} "Online-Documentation of TeaCompiler" +;; LangString DESC_Section2 ${LANG_GERMAN} "Online-Dokumentation zu TeaCompiler" +;; LangString DESC_Section3 ${LANG_ENGLISH} "Libraries and Demo Projects" +;; LangString DESC_Section3 ${LANG_GERMAN} "Bibliotheken und Beispielprojekte" +;; LangString DESC_Section4 ${LANG_ENGLISH} "Logfile Printing and Report Generation" +;; LangString DESC_Section4 ${LANG_GERMAN} "Drucken und Report-Generierung aus Log-Dateien" +;; LangString DESC_Section3 ${LANG_ENGLISH} "Sources of ST/X (Base-System)" +;; LangString DESC_Section3 ${LANG_GERMAN} "Quellcode von ST/X (Basis-System)" +;; LangString DESC_Section4 ${LANG_ENGLISH} "Sources of TeaCompiler" +;; LangString DESC_Section4 ${LANG_GERMAN} "Quellcode von TeaCompiler" + + +!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN + !insertmacro MUI_DESCRIPTION_TEXT ${Section1} $(DESC_Section1) +;; !insertmacro MUI_DESCRIPTION_TEXT ${Section2} $(DESC_Section2) +;; !insertmacro MUI_DESCRIPTION_TEXT ${Section3} $(DESC_Section3) +;; !insertmacro MUI_DESCRIPTION_TEXT ${Section4} $(DESC_Section4) + +!insertmacro MUI_FUNCTION_DESCRIPTION_END + + + +Function un.onUninstSuccess + HideWindow + MessageBox MB_ICONINFORMATION|MB_OK "TeaCompiler wurde erfolgreich deinstalliert" +FunctionEnd + +Function un.onInit +!insertmacro MUI_UNGETLANGUAGE + MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "Möchten Sie TeaCompiler und alle seine Komponenten deinstallieren?" IDYES +2 + Abort +FunctionEnd + +Section Uninstall + Delete "$INSTDIR\${PRODUCT_FILENAME}.url" + Delete "$INSTDIR\uninst.exe" + + Delete "$INSTDIR\*" + RMDir /r "$INSTDIR" + + Delete "$SMPROGRAMS\${PRODUCT_FILENAME}\Uninstall.lnk" + Delete "$SMPROGRAMS\${PRODUCT_FILENAME}\Website.lnk" + Delete "$SMPROGRAMS\${PRODUCT_FILENAME}\teak.lnk" + Delete "$DESKTOP\teak.lnk" + + RMDir "$SMPROGRAMS\${PRODUCT_FILENAME}" + + DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" + DeleteRegKey HKCR "Jv.TeaCompiler.1" + + + + SetAutoClose true +SectionEnd diff -r 10a95d798b36 -r 17a2d1d9f205 compiler/cli/cliWinRC.rc --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/compiler/cli/cliWinRC.rc Fri Sep 25 03:51:15 2015 +0100 @@ -0,0 +1,49 @@ +// +// DO NOT EDIT +// automagically generated from the projectDefinition: jv_tea_compiler_cli. +// +#define IDR_MAINFRAME 128 +#define IDR_SPLASH 129 + +#if (__BORLANDC__) +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +#endif + +#pragma code_page(1252) + + + +VS_VERSION_INFO VERSIONINFO + FILEVERSION 6,2,32767,32767 + PRODUCTVERSION 6,2,5,0 +#if (__BORLANDC__) + FILEFLAGSMASK VS_FF_DEBUG | VS_FF_PRERELEASE + FILEFLAGS VS_FF_PRERELEASE | VS_FF_SPECIALBUILD + FILEOS VOS_NT_WINDOWS32 + FILETYPE VFT_DLL + FILESUBTYPE VS_USER_DEFINED +#else + FILEFLAGSMASK 0x3fL +#endif + +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904E4" + BEGIN + VALUE "CompanyName", "My Company\0" + VALUE "FileDescription", "Application\0" + VALUE "FileVersion", "6.2.32767.32767\0" + VALUE "InternalName", "jv:tea/compiler/cli\0" + VALUE "LegalCopyright", "My CopyRight or CopyLeft\0" + VALUE "ProductName", "ProductName\0" + VALUE "ProductVersion", "6.2.5.0\0" + VALUE "ProductDate", "Fri, 25 Sep 2015 02:28:29 GMT\0" + END + END + + BLOCK "VarFileInfo" + BEGIN // Language | Translation + VALUE "Translation", 0x409, 0x4E4 // U.S. English, Windows Multilingual + END +END diff -r 10a95d798b36 -r 17a2d1d9f205 compiler/cli/jv_tea_compiler_cli.st --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/compiler/cli/jv_tea_compiler_cli.st Fri Sep 25 03:51:15 2015 +0100 @@ -0,0 +1,208 @@ +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" +"{ Package: 'jv:tea/compiler/cli' }" + +"{ NameSpace: Smalltalk }" + +ApplicationDefinition subclass:#jv_tea_compiler_cli + instanceVariableNames:'' + classVariableNames:'' + poolDictionaries:'' + category:'* Projects & Packages *' +! + +!jv_tea_compiler_cli class methodsFor:'documentation'! + +copyright +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" +! ! + +!jv_tea_compiler_cli class methodsFor:'description'! + +applicationName + "answer the name of the application. + This is also the name of the generated .exe file. + + Subclasses may redefine this" + + ^ 'teak' + + " + bosch_dapasx_application applicationName + stx_projects_smalltalk applicationName + " + + "Created: / 25-09-2015 / 03:46:07 / Jan Vrany " +! + +excludedFromPreRequisites + "list packages which are to be explicitely excluded from the automatic constructed + prerequisites list. If empty, everything that is found along the inheritance of any of + my classes is considered to be a prerequisite package." + + ^ #( + ) +! + +isGUIApplication + "return true, if this is a GUI application. + (these need more libraries and use a different startup procedure)" + + ^ false +! + +mandatoryPreRequisites + "list packages which are mandatory as a prerequisite. + This are packages containing superclasses of my classes and classes which + are extended by myself. + They are mandatory, because we need these packages as a prerequisite for loading and compiling. + This method is generated automatically, + by searching along the inheritance chain of all of my classes." + + ^ #( + #'stx:libbasic' "ApplicationDefinition - superclass of jv_tea_compiler_cli" + ) +! + +referencedPreRequisites + "list packages which are a prerequisite, because they contain + classes which are referenced by my classes. + We do not need these packages as a prerequisite for compiling or loading, + however, a class from it may be referenced during execution and having it + unloaded then may lead to a runtime doesNotUnderstand error, unless the caller + includes explicit checks for the package being present. + This method is generated automatically, + by searching all classes (and their packages) which are referenced by my classes." + + ^ #( + #'jv:tea/compiler' "TCompiler - referenced by TCompilerCommand class>>process:" + ) +! + +subProjects + "list packages which are known as subprojects. + This method is generated automatically; however, when generating automatically, + packages are only added - never removed, unless listed in #excludedFromSubProjects." + + ^ #( +) +! ! + +!jv_tea_compiler_cli class methodsFor:'description - contents'! + +classNamesAndAttributes + "lists the classes which are to be included in the project. + Each entry in the list may be: a single class-name (symbol), + or an array-literal consisting of class name and attributes. + Attributes are: #autoload or # where os is one of win32, unix,..." + + ^ #( + " or ( attributes...) in load order" + TCompilerCommand + #'jv_tea_compiler_cli' + ) +! + +extensionMethodNames + "list class/selector pairs of extensions. + A correponding method with real names must be present in my concrete subclasses" + + ^ #( + ) +! ! + +!jv_tea_compiler_cli class methodsFor:'description - project information'! + +applicationIconFileName + "Return the name (without suffix) of an icon-file (the app's icon); will be included in the rc-resource file" + + ^ nil + " ^ self applicationName " +! + +companyName + "Returns a company string which will appear in .rc. + Under win32, this is placed into the dlls file-info" + + ^ 'Jan Vrany' + + "Modified: / 25-09-2015 / 03:42:53 / Jan Vrany " +! + +description + "Returns a description string which will appear in nt.def / bc.def" + + ^ 'Tea Language Compiler' + + "Modified: / 25-09-2015 / 03:44:15 / Jan Vrany " +! + +legalCopyright + "Returns a copyright string which will appear in .rc. + Under win32, this is placed into the dlls file-info" + + ^ '(C) 2015 Jan Vrany' + + "Modified: / 25-09-2015 / 03:43:29 / Jan Vrany " +! + +productInstallDirBaseName + "Returns a default installDir which will appear in .nsi. + This is usually not the one you want to keep" + + ^ (self package asCollectionOfSubstringsSeparatedByAny:':/') last +! + +productName + "Returns a product name which will appear in .rc. + Under win32, this is placed into the dlls file-info. + This method is usually redefined in a concrete application definition" + + ^ 'TeaCompiler' + + "Modified: / 25-09-2015 / 03:44:28 / Jan Vrany " +! ! + +!jv_tea_compiler_cli class methodsFor:'description - startup'! + +startupClassName + "the class that starts the show in its startupSelector method" + + ^ 'TCompilerCommand' +! + +startupSelector + "the message that is sent to the startupClass to start the show" + + ^ #'start' +! ! + +!jv_tea_compiler_cli class methodsFor:'documentation'! + +version_HG + ^ '$Changeset: $' +! ! + diff -r 10a95d798b36 -r 17a2d1d9f205 compiler/cli/mingwmake.bat --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/compiler/cli/mingwmake.bat Fri Sep 25 03:51:15 2015 +0100 @@ -0,0 +1,16 @@ +@REM ------- +@REM make using mingw gnu compiler +@REM type mingwmake, and wait... +@REM do not edit - automatically generated from ProjectDefinition +@REM ------- +@SET DEFINES= +@REM Kludge got Mercurial, cannot be implemented in Borland make +@FOR /F "tokens=*" %%i in ('hg root') do SET HGROOT=%%i +@IF "%HGROOT%" NEQ "" SET DEFINES=%DEFINES% "-DHGROOT=%HGROOT%" + +@pushd ..\..\..\..\stx\rules +@call find_mingw.bat +@popd +make.exe -N -f bc.mak %DEFINES% %USEMINGW_ARG% %* + + diff -r 10a95d798b36 -r 17a2d1d9f205 compiler/cli/modules.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/compiler/cli/modules.c Fri Sep 25 03:51:15 2015 +0100 @@ -0,0 +1,22 @@ +/* $Header$ + * + * DO NOT EDIT + * automagically generated from the projectDefinition: jv_tea_compiler_cli. + * + * Warning: once you modify this file, do not rerun + * stmkmp or projectDefinition-build again - otherwise, your changes are lost. + */ +typedef void (*vf)(); + +extern void _TCompilerCommand_Init(); +extern void _jv_137tea_137compiler_137cli_Init(); + + +static vf modules[] = { + _TCompilerCommand_Init, +_jv_137tea_137compiler_137cli_Init, + + (vf)0 +}; + +vf *__modules__ = modules; diff -r 10a95d798b36 -r 17a2d1d9f205 compiler/cli/modules.stx --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/compiler/cli/modules.stx Fri Sep 25 03:51:15 2015 +0100 @@ -0,0 +1,19 @@ +# $Header$ +# +# DO NOT EDIT +# automagically generated from the projectDefinition: jv_tea_compiler_cli. +# +# Warning: once you modify this file, do not rerun +# stmkmp or projectDefinition-build again - otherwise, your changes are lost. +# +# This file is (currently) only used with win-95 / win-NT versions of STX. +# It lists the dll's which are to be loaded at startup time. +# Notice, lines starting with a "#" are comments. +# Lines starting with a "*" are treated as comments by the VM, but are usually loaded +# by the application at the very beginning. +# +# All classes loaded at startup time will be present as precompiled classes. +# Others might be autoloaded or loaded explicit using "Smalltalk loadPackage:xxx". +# +libstx_libbasic + diff -r 10a95d798b36 -r 17a2d1d9f205 compiler/cli/vcmake.bat --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/compiler/cli/vcmake.bat Fri Sep 25 03:51:15 2015 +0100 @@ -0,0 +1,21 @@ +@REM ------- +@REM make using Microsoft Visual C compiler +@REM type vcmake, and wait... +@REM do not edit - automatically generated from ProjectDefinition +@REM ------- + +@if not defined VSINSTALLDIR ( + pushd ..\..\..\..\stx\rules + call vcsetup.bat + popd +) +@SET DEFINES= +@REM Kludge got Mercurial, cannot be implemented in Borland make +@FOR /F "tokens=*" %%i in ('hg root') do SET HGROOT=%%i +@IF "%HGROOT%" NEQ "" SET DEFINES=%DEFINES% "-DHGROOT=%HGROOT%" + + +make.exe -N -f bc.mak -DUSEVC=1 %DEFINES% %* + + + diff -r 10a95d798b36 -r 17a2d1d9f205 compiler/jv_tea_compiler.st --- a/compiler/jv_tea_compiler.st Wed Sep 23 22:21:44 2015 +0100 +++ b/compiler/jv_tea_compiler.st Fri Sep 25 03:51:15 2015 +0100 @@ -1,3 +1,16 @@ +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" "{ Package: 'jv:tea/compiler' }" "{ NameSpace: Smalltalk }" @@ -9,6 +22,23 @@ category:'* Projects & Packages *' ! +!jv_tea_compiler class methodsFor:'documentation'! + +copyright +" + Copyright (C) 2015-now Jan Vrany + + This code is not an open-source (yet). You may use this code + for your own experiments and projects, given that: + + * all modification to the code will be sent to the + original author for inclusion in future releases + * this is not used in any commercial software + + This license is provisional and may (will) change in + a future. +" +! ! !jv_tea_compiler class methodsFor:'description'! @@ -30,10 +60,11 @@ by searching along the inheritance chain of all of my classes." ^ #( + #'jv:llvm_s' "LLVMAtomicOrdering - shared pool used by TLLVMCodeGenerator" #'stx:goodies/refactoryBrowser/parser' "RBAssignmentNode - extended" #'stx:goodies/ring' "RGAbstractContainer - superclass of TCompilationUnitDefinition" #'stx:goodies/sunit' "TestAsserter - superclass of TCompilerExamples" - #'stx:libbasic' "Autoload - superclass of TMethodDefinitionTests" + #'stx:libbasic' "Error - superclass of TCompilerError" ) ! @@ -48,7 +79,6 @@ by searching all classes (and their packages) which are referenced by my classes." ^ #( - #'jv:llvm_s' "LLVMConstant - referenced by TConstantBinding>>asLLVMValueInModule:" #'stx:libbasic3' "ChangeSet - referenced by TSourceReader>>read:" ) ! @@ -76,23 +106,29 @@ TClassDefinition TCompilationUnitDefinition TCompiler - TCompilerContext TCompilerError (TCompilerExamples autoload) TEnvironmentProvider TFormatter TMetaDefinition TMethodDefinition + (TMethodDefinitionTests autoload) TNamespaceDefinition TObjectWithProperties TParser + (TParserTests autoload) TProgramNodeVisitor + (TSemanticAnalyserTests autoload) TSourceReader + (TSourceReaderTests autoload) TSpecialFormNode TTypeNode TTypeSpecNode + (TTypecheckerTests autoload) #'jv_tea_compiler' TBinding + TCompilerContext + TCompilerOptions TCompilerPass TEnvironment TFilesystemProvider @@ -115,11 +151,6 @@ TVariableBinding TArgumentBinding TLocalBinding - (TMethodDefinitionTests autoload) - (TParserTests autoload) - (TSemanticAnalyserTests autoload) - (TSourceReaderTests autoload) - (TTypecheckerTests autoload) ) ! @@ -167,20 +198,26 @@ "Returns a company string which will appear in .rc. Under win32, this is placed into the dlls file-info" - ^ 'My Company' + ^ 'Jan Vrany' + + "Modified: / 25-09-2015 / 03:42:53 / Jan Vrany " ! description "Returns a description string which will appear in nt.def / bc.def" - ^ 'Class Library' + ^ 'Tea Language Compiler Library' + + "Modified: / 25-09-2015 / 03:43:19 / Jan Vrany " ! legalCopyright "Returns a copyright string which will appear in .rc. Under win32, this is placed into the dlls file-info" - ^ 'My CopyRight or CopyLeft' + ^ '(C) 2015 Jan Vrany' + + "Modified: / 25-09-2015 / 03:43:29 / Jan Vrany " ! productName @@ -188,7 +225,9 @@ Under win32, this is placed into the dlls file-info. This method is usually redefined in a concrete application definition" - ^ 'LibraryName' + ^ 'TeaCompilerLibrary' + + "Modified: / 25-09-2015 / 03:43:41 / Jan Vrany " ! ! !jv_tea_compiler class methodsFor:'documentation'! diff -r 10a95d798b36 -r 17a2d1d9f205 compiler/libInit.cc --- a/compiler/libInit.cc Wed Sep 23 22:21:44 2015 +0100 +++ b/compiler/libInit.cc Fri Sep 25 03:51:15 2015 +0100 @@ -30,7 +30,6 @@ _TClassDefinition_Init(pass,__pRT__,snd); _TCompilationUnitDefinition_Init(pass,__pRT__,snd); _TCompiler_Init(pass,__pRT__,snd); -_TCompilerContext_Init(pass,__pRT__,snd); _TCompilerError_Init(pass,__pRT__,snd); _TEnvironmentProvider_Init(pass,__pRT__,snd); _TFormatter_Init(pass,__pRT__,snd); @@ -46,6 +45,8 @@ _TTypeSpecNode_Init(pass,__pRT__,snd); _jv_137tea_137compiler_Init(pass,__pRT__,snd); _TBinding_Init(pass,__pRT__,snd); +_TCompilerContext_Init(pass,__pRT__,snd); +_TCompilerOptions_Init(pass,__pRT__,snd); _TCompilerPass_Init(pass,__pRT__,snd); _TEnvironment_Init(pass,__pRT__,snd); _TFilesystemProvider_Init(pass,__pRT__,snd);