Release:			Stroika 1.0a1
Date:				December 7, 1992
Platforms Tested:	Unix (A/UX), MacOS(AppleCFront), DOS (Borland 3.1)

	This is the first release in six months. Almost nothing has changed outside of
	the Foundation class library, except things meant to retain compatability with
	Foundation changes. The point of this is that Release 1.0 of Stroika will consist
	of just the container class library, and whatever support is deemed necessary
	to make that work. This probably means 85% of Foundation.

	This first alpha release demonstrates most of the container categories being
	supported, and 5 or 6 different backends implemented. Once portability problems
	have been totally solved, many more backends will be comming.

	The current source runs, and is tested (see TestSuites) using GenClass with
	gcc 2.3.2 under UNIX (A/UX). It also runs under DOS and WINDOWS using Borland
	C++ using templates.

	Instalation:
		+	Mac:
				Unstuffit the sources. Under MPW, build an objects hierarchy
				with:
					makeConfig {Stroika_srcs} {YourObjectHierarchy}
				where you can specify what you like for the two parameters.
			Unix:
				Extract the tar'ed compressed file, and untar.
			DOS:
				"pkunzip -d Stk10a1.zip" will unstuff the whole source heierarchy.
				Unfortunately the objects directories don't get into the archive.
				So any directory you want to type make in, you'll have to say:
				"mkdir Objects" first.
		+	Edit the config file (If things are preconfigured, this should be
			called Config. Otherwise, you must copy one of the many pre-existing
			config files to the top level Config. Or symbolic link if available.
			(For DOS, probably best to leave this alone - preconfigured for you).
		+	cd Library/Foundation and make
			(DOS -ALREADY DONE - but if you want to again... cd Library\Fnd; make -f Makefile.bc)
		+	Now you have a library. To build the testsuites (very long)
			(DOS cd TestSuit\Fnd; make -f Makefile.bc)
			To run the testsuites
			(DOS cd TestSuit\Fnd; make -f Makefile.bc test)
		+	More likely, just try the Demo\Fnd\HelloWorld. cd to the
			directory, and type make -f Makefile.bc


	Known Problems:
		+	Documentation needs lots of work. For the next month, that will be the
	main priority. Expecially installation and tutorial docs.

		+	Borland 3.1's support for templates is quite flakey, and required lots
	of unsavory workarounds. One of these was to disable a large number of inlines,
	which results in larger, slower code. Also, these workarounds are not guaranteed
	for all usages - after all, they are workarounds for compiler bugs. Compiling with
	qDebug on, causes many of the testsuites to fail. Not sure why yet. tString fails with
	stack overflow in either case. This is probably not a bug with the String classes, but
	rather an artifact of the lack of ability to set the StackSize from the borland tools.

		+	The latest rev breaks under MPW (ETO#8) because of a compiler bug with
	the ForEach() construct, and conversion operators.


	Changes:

	Foundation:
		Totally re-wrote container class library, backends, and front-end design
		many times over. Now using subtyping letter-envelope scheme for Containers,
		with reference counting. Much more carefully thought-out design for patching
		iterators. Iterators are copyable. Much higher performance than ever before.
		Runs with Templates, or our own pseudo-template processor, GenClass/GenMake.
		We no longer need massive macros, which makes things much more portable,
		maintainable, and readable.

	Things to expect in the next release (Roughly January 1):
		+	More stable workarounds for Borland and MPW CFront bugs.
		+	Many more backends - (roughly 10 more).
		+	String class rewritten using Sequence<Character>
		+	MUCH Better documentation.
			typing as fast as I can - and trying o learn Frame).
		+	Passing all testsuites on DOS/Windows (BCC 3.1) / MPW (lastest rev) /
			and GCC (UNIX) latest rev. With luck, maybe also MSC7.0 and
			WindowsNT support.





Release:			Stroika 1.0d15
Date:				June 10, 1992
Platforms Tested:	HP-PaRisc/HP-UX 8.05, MacOS

	Foundation:
		Added a few more container class types - implemented Bag/Queue.

		New files for BlockAllocated, and ReferenceCounted.  ReferenceCounted re-implemented
		using smart pointer scheme. This effects Integer,String, and several Graphix layer classes
		that used referencecounting (including Font/Region/Tile).

		Moved Changeable/Saveable/Resource here from Framework. Broke out graphix specific resources
		into a file GraphixResources in Graphix layer.

		A great deal of work done on Resource classes.

		Dictionart_HashTable now has default hashtable size of 101.

		Fixed very subtle bug with String::operator+= (const String&). b+=b would enter += code
		with refcount = 1, since second b passed by const &. Must be careful of this case. Checked
		for other like occurences of this bug, in String, and Region, and found none.

		Get rid of SequenceForEach macro - use ForEachS instead.

		Eliminated Sort as a method of Sequence - and all its subclasses. Did this since wrong approach,
		(we want something more like StrouStrup second edition) it was unused, and increased codesize
		though unused.


	Graphix:
		Changes for new ReferenceCounting scheme.

		New file GraphixResources.

		Finished PixelMap changes so we read/write pixelmaps in a totally portable fasion (I hope).
		At least for 1-8 bit cases. Got rid of XPixelMapFromData - was old hack since pixmaps weren't
		portably written. Changed inserter/extracter format - maintaining backward compatability.
		Will delete backward compatability in a few releases.

		Fixed LRU algorithm in Pallet to work better, and use Linked List. Thinking about putting
		LRU stuff into Foundation, but not sure how to present it.


	Framework:
		Moved Changeable/Saveable/Resource to Foundation layer.

		Lots of tweaks to bordered stuff, exp support for motif style portable widgets.
		
		Added Motif style portable checkbox and radio button. Fixed motif style portable pushbutton.

		Made StringMenuItem::GetDisplayName () const.

		In view, eliminated Brush/Pen as attributes of View, and therefore their inheritance. Now
		Paint () with no brush specified uses kDefaultBrush (This may go away???).

		In View, eliminated Drawing Area cache, and cleaned up GetVisibleArea cache code. Still
		not quite right, however.

		Use Erase () in splitter code instead of Paint (kWhiteTile).


	User:
		Fixed picklists to scroll better (in right chunks - ie fixed step and page sizes).
		In PickList, killed AdjustStepAndPageSizes ().

		Made NumberText::GetValue () const.

		In codeGenUtils, changed format written for PixelMapFromData - see chagnes in PixelMap for
		a description.

		Reset dictionary size to speed up named colors database. More needs to be done here.

		PixelMapEditor: modified algorithm to change clut when changing color depths on current image being
		edited.


	Other:
		Implemented prototype flunging under MPW. Technique to reduce codesize of applications. Should
		eliminate need for Sequence_ArrayOfPointers/Seqeunce_DoubleLLOfPointers (Must first get flunging
		to work on PC before these can be trashed).

		Updated MPW scripts to work with / in names, since needed for (or at least much easier to)
		work with A/UX. Should have been fixed a while ago anyhow.


	Applications:
		TicTacToe:
			Use new PixelMapEditor for defining pixelmaps for x's and o's.

		Emily:
			Tweeked SelectAllItems.




Release:			Stroika 1.0d12
Date:				May 1, 1992
Platforms Tested:	

	(notes done after the fact - only partial - based on notes we gave to Marcam)

	Foundation:

	Graphix:

	Framework:
		BorderedView: utility class to make implementation of Motif-style portable 
		widgets as easy as possible. Own a BorderedView as a subview, set its size 
		equal to your size, and it will draw appropriate Motif shadows.

		OptionMenu: OptionMenu class now uses native widget. Use it in 
		preference to PopUpMenuTitles, except where you really want a PopUpMenu.

		PopUpMenu: Here is some sample code to produce a PopupMenu:
		Boolean	foo::TrackPress (const MousePressInfo& mouseInfo)
		{	
			PopUpMenuTitle	popUp (kEmptyString, Nil);

			AssertNotNil (popUp.GetMenu ());
			popUp.GetMenu ()->AddStringMenuItem (CommandHandler::eCut,);
			popUp.GetMenu ()->AddStringMenuItem (CommandHandler::eCopy);
			popUp.GetMenu ()->AddStringMenuItem (CommandHandler::ePaste);
			popUp.GetMenu ()->AddSeperatorMenuItem ();
			popUp.GetMenu ()->AddStringMenuItem (CommandHandler::eAboutApplication);

			popUp.SetOrigin (mouseInfo.fPressAt, eNoUpdate);
			AddSubView (&popUp);
			(void)popUp.TrackPress (MousePressInfo (mouseInfo, 
				popUp.EnclosureToLocal (mouseInfo.fPressAt)));
			RemoveSubView (&popUp);

			MenuItem* mItem = popUp.GetCurrentItem ();
			if (mItem != Nil) {
				Application::Get ().DoCommand (*mItem);
			}

			return (True);	// we handled the click...
		}

	User:
		Splitter: greatly enhanced. Use Splitter instead of "SimpleSplitter".

		PixelMapEditorView: is greatly enhanced. Can now set the pixelmap depth, 
		and choose different colors to paint the icon. Many speed-ups. Now a 
		sample application, "PixelMapEditor" that lets you create and edit 
		pixelmaps, and write out either data, or C++ code for use in Stroika.

	Other:

	Applications:
		Emily:
			Scale:	now supported in Emily
			Separator: 	now supported in Emily.



// For gnuemacs:
// Local Variables: ***
// mode:Text ***
// tab-width:4 ***
// End: ***
