Andreas Raab uploaded a new version of Morphic to project The Trunk:
http://source.squeak.org/trunk/Morphic-ar.405.mcz
==================== Summary ====================
Name: Morphic-ar.405
Author: ar
Time: 29 March 2010, 9:26:50.478 pm
UUID: a7b0717c-c4d5-544e-b5cc-ba5abb09d577
Ancestors: Morphic-ar.404
Fix smartSearch in the search bar. When having an exact hit on a class name it would browse the metaclass instead of the class itself.
=============== Diff against Morphic-ar.404 ===============
Item was changed:
----- Method: SearchBarMorph>>smartSearch (in category 'search') -----
smartSearch
"Take the user input and perform an appropriate search"
| input |
input := self contents asString ifEmpty:[^self].
+ (Smalltalk bindingOf: input) ifNotNil:[:assoc| | global |
- (Smalltalk bindingOf: input) ifNotNil:[:assoc|
"It's a global or a class"
+ global := assoc value.
+ ^ToolSet browse: (global isBehavior ifTrue:[global] ifFalse:[global class]) selector: nil.
- ^ToolSet browse: assoc value class selector: nil.
].
(SystemNavigation new allImplementorsOf: input asSymbol) ifNotEmpty:[:list|
^SystemNavigation new
browseMessageList: list
name: 'Implementors of ' , input
].
input first isUppercase ifTrue:[
(Utilities classFromPattern: input withCaption: '') ifNotNil:[:aClass|
^ToolSet browse: aClass selector: nil.
].
] ifFalse:[
^ToolSet default browseMessageNames: input
].
"Not found"
Beeper beepPrimitive.!
Andreas Raab uploaded a new version of Kernel to project The Trunk:
http://source.squeak.org/trunk/Kernel-ar.436.mcz
==================== Summary ====================
Name: Kernel-ar.436
Author: ar
Time: 29 March 2010, 9:02:14.348 pm
UUID: d85068dc-e213-1149-81df-1f71ed09846c
Ancestors: Kernel-ar.435
Fix failing traits condenseChanges test. Since we do not share compiled methods, moving *all* trait methods (instead of just 'local' ones) is CORRECT behavior.
=============== Diff against Kernel-ar.435 ===============
Item was changed:
----- Method: ClassDescription>>moveChangesTo: (in category 'fileIn/Out') -----
moveChangesTo: newFile
"Used in the process of condensing changes, this message requests that
the source code of all methods of the receiver that have been changed
should be moved to newFile."
| changes |
changes := self methodDict keys select: [:sel |
+ (self compiledMethodAt: sel) fileIndex > 1].
- (self compiledMethodAt: sel) fileIndex > 1 and: [
- (self includesLocalSelector: sel) or: [
- (self compiledMethodAt: sel) sendsToSuper]]].
self
fileOutChangedMessages: changes
on: newFile
moveSource: true
toFile: 2!
Andreas Raab uploaded a new version of Tests to project The Trunk:
http://source.squeak.org/trunk/Tests-ar.66.mcz
==================== Summary ====================
Name: Tests-ar.66
Author: ar
Time: 29 March 2010, 9:00:35.581 pm
UUID: f10906a2-7e5d-0e41-a82e-031645e0d329
Ancestors: Tests-ul.65
Add two tests for FileStream behavior. One that I thought was broken (but is not) and one that is broken.
=============== Diff against Tests-ul.65 ===============
Item was added:
+ ----- Method: FileStreamTest>>testNextChunkOutOfBounds (in category 'as yet unclassified') -----
+ testNextChunkOutOfBounds
+ "Ensure that nextChunkPut:/nextChunk works properly on a caching file"
+ | file text read |
+ [file := FileStream forceNewFileNamed: 'testNextChunkOutOfBounds'.
+ text := 'this is a chunkful of text'.
+ file nextChunkPut: text.
+ read := [file position: 999999; nextChunkText] valueWithin: 1 seconds onTimeout:[nil].
+ self assert: read = ''.
+ ] ensure:[file close. FileDirectory default deleteFileNamed: file name ifAbsent:[]].!
Item was added:
+ ----- Method: FileStreamTest>>testCachingNextChunkPut (in category 'as yet unclassified') -----
+ testCachingNextChunkPut
+ "Ensure that nextChunkPut:/nextChunk works properly on a caching file"
+ | file text read |
+ [file := FileStream forceNewFileNamed: 'testCachingNextChunkPut'.
+ text := 'this is a chunkful of text'.
+ file nextChunkPut: text.
+ read := [file position: 0; nextChunkText] valueWithin: 1 seconds onTimeout:[''].
+ self assert: read = text.
+ ] ensure:[file close. FileDirectory default deleteFileNamed: file name ifAbsent:[]].!
Andreas Raab uploaded a new version of TraitsTests to project The Trunk:
http://source.squeak.org/trunk/TraitsTests-ar.8.mcz
==================== Summary ====================
Name: TraitsTests-ar.8
Author: ar
Time: 29 March 2010, 8:58:51.65 pm
UUID: a365e4f0-6365-a346-83f4-764ff185d2b8
Ancestors: TraitsTests-ul.7
Add a test for the behavior of traits during condenseChanges.
=============== Diff against TraitsTests-ul.7 ===============
Item was added:
+ ----- Method: TraitFileOutTest>>testCondenseChanges (in category 'testing') -----
+ testCondenseChanges
+ "Tests moveChangesTo: in the face of aliases and other trait manipulations"
+ | file classOrTrait originals copy |
+ file := FileStream forceNewFileNamed: 'TraitFileOutTest.changes'.
+ [originals := IdentityDictionary new.
+ #(t1 t2 t3 t4 t5 t6 c1 c2) do:[:clsName|
+ classOrTrait := self perform: clsName.
+ classOrTrait methodsDo:[:each|
+ originals at: each put: each getSourceFromFile.
+ ].
+ file setToEnd.
+ classOrTrait moveChangesTo: file.
+ originals keysAndValuesDo:[:method :source|
+ "we need the upfront assertion to avoid a current bug
+ in #nextChunk when using out of bounds indexes"
+ self assert: method filePosition < file size.
+ copy := file position: method filePosition; nextChunkText.
+ self assert: copy = source.
+ ].
+ ].
+ ] ensure:[
+ file close.
+ FileDirectory default deleteFileNamed: file name ifAbsent:[].
+ ].!
Folks -
In accordance with the proposed release schedule [1] I've created an
updated trunk image and associated release candidate. Also in accordance
with the schedule I am declaring a FEATURE FREEZE on the trunk.
What does that mean? It means that for the time until the release only
identified FIXES should be posted, not additional features. Helping to
get the release out of the door will reopen the trunk sooner rather than
later so please help wherever you can.
As a further consequence, I have advanced the status of the image to
BETA for indicating that we're code complete and have no pending
features. The trunk image and candidate build are available here:
http://ftp.squeak.org/trunk/Squeak4.1-9850-beta.ziphttp://ftp.squeak.org/trunk/4.1rc1/
As always, when you make a build there are some issues that come up,
here are a two that I'd like to address:
1) How should the final release be called? Currently the naming
convention is 4.1-<update>-<tag> but that's kinda long and unreadable. I
would prefer having simply 4.1.1 which then maps to an update number
implicitly. So the relase would be called Squeak 4.1.1, the image
Squeak4.1.1.image etc.
2) Should we condense sources for every release? I've kept the 4.0
sources file for the 4.1 release, but I'm curious what people think
about always shipping an empty changes file.
Other than that, the next week has a lot of stuff scheduled. I *really*
need some help here. How you can help you ask?
* Work on making all tests pass
* Identify bugs in Mantis that need to be looked at, add them to [2]
* Resolve those bugs from Mantis (fix, close, whatever)
* Whoever can write proper english, please help with a draft 4.1 welcome
and press release
* Test, test, test. Load your favorite packages into 4.1, run its tests,
report any oddities. We have enough time to provide backwards
compatibility fixes for 3rd party packages
* Bug your VM maintainer to update their VMs to the latest so that we
have all known VM fixes on all supported platforms
* Build platform installers
References:
[1] The 4.1 release schedule:
http://lists.squeakfoundation.org/pipermail/squeak-dev/2010-March/147166.ht…
[2] The 4.1 bug master list:
http://bugs.squeak.org/view.php?id=7480
Cheers,
- Andreas
Somehow I have gotten my fresh squeak directory into an inconsitent state for squeakmap.
This leads to the "tools" tab on ObjectsMorph raising an error when squeakmap tries to lazily initialize categories.
There are bug reports on mantis now tied in to the mother report for 4.1 issues:
http://bugs.squeak.org/view.php?id=7480
Having put up the mantis reports I am curious as to what I need to do to restore SqueakMaps external state to health to remove my particular instance of the problem?
Cheers,
Yours in curiosity and service, --Jerome Peace
A new version of System was added to project The Inbox:
http://source.squeak.org/inbox/System-klub.304.mcz
==================== Summary ====================
Name: System-klub.304
Author: klub
Time: 30 March 2010, 12:41:20.514 am
UUID: 4cb91eff-2184-4c98-9f15-f92a44e0205c
Ancestors: System-tfel.303
- added Docking Bar shortcuts to Keyboard Shortcuts help
=============== Diff against System-tfel.303 ===============
Item was changed:
----- Method: Utilities class>>commandKeyMappings (in category 'support windows') -----
commandKeyMappings
^ (self class firstCommentAt: #commandKeyMappings) translated
"Lower-case command keys
(use with Cmd key on Mac and Alt key on other platforms)
a Select all
b Browse it (selection is a class name or cursor is over a class-list or message-list)
c Copy selection
d Do it (selection is a valid expression)
e Exchange selection with prior selection
f Find
g Find again
h Set selection as search string for find again
i Inspect it (selection is a valid expression, or selection is over an inspect-ilst)
j Again once (do the last text-related operation again)
k Set font
l Cancel
m Implementors of it (selection is a message selector or cursor is over a class-list or message-list)
n Senders of it (selection is a message selector or cursor is over a class-list or message-list)
o Spawn current method
p Print it (selection is a valid expression)
q Query symbol (toggle all possible completion for a given prefix)
r Recognizer
s Save (i.e. accept)
t Finds a Transcript (when cursor is over the desktop)
u Toggle alignment
v Paste
w Delete preceding word (over text); Close-window (over morphic desktop)
x Cut selection
y Swap characters
z Undo
Note: for Do it, Senders of it, etc., a null selection will be expanded to a word or to the current line in an attempt to do what you want. Also note that Senders/Implementors of it will find the outermost keyword selector in a large selection, as when you have selected a bracketed expression or an entire line. Finally note that the same cmd-m and cmd-n (and cmd-v for versions) work in the message pane of most browsers.
Upper-case command keys
(use with Shift-Cmd, or Ctrl on Mac
or Shift-Alt on other platforms; sometimes Ctrl works too)
A Advance argument
B Browse it in this same browser (in System browsers only)
C Compare argument to clipboard
D Duplicate
E Method strings containing it
F Insert 'ifFalse:'
G fileIn from it (a file name)
H cursor TopHome:
I Inspect via Object Explorer
J Again many (apply the previous text command repeatedly until the end of the text)
K Set style
L Outdent (move selection one tab-stop left)
M Select current type-in
N References to it (selection is a class name, or cursor is over a class-list or message-list)
O Open single-message browser (in message lists)
P Make project link
R Indent (move selection one tab-stap right)
S Search
T Insert 'ifTrue:'
U Convert linefeeds to carriage returns in selection
V Paste author's initials
W Selectors containing it (in text); show-world-menu (when issued with cursor over desktop)
X Force selection to lowercase
Y Force selection to uppercase
Z Capitalize all words in selection
Other special keys
Backspace Backward delete character
Del Forward delete character
Shift-Bksp Backward delete word
Shift-Del Forward delete word
Esc Pop up the Desktop Menu
\ Send top window to back
Cursor keys
left, right,
up, down Move cursor left, right, up or down
Ctrl-left Move cursor left one word
Ctrl-right Move cursor right one word
Home Move cursor to begin of line or begin of text
End Move cursor to end of line or end of text
PgUp, Ctrl-up Move cursor up one page
PgDown, Ctrl-Dn Move cursor down one page
Note all these keys can be used together with Shift to define or enlarge the selection. You cannot however shrink that selection again, as in some other systems.
Other Cmd-key combinations (not available on all platforms)
Return Insert return followed by as many tabs as the previous line
(with a further adjustment for additional brackets in that line)
Space Select the current word as with double clicking
Enclose the selection in a kind of bracket. Each is a toggle.
(not available on all platforms)
Ctrl-( Enclose within ( and ), or remove enclosing ( and )
Ctrl-[ Enclose within [ and ], or remove enclosing [ and ]
Crtl-{ Enclose within { and }, or remove enclosing { and }
Ctrl-< Enclose within < and >, or remove enclosing < and >
Ctrl-' Enclose within ' and ', or remove enclosing ' and '
Ctrl-"" Enclose within "" and "", or remove enclosing "" and ""
Note also that you can double-click just inside any of the above delimiters,
or at the beginning or end of a line, to select the text enclosed.
Text Emphasis
(not available on all platforms)
Cmd-1 10 point font
Cmd-2 12 point font
Cmd-3 18 point font
Cmd-4 24 point font
Cmd-5 36 point font
Cmd-6 color, action-on-click, link to class comment, link to method, url
Brings up a menu. To remove these properties, select
more than the active part and then use command-0.
Cmd-7 bold
Cmd-8 italic
Cmd-9 narrow (same as negative kern)
Cmd-0 plain text (resets all emphasis)
Cmd-- underlined (toggles it)
Cmd-= struck out (toggles it)
Shift-Cmd-- (aka :=) negative kern (letters 1 pixel closer)
Shift-Cmd-+ positive kern (letters 1 pixel larger spread)
+
+ Docking Bar
+ Ctrl-<n> opens the n-th (where n is between 0 and 9) menu if such exists, otherwise it moves the keyboard focus to the Search Bar. Currently this means:
+ Ctrl-1 Squeak menu
+ Ctrl-2 Projects menu
+ Ctrl-3 Tools menu
+ Ctrl-4 Extras menu
+ Ctrl-5 Windows menu
+ Ctrl-6 Help menu
+ Ctrl-0 Activates Search Bar
+
"!