Marcel Taeumel uploaded a new version of Help-Squeak-Project to project The Trunk:
http://source.squeak.org/trunk/Help-Squeak-Project-mt.37.mcz
==================== Summary ====================
Name: Help-Squeak-Project-mt.37
Author: mt
Time: 3 August 2016, 10:29:37.74127 am
UUID: f0bafae7-02f3-6843-9fe4-076c0a3338e3
Ancestors: Help-Squeak-Project-mt.36
Protect help texts that are fixed or derived from other strings in the system from editing (and duplicating).
=============== Diff against Help-Squeak-Project-mt.36 ===============
Item was changed:
----- Method: SqueakLicenseHelp class>>licenseChange (in category 'pages') -----
licenseChange
^HelpTopic
title: 'License has changed with 4.0'
+ readOnlyContents: 'On 23 September 1996, Apple Computer Inc. released Squeak V1.1 under the "Squeak License" (SqL).
- contents: 'On 23 September 1996, Apple Computer Inc. released Squeak V1.1 under the "Squeak License" (SqL).
On May 8, 2006 Apple agreed to relicense original Squeak V1.1 under the Apple Public Source License.
On October 12, 2006 Apple granted permission to relicense under Apache license 2.0.
In 2006, VPRI began to collect "Distribution Agreements" for all contributors to Squeak since V1.1 up to V3.8, asking them to relicense their contributions, which were originally licensed under SqL, to the MIT license. This was a great effort on behalf of many and VPRI has 100s of signed documents agreeing to this.
Do you want to contribute source to Squeak?All new contributions since 4.0 must be under the MIT license. When you make your code available, please state explicitly in some form such as the description on a web site or email announcement that your contribution is under the MIT license. (It doesn''t have to be exclusive; you can release it under difference licenses at the same time.)
Have you contributed source to Squeak? If you believe you have, but have not sent in an agreement to allow your submission(s) to be licensed under the MIT license then please see http://netjam.org/squeak/contributors. There you can find a list of known contributors and a PDF of the agreement with instructions. The snail mail address is found in the agreement PDF file.
Also there are a few people for which we are lacking full contact information. If you think you can help please also visit the link above and see if you can identify any of the unknown developer initials or any of the developers for whom we do not have a current email address.' !
Item was changed:
----- Method: SqueakLicenseHelp class>>officialLicense (in category 'pages') -----
officialLicense
^HelpTopic
title: 'Official License'
+ readOnlyContents: Smalltalk license readStream nextChunkText!
- contents: Smalltalk license readStream nextChunkText!
Item was changed:
----- Method: SqueakToolsHelp class>>fontSizeSummary (in category 'pages') -----
fontSizeSummary
^HelpTopic
title: 'Font Size Summary'
+ readOnlyContents: TextStyle fontSizeSummaryContents!
- contents: TextStyle fontSizeSummaryContents!
Item was changed:
----- Method: SqueakTutorials class>>usefulExpressions (in category 'pages') -----
usefulExpressions
^ HelpTopic
title: 'Useful Expressions'
+ readOnlyContents: Utilities standardWorkspaceContents!
- contents: Utilities standardWorkspaceContents!
Chris Muller uploaded a new version of System to project The Trunk:
http://source.squeak.org/trunk/System-cmm.860.mcz
==================== Summary ====================
Name: System-cmm.860
Author: cmm
Time: 2 August 2016, 4:29:02.356681 pm
UUID: 0980ea7f-76ef-4ff1-8e27-b8e0840f9a70
Ancestors: System-mt.859
Fixes to the Community Dark theme:
Dark themes must opposite a light theme -- in a Dark theme, darkness is the standard color of a widgets standard state, with increased lightness being used to indicate selected / hovered / feedback states.
- Move toward a universal "selection" color, #dbAqua. I would like to make this the color for text-selection too, but we would need to adjust the syntax colors for that, and this change is just intended to make Community Dark minimally usable, not my preference.
- Buttons now indicate their "on" selection state with a little color.
- The labels of background windows are now readable.
- The color palette was much too bright. Darkened it.
=============== Diff against System-mt.859 ===============
Item was changed:
----- Method: CommunityTheme class>>addDarkButtons: (in category 'instance creation') -----
addDarkButtons: theme
"self createDark apply."
theme
+ set: #borderColor for: #PluggableButtonMorph to: Color gray ;
+ set: #color for: #PluggableButtonMorph to: Color darkGray ;
- set: #borderColor for: #PluggableButtonMorph to: Color darkGray darker;
- set: #color for: #PluggableButtonMorph to: Color gray;
set: #textColor for: #PluggableButtonMorph to: Color white;
+ set: #selectionModifier for: #PluggableButtonMorph to: [ [:c | self dbAqua twiceDarker] ];
+ set: #hoverModifier for: #PluggableButtonMorph to: [ [:c | c adjustBrightness: 0.2] ];
+ set: #feedbackModifier for: #PluggableButtonMorph to: [ [:c | c adjustBrightness: 0.3] ].
- set: #selectionModifier for: #PluggableButtonMorph to: [ [:c | c adjustBrightness: -0.2] ];
- set: #hoverModifier for: #PluggableButtonMorph to: [ [:c | c adjustBrightness: -0.2] ];
- set: #feedbackModifier for: #PluggableButtonMorph to: [ [:c | c adjustBrightness: -0.3] ].
"And the plus-version."
theme set: #disabledTextColor for: #PluggableButtonMorphPlus to: Color gray.
!
Item was changed:
----- Method: CommunityTheme class>>addDarkMenusAndDockingBars: (in category 'instance creation') -----
addDarkMenusAndDockingBars: theme
"self createDark apply."
theme
set: #borderWidth for: #MenuMorph to: 0;
set: #color for: #MenuMorph to: Color darkGray;
set: #titleTextColor for: #MenuMorph to: Color white;
set: #lineColor for: #MenuMorph to: Color lightGray;
set: #lineStyle for: #MenuMorph to: BorderStyle default;
set: #lineWidth for: #MenuMorph to: 1.
theme
set: #textColor for: #MenuItemMorph to: Color white;
+ set: #selectionColor for: #MenuItemMorph to: self dbAqua;
+ set: #selectionTextColor for: #MenuItemMorph to: Color white.
- set: #selectionColor for: #MenuItemMorph to: Color white;
- set: #selectionTextColor for: #MenuItemMorph to: Color black.
"set: #subMenuMarker for: #MenuItemMorph to: nil." "Use hard-coded default. See MenuItemMorph."
"The world main docking bar."
theme
" set: #color for: #DockingBarMorph to: Color darkGray;"
" set: #selectionColor for: #DockingBarItemMorph to: self darkContentSecondary;"
set: #logoColor for: #TheWorldMainDockingBar to: Color white;
set: #selectionLogoColor for: #TheWorldMainDockingBar to: Color black.!
Item was changed:
----- Method: CommunityTheme class>>addDarkScrollables: (in category 'instance creation') -----
addDarkScrollables: theme
"self createDark apply."
"Scroll bars"
theme
set: #thumbColor for: #ScrollBar to: Color gray;
set: #thumbBorderColor for: #ScrollBar to: Color darkGray.
"Scroll panes (includes generic stuff for list widgets, tree widgets, and text widgets."
theme
set: #color for: #ScrollPane to: (Color gray: 0.1).
"List widgets"
theme
set: #textColor for: #PluggableListMorph to: (Color gray: 0.9);
+ set: #selectionColor for: #PluggableListMorph to: self dbAqua;
- set: #selectionColor for: #PluggableListMorph to: (Color r: 0.15 g: 0.4 b: 0.15 alpha: 1.0);
set: #selectionTextColor for: #PluggableListMorph to: Color white;
+ derive: #multiSelectionColor for: #PluggableListMorph from: #PluggableListMorph at: #selectionColor do: [:c | c twiceDarker];
+ set: #filterColor for: #PluggableListMorph to: (self dbYellow alpha: 0.5);
+ set: #filterTextColor for: #PluggableListMorph to: Color white;
+ set: #preSelectionModifier for: #PluggableListMorph to: [ [:c | c twiceDarker ] ];
+ set: #hoverSelectionModifier for: #PluggableListMorph to: [ [:c | c twiceDarker alpha: 0.5 ] ].
- set: #filterColor for: #PluggableListMorph to: self dbYellow;
- set: #filterTextColor for: #PluggableListMorph to: Color black;
- set: #preSelectionModifier for: #PluggableListMorph to: [ [:c | c lighter alpha: 0.5 ] ];
- set: #hoverSelectionModifier for: #PluggableListMorph to: [ [:c | c lighter alpha: 0.5 ] ].
"Tree widgets"
theme
set: #highlightTextColor for: #SimpleHierarchicalListMorph to: self dbYellow lighter lighter;
set: #lineColor for: #SimpleHierarchicalListMorph to: Color gray.
"Text widgets"
theme
set: #textColor for: #PluggableTextMorph to: (Color gray: 0.9);
set: #caretColor for: #PluggableTextMorph to: Color white;
set: #selectionColor for: #PluggableTextMorph to: (Color r: 0.15 g: 0.4 b: 0.15 alpha: 1.0);
set: #unfocusedSelectionModifier for: #PluggableTextMorph to: [ [:c | c duller] ];
set: #adornmentReadOnly for: #PluggableTextMorph to: self dbPurple;
set: #adornmentRefuse for: #PluggableTextMorph to: self dbBlue;
set: #adornmentConflict for: #PluggableTextMorph to: self dbRed;
set: #adornmentDiff for: #PluggableTextMorph to: self dbGreen;
set: #adornmentNormalEdit for: #PluggableTextMorph to: self dbOrange;
set: #adornmentDiffEdit for: #PluggableTextMorph to: self dbYellow.
theme
set: #balloonTextColor for: #PluggableTextMorphPlus to: Color darkGray.!
Item was changed:
----- Method: CommunityTheme class>>addDarkWindowColors: (in category 'instance creation') -----
addDarkWindowColors: theme
"self createDark apply."
theme
set: #uniformWindowColor for: #Model to: Color darkGray;
set: #unfocusedWindowColorModifier for: #SystemWindow to: [ [:color | color darker] ];
+ set: #unfocusedLabelColor for: #SystemWindow to: Color veryLightGray;
- set: #unfocusedLabelColor for: #SystemWindow to: Color gray;
set: #focusedLabelColor for: #SystemWindow to: Color white;
set: #customWindowColor for: #Browser to: self dbGreen;
set: #customWindowColor for: #ChangeList to: self dbBlue;
set: #customWindowColor for: #ChangeSorter to: self dbBlue;
set: #customWindowColor for: #ChatNotes to: self dbPurple;
set: #customWindowColor for: #ClassCommentVersionsBrowser to: self dbPurple;
set: #customWindowColor for: #Debugger to: self dbRed;
set: #customWindowColor for: #DualChangeSorter to: self dbBlue;
set: #customWindowColor for: #FileContentsBrowser to: self dbYellow;
set: #customWindowColor for: #FileList to: self dbYellow;
set: #customWindowColor for: #InstanceBrowser to: self dbBlue;
set: #customWindowColor for: #Lexicon to: self dbBlue;
set: #customWindowColor for: #MCTool to: self dbPurple;
set: #customWindowColor for: #MessageNames to: self dbGreen;
set: #customWindowColor for: #MessageSet to: self dbBlue;
set: #customWindowColor for: #PackagePaneBrowser to: self dbGreen;
set: #customWindowColor for: #PluggableFileList to: self dbYellow;
set: #customWindowColor for: #PreferenceBrowser to: self dbBlue;
set: #customWindowColor for: #SMLoader to: self dbOrange;
set: #customWindowColor for: #SMLoaderPlus to: self dbOrange;
set: #customWindowColor for: #SMReleaseBrowser to: self dbOrange;
set: #customWindowColor for: #ScriptingDomain to: self dbYellow;
set: #customWindowColor for: #SelectorBrowser to: self dbBlue;
set: #customWindowColor for: #StringHolder to: self dbYellow;
set: #customWindowColor for: #TestRunner to: self dbOrange;
set: #customWindowColor for: #TranscriptStream to: self dbOrange;
set: #customWindowColor for: #VersionsBrowser to: self dbPurple.!
Item was changed:
----- Method: CommunityTheme class>>dbAqua (in category 'colors by purpose') -----
dbAqua
+ ^ Color r: 0.2 g: 0.4 b: 0.4!
- ^Color r: 0.542 g: 0.745 b: 0.717!
Item was changed:
----- Method: CommunityTheme class>>dbBlue (in category 'colors by purpose') -----
dbBlue
+ ^Color r: 0.406 g: 0.535 b: 0.645!
- ^Color r: 0.506 g: 0.635 b: 0.745!
Item was changed:
----- Method: CommunityTheme class>>dbGreen (in category 'colors by purpose') -----
dbGreen
+ ^(Color r: 0.33 g: 0.542 b: 0.287)!
- ^Color r: 0.71 g: 0.741 b: 0.408!
Item was changed:
----- Method: CommunityTheme class>>dbOrange (in category 'colors by purpose') -----
dbOrange
+ ^Color r: 0.4 g: 0.2666 b: 0.172!
- ^Color r: 0.871 g: 0.577 b: 0.372!
Item was changed:
----- Method: CommunityTheme class>>dbRed (in category 'colors by purpose') -----
dbRed
+ ^Color r: 0.6 g: 0.3 b: 0.3!
- ^Color r: 0.8 g: 0.4 b: 0.4!
Item was changed:
----- Method: CommunityTheme class>>dbYellow (in category 'colors by purpose') -----
dbYellow
+ ^ (Color r: 0.554 g: 0.488 b: 0.134)!
- ^Color r: 0.941 g: 0.776 b: 0.455!
Marcel Taeumel uploaded a new version of System to project The Trunk:
http://source.squeak.org/trunk/System-mt.859.mcz
==================== Summary ====================
Name: System-mt.859
Author: mt
Time: 2 August 2016, 3:33:31.504305 pm
UUID: c63dccd8-6a6d-e046-942f-592655403eaf
Ancestors: System-mt.858
On aggressive clean-up, remove all auto-generated accessors in Preferences.
=============== Diff against System-mt.858 ===============
Item was added:
+ ----- Method: Preferences class>>cleanUp: (in category 'initialization') -----
+ cleanUp: aggressive
+
+ aggressive ifTrue: [
+ self class organization categories
+ select: [:ea | ea beginsWith: '*autogenerated']
+ thenDo: [:ea | self class removeCategory: ea]].!
Marcel Taeumel uploaded a new version of Help-Squeak-Project to project The Trunk:
http://source.squeak.org/trunk/Help-Squeak-Project-mt.36.mcz
==================== Summary ====================
Name: Help-Squeak-Project-mt.36
Author: mt
Time: 2 August 2016, 2:21:57.156941 pm
UUID: 822a1e69-3650-3347-ac6e-fb685e2463ab
Ancestors: Help-Squeak-Project-tpr.35
Include more help texts from throughout the system. Add a book for release notes.
=============== Diff against Help-Squeak-Project-tpr.35 ===============
Item was changed:
----- Method: SqueakHelp class>>introduction (in category 'as yet unclassified') -----
introduction
"This method was automatically generated. Edit it using:"
"a HelpBrowser edit: #introduction"
^HelpTopic
title: 'Welcome'
contents:
+ 'WELCOME
- 'WELCOME
Squeak is a modern, open source, full-featured implementation of the powerful Smalltalk programming language and environment.
Squeak is highly-portable - even its virtual machine is written entirely in Smalltalk making it easy to debug, analyze, and change.
Squeak is the vehicle for a wide range of projects from multimedia applications, educational platforms to commercial web application development.!!
+ ]style[(7 2 6 72 9 41 6 70 9 49 6 139)bcblack;a0FBitmap DejaVu Sans#19,cblack;FBitmap DejaVu Sans#14,ba0cblack;FBitmap DejaVu Sans#14,a0cblack;FBitmap DejaVu Sans#14,ba0cblack;FBitmap DejaVu Sans#14,a0cblack;FBitmap DejaVu Sans#14,ba0cblack;FBitmap DejaVu Sans#14,a0cblack;FBitmap DejaVu Sans#14,ba0cblack;FBitmap DejaVu Sans#14,a0cblack;FBitmap DejaVu Sans#14,ba0cblack;FBitmap DejaVu Sans#14,a0cblack;FBitmap DejaVu Sans#14!!' readStream nextChunkText!
- ]style[(7 2 6 72 9 41 6 70 9 49 6 139)bc000000000a0FBitstreamVeraSerif#20.0,c000000000,FBitstreamVeraSerif#16.0ba0c000000000,FBitstreamVeraSerif#16.0a0c000000000,FBitstreamVeraSerif#16.0ba0c000000000,FBitstreamVeraSerif#16.0a0c000000000,FBitstreamVeraSerif#16.0ba0c000000000,FBitstreamVeraSerif#16.0a0c000000000,FBitstreamVeraSerif#16.0ba0c000000000,FBitstreamVeraSerif#16.0a0c000000000,FBitstreamVeraSerif#16.0ba0c000000000,FBitstreamVeraSerif#16.0a0c000000000!!' readStream nextChunkText!
Item was changed:
----- Method: SqueakLicenseHelp class>>officialLicense (in category 'pages') -----
officialLicense
+
- "This method was automatically generated. Edit it using:"
- "a HelpBrowser edit: #officialLicense"
^HelpTopic
title: 'Official License'
+ contents: Smalltalk license readStream nextChunkText!
- contents:
- 'Copyright (c) The individual, corporate, and institutional contributors who have collectively contributed elements to this software ("The Squeak Community"), 1996-2015 All rights reserved.
-
- Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-
- The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- THE SOFTWARE.
-
- Portions of Squeak are covered by the following license
-
-
- Copyright (c) Xerox Corp. 1981, 1982 All rights reserved.
- Copyright (c) Apple Computer, Inc. 1985-1996 All rights reserved.
-
- Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.!!' readStream nextChunkText!
Item was changed:
----- Method: SqueakProjectHelp class>>extendingTheSystem (in category 'pages') -----
extendingTheSystem
^HelpTopic
title: 'Extending The System'
icon: (HelpIcons iconNamed: #squeakIcon)
+ contents: 'SqueakMap is an integrated catalog of external applications for Squeak. It is accessible from the "Apps" menu. This catalog does not host the projects, it merely documents the load scripts required to correctly bring them into the image.
+
+ Many SqueakMap packages use Installer, which defines several packages in its package-definitions protocol. Any of these can be loaded with an expression like the following:
+
+ Installer new merge: #openGL
+
+ Change #openGL to the selector name of the package you want to load. The latest version of that package and all of its prerequisites will be merged into the image. Merging a package is no different from loading it unless the package is already loaded, in which case it is upgraded to the latest version in a way that preserves any local changes you may already have made.
+
+ ---------------
+ This remainder of this workspace documents load-scripts for packages that are not documented in either SqueakMap or Installer.
+
+ OCompletion
+ "Provides source code completion as you type"
+ (Installer ss project: ''OCompletion'') install: ''Ocompletion''.
+ (Smalltalk at: #ECToolSet) register.
+ (Smalltalk at: #ToolSet) default: (Smalltalk at: #ECToolSet).
+
+ Omnibrowser
+ "Including Refactoring engine"
+ (Installer ss project: ''MetacelloRepository'') install: ''ConfigurationOfOmniBrowser''.
+ ((Smalltalk at: #ConfigurationOfOmniBrowser) project perform: #lastVersion) load: #( Dev ).
+
+ Pier CMS
+ "Pier CMS: http://www.piercms.com"
+ (Installer ss project: ''MetacelloRepository'') install: ''ConfigurationOfPier2''.
+ (Smalltalk at: #ConfigurationOfPier2) load.
+
+ (Installer lukas project: ''pier2'') install: ''Pier-Blog''.
+ (Installer lukas project: ''pier2'') install: ''Pier-Book''.
+ (Installer lukas project: ''pier2addons'') install: ''Pier-Setup''.
+ (Smalltalk at: #PRDistribution) new register.
+
+ Open Cobalt
+ "http://opencobalt.org (Best to run this from an image in an open cobalt directory)"
+ Installer ss project: ''TweakCore''; install: ''update''.
+ [Installer ss project: ''TweakExtras''; install: ''update'']
+ on: (Smalltalk at: #CUnsynchronizedModification) do: [:ex | ex resume].
+ Installer cobalt project: ''Tweak'';
+ answer: ''Would you like to conserve memory at all costs?'' with: true;
+ answer: ''Password for interactive VNC connections?'' with: ''cobalt'';
+ answer: ''Would you like to add the RFBServer to the World open menu?'' with: true;
+ install: ''update''
+ !!
+ ]style[(9 309 19 252 6 126 8 237 11 209 11 210 8 386 11 547)dSMLoaderPlus open;;,,d| newBrowser |
+ newBrowser := Browser new selectSystemCategory: ''Installer-Core''; selectClass: Installer; metaClassIndicated: false; selectMessageCategoryNamed: ''package-definitions''; selectMessageNamed: #openGL.
+ Browser openBrowserView: (newBrowser openMessageCatEditString: nil) label: ''External Package Definitions'';;,,i,,u,,bu,,bu,,bu,,bu,!!' readStream nextChunkText!
- contents:
- TheWorldMainDockingBar new extendingTheSystem !
Item was changed:
----- Method: SqueakProjectHelp class>>pages (in category 'accessing') -----
pages
+ ^#(extendingTheSystem squeakResourcesOnline squeakUserInterface workingWithSqueak)!
- ^#(releaseNotes extendingTheSystem squeakResourcesOnline squeakUserInterface workingWithSqueak)!
Item was removed:
- ----- Method: SqueakProjectHelp class>>releaseNotes (in category 'pages') -----
- releaseNotes
- "This method was automatically generated. Edit it using:"
- "a HelpBrowser edit: #releaseNotes"
- ^HelpTopic
- title: 'Release Notes'
- contents: TheWorldMainDockingBar new releaseNotes "<--- ugh, we will fix this later, for now may we not have TWO copies of the 8K release notes string in memory?"!
Item was changed:
----- Method: SqueakProjectHelp class>>squeakResourcesOnline (in category 'pages') -----
squeakResourcesOnline
^HelpTopic
title: 'Squeak Resources Online'
icon: (HelpIcons iconNamed: #squeakIcon)
+ contents: 'Squeak web sites
+ Main Squeak site http://www.squeak.org
+ Weekly Squeak http://news.squeak.org
+ Oversight Board http://board.squeak.org
+ Downloads for many versions http://ftp.squeak.org
+ Development of the virtual machine http://squeakvm.org
+ Google+ Page
+ https://plus.google.com/u/0/b/115950529692424242526/
+
+ Squeak-dev - The main Squeak mailing list
+ http://lists.squeakfoundation.org/mailman/listinfo/squeak-dev
+ http://dir.gmane.org/gmane.comp.lang.smalltalk.squeak.general
+ http://n4.nabble.com/Squeak-Dev-f45488.html
- contents:
+ Squeak-Beginners - The place to ask even the most basic questions
+ http://lists.squeakfoundation.org/mailman/listinfo/beginners
+ http://dir.gmane.org/gmane.comp.lang.smalltalk.squeak.beginners
+ http://n4.nabble.com/Squeak-Beginners-f107673.html
+
+ Squeak By Example
+ http://www.squeakbyexample.org/
+
+ Squeak, Open Personal Computing and Multimedia
+ http://coweb.cc.gatech.edu/squeakbook/
+ http://stephane.ducasse.free.fr/FreeBooks/CollectiveNBlueBook/
+
+ Squeak, Open Personal Computing for Multimedia
+ http://www.cc.gatech.edu/~mark.guzdial/drafts/
+ http://stephane.ducasse.free.fr/FreeBooks/GuzdialBookDrafts/
+
+ More Books about Squeak and Smalltalk
+ http://stephane.ducasse.free.fr/FreeBooks.html
+ !!
+ ]style[(16 316 41 173 65 181 17 35 46 106 46 112 37 49)bu,,bu,,bu,,bu,,bu,,bu,,bu,!!' readStream nextChunkText!
- TheWorldMainDockingBar new squeakOnlineResources!
Item was changed:
----- Method: SqueakProjectHelp class>>squeakUserInterface (in category 'pages') -----
squeakUserInterface
^HelpTopic
title: 'Squeak User Interface'
icon: (HelpIcons iconNamed: #squeakIcon)
+ contents: 'The Squeak UI has some unusual elements that you may not have seen before. Here is a brief introduction to those elements:
- contents:
+ Projects
+ A project is an entire Squeak desktop full of windows. Projects can be used to change quickly from one task to another. An inactive project is represented by a project window, which shows a thumbnail of its state. Project windows are actually more like doors than windows, since you can enter the project just by clicking on them. You can create a new project by choosing ''open...project'' from the screen menu. To exit a project (and return to its parent project), choose ''previous project'' from the screen menu. Each project maintains its own set of windows and other information.
+
+ Morphic Halos
+ In a morphic project, pressing cmd-click (Mac) or alt-click (Windows) on a graphical object (e.g. a window) will surround it with a constellation of colored circles. These are called "halo handles." Additional clicks will cycle through the halos for the other graphical objects in the nesting structure. If you hold down the Shift key while cmd/alt-clicking, the nested morphs will be traversed from innermost outward. Clicking without the cmd/alt key will dismiss the halo. While the halo is up, letting the cursor linger over one of the halo handles for a few seconds will cause a balloon to pop up with the name of that handle. Three useful handles are the top-left "X" handle (delete), the bottom-right yellow handle (resize), and the brown handle (slide the object within its containing object). Halos allow complex graphical objects to be explored - or even disassembled (using the black halo handle). Usually no harm results from taking apart an object; you can just discard the pieces and create a new one.
+
+ Flaps
+ To enable Flaps, click on the desktop to show the world menu, choose the "Flaps..." menu and "show shared tags". Tabs labeled "Squeak", "Tools", "Supplies", etc., will appear along the edges of the Squeak desktop. Click on any tab to open the corresponding flap. Drag a tab to resize the flap and to relocate the tab. Bring up the halo on any tab and click on its menu handle to be presented with many options relating to the flap. Use the "Flaps..." menu, reached via the desktop menu, to control which flaps are visible and for other flap-related options and assistance.
+
+ Parts Bins
+ You can obtain new objects in many ways. The "Objects Catalog" (choose "objects'' from the world menu or open the objects flap) and several of the standard flaps (e.g. "Tools" and "Supplies") serve as "Parts Bins" the for new objects. Drag any icon you see in a Parts Bin and a fresh copy of the kind of object it represents will appear "in your hand"; click to deposit the new object anywhere you wish. You can also add your own objects to any of the flaps - just drag your object over the tab, wait for the flap to pop open, then drop the object at the desired position in the flap.
+ !!' readStream nextChunkText!
- TheWorldMainDockingBar new squeakUserInterface!
Item was changed:
----- Method: SqueakProjectHelp class>>workingWithSqueak (in category 'pages') -----
workingWithSqueak
^HelpTopic
title: 'Working with Squeak'
icon: (HelpIcons iconNamed: #squeakIcon)
+ contents: 'Starting and Quitting
+ Like most Smalltalks, the machine-executable portion is a relatively small program known as the "virtual machine" (VM). The VM''s job is to provide services from the physical machine to real Smalltalk objects. Services like input and output. The Smalltalk system, including all data and code, is a system of objects, built from the ground up, and interpreted by this virtual computer. This affords Smalltalk system platform portability.
+
+ Smalltalk cannot run without the VM. The VM can''t do anything useful except process Smalltalk systems.
+
+ To start the system, drag the ".image" data file to the VM executable "squeak". There are myriad command-line options for starting the system via the command-line (see squeak --help). By default, the system will open on the screen in a single OS window.
+
+ To quit a Squeak session, choose ''quit'' from the menu bar. If you save, the image file will be overwritten and resume from that place the next time it''s launched.
+
+ The Image File
+ Squeak is an environment built in its own objects from the ground up, including one or more end-user applications. All of the objects in the system -- Classes, Dictionaries, Windows, Customers and other objects that make up the Squeak environment are stored in a binary ".image" file. This is the "object-data file" loaded by the VM when Squeak is launched.
+
+ When an image is started, every object resumes exactly from where it was last saved.
+
+ The Sources File
+ Smalltalk is traditionally includes the source code in the running system. However, keeping multiple copies of the same source code in all images files is wasteful. Therefore, the source code itself is kept in a read-only .sources file and accessed by all images. The image files merely have pointers into this file, which is read on-the-fly to present original source code.
+
+ The code of the base system is stored in the file "SqueakV46.sources". This file does not change except between releases of Squeak. Normally this file should be placed in the folder containing the VM executable.
+
+ The Changes File
+ The purpose of Squeak is to develop new programs and systems. Code changes to the running system are effective immediately. But since multiple images can be running, they cannot all update the .sources file safely. Therefore, each image file is accompanied by a ".changes" file which contains source code changes for that and only that Smalltalk system..
+
+ The changes file is important for project work. It keeps a sequential log of development activity for the purpose of recovering work performed since the last image-save. Any of several events could lead to the need to recover work, including a power-outage or making an erroneous change to code required to keep the system running.
+
+ The changes file does not consume memory space, so Squeak is able to keep a complete history of all program changes. This makes it easy to examine or even reinstate older versions of methods (see ''versions'' option in browser selector pane). This encourages experimentation, since you can easily revert to the original versions of any set of methods.
+
+ In extreme cases where sources and/or changes files are not available, the system can still run, and will automatically decompile the bytecode methods in image memory, if necessary, into readable and editable versions of the original source code (only comments and temporary variable names are lost).
+
+ Transferring Code-Snippets Between Images
+ In addition to the ''save'' command that saves the entire state of the system, the code of individual methods, categories or classes may be ''filed out'' and then filed-in to another image.
+
+ Packages
+ The code of an entire project is encapsulated by a Package. This allows users to share their code with other users. Code of packages are delineated by the categories of their classes, and methods. The Monticello browser is then used to wrap that code into a Package object which can be saved to a Monticello repository at http://ss3.gemtalksystems.com/ss.
+
+ Some projects end up using the resources provided by several packages, resulting in a hierarchy of packages that make up a system. Installer can be used to install such systems.!!
+ ]style[(21 970 14 448 16 396 11 188 16 321 4 1025 41 188 8 52 10 55 2 420)bu,,bu,,bu,,u,,bu,,u,,bu,,bu,,i,,i,!!' readStream nextChunkText!
- contents:
- TheWorldMainDockingBar new workingWithSqueak "avoid duplicate of big string until we fix this"!
Item was added:
+ SqueakProjectHelp subclass: #SqueakReleaseNotes
+ instanceVariableNames: ''
+ classVariableNames: ''
+ poolDictionaries: ''
+ category: 'Help-Squeak-Project'!
Item was added:
+ ----- Method: SqueakReleaseNotes class>>bookName (in category 'accessing') -----
+ bookName
+ ^'Release Notes'!
Item was added:
+ ----- Method: SqueakReleaseNotes class>>pages (in category 'accessing') -----
+ pages
+ ^#(releaseNotes51 releaseNotes50)!
Item was added:
+ ----- Method: SqueakReleaseNotes class>>releaseNotes50 (in category 'pages') -----
+ releaseNotes50
+
+ ^HelpTopic
+ title: '5.0 / 4.6'
+ contents: 'Squeak 5.0
+ Release Notes
+
+ A New Memory Model and Virtual Machine
+
+ Fast Become
+ Squeak 5 introduces a new object model and VM known as "Spur". Presented [1] by Eliot Miranda and Clément Béra at the International Symposium on Memory Management in year 2015, this new VM retains the direct-pointer representation of objects in previous Squeak versions but now without requiring a full scan of the heap for become. This is done by introducing hidden forwarding objects which allow references to be updated lazily as they are encountered. Spur''s innovation is in avoiding explicit read barriers in all common cases.
+
+ Additional Immediate Types
+ The new Spur memory model supports immediate Characters, so that Characters with unicode greater than 255 can be tested via #==, and wide string access is much faster. The 64-bit version, still under development, also provides immediate floats, occupying the middle 8th of the double precision exponent range.
+
+ Simplified and Ready for 64-bit
+ Internally Spur uses a 64-bit object header, a representation shared between the 32-bit and 64-bit versions, and one that is significantly simpler than the three different header sizes used in the previous version. This simplicity means that the JIT now generates code to implement more primitives, in particular new and new:, resulting in significantly higher performance, at the cost of a 15% increase in image size.
+
+ Enhanced Memory Management
+ Spur has a segmented heap, allowing the heap to grow and shrink a segment at a time. It provides per-object pinning to ensure specific objects will not be moved by the garbage collector, hence simplifying the FFI. Spur provides Ephemerons which allow for per-object finalization and the prevention of uncollectable cycles, for example in global property lists like DependentsFields (although this support has yet to be applied to the system).
+
+
+ Squeak now runs on ARM
+
+ As a natural output of the Scratch application on Rasberry Pi project, the Spur VM can now run on the Rasberry Pi.
+
+
+ The Future of Spur
+
+ Work is underway on an innovative adaptive optimizer/speculative inliner, and a 64-bit JIT for x64, and a global incremental mark-sweep collector is planned. See [2].
+
+ [1] -- http://conf.researchr.org/event/ismm-2015/ismm-2015-papers-a-partial-read-b…
+ [2] -- http://www.mirandabanda.org/cogblog/cog-projects/
+ !!
+ ]style[(10 1 13 40 2 11 537 26 313 31 422 26 448 22 119 19 374)a2bFBitstreamVeraSerif#32.0,FBitstreamVeraSans#20.0a2,a2FBitstreamVeraSerif#24.0-,FBitstreamVeraSans#20.0,,b,,b,,b,,b,,FBitstreamVeraSans#20.0,,FBitstreamVeraSans#20.0,!!' readStream nextChunkText!
Item was added:
+ ----- Method: SqueakReleaseNotes class>>releaseNotes51 (in category 'pages') -----
+ releaseNotes51
+
+ ^HelpTopic
+ title: '5.1'
+ contents: 'TBD.'!
Item was added:
+ ----- Method: SqueakToolsHelp class>>fontSizeSummary (in category 'pages') -----
+ fontSizeSummary
+ ^HelpTopic
+ title: 'Font Size Summary'
+ contents: TextStyle fontSizeSummaryContents!
Item was changed:
----- Method: SqueakToolsHelp class>>pages (in category 'accessing') -----
pages
+ ^#(basicDevelopmentTools fontSizeSummary)!
- ^#(basicDevelopmentTools)!
Item was changed:
----- Method: SqueakTutorials class>>pages (in category 'accessing') -----
pages
+ ^#(introduction usefulExpressions)!
- ^#(introduction)!
Item was added:
+ ----- Method: SqueakTutorials class>>usefulExpressions (in category 'pages') -----
+ usefulExpressions
+
+ ^ HelpTopic
+ title: 'Useful Expressions'
+ contents: Utilities standardWorkspaceContents!
Marcel Taeumel uploaded a new version of ST80 to project The Trunk:
http://source.squeak.org/trunk/ST80-mt.214.mcz
==================== Summary ====================
Name: ST80-mt.214
Author: mt
Time: 2 August 2016, 2:20:44.841941 pm
UUID: 982f94ae-277a-1044-b771-10b0360fbfff
Ancestors: ST80-mt.213
HelpBrowser does not work in MVC because there is no tree view. Use StringHolder in a window instead.
=============== Diff against ST80-mt.213 ===============
Item was changed:
----- Method: ScreenController>>openCommandKeyHelp (in category 'menu messages') -----
openCommandKeyHelp
"1/18/96 sw Open a window that explains command-keys"
+ (Smalltalk classNamed: 'SqueakTutorialsCommandKey') ifNotNil: [:cls |
+ StringHolder new
+ contents: cls commandKeyMappings contents;
+ openLabel: 'Command Key Mappings' translated].!
- Utilities openCommandKeyHelp!