2016-10-26 13:35 GMT+02:00 Tobias Pape <Das.Linux@gmx.de>:


Begin forwarded message:

> From: commits@source.squeak.org
> To: squeak-dev@lists.squeakfoundation.org, packages@lists.squeakfoundation.org
> Reply-To: squeak-dev@lists.squeakfoundation.org
> Subject: The Trunk: EToys-tfel.268.mcz
> Message-Id: <E1byx8g-0003mP-Bs@andreas>
>
> Tim Felgentreff uploaded a new version of EToys to project The Trunk:
> http://source.squeak.org/trunk/EToys-tfel.268.mcz
>
> ==================== Summary ====================
>
> Name: EToys-tfel.268
> Author: tfel
> Time: 24 October 2016, 11:33:16.574614 am
> UUID: ea95b449-4d49-994b-a6b1-0b9d17104ab0
> Ancestors: EToys-eem.267
>
> - refactor addInstVarNames: to go through Player class>>addInstVarName:
> - small cleanups
>
> =============== Diff against EToys-eem.267 ===============
>
> Item was changed:
>  ----- Method: Class>>addInstVarNames: (in category '*Etoys-Squeakland-instance variables') -----
>  addInstVarNames: aCollection
>
>       | newInstVarString |
>       newInstVarString := self instanceVariablesString.
>       aCollection do:
>               [:varName | (self instVarNames includes: varName) ifFalse: [newInstVarString := newInstVarString , ' ' , varName]].
> +     ^ self addInstVarName: newInstVarString
> -     ^(ClassBuilder new)
> -             name: self name
> -             inEnvironment: self environment
> -             subclassOf: superclass
> -             type: self typeOfClass
> -             instanceVariableNames: newInstVarString
> -             classVariableNames: self classVariablesString
> -             poolDictionaries: self sharedPoolsString
> -             category: self category
>  !
>
> Item was added:
> + ----- Method: Player class>>addInstVarName: (in category 'organization') -----
> + addInstVarName: aString
> +
> +     ^(ClassBuilder new)
> +             name: self name
> +             inEnvironment: (self environment import: Smalltalk globals)

the import: above is going to be a problem      ^^^^^^
- 1) there is no mechanism to prevent a policy/an observer to be added twice
     since Environment withName: will use a registered Environment we are going to apply env changes multiply
- 2) this is going to trigger the Environment undeclared bugs:
     every SUnit test that add/remove a class var/global var
     will populate EtoysUserDefinedTempEnvironment undeclared forever...
     and this is going to trigger strange behaviour like false conflicts or fused bindings (ClassVarScopeTest failing)

> +             subclassOf: self superclass
> +             type: self typeOfClass
> +             instanceVariableNames: self instanceVariablesString, ' ', aString
> +             classVariableNames: self classVariablesString
> +             poolDictionaries: self sharedPoolsString
> +             category: self category
> + !
>
> Item was changed:
>  ----- Method: Player class>>environment (in category 'organization') -----
>  environment
>
>       ^ self isUniClass
>               ifTrue: [(Environment withName: 'EtoysUserDefinedTempEnvironment')
> +                                     at: self name asSymbol put: self;
> +                                     importSelf;
> -                                     at: self name put: self;
>                                       yourself]
>               ifFalse: [super environment]!
>
> Item was changed:
>  ----- Method: Preferences class>>cambridge (in category '*Etoys-Squeakland-themes') -----
>  cambridge
>       "A theme for Squeakland and OLPC project"
>       "Preferences cambridge"
>       "This method has three parts.  Don't forget to look at the stuff at the bottom."
>
>       self setPreferencesFrom: #(
>               (allowCelesteTell false)
>               (alternativeScrollbarLook true)
>               (alternativeWindowLook true)
>               (annotationPanes true)
>               (automaticKeyGeneration true)
>               (biggerHandles true)
>               (blinkParen false)
>               (browseWithDragNDrop true)
>               (canRecordWhilePlaying true)
>               (classicNavigatorEnabled false)
>               (compactViewerFlaps true)
>               (enableLocalSave false)
>               (escapeKeyProducesMenu false)
>               (eToyFriendly true)
>               (eToyLoginEnabled true)
>               (extraDebuggerButtons false)
>               (gradientMenu false)
>               (haloTransitions false)
>               (honorDesktopCmdKeys true)
>               (includeSoundControlInNavigator true)
>               (magicHalos false)
>               (menuAppearance3d false)
>               (menuKeyboardControl false)
>               (modalColorPickers true)
>               (mouseOverHalos false)
>               (mvcProjectsAllowed false)
>               (preserveTrash true)
>               (projectViewsInWindows false)
>               (promptForUpdateServer false)
>               (propertySheetFromHalo false)
>               (roundedMenuCorners false)
>               (roundedWindowCorners false)
>               (securityChecksEnabled true)
> +             (standaloneSecurityChecksEnabled true)
> +             (duplicateControlAndAltKeys true)
>               (showDirectionHandles false)
>               (showDirectionForSketches true)
>               (showProjectNavigator false)
>               (showSecurityStatus false)
>               (soundQuickStart true)  "see setPlatformPreferences"
>               (soundReverb false)
>               (soundStopWhenDone true)        "see setPlatformPreferences"
>               (startInUntrustedDirectory true)
>               (sugarAutoSave false)
>               (swapControlAndAltKeys false)   "see setPlatformPreferences"
>               (uniqueNamesInHalos true)
>               (unlimitedPaintArea false)
>               (useArtificialSweetenerBar true)
>               (useBiggerPaintingBox true)
>               (useFormsInPaintBox false)
>               (useLocale true)
>               (usePangoRenderer false)
>               (usePlatformFonts false)
>               (usePopUpArrows true)
>               (warnAboutInsecureContent false)
>
>       "The following is to make sure the default is set properly."
>
>       (abbreviatedBrowserButtons false)
>       (allowEtoyUserCustomEvents false)
>       (alphabeticalProjectMenu false)
>       (alternativeBrowseIt false)
>       (alternativeButtonsInScrollBars false)
>       (alternativeWindowBoxesLook true)
>       (alwaysHideHScrollbar false)
>       (alwaysShowConnectionVocabulary false)
>       (alwaysShowHScrollbar false)
>       (alwaysShowVScrollbar true)
>       (ansiAssignmentOperatorWhenPrettyPrinting true)
>       (areaFillsAreTolerant false)
>       (areaFillsAreVeryTolerant false)
>       (autoAccessors false)
>       (automaticFlapLayout true)
>       (automaticPlatformSettings true)        "enables setPlatformPreferences"
>       (automaticViewerPlacement true)
>       (balloonHelpEnabled true)
>       (balloonHelpInMessageLists false)
>       (batchPenTrails false)
>       (biggerCursors true)
>       (browserNagIfNoClassComment true)
>       (browserShowsPackagePane false)
>       (browseWithPrettyPrint false)
>       (capitalizedReferences true)
>       (caseSensitiveFinds false)
>       (cautionBeforeClosing false)
>       (celesteHasStatusPane false)
>       (celesteShowsAttachmentsFlag false)
>       (changeSetVersionNumbers true)
>       (checkForSlips true)
>       (checkForUnsavedProjects true)
>       (classicNewMorphMenu false)
>       (clickOnLabelToEdit false)
>       (cmdDotEnabled true)
>       (collapseWindowsInPlace false)
>       (colorWhenPrettyPrinting false)
>       (compressFlashImages false)
>       (confirmFirstUseOfStyle true)
>       (conversionMethodsAtFileOut false)
>       (cpuWatcherEnabled false)
>       (debugHaloHandle false)
>       (debugPrintSpaceLog false)
>       (debugShowDamage false)
>       (decorateBrowserButtons true)
>       (defaultFileOutFormatMacRoman false)
>       (diffsInChangeList true)
>       (diffsWithPrettyPrint false)
>       (dismissAllOnOptionClose false)
>       (dismissEventTheatreUponPublish true)
>       (dragNDropWithAnimation false)
>       (dropProducesWatcher true)
>       (duplicateControlAndAltKeys false)
>       (easySelection false)
>       (enableInternetConfig false)
>       (enablePortraitMode false)
>       (enableVirtualOLPCDisplay false)
>       (expandedPublishing true)
>       (extractFlashInHighestQuality false)
>       (extractFlashInHighQuality true)
>       (fastDragWindowForMorphic true)
>       (fenceEnabled true)
>       (fenceSoundEnabled false)
>       (fullScreenLeavesDeskMargins true)
>       (gradientScrollBars true)
>       (haloEnclosesFullBounds false)
>       (higherPerformance false)
>       (ignoreStyleIfOnlyBold true)
>       (implicitSelfInTiles false)
>       (inboardScrollbars true)
>       (infiniteUndo false)
>       (keepTickingWhilePainting false)
>       (logDebuggerStackToFile true)
>       (menuButtonInToolPane false)
>       (menuColorFromWorld false)
>       (menuWithIcons true)
>       (morphicProgressStyle true)
>       (mouseOverForKeyboardFocus false)
>       (navigatorOnLeftEdge true)
>       (noviceMode false)
>       (okToReinitializeFlaps true)
>       (oliveHandleForScriptedObjects false)
>       (optionalButtons true)
>       (passwordsOnPublish false)
>       (personalizedWorldMenu true)
>       (postscriptStoredAsEPS false)
>       (printAlternateSyntax false)
>       (projectsSentToDisk false)
>       (projectZoom true)
>       (readDocumentAtStartup true)
>       (restartAlsoProceeds false)
>       (reverseWindowStagger true)
>       (rotationAndScaleHandlesInPaintBox false)
>       (scrollBarsNarrow false)
>       (scrollBarsOnRight true)
>       (scrollBarsWithoutMenuButton false)
>       (selectionsMayShrink true)
>       (selectiveHalos true)
>       (showAdvancedNavigatorButtons false)
>       (showBoundsInHalo false)
>       (showDeprecationWarnings false)
>       (showFlapsWhenPublishing false)
>       (showLinesInHierarchyViews true)
>       (showSharedFlaps true)
>       (signProjectFiles true)
>       (simpleMenus false)
>       (slideDismissalsToTrash true)
>       (smartUpdating true)
>       (soundsEnabled true)
>       (swapMouseButtons false)
>       (systemWindowEmbedOK false)
>       (tabAmongFields true)
>       (testRunnerShowAbstractClasses false)
>       (thoroughSenders true)
>       (tileTranslucentDrag true)
>       (timeStampsInMenuTitles true)
>       (translationWithBabel false)
>       (turnOffPowerManager false)
>       (twentyFourHourFileStamps true)
>       (twoSidedPoohTextures true)
>       (typeCheckingInTileScripting true)
>       (unifyNestedProgressBars true)
>       (uniTilesClassic true)
>       (universalTiles false)
>       (updateFromServerAtStartup false)
>       (updateSavesFile false)
>       (useButtonPropertiesToFire false)
>       (useFileList2 true)
>       (useSmartLabels false)
>       (useUndo true)
>       (useVectorVocabulary false)
>       (viewersInFlaps true)
>       (warnIfNoChangesFile false)
>       (warnIfNoSourcesFile false)
>       (warningForMacOSFileNameLength false)
>       (wordStyleCursorMovement true)
>
>       ).
>
>  Preferences setPreference: #haloTheme toValue: #iconicHaloSpecifications.
>  !
>
> Item was changed:
>  ----- Method: Project class>>cleanUpEtoysGarbage (in category '*Etoys-Squeakland-utilities') -----
>  cleanUpEtoysGarbage
>       "Project cleanUpEtoysGarbage"
>       "All these should eventuall go away and be fixed, but for now we have this here."
>       Smalltalk garbageCollect.
>       "Clear weak message sends to remove modal windows from worlds that are closing."
>       (WeakMessageSend allInstances select: [:wm  |
>               (wm receiver isKindOf: PasteUpMorph) and: [wm selector = #removeModalWindow]]) do: [:wm | wm receiver: nil].
>       "Clear the weak dictionary on the class side that keeps node state around in the rewriter"
>       KedamaEvaluatorNodeState initialize.
>       "Clear the KedamaEvaluator that holds on to the last Kedama world"
>       ScriptEditorMorph setDefaultEvaluator.
>       "Clear the hard references to player classes, "
>       (Smalltalk organization listAtCategoryNamed:  'UserObjects') do: [:name |
>           Smalltalk forgetClass: (Smalltalk classNamed: name) logged: false].
>       Player withAllSubclasses
>           select: [:c | c isSystemDefined not]
> +         thenDo: [:c  |
> +                     c theNonMetaClass superclass removeSubclass: c theNonMetaClass.
> +                     c theMetaClass superclass removeSubclass: c theMetaClass].
> -         thenDo: [:c  | c superclass removeSubclass: c].
>       "Clear the paste buffer"
>       HandMorph initialize.
>       "Clear the reference to the project tree in SkObject"
> +     (Smalltalk classNamed: 'SkObject') ifNotNil: [:c | c initialize].
> -     Smalltalk at: #SkObject ifPresent: [:cls| cls initialize].
>       PasteUpMorph allInstancesDo: [:m | m presenter ifNotNil: [:p | p flushPlayerListCache]].
>       Smalltalk garbageCollect!
>
> Item was added:
> + ----- Method: ReleaseBuilderSqueakland class>>intermediatePrepareForUsers (in category 'scripts') -----
> + intermediatePrepareForUsers
> +     "self intermediatePrepareForUsers"
> +     Project cleanUpEtoysGarbage.
> +     Smalltalk zapAllOtherProjects.
> +     Project cleanUpEtoysGarbage.
> +     ReleaseBuilder clearCaches.
> +     ObjectScanner new. "clear ObjectScanner's class pool"
> +     ExternalSettings registerClient: ServerDirectory.
> +     Project cleanUpEtoysGarbage.
> +     ReleaseBuilderSqueakland configureDesktop.
> +     ReleaseBuilderSqueakland setPreferences.
> +     Model useColorfulWindows: true.!
>