# HG changeset patch # User Jan Vrany # Date 1457597593 0 # Node ID 59f77658de0778ee98cd85b8c3c557dcaa404f75 # Parent f6490a32d738e9ba4f511f37b8fb2045a1297c62# Parent 22491f76a3172dc2b2aa6b512aa224ce4038df3a Merge diff -r f6490a32d738 -r 59f77658de07 Collection.st --- a/Collection.st Tue Mar 08 07:53:52 2016 +0000 +++ b/Collection.st Thu Mar 10 08:13:13 2016 +0000 @@ -1,3 +1,5 @@ +"{ Encoding: utf8 }" + " COPYRIGHT (c) 1989 by Claus Gittinger All Rights Reserved @@ -65,7 +67,7 @@ However, for performance reasons, many of them are also redefined in concrete subclasses, as some can be implemented much faster if implementation details are known (for example, searching can be done faster if it is known that - elements are sorted or accessable by a key). + elements are sorted or accessible by a key). [author:] Claus Gittinger @@ -4197,7 +4199,7 @@ aStream nextPut:$) " - #(1 2 3 'hello' $a $ü) printOn:Transcript + #(1 2 3 'hello' $a $ü) printOn:Transcript (Array new:100000) printOn:Transcript (Array new:100000) printOn:Stdout (Array new:100000) printString size diff -r f6490a32d738 -r 59f77658de07 ExternalLibraryFunction.st --- a/ExternalLibraryFunction.st Tue Mar 08 07:53:52 2016 +0000 +++ b/ExternalLibraryFunction.st Thu Mar 10 08:13:13 2016 +0000 @@ -136,7 +136,7 @@ Synchronous vs. Asynchronous calls: by default, foreign function calls are synchronous, effectively blocking the whole ST/X system - (that is by purpose,´because most C-code is not prepared for being interrupted, and also, normal + (that is by purpose,because most C-code is not prepared for being interrupted, and also, normal code is not prepared for a garbage collector to move objects around, while another C thread might access the data...). Therefore, the following will block all ST/X activity for 10 seconds @@ -1747,7 +1747,7 @@ ! version_SVN - ^ '§ Id: ExternalLibraryFunction.st 10643 2011-06-08 21:53:07Z vranyj1 §' + ^ ' Id: ExternalLibraryFunction.st 10643 2011-06-08 21:53:07Z vranyj1 ' ! ! diff -r f6490a32d738 -r 59f77658de07 LibraryDefinition.st --- a/LibraryDefinition.st Tue Mar 08 07:53:52 2016 +0000 +++ b/LibraryDefinition.st Thu Mar 10 08:13:13 2016 +0000 @@ -103,9 +103,10 @@ generate_libInit_dot_cc ^ self replaceMappings: self libInit_dot_cc_mappings - in: self libInit_dot_cc + in: self libInit_dot_cc " + stx_libbasic2 generate_libInit_dot_cc bosch_dapasx_datenbasis generate_libInit_dot_cc bosch_dapasx_application generate_libInit_dot_cc " @@ -152,11 +153,16 @@ ^ Dictionary new at: 'LIBRARY_NAME' put: (self libraryName); at: 'PACKAGE' put: (self package); - at: 'DEFINITION_CLASSES' put: (self generate_definitionClassLine_libInit_dot_cc); + at: 'EXTERN_DECLARATIONS' put: (self generateExternalDeclarationLines_libInit_dot_cc); + at: 'DEFINITION_CLASSES' put: (self generateDefinitionClassLine_libInit_dot_cc); at: 'CLASSES' put: (self generateClassLines_libInit_dot_cc); at: 'EXTENSION' put: (self generateExtensionLine_libInit_dot_cc); yourself + " + stx_libbasic libInit_dot_cc_mappings + " + "Created: / 09-08-2006 / 11:20:24 / fm" "Modified: / 16-08-2006 / 18:19:03 / User" "Modified: / 14-09-2006 / 18:56:42 / cg" @@ -346,7 +352,7 @@ extensionLine_libInit_dot_cc - ^ '_%(LIBRARY_NAME)_extensions_Init(pass,__pRT__,snd);' + ^ ' _%(LIBRARY_NAME)_extensions_Init(pass,__pRT__,snd);' "Created: / 08-08-2006 / 15:48:56 / fm" "Modified: / 08-08-2006 / 19:32:33 / fm" @@ -374,19 +380,21 @@ DLL_EXPORT void _%(LIBRARY_NAME)_InitDefinition() INIT_TEXT_SECTION; #endif -void _%(LIBRARY_NAME)_InitDefinition(pass, __pRT__, snd) -OBJ snd; struct __vmData__ *__pRT__; { -__BEGIN_PACKAGE2__("%(LIBRARY_NAME)__DFN", _%(LIBRARY_NAME)_InitDefinition, "%(PACKAGE)"); +%(EXTERN_DECLARATIONS) + +void _%(LIBRARY_NAME)_InitDefinition(int pass, struct __vmData__ *__pRT__, OBJ snd) +{ + __BEGIN_PACKAGE2__("%(LIBRARY_NAME)__DFN", _%(LIBRARY_NAME)_InitDefinition, "%(PACKAGE)"); %(DEFINITION_CLASSES) -__END_PACKAGE__(); + __END_PACKAGE__(); } -void _%(LIBRARY_NAME)_Init(pass, __pRT__, snd) -OBJ snd; struct __vmData__ *__pRT__; { -__BEGIN_PACKAGE2__("%(LIBRARY_NAME)", _%(LIBRARY_NAME)_Init, "%(PACKAGE)"); +void _%(LIBRARY_NAME)_Init(int pass, struct __vmData__ *__pRT__, OBJ snd) +{ + __BEGIN_PACKAGE2__("%(LIBRARY_NAME)", _%(LIBRARY_NAME)_Init, "%(PACKAGE)"); %(CLASSES) %(EXTENSION) -__END_PACKAGE__(); + __END_PACKAGE__(); } ' diff -r f6490a32d738 -r 59f77658de07 ProjectDefinition.st --- a/ProjectDefinition.st Tue Mar 08 07:53:52 2016 +0000 +++ b/ProjectDefinition.st Thu Mar 10 08:13:13 2016 +0000 @@ -1,5 +1,3 @@ -"{ Encoding: utf8 }" - " COPYRIGHT (c) 2006 by eXept Software AG All Rights Reserved @@ -4161,7 +4159,8 @@ streamContents:[:s | |classesLoaded classNamesUnloaded classNamesSorted putLineForClassName| - putLineForClassName := [:className | + putLineForClassName := + [:className | |newClassLine mappings| mappings := self classLine_mappings:className. @@ -4260,6 +4259,19 @@ "Modified: / 20-10-2006 / 16:18:54 / cg" ! +generateDefinitionClassLine_libInit_dot_cc + "for the init-file: generate a single class-init-line for the definition class itself" + + ^ self + generateClassLines:(self classLine_libInit_dot_cc) + forClasses:(Array with:self name) + includeAdditionalClasses:false + + " + stx_libbasic generateDefinitionClassLine_libInit_dot_cc + " +! + generateDependencies:whichArchitecture ^ String streamContents:[:s | @@ -4446,6 +4458,17 @@ "Created: / 14-09-2006 / 12:39:18 / cg" ! +generateExternalDeclarationLines_libInit_dot_cc + "for the init-file: generate a single external definition for a single class for the definition class itself" + + ^ self + generateClassLines:(self classExternalDeclarationLine_libInit_dot_cc) + + " + stx_libbasic generateExternalDeclarationLines_libInit_dot_cc + " +! + generateLocalIncludes_unix ^ String streamContents:[:s | s nextPutAll:(self localIncludes_unix). @@ -4930,9 +4953,14 @@ "Created: / 24-02-2011 / 11:58:05 / Jan Vrany " ! +classExternalDeclarationLine_libInit_dot_cc + +^'extern void _%(CLASS)_Init(int pass, struct __vmData__ *__pRT__, OBJ snd);' +! + classLine_libInit_dot_cc -^'_%(CLASS)_Init(pass,__pRT__,snd);' +^' _%(CLASS)_Init(pass,__pRT__,snd);' "Created: / 08-08-2006 / 12:51:44 / fm" "Modified: / 08-08-2006 / 15:46:05 / fm" diff -r f6490a32d738 -r 59f77658de07 String.st --- a/String.st Tue Mar 08 07:53:52 2016 +0000 +++ b/String.st Thu Mar 10 08:13:13 2016 +0000 @@ -1,3 +1,5 @@ +"{ Encoding: utf8 }" + " COPYRIGHT (c) 1988 by Claus Gittinger All Rights Reserved @@ -120,12 +122,12 @@ Strings are kind of kludgy: to allow for easy handling by c-functions, there is always one 0-byte added at the end, which is not counted - in the strings size, and is not accessable from the smalltalk level. + in the strings size, and is not accessible from the smalltalk level. This guarantees, that a smalltalk string can always be passed to a C- or a system api function without danger (of course, this does not prevent a nonsense contents ...) - You cannot add any instvars to String, since the the run time system & compiler + You cannot add any instvars to String, since the run time system & compiler creates literal strings and knows that strings have no named instvars. If you really need strings with instVars, you have to create a subclass of String (the access functions defined here can handle this). @@ -137,11 +139,11 @@ or use instances of encodedString. [author:] - Claus Gittinger + Claus Gittinger [see also:] - Text StringCollection TwoByteString JISEncodedString - Symbol + Text StringCollection TwoByteString JISEncodedString + Symbol " ! ! @@ -524,9 +526,6 @@ ! ! - - - !String methodsFor:'Compatibility-VW5.4'! asByteString @@ -1246,7 +1245,7 @@ 'hello world' indexOfAny:'AOE' startingAt:1 'hello world' indexOfAny:'o' startingAt:6 'hello world' indexOfAny:'o' startingAt:6 - 'hello world' indexOfAny:'#$' startingAt:6 + 'hello world§' indexOfAny:'#§$' startingAt:6 " ! @@ -3100,10 +3099,10 @@ 'abcde1234' utf8EncodedOn:w ]. String streamContents:[:w| - 'abcde' utf8EncodedOn:w + 'abcdeäöüß' utf8EncodedOn:w ]. String streamContents:[:w| - 'abcde' asUnicode16String utf8EncodedOn:w + 'abcdeäöüß' asUnicode16String utf8EncodedOn:w ]. " ! ! @@ -3566,8 +3565,8 @@ " 'hello world' asUnicode16String errorPrint (Character value:356) asString errorPrint - 'Bnnigheim' errorPrint - 'Bnnigheim' asUnicodeString errorPrint + 'Bönnigheim' errorPrint + 'Bönnigheim' asUnicodeString errorPrint " ! @@ -3979,7 +3978,6 @@ ^ super reverse ! ! - !String methodsFor:'substring searching'! indexOfSubCollection:aSubString startingAt:startIndex ifAbsent:exceptionValue caseSensitive:caseSensitive @@ -4491,7 +4489,6 @@ ! ! - !String class methodsFor:'documentation'! version diff -r f6490a32d738 -r 59f77658de07 UserPreferences.st --- a/UserPreferences.st Tue Mar 08 07:53:52 2016 +0000 +++ b/UserPreferences.st Thu Mar 10 08:13:13 2016 +0000 @@ -1,3 +1,5 @@ +"{ Encoding: utf8 }" + " COPYRIGHT (c) 1998 by eXept Software AG All Rights Reserved @@ -582,21 +584,23 @@ nextPutLine:'Compiler foldConstants: ' , (Compiler foldConstants storeString) , '.'; nextPutLine:'ParserFlags stcCompilation: ' , (ParserFlags stcCompilation storeString) , '.'; nextPutLine:'OperatingSystem getOSType = ' , (OperatingSystem getOSType storeString) , ' ifTrue:['; - nextPutLine:' ParserFlags stcCompilationIncludes: ' , (ParserFlags stcCompilationIncludes storeString) , '.'; nextPutLine:' ParserFlags stcCompilationDefines: ' , (ParserFlags stcCompilationDefines storeString) , '.'; nextPutLine:' ParserFlags stcCompilationOptions: ' , (ParserFlags stcCompilationOptions storeString) , '.'; - nextPutLine:' ' , (ParserFlags stcModulePath ? 'modules') storeString , ' asFilename exists ifTrue:['; - nextPutLine:' ParserFlags stcModulePath: ' , (ParserFlags stcModulePath ? 'modules') storeString , '.'; + nextPutLine:' ParserFlags ccCompilationOptions: ' , (ParserFlags ccCompilationOptions storeString) , '.'; + nextPutLine:' ParserFlags makeCommand: ' , (ParserFlags makeCommand storeString) , '.'; + nextPutLine:' ExternalBytes sizeofPointer = ' , (ExternalBytes sizeofPointer storeString) , ' ifTrue:['; + nextPutLine:' ParserFlags stcCompilationIncludes: ' , (ParserFlags stcCompilationIncludes storeString) , '.'; + nextPutLine:' ',(ParserFlags stcModulePath ? 'modules') storeString , ' asFilename exists ifTrue:['; + nextPutLine:' ParserFlags stcModulePath: ' , (ParserFlags stcModulePath ? 'modules') storeString , '.'; + nextPutLine:' ].'; + nextPutLine:' ParserFlags stcPath: ' , (ParserFlags stcPath storeString) , '.'; + nextPutLine:' ParserFlags ccPath: ' , (ParserFlags ccPath storeString) , '.'; + nextPutLine:' ParserFlags linkArgs: ' , (ParserFlags linkArgs storeString) , '.'; + nextPutLine:' ParserFlags linkSharedArgs: ' , (ParserFlags linkSharedArgs storeString) , '.'; + nextPutLine:' ParserFlags linkCommand: ' , (ParserFlags linkCommand storeString) , '.'; + nextPutLine:' ParserFlags libPath: ' , (ParserFlags libPath storeString) , '.'; + nextPutLine:' ParserFlags searchedLibraries: ' , (ParserFlags searchedLibraries storeString) , '.'; nextPutLine:' ].'; - nextPutLine:' ParserFlags stcPath: ' , (ParserFlags stcPath storeString) , '.'; - nextPutLine:' ParserFlags ccCompilationOptions: ' , (ParserFlags ccCompilationOptions storeString) , '.'; - nextPutLine:' ParserFlags ccPath: ' , (ParserFlags ccPath storeString) , '.'; - nextPutLine:' ParserFlags linkArgs: ' , (ParserFlags linkArgs storeString) , '.'; - nextPutLine:' ParserFlags linkSharedArgs: ' , (ParserFlags linkSharedArgs storeString) , '.'; - nextPutLine:' ParserFlags linkCommand: ' , (ParserFlags linkCommand storeString) , '.'; - nextPutLine:' ParserFlags makeCommand: ' , (ParserFlags makeCommand storeString) , '.'; - nextPutLine:' ParserFlags libPath: ' , (ParserFlags libPath storeString) , '.'; - nextPutLine:' ParserFlags searchedLibraries: ' , (ParserFlags searchedLibraries storeString) , '.'; nextPutLine:'].'; nextPutLine:'ObjectMemory justInTimeCompilation: ' , (ObjectMemory justInTimeCompilation storeString) , '.'; @@ -839,8 +843,6 @@ ! ! - - !UserPreferences methodsFor:'accessing-changes & history'! historyManagerAllowEditOfHistory:aBoolean diff -r f6490a32d738 -r 59f77658de07 bc.mak --- a/bc.mak Tue Mar 08 07:53:52 2016 +0000 +++ b/bc.mak Thu Mar 10 08:13:13 2016 +0000 @@ -64,7 +64,7 @@ test: $(TOP)\goodies\builder\reports\NUL pushd $(TOP)\goodies\builder\reports & $(MAKE_BAT) $(TOP)\goodies\builder\reports\report-runner.bat -D . -r Builder::TestReport -p $(PACKAGE) - + clean:: del *.$(CSUFFIX) diff -r f6490a32d738 -r 59f77658de07 stx_libbasic.st --- a/stx_libbasic.st Tue Mar 08 07:53:52 2016 +0000 +++ b/stx_libbasic.st Thu Mar 10 08:13:13 2016 +0000 @@ -41,6 +41,7 @@ Package documentation: This library contains basic (nonGUI) classes. + These are the fundamental classes which are required for any Smalltalk, whether scripting, non-GUI, repl, IDE or end user application.