*** empty log message ***
authorclaus
Mon, 06 Feb 1995 02:03:09 +0100
changeset 10 43d0db9ff204
parent 9 21b40e49db9d
child 11 6e014573e0c6
*** empty log message ***
Make.proto
display.rc
patches
private.rc
smalltalk.rc
--- a/Make.proto	Fri Dec 30 18:14:48 1994 +0100
+++ b/Make.proto	Mon Feb 06 02:03:09 1995 +0100
@@ -37,6 +37,39 @@
 # and the baseName (without .obj/.so)
 PRIVATELIBS=
 
+#
+# directories from which bitmap files in bitmap subdirectories are to be symlinked
+# to the bitmaps subdirectory
+#
+BITMAPDIRS= \
+	$(LIBBASIC2DIR) $(LIBVIEWDIR) $(LIBWIDGDIR) 				\
+	$(LIBWIDG2DIR) $(LIBWIDG3DIR) $(LIBTOOLDIR) $(CLIENTDIR)/[A-Z]* 	\
+	$(OTHERLIBDIRS)								\
+	$(TOP)/fileIn $(TOP)/fileIn/* $(TOP)/libtomcat $(TOP)/goodies 		\
+	$(TOP)/goodies/* $(TOP)/goodies/*/*
+
+#
+# directories from which binary files are to be symlinked 
+# to the binary subdirectory
+#
+BINARYDIRS= \
+	$(LIBBASICDIR) $(LIBBASIC2DIR) $(LIBVIEWDIR) $(LIBWIDGDIR) 		\
+	$(LIBWIDG2DIR) $(LIBWIDG3DIR) $(LIBTOOLDIR) $(CLIENTDIR)/[A-Z]* 	\
+	$(LIBCOMPDIR) $(OTHERLIBDIRS)						\
+	$(TOP)/fileIn $(TOP)/libtomcat $(TOP)/goodies $(TOP)/goodies/*		\
+	$(TOP)/goodies/*/*
+
+#
+# directories from which source files are to be symlinked 
+# to the source subdirectory
+#
+SOURCEDIRS= \
+        $(LIBBASICDIR) $(LIBBASIC2DIR) $(LIBCOMPDIR) $(LIBVIEWDIR) $(LIBWIDGDIR) \
+        $(LIBWIDG2DIR) $(LIBWIDG3DIR) $(LIBTOOLDIR) $(CLIENTDIR)/[A-Z]*          \
+        $(OTHERLIBDIRS)                                                          \
+        $(TOP)/fileIn $(TOP)/libtomcat $(TOP)/goodies $(TOP)/goodies/*           \
+        $(TOP)/goodies/*/*
+
 # for example, if you have a libprivate directory,
 # where libprivate.obj is built,
 # change above lines to:
@@ -66,12 +99,25 @@
 smalltalk:  $(TARGET)
 
 smalltalk_static:
-	    $(MAKE) linkIt LIBOBJS="$(LIBOBJS) $(PERSOBJ) $(PRIVATEOBJS)"
+	    $(MAKE) linkIt LIBOBJS="$(LIBOBJS) $(PERSOBJ) $(PRIVATEOBJS)" EXTRA_OBJ="$(EXTRA_OBJ)"
 
 
 smalltalk_shared:           
-	    $(MAKE) linkIt LIBOBJS="$(LIBOBJS_SHARED) $(PERS_SO) $(PRIVATE_SO)"
+	    $(MAKE) linkIt LIBOBJS="$(LIBOBJS_SHARED) $(PERS_SO) $(PRIVATE_SO)" EXTRA_OBJ="$(EXTRA_OBJ)"
 
+#
+# a "smaller" smalltalk (does not include development classes)
+#
+smalltalk_exec:
+	    -rm classList.stc
+	    $(MAKE) classList.stc \
+			      EXTRA_CLASSES="$(EXTRA_CLASSES) DebugView" \
+			      EXTRA_OBJ="$(EXTRA_OBJ) $(LIBTOOLDIR)/DebugView.so" \
+			      LIBLIST="$(FUNDAMENTAL_LIST)"
+	    $(MAKE) smalltalk \
+			      EXTRA_OBJ="$(EXTRA_OBJ) $(LIBTOOLDIR)/DebugView.so" \
+			      LIBOBJS="$(FUNDAMENTAL_LIB)" \
+			      LIBOBJS_SHARED="$(FUNDAMENTAL_LIB_SHARED)"
 
 linkIt:     main.$(O) $(LIBOBJS) $(LIBRUN) $(EXTRA_LIBS) $(EXTRA_OBJ)
 	    @-echo "Making classList ..."
@@ -101,6 +147,7 @@
 classList.stc:  
 	    @$(MAKE) GENERICLIST CLASSLIST=classList.stc        \
 		EXTRA_CLASSES="$(EXTRA_CLASSES)"                \
+		LIBLIST="$(LIBLIST)"				\
 		CLASSLIBRARIES="                                \
 		    $(LIBLIST)                                  \
 		    $(OTHERLIBRARIES)                           \
@@ -125,34 +172,6 @@
 	    $(MAKE) sourceLink
 
 #
-# create symbolic links to all source files in the source subdirectory
-#
-sourceLink:
-	    -mkdir source
-	    @-for i in $(LIBBASICDIR) $(LIBBASIC2DIR) $(LIBCOMPDIR) $(LIBVIEWDIR) $(LIBWIDGDIR) \
-		       $(LIBWIDG2DIR) $(LIBWIDG3DIR) $(LIBTOOLDIR) $(CLIENTDIR)/[A-Z]* 		\
-		       $(OTHERLIBDIRS)								\
-		       $(TOP)/fileIn $(TOP)/libtomcat $(TOP)/goodies $(TOP)/goodies/*		\
-		       $(TOP)/goodies/*/*							\
-		; do										\
-	      if [ -d $$i ]; then								\
-	        if [ "`echo $$i/*.st`" != '$$i/*.st' ]; then					\
-		  echo linking sourcefiles files from $$i; 					\
-		  (cd source; $(LNS) ../$$i/*.st .);						\
-		  (cd source; rm -f \*.st);							\
-		fi										\
-	      else										\
-	        if [ -d $(TOP)/$$i ]; then							\
-	          if [ "`echo $(TOP)/$$i/*.st`" != '$(TOP)/$$i/*.st' ]; then			\
-		    echo linking sourcefiles files from $(TOP)/$$i; 				\
-		    (cd source; $(LNS) ../$(TOP)/$$i/*.st .);					\
-		    (cd source; rm -f \*.st);							\
-		  fi										\
-		fi										\
-	      fi										\
-	    done
-
-#
 # make a new include subdirectory and link to abbreviation file
 newInclude:
 	    -rm -rf include
@@ -185,23 +204,6 @@
 binary:
 	    $(MAKE) binaryLink
 
-binaryLink:
-	    -mkdir binary
-	    @-for i in $(LIBBASICDIR) $(LIBBASIC2DIR) $(LIBVIEWDIR) $(LIBWIDGDIR) 		\
-		       $(LIBWIDG2DIR) $(LIBWIDG3DIR) $(LIBTOOLDIR) $(CLIENTDIR)/[A-Z]* 		\
-		       $(LIBCOMPDIR) $(OTHERLIBDIRS)						\
-		       $(TOP)/fileIn $(TOP)/libtomcat $(TOP)/goodies $(TOP)/goodies/*		\
-		       $(TOP)/goodies/*/*							\
-		; do										\
-	      if [ -d $$i ]; then								\
-	        if [ "`echo $$i/*$(BIN_O)`" != '$$i/*$(BIN_O)' ]; then				\
-		  echo linking binaries from $$i; 						\
-		  (cd binary; $(LNS) ../$$i/*$(BIN_O) .);					\
-		  (cd binary; rm -f \*$(BIN_O));						\
-		fi										\
-	      fi										\
-	    done
-
 #
 # make a new bitmaps subdirectory
 # (simply collect the contents of all bitmap directories)
@@ -212,24 +214,8 @@
 
 Bitmaps:    bitmaps
 
-bitmaps:
-	    -mkdir bitmaps
-	    @-for i in $(LIBBASIC2DIR) $(LIBVIEWDIR) $(LIBWIDGDIR) 				\
-		       $(LIBWIDG2DIR) $(LIBWIDG3DIR) $(LIBTOOLDIR) $(CLIENTDIR)/[A-Z]* 		\
-		       $(OTHERLIBDIRS)								\
-		       $(TOP)/fileIn $(TOP)/fileIn/* $(TOP)/libtomcat $(TOP)/goodies 		\
-		       $(TOP)/goodies/*	$(TOP)/goodies/*/*					\
-		; do										\
-	      if [ -d $$i ]; then								\
-	        if [ -d $$i/bitmaps ]; then							\
-	          if [ "`echo $$i/bitmaps/*`" != '$$i/bitmaps/*' ]; then			\
-		    echo linking bitmaps from $$i; 						\
-		    (cd bitmaps; $(LNS) ../$$i/bitmaps/* .);					\
-		    (cd bitmaps; rm -f \*);							\
-		  fi										\
-		fi										\
-	      fi										\
-	    done
+bitmaps:    
+	    $(MAKE) bitmapLink
 
 #
 # clean out intermediate chunk
--- a/display.rc	Fri Dec 30 18:14:48 1994 +0100
+++ b/display.rc	Mon Feb 06 02:03:09 1995 +0100
@@ -18,6 +18,8 @@
 
 map := Display keyboardMap.
 
+map bindValue:#UserInterrupt  to:#Ctrlc.
+
 map bindValue:#DoIt       to:#Cmdd.
 map bindValue:#InspectIt  to:#Cmdi.
 map bindValue:#PrintIt    to:#Cmdp.
@@ -41,12 +43,29 @@
 map bindValue:#EndOfLine   to:#Ctrle.
 map bindValue:#NextWord    to:#Ctrlw.
 
+map bindValue:#ScrollUp to:#CtrlCursorUp.    
+map bindValue:#ScrollDown to:#CtrlCursorDown.    
+
 map bindValue:#SearchMatchingParent to:#Ctrlm.
 map bindValue:#SelectMatchingParents to:#Cmdm.
 
 map bindValue:#SelectToEnd to:#CtrlE.           "that is ctrl-shift-e"
 map bindValue:#SelectFromBeginning to:#CtrlA.   "that is ctrl-shift-a"
 
+"Notice:
+  Cmd-CursorLeft/Right and Alt-CursorLeft/Right
+  are also used by so,e winmdowmanagers (fvwm)
+  if this is the case on your system, either
+  change the following to use different keys,
+  or chamge the windowmanagers configuration file
+  (usr/lib/X11/xxxwm/*rc)
+"
+map bindValue:#FocusNext     to:#CmdCursorRight.   "experimental"
+map bindValue:#FocusPrevious to:#CmdCursorLeft.    "experimental"
+map bindValue:#FocusNext     to:#CtrlCursorRight.   "experimental"
+map bindValue:#FocusPrevious to:#CtrlCursorLeft.    "experimental"
+
+
 "
  * on some german keyboards, the x-server does NOT correctly
  * xlate characters ....
@@ -83,7 +102,7 @@
 map bindValue:(Character value:16rB2) to:#twosuperior.
 map bindValue:(Character value:16rB3) to:#threesuperior.
 map bindValue:(Character value:16rB5) to:#mu.
-!
+
 
 "*
  * mouse-button translation
@@ -152,6 +171,8 @@
 formats at:'.xpm'  put:XPMReader.
 formats at:'.pcx'  put:PCXReader.
 formats at:'.PCX'  put:PCXReader.
+formats at:'.tga'  put:TargaReader.
+formats at:'.TGA'  put:TargaReader.
 !
 
 "*
--- a/patches	Fri Dec 30 18:14:48 1994 +0100
+++ b/patches	Mon Feb 06 02:03:09 1995 +0100
@@ -30,7 +30,21 @@
 "
 
 |optionalClasses optionalGames optionalDemos optionalApps optionalBench 
- optionalTools optionalViews optionalImage compat|
+ optionalTools optionalViews optionalImage compat requiredClasses|
+
+"
+ the following are required (either compiled or interpreted) ...
+"
+requiredClasses := #( 
+			VariableArray
+			Text
+		    ).
+
+requiredClasses do:[:s |
+    (Smalltalk at:s) isNil ifTrue:[
+	Smalltalk fileInClass:s initialize:true lazy:false silent:true
+    ]
+].
 
 Transcript showCr:'installing autoloaded classes ...'.
 
@@ -46,7 +60,7 @@
 		   GLSphereDemoView1 GLSphereDemoView2
 		   GLObjectDemoView GLCubeDemoView GLTetraDemoView
 		   GLWireCubeDemoView GLWireSphereDemoView
-		   GLCubeDemoView2 Logo3DView1 GLPlanetDemoView
+		   GLCubeDemoView2 GLBrickCubeDemoView Logo3DView1 GLPlanetDemoView
 		  ).
 
 optionalApps := #(
@@ -55,7 +69,8 @@
 		  DrawTool DrawObject DrawLine DrawText
 		  DrawRectangle DrawRoundRectangle DrawEllipse
 		  DrawPolygon DrawCurve DrawGroup DrawView DrawImage
-		  PatternMenu
+		  DrawVLine DrawHLine
+		  PatternMenu LineMenu
 
 		  LogicTool LogicView LogicObject Connection Input Output
 		  Low High Inverter AndGate OrGate AndGate2 NandGate2 OrGate2 NorGate2 ExorGate2 
@@ -157,14 +172,10 @@
 optionalImage := #(
 		  GIFReader TIFFReader FaceReader WindowsIconReader SunRasterReader
 		  XBMReader JPEGReader PBMReader ST80FormReader XPMReader
-		  PCXReader
-	     ).
+		  PCXReader TargaReader
+		 ).
 
 optionalClasses := #(
-		  GIFReader TIFFReader FaceReader WindowsIconReader SunRasterReader
-		  XBMReader JPEGReader PBMReader ST80FormReader XPMReader
-		  PCXReader
-
 		  EpsonFX1PrinterStream HPLjetIIPrinterStream
 		  PostscriptPrinterStream
 		  Decompiler Polygon 
@@ -176,7 +187,7 @@
 
 		  RDoItServer
 
-		  HandlerCollection
+		  HandlerCollection VariableArray Text
 	     ).
 
 optionalViews do:[:s |
@@ -268,6 +279,106 @@
 ].
 
 "
+ check if this is a minitalk ... and install
+ all widget & tool classes as autoloaded if so
+"
+((Smalltalk at:#TextView) isNil 
+or:[(Smalltalk at:#DebugView) isNil]) ifTrue:[
+    "
+     but only, if this is not a non GUI smalltalk
+    "
+    Workstation notNil ifTrue:[
+	optionalClasses := #(
+				ArrowButton
+				Button
+				CheckToggle
+				ClickMenuView
+				CodeView
+				DialogBox
+				DialogView
+				EnterFieldGroup
+				EditTextView
+				EditField
+				EnterBox
+				EnterBox2
+				FileSaveBox
+				FileSelectionBox
+				FileSelectionList
+				FontPanel
+				FramedBox
+				HorizontalMiniScroller
+				HorizontalPanelView
+				HorizontalScrollBar
+				HorizontalScroller
+				HVScrollableView
+				InfoBox
+				ListSelectionBox
+				Label
+				ListView
+				MenuView
+				MiniScroller
+				ObjectView
+				OptionBox
+				PanelView
+				PopUpList
+				PopUpMenu
+				PullDownMenu
+				RadioButtonGroup
+				RadioButton
+				ScrollableView
+				ScrollBar
+				Scroller
+				SelectionInListView
+				TextCollector
+				TextView
+				Toggle
+				VerticalPanelView
+				VariableHorizontalPanel
+				VariableVerticalPanel
+				WarningBox
+				Workspace
+				YesNoBox
+
+				FilenameEditField
+				FilenameEnterBox
+				HorizontalSlider
+				ImageView
+				ImageEditView
+				LabelledEnterField
+				MultiColListEntry
+				Ruler
+				Slider
+				TabulatorSpecification
+				TextBox
+
+				ChangesBrowser
+				ContextInspectorView
+				DebugView
+				DictionaryInspectorView
+				DirectoryBrowser
+				FileBrowser
+				InspectorView
+				Launcher
+				OrderedCollectionInspectorView
+				ProjectView
+				SystemBrowser
+
+		 ).
+
+	optionalClasses do:[:s |
+	    "install if not already compiled-in"
+	    (Smalltalk at:s) isNil ifTrue:[
+		Autoload subclass:s
+		     instanceVariableNames:''
+		     classVariableNames:''
+		     poolDictionaries:''
+		     category:'autoloaded-Classes'.
+	    ]
+	].
+    ]
+].
+
+"
  a kludge: we have added new ImageReaders above - tell Image
 "
 "avoid introducing a new global ..."
@@ -319,7 +430,7 @@
 
 !
 Transcript showCr:'installing patches ...' !
-!OperatingSystem class methodsFor:'queries'!
+!OperatingSystem class methodsFor:'os queries'!
 supportsIOInterrupts
     "return true, if the OS supports IO availability interrupts 
      (i.e. SIGPOLL/SIGIO)."
--- a/private.rc	Fri Dec 30 18:14:48 1994 +0100
+++ b/private.rc	Mon Feb 06 02:03:09 1995 +0100
@@ -3,33 +3,62 @@
  *
  * sample private.rc - file
  *
- * a copy of this file can reside in your home directory -
- * put all user-private preferences in here.
+ * a copy of this file can (should) reside in your home or
+ * current directory - put all private preferences in here.
  *"
 
 Smalltalk systemPath addFirst:'../..'.
 
-"claus:
- I like those cursors :-)
- if you think this is too 'childish', remove the line below ...
+"
+ color allocation strategy:
+
+ the default is to allocate from the colormap as required.
+ As long as the number of distinct colors used is less than the number
+ of available colors (which is usually the case) this leads to better looking
+ images.
+ However, if many images are to be displayed simulatiously, images displayed
+ first may steal too many colors required in images displayed later.
+ In this case, it is better to preallocate some colors, and dither all images
+ using theese. Of course, while making the worst case better, this makes
+ the best case worse. You can decide ...
+"
+"/   Color getColors6x6x4.
+
+"
+ The following loads some nice cursors; for example thumbsUp and thumbsDown
+
+ claus:
+     I like those cursors :-)
+     if you think this is too 'childish', remove the line below ...
 "
 
 Smalltalk silentFileIn:'../goodies/Cursor-ST80Cursors.chg'.
-!
-"claus:
- I dont want those warnings about stx features being non-portable ...
+
+"
+ claus:
+     I dont want those warnings about stx features being non-portable ...
+     However, you should (at least when new to the system) see them.
+     Once you get bored about them, make the below unconditional.
 "
 OperatingSystem getLoginName = 'claus' ifTrue:[
     Compiler warnSTXSpecials:false
 ].
+
+"
+ this is a temporary kludge: specify the flags to be used
+ when compiling via stc. Primitive compilation (from within the browser)
+ is still experimental. So you better not care (yet)
+"
+OperatingSystem getOSType = 'irix' ifTrue:[
+    Compiler stcCompilationFlags:'-I../../include +optinline -DGLX'.
+] ifFalse:[
+    Compiler stcCompilationFlags:'-I../../include -I../../librun/VGL/vogl/src +optinline -DVGL'.
+]
 !
 
-EditTextView classResources at:'cursorType' put:#caret.
-!
-"/ MessageTracer trace:Display selectors:(XWorkstation selectorArray)
-
-
-"the following is experimental (and a secret)
+"
+ another experimental (and a secret)
+ Playing around with GC parameters (aging params)
 "
 |a|
 ObjectMemory newSpaceSize > (500*1024) ifTrue:[
--- a/smalltalk.rc	Fri Dec 30 18:14:48 1994 +0100
+++ b/smalltalk.rc	Mon Feb 06 02:03:09 1995 +0100
@@ -83,8 +83,7 @@
     ].
     Smalltalk readEvalPrint.
     Smalltalk exit
-]
-!
+].
 
 "*
  * this makes X-errors be handled immediately (so you see,
@@ -92,8 +91,7 @@
  * if commented out, errors will be reported asynchronously.
  * (I enable this, when things go bad during startup)
  *"
-"Display unBuffered"
-!
+"/ Display unBuffered.
 
 "*
  * this starts incremental GC earlier
@@ -101,19 +99,16 @@
  * the number given is the number of bytes which have to be allocated
  * since the last GC, to start the incremental GC running.
  *"
-"
-ObjectMemory incrementalGCLimit:100000 
-"
-!
+"/ ObjectMemory incrementalGCLimit:100000. 
 
 "*
  * lazy loading
- * (faster fileIn) - this is EXPERIMENTAL
+ * (faster fileIn) - this is EXPERIMENTAL.
+ * If there are any problems with lazy methods, disable the following
+ * and let me (cg@ssw.de) know what happened.
  *"
-" "
-Autoload compileLazy:true
-" "
-!
+
+Autoload compileLazy:true.
 
 "*
  * define the language (you can also set the LANG-shell variable)
@@ -123,35 +118,32 @@
  * (currently, strings are not available for other than english
  *  and german; french will follow next - see resource files)
  *"
-"Language := #german"
-"Language := #english" 
-!
+"/ Smalltalk language:#german.
+"/ Smalltalk language:#english. 
 
 "*
  * this handles all variant display stuff
  * (i.e. things which might change, when DISPLAY is set different)
  *"
-Smalltalk fileIn:'display.rc'
-!
+Smalltalk fileIn:'display.rc'.
 
 "*
- * this defines stuff relating to the machine we are running on
+ * this defines stuff relating to the host we are running on
  *"
-Smalltalk fileIn:'host.rc'
-!
+Smalltalk fileIn:'host.rc'.
 
 "*
  * you can add your very private things here - if its put into HOME/.smalltalk,
  * each user can add his/her private things even when everything else is
  * shared
  *"
-Smalltalk fileIn:'private.rc'
-!
+Smalltalk fileIn:'private.rc'.
 
 "*
  * start some views ...
  * you can add all stuff you'd like to come up by default
- * the first time
+ * the first time.
+ * NOTICE: you should do that in your 'private.rc'-file
  *"
 
 "*
@@ -160,8 +152,7 @@
 TextCollector notNil ifTrue:[
     'starting Transcript ...' errorPrintNL.
     TextCollector newTranscript.
-]
-!
+].
 
 "*
  * start the Launcher (if linked-in)
@@ -169,57 +160,43 @@
 Launcher notNil ifTrue:[
     'starting main-menu ...' errorPrintNL.
     Launcher open
-]
-!
+].
 
 "*
  * start a SystemBrowser
  * - I dont want one (using Launcher)
  *"
-"
- SystemBrowser open
-"
-!
+"/ SystemBrowser open.
 
 "*
  * start a FileBrowser
  * - I dont want one (using Launcher)
  *"
-"
- FileBrowser open
-"
-!
+"/ FileBrowser open.
 
 "*
  * start a Workspace 
  * - I dont want one (using Launcher)
  *"
-"
-Workspace open
-"
-!
+"/ Workspace open.
 
 "*
  * if things go very badly, turn on message tracing ...
  * but be prepared for lots of output
  *"
-" 
-Smalltalk debugOn.
-"
+"/ Smalltalk debugOn.
+
 "*
  * if error occurs, and debugger has problems coming up
  *"
-"
-" "
-Debugger := MiniDebugger.
-" "
-!
+"/ Debugger := MiniDebugger.
 
 "*
+ * remember the type of display we started on, to check for
+ * a need to change things when we are restarted on another display.
  * see smalltalk_r.rc for what this is for ...
  *"
 Smalltalk at:#'_ImageDisplayDepth' put:Display depth.
 Smalltalk at:#'_ImageDisplayHasColors' put:Display hasColors.
 Smalltalk at:#'_ImageDisplayHasGreyscales' put:Display hasGreyscales.
 !
-"/ Smalltalk debugOn