187 |
187 |
188 "/ ' autoloaded: ' print. clsName print. ' in ' print. cat printNL. |
188 "/ ' autoloaded: ' print. clsName print. ' in ' print. cat printNL. |
189 |
189 |
190 "/ install if not already compiled-in |
190 "/ install if not already compiled-in |
191 |
191 |
192 (Smalltalk at:clsName) isNil ifTrue:[ |
192 Autoload subclass:clsName |
193 Autoload subclass:clsName |
193 instanceVariableNames:'' |
194 instanceVariableNames:'' |
194 classVariableNames:'' |
195 classVariableNames:'' |
195 poolDictionaries:'' |
196 poolDictionaries:'' |
196 category:cat. |
197 category:cat. |
197 |
198 (Smalltalk at:clsName) package:package asSymbol. |
198 cls := Smalltalk at:clsName. |
199 rev notNil ifTrue:[ |
199 cls package:package asSymbol. |
200 (Smalltalk at:clsName) setBinaryRevision:rev |
200 rev notNil ifTrue:[ |
201 ] |
201 cls setBinaryRevision:rev |
202 ] |
202 ] |
203 ] |
203 ] |
204 ] |
204 ] |
205 ]. |
205 ] |
206 s close. |
|
207 foundAutoloadList := true. |
|
208 ]. |
206 ]. |
209 ] |
207 s close. |
210 ] value. |
208 ]. |
211 |
|
212 foundAutoloadList ifFalse:[ |
|
213 |
|
214 "/ old scheme ... |
|
215 |
|
216 "/ |
|
217 "/ the following are loaded on demand (if not already present) |
|
218 "/ in most configurations, the widgets and tools are already built-in |
|
219 "/ as compiled code. However, on pure-bytecode (minimal-) systems, these |
|
220 "/ can be executed as bytecode as well. |
|
221 "/ |
|
222 |
|
223 optionalGames := #( |
|
224 Tetris TetrisBlock |
|
225 TicTacToeGame TicTacToeView TicTacToePlayer |
|
226 ). |
|
227 |
|
228 optionalDemos := #( |
|
229 Animation GlobeDemo RoundGlobe |
|
230 PenDemo CommanderDemo FractalPlantsDemo |
|
231 FractalPatternsDemo |
|
232 Calendar CalculatorView |
|
233 GLTeapotDemo GLTeapotView GLXYGraph |
|
234 GLPlaneDemoView1 GLPlaneDemoView2 |
|
235 GLSphereDemoView1 GLSphereDemoView2 |
|
236 GLObjectDemoView GLCubeDemoView GLTetraDemoView |
|
237 GLWireCubeDemoView GLWireSphereDemoView |
|
238 GLCubeDemoView2 GLBrickCubeDemoView Logo3DView1 GLPlanetDemoView |
|
239 GLOctaHedronDemoView GLDoughnutDemoView |
|
240 RubicsCube RubicsCubeView |
|
241 |
|
242 ColorDrawDemo ColorDrawDemo2 ColorDrawDemo3 FormDrawView |
|
243 ). |
|
244 |
|
245 optionalApps := #( |
|
246 AddressBook AddressBook2 InitialLabelView AddressView |
|
247 |
|
248 DrawTool DrawObject DrawLine DrawText |
|
249 DrawRectangle DrawRoundRectangle DrawEllipse |
|
250 DrawPolygon DrawCurve DrawGroup DrawView DrawImage |
|
251 DrawVLine DrawHLine |
|
252 PatternMenu LineMenu |
|
253 |
|
254 LogicTool LogicView LogicObject Connection Input Output |
|
255 Low High Inverter AndGate OrGate AndGate2 NandGate2 OrGate2 NorGate2 ExorGate2 |
|
256 AndGate3 SubCircuit |
|
257 |
|
258 MailView MailHandler POPMailHandler MailLetter MailReplyTextView |
|
259 |
|
260 NewsView NewsHandler NNTPHandler NumberSet |
|
261 |
|
262 ArchiveView DirectoryView DirectoryViewObject |
|
263 DirectoryObject FileObject |
|
264 |
|
265 DocumentView DocumentReader RTFReader |
|
266 DisplayText DisplayPicture DisplayIcon DisplaySound |
|
267 |
|
268 Clock ClockView RoundClock RoundClock2 |
|
269 |
|
270 VocPanel VocView SoundStream |
|
271 ). |
|
272 |
|
273 optionalTools := #( |
|
274 SystemBrowser DebugView FileBrowser DirectoryBrowser BrowserView |
|
275 ProjectView Launcher Workspace ChangesBrowser NewLauncher |
|
276 InspectorView OrderedCollectionInspectorView ContextInspectorView |
|
277 DictionaryInspectorView |
|
278 ImageInspectorView ColorInspectorView |
|
279 AboutBox |
|
280 |
|
281 Decompiler ChangeSetBrowser |
|
282 EventMonitor ProcessMonitor MemoryMonitor MemoryUsageView |
|
283 |
|
284 "/ highly EXPERIMENTAL |
|
285 |
|
286 XtInterface WidgetWrapper ScrollWidgetWrapper |
|
287 XtWidget XtTopLevel XtBox XtHTML |
|
288 XtWidgetWithLabelAndAction |
|
289 |
|
290 CLauncher CBrowser CChange CDirectory CEditor CFilter CHistory CCSetup |
|
291 AbstractSourceCodeManager CVSSourceCodeManager |
|
292 ). |
|
293 |
|
294 optionalViews := #( |
|
295 Model ApplicationModel WindowBuilder |
|
296 |
|
297 GLXView GLPoint3D SliderBox |
|
298 DialogBox OptionBox TextBox |
|
299 InputView Ruler VerticalRuler TextRuler |
|
300 Slider HorizontalSlider |
|
301 SteppingSlider HorizontalSteppingSlider |
|
302 VariablePanel VariableVerticalPanel VariableHorizontalPanel |
|
303 VariablePanelController VariableVerticalPanelController VariableHorizontalPanelController |
|
304 FontPanel FramedBox Separator FileSelectionBox FileSaveBox |
|
305 RadioButton RadioButtonGroup "MotionButton MenuButton" |
|
306 PullDownMenu CheckBox |
|
307 RadioButtonController |
|
308 |
|
309 SyncedMultiColumnTextView |
|
310 TwoColumnTextView DiffTextView |
|
311 ThreeColumnTextView Diff3TextView |
|
312 FilenameEditField FilenameEnterBox |
|
313 ImageSelectionBox |
|
314 |
|
315 ScreenSaver LightInTheDark LightInTheDark2 |
|
316 |
|
317 ImageView ImageEditView LabelledEnterField |
|
318 Depth1Image Depth2Image Depth4Image Depth8Image Depth24Image |
|
319 TreeView TreeGraphView ClassTreeView ClassTreeGraphView WindowTreeView |
|
320 |
|
321 "/ ColorPanel HLSPanel RGBPanel ColorWheel ThreeSliderPanel |
|
322 "/ ColorSlider HueSlider RGBSlider SteppingColorSlider SteppingHueSlider |
|
323 "/ Scale HorizontalScale |
|
324 |
|
325 TabulatorSpecification |
|
326 ListEntry MultiColListEntry ColoredListEntry |
|
327 ViewScroller TabSpecRuler ComboView ComboListView ComboBoxView |
|
328 |
|
329 ProgressIndicator AnimatedLabel ActionWaitBox |
|
330 ). |
|
331 |
|
332 optionalPro := #( |
|
333 EventListener |
|
334 ActiveHelpView ActiveHelp |
|
335 |
|
336 Builder BuilderView BuilderTreeView |
|
337 BuilderClassBox BuilderVariablesBox |
|
338 |
|
339 SelectionInHierarchy SelectionInHierarchyView |
|
340 HierarchyNode |
|
341 PSGraphicsContext PSFont PSFontFamily PSMedium |
|
342 ). |
|
343 |
|
344 "/ optionalUI := #( |
|
345 "/ UIBuilder UIPainter UIMenuEditor |
|
346 "/ |
|
347 "/ UISpecification |
|
348 "/ ActionButtonSpec CheckBoxSpec FullSpec InputFieldSpec |
|
349 "/ LabelSpec SequenceViewSpec UnknownSpec WindowSpec |
|
350 "/ ). |
|
351 |
|
352 "/ notice, that it does not really make sense to |
|
353 "/ run Benchmarks in interpreted mode ..." |
|
354 "/ If you really weant to measure the system, include (load) compiled |
|
355 "/ benchmark classes |
|
356 |
|
357 "/optionalBench := #( |
|
358 "/ SlopstoneBenchmark SmopstoneBenchmark |
|
359 "/ STXBenchmarks1 STXBenchmarks2 |
|
360 "/ |
|
361 "/ "DeltaBlue benchmark" |
|
362 "/ AbstractConstraint BinaryConstraint Constraint |
|
363 "/ DBMethod DBVariable EditConstraint |
|
364 "/ EqualityConstraint Plan Planner ScaleConstraint |
|
365 "/ StayConstraint Strength UnaryConstraint XMouseConstraint |
|
366 "/ YMouseConstraint |
|
367 "/ |
|
368 "/ "RichardsBenchmarks" |
|
369 "/ DeviceTaskDataRecord HandlerTaskDataRecord |
|
370 "/ IdleTaskDataRecord Packet RBObject RichardsBenchmarks |
|
371 "/ TaskControlBlock TaskState WorkerTaskDataRecord |
|
372 "/ |
|
373 "/ "self benchmarks" |
|
374 "/ AbstractBenchmark AtAllPutBenchmark BenchmarkRunner |
|
375 "/ BubbleSort2Array BubbleSort2Benchmark BubbleSortBenchmark |
|
376 "/ Cons FastSumToBenchmark HanoiBenchmark HanoiDisk |
|
377 "/ IncrementAllBenchmark IntMM2Array IntMM2Benchmark |
|
378 "/ IntMM2Matrix IntMMBenchmark MM2Benchmark MMBenchmark |
|
379 "/ NestedLoopBenchmark Perm2Benchmark PermArray PermBenchmark |
|
380 "/ PuzzleArray PuzzleBenchmark Queens2Benchmark QueensBenchmark |
|
381 "/ Quicksort2Array Quicksort2Benchmark QuicksortBenchmark |
|
382 "/ RecurseBenchmark SieveBenchmark SumAllBenchmark |
|
383 "/ SumFromToBenchmark SumToBenchmark TakBenchmark TaklBenchmark |
|
384 "/ Towers2Benchmark Towers2Disk TowersBenchmark |
|
385 "/ TowersBenchmarkElement TreeSort2Benchmark TreeSort2Node |
|
386 "/ TreeSortBenchmark TreeSortNodeBenchmark |
|
387 "/ ). |
|
388 "/ |
|
389 optionalImage := #( |
|
390 GIFReader TIFFReader FaceReader WindowsIconReader SunRasterReader |
|
391 XBMReader JPEGReader PBMReader ST80FormReader XPMReader |
|
392 PCXReader TargaReader XWDReader BlitImageReader |
|
393 ). |
|
394 |
|
395 optionalClasses := #( |
|
396 EpsonFX1PrinterStream HPLjetIIPrinterStream |
|
397 PostscriptPrinterStream |
|
398 ValueLink |
|
399 MessageTracer WrappedMethod |
|
400 |
|
401 PersistencyManager BinaryIOManager BinaryInputManager |
|
402 BinaryOutputManager DBFile BinaryObjectStorage |
|
403 |
|
404 RDoItServer SNMPOID SNMPSession |
|
405 |
|
406 HandlerCollection CacheDictionary |
|
407 Plug Random MessageSend MessageChannel |
|
408 MessageTally CallChain ProfileTree |
|
409 GraphicsAttributes |
|
410 Circle EllipticalArc Spline Polygon Curve LineSegment |
|
411 |
|
412 VisualComponent VisualPart Wrapper StrokingWrapper FillingWrapper |
|
413 |
|
414 ActorStream TokenizedStream |
|
415 RecursionLock Monitor Promise LockedFileStream |
|
416 |
|
417 BooleanArray WordArray Chain ChainLink |
|
418 |
|
419 JISEncodedString GBEncodedString BIG5EncodedString |
|
420 |
|
421 "/ VariableArray VariableString "/ backward compatibility - these will vanish |
|
422 ). |
|
423 |
|
424 optionalViews do:[:s | |
|
425 "install if not already compiled-in" |
|
426 (Smalltalk at:s) isNil ifTrue:[ |
|
427 Autoload subclass:s |
|
428 instanceVariableNames:'' |
|
429 classVariableNames:'' |
|
430 poolDictionaries:'' |
|
431 category:'autoloaded-Views' |
|
432 ] |
|
433 ]. |
|
434 |
|
435 optionalTools do:[:s | |
|
436 "install if not already compiled-in" |
|
437 (Smalltalk at:s) isNil ifTrue:[ |
|
438 Autoload subclass:s |
|
439 instanceVariableNames:'' |
|
440 classVariableNames:'' |
|
441 poolDictionaries:'' |
|
442 category:'autoloaded-Tools' |
|
443 ] |
|
444 ]. |
|
445 |
|
446 optionalGames do:[:s | |
|
447 "install if not already compiled-in" |
|
448 (Smalltalk at:s) isNil ifTrue:[ |
|
449 Autoload subclass:s |
|
450 instanceVariableNames:'' |
|
451 classVariableNames:'' |
|
452 poolDictionaries:'' |
|
453 category:'autoloaded-Games' |
|
454 ] |
|
455 ]. |
|
456 |
|
457 optionalDemos do:[:s | |
|
458 "install if not already compiled-in" |
|
459 (Smalltalk at:s) isNil ifTrue:[ |
|
460 Autoload subclass:s |
|
461 instanceVariableNames:'' |
|
462 classVariableNames:'' |
|
463 poolDictionaries:'' |
|
464 category:'autoloaded-Demos' |
|
465 ] |
|
466 ]. |
|
467 |
|
468 optionalApps do:[:s | |
|
469 "install if not already compiled-in" |
|
470 (Smalltalk at:s) isNil ifTrue:[ |
|
471 Autoload subclass:s |
|
472 instanceVariableNames:'' |
|
473 classVariableNames:'' |
|
474 poolDictionaries:'' |
|
475 category:'autoloaded-Applications' |
|
476 ] |
|
477 ]. |
|
478 |
|
479 "/optionalBench do:[:s | |
|
480 "/ "install if not already compiled-in" |
|
481 "/ (Smalltalk at:s) isNil ifTrue:[ |
|
482 "/ Autoload subclass:s |
|
483 "/ instanceVariableNames:'' |
|
484 "/ classVariableNames:'' |
|
485 "/ poolDictionaries:'' |
|
486 "/ category:'autoloaded-Benchmarks' |
|
487 "/ ] |
|
488 "/]. |
|
489 |
|
490 optionalImage do:[:s | |
|
491 "install if not already compiled-in" |
|
492 (Smalltalk at:s) isNil ifTrue:[ |
|
493 Autoload subclass:s |
|
494 instanceVariableNames:'' |
|
495 classVariableNames:'' |
|
496 poolDictionaries:'' |
|
497 category:'autoloaded-Images' |
|
498 ] |
|
499 ]. |
|
500 |
|
501 optionalClasses do:[:s | |
|
502 "install if not already compiled-in" |
|
503 (Smalltalk at:s) isNil ifTrue:[ |
|
504 Autoload subclass:s |
|
505 instanceVariableNames:'' |
|
506 classVariableNames:'' |
|
507 poolDictionaries:'' |
|
508 category:'autoloaded-Classes' |
|
509 ] |
|
510 ]. |
|
511 |
|
512 optionalPro notNil ifTrue:[ |
|
513 optionalPro do:[:s | |
|
514 "install if not already compiled-in" |
|
515 |
|
516 (Smalltalk at:s) isNil ifTrue:[ |
|
517 Autoload subclass:s |
|
518 instanceVariableNames:'' |
|
519 classVariableNames:'' |
|
520 poolDictionaries:'' |
|
521 category:'autoloaded-Classes' |
|
522 ] |
|
523 ] |
|
524 ]. |
|
525 |
|
526 optionalUI notNil ifTrue:[ |
|
527 optionalUI do:[:s | |
|
528 "install if not already compiled-in" |
|
529 |
|
530 (Smalltalk at:s) isNil ifTrue:[ |
|
531 Autoload subclass:s |
|
532 instanceVariableNames:'' |
|
533 classVariableNames:'' |
|
534 poolDictionaries:'' |
|
535 category:'autoloaded-UI' |
|
536 ] |
|
537 ] |
|
538 ]. |
|
539 |
|
540 "/ |
|
541 "/ install all widget & tool classes as autoloaded |
|
542 "/ for compact systems (which have no GUI classes compiled in) ... |
|
543 "/ |
|
544 |
|
545 "/ |
|
546 "/ ... but only, if this is not a non GUI smalltalk |
|
547 "/ |
|
548 Workstation notNil ifTrue:[ |
|
549 optionalClasses := #( |
|
550 ArrowButton |
|
551 Button |
|
552 ButtonController |
|
553 CheckToggle |
|
554 ClickMenuView |
|
555 CodeView |
|
556 EnterFieldGroup |
|
557 EditTextView |
|
558 EditField |
|
559 EnterBox |
|
560 EnterBox2 |
|
561 FileSaveBox |
|
562 FileSelectionBox |
|
563 FileSelectionList |
|
564 FontPanel |
|
565 HorizontalMiniScroller |
|
566 HorizontalPanelView |
|
567 HorizontalScrollBar |
|
568 HorizontalScroller |
|
569 HVScrollableView |
|
570 InfoBox |
|
571 ListSelectionBox |
|
572 Label |
|
573 ListView |
|
574 MenuView |
|
575 MiniScroller |
|
576 ObjectView |
|
577 PanelView |
|
578 PopUpList |
|
579 PopUpListController |
|
580 PopUpMenu |
|
581 PullDownMenu |
|
582 ScrollableView |
|
583 ScrollBar |
|
584 Scroller |
|
585 SelectionInListView |
|
586 TextCollector |
|
587 TextView |
|
588 Toggle |
|
589 ToggleController |
|
590 VerticalPanelView |
|
591 VariablePanel |
|
592 VariablePanelController |
|
593 VariableHorizontalPanel |
|
594 VariableHorizontalPanelController |
|
595 VariableVerticalPanel |
|
596 VariableVerticalPanelController |
|
597 WarningBox |
|
598 YesNoBox |
|
599 |
|
600 TableView |
|
601 TableSpecification |
|
602 TableRowHandle |
|
603 TableColumnView |
|
604 TableColumnSpecification |
|
605 SelTableColumnSpecification |
|
606 TableDemoElement |
|
607 ). |
|
608 |
|
609 optionalClasses do:[:s | |
|
610 "install if not already compiled-in" |
|
611 (Smalltalk at:s) isNil ifTrue:[ |
|
612 Autoload subclass:s |
|
613 instanceVariableNames:'' |
|
614 classVariableNames:'' |
|
615 poolDictionaries:'' |
|
616 category:'autoloaded-Views'. |
|
617 ]. |
|
618 ] |
|
619 ]. |
|
620 |
|
621 "/ |
|
622 "/ additional compatibility classes (many are empty dummies to allow fileIn at least) |
|
623 "/ |
|
624 compat := #( |
|
625 BitBlt Pen Commander DrawingPen |
|
626 OpaqueForm |
|
627 "/ |
|
628 "/ the path stuff is no longer compatible |
|
629 "/ with ST-80 (i.e. dropped in ST; different implementation in VW) |
|
630 "/ |
|
631 AbstractPath Path |
|
632 Arc DCircle Curve LinearFit Arrow Line Spline Ellipse |
|
633 |
|
634 ActionMenu |
|
635 FillInTheBlank |
|
636 KeyedSet |
|
637 FormView |
|
638 NoController |
|
639 MouseMenuController |
|
640 StandardSystemController |
|
641 ControllerWithMenu |
|
642 ComposedText |
|
643 ComposedTextView |
|
644 CompositeView SubCanvas |
|
645 ClassOrganizer |
|
646 ApplicationController |
|
647 SocketAddress UDSocketAddress IPSocketAddress |
|
648 UnixProcess CEnvironment |
|
649 Layout LayoutOrigin LayoutFrame |
|
650 Icon Mask CachedImage |
|
651 CoveragePalette |
|
652 TextStream |
|
653 ColorValue |
|
654 SimpleDialog |
|
655 SourceFileManager |
|
656 ValueModel ValueHolder BufferedValueHolder TriggerValue BlockValue |
|
657 ConvertedValue |
|
658 StringHolder SelectionInList MultiSelectionInList SelectionInTable |
|
659 RowAdaptor SimpleBorder TableAdaptor TableInterface TwoDList |
|
660 PrintConverter |
|
661 PluggableAdaptor ProtocolAdaptor AspectAdaptor UpdateAdaptor |
|
662 CodeStream MethodNode NullScope ProgramNodeBuilder |
|
663 MenuItem TimestampPrintPolicy |
|
664 ). |
|
665 |
|
666 compat do:[:s | |
|
667 "install if not already compiled-in" |
|
668 (Smalltalk at:s) isNil ifTrue:[ |
|
669 Autoload subclass:s |
|
670 instanceVariableNames:'' |
|
671 classVariableNames:'' |
|
672 poolDictionaries:'' |
|
673 category:'autoloaded-ST80-Classes' |
|
674 ] |
|
675 ] |
209 ] |
676 |
|
677 ] "/ end of old scheme ... |
|
678 ! |
210 ! |
679 |
211 |
680 "/ |
212 "/ |
681 "/ a kludge: we might have added new ImageReaders above - let Image know about it |
213 "/ a kludge: we might have added new ImageReaders above - let Image know about it |
682 "/ |
214 "/ |
683 "avoid introducing a new global ..." |
215 |imageClass cls| |
684 (Smalltalk includesKey:#Image) ifTrue:[ |
216 |
685 (Smalltalk at:#Image) isBehavior ifTrue:[ |
217 imageClass := Smalltalk at:#Image ifAbsent:nil. |
686 (Smalltalk at:#Image) initializeFileFormatTable. |
218 imageClass notNil ifTrue:[ |
|
219 imageClass isBehavior ifTrue:[ |
|
220 imageClass initializeFileFormatTable. |
687 ] |
221 ] |
688 ]. |
222 ]. |
689 |
223 |
690 "/ |
224 "/ |
691 "/ some ST80 name aliases |
225 "/ some ST80 name aliases |
692 "/ (actually, much more is needed - this is just a start ...) |
226 "/ (actually, much more is needed - this is just a start ...) |
693 "/ |
227 "/ |
694 (Smalltalk at:#StandardSystemView) notNil ifTrue:[ |
228 (cls := Smalltalk at:#StandardSystemView) notNil ifTrue:[ |
695 Smalltalk at:#ScheduledWindow put:StandardSystemView |
229 Smalltalk at:#ScheduledWindow put:cls |
696 ]. |
230 ]. |
697 (Smalltalk at:#Socket) notNil ifTrue:[ |
231 (cls := Smalltalk at:#Socket) notNil ifTrue:[ |
698 Smalltalk at:#UnixSocketAccessor put:(Smalltalk at:#Socket) |
232 Smalltalk at:#UnixSocketAccessor put:cls |
699 ]. |
233 ]. |
700 Smalltalk at:#BlockClosure put:Block. |
234 Smalltalk at:#BlockClosure put:Block. |
701 Smalltalk at:#Dialog put:DialogBox. |
235 (cls := Smalltalk at:#DialogBox) notNil ifTrue:[ |
702 Smalltalk at:#DialogView put:DialogBox. |
236 Smalltalk at:#Dialog put:cls. |
|
237 Smalltalk at:#DialogView put:cls. |
|
238 ]. |
703 |
239 |
704 Smalltalk at:#Console put:Stderr. |
240 Smalltalk at:#Console put:Stderr. |
705 |
241 |
706 FileDirectory notNil ifTrue:[ |
242 FileDirectory notNil ifTrue:[ |
707 Smalltalk at:#Disk put:(FileDirectory directoryNamed:'/') |
243 Smalltalk at:#Disk put:(FileDirectory directoryNamed:'/') |
708 ]. |
244 ]. |
|
245 |
709 Display notNil ifTrue:[ |
246 Display notNil ifTrue:[ |
710 Smalltalk at:#Window put:(Display class). |
247 Smalltalk at:#Window put:(Display class). |
711 Smalltalk at:#Screen put:(Display class). |
248 Smalltalk at:#Screen put:(Display class). |
712 ]. |
249 ]. |
713 |
250 |
714 "/ |
251 "/ |
715 "/ ST/X has (currently) no Double, but Float is what ST-80's Double is ... |
252 "/ ST/X has (currently) no Double, but Float is what ST-80's Double is ... |
716 "/ |
253 "/ |