--- a/core/Make.proto Sun Nov 17 00:21:32 2013 -0500
+++ b/core/Make.proto Sun Nov 17 00:21:39 2013 -0500
@@ -99,13 +99,19 @@
# add more postMake actions here
postMake:: cleanjunk
-prereq: $(REQUIRED_SUPPORT_DIRS)
+# build all mandatory prerequisite packages (containing superclasses) for this package
+prereq:
cd ../../../libbasic && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
cd ../../../libbasic2 && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
cd ../support && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
+# build all packages containing referenced classes for this package
+# they are nor needed to compile the package
+references:
+
+
cleanjunk::
-rm -f *.s *.s2
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/core/Makefile.init Sun Nov 17 00:21:39 2013 -0500
@@ -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
--- a/core/bc.mak Sun Nov 17 00:21:32 2013 -0500
+++ b/core/bc.mak Sun Nov 17 00:21:39 2013 -0500
@@ -48,7 +48,7 @@
!INCLUDE $(TOP)\rules\stdRules_bc
-# build all prerequisite packages for this package
+# build all mandatory prerequisite packages (containing superclasses) for this package
prereq:
pushd ..\..\..\libbasic & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
pushd ..\..\..\libbasic2 & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
@@ -59,6 +59,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)
--- a/core/core.rc Sun Nov 17 00:21:32 2013 -0500
+++ b/core/core.rc Sun Nov 17 00:21:39 2013 -0500
@@ -4,7 +4,7 @@
//
VS_VERSION_INFO VERSIONINFO
FILEVERSION 6,2,32767,32767
- PRODUCTVERSION 6,2,3,0
+ PRODUCTVERSION 6,2,3,957
#if (__BORLANDC__)
FILEFLAGSMASK VS_FF_DEBUG | VS_FF_PRERELEASE
FILEFLAGS VS_FF_PRERELEASE | VS_FF_SPECIALBUILD
@@ -22,10 +22,10 @@
VALUE "FileDescription", "Smalltalk/X Class library (LIB)\0"
VALUE "FileVersion", "6.2.32767.32767\0"
VALUE "InternalName", "stx:goodies/xtreams/core\0"
- VALUE "LegalCopyright", "Copyright Claus Gittinger 1988-2013\nCopyright eXept Software AG 1998-2013\0"
+ VALUE "LegalCopyright", "Copyright 2010-2013 Cincom Systems, Martin Kobetic and Michael Lucas-Smith\0"
VALUE "ProductName", "Smalltalk/X\0"
- VALUE "ProductVersion", "6.2.3.0\0"
- VALUE "ProductDate", "Fri, 15 Mar 2013 22:24:49 GMT\0"
+ VALUE "ProductVersion", "6.2.3.957\0"
+ VALUE "ProductDate", "Sun, 17 Nov 2013 05:01:43 GMT\0"
END
END
--- a/core/mingwmake.bat Sun Nov 17 00:21:32 2013 -0500
+++ b/core/mingwmake.bat Sun Nov 17 00:21:39 2013 -0500
@@ -11,6 +11,6 @@
@pushd ..\..\..\rules
@call find_mingw.bat
@popd
-make.exe -N -f bc.mak %USEMINGW_ARG% %*
+make.exe -N -f bc.mak %DEFINES% %USEMINGW_ARG% %*
--- a/core/stx_goodies_xtreams_core.st Sun Nov 17 00:21:32 2013 -0500
+++ b/core/stx_goodies_xtreams_core.st Sun Nov 17 00:21:39 2013 -0500
@@ -81,15 +81,15 @@
Another difference that you''ll probably notice early on is that reading past the end of stream is not a notification which returns nil by default. With Xtreams it is always an exception, Incomplete, the same way you get IncompleteNextCountError with #next:/#next:into:startingAt: (but not with #next). Incomplete always carries count of elements that were read or written successfully, and optionally also the destination or source collection and start parameters to provide easy access to whatever was successfully processed. Similarly, the positioning APIs report the actual change of position, with collection and start being nil. As usual the stream that raises the exception is the originator.
{{{
- [ ''Hello World!!!!!!!!!!!!!!!!'' reading ++ 6; read: 50 ] on: Incomplete do: [ :ex | ex contents ]
+ [ ''Hello World!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'' reading ++ 6; read: 50 ] on: Incomplete do: [ :ex | ex contents ]
}}}
Another significant difference is that xtreams do not provide the #atEnd test. Depending on the type of stream, implementing such test may require an actual read attempt to be able to answer. Once you perform a read, you''ll need to cache the element if the stream is not positionable. This gets even more complicated with complex stream stacks. Instead xtreams provide several alternatives each suitable for different circumstances. Message #rest reads everything that is left in the stream and automatically handles the Incomplete exception at the end.
{{{
- ''Hello World!!!!!!!!!!!!!!!!'' reading read: 6; rest
+ ''Hello World!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'' reading read: 6; rest
}}}
If you don''t want to collect all the elements in the collection, xtreams also support collection style iteration protocols
{{{
- ''Hello World!!!!!!!!!!!!!!!!'' reading
+ ''Hello World!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'' reading
read: 6;
inject: 0 into: [ :count :each | count + 1 ]
}}}
@@ -180,14 +180,14 @@
{{{
String new writing
write: ''Hello '';
- explore: [ :stream | stream write: ''Fooled!!!!!!!!!!!!!!!!'' ];
- write: ''World!!!!!!!!!!!!!!!!'';
+ explore: [ :stream | stream write: ''Fooled!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'' ];
+ write: ''World!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'';
conclusion
}}}
{{{
String new writing
write: ''Hello '';
- explore: [ :stream | stream write: ''World!!!!!!!!!!!!!!!!'' ];
+ explore: [ :stream | stream write: ''World!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'' ];
-= 0;
conclusion
}}}
@@ -203,7 +203,7 @@
At times it is useful to be able to insert elements into the existing content of a positionable write stream. All the #write:... methods have an #insert:... equivalent for that purpose. Insert at the end of the stream has the same effect as write, similarly insert: on non-positionable stream is the same as write:.
{{{
String new writing
- write: ''Hello World!!!!!!!!!!!!!!!!'';
+ write: ''Hello World!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'';
+= 5;
insert: '', Hello'';
-= 0;
@@ -290,6 +290,13 @@
)
! !
+!stx_goodies_xtreams_core class methodsFor:'description - project information'!
+
+legalCopyright
+
+ ^'Copyright 2010-2013 Cincom Systems, Martin Kobetic and Michael Lucas-Smith'
+! !
+
!stx_goodies_xtreams_core class methodsFor:'documentation'!
version_HG