tim Rowledge uploaded a new version of Help-Squeak-Project to project The Trunk:
http://source.squeak.org/trunk/Help-Squeak-Project-tpr.52.mcz
==================== Summary ====================
Name: Help-Squeak-Project-tpr.52
Author: tpr
Time: 30 May 2018, 4:33:17.818963 pm
UUID: 04231217-90de-4966-813e-e4c3f23934ce
Ancestors: Help-Squeak-Project-mt.51
Update some help related methods
=============== Diff against Help-Squeak-Project-mt.51 ===============
Item was changed:
----- Method: SqueakHelp class>>introduction (in category 'pages') -----
introduction
"This method was automatically generated. Edit it using:"
+ "SqueakHelp edit: #introduction"
- "a HelpBrowser edit: #introduction"
^HelpTopic
title: 'Welcome'
contents:
+ 'Welcome to Squeak
- 'Welcome to Squeak (http://www.squeak.org)
+ Visit http://www.squeak.org for the lastest information.
- Squeak is an open-source Smalltalk programming system with fast execution environments for all major platforms. It features the Morphic framework, which promotes low effort graphical, interactive application development and maintenance. Many projects have been successfully created with Squeak. They cover a wide range of domains such as education, multimedia, gaming, research, and commerce.
+ Squeak is an open-source Smalltalk programming system available for all major platforms. It features the Morphic framework, which promotes low effort graphical, interactive application development and maintenance. Many projects have been successfully created with Squeak in a wide range of domains such as education, multimedia, gaming, research, and commerce. Squeak is fast, flexible and free.
+
It''s Smalltalk!!!!
Everything is an object. Objects collaborate by exchanging messages to achieve the desired application behavior. The Smalltalk programming language has a concise syntax and simple execution semantics. The Smalltalk system is implemented in itself: Compiler, debugger, programming tools, and so on are all Smalltalk code the user can read and modify. Novice programmers can get started easily and experts can engineer elegant solutions at large.
Morphic UI Framework
All graphical objects are tangible and interactively changeable. This promotes short feedback loops and low-effort application development. Morphic thus leverages the live programming experience of traditional Smalltalk environments from a mainly text-focused domain to a graphical one.
Powerful Tooling
The dynamic Squeak environment provides a variety of tools for browsing, writing, executing, and versioning Smalltalk code. Multiple debugging sessions can be served concurrently. Thanks to Morphic, tool customization can be achieved with reasonable effort.
Fast Virtual Machine
There are several fast Squeak VMs that also support other languages of the Smalltalk family. Meta-tracing, just-in-time compilation, stack-to-register mapping, and aggressive in-line message caching yield efficiency in executing Smalltalk byte code.
Web Development
With frameworks like Seaside and AIDA, Squeak can be a web server. It provides a layered set of abstractions over HTTP and HTML that let you build highly interactive web applications quickly, reusably,` and maintainably.
Multi-Platform Support
+ Squeak supports Windows, Linux (X86, X64 and ARM), and OS X and is preinstalled on C.H.I.P., Raspberry Pi, and OLPC XO.!!
+ ]style[(19 5 1 21 29 399 15 18 6 36 8 87 14 80 8 2 8 2 17 161 20 27 8 254 16 64 8 11 9 6 10 152 20 252 15 22 7 5 4 18 3 164 22 120)a0b,a0,a0b,Rhttp://www.squeak.org;,a0,,i,,Rcode://Object;,,Rcode://MessageSend;,,Rcode://HelpBrowser openForCodeOn: TerseGuideHelp;,,Rcode://Compiler;,,Rcode://Debugger;,,Rcode://Browser;,,i,,Rcode://Morph new openInHand;,,i,,Rcode://ToolSet browse: String selector: #findTokens:;,,Rcode://7/0;,,Rcode://MCWorkingCopyBrowser new show;,,i,,i,,Rhttp://www.seaside.st/;,,Rhttp://www.aidaweb.si/;,,Rcode://WebClient;,,i,!!' readStream nextChunkText!
- Squeak supports Windows, Linux, and OS X and is preinstalled on C.H.I.P., Raspberry Pi, and OLPC XO.!!
- ]style[(18 1 21 1 396 15 18 6 36 8 87 14 80 8 2 8 2 17 161 20 27 8 254 16 64 8 11 9 6 10 152 20 252 15 22 7 5 4 18 3 164 22 101)a0b,a0,Rhttp://www.squeak.org;,a0,,i,,Rcode://Object;,,Rcode://MessageSend;,,Rcode://HelpBrowser openForCodeOn: TerseGuideHelp;,,Rcode://Compiler;,,Rcode://Debugger;,,Rcode://Browser;,,i,,Rcode://Morph new openInHand;,,i,,Rcode://ToolSet browse: String selector: #findTokens:;,,Rcode://7/0;,,Rcode://MCWorkingCopyBrowser new show;,,i,,i,,Rhttp://www.seaside.st/;,,Rhttp://www.aidaweb.si/;,,Rcode://WebClient;,,i,!!' readStream nextChunkText!
Item was changed:
----- Method: SqueakLicenseHelp class>>licenseChange (in category 'pages') -----
licenseChange
+ "This method was automatically generated. Edit it using:"
+ "SqueakLicenseHelp edit: #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).
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: SqueakProjectHelp class>>squeakResourcesOnline (in category 'pages') -----
squeakResourcesOnline
+ "This method was automatically generated. Edit it using:"
+ "SqueakProjectHelp edit: #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-devhttp://dir.gmane.org/gmane.comp.lang.smalltalk.squeak.generalhttp://n4.nabble.com/Squeak-Dev-f45488.html
Squeak-Beginners - The place to ask even the most basic questions
http://lists.squeakfoundation.org/mailman/listinfo/beginnershttp://dir.gmane.org/gmane.comp.lang.smalltalk.squeak.beginnershttp://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!
Item was changed:
+ ----- Method: SqueakReleaseNotes class>>asHelpTopic (in category 'accessing') -----
- ----- Method: SqueakReleaseNotes class>>asHelpTopic (in category 'as yet unclassified') -----
asHelpTopic
^ DirectoryBasedHelpTopic new
directoryEntry: (FileDirectory default entryAt: 'release-notes' ifAbsent: []);
sortBlock: [:t1 :t2 | t1 title >= t2 title];
title: self bookName!
Item was changed:
----- Method: SqueakToolsDebuggerHelp class>>openingTheDebugger (in category 'pages') -----
openingTheDebugger
+ "This method was automatically generated. Edit it using:"
+ "SqueakToolsDebuggerHelp edit: #openingTheDebugger"
^HelpTopic
title: 'Open a Debugger.'
contents: 'A debugger window is opened in response to an unhandled exception condition. Evaluating the expression ''self halt'' in a workspace or as an expression in a method will cause a debugger window to be opened. The debugger provides direct interactive access to the interrupted process.
The debugger permits its interrupted process to be inspected and modified. Source code and variables may be modified interactively, and the process can be stepped through its execution in various ways.'!
Item was changed:
----- Method: SqueakToolsDebuggerHelp class>>usingTheDebugger (in category 'pages') -----
usingTheDebugger
+ "This method was automatically generated. Edit it using:"
+ "SqueakToolsDebuggerHelp edit: #usingTheDebugger"
^HelpTopic
title: 'Debugging Loops.'
contents: 'There are a few ways to get out of a loop. The best way is to just let the loop run.
To do that select the space on your code (while in the Debugger) you want to jump to, right click and select: ''run to here.''
' asText,
(self showForm: #Debugger1),
'
That will take you to the place you clicked on in your code.
There is another trick, loops usually have an index. This is Smalltalk after all. In the case above we just selected this code and selected ''Debug it''
1 to: 100 do: [:i | Transcript show: i asString].
Transcript show: ''done''
While in the outer content evaluating the loop, select i change the value to 100 hit accept and ''bobs your uncle'' the loop is done.
Ok so a bit of a hack but this can be used it to skip over some processing, and since you are debugging and know what you are doing it should be fine.
' asText,
(self showForm: #Debugger2),
'
Proceed is just continue and stop debugging.
Restart will stop debugging at the selected method and restart that method from the beginning.
Into goes into the execution of the next method and shows you what it does.
Over executes the next message and moves over it to the next message.
Through steps you through a block of code, so if you are about to execute a block, this steps you through that block
Full Stack increases the number of levels you see in the upper panel. That normally shows you a subset of the execution stack. Full stack will show you the rest of the stack that called this method.
Where is useful if you click around a method during debugging. It will highlight the code at its execution point. You can also just select the stack method again to do the same thing.
Tally is supposed to tally selected code, but may not be reliable within the debugger. If you want to tally something do it outside a debugger.' asText!
Item was changed:
----- Method: SqueakToolsDebuggerHelp class>>whatIsADebugger (in category 'pages') -----
whatIsADebugger
+ "This method was automatically generated. Edit it using:"
+ "SqueakToolsDebuggerHelp edit: #whatIsADebugger"
^HelpTopic
title: 'What is a Debugger.'
contents: 'A debugger represents the machine state at the time of an interrupted process. It also represent a query path into the state of the process.
The debugger is typically viewed through a window that views the stack of suspended contexts, the code for, and execution point in, the currently selected message, and inspectors on both the receiver of the currently selected message, and the variables in the current context.'!
Item was changed:
----- Method: SqueakTutorialsOnImage class>>theImage (in category 'as yet unclassified') -----
theImage
+ "This method was automatically generated. Edit it using:"
+ "SqueakTutorialsOnImage edit: #theImage"
^HelpTopic
title: 'Working with the Squeak Image'
contents: 'Working with the ecosystem of objects in a Smalltalk image.
The basic tool for this is called an Inspector. Whenever you have an expression, like "3 + 4", you press cmd-i to "inspect it", which opens an inspector on the result. This works in any text area. Try for example inspecting "self" in a class browser, and you will inspect the underlying class object (which the browser shows a high-level view of).
In the Inspector you see the objects referenced by this object (via instance variables or indexed fields) in the left panel. Select any of them and choose "inspect" from the context menu (or press cmd-i again). This way you can inspect all the objects in the system.
A more modern tool than the Inspector (which was around 40 years ago already) is the Object Explorer. It presents you a tree view of an object and its "children", which again are the instance variables and indexed fields of the object. Open it with cmd-shift-i (or "explore" in the context menu).
You can also do the reverse. If you choose "objects pointing to this value" you get an inspector showing all the objects that directly point to this object. Similarly there is a "reverse explorer", which you can open by selecting "explore pointers".
There are two roots to all the objects in the system:
Smalltalk specialObjectsArray
which basically holds everything the Virtual Machine needs to know about, and in turn almost every object in the whole image, and
thisContext
which is the current execution context, holding onto temporary objects. When a garbage collection is performed, any object not reachable form either of these two roots is removed from memory.
An "interesting" global object to explore is
Project current
which holds your current workspace, in particular
Project current world
, the root of all morphs in the world. And of course
Smalltalk
itself is the dictionary that holds all global objects, including all classes (unless they are defined in a non-global environment).
There is also a low-level way to enumerate all objects in memory. "self someObject" will return the very first object in memory (which happens to be the nil object), and "anObject nextObject" will return the next one:
| object count |
count := 0.
object := self someObject.
[0 == object]
whileFalse: [count := count + 1.
object := object nextObject].
count
Interestingly, this also finds objects that are due to be garbage-collected. For example, if you accidentally closed a text window, there is a good chance its contents will still be in memory, and can be retrieved using an expression like
ByteString allInstances last: 10
This makes use of the someInstance/nextInstance methods, which are similar to someObject/nextObject, but restricted to instances of one class only.
'!
Item was changed:
----- Method: SqueakTutorialsOnXML class>>dataRetrieval (in category 'pages') -----
dataRetrieval
+ "This method was automatically generated. Edit it using:"
+ "SqueakTutorialsOnXML edit: #dataRetrieval"
^HelpTopic
title: 'Retrieving XML data'
contents:
'Retrieving data from XML documents is simple and easy in Squeak Smalltalk. This tutorial demonstrates the fundamentals with a straightforward approach where code can be tested right away either here or in a Workspace window. The beauty of Squeak Smalltalk resides in the possibility to evaluate, inspect, print and debug code anywhere and this window is no different.
This tutorial demonstrates how to...
* retrieve an XML document from the World Wide Web
* instantiate an XML document class
* inspect and understand the content of an XML document
* retrieve and display values from specific XML tags
Retrieve an XML document from the World Wide Web
There are many manners to retrieve data from the World Wide Web in Squeak Smalltalk. HTTPClient is among them and allows to download files in all simplicity. Select the following code snippet and inspect it (press alt-i). An Inspect window will open with the document loaded in memory. The result is a MIMEDocument object.
HTTPClient httpGetDocument: ''http://source.squeak.org/trunk/feed.rss''.
TIP: Select HTTPClient and browse it (press alt-b) to open a System Browser window on its class. HTTPClient does not have instance methods but it has class methods. Click on class to see class methods.
Instantiate an XML Document
An instance of MIMEDocument will not allow to retrieve XML data in a comprehensive manner because it does not understand the nature of XML. For this reason, it is necessary to parse the content of MIMEDocument using XMLDOMParser. XMLDOMParser>>parseDocumentFrom: requires a stream as a parameter and ReadStream will be used for this purpose. The following code snippet instantiates an XMLDocument using the content of the downloaded file.
| doc |
doc := HTTPClient httpGetDocument: ''http://source.squeak.org/trunk/feed.rss''.
XMLDOMParser parseDocumentFrom: (ReadStream on: (doc content)).
Inspect and understand the content of an XML document
XML is a flexible document format and it is necessary to understand how each given XML file is structured in order to properly search, retrieve and manipulate data. Inspecting values is critical in a dynamic programming language and environment, such as Squeak Smalltalk. Select the previous code snippet and inspect it (press alt-i).
Unfortunately, the Inspect window does not reveal a lot about the XML structure of the downloaded file. Select the previous code snippet once again and explore it (press alt and the capital letter i). An Explorer window will open with a tree outline on the instance of XMLDocument.
The Inspect and Explorer windows tell a lot about an XMLDocument. The sections are instance variables and their values are displayed aside. In the Explorer window, unfold elementsAndContents. Unfold other sections as deemed necessary to understand the XML format and the data available.
The gibberish coding is about to become clear. Open a Browser window from the world menu and right click in the first pane, select find class (press alt-f) and type XMLDocument to search for its class, or select the class name and browse it (press alt-b). However, it is suggested to read more about XMLParser and XMLParserTest first.
Retrieve and display values from specific XML tags
The downloaded XML file contains a list of items which are denoted by the tag name "item". The Explorer window revealed the content of interest is located at the array index 1 of the elementsAndContents, which can be accessed through XMLDocument>>root.
TIP: Some XML documents have additional components contained within its file, such as XMLPI (XML Processing Instructions). For this reason, the root may lead to this rather than the data which will be indexed at 2 or more. It is necessary to use XMLNodeWithElements>>elements, e.g. (xml elements at: 2), in order to access subsequent data.
The following code snippet will display items in a Transcript window. Open a Transcript window using the world menu before selecting and executing the code. Select the code snippet and execute it (press alt-d).
| doc xml |
doc := HTTPClient httpGetDocument: ''http://source.squeak.org/trunk/feed.rss''.
xml := XMLDOMParser parseDocumentFrom: (ReadStream on: (doc content)).
xml root tagsNamed: #item do: [:e |
Transcript show: (e asString); cr.
].
An XML item looks like this:
<item>
<title>HelpSystem-Core-tbn.46.mcz</title>
<link>http://source.squeak.org/trunk.html</link>
<description>throw out pharo specific stuff since we are now integrated in squeak (and pharo too where squeak specific stuff was removed)</description>
<pubDate>Sun, 02 May 2010 20:23:49 +0000</pubDate>
<author>Torsten Bergmann <Torsten.Bergmann(a)astares.de></author>
<category>The Trunk</category>
<enclosure length="27288" type="application/x-monticello" url="http://source.squeak.org/trunk/HelpSystem-Core-tbn.46.mcz"/>
<guid isPermaLink="false"/> </item>
The following code snippet uses information learned, retrieves each comment and displays them in a Transcript window. Notice an author can have a nil value and is handled accordingly.
| doc xml |
doc := HTTPClient httpGetDocument: ''http://source.squeak.org/trunk/feed.rss''.
xml := XMLDOMParser parseDocumentFrom: (ReadStream on: (doc content)).
xml root tagsNamed: #item do: [:e |
Transcript
show: ''Date: '', ((e firstTagNamed: #pubDate) contentString); cr;
show: ''Title: '', ((e firstTagNamed: #title) contentString); cr;
show: ''Author: '',
(((e firstTagNamed: #author) notNil)
ifTrue: [(e firstTagNamed: #author) contentString]
ifFalse: ['''']); cr;
show: ''Description: '', ((e firstTagNamed: #description) contentString); cr; cr.
].
An item will now look like:
Date: Sun, 02 May 2010 20:23:49 +0000
Title: HelpSystem-Core-tbn.46.mcz
Author: Torsten Bergmann <Torsten.Bergmann(a)astares.de>
Description: throw out pharo specific stuff since we are now integrated in squeak (and pharo too where squeak specific stuff was removed)
'!
tim Rowledge uploaded a new version of Help-Squeak-CorePackages to project The Trunk:
http://source.squeak.org/trunk/Help-Squeak-CorePackages-tpr.4.mcz
==================== Summary ====================
Name: Help-Squeak-CorePackages-tpr.4
Author: tpr
Time: 30 May 2018, 4:31:59.351512 pm
UUID: 0db43b83-5c4c-4363-aa49-de18afd92aa3
Ancestors: Help-Squeak-CorePackages-mt.3
Update some help related methods
=============== Diff against Help-Squeak-CorePackages-mt.3 ===============
Item was changed:
----- Method: SqueakFurtherCorePackagesHelp class>>shout (in category 'pages') -----
shout
"This method was automatically generated. Edit it using:"
+ "SqueakFurtherCorePackagesHelp edit: #introduction"
- "ShoutHelp edit: #introduction"
^HelpTopic
title: 'Shout'
contents:
'The Shout package provides parsing and syntax highlighting for Smalltalk code. It can be used to create alternative highlighting mechanisms. !!
]style[(141)f1!!' readStream nextChunkText!
Item was changed:
----- Method: SqueakFurtherCorePackagesHelp class>>st80 (in category 'pages') -----
st80
"This method was automatically generated. Edit it using:"
+ "SqueakFurtherCorePackagesHelp edit: #st80"
- "ST80Help edit: #introduction"
^HelpTopic
title: 'ST80'
contents:
'The ST80 package bundles the MVC tool implementations in Squeak. They can be used through opening a MVC project. This is useful for example for debugging Morphic projects.!!
]style[(171)f1!!' readStream nextChunkText!
tim Rowledge uploaded a new version of Services-Base to project The Trunk:
http://source.squeak.org/trunk/Services-Base-tpr.64.mcz
==================== Summary ====================
Name: Services-Base-tpr.64
Author: tpr
Time: 30 May 2018, 3:37:21.714582 pm
UUID: 45b99275-ad3f-4d0c-b83e-70f538baa1d7
Ancestors: Services-Base-dtl.63
Fix the magic-string to be compiled as #initialize to refer to ServiceRegistry current. This ought to have been causing errors since the class does not implement #buildProvider:
=============== Diff against Services-Base-dtl.63 ===============
Item was changed:
----- Method: ServiceProvider class>>newProviderFor: (in category 'provider creation') -----
newProviderFor: packageName
| cls clsName |
clsName := ((packageName copyWithout: $-) , 'ServiceProvider') asSymbol.
cls := self subclass: clsName
instanceVariableNames: ''
classVariableNames: ''
poolDictionaries: ''
category: packageName.
cls class compile: 'initialize
+ ServiceRegistry current buildProvider: self new' classified: 'initialization'.
- ServiceRegistry buildProvider: self new' classified: 'initialization'.
^ cls!
Tobias Pape uploaded a new version of Kernel to project The Trunk:
http://source.squeak.org/trunk/Kernel-topa.1173.mcz
==================== Summary ====================
Name: Kernel-topa.1173
Author: topa
Time: 30 May 2018, 4:54:31.858379 pm
UUID: 1327e5ed-7d9c-48d4-8ff9-3d6a41a4ce73
Ancestors: Kernel-mt.1172
SubclassResp #asBit to Boolean (All other Boolean-subclass methods are overrides anyway)
For convenience, add #asNumber/#asInteger for the most common interpretation of booleans as numbers.
=============== Diff against Kernel-mt.1172 ===============
Item was added:
+ ----- Method: Boolean>>asBit (in category 'printing') -----
+ asBit
+ "My numerical interpretation, as one-bit number. This extends nicely to n-bit numbers,
+ as long as they treat 0 as false, and anything else as true"
+ ^ self subclassResponsibility!
Item was added:
+ ----- Method: Boolean>>asInteger (in category 'converting') -----
+ asInteger
+ "It is sufficient to treat this boolean as bit so as to interpret it as a number"
+ ^ self asBit!
Item was added:
+ ----- Method: Boolean>>asNumber (in category 'converting') -----
+ asNumber
+ "It is sufficient to treat this boolean as bit so as to interpret it as a number"
+ ^ self asBit!
tim Rowledge uploaded a new version of Help-Squeak-CorePackages to project The Trunk:
http://source.squeak.org/trunk/Help-Squeak-CorePackages-tpr.2.mcz
==================== Summary ====================
Name: Help-Squeak-CorePackages-tpr.2
Author: tpr
Time: 29 May 2018, 7:34:41.027517 pm
UUID: 87e621a8-9b9a-4c33-ab79-61bb8e3d6b7c
Ancestors: Help-Squeak-CorePackages-pre.1
Minor cleanups for the core package help classes
=============== Diff against Help-Squeak-CorePackages-pre.1 ===============
Item was added:
+ ServiceProvider subclass: #HelpSqueakCorePackagesServiceProvider
+ instanceVariableNames: ''
+ classVariableNames: ''
+ poolDictionaries: ''
+ category: 'Help-Squeak-CorePackages'!
Item was added:
+ ----- Method: HelpSqueakCorePackagesServiceProvider class>>initialize (in category 'initialization') -----
+ initialize
+ ServiceRegistry buildProvider: self new!
Item was changed:
CustomHelp subclass: #SqueakCorePackagesHelp
instanceVariableNames: ''
classVariableNames: ''
poolDictionaries: ''
category: 'Help-Squeak-CorePackages'!
+
+ !SqueakCorePackagesHelp commentStamp: 'tpr 5/29/2018 17:19' prior: 0!
+ SqueakCorePackagesHelp is an attempt at gathering some important core classes together for the Help system; with the two subclasses it kinda-sorta pulls together the barest of package doc.
+ It's arguable whether this really works out very well; perhaps a better organisation can be found?!
Item was changed:
+ ----- Method: SqueakCorePackagesHelp class>>bookName (in category 'accessing') -----
- ----- Method: SqueakCorePackagesHelp class>>bookName (in category 'as yet unclassified') -----
bookName
^ 'Core Packages'!
Item was changed:
+ ----- Method: SqueakCorePackagesHelp class>>graphics (in category 'pages') -----
- ----- Method: SqueakCorePackagesHelp class>>graphics (in category 'as yet unclassified') -----
graphics
"This method was automatically generated. Edit it using:"
"SqueakCorePackagesHelp edit: #graphics"
^(HelpTopic
title: 'Graphics'
contents:
'This package includes core classes for Smalltalk graphic objects as well as facilities and applications for operating on graphic objects. Key classes include Form and BitBlt.
It further includes classes for rendering fonts and reading png, gif, or jpeg files.!!
]style[(158 4 5 6 87),dForm browse;;,,dBitBlt browse;;,!!' readStream nextChunkText)
key: #graphics!
Item was changed:
+ ----- Method: SqueakCorePackagesHelp class>>pages (in category 'accessing') -----
- ----- Method: SqueakCorePackagesHelp class>>pages (in category 'as yet unclassified') -----
pages
+ ^ self class methodsInCategory: #pages!
- ^ self class selectors copyWithoutAll: #(bookName pages)!
Item was changed:
+ ----- Method: SqueakFurtherCorePackagesHelp class>>balloonPackage (in category 'pages') -----
- ----- Method: SqueakFurtherCorePackagesHelp class>>balloonPackage (in category 'as yet unclassified') -----
balloonPackage
"This method was automatically generated. Edit it using:"
"SqueakFurtherCorePackagesHelp edit: #balloonPackage"
^(HelpTopic
title: 'Balloon'
contents:
'The Balloon package provides an engine for complex 2-D graphic objects and fast 2-D graphics rendering including anti-aliasing. It was originally written to render Flash. The main interface is BalloonCanvas which is used to render Morphs using the BalloonEngine. It also provides the FillStyle classes which enable gradient or form fill styles for Morphs.
It has nothing to do with the Balloon help concept which shows help texts on mouse over.!!
]style[(193 13 239),dBalloonCanvas browse;;,!!' readStream nextChunkText)
key: #balloonPackage!
Item was changed:
+ ----- Method: SqueakFurtherCorePackagesHelp class>>bookName (in category 'accessing') -----
- ----- Method: SqueakFurtherCorePackagesHelp class>>bookName (in category 'as yet unclassified') -----
bookName
^ 'Further'!
Item was changed:
+ ----- Method: SqueakFurtherCorePackagesHelp class>>commandLine (in category 'pages') -----
- ----- Method: SqueakFurtherCorePackagesHelp class>>commandLine (in category 'as yet unclassified') -----
commandLine
"This method was automatically generated. Edit it using:"
"SqueakFurtherCorePackagesHelp edit: #commandLine"
^(HelpTopic
title: 'CommandLine'
contents:
'The CommandLine package provides classes for running Squeak in headless mode while dealing with events requiring user input. Essentially, it introduces a special ToolSet (CommandLineToolSet) which handles tool requests.!!
]style[(162 7 2 18 30),dToolSet browse;;,,dCommandLineToolSet browse;;,!!' readStream nextChunkText)
key: #commandLine!
Item was changed:
+ ----- Method: SqueakFurtherCorePackagesHelp class>>multilingual (in category 'pages') -----
- ----- Method: SqueakFurtherCorePackagesHelp class>>multilingual (in category 'as yet unclassified') -----
multilingual
"This method was automatically generated. Edit it using:"
"SqueakFurtherCorePackagesHelp edit: #multilingual"
^(HelpTopic
title: 'Multilingual'
contents:
'The Multilingual package adds support for multiple languages to Squeak. This includes the capabilities to import text in different encodings (think copy-and-paste), and render all kinds of fonts.
An interesting multilingual method of the String class is #encodedCharSetAt:.
!!' readStream nextChunkText)
key: #multilingual!
Item was changed:
+ ----- Method: SqueakFurtherCorePackagesHelp class>>nebraska (in category 'pages') -----
- ----- Method: SqueakFurtherCorePackagesHelp class>>nebraska (in category 'as yet unclassified') -----
nebraska
"This method was automatically generated. Edit it using:"
"SqueakFurtherCorePackagesHelp edit: #nebraska"
^(HelpTopic
title: 'Nebraska'
contents:
'Nebraska is a toolkit for building remote interactions with Morphic in Squeak. It is modelled somewhat after Kansas, although as yet it''s a much simpler system. There is a shared world on some server on a network, and other people can connect to that world from afar. Whenever the shared world tries to draw to its screen, it sends drawing commands across the network. Whenever a user tries to perform a mouse or keyboard interaction, those interactions are forwarded to the server where a RemoteControlledHand acts on their behalf.
See also http://wiki.squeak.org/squeak/1356!!
]style[(543 34),Rhttp://wiki.squeak.org/squeak/1356;!!' readStream nextChunkText)
key: #nebraska!
Item was removed:
- ----- Method: SqueakFurtherCorePackagesHelp class>>pages (in category 'as yet unclassified') -----
- pages
-
- ^ self class selectors copyWithoutAll: #(bookName pages)!
Item was changed:
+ ----- Method: SqueakFurtherCorePackagesHelp class>>protocols (in category 'pages') -----
- ----- Method: SqueakFurtherCorePackagesHelp class>>protocols (in category 'as yet unclassified') -----
protocols
"This method was automatically generated. Edit it using:"
"SqueakFurtherCorePackagesHelp edit: #protocols"
^(HelpTopic
title: 'Protocols'
contents:
'This package deals with vocabularies as they are used in Etoys. A vocabulary is the set of words understood by an object when viewed from Etoys. You can see examples of vocabularies in methods named ''additionsTo[some vocabulary category name]''.
Most of the methods behind a vocabulary term are implemented in Player which then often forward them to an implementation in its costume (often a Morph).
See also: http://wiki.squeak.org/squeak/3944!!
]style[(411 34),Rhttp://wiki.squeak.org/squeak/3944;!!' readStream nextChunkText)
key: #protocols!
Item was changed:
+ ----- Method: SqueakFurtherCorePackagesHelp class>>shout (in category 'pages') -----
- ----- Method: SqueakFurtherCorePackagesHelp class>>shout (in category 'as yet unclassified') -----
shout
"This method was automatically generated. Edit it using:"
"ShoutHelp edit: #introduction"
^HelpTopic
title: 'Shout'
contents:
'The Shout package provides parsing and syntax highlighting for Smalltalk code. It can be used to create alternative highlighting mechanisms. !!
]style[(141)f1!!' readStream nextChunkText!
Item was changed:
+ ----- Method: SqueakFurtherCorePackagesHelp class>>st80 (in category 'pages') -----
- ----- Method: SqueakFurtherCorePackagesHelp class>>st80 (in category 'as yet unclassified') -----
st80
"This method was automatically generated. Edit it using:"
"ST80Help edit: #introduction"
^HelpTopic
title: 'ST80'
contents:
'The ST80 package bundles the MVC tool implementations in Squeak. They can be used through opening a MVC project. This is useful for example for debugging Morphic projects.!!
]style[(171)f1!!' readStream nextChunkText!
Item was removed:
- ----- Method: SqueakUsefulCorePackagesHelp class>>pages (in category 'as yet unclassified') -----
- pages
-
- ^ self class selectors copyWithoutAll: #(bookName pages)!
Item was changed:
+ ----- Method: SqueakUsefulCorePackagesHelp class>>regex (in category 'pages') -----
- ----- Method: SqueakUsefulCorePackagesHelp class>>regex (in category 'as yet unclassified') -----
regex
"This method was automatically generated. Edit it using:"
"SqueakUsefulCorePackagesHelp edit: #regex"
^(HelpTopic
title: 'Regex'
contents:
'Regex provides a regex matching engine. It is mainly used through the interface exposed on String objects. See the *Regex-Core category on String.
For the syntax of Squeak regular expressions see: RxParser class>>#a:introduction: and the subsequent methods on RxParser class. For more involved usages of regular expressions see the Regex-Core class category.!!
]style[(139 6 53 32 129),dString browse;;,,LRxParser class>>#a:introduction:;,!!' readStream nextChunkText)
key: #regex!
Item was changed:
+ ----- Method: SqueakUsefulCorePackagesHelp class>>squeakMap (in category 'pages') -----
- ----- Method: SqueakUsefulCorePackagesHelp class>>squeakMap (in category 'as yet unclassified') -----
squeakMap
"This method was automatically generated. Edit it using:"
"SqueakUsefulCorePackagesHelp edit: #squeakMap"
^(HelpTopic
title: 'SM'
contents:
'This package contains the model and the UI of SqueakMap, which is a repository for packages and applications in Squeak. You can access the SqueakMap catalog from the Apps menu item.
Information on how to use SqueakMap can be found here: http://wiki.squeak.org/squeak/2726
The server resides at: http://http://map.squeak.org/
You can get an account to publish packages at: http://map.squeak.org/newaccount!!' readStream nextChunkText)
key: #squeakMap!
Item was changed:
+ ----- Method: SqueakUsefulCorePackagesHelp class>>sunit (in category 'pages') -----
- ----- Method: SqueakUsefulCorePackagesHelp class>>sunit (in category 'as yet unclassified') -----
sunit
"This method was automatically generated. Edit it using:"
"SqueakUsefulCorePackagesHelp edit: #sunit"
^(HelpTopic
title: 'SUnit and SUnitGUI'
contents:
'The SUnit package provides testing abstractions for unit tests. These comply to the XUnit testing model.
The common use case is to subclass TestCase. However, SUnit-Extensions also contains TestCases for special use cases. The rest of the API is explained in SUnit-Tests.
SUnitGUI contains the definition of the SUnit TestRunner which you can find in the world menu or the docking bar under Tools.!!
]style[(141 8 250),Rcode://TestCase;,!!' readStream nextChunkText)
key: #sunit!
Item was changed:
+ ----- Method: SqueakUsefulCorePackagesHelp class>>toolBuilder (in category 'pages') -----
- ----- Method: SqueakUsefulCorePackagesHelp class>>toolBuilder (in category 'as yet unclassified') -----
toolBuilder
"This method was automatically generated. Edit it using:"
"SqueakUsefulCorePackagesHelp edit: #toolBuilder"
^(HelpTopic
title: 'ToolBuilder'
contents:
'ToolBuilder provides means to describe graphical user interfaces independently from the actual graphics framework used (e.g. MVC or Morphic). Examples of tools built with it are the Debugger, the system browser, or the monticello repository browser.
To read about how to build tools start reading the ToolBuilder class comment.!!
]style[(182 8 112 11 15)f1,dDebugger browse;;,f1,LToolBuilder Comment;,f1!!' readStream nextChunkText)
key: #toolBuilder!
Item was changed:
+ ----- Method: SqueakUsefulCorePackagesHelp class>>traitsPage (in category 'pages') -----
- ----- Method: SqueakUsefulCorePackagesHelp class>>traitsPage (in category 'as yet unclassified') -----
traitsPage
"This method was automatically generated. Edit it using:"
"SqueakUsefulCorePackagesHelp edit: #traitsPage"
^(HelpTopic
title: 'Traits'
contents:
'Traits are an additional composition and reuse concept in Squeak allowing sideways composition of behavior. Traits are similar to MixIns. You can read about them here: http://scg.unibe.ch/archive/papers/Scha03aTraits.pdf!!
]style[(168 52)f1,Rhttp://scg.unibe.ch/archive/papers/Scha03aTraits.pdf;!!' readStream nextChunkText)
key: #traitsPage!
Item was changed:
+ ----- Method: SqueakUsefulCorePackagesHelp class>>xml (in category 'pages') -----
- ----- Method: SqueakUsefulCorePackagesHelp class>>xml (in category 'as yet unclassified') -----
xml
"This method was automatically generated. Edit it using:"
"SqueakUsefulCorePackagesHelp edit: #xml"
^(HelpTopic
title: 'XML'
contents:
'This package provides classes for parsing XML files. You can implement your own Parser by subclassing the XMLParser class.!!
]style[(106 9 7)f1,dXMLParser browse;;,f1!!' readStream nextChunkText)
key: #xml!
Levente Uzonyi uploaded a new version of SUnit to project The Trunk:
http://source.squeak.org/trunk/SUnit-ul.112.mcz
==================== Summary ====================
Name: SUnit-ul.112
Author: ul
Time: 28 May 2018, 9:56:22.231424 pm
UUID: 8ece3c29-1858-4d1b-9869-12f882db4a3b
Ancestors: SUnit-tpr.111
ClassFactoryForTestCase generates class names ending with random character sequences to significantly decrease the chance of name collisions among the generated classes.
See this thread for further explanation: http://lists.squeakfoundation.org/pipermail/squeak-dev/2018-May/198941.html
=============== Diff against SUnit-tpr.111 ===============
Item was changed:
----- Method: ClassFactoryForTestCase>>newName (in category 'creating') -----
newName
+
+ ^String new: 23 + 22 streamContents: [ :stream |
+ | random |
+ stream nextPutAll: 'ClassForTestToBeDeleted'.
+ random := ThreadSafeRandom value.
+ "62 possible values, 5.95 bits / iteration, 22 iterations => more than 128 bits"
+ 22 timesRepeat: [
+ stream nextPut: ('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789' atRandom: random) ] ]!
- | postFix |
- postFix := (self createdClasses size + 1) printString.
- ^#ClassForTestToBeDeleted, postFix!
tim Rowledge uploaded a new version of ToolBuilder-Morphic to project The Trunk:
http://source.squeak.org/trunk/ToolBuilder-Morphic-tpr.219.mcz
==================== Summary ====================
Name: ToolBuilder-Morphic-tpr.219
Author: tpr
Time: 28 May 2018, 10:51:16.292529 am
UUID: e9c527a5-216d-4d62-8020-0592a535118a
Ancestors: ToolBuilder-Morphic-mt.218
Correct class comment for DirectoryChooserDialog. Add method to provide Project load/save directory choosing.
=============== Diff against ToolBuilder-Morphic-mt.218 ===============
Item was changed:
FileAbstractSelectionDialog subclass: #DirectoryChooserDialog
instanceVariableNames: ''
classVariableNames: ''
poolDictionaries: ''
category: 'ToolBuilder-Morphic-Tools'!
+ !DirectoryChooserDialog commentStamp: 'tpr 4/2/2018 09:52' prior: 0!
+ A DirectoryChooserDialog is a modal dialog to allow choosing a directory. The actual directory chosen is returned, or nil if no selection was made.
- !DirectoryChooserDialog commentStamp: 'tpr 12/21/2017 11:32' prior: 0!
- A DirectoryChooserDialog is a modal dialog to allow choosing a directory. The full directory name is returned, or nil if no selection was made.
Normal usage would be
+ myDirectory := DirectoryChooserDialog openOn: myApplicationDefaultDirectory label: 'Choose the directory to use'
- myDirname := DirectoryChooserDialog openOn: myApplicationDefaultDirectory label: 'Choose the directory to use'
!
Item was added:
+ ----- Method: DirectoryChooserDialog class>>findAFolderForProject:label: (in category 'instance creation') -----
+ findAFolderForProject: aProject label: labelString
+ "Select a directory for either saving or loading a project file"
+ "Temporary simple version without the 'interesting' blue ui stuff
+ See FileList2 class>>#modalFolderSelectorForProject: for the full horror"
+ ^self openOn: FileDirectory default label: labelString!
Marcel Taeumel uploaded a new version of System to project The Trunk:
http://source.squeak.org/trunk/System-mt.1031.mcz
==================== Summary ====================
Name: System-mt.1031
Author: mt
Time: 28 May 2018, 10:51:12.13037 am
UUID: 3c6fdb2a-dba4-d140-8797-7ba73b412ba1
Ancestors: System-mt.1030
Removes hard-coded 'UserObjects' category via method call.
=============== Diff against System-mt.1030 ===============
Item was changed:
----- Method: SmalltalkImage>>shrink (in category 'shrinking') -----
shrink
"Clean up everything we know how to clean up that can be restored."
"Prepare unloading"
self zapMVCprojects.
Flaps disableGlobalFlaps: false.
self unloadReloadablePackages.
"Post-unload aggressive cleanup"
Smalltalk cleanUp: true.
+ SystemOrganization removeSystemCategory: Object categoryForUniclasses.
- SystemOrganization removeSystemCategory: 'UserObjects'.
Smalltalk at: #ScheduledControllers ifPresent: [Smalltalk at: #ScheduledControllers put: nil].
Smalltalk garbageCollect!