(name 'Kernel-cwp.700' message 'Added support for compiling in specific environments.' id '20bb1cf9-35a1-4632-9311-a0857c9160e7' date '20 June 2012' time '6:06:44.007 pm' author 'cwp' ancestors ((name 'Kernel-fbs.699' message 'Remerge Kernel-nice.695:

Provides a new version of significandAsInteger that relies on regular Float arithmetic and regular asInteger conversion.
In case of exceptional values, use the old behaviour, that is directly extract the bit pattern, but without implied one at position 53.
Marginally faster than old version - sorry, not significantly.' id '82d9060f-aaf6-4a84-934f-c7bcdd053e56' date '11 June 2012' time '9:15:23.072 pm' author 'fbs' ancestors ((name 'Kernel-fbs.698' message 'Remerge Kernel-nice.694:

Protect floorLog: 2 for case of exceptional float values (because exponent does not)
Change exponent primitive fallback code to avoid a recursion with floorLog2:
Note that I created a separate selector #exponentFromBitPattern for handling fallback, because it''s easier to test.' id 'ceb4e4d0-4031-429d-9001-dd4dc44258ac' date '11 June 2012' time '9:12:51.486 pm' author 'fbs' ancestors ((name 'Kernel-fbs.697' message '* The resolver instvar is initialised to an Array so #ifNotNil: is a no-op.
* #evaluateResolver: reimplemented #cull:; rather use BlockClosure''s version - less duplication.' id 'bcec51c0-7e42-4f78-897b-73b99f088354' date '8 June 2012' time '2:58:00.068 pm' author 'fbs' ancestors ((name 'Kernel-nice.693' message 'Merge nice.692 (reading Fraction from Stream)
add a comment to the postscript just to force a rehashAll.' id 'e88d4aab-9e87-4e64-82cd-0475d919faa5' date '3 June 2012' time '1:36:01.517 am' author 'nice' ancestors ((name 'Kernel-eem.692' message 'Implement CompiledMethod>>#hash, both to accord with
CompiledMethod>>#= and to override ByteArray>>#hash
which looks at all bytes of the receiver and hence may
produce a variable hash if the GC moves literals in a method.' id '72f75218-3cfc-4575-b159-8de0e44aa479' date '27 May 2012' time '3:08:41.389 pm' author 'eem' ancestors ((name 'Kernel-nice.691' message 'Grace period is over, publish and merge the changes for printing Floating point with fixed precision.' id 'f69b524f-83bb-4ef0-b084-e7a96dd5d33e' date '22 May 2012' time '10:14:29.897 pm' author 'nice' ancestors ((name 'Kernel-eem.690' message 'Add Integer>hex8.  Arguablty this should be an extension in
VMMaker, but since hex isn''t, this isn''t either (historical).
Refactor CompiledMethodTrailer to allow subclasses to
instantiate classes other than CompiledMethod.
Add CompiledMethod>referredInstVars' id '86741d23-9dcd-4c36-b86e-99d260c22445' date '20 May 2012' time '11:45:51.817 am' author 'eem' ancestors ((name 'Kernel-nice.689' message 'Let #floorLog: be exact in the base used by underlying Float implementation (currently 2 is hardcoded because Float class>>base was not implemented).
In other cases, warn about possible rounding errors.' id '06728744-bdfb-4e41-aa4c-39da40f860a4' date '16 May 2012' time '9:32:53.987 pm' author 'nice' ancestors ((name 'Kernel-nice.688' message 'Provides a naive #printShowingMaxDecimalPlaces: and #printOn:maxDecimalPlaces:

To be tested...
{
0.7 printShowingMaxDecimalPlaces: 3.
2.0001 printShowingMaxDecimalPlaces: 3.
-1.9994 printShowingMaxDecimalPlaces: 3.
}' id 'ad83d134-2a4e-4f15-b38a-363e2da73f2b' date '15 May 2012' time '11:21:24.599 pm' author 'nice' ancestors ((name 'Kernel-eem.687' message 'Provide a more helpful comment for Class>>copy.' id '66ea6288-0642-439c-bc13-ae34900d2382' date '15 May 2012' time '9:46:07.158 am' author 'eem' ancestors ((name 'Kernel-nice.686' message 'Improve DateAndTime hash speed by ~2 order of magnitude with a collision rate of ~1 per 10,000, following suggestion of pad, reviewed by nice.

Care to HashedCollection rehashAll in postscript.' id 'f59cead1-1757-4e97-9ffc-19fa5a8dd384' date '11 May 2012' time '10:49:19.244 pm' author 'nice' ancestors ((name 'Kernel-nice.685' message 'Rename Number class>>#readSqueakSyntaxFrom: into #readSmalltalkSyntaxFrom:

This is to provide a common API across dialects for external packages since both VW7.x and Pharo2.0 have #readSmalltalkSyntaxFrom:

Note that Number syntax may vary slightly across dialects and #readSmalltalkSyntaxFrom: is to be understood "in local dialect"...

#readSqueakSyntaxFrom: was quite recent and not used in trunk, so I removed rather than deprecate. If you don''t agree, raise your voice.' id '2febaac6-3ff5-3640-abfd-068dce4f0a2b' date '4 May 2012' time '10:51:32.635 am' author 'nice' ancestors ((name 'Kernel-eem.684' message 'Implement endPC numArgs and numTemps for closures
and contexts (both block and method activations).
Provide CompiledMethod>abstractBytecodeMessagesDo:
et al.
Implement BlockClosure>isClean to identify self-contained blocks.' id 'e838a325-27ec-4a62-a907-d4059451a046' date '26 April 2012' time '11:07:37.737 am' author 'eem' ancestors ((name 'Kernel-nice.683' message 'Merge with nice.652 (Float unambiguous printing).' id 'a7c12ee7-fee9-ae44-b849-f314f0859c25' date '26 April 2012' time '7:06:10.666 pm' author 'nice' ancestors ((name 'Kernel-eem.682' message 'Faster non-local return through unwind-protects by not
ignoring the firstUnwindContext supplied by the VM.' id '700ce759-d9db-45ed-9929-20018642651d' date '25 April 2012' time '10:58:44.627 am' author 'eem' ancestors ((name 'Kernel-bf.681' message 'Use new classify:under:suppressIfDefault:logged: method after config map ensured it is loaded.' id '28c3d2c8-94e5-45aa-8b18-50937f2b9865' date '19 April 2012' time '6:31:00.093 pm' author 'bf' ancestors ((name 'Kernel-bf.680' message 'When manually recategorizing a method, make an entry in the changes file. Otherwise the methpd''s latest change record in the changes file will not match what''s in the image, confusing Monticello.' id 'b7735cff-3ec1-47d5-9c49-6f054f21f317' date '19 April 2012' time '6:23:49.174 pm' author 'bf' ancestors ((name 'Kernel-eem.679' message 'Fix loading of CompiledMethod subclasses.  The old code
just used CompiledMethod''s format, which includes its
compact class index, hence resulting in instantiating the
subclass returning an instance of CompiledMethod.  The
new code masks out CompiledMethod''s compact class imdex (if any) and masks in the right compact class index.' id 'aa8e1b1a-a108-4228-91bf-c996fa4b5b26' date '18 April 2012' time '10:40:18.574 am' author 'eem' ancestors ((name 'Kernel-eem.678' message 'Provide a kbdTest for the EventSensor.' id 'a1560bd8-28a8-4167-a5ae-d3da0cd21c70' date '18 April 2012' time '10:29:16.009 am' author 'eem' ancestors ((name 'Kernel-eem.677' message 'Add the 4 argument perform:with:with:with:with: for Cog and
who ever else.' id '94b37f14-3ec9-477d-9269-d90ed23b82b4' date '31 March 2012' time '1:44:09.167 pm' author 'eem' ancestors ((name 'Kernel-eem.676' message 'Neater simpler, correct implementtion of #once for the
current Squeak closure implemenation which lacks clean
blocks.' id '54422144-91c1-4c63-9fbe-8acb5733e35f' date '28 March 2012' time '6:31:09.818 pm' author 'eem' ancestors ((name 'Kernel-eem.675' message 'Fix the improved decompileWithTempNames for doits
without temp names. 673 breaks e.g.
	DecompilerTests new testRemoteTemp' id '44dbc698-62dc-4f6b-afd0-c987fdadb1f7' date '19 March 2012' time '2:51:13.711 pm' author 'eem' ancestors ((name 'Kernel-eem.674' message 'Make the improved decompileWithTemps function in the abandoned sources case (where a method holdsTempNames).' id 'b866b3fd-2e22-4188-a09a-6292ff0eb8b4' date '19 March 2012' time '12:53:33.739 pm' author 'eem' ancestors ((name 'Kernel-bf.673' message 'Fix decompileWithTemps (moving the better logic the Browser used into CompiledMethod), and use it when getting a method node. This makes the Debugger see the same decompiled source as the Browser.' id 'ed8f09cb-8fd5-4bbe-b9a6-1aab2d7f0dc0' date '19 March 2012' time '8:07:23.064 pm' author 'bf' ancestors ((name 'Kernel-cmm.672' message '- Merged globalized Timespans fix.' id '1c8ff441-2e76-4094-8c72-4e3cf8bcb90a' date '14 March 2012' time '2:11:21.53 pm' author 'cmm' ancestors ((name 'Kernel-cmm.671' message 'Decided against the localized vs. globalized mode.  Timespans created in the context of an offset will start in that offset.  When no context is available, the defaultOffset for Timespans must be zero.  For example, two ways to make a Date for today:
	Date today.  ''start is midnight at offset zero.  Will compare successfully to other Date today results.''
	DateAndTime now asDate.  ''In this case, the start is midnight of the local time-zone.  It can only compare equally to Dates of its time-zone.''' id '9c0e18ac-1c8f-4ae6-b39e-d487720e8580' date '10 February 2012' time '4:58:49.106 pm' author 'cmm' ancestors ((name 'Kernel-cmm.670' message 'Perform initialization required for prior change in the postscript.' id 'b6408357-975c-4212-93c5-7932cc175306' date '5 February 2012' time '2:32:50.946 pm' author 'cmm' ancestors ((name 'Kernel-cmm.669' message 'Introduced Timespan class>>defaultOffset.  This is the offset that will be used for creation of all Timespans when an offset is not specified.  When an offset is specified or involved in construction or calculation, the result is now produced in terms of the source offset.
	For example, Date today now produces a globalized date by default.  However, "Date starting: (DateAndTime year: 2004 month: 2 day: 29 hour: 13 minute: 33 second: 0 offset: 2 hours)" produces a Date.whose start is expressed in terms of UTC+2.
	The default defaultOffset is Duration zero so that Squeak will have fast, globalized Dates out of the box.  Globalized Dates are common for applications.
	Legacy localized Dates can be obtained by evaluating "Date localize" so that, when an offset is not specified or otherwise involved in the input, the local offset will be used.' id '5ddec343-01ad-4e76-b32c-299fac68ec09' date '3 February 2012' time '5:55:11.175 pm' author 'cmm' ancestors ((name 'Kernel-eem.668' message 'Rip out the "prevent me debugging myself" primitive 19
from ContextPart>doPrimitive:method:receiver:args:.' id '6d7c03fa-7e34-49ee-af59-08c26564f9ef' date '30 January 2012' time '4:07:10.324 pm' author 'eem' ancestors ((name 'Kernel-cmm.667' message 'Fix copying a Stopwatch.' id '40c83fd8-7462-4d3e-807e-ead52745f4eb' date '28 January 2012' time '4:37:01.086 pm' author 'cmm' ancestors ((name 'Kernel-ul.666' message '- Fixed Integer >> #isPowerOfTwo which returned true for 0. Added optimized versions to Integer''s subclasses.
- Updated MethodDictionary class >> #sizeFor: to be error resistant if the semantics of #asLargerPowerOfTwo would change.' id '7a3266d0-57d3-3149-992f-5d3a6959c043' date '23 January 2012' time '3:19:39.301 am' author 'ul' ancestors ((name 'Kernel-nice.665' message 'merge Kernel-nice.644

Add Integer>>bitCount to count the bits set (to 1) in an Integer.' id '3122f4bd-6c16-4919-9b90-47080e9365cb' date '22 January 2012' time '6:13:29.686 pm' author 'nice' ancestors ((name 'Kernel-nice.664' message 'merge Kernel-nice.656

Remove one unused message: now that Integer is polymorphic to Fraction he never has to #adaptToFraction:andSend:' id 'fd5de2b6-9257-4184-bd16-498faaca6329' date '21 January 2012' time '4:44:27.824 pm' author 'nice' ancestors ((name 'Kernel-bf.663' message '- dispatch events to HostWindowProxy
- add EventSensorConstants for window events and touch events' id '30a6e9d4-3733-4160-8b28-78a6482c1de0' date '5 January 2012' time '6:41:16.427 pm' author 'bf' ancestors ((name 'Kernel-ul.662' message '- fix: even empty MethodDictionaries should have one slot' id 'daeab859-78f8-5249-8495-57902d12d835' date '21 December 2011' time '4:26:32.078 am' author 'ul' ancestors ((name 'Kernel-laza.661' message 'Make the recategorization of a class be recorded in the changes file' id 'e2deef86-7fa0-48f6-80a8-256b68e45a1a' date '14 December 2011' time '4:53:54.778 pm' author 'laza' ancestors ((name 'Kernel-dtl.658' message 'The primitive fallback code in object:perform:withArguments:inClass: should test ''selector isSymbol'' rather than ''selector isMemberOf: Symbol'' because #someSelector isMemberOf: Symbol ==> false

Observed when running testMirrorPerform on a VM with failing primitivePerformInSuperclass, resulting in a misleading error message.' id '8f8f6e77-b113-446b-b593-aa5aa0f8db4e' date '11 December 2011' time '7:50:47.904 pm' author 'dtl' ancestors ((name 'Kernel-ul.657' message 'Merged.' id '9474fac1-19c1-6d46-91d8-0842ee711d38' date '9 December 2011' time '11:25:31.967 am' author 'ul' ancestors ((name 'Kernel-dtl.656' message 'For Squeak 4.3 release code freeze, temporarily revert previous ReferenceStream changes due to unresolved issues (see http://lists.squeakfoundation.org/pipermail/squeak-dev/2011-December/162386.html). The updates will be reintroduced following the Squeak 4.3 release.

Packages affected:
  Kernel-Objects
  System-Object Storage
  Tests-Object Storage' id 'ddfcad11-16e3-4649-9bda-5fa0dc8254e1' date '7 December 2011' time '7:32:57.155 pm' author 'dtl' ancestors ((name 'Kernel-dtl.655' message 'Fix ReferenceStream handling of weak references. Test and patches by Juan Vuletich.
<http://lists.squeakfoundation.org/pipermail/squeak-dev/2011-November/162285.html>

Packages affected:
  Kernel-Objects
  System-Object Storage
  Tests-Object Storage

If we serialize a model with weak references to views, only the model should be serialized and not the views.

The bug became apparent only when dumping a model to a SmartRefStream, that calls #references, and the serialized stream was later materialized in an image where the view classes had been deleted. In such rare cases, materialization would fail when trying to reference these absent classes. If serializing to a ReferenceStream, the bug didn''t become apparent (views were never serialized). If serializing to a SmartRefStream, but view classes still existed, the bug didn''t really become apparent (because views were not actually deserialized), the only effect was a larger file.' id 'a7fda999-52a1-42f1-92da-9cdae7a9614a' date '27 November 2011' time '6:50:19.012 pm' author 'dtl' ancestors ((name 'Kernel-bf.654' message '- fix class vars not showing up in menu while a browser''s class side is selected' id 'd13de9a3-b2e6-403e-ac68-66d94cb15a79' date '17 November 2011' time '2:18:37.428 pm' author 'bf' ancestors ((name 'Kernel-nice.653' message 'Minor refactoring of isProbablyPrime
- Add more comments (tell it''s a Miller Rabin test, tells about probabilities)
- avoid repeated shift when #lowBit can help doing it once
- refactor Knuth "P3" test to a simpler expression
- and restore the fact that there is a step "P4" before "P5"' id 'd149a4f7-f537-4f76-9b79-367acd0aa832' date '15 November 2011' time '11:23:38.908 pm' author 'nice' ancestors ((name 'Kernel-laza.649' message 'Make protocol changes be recorded by the changes file.' id '9ee9cceb-4b76-3d41-8a57-bd0b6eb79dc0' date '3 November 2011' time '1:09:36.555 am' author 'laza' ancestors ((name 'Kernel-eem.648' message 'First part of changes to restore protection against infinite
recursion on printing circular array literals.' id 'c3ee000c-6816-4eff-9f24-4ddc497c4171' date '2 November 2011' time '12:58:59.757 pm' author 'eem' ancestors ((name 'Kernel-nice.647' message 'Optimize #ln and #log as in Pharo.
1) SmallInteger just inherits from super (^self asFloat log)
2) LargePositiveInteger can avoid self >  guard
3) LargeNegativeInteger can goto Error (no raise, just kidding)
4) Fraction can avoid arithmetic because (a/b) log = (a log - b log) and because a log or b log are unlikely to overflow - (10 raisedTo: (10 raisedTo: 308)) is likely to exhaust your memory before any overflow occurs ;).' id '68374059-00c3-4605-bfb3-615f3793071a' date '2 November 2011' time '7:50:14.247 pm' author 'nice' ancestors ((name 'Kernel-nice.646' message 'There might be a best inexact square root approximation than Float infinity to some LargePositiveInteger in the range (1<<54-1<<970 to: 1<<54-1<<1994)' id 'cd46101c-40a4-49fd-b358-a8d0c555810f' date '29 October 2011' time '3:25:43.994 pm' author 'nice' ancestors ((name 'Kernel-nice.645' message 'Yet another version of #nthRoot: from Cuis
1) Receivers too big for Float arithmetic but without exact answer, and a better float than infinity is possible.
2) Besides, a small performance tweak: don''t call ''selfAsFloat nthRoot: aPositiveInteger'' if the result will be infinity, i.e. if the receiver is infinity.' id '6c7fe149-d362-481d-803f-eecbec00619c' date '29 October 2011' time '11:42:54.825 am' author 'nice' ancestors ((name 'Kernel-ael.643' message 'Proposed change for enabling both Yellow and Blue buttons from a two-button mouse in Cog VM' id '1fb9163b-7fc4-7946-a812-27626936cc50' date '19 October 2011' time '4:09:37.67 pm' author 'ael' ancestors ((name 'Kernel-nice.642' message 'Correct my own bugs, (-3/2) log should raise a DomainError, not an infinite loop...' id '26bbac76-79b8-4600-ac86-f60a02ad6da3' date '19 October 2011' time '10:11:56.9 pm' author 'nice' ancestors ((name 'Kernel-nice.641' message 'Correct #nthRootTruncated: (it did call #nthRootFloor:)
Let #nthRoot: retry in exact arithmetic if ever Float overflows.' id 'e31730ef-2db4-42e3-aa0e-299e45c955ac' date '19 October 2011' time '8:44:12.297 pm' author 'nice' ancestors ((name 'Kernel-nice.640' message 'Add Integer>>#nthRootTruncated:
Simplify Integer>>#sqrtFloor

A pity this last one was not named sqrtTruncated for consistency...
(I think I saw sqrtTruncated in st80 v2.5, or was it in Smalltalk V ?)' id '34b1c868-c862-4f76-ab25-28e24f840384' date '17 October 2011' time '11:02:36.274 pm' author 'nice' ancestors ((name 'Kernel-nice.639' message 'Complex>>asComplex was missing
Thanks Werner Kassens.' id 'b64cb4d7-96d6-4210-8973-433a1fcbdeb6' date '16 October 2011' time '6:56:06.917 pm' author 'nice' ancestors ((name 'Kernel-nice.638' message 'Cheaper #mightBeASquare (only test expensive lowBit where necessary).
Remove powers of 2 before performing sqrtFloor on a large integer.' id '83cd4ee4-8be1-410e-9663-dcbd2e6f07b9' date '15 October 2011' time '12:01:04.127 am' author 'nice' ancestors ((name 'Kernel-nice.637' message 'Implement ScaledDecimal>>nthRoot:
#mightBeASquare now verifies whether the receiver is an even power of two.' id '90981f89-5348-4bf9-8981-4cc51da6bc29' date '14 October 2011' time '10:28:53.269 pm' author 'nice' ancestors ((name 'Kernel-nice.636' message 'Fix ScaledDecimal which didn''t work anymore, and let it be exact when possible.' id '87b3aaea-65b6-4ebf-8855-ef8f27bcb0c3' date '14 October 2011' time '10:05:36.672 pm' author 'nice' ancestors ((name 'Kernel-nice.635' message 'Integrate great changes Juan made in Cuis:
- make #sqrt exact when possible.
- compute #nthRoot:' id 'b27ad01f-a82e-460f-8cc5-578ea8a77972' date '14 October 2011' time '9:48:14.9 pm' author 'nice' ancestors ((name 'Kernel-nice.634' message 'Move Complex conversion (#asComplex #adaptToComplex:andSend:) one level upper in Number.
Use squared where possible in Complex.' id 'ec28e2e7-ee3e-41a9-9eed-dd75acc1a7cf' date '14 October 2011' time '12:34:15.894 am' author 'nice' ancestors ((name 'Kernel-eem.633' message 'Pragmas need to be #=, not just #==.
MethodPragmaTests now all pass.' id 'b7fedf5b-2cb3-4420-8f0d-c66ac6715c53' date '4 October 2011' time '12:28:38.308 pm' author 'eem' ancestors ((name 'Kernel-eem.632' message 'Avoid work in common case of setting method''s source
pointer to zero when already zero.' id '807c955e-061f-4006-b9c2-981ffd241b4c' date '29 September 2011' time '2:09:31.751 pm' author 'eem' ancestors ((name 'Kernel-ul.631' message 'Merged.' id '7793f80d-42dc-2a45-afc1-67ce003aba45' date '27 September 2011' time '6:47:40.645 pm' author 'ul' ancestors ((name 'Kernel-eem.630' message 'Provide a hook for subclasses to substitute an altered
method when deocmpiling.  This aoids an infinite recursion
decompiling installed MwMethodWrapper methods.' id '71012e54-3304-4e32-9ab0-46fa56f149c5' date '27 September 2011' time '8:45:29.372 am' author 'eem' ancestors ((name 'Kernel-nice.629' message 'Define and use #highBitOfByte when we know we operate on byte boundary.
And, oups, remove ===> which crept in trunk (was solely for testing speed).' id 'efcd1a80-4b32-4ccf-bdb7-8548ec1f040b' date '26 September 2011' time '9:26:30.229 pm' author 'nice' ancestors ((name 'Kernel-nice.628' message 'Boolean subclasses know better how to behave, so if we delegate ==> , we can implement a branch-less implication. 

Though I wonder if this is really an optimization in case of a JIT VM...
{
[true ==> [1 > 2]] bench.
[false ==> [1 > 2]] bench.
}
#( ''6,440,000 per second.'' ''6,690,000 per second.'') "BEFORE"
#( ''6,410,000 per second.'' ''7,030,000 per second.'') "AFTER"' id '9c77ee63-103f-4577-b987-5ee0f539d582' date '26 September 2011' time '9:10:09.363 pm' author 'nice' ancestors ((name 'Kernel-nice.627' message 'Improve Fraction and Integer asFloat by:
- removing unreachable branch
- removing un-needed arithmetic
- renaming temps
- using Float precision explicitly rather than hardcoded magical numbers
- clarifying comments
The resulting code shall be clearer and a bit faster than previously.' id 'c09ead19-3aa6-482b-b2cc-f6549bc67eb6' date '25 September 2011' time '12:55:51.623 pm' author 'nice' ancestors ((name 'Kernel-ul.626' message 'MethodDictionary changes:
- fix: #compact shouldn''t increase the load factor above 75% (see #sizeFor: on the class side)
- speed up #compact and #compactAllInstances by using #copyFrom: instead of #becomeForward: if the capacity of the dictionaries can''t be reduced
- recategorized some class side methods
- use cascade in #at:put:' id 'c917ec7b-b1ed-1849-bfb3-292cb3898035' date '18 September 2011' time '3:18:04.315 pm' author 'ul' ancestors ((name 'Kernel-ul.625' message 'Use #copyFrom: and #becomeForward: instead of #become: during changes of MethodDictionaries. These changes assume that #copyFrom: is atomic (just like #become: and #becomeForward:), so the MethodDictionaries never get into an inconsistent state.
These changes speed up #rehash, #removeAll, #removeKey:ifAbsent and also #compact if the dictionary already has the smallest possible capacity. This means that #rehashAllInstances and #rehashWithoutBecome is not necessary anymore, so those were removed.' id '14b3a206-0a64-6049-83f2-fa4a151207cf' date '18 September 2011' time '11:54:02.722 am' author 'ul' ancestors ((name 'Kernel-ul.624' message '- merged Kernel-ul.613 and Kernel-ul.619
- ProcessLocalVariable class >> value: returns it''s argument just like assignments' id '540746a6-bd79-7543-bcad-ea7f1973d6c5' date '17 September 2011' time '5:42:53.901 pm' author 'ul' ancestors ((name 'Kernel-eem.623' message 'Get use of new: and basicNew: in AdditionalMethiodState
correct (for convenience of subclasses).' id 'b73bf0f2-ed5e-4081-953c-05e68c29cd89' date '16 September 2011' time '11:28:02.425 am' author 'eem' ancestors ((name 'Kernel-eem.622' message 'Remove the noyYetImplemented flag now that subclassing
AdditionalMethodState is implemented.' id '1a202985-ef6c-439b-bd93-0c59ccd9e9b7' date '16 September 2011' time '11:12:59.097 am' author 'eem' ancestors ((name 'Kernel-eem.621' message 'Make AdditionalMethodState>copyWith:/copyWithout: subclass-
friendly, copying all inst vars.
Also make then shallowCopy pragmas and associations to
produce distinct copies.' id '7946debc-5642-4f36-8cce-927c855d3e9e' date '16 September 2011' time '10:43:29.034 am' author 'eem' ancestors ((name 'Kernel-eem.620' message 'Kernel half of second part of changes to revive ability to
create subclasses of CompiledMethod.  Other half is
Compiler-eem.215.

Fix nasty bug with AdditionalMethodState copying.  It wasn''t
copying the associations so properties would end up
shared between copies sicne the associations ended up
shared.

Add id hash to printing of AdditionalMethodState to make
reasoning about sharing easier.' id 'fca45b03-707d-49a7-a9e6-e5e73dbb31d2' date '15 September 2011' time '5:14:46.105 pm' author 'eem' ancestors ((name 'Kernel-eem.619' message 'Kernel half of first part of changes to revive ability to
create subclasses of CompiledMethod.  Other half is
Compiler-eem.213.
Bug fix to Compiledmethod class>new so that it creates a
dummy method that has a penultimateLiteral.' id 'a213fef5-96b3-421c-a1ca-db9ec0ef8876' date '15 September 2011' time '4:40:07.103 pm' author 'eem' ancestors ((name 'Kernel-nice.618' message 'Simplify Integer>>printTruncatedOn:showingDecimalPlaces: as suggested by Levente' id '5c9061ca-b336-460a-bd15-2dfb6ecd2d0c' date '8 September 2011' time '10:26:12.614 pm' author 'nice' ancestors ((name 'Kernel-nice.617' message 'Consider an Integer as a special kind of Fraction (from behavioral POV, not from hierarchical POV), ans as such answer true to #isFraction and answer self to #asFraction.

This is a logical consequence of having Fraction with a unit denominator automatically reduced to Integer.

Two pre-requisites to this change are:
- letting Integer be polymorphic with Fraction by responding to #numerator and #denominator
- and don''t letting senders of #asFraction rely on the class of the result being a Fraction (which was the case of some coercion message only).
These requirements should be fullfiled by update-nice.196.mcm.

A side effect of this change is to speed up a bit mixed arithmetic like (1/2)+1, but not 1+(1/2).

A second side effect is that (1@2) asNonFractionalPoint will now convert coordinates to floating point.

There is no other sender of #isFraction or #asFraction affected by the change in the trunk image.' id '709886c8-65a6-4ca8-8c60-96002f0cc739' date '7 September 2011' time '10:36:43.543 pm' author 'nice' ancestors ((name 'Kernel-nice.616' message 'Form a Fraction explicitely rather than sending asFraction when coercing an Integer is required.
This way, Integer>>#isFraction and Integer>>#asFraction can be modified.' id '7aedbc4c-8362-48cb-bfbe-7b28ef66837c' date '7 September 2011' time '10:07:42.842 pm' author 'nice' ancestors ((name 'Kernel-nice.615' message 'Integer shall understand #numerator and #denominator to be polymorphic to Fraction.
Integer shall be polymorphic to Fraction because Fraction with denominator = 1 don''t preserve their class across arithmetic operations.' id '4e49e25c-85dc-444c-bdd5-5e4bb9d05b6e' date '7 September 2011' time '9:54:15.365 pm' author 'nice' ancestors ((name 'Kernel-nice.614' message 'Let (ScaledDecimal newFromNumber: 0.0 scale: 2) print itself.

While at it, review ScaledDecimal comment and indicate that the fraction inst var can be an Integer eventually.' id '8b421fd9-75f4-2e44-bef4-9bbf5cd3b57a' date '7 September 2011' time '7:10:52.779 pm' author 'nice' ancestors ((name 'Kernel-nice.613' message 'Don''t provide separate setters for Complex #real: and #imaginary: parts.
Instead, provide a single #real:imaginary: initializer, that''s faster and safer (like Magnitude, Complex numbers might be shared and it would be dangerous to modify a Complex in place).' id 'c5ac2f0a-3419-41d9-a4e5-0331ff55467d' date '29 August 2011' time '12:20:33.523 am' author 'nice' ancestors ((name 'Kernel-cmm.612' message 'Merged cmm.607 and cmm.608.' id '4d1d5cde-63c0-4b82-ba0c-912fc1b880bd' date '15 August 2011' time '9:21:36.435 pm' author 'cmm' ancestors ((name 'Kernel-cmm.608' message 'Allow creation of ContextParts with #basicNew: as long as a valid frame-size is specified.' id '35c1e76a-833d-4959-8b99-cfcd8d31df3f' date '5 August 2011' time '1:03:00.088 pm' author 'cmm' ancestors ((name 'Kernel-cmm.607' message '- Size and speed optimization for DateAndTime, Date, and other Timespans.  By sending them the new #makeUTC message, Dates can now share a canonicalized #zero ''offset'' Duration.  Hashing Dates created in offset zero is many times faster than those with other offsets.
- Since there are typically many Dates in the system, their 1-day ''duration'' is also shared.' id '707fff1e-e5d5-46e9-9c87-75010916820b' date '17 July 2011' time '3:19:27.832 pm' author 'cmm' ancestors ((name 'Kernel-nice.605' message 'Fix: a negative fraction asFloat should answer negativeZero when it underflows' id '59831937-c6b3-4a5a-9f2a-a14f898e6fd7' date '15 July 2011' time '11:21:58.548 pm' author 'nice' ancestors ((name 'Kernel-ul.604' message 'Optimized Integer >> #= for integer-integer comparisons. Return false for integers from different classes without further checking.' id 'f758876f-a507-404b-aa2f-2c1038504b48' date '10 July 2011' time '4:36:20.467 pm' author 'ul' ancestors ((name 'Kernel-bf.603' message 'merge "Button for it" feature' id 'f3bbcccb-40c4-4d2c-a4f1-1bf957306c42' date '1 July 2011' time '12:01:00.19 am' author 'bf' ancestors ((name 'Kernel-nice.602' message 'Minor tweaks:
Use a better approximation for counting digits in base 10
Use raisedToInteger: since we now the argument ''base'' is Integer
Change arTanh error message because (between -1 and 1) is more inline with Smalltalk message #between:and: than (between 1 and -1).
Simplify ulp since #abs matches #ulp return value for any non finite number.' id '5466a1ae-e947-4881-b71f-e83278dc1e33' date '27 June 2011' time '8:27:00.479 pm' author 'nice' ancestors ((name 'Kernel-bf.601' message 'revert Float>>/ to restore proper ZeroDivide handling (see 
testZeroDivideHandler)' id 'f3acd77d-7721-4775-90d7-a4aa00a90670' date '23 June 2011' time '3:37:18.629 pm' author 'bf' ancestors ((name 'Kernel-cmm.600' message 'merged Kernel-nice.569.' id 'ce9a0eba-082b-48c3-873d-d824b8898571' date '21 June 2011' time '4:20:30.074 pm' author 'cmm' ancestors ((name 'Kernel-nice.569' message 'A bit faster bitReverse: for LargePositiveInteger' id '6fde25b5-ec3e-3146-94b5-d9e228e02776' date '12 April 2011' time '9:22:32.787 am' author 'nice' ancestors ((name 'Kernel-cmm.568' message 'Added Integer>>bitReverse:.' id '340ecdd9-40de-42e4-8388-09abc07cdedf' date '11 April 2011' time '9:01:09.858 pm' author 'cmm' ancestors ((name 'Kernel-nice.567' message 'Use #repeat instead of  [true] whileTrue' id 'c28babcd-2f07-0f47-a7ae-9e9dfe2ed29b' date '11 April 2011' time '3:57:48.516 pm' author 'nice' ancestors ((name 'Kernel-ar.566' message 'Fixes a potential delay roll-over problem discovered by Gary Chambers.' id '0001d1a2-dc2b-1c44-b858-10e52be67b9f' date '11 April 2011' time '12:12:58.781 pm' author 'ar' ancestors ((name 'Kernel-bf.565' message '- make ObjectTracer/ObjectViewer work again (try the example in ObjectViewer class comment). BEWARE however, sending xxxUnTrace still sometimes locks up the image
- not sure why sentTo: doesn''t work, had to switch to sendTo:
- optionally allow accessing the caught message, e.g.:
	object evaluate: [:msg | Transcript cr; show: msg]
		wheneverChangeIn: [x := x = false].' id 'f5b1f9f1-3c3b-4dac-bec9-88df9a90cd0e' date '7 April 2011' time '12:08:35.536 pm' author 'bf' ancestors ((name 'Kernel-ar.564' message 'Fix computation of Time>>milliseconds:since: which would compute incorrect deltas upon clock overflow.' id '32ecb9c9-177a-ce45-9c1c-a3714c801929' date '7 April 2011' time '11:04:21.248 am' author 'ar' ancestors ((name 'Kernel-nice.563' message 'As previously discussed in squeak-dev, implement two utilities: #newCompiler #newParser
(self newCompiler) is a replacement for (self compilerClass new), except it arranges to have the compiler initialized with proper Parser.

Advantage 1:
This way, you can define only parserClass rather than a pair compilerClass/parserClass for experimenting alternate syntax.
Also, this may later simplify Compiler initialization of parser inst. var.

Advantage 2:
If any special initialization is required for YourOwnCompiler/parser instance, then just refine #newCompiler/Parser rather than hacking each and every #compilerClass/parserClass sender.

Disadvantage 1:
Encouraging experimentations of alternate Parser might show the limits of some tools (MC RB etc...).
Bet we wouldn''t put such experimentations in trunk, would we ?

Disadvantage 2:
none foreseen, but you tell me.' id '8550c4d6-b22a-409a-91d7-68a3c9ad6a7b' date '30 March 2011' time '9:20:36.797 pm' author 'nice' ancestors ((name 'Kernel-nice.562' message 'Restore old behaviour:
  -0.001 printShowingDecimalPlaces: 2
gives:
   ''0.00''
rather than
  ''-0.00''

What do you prefer ?' id '3fe28801-7a81-7848-b0af-3d246cf09488' date '29 March 2011' time '11:04:41.473 pm' author 'nice' ancestors ((name 'Kernel-nice.561' message 'Oops, correct
    (-1999/1000) printShowingDecimalPlaces: 2
before someone see my bugs' id '5565b8cf-af97-b84a-98d3-d7743983f140' date '29 March 2011' time '10:48:02.38 pm' author 'nice' ancestors ((name 'Kernel-nice.560' message 'Provides faster printShowingDecimalPlaces: 
Also accelerate ScaledDecimal printing a bit more.' id '0115aa6d-4357-864e-9984-a1a9a3a2c062' date '29 March 2011' time '10:01:57.74 pm' author 'nice' ancestors ((name 'Kernel-ul.559' message '- use primitive 189 in Object >> (with:)*executeMethod: methods' id 'c77223de-0299-9646-bbf7-c68ba5f839e6' date '29 March 2011' time '3:07:23.429 am' author 'ul' ancestors ((name 'Kernel-ul.558' message '- avoid recompiling class side methods twice during #compileAll' id '1c46cfeb-407c-a445-bdb5-2f3242137f2f' date '28 March 2011' time '5:35:38.058 pm' author 'ul' ancestors ((name 'Kernel-ul.557' message '- removed methods from ProtoObject and CompiledMethod related to the old BlockClosure implementation. No deprecation, because they were broken and dangerous to use, besides they had no senders.
- renamed CompiledMethod >> #embeddedBlockMethods to CompiledMethod >> #embeddedBlockClosures' id '0a3d2d6f-e06c-8a40-af11-63cdc731a4ee' date '28 March 2011' time '4:21:17.292 am' author 'ul' ancestors ((name 'Kernel-mha.556' message 'revamped closures protocol in CompiledMethod and supplemental code/classes' id '335384b3-adba-4f4f-b8aa-4cef81efebcc' date '24 March 2011' time '8:23:23.16 pm' author 'mha' ancestors ((name 'Kernel-ul.555' message '- added support for threaded VMs
- removed the unused errorHandler variable and it''s accessors from Process. It was used before Squeak 3.6 as a process local error handler. If this feature is still required then it should be implemented by using the ProcessLocalStorage package from squeaksource.' id '27353a94-f122-aa4b-982e-5d98b8659837' date '22 March 2011' time '5:48:20.517 am' author 'ul' ancestors ((name 'Kernel-ul.554' message 'Merged.' id 'b7c88f26-3fb5-dd4a-8914-11b00fe16498' date '17 March 2011' time '2:10:28.436 am' author 'ul' ancestors ((name 'Kernel-mtf.553' message 'Imported changes from cobalt
- added Magnitude >> clampLow:high:
- exposed the Float constants ln2 and ln10' id 'b8e42373-42ef-440e-a253-508b7661cd5f' date '16 March 2011' time '7:02:49.782 pm' author 'mtf' ancestors ((name 'Kernel-ul.552' message '- make sure that blocks and MessageSends are exchangable in more situations, by implementing #cull:* #value:* and #valueWithPossibleArgs: in MessageSend
- refactored Object >> #perform:withEnoughArguments:' id '9200081a-9eb0-7042-b9b5-3a792061f53d' date '15 March 2011' time '1:57:10.411 am' author 'ul' ancestors ((name 'Kernel-ul.551' message '- implemented Behavior >> #instVarIndexFor:ifAbsent:, so it can be used from other methods in Behavior
- refactored Behavior >> #whichSelectorsAccess:' id '45b96cce-d479-4b43-a043-2b9620f47a98' date '14 March 2011' time '11:47:55.756 pm' author 'ul' ancestors ((name 'Kernel-ul.550' message '- moved MethodReference >> #actualClass to the System package
- CompiledMethod >> #getPreambleFrom:at: allocates a non-empty buffer
- added Behavior >> #whichSelectorsReferTo:special:byte:thorough: which unifies
#whichSelectorsReferTo:special:byte: and #thoroughWhichSelectorsReferTo:special:byte:' id '0fbe4def-75cd-a747-9d26-44e6a9daaa04' date '13 March 2011' time '8:55:41.533 pm' author 'ul' ancestors ((name 'Kernel-ul.549' message 'Merged.' id '63637401-6781-ce44-99e2-d3ac7f032112' date '28 February 2011' time '12:23:58.143 pm' author 'ul' ancestors ((name 'Kernel-dtl.548' message 'Fix bug in Float>>printPaddedWith:To: by treating the format specifier as a string value, not as a float subject to numeric precision issues.' id '3640676f-cde9-42ac-924b-f585949efb60' date '27 February 2011' time '9:51:00.787 pm' author 'dtl' ancestors ((name 'Kernel-cmm.547' message 'Merged cmm.541.' id '31a5eb93-bfb3-45c7-950a-a92b5860d0fa' date '16 February 2011' time '11:17:16.084 am' author 'cmm' ancestors ((name 'Kernel-fbs.546' message 'Allow one to declare a new class when one refers to the as-yet-undeclared class in a class-side method.

(http://bugs.squeak.org/view.php?id=7606)' id '89f8153f-e938-c742-9f8b-002d8e55612c' date '15 February 2011' time '4:04:05.286 pm' author 'fbs' ancestors ((name 'Kernel-nice.545' message 'Merge Kernel-spd.444 to allow shadowing of a global namespace variable by a local class variable or shared pool variable.
RATIONALE: forbiding this shadowing works against encapsulation. It prevents packages with a local class var from loading when a concurrent package defined a global. Forbiding is thus like reserving every class var name. Non sense.

Kernel-spd.444 did also remove some methods, but I did not replay those changes as they are unrelated and undocumented.

* fixed Class>>canFindWithoutEnvironment: (it was actually checking the environment, making the behavior like bindingOf:) and added test to KernelTests
* changed Class>>declare: and Class>>addClassVarName:
	- no longer check the environment for conflicts
	- conflict error message clarified
* made conflict error in #addClassVarName: resumable to match the behavior of #declare:' id 'e5d876d4-c609-4776-b5e6-7266e46f842e' date '13 February 2011' time '9:25:27.036 pm' author 'nice' ancestors ((name 'Kernel-nice.544' message 'Merge nice.533 (deepCopy clean-up)' id 'fb9a4157-1703-412a-86d2-1d54975b3e5f' date '13 February 2011' time '8:51:31.641 pm' author 'nice' ancestors ((name 'Kernel-nice.543' message 'Cherry pick some changes from Pharo:

avoid inlining #selectors #classVarNames
use #cull:cull: instead of #valueWithPossibleArgs:
patch needsFrameSize: for the case of perform:withArguments: (required by old VM, not Cog)
better comment for Fraction hash' id '3643fbe2-52ce-4d82-80d9-1399706937f3' date '13 February 2011' time '8:46:54.829 pm' author 'nice' ancestors ((name 'Kernel-nice.542' message 'thu shalt not invoke super in vain' id 'ea1d8beb-aa2d-4cf3-8389-2072df48f6e3' date '4 February 2011' time '1:00:46.508 am' author 'nice' ancestors ((name 'Kernel-ul.541' message 'Removed MethodDictionary''s #cleanUp: because HashedCollection''s #cleanUp: does this too.' id '71325767-a1b6-9b48-beb4-1e760c6b576f' date '31 January 2011' time '12:09:23.308 am' author 'ul' ancestors ((name 'Kernel-ul.540' message '- updated CompiledMethod''s comment as suggested by http://bugs.squeak.org/view.php?id=7570' id 'a66e5204-4090-2149-8c6a-d65fa1cc4dd3' date '29 January 2011' time '1:21:18.82 pm' author 'ul' ancestors ((name 'Kernel-cmm.539' message 'Revert

 Kernel-mtf.527
 Kernel-ar.528
 Kernel-ar.529
 Kernel-ul.530
 Kernel-ar.531

until compatible VM''s are released.' id '7f10543e-ecae-4c34-81d7-45deda9c409c' date '4 January 2011' time '2:09:42.741 pm' author 'cmm' ancestors ((name 'Kernel-mtf.538' message 'added Object >> isPrimitiveCostume from tweak. Needed by an override in DisplayScanner that I''m committing to trunk for maintainability reasons' id 'f5d1b960-81d7-3848-9018-b09bea5fb643' date '31 December 2010' time '12:22:28.306 am' author 'mtf' ancestors ((name 'Kernel-nice.537' message 'Add a few spaces in order to avoid Transcript warnings about @- ambiguity when recompiling.' id 'e06ac3d0-0ae3-433e-9530-8663459c4a15' date '29 December 2010' time '4:08:14.914 pm' author 'nice' ancestors ((name 'Kernel-nice.536' message 'redo last change after an update' id '4a558059-d69d-48b6-a118-0930c12d98b9' date '29 December 2010' time '1:46:35.807 pm' author 'nice' ancestors ((name 'Kernel-nice.535' message 'revert last change because MC load order will create an infinite loop.' id '779b35c6-c256-407f-96f0-17420be3d5e6' date '29 December 2010' time '1:23:53.998 pm' author 'nice' ancestors ((name 'Kernel-nice.534' message 'Remove redundant methods.' id '21447744-bd08-42bd-a376-456564424dc5' date '29 December 2010' time '12:35:17.044 pm' author 'nice' ancestors ((name 'Kernel-nice.532' message 'A] Clean-up Behavior and Metaclass copy by using postCopy paradigm.

Advantage 1:
This cleans up the false comment of Behavior>>copy (no, it does not copy without a list of subclasses).
This cleans up the false comment of Metaclass>>copy (no, it does share the reference to the sole instance).

Advantage 2:
The new code is shorter, simpler and avoids niling thisClass temporarily (this was dangerous).

B] Fix Class>>copy : the sharedPool shall not be shared
(if you #addSharedPool: to the copy and the original already has a sharedPool, then you #addSharedPool: to the original too...).
Move the comments "Answer a copy of the receiver without a list of subclasses." where it belongs, in Class>>copy.' id '30e481ee-c2ee-4d10-8484-ec8da55ae54a' date '29 December 2010' time '10:59:42.464 am' author 'nice' ancestors ((name 'Kernel-ar.531' message 'Merge FloatMathPlugin primitives for bit-identical floating point behavior. Added two more tweaks to the prior version ensuring that Float infinity sin/cos will be treated correctly depending on whether signaling NaN''s are enabled.' id '851dfec9-327d-3d4d-95f4-a74f250fd228' date '26 December 2010' time '8:07:24.394 am' author 'ar' ancestors ((name 'Kernel-ul.530' message '- fix: reverted Float >> #arcTan: and added the primitive to that version, because it contained a bugfix. See FloatTest >> #testArcTan.
- use #isInfinite for infinity checking in Float >> #sin and Float >> #cos' id 'aa46581d-c74f-7a48-b604-6371b5b21730' date '25 December 2010' time '4:55:27.167 am' author 'ul' ancestors ((name 'Kernel-ar.529' message 'Put the infinity check back (copy and paste error).' id '004c9337-cbbe-de4f-abe2-1b7b79d6849b' date '14 December 2010' time '7:59:55.466 am' author 'ar' ancestors ((name 'Kernel-ar.528' message 'Experimental. Provide support for both signaling and quiet NaNs in various Float operations. Covered by the preference Float>>signalNaN.' id 'b083f6fc-3978-ce48-8cfd-5aa8634845de' date '14 December 2010' time '12:13:09.254 am' author 'ar' ancestors ((name 'Kernel-mtf.527' message 'Use FloatMathPlugin for bit-identical floating point operations across machines. Needed by Croquet.

Cherrypicked from Croquet:

Name: Kernel-ar.16
Author: ar
Time: 26 March 2006, 7:01:20 pm
UUID: 99b21c76-119e-5440-aff8-02dfe0ecf377
Ancestors: Kernel-tmp.15

- use FloatMathPlugin primitives for Float' id 'eee5f8ce-e738-4da7-bd87-64f50998fd53' date '13 December 2010' time '5:03:32.48 pm' author 'mtf' ancestors ((name 'Kernel-mtf.526' message 'make stack dumps more verbose by printing more stack frames in more detail

Cherrypicked from Cobalt:

Name: Kernel-mtf.40
Author: mtf
Time: 26 June 2009, 6:00:06 pm
UUID: b516a7b4-629c-11de-9e86-001124e29fe6
Ancestors: Kernel-mtf.39

made SqueakDebug* files show much more detail in the stack trace' id '200bb553-0fe3-48d1-bcf1-c7878f09a00f' date '13 December 2010' time '1:58:51.198 pm' author 'mtf' ancestors ((name 'Kernel-mtf.525' message 'Be more verbose when doing error stack dumps: print more of the local variables

Cherrypicked from Cobalt:

Name: Kernel-jrd.42
Author: jrd
Time: 30 June 2010, 12:45:19 am
UUID: a08cd094-eab0-40ef-b1c3-d04c7c06ce81
Ancestors: Kernel-mtf.41

Changed:

- Minor fix to widen the columns available in a Context partStack dump' id 'd687c458-7ad5-409f-aa44-111faf463c13' date '13 December 2010' time '1:52:49.412 pm' author 'mtf' ancestors ((name 'Kernel-ul.524' message 'merged' id '33c7fe94-ba2a-2549-af73-f6929e730009' date '12 December 2010' time '4:32:24.221 pm' author 'ul' ancestors ((name 'Kernel-ul.523' message '- added Semaphore >> #waitIfLocked:' id '809ca265-c5de-ac47-b6d6-226f80cf9245' date '8 December 2010' time '4:45:41.467 am' author 'ul' ancestors ((name 'Kernel-ul.522' message '- implemented Fraction >> #negative and ScaledDecimal >> #negative for better performance. These methods don''t allocate new objects.
- reimplemented SmallInteger printing methods (printOn:base:*) without String allocation. They are as fast as the previous versions were for base 10.
- reimplemented ScaledDecimal printing. It avoids object allocations and has better performance than the previous version. ScaledDecimals can also be printed without the scale part by using #printFractionAsDecimalOn:.' id '6927b03c-21df-1746-9a0d-115b717a5e40' date '8 December 2010' time '4:08:19.384 am' author 'ul' ancestors ((name 'Kernel-ul.521' message 'Implemented CompiledMethod >> #asString the same way Object does.

Why?
Because it raised an error, which it shouldn''t.

Why doesn''t it return a string with the bytes as characters like ByteArray does it?
Because it''s not very useful to get an unreadable string with random looking characters. Also CompiledMethod is a subclass of ByteArray only to avoid code duplication, it could be a variableByteSubclass of Object.

Why doesn''t it return the source code like Pharo does it?
Because that requires several changes in the way the sources and changes files are used (concurrency issues). And it''s a lot slower.

The related mantis issue is http://bugs.squeak.org/view.php?id=7570 .' id '3b6f8cce-0310-2d4d-91aa-deab6d13bde9' date '8 December 2010' time '3:42:40.757 am' author 'ul' ancestors ((name 'Kernel-ul.520' message 'A few changes to Semaphore:
- save a block creation + activation + a possible context switch in #critical:ifCurtailed:
- save a block creation + activation in #critical:ifError:, this changes the behavior when mutuallyExcludedBlock doesn''t understand #ifError:
- #critical:ifLocked: is guaranteed to not get locked. The earlier implementation sent #critical: which could cause a context switch, so another process could enter the critical section before the current. Also fixed the comments of this method.' id 'da185163-27f6-6a47-8ecb-e00f9fd8dd3a' date '8 December 2010' time '3:19:51.682 am' author 'ul' ancestors ((name 'Kernel-ul.519' message '- copied another two methods from BlockContext to BlockClosure. One of them fixes http://bugs.squeak.org/view.php?id=7579 .' id '630c1710-46b8-5248-bdb8-e08d99d6d9c0' date '8 December 2010' time '2:52:41.144 am' author 'ul' ancestors ((name 'Kernel-ul.518' message '- introduced Object >> #shouldBePrintedAsLiteral as a replacement for #isLiteral during printing and storing' id 'b098496d-94bb-f943-9cf9-bd07ab3b0b71' date '23 November 2010' time '1:54:49.317 pm' author 'ul' ancestors ((name 'Kernel-dtl.517' message 'Revert last change to Semaphore>>critical:ifLocked: using latest version from Cuis, which adds a method comment to explain the reason for use of #== rather than #=' id '2c83e064-fa7d-4fc0-8e81-140b88e48a49' date '15 November 2010' time '12:49:28.804 pm' author 'dtl' ancestors ((name 'Kernel-ul.516' message '- reverted Object >> #inboundPointersExcluding: and added a comment with some explanation about the use of #==.' id '6faf4568-4121-8543-897b-a4aef9f01454' date '15 November 2010' time '11:23:57.645 am' author 'ul' ancestors ((name 'Kernel-ul.515' message '- use #= for integer comparison instead of #== (http://bugs.squeak.org/view.php?id=2788 )' id '2254c085-e86b-ef4e-916c-4e2008a6e9dc' date '15 November 2010' time '10:32:19.849 am' author 'ul' ancestors ((name 'Kernel-ul.513' message '- DateAndTime startup enhancement from Cuis part 2' id '887f4907-c347-2e45-8d2e-dd7814ac4248' date '7 November 2010' time '12:08:10.875 am' author 'ul' ancestors ((name 'Kernel-ul.512' message '- DateAndTime startup enhancement from Cuis part 1' id 'f35cd221-68a5-f04b-b6bc-d07df326b3d3' date '7 November 2010' time '12:05:13.149 am' author 'ul' ancestors ((name 'Kernel-nice.511' message 'Correct the confusion radiansToDegrees/degreesToRadians
Thanks Bert' id '4f6eaafc-6665-4092-ac07-d87ecb2b5d30' date '1 November 2010' time '11:59:51.145 am' author 'nice' ancestors ((name 'Kernel-nice.510' message 'Provide an implementation of #degreeCos and #degreeSin such that results are exact for any multiple of 90.

Care is also taken to evaluate the sine between -90 and 90, this will avoid #degreesToRadians and i386 FPU sine fonction to accumulate round off errors due to approximate representation of pi.
We can thus evaluate 240 degreeCos with at most 1 ulp error. It''s not perfect, but better than previous implementation.

For cosine, we know that:
	cosd(x)=cosd(abs(x))
	cosd(x)=sind(90-x)
thus the trick is to evaluate:
	cosd(x)=sind(90-abs(x)) after appropriate modulo in [-180,180[
This way, we are sure to evaluate the sine between -90 and 90
The #degreesToRadians and #sin are used rather than #degreeSin to avoid cycles.

For sine, it would be necessary to evaluate either
sind(x) if abs(x) <=90
or sind(180-x) if abs(x) >= 90
A possible implementation would be:
	| x |
	x := 90 + self \\ 360 - 90.
	x >= 180 ifTrue: [x := 180 - x].
	^x degreesToRadians sin
We prefer evaluating cosd(90-x) thus providing a branch free implementation.' id '80b9fa44-3abc-4414-adae-10f3f03b0420' date '31 October 2010' time '10:25:03.794 pm' author 'nice' ancestors ((name 'Kernel-ul.509' message '- merged' id '63432d21-351a-624f-b52d-3181148441bd' date '28 October 2010' time '2:40:18.61 am' author 'ul' ancestors ((name 'Kernel-nice.508' message 'Correct #isWords comment. There is no such thing as 16-bit variables.
Don''t know what would be the answer in a 64 bit image...' id 'f75f55d1-4fc4-4ba7-8790-248dea6d3136' date '26 October 2010' time '9:17:01.308 pm' author 'nice' ancestors ((name 'Kernel-ul.507' message '- use blocks instead of symbols
- minor Monitor tweaks' id 'f2a1ac34-c8a3-ae48-b38c-271043354faa' date '17 October 2010' time '3:44:06.845 am' author 'ul' ancestors ((name 'Kernel-nice.506' message 'Don''t feed the exception handler with #valueWithPossibleArgument:, but rather with #cull:
Rationale:
No exception handler expects more than 1 argument, and feeding any over argument with nil is useless anyway.' id '814203df-d349-4dfa-9534-37093ec7b0d9' date '11 October 2010' time '11:35:57.51 pm' author 'nice' ancestors ((name 'Kernel-dtl.505' message 'Remove Object>>inline: and Object>>var:declareC:
These are part of the VMMaker package and are no longer required in trunk.
(Note - replaces Kernel-dtl.504, which was posted in error)' id 'e1cfd897-c49f-4133-b46f-89c041db1706' date '10 October 2010' time '4:00:44.638 pm' author 'dtl' ancestors ((name 'Kernel-nice.503' message 'Remove #hashMappedBy: and #identityHashMappedBy:' id '23d5be4d-c5ff-4b77-97f7-fb925e59be1f' date '1 October 2010' time '10:41:05.264 pm' author 'nice' ancestors ((name 'Kernel-eem.502' message 'include ContextPart>>objectSize: amongst the mirror primitives' id '2cf495fb-5958-4ba2-afdc-18caf380caef' date '25 September 2010' time '8:31:12.094 pm' author 'eem' ancestors ((name 'Kernel-eem.501' message 'Add mirror primitives which can be used for accurate
execution simulation (a.k.a. debugging) of proxies.' id '5b55eae3-594b-4416-9d47-5a4ebaabb238' date '25 September 2010' time '7:55:34.708 pm' author 'eem' ancestors ((name 'Kernel-ul.500' message 'Finalization enhancements.' id '3a530acf-ede2-6141-9d3e-604d16abea08' date '26 September 2010' time '2:35:30.752 am' author 'ul' ancestors ((name 'Kernel-nice.499' message 'Fix the tricky cases of the copy sign function (#sign:) in case of Float negativeZero' id 'a30fc6fb-96fb-427a-af36-cf4594848eee' date '22 September 2010' time '12:09:25.27 am' author 'nice' ancestors ((name 'Kernel-nice.498' message 'Remove the garbage category that was created by running the tests.' id '16fe2ac5-1c59-d847-acf6-97f931fb187a' date '21 September 2010' time '12:30:10.283 pm' author 'nice' ancestors ((name 'Kernel-nice.497' message 'Patch for http://bugs.squeak.org/view.php?id=7352 in Kernel-nice.482 broke previously possible usage of BlockClosure as actions (see #when:evaluate:).
Implement required events-support message in BlockClosure to restore this feature.' id 'bfd5c6a8-85ba-9345-a68a-ebb6bc31fefc' date '21 September 2010' time '10:30:22.684 am' author 'nice' ancestors ((name 'Kernel-cmm.496' message 'Changed nomenclature of "signature" to "reference".' id '8ff68b10-188a-442a-9cb9-a382bd653600' date '20 September 2010' time '5:27:33.945 pm' author 'cmm' ancestors ((name 'Kernel-mtf.495' message 'added useful pointer tracing tools to the base classes. The core of the fix for http://bugs.squeak.org/view.php?id=7158' id '06402399-42b9-465b-b695-a86471b12533' date '19 September 2010' time '8:01:13.128 pm' author 'mtf' ancestors ((name 'Kernel-mtf.422' message 'Part 2 of 4 of the fix for 
http://bugs.squeak.org/view.php?id=7158' id 'bb1aff65-38e1-42fd-9d01-ab7c2c577757' date '10 March 2010' time '7:27:15.815 pm' author 'mtf' ancestors ((name 'Kernel-mtf.421' message 'Preload a critical method just in case of load order issues. Part 1 of 4 of the fix for 
http://bugs.squeak.org/view.php?id=7158' id '0d47896c-fa27-4804-b345-ea3c8a17c1d1' date '10 March 2010' time '7:24:06.105 pm' author 'mtf' ancestors ((name 'Kernel-ar.420' message 'Avoid dictionary protocol in Smalltalk.' id 'a8de6a84-8494-b34e-bfaa-eef854ed79e6' date '5 March 2010' time '8:55:49.922 pm' author 'ar' ancestors ((name 'Kernel-ar.419' message 'Use Smalltalk globals instead of Smalltalk as default environment.' id '2253493e-ff97-274a-92af-bc026259d12d' date '5 March 2010' time '7:55:34.977 pm' author 'ar' ancestors ((name 'Kernel-ar.418' message 'Fix some questionable messages sent to the environment of classes, including #garbageCollect, #compactClassesArray and more. All of these belong sent to Smalltalk not the local environment.' id '3e6da606-e78d-1b45-adaf-af57902b8b4a' date '5 March 2010' time '7:34:04.564 pm' author 'ar' ancestors ((name 'Kernel-cmm.417' message 'Imcorporated fix for Year>>#previous, for leap years.' id '1b67ae14-7a37-4ca8-ae8c-74371af5f3b5' date '5 March 2010' time '4:00:52.211 pm' author 'cmm' ancestors ((name 'Kernel-ar.416' message 'Remove last remaining uses of SyntaxError to indicate non-interactive compile.' id 'fb8636b8-5285-5a41-a94a-c698a256552f' date '4 March 2010' time '11:41:31.743 pm' author 'ar' ancestors ((name 'Kernel-ar.415' message 'Attempt to complete ensure blocks that are currently under execution when terminating a process.' id 'dc49d9cd-b446-8747-8337-1712a9d0258f' date '3 March 2010' time '9:42:13.86 pm' author 'ar' ancestors ((name 'Kernel-dtl.414' message 'Eliminate the "special menu..." pick from StringHolder class>>shiftedYellowBottonMenuItems for Morphic Retain a hook for it in MVC.

Rationale: The special menu items selection is currently broken, but never did anything useful in Morphic AFICT. Best to just remove the option when not in MVC, but leave the MVC hook in hopes of fixing the original MVC implementation later (other MVC issues prevent this now).

This changes adds another #isMorphic send, which is undesirable. However, a number of menu construction methods already have this issue, so a general solution is needed for tailoring these menus to different project types.' id 'bca26e8e-d0b7-4ee0-a8f9-c27994a165e6' date '28 February 2010' time '1:30:32.921 pm' author 'dtl' ancestors ((name 'Kernel-dtl.413' message 'Remove need for #isMorphic in Object>>primitiveError:' id '4caf42d6-8202-4818-b86e-de4a60c4e1e3' date '27 February 2010' time '11:48:03.105 am' author 'dtl' ancestors ((name 'Kernel-ar.412' message 'Introduce a cleanUp/cleanUp: protocol based on the proposal from Mantis:

http://bugs.squeak.org/view.php?id=7244

The cleanUp protocol takes an optional argument to indicate whether we''re doing an aggressive cleanup (which involves deleting projects, change sets, and possibly other destructive actions) or a more gentle cleanup that''s only supposed to clean out transient caches.
' id '59fae938-7c7e-714c-8299-9d6e1ae5583b' date '26 February 2010' time '11:26:03.981 pm' author 'ar' ancestors ((name 'Kernel-ar.411' message 'Add MethodDictionary class>>compactAllInstances to save space in releases. Compacting all MDs in my images saves 600k in image size which isn''t bad at all.' id 'b69a28db-8475-bc4b-89ed-285ccf3841cd' date '26 February 2010' time '7:36:40.257 pm' author 'ar' ancestors ((name 'Kernel-ul.410' message '- use the new way to create an ObjectFinalizer' id 'd5442399-f708-f940-9ef6-17ebccd4a654' date '26 February 2010' time '3:13:26.593 pm' author 'ul' ancestors ((name 'Kernel-nice.409' message 'Cuis 2.2 Semaphore comments' id 'b2b17afb-4018-414e-9deb-0ed629e8c9db' date '25 February 2010' time '11:53:34.677 pm' author 'nice' ancestors ((name 'Kernel-nice.408' message 'Let NumberParser failBlock take 2 optional arguments (errorString and source position) thanks to new cull: protocol.

This will help Parser inserting error message inline.' id 'fbd33dfc-72c8-f84f-ae5d-bc0cdec1ca9f' date '25 February 2010' time '2:48:03.13 am' author 'nice' ancestors ((name 'Kernel-ar.407' message 'Merging Kernel-ar.404 and Kernel-ul.406' id '7a8e9c26-6571-2e48-88b9-a31af15e914d' date '24 February 2010' time '3:03:06.161 pm' author 'ar' ancestors ((name 'Kernel-ar.404' message 'Merging Kernel-nice2.403 and Kernel-nice403.' id 'b5a3e58a-c67c-7a42-8ab9-9fcf8121cfdb' date '24 February 2010' time '2:59:13.45 pm' author 'ar' ancestors ((name 'Kernel-nice2.403' message '1) Introduce a Number class>>#readSqueakSyntaxFrom:  for Compiler/Scanner. This will later enable introduction of extended for #readFrom:
2) Connect the hook for allowing leading + sign in Integer reading.

This is a correction of Kernel-nice.403' id '49e07394-1a62-5e4f-a326-9dbdf0513919' date '24 February 2010' time '11:59:00.675 am' author 'nice' ancestors ((name 'Kernel-nice.402' message 'Naive implementation of Integer>>bitAt:put:' id '804739fb-f633-4d4d-9717-2b69cea9c2cb' date '16 February 2010' time '10:08:26.271 am' author 'nice' ancestors ((name 'Kernel-ar.401' message 'Raise DuplicateVariableError in ClassBuilder.' id 'a3240363-adee-4943-ba9b-a4e36a98b628' date '13 February 2010' time '3:13:52.934 pm' author 'ar' ancestors ((name 'Kernel-nice.400' message 'Change the policy for conversions to ScaledDecimal
Always honour the number of decimal places (scale) passed as argument to asScaledDecimal:

When no scale is passed, uses strictly necessary number of decimal places if the number is exact (not Float) and if a finite decimal representation exists.
Otherwise uses the default of 8 decimal places.

This makes more sense IMO than previous implementation. Integer version was screwing the user by not fulfiling the requested number of decimal places, I can''t believe it was the right interpretation of the ANSI standard.... Or someone gives me a good rationale.' id '20e6c813-25cb-7548-9ba7-63a83f3b5193' date '13 February 2010' time '11:31:43.4 pm' author 'nice' ancestors ((name 'Kernel-nice.399' message 'Merge minor changes from Pharo.
Correct a bug (concatenating aString , aCharacter)' id '426cc492-dbd7-ac48-9efb-d32c46007a76' date '13 February 2010' time '5:14:04.309 pm' author 'nice' ancestors ((name 'Kernel-nice.398' message 'Fix
http://bugs.squeak.org/view.php?id=3360
http://bugs.squeak.org/view.php?id=3374
http://bugs.squeak.org/view.php?id=6601

hash and = are now reconciled for numbers.
= is now transitive for numbers.

WARNING: now, tests like (1/10 = 0.1) will answer false.
This is expected, and more than expected, this is wanted.
Float are inexact and testing for strict equality is not a clever thing to do.
All this has been longly debated at http://permalink.gmane.org/gmane.comp.lang.smalltalk.pharo.devel/10642
http://thread.gmane.org/gmane.comp.lang.smalltalk.sapphire.devel/10223/focus=10228

Please, read carefully this thread to make an opinion before raising your voice.
It can break code eventually,  so I''m all ears to real case, and willing to help fixing. But please, real examples, not theoretical (after 8 month change in Pharo, I''m not aware of further complaints).
' id 'f1525362-d01a-214c-94fe-2bb3a5fffa89' date '13 February 2010' time '4:31:00.389 am' author 'nice' ancestors ((name 'Kernel-nice.397' message 'Change coercion policy: a Fraction is now converted to ScaledDecimal when involved with ScaledDecimal arithmetic as would an Integer do.
Rationale: (1/1) is a Fraction represented as an Integer, so we cannot really dissociate the two behaviors.' id 'a195f8dc-bc5f-b645-986c-0dfa32fc17c8' date '13 February 2010' time '3:53:50.555 am' author 'nice' ancestors ((name 'Kernel-nice.396' message 'Now read Float "exactly" (answer nearest Float) by using SqNumberParser.
This solves http://bugs.squeak.org/view.php?id=6982
This requires a fix of Float initialize, otherwise the old max float literal would overflow.

As mentionned by John McIntosh, this change has side effects and makes a few tests fail:
1) reading an invalid number raise an Error rather than answering 0
2) undocumented syntax .1e2 and 1.e2 are no more accepted

IMO, we should not fix 1), we should fix the users. For this we provide a #readFrom:ifFail:
We can fix 2) later by using ExtendedNumberParser where due.' id 'b435f6ab-8347-cc45-b850-ef0aa041a44d' date '13 February 2010' time '2:58:57.708 am' author 'nice' ancestors ((name 'Kernel-nice.395' message 'Arrange for ExtendedNumberParser to return the valid leading number instead of failing because of invalid radix
Example:
''1r'' -> 1
''2r3'' -> 2' id '1f313115-2fff-1a4c-93f1-d6bbfecb3ad5' date '13 February 2010' time '2:29:51.4 am' author 'nice' ancestors ((name 'Kernel-nice.394' message 'Comment the NumberParser classes and subclasses.
Add an ExtendedNumberParser that can read all Squeak numbers plus numbers like these:

+1
+1.
+1.e-2
1.e+2
.1
-.1e3
3r.02
3r-1.e-2
.1s2
+1.s3

Cerise sur le gteau:
   +10r+1.e+2
(use only if you really feel positive)

Now we just have to decide where to connect this ExtendedNumberParser.
It cannot be used in Parser because it would currently gobble the sentence period separator after a digit....
Either we connect it directly in String>>#asNumber
Or we change Parser to use a #smalltalkReadFrom: or SqNumberParser instead of Number>>#readFrom:.' id '9e50f78e-d3dd-6245-853f-549a3e120d59' date '13 February 2010' time '1:22:00.832 am' author 'nice' ancestors ((name 'Kernel-nice.393' message 'Separate NumberParser as abstract class and SqNumberParser as Squeak syntax special case.

Provide a hook for allowing plus sign before number and plus sign in exponent.

Provide a FORTRANNumberParser example to demonstrate how simple it is to subclass.
My goal is to not let this class in Kernel, but to replace it with an ExtendedNumberParser to handle String asNumber. We will have to agree on expectations first.

More subclasses can be found in VW public store SYSEXT-NumberParser' id 'c2f2a753-02ef-7740-ae98-db5aee561a21' date '13 February 2010' time '12:22:56.113 am' author 'nice' ancestors ((name 'Kernel-dtl.392' message 'Add Object>>isTextView to support TranscriptStream>>countOpenTranscripts without #isKindOf: tests on MVC and Morphic views.' id 'd8fdf4b9-e3c1-437f-bb89-36e44e0766d3' date '10 February 2010' time '5:57:55.219 pm' author 'dtl' ancestors ((name 'Kernel-cmm.391' message 'Added BlockClosure>>#on:do:on:do: and #on:do:on:do:on:do:.' id '14cf6095-5b96-4bbb-aa1c-fa8aab77b0b8' date '7 February 2010' time '5:07:37.371 pm' author 'cmm' ancestors ((name 'Kernel-mtf.390' message 'merged 389 and 388: stream readability fix and prepping Process for Cobalt' id 'e54aaf16-579b-4912-858c-961bd18ff8ba' date '4 February 2010' time '7:50:05.434 pm' author 'mtf' ancestors ((name 'Kernel-mtf.389' message '7219: Improve Streams Usage Readability
http://bugs.squeak.org/view.php?id=7219

Adds << to streams to be mostly like nextPutAll, but uses putOn: so that it works with any object.' id '6a4c765f-eddf-4ff3-963b-98ca79013299' date '4 February 2010' time '7:44:03.918 pm' author 'mtf' ancestors ((name 'Kernel-nice.387' message '1) avoid a useless block non local return
2) move a temp assignment outside block' id '233eca14-15af-4626-8386-a73b38f29367' date '4 February 2010' time '8:50:09.339 pm' author 'nice' ancestors ((name 'Kernel-ar.386' message 'Merging Date class>>#readFrom:pattern: one more time (got accidentally replaced by a newer version without being merged).' id '72d71775-3ee2-bb41-b1db-2a527b7cc25c' date '2 February 2010' time '10:52:47.731 am' author 'ar' ancestors ((name 'Kernel-ar.385' message 'Fix handling of Class>>binding:
- Verify that the registered class in the environment is the receiver
- Install a common binding after recompilation 
- Add an accessor for installing the binding in CompiledMethod' id 'ca133c5e-fb58-834d-aab1-1a61b83d6c3d' date '2 February 2010' time '10:03:42.112 am' author 'ar' ancestors ((name 'Kernel-ar.384' message 'Sets with nil: Merge code from http://bugs.squeak.org/view.php?id=7413 before it rots even more.' id '312bc627-1351-5943-a531-7f75e003e29b' date '1 February 2010' time '8:22:34.594 pm' author 'ar' ancestors ((name 'Kernel-tfel.383' message 'Seems that (according to ISO8601) reading a Time from a stream without explicit UTC offset should not assume the local timezone, but rather UTC. 
This fixes DateAndTimeTest>>#testReadFrom' id '7b9f7929-2ba0-4997-bac3-23868341cb31' date '28 January 2010' time '2:37:15.04 am' author 'tfel' ancestors ((name 'Kernel-ul.382' message 'In MethodDictionary
- cosmetic changes: use #ifNotNil: if possible
- ensure that #rehashWithoutBecome doesn''t send #become:, making #rehashAllInstances a lot faster
- ensure that #removeAll preserves the capacity
- deprecated #methodArray, it''s the same as #array
- new comment for #new' id '0741847a-6bd5-c145-aa63-3c5e598d1742' date '25 January 2010' time '10:40:19.44 pm' author 'ul' ancestors ((name 'Kernel-dtl.381' message 'Use probabilistic algorithm (Knuth) for testing primality of large integers, and add method comments for explanation.

Rationale for use of probabilistic algorithm provided by Enrico Spinielli:
  http://lists.squeakfoundation.org/pipermail/squeak-dev/2009-December/142372.html' id '70c5d3fd-a468-4289-b9b5-101cdaea72b8' date '23 January 2010' time '2:56:10.622 pm' author 'dtl' ancestors ((name 'Kernel-nice.380' message 'Fast-up linesOfCode' id '06edff56-56d3-4b50-baf5-34cdd716ca88' date '19 January 2010' time '12:38:51.701 am' author 'nice' ancestors ((name 'Kernel-nice.379' message 'Correct a small bug in SqNumberParser #expected: does not expect a block argument.
The bug was never reached because requestor is never set. The idea of requestor was st80 compiler based: insert the error message in source text, but it''s not active yet.' id 'ac207c0c-7d27-4f71-ac89-83342ab1a41a' date '17 January 2010' time '6:49:12.215 pm' author 'nice' ancestors ((name 'Kernel-nice.378' message 'Fix so that (Float class>>#nan) = (Float class>>#nan)' id 'f26ee484-db82-4298-9c58-02504061ec96' date '16 January 2010' time '6:35:14.553 pm' author 'nice' ancestors ((name 'Kernel-nice.377' message 'add #selectorsAndMethodsDo: and use it to fast up some operations
This is 4x faster than class selectorsDo: [:s | class compiledMethodAt: s]' id '9795d8b5-764d-4087-934b-5f540004008b' date '15 January 2010' time '11:15:25.576999999 pm' author 'nice' ancestors ((name 'Kernel-bf.376' message '- add DateAndTime>>asUnixTime' id '0c8eee97-6a0c-4e7a-ad21-990fc5adbd35' date '15 January 2010' time '12:57:41.202 pm' author 'bf' ancestors ((name 'Kernel-ar.375' message 'Promote isScriptEditorMorph to Object.' id '5ee824c1-c5cc-e54e-96a0-b7a710bfb9a4' date '11 January 2010' time '8:03:55.312 pm' author 'ar' ancestors ((name 'Kernel-ul.374' message '- code critics' id '7e31dbcf-2831-884b-af07-f7969ebd5ef5' date '11 January 2010' time '8:58:21.133 am' author 'ul' ancestors ((name 'Kernel-ar.373' message 'Move belongsToUniClass back to Kernel package.' id '865d4429-ff44-9649-a771-df1bc1125630' date '6 January 2010' time '11:55:08 am' author 'ar' ancestors ((name 'Kernel-nice.372' message 'move a temp assignment to outer scope' id 'a87b1281-a402-4f55-b8e8-bb9b0f209125' date '5 January 2010' time '9:25:23 am' author 'nice' ancestors ((name 'Kernel-nice.371' message 'Let allSubclasses and withAllSubclasses answer an OrderedCollection rather than a Set.

PORTABILITY ISSUES:: application that would need a Set should use an explicit asSet.' id 'daad1ac4-4dd9-40ac-a271-79b28c02fde3' date '5 January 2010' time '2:34:57 am' author 'nice' ancestors ((name 'Kernel-dtl.370' message 'Update CompiledMethod>>initialPC to use #wordSize. This is the method as implemented in the original 64-bit image (author di).

Reference Mantis 7430: CompiledMethod>> initialPC calculation is wrong for 64bit images' id 'e0308f0f-c9ab-41a3-b016-838ddac89d75' date '4 January 2010' time '9:45:19 am' author 'dtl' ancestors ((name 'Kernel-ar.369' message 'Make Protocols unloadable: Classify various extension methods in Protocols.' id '1060cec2-3a71-d443-9056-c247c66ab98f' date '4 January 2010' time '2:43:40 am' author 'ar' ancestors ((name 'Kernel-ar.368' message 'Make Etoys unloadable: Move lots of methods to Etoys package. Remove installTilesAsSelection support.' id 'ecc189b7-7be8-e343-ba67-3eb7c3278c95' date '4 January 2010' time '12:39:10 pm' author 'ar' ancestors ((name 'Kernel-nice.365' message 'move #basicType to EToys
remove some #or:or: #and:and: sends
change categorizer duplicate strategy' id '75d88db0-4bfc-4c43-9b99-9f82b770d85d' date '3 January 2010' time '3:40:17 am' author 'nice' ancestors ((name 'Kernel-ar.364' message 'Add Behavior>>allTraits as another backstop for traits unloading.' id 'f6172dc5-a959-eb46-b8da-6ce5ba6d9742' date '3 January 2010' time '1:13:39 am' author 'ar' ancestors ((name 'Kernel-ar.363' message 'Making traits unloadable: We need three backstop methods in Behavior.' id 'bb277eb0-1fa6-ef4f-94d3-e29d4ebfc9ee' date '1 January 2010' time '7:18:12 am' author 'ar' ancestors ((name 'Kernel-ul.362' message '- speed up method trailer creation
- speed up source fetching from source files' id '96615f68-2456-7745-9ecb-335973913252' date '31 December 2009' time '7:04:23 am' author 'ul' ancestors ((name 'Kernel-ul.361' message '- speed up method trailer creation
- speed up source fetching from source files' id '8b6f0a12-2da7-eb4a-a8ab-907e6b9385f2' date '31 December 2009' time '6:31:53 am' author 'ul' ancestors ((name 'Kernel-ar.360' message 'Fix small typo in obsoletion - removeTraitUser: should be sent to the elements of the composition.' id '64a98687-3714-f34f-abf5-0eef057762aa' date '31 December 2009' time '3:42:08 am' author 'ar' ancestors ((name 'Kernel-ar.359' message 'Final cleanup touches: Avoid unused protocol, remove reclassification.' id '7337f125-8970-c049-abdd-31f1fcad7eca' date '31 December 2009' time '2:47:51 am' author 'ar' ancestors ((name 'Kernel-ar.358' message 'Some recategorization and removal of empty categories.' id '64524f19-7ed5-c447-b0e7-87b498e927c2' date '30 December 2009' time '3:25:44 am' author 'ar' ancestors ((name 'Kernel-ar.357' message 'Remove obsolete iVars.' id '48332a10-366b-6546-822e-c1f76c682cb0' date '30 December 2009' time '2:37:27 am' author 'ar' ancestors ((name 'Kernel-ar.356' message 'Temporarily disable warning about class redefinition to remove unused ivars from traits.' id 'b39efe07-b842-5d4f-813e-47f315bd4fdf' date '30 December 2009' time '2:12:47 am' author 'ar' ancestors ((name 'Kernel-ar.355' message 'Remove the egregious hack to rewrite selectors in source code due to sharing compiled methods.' id 'b1e48547-ee40-b64a-9563-42b944955c99' date '30 December 2009' time '3:27:54 am' author 'ar' ancestors ((name 'Kernel-ar.354' message 'Remove traitComposition accessors.' id 'c6632104-c317-9147-88c3-fe024debc35b' date '30 December 2009' time '3:25:09 am' author 'ar' ancestors ((name 'Kernel-ar.353' message 'Prepare to push the trait composition into TraitOrganizer to avoid duplication in three places (Class, Metaclass, TraitDescription).' id '6854a358-f04b-c04c-9584-10181b0c5523' date '30 December 2009' time '2:59:15 am' author 'ar' ancestors ((name 'Kernel-ar.352' message 'Shipping NanoTraits part 4: Here comes the big clean up. Let''s see if it''s loadable :-)' id '090c5c02-8b1a-d34f-a88d-1c203c1ddcfa' date '29 December 2009' time '5:41:30 am' author 'ar' ancestors ((name 'Kernel-ar.351' message 'Shipping NanoTraits part 3: A hand ful of small changes that pave the way for the (major) follow-on cleanup.' id 'adffc800-4eb7-2f43-a55d-f827d0627605' date '29 December 2009' time '4:53:50 am' author 'ar' ancestors ((name 'Kernel-ar.350' message 'Shipping NanoTraits part 2: Commit Kernel package back after NanoTraits install.' id 'd0cb0117-72d6-384e-8065-adcb9229b9ea' date '29 December 2009' time '4:35:59 am' author 'ar' ancestors ((name 'Kernel-ar.349' message 'Strange, somehow a class var was dropped during last check-in. Put it back.' id '3228e52d-3bba-ce4d-9175-db4e535283f8' date '28 December 2009' time '2:15:28 am' author 'ar' ancestors ((name 'Kernel-ar.348' message 'NanoTrait preparations: Vector all traits dependencies through a protocol in ClassDescription so that we can have alternative trait versions be the default. Provide CompiledMethod>>methodHome to ask for the original place a particular method was defined (methodHome == methodClass for all ''normal'' methods). Additional guards for Berne trait idiosynchracies (updateOrganizationSelector: etc) that simply do not apply for alternative traits.' id '9537d1a1-5ef5-c941-b4a6-601d0aa6ad76' date '28 December 2009' time '1:35:01 am' author 'ar' ancestors ((name 'Kernel-dtl.347' message 'CompiledMethod>>checkOKToAdd:at: defers to SourceFiles instance because no end of changes check is needed for ExpandedSourceFileArray.' id 'f6caca0d-1ea4-422c-a891-5bf948673406' date '27 December 2009' time '11:33:42 am' author 'dtl' ancestors ((name 'Kernel-nice.346' message 'Cosmetic: move or remove a few temps inside closures' id 'b6d92933-9056-4bb8-a54d-ffd1bbcc74b6' date '27 December 2009' time '5:10:43 am' author 'nice' ancestors ((name 'Kernel-nice.345' message 'Revert #formalParametersAt: it was traitified' id '87afe7e1-4d46-4e1f-b308-115fac49c41f' date '25 December 2009' time '8:58:24 am' author 'nice' ancestors ((name 'Kernel-nice.344' message 'fix #formalParametersAt: with new support method in Parser

Note: this method has no senders in trunk.
I suspect it does not have much value...
I presume it could have been used by refactoring tools, but RB must be using its own parser...
Anyone knows of a package using #formalParametersAt: ?' id '5e5f0f23-ff9c-4f2c-b175-21cc8a639d6d' date '25 December 2009' time '7:23:49 am' author 'nice' ancestors ((name 'Kernel-nice.343' message 'Smalltalk commandments #7:
''Thu shalt not invoke super when self could do the job''' id '155bf515-f41c-bc40-9dad-f98c01dfce8d' date '24 December 2009' time '10:22:02 am' author 'nice' ancestors ((name 'Kernel-nice.342' message 'Use scaledIdentityHash for hashing' id '18953e6e-7722-49c9-9247-4606de701531' date '24 December 2009' time '3:09:11 am' author 'nice' ancestors ((name 'Kernel-Igor.Stasenko.341' message '- adding support of embedding source code in trailer' id '164fdcb7-0f83-ce49-8e4d-db607a365d78' date '22 December 2009' time '10:57:21 am' author 'Igor.Stasenko' ancestors ((name 'Kernel-ul.340' message '- fix CompiledMethodTrailer >> #decodeZip (by Igor)' id 'd012b8cc-226a-6a48-b920-543e38da2e2f' date '22 December 2009' time '8:11:40 am' author 'ul' ancestors ((name 'Kernel-ar.339' message 'Merge Kernel-ar.338 which contains the remaining cleanup code. This brings everything back in sync.' id 'b7dccff4-4784-a648-9772-c2002ee8184c' date '22 December 2009' time '7:05:22 am' author 'ar' ancestors ((name 'Kernel-ar.338' message 'Remove *just* CompiledMethodTrailer>>new to fix the load issue encountered earlier.' id '01e676cd-bb48-ce4b-9229-2f3ea6a3bf4c' date '22 December 2009' time '6:38:37 am' author 'ar' ancestors ((name 'Kernel-ar.336' message 'Once more: Convert those trailers!
(but this time the method is idempotent so calling initialize twice should have no effect).' id '3bc94ec9-ab5f-544f-9525-4f11e357ec43' date '22 December 2009' time '1:30:34 am' author 'ar' ancestors ((name 'Kernel-ar.334' message 'CompiledMethodTrailer phase 3.' id '0ba0630e-fd40-c748-a7ef-7ed81c29ff94' date '22 December 2009' time '1:00:12 am' author 'ar' ancestors ((name 'Kernel-ar.333' message 'CompiledMethodTrailer phase 2.' id 'c8dddbe1-8097-114b-bed9-c8053064e62d' date '22 December 2009' time '12:49:25 pm' author 'ar' ancestors ((name 'Kernel-ar.332' message 'CompiledMethodTrailer phase 1: Main classes' id '417d4df8-ccf7-484a-8c19-63b0402d4921' date '22 December 2009' time '12:39:41 pm' author 'ar' ancestors ((name 'Kernel-dtl.331' message 'Add BlockClosure>>sender required for MessageTally class>>tallySends:

Harvested from Pharo (nice 4/14/2009 19:09).' id '20ffffda-86bc-47a7-8eae-cd11b55aa65e' date '18 December 2009' time '11:32:44 am' author 'dtl' ancestors ((name 'Kernel-bs.330' message 'fixed AdditionalMethodState >> #at:put to make newly added test green' id 'bdbd182a-85fc-4e00-a1e0-7924f4a171cd' date '18 December 2009' time '1:42:28 am' author 'bs' ancestors ((name 'Kernel-jcg.329' message 'Support for using #future and #future: keywords to conveniently send asynchronous messages.

Core support is in the Kernel package, and the default behavior is defined by Project, in the System package.' id '9ff6251d-dc4f-4f49-a1ed-476c4b0ba2f9' date '17 December 2009' time '11:59:29 am' author 'jcg' ancestors ((name 'Kernel-ul.328' message '- added a mirror primitive' id 'a4bc72d5-25ee-5a44-8cf9-03286a9fd2dc' date '15 December 2009' time '8:24:33 am' author 'ul' ancestors ((name 'Kernel-ul.327' message '- MethodDictionary >> #at:put: doesn''t use #fullCheck anymore' id 'd87966ba-a11b-4d45-817f-5bdd4447476f' date '14 December 2009' time '6:17:10 am' author 'ul' ancestors ((name 'Kernel-ar.326' message 'Processor anyProcessesAbove: should consult allSubInstances of Process.' id 'a3bced30-2678-534f-a9cc-dc8328748a76' date '10 December 2009' time '12:36:28 pm' author 'ar' ancestors ((name 'Kernel-ul.325' message '- don''t parse the method if the selector is not an alias selector in CompiledMethod >> #getSourceFor:in:. This improves source fetching performance.' id '4f783a4d-1f0d-4248-8e31-6bf866b519ad' date '8 December 2009' time '7:03:36 am' author 'ul' ancestors ((name 'Kernel-ar.324' message 'Faster #ensure: handling: Instead of having the default path use thisContext>>tempAt:put: (which is very slow for the JIT) use a temp assignment and let only the termination handling actually do #tempAt:put:.

Part 4 updates #ifCurtailed:.' id 'f04afe5f-4573-5b43-9dc4-0504003e2e34' date '4 December 2009' time '6:43:05 am' author 'ar' ancestors ((name 'Kernel-ar.323' message 'Faster #ensure: handling: Instead of having the default path use thisContext>>tempAt:put: (which is very slow for the JIT) use a temp assignment and let only the termination handling actually do #tempAt:put:.

Part 3 updates #ensure: to only use the fast version.' id '4b183b83-103d-a046-b240-8696b955d800' date '4 December 2009' time '6:32:01 am' author 'ar' ancestors ((name 'Kernel-ar.322' message 'Faster #ensure: handling: Instead of having the default path use thisContext>>tempAt:put: (which is very slow for the JIT) use a temp assignment and let only the termination handling actually do #tempAt:put:.

Part 2 updates termination handling to the new scheme.' id '58a79c17-4e44-3d4a-bdd0-3be9630020ea' date '4 December 2009' time '6:28:49 am' author 'ar' ancestors ((name 'Kernel-ar.321' message 'Faster #ensure: handling: Instead of having the default path use thisContext>>tempAt:put: (which is very slow for the JIT) use a temp assignment and let only the termination handling actually do #tempAt:put:.

Part 1 introduces a version of #ensure: which is compatible with both versions of termination handling.
' id '113aabe8-0043-514f-99e1-979ea0f8f647' date '4 December 2009' time '6:26:38 am' author 'ar' ancestors ((name 'Kernel-ar.320' message 'Signal OutOfMemory instead of calling signalLowSpace.' id '3be1d86a-629f-ef4a-ab4c-7b7643c2aab0' date '4 December 2009' time '2:14:06 am' author 'ar' ancestors ((name 'Kernel-ul.319' message 'From: http://bugs.squeak.org/view.php?id=7166
- improved preformance for Behavior >> #allSelectors
- added Behavior >> #allSelectorsBelow:
' id 'b8275b69-ee08-9f45-b8c2-7e020776e941' date '3 December 2009' time '5:12:50 am' author 'ul' ancestors ((name 'Kernel-dtl.318' message 'Remove Object>>couldOpenInMorphic and eliminate "world hacking" method category.
' id '0153a88f-b3b4-48e6-9dfa-a6acd42915c3' date '2 December 2009' time '9:22:36 am' author 'dtl' ancestors ((name 'Kernel-nice.317' message 'A faster successor/predecessor implementation thanks to suggestions of Paolo Bonzini and the help of #ulp (unit of least precision - that is the least significant bit of a Float).
It works well with default IEEE754 rounding mode (round to nearest even). Don''t know about alternate modes, but we don''t use them right now.' id '07b501b4-4f30-564e-9645-1322d5aafa09' date '2 December 2009' time '5:38:45 am' author 'nice' ancestors ((name 'Kernel-nice.316' message 'Add the ANSI float characterization methods every other Smalltalk has but Squeak.
Also add #predecessor and #successor.
These changes are already in Pharo.' id 'b108354a-6b8e-8b48-8c9c-fc6c8b47b84c' date '2 December 2009' time '5:34:34 am' author 'nice' ancestors ((name 'Kernel-ar.315' message 'Future proofing: For speed and simplicity, Cog requires LargeNegativeInteger to be compact at 4 (replacing PseudoContext). Integer>>initialize now takes care of that and documents (via LPITest and LNITest) the compact class requirements of LPI and LNI.

There  is no actual impact except that LNIs will shave off a header word which in typical images makes no difference whatsover (LargeNegativeInteger instanceCount < 100 in a typical trunk image).' id 'b39007e6-1381-184d-a2c8-58052fd71231' date '30 November 2009' time '10:08:08 am' author 'ar' ancestors ((name 'Kernel-ul.314' message 'Removed preamble.' id 'e293d76b-d182-a44c-b21f-1819da8fa9ec' date '1 December 2009' time '4:23:11 am' author 'ul' ancestors ((name 'Kernel-ul.313' message 'Part 2 of updating Object >> #hash.' id '46ec2793-b46f-fa4c-9149-63e980f5625f' date '1 December 2009' time '4:22:35 am' author 'ul' ancestors ((name 'Kernel-ul.312' message 'Added #scaledIdentityHash.
Part 1 of updating Object >> hash.' id '5b9007f4-b0f3-1e42-bf32-5a0efbeaae0f' date '1 December 2009' time '4:19:45 am' author 'ul' ancestors ((name 'Kernel-nice.307' message 'http://bugs.squeak.org/view.php?id=7218
ClassOrganizer categories breaks if given an empty array 
because categoryStops gets set to #() when it should be at least #(0) ' id '32793c3c-4bcd-4323-9c9a-277b9345634e' date '29 November 2009' time '9:53:32 am' author 'nice' ancestors ((name 'Kernel-nice.306' message 'Speed up highBit and lowBit according to http://bugs.squeak.org/view.php?id=7113
This is usefull for algorithms like DSA.
This version has a cache of known result for bytes.
Prerequisite: ByteArray literals #[]

{
[100000 timesRepeat: [123456798 highBit]] timeToRun.
[100000 timesRepeat: [122 highBit]] timeToRun.
[100000 timesRepeat: [12 highBit]] timeToRun.
[100000 timesRepeat: [3950591 lowBit]] timeToRun.
[100000 timesRepeat: [3950592 lowBit]] timeToRun.
[100000 timesRepeat: [8 lowBit]] timeToRun.
[100000 timesRepeat: [(-1073741824) lowBit]] timeToRun.
}
"OLD" #(186 139 138 92 165 134 1965) /
"NEW" #(115 96 96 83 97 79 743)
"SPEED UP FACTOR" collect: [:e | e roundTo: 0.1]
-> #(1.6 1.4 1.4 1.1 1.7 1.7 2.6)' id 'a1d781cc-fce8-6d4d-b7a5-149285a38851' date '27 November 2009' time '8:23:42 am' author 'nice' ancestors ((name 'Kernel-ul.305' message '- added Integer >> #sqrtFloor, which returns the floor of the square root of the receiver.
- renamed Integer >> #isPrime to #isProbablyPrime.
- added Integer >> #isPrime which is implemented as a deterministic primality test
- both #isPrime and #isProbablyPrime return false for receivers <= 1 instead of raising an error' id 'a95be01c-d87c-154b-bdc6-c582dafad80b' date '25 November 2009' time '2:55:43 am' author 'ul' ancestors ((name 'Kernel-nice.304' message 'cosmetic clean up of allInstancesDo: do not test == UndefinedObject, but rather override where due.

remove Metaclass>>#allInstances.
We could also remove Metaclass>>#allInstancesDo:
' id 'f7223e31-bebd-4ce9-a68d-ce87258ec6ff' date '22 November 2009' time '9:56:22 am' author 'nice' ancestors ((name 'Kernel-ul.303' message '- removed MethodDictionary >> #do: because it should be the same as Dictionary >> #do:

Load Collections-ul.200 before this package!' id 'e49dad60-4c62-f54a-9242-21a1843b4ee6' date '21 November 2009' time '12:32:53 pm' author 'ul' ancestors ((name 'Kernel-nice.300' message 'Fix evaluation of Block copy in case of local return' id 'cf34e502-1f47-c643-9e3b-c86188c6b61c' date '16 November 2009' time '6:02:20 am' author 'nice' ancestors ((name 'Kernel-nice.299' message 'move DependentsArrayTest from Kernel to KernelTests' id '2c6f60a5-26ac-44e1-8227-c6ec1ce99b7b' date '14 November 2009' time '10:20:34 am' author 'nice' ancestors ((name 'Kernel-nice.298' message 'cosmetic clean-up from pharo
avoid a useless copy, and avoid inlining anySatisfy:

Note that we reject: anySatisfy: references notEmpty
We could as well select: allSatisfy: references isEmpty
Affirmations are generally better understood than double negations :)
' id '3a192ea2-e091-4b55-8e73-a5283c30deb7' date '14 November 2009' time '9:40:03 am' author 'nice' ancestors ((name 'Kernel-ul.297' message 'In MethodDictionary
- implemented #fixCollisionsFrom:
- removed #keyAt: (nobody sends it)
- removed super send from #swap:with: ' id 'a9d016dd-2b26-414d-aad4-08a732599dee' date '13 November 2009' time '2:39:10 am' author 'ul' ancestors ((name 'Kernel-ar.294' message 'Merging Kernel-ul.293:

- moved #hasContentsInExplorer and #explorerContents to Morphic-Explorer' id '5023d4fb-a9d6-9c49-9e35-1b4cd724d298' date '12 November 2009' time '8:25:50 am' author 'ar' ancestors ((name 'Kernel-ul.293' message '- moved #hasContentsInExplorer and #explorerContents to Morphic-Explorer' id '291dbd4b-1393-1849-8574-3b8d7c23d89a' date '11 November 2009' time '8:35:56 am' author 'ul' ancestors ((name 'Kernel-ul.292' message 'moved #hasContentsInExplorer and #explorerContents to Morphic-Extras' id 'd9398983-e223-e441-bd91-22ad6b105ce2' date '11 November 2009' time '8:14:39 am' author 'ul' ancestors ((name 'Kernel-nice.291' message 'Finish fixing comparison of MethodProperties and AdditionalMethodState for debug purpose

MethodProperties is candidate for being removed.
But it still has a few instances.

After fixing comparison, I can remove some with:

(MethodContext allInstances select: [:e | e method notNil
    and: [ e method isInstalled not
    and: [(e method methodClass notNil)
    and: [(e method methodClass includesSelector: e method selector)
    and: [e method = (e method methodClass >> e method selector)]]]]])
  do: [:mc | mc instVarNamed: #method put:
    (mc method methodClass >> mc method selector)]

A more efficient weapon for eliminating MethodProperties is 

Utilities postRecompileCleanup.
MethodProperties allInstances size -> 0' id '3e5cd2e5-3e74-4398-a409-8e02189e9cec' date '10 November 2009' time '9:53:23 am' author 'nice' ancestors ((name 'Kernel-nice.290' message 'clean-up isSelfEvaluating' id '4cff06dd-bd14-4b39-8867-ff5f1331f558' date '9 November 2009' time '12:25:05 pm' author 'nice' ancestors ((name 'Kernel-nice.289' message 'Fix from http://code.google.com/p/pharo/issues/detail?id=1424
This will allow comparing 
a MethodProperties analogousCodeTo: an AdditionalMethodState
et vice et versa' id '1a0c4764-9a36-4944-a87c-dfe5299dcc32' date '8 November 2009' time '1:03:07 am' author 'nice' ancestors ((name 'Kernel-tbn.288' message 'categorize and format ChronologyConstants>>initialize as a first commit test' id 'aad7e55c-fd95-f744-8a85-e7b176c70810' date '6 November 2009' time '11:34:20 am' author 'tbn' ancestors ((name 'Kernel-ul.287' message '- simplified ClassDescription >> #organization' id '8dcd7ba0-4578-4d4b-836f-b5050896431a' date '4 November 2009' time '12:18:09 pm' author 'ul' ancestors ((name 'Kernel-nice.286' message 'My last fix conflicted with http://bugs.squeak.org/view.php?id=6695
Float storeStringBase: does not store the radix 

Merge the two fixes' id '8990ba20-7244-49e7-b79e-12e397b4a962' date '31 October 2009' time '11:49:19 am' author 'nice' ancestors ((name 'Kernel-nice.285' message 'store a Float exactly so it can be interpreted back unchanged - according to my solution proposed at http://bugs.squeak.org/view.php?id=1631

Note that SqNumberParser SHOULD be used for interpreting the Number exactly.
Previous Number>>readFrom: accumulate roundoff errors' id 'a71e2eb9-aade-4ec1-8c30-77e6c9eaf9c8' date '31 October 2009' time '5:21:55 am' author 'nice' ancestors ((name 'Kernel-ar.284' message 'Merging Kernel-ul.283:

Updated MethodDictionary
- added MethodDictionary class >> #rehashAllInstances which rehashes all instances and changes the identities in one shot. Much faster than single #become: sends.
- removed
	- #add: - same implementation in superclass
	- #at:putNoBecome:, #fullCheckNoBecome, #growNoBecome, #removeKeyNoBecome: - old methods with no senders (not even in 3.8 full), no comment stating their usefulness
- modified several methods which have cleaner code and/or better performance assuming the following invariant: (self basicAt: index) isNil = (array at: index) isNil
- added a line about the invariant to the class comment' id 'f00d24a4-e752-9c4a-b7cc-6a5052f49b9b' date '30 October 2009' time '11:22:18 am' author 'ar' ancestors ((name 'Kernel-nice.283' message 'Make #arcTan: behave as libm atan2 near zero and negativeZero' id '5180827b-8f52-4516-af31-271e133a385a' date '30 October 2009' time '10:32:03 am' author 'nice' ancestors ((name 'Kernel-nice.282' message 'Just a comment about #isSelfEvaluating' id '3b6a0c35-dcc6-4cf8-8490-38aa99e31307' date '30 October 2009' time '8:47:15 am' author 'nice' ancestors ((name 'Kernel-nice.281' message 'Pick in Pharo one forgotten changes of Eliot closure...
That makes more ClosureCompilerTest green' id 'c2f3dbc8-83f0-47ad-95e4-195f18f09f30' date '23 October 2009' time '11:08:25 am' author 'nice' ancestors ((name 'Kernel-nice.280' message 'Refactor #whichClassDefinesClassVar:
The class var name is a Symbol, so
- first test if such a Symbol exists
- second test directly = aSymbol rather than converting asString' id 'fb4786ea-1e65-6449-88c5-b6d62f89657e' date '22 October 2009' time '2:31:58 am' author 'nice' ancestors ((name 'Kernel-jcg.279' message '#notYetImplemented now raises a NotYetImplemented error, instead of popping up a notifier. 

(The NYI class was introduced in Exceptions-jcg.14).' id '7e01a4af-65e0-495c-8b9b-c38a13220660' date '21 October 2009' time '1:11:25 am' author 'jcg' ancestors ((name 'Kernel-nice.278' message 'Use #keys rather than #fasterKeys
Note that pattern (x keys asArray sort) could as well be written (x keys sort) now that keys returns an Array...
This #asArray is here solely for cross-dialect/fork compatibility.' id '86933c27-4f26-4bf0-a9b9-a2a5afbbbaac' date '21 October 2009' time '12:26:28 am' author 'nice' ancestors ((name 'Kernel-nice.277' message 'remove #keys and let super return an Array rather than an IdentitySet' id 'd887faef-c132-4cfc-98e2-259162e0cd01' date '20 October 2009' time '11:28:51 am' author 'nice' ancestors ((name 'Kernel-nice.276' message 'Track keys and selectors usage, use #includesSelector: #selectorsDo: and #asSet where due

+ make #classVarNames a sorted Array' id '76a252f2-4063-451a-86d2-e063dc8be599' date '20 October 2009' time '10:19:32 am' author 'nice' ancestors ((name 'Kernel-nice.275' message 'use #fasterKeys bis

classVariablesString was not traitified' id '9d60c14b-5160-4046-9e7f-3a79c91ca775' date '20 October 2009' time '12:00:39 pm' author 'nice' ancestors ((name 'Kernel-nice.274' message 'use #fasterKeys

My guess is that ClassDescription >> #organization and #classVariablesString should be traitified, so I did not publish my changes.
Though I got no warning, no indication of trait, no nothing...
I wonder how to work in a traitified image without trait aware tools...' id 'e0d13094-6ba6-9a48-8499-d9506f2b1d29' date '19 October 2009' time '11:43:28 am' author 'nice' ancestors ((name 'Kernel-nice.273' message 'remove uncessary sends of #values
because (aDictionary values do:) is same as (aDictionary do:)
except when self modified in the do loop.' id '61ab2bcb-21a7-7145-ba01-19ce66e0ad5f' date '19 October 2009' time '9:18:29 am' author 'nice' ancestors ((name 'Kernel-nice.272' message 'How to gain a factor x2 on speed of 
String streamContents: [:strm | Float pi absPrintExactlyOn: strm base: 10]

1) do not use d := r // s.  r := r \\ s. This will evaluate the quotient twice.
2) s generally has a lot of trailing bits = 0, so it is faster to evaluate:
d := (r >> (s lowBit - 1)) // (s >> (s lowBit - 1)).
especially s lowBit - 1 and (s >> (s lowBit - 1)) can go outside the while loop
3) revert the tests in tc1 and tc2: these tests are false but for the last digit.
Since Float usually have more than 2 digits, it is statistically faster to test for the false condition first.
4) use and: or: when due instead of & |
' id '6ad59bb1-c97b-ad4f-aa05-ae19f0921ca5' date '19 October 2009' time '2:39:18 am' author 'nice' ancestors ((name 'Kernel-ar.271' message 'Merging Kernel-ul.270:

- faster DateAndTime and Date creation with #year:month:day: and friends
- minor formatting fixes' id 'a603d2fe-dccf-894f-95db-ef577480b03c' date '14 October 2009' time '8:49:48 am' author 'ar' ancestors ((name 'Kernel-nice.270' message 'Fix MNU #empty while Debugging' id '310ac212-23d7-4972-b7be-532e95d861e9' date '15 October 2009' time '12:37:52 pm' author 'nice' ancestors ((name 'Kernel-nice.269' message 'The so-called Eliot solution to the xor: problem' id '4df9fa19-cf20-4723-9f11-aefc85fe3c51' date '14 October 2009' time '11:11:06 am' author 'nice' ancestors ((name 'Kernel-ar.268' message 'Demote ParagraphEditor from Kernel to ST80.' id '586b9e85-bea0-f849-9284-0a31fa7e88a7' date '13 October 2009' time '8:21:16 am' author 'ar' ancestors ((name 'Kernel-ar.267' message 'Create Kernel-Models category and promote ValueHolder and StringHolder to be a Kernel (instead of an ST80) entity. Enables support for Model-based Tools without having MVC loaded.' id 'a066b2fe-34d3-c241-8341-d490787d70a7' date '13 October 2009' time '8:11:45 am' author 'ar' ancestors ((name 'Kernel-ar.266' message 'Merging Kernel-ul.264,  Kernel-ul.265:

- removed unnecessary #fixTemps send
- removed Float >> #shallowCopy. Primitive 148 seems to handle this correcly.' id 'f651d6ae-0be3-a54b-9166-43f4b0abaa88' date '13 October 2009' time '7:41 am' author 'ar' ancestors ((name 'Kernel-ul.264' message '- removed unnecessary #fixTemps send' id '3366ec21-f858-2f4f-b395-b1508250af0f' date '9 October 2009' time '1:00:07 am' author 'ul' ancestors ((name 'Kernel-nice.263' message 'Modify this:

(Object>>#printOn:) printString
before -> ''a CompiledMethod(1947: Object>>printOn:)''
after -> ''(Object>>#printOn: "a CompiledMethod(1947)")''

This way, a CompiledMethod printString can be interpreted back.

This follows http://bugs.squeak.org/view.php?id=6726
A variant has been implemented in trunk previously, but in a non interpretable manner.
This one close the report.
' id '2ca1dd7b-3aaf-ef40-a65d-9470d31bf6b6' date '7 October 2009' time '8:58:27 am' author 'nice' ancestors ((name 'Kernel-nice.262' message 'Add ANSI required feature #bitAt:
from http://bugs.squeak.org/view.php?id=6985' id 'fbaaa422-359f-3b40-9182-658a0e781350' date '6 October 2009' time '12:21:19 pm' author 'nice' ancestors ((name 'Kernel-ar.261' message 'Vector ParagraphEditor''s [shifted]yellowButtonMenu through StringHolder''s menu item definition.' id 'fa1375f2-f6e4-dd4b-a7b2-6d12fc2cb4cf' date '5 October 2009' time '11:33:44 am' author 'ar' ancestors ((name 'Kernel-ar.260' message 'Implement ParagraphEditor>>abandonChangeText so that we don''t need to refer to class ParagraphEditor for that purpose.' id '00c6e0ef-93db-7f47-905a-9065f3a114f7' date '5 October 2009' time '9:52:09 am' author 'ar' ancestors ((name 'Kernel-nice.259' message 'Fix http://bugs.squeak.org/view.php?id=7101
asSmallPositiveDegrees uselessly complex and can loop infinitely ' id 'b697f955-c5f6-4e39-8fc2-5456580a73db' date '5 October 2009' time '9:30:30 am' author 'nice' ancestors ((name 'Kernel-nice.258' message 'Patch for http://bugs.squeak.org/view.php?id=7401
Float negativeZero shallowCopy loose its negative sign.
self assert: Float negativeZero copy hex = Float negativeZero hex.' id '0a436e14-7e47-4bbd-a5fd-1bc9f8b405c0' date '4 October 2009' time '11:38:54 am' author 'nice' ancestors ((name 'Kernel-nice.257' message 'Fix red tests related to ScaledDecimal raisedToInteger:' id '8c32510e-ff6a-4c4c-a134-d2885ca2f4d4' date '4 October 2009' time '10:29:43 am' author 'nice' ancestors ((name 'Kernel-nice.256' message 'Fix for http://bugs.squeak.org/view.php?id=6781
self should: [0.0 raisedTo: -1.0] raise: ZeroDivide.

I used the license clean fix from Pharo here and also introduce license clean #raisedToInteger: #/ #reciprocal #one by GabrielOmarCotelli

This code is MIT as Gabriel signed the pharo agreement.' id 'a9171183-4c69-4fea-9279-058519685204' date '4 October 2009' time '9:50:10 am' author 'nice' ancestors ((name 'Kernel-nice.255' message 'Fix from http://bugs.squeak.org/view.php?id=6697
Number>>storeOn:base: default implementation is wrong: It calls printOn:base:

But printOn:Base: does not print the radix, when storeOn:Base: should.

As every subclass (except ScaledDecimal) does implement storeOn:Base: the best thing to do is to defer subclassResponsibility.' id '847ee695-85a9-45dd-ae76-ad42a23fb2fd' date '4 October 2009' time '7:54:12 am' author 'nice' ancestors ((name 'Kernel-ul.254' message '- replaced #whileFalse: with #whileFalse in MethodDictionary  >> #scanFor:' id 'e908dda7-2b3b-3d4b-b301-08b2a4d289bf' date '30 September 2009' time '3:04:30 am' author 'ul' ancestors ((name 'Kernel-ar.253' message 'Merging Kernel-ul.251:

- replaced uses of #findElementOrNil: with #scanFor:
- new #scanFor: implementation for MethodDictionary
- Added BlockClosue >> #timeToRunWithoutGC which returns the number of milliseconds taken to the block without GC time.' id '5108df62-e98b-c049-90f5-ca1546d6810d' date '29 September 2009' time '10:19:32 am' author 'ar' ancestors ((name 'Kernel-ar.252' message 'Merging Kernel-ul.250:

- removed unnecessary #copy from MethodDictionary' id '53948bd4-f611-da40-aebd-2e26a44d43da' date '29 September 2009' time '10:10:31 am' author 'ar' ancestors ((name 'Kernel-ar.251' message 'Merging Kernel-ul.249:

- added MethodDictionary >> #postCopy to replace #copy' id '2c77e627-036d-2b46-b6ab-d6b9b6c2fb22' date '29 September 2009' time '10:06:55 am' author 'ar' ancestors ((name 'Kernel-nice.250' message 'Fix nan comparison from http://bugs.squeak.org/view.php?id=6719

Note: the fix does use adpatToXXX:andSend:
instead of proposed adpatToXXX:andCompare:

This way, it is independant of  http://bugs.squeak.org/view.php?id=3374
(I don''t want to fight now with lengthy argumentation)' id 'ae2ecb83-4bd9-fd4d-abf8-2b02d30ba0a9' date '25 September 2009' time '10:47:10 am' author 'nice' ancestors ((name 'Kernel-ar.249' message 'Put the delay guard back which prevented scheduling the same delay multiple times. It got accidentally removed in a recent cleanup.' id 'e21b2985-4367-5342-8fa3-87a10df7a4d1' date '21 September 2009' time '10:20:18 am' author 'ar' ancestors ((name 'Kernel-nice.248' message 'Fix for http://bugs.squeak.org/view.php?id=6695
Float storeStringBase: does not store the radix
Since Integer and Fraction do store the radix, no reason to differ...' id '89aa20e5-8219-d040-84bc-b10594ff152e' date '19 September 2009' time '9:37:42 am' author 'nice' ancestors ((name 'Kernel-nice.247' message 'Fix for #printShowingDecimalPlaces: 
The fix comes from http://bugs.squeak.org/view.php?id=5640 with an additional test for printing exceptional values (Inf/NaN).

The implementation relies on exact arithmetic (Fraction/LargeInteger) and thus avoid inexact Float rounding operations.' id '7773d01a-b08f-ea41-9e0e-ab68531c4829' date '19 September 2009' time '8:21:42 am' author 'nice' ancestors ((name 'Kernel-nice.246' message 'Another #removeAll for hackers.
Don''t know if anyone would use this (unless attacking some squeak services).' id '36a9d04a-8c90-44a2-bb85-056633ab29d6' date '16 September 2009' time '10:06:06 am' author 'nice' ancestors ((name 'Kernel-nice.245' message 'Part of fix for http://bugs.squeak.org/view.php?id=6797
Implement #literalEqual: in ScaledDecimal so as to be able to differentiate 0.5s1 and 0.50s2.' id '537341dc-ff1c-44a7-8e3a-264f17f071ca' date '12 September 2009' time '9:10:28 am' author 'nice' ancestors ((name 'Kernel-ar.244' message 'Restore ContextPart>>isBottomContext which for some reason got dropped in latest changes.' id 'eb85be7b-6342-3f41-b69f-b28e30372520' date '6 September 2009' time '11:10:25 am' author 'ar' ancestors ((name 'Kernel-eem.243' message 'Fifth package of eight in closure compiler fixes 9/5/2009.

Change kernel to use closure compiler fixes:
- Replace old temp names compression scheme with the new one.
- restore strange selector replacement in CompiledMethod>>getSourceFor:in:
- remove unused CompiledMethod>>primitiveNode (and thence PrimitiveNode)' id '951890ea-0d23-473a-b538-f518d9ba5331' date '5 September 2009' time '5:01:43 am' author 'eem' ancestors ((name 'Kernel-eem.242' message 'Second package of eight in closure compiler fixes 9/5/2009.

AdditionalMethodState replaces MethodProperties.  Kernel support for Compiler-eem.78 & Compiler-eem.79.

Add ProtoObject>>withArgs:executeMethod: for compiler''s
use indtead of adding a method under #DoIt.

Make doesNotUnderstand: support resume:.  Requires
Exceptions-eem.12.

Speed up instVarNamed: et al using ClassDescription>>instVarIndexFor:ifAbsent:

Speed up Object>>species by using class prim directly.' id '4732bd13-57f5-4cf0-90fb-0f951ea37509' date '5 September 2009' time '4:15:59 am' author 'eem' ancestors ((name 'Kernel-laza.241' message 'Removes the warning of too long delays from the Delay class comment' id 'bb272481-19dd-ca4d-9f2d-283443900cf5' date '5 September 2009' time '8:51:42 am' author 'laza' ancestors ((name 'Kernel-ar.240' message 'http://bugs.squeak.org/view.php?id=7321

(three more change sets at once since I can''t wait three hours for the commits to complete)

Change Set:		SignalExceptionFix
Date:			23 March 2009
Author:			Andreas Raab

A fix for Process>>signalException: which would not work properly for Process subclasses and should use atomic suspend if at all available.

Change Set:		ProcessTerminateFix
Date:			23 March 2009
Author:			Andreas Raab

Fixes a problem in Process>>isTerminated which can cause severe problems if the process which is being asked runs at a higher priority than the process asking. In this situation the answer may be incorrect if an external signal occurs while the code is trying to find the bottom context of an executing process.

Change Set:		DelayWaitTimeout
Date:			23 March 2009
Author:			Andreas Raab

Provides a light-weight, correct implementation of waitTimeoutMSecs:' id '099cbd0d-a7eb-0d49-952d-85f7b8391795' date '4 September 2009' time '12:01:07 pm' author 'ar' ancestors ((name 'Kernel-ar.239' message 'Ah, yes. Our version of Monticello removes methods before installing the new ones and that doesn''t play very well when it comes to Delay. Silly, silly Monticello. Restore the methods so people can load the update and leave in the cruft for now.' id '8e35a7c8-a3cc-ab46-bd6c-ad7f04321f77' date '3 September 2009' time '10:59:24 am' author 'ar' ancestors ((name 'Kernel-ar.238' message 'http://bugs.squeak.org/view.php?id=7321

Change Set:		AtomicProcessSuspend
Date:			23 March 2009
Author:			Andreas Raab

In-image support for atomic process suspend.' id '9896c3f8-760f-e942-ac84-5f6c9127150c' date '3 September 2009' time '9:50:51 am' author 'ar' ancestors ((name 'Kernel-ar.237' message 'http://bugs.squeak.org/view.php?id=7321

Change Set:		DelayCleanup
Date:			23 March 2009
Author:			Andreas Raab

Cleans up Delay by removing many of the no longer used methods (timerInterruptWatcher etc). It also provides some fixes for methods that got mysteriously broken even though their original versions were perfectly fine, including Delay class>>timeoutSemaphore:after:.' id '0ce8d553-42c8-2d42-add2-fbadccdbfe28' date '3 September 2009' time '9:48:09 am' author 'ar' ancestors ((name 'Kernel-tfel.236' message 'This fixes Bug #0006764 where Duration couldn''t deal with trailing spaces properly.' id 'c52f7e22-0347-48b2-b827-77855c248e2d' date '2 September 2009' time '11:07 am' author 'tfel' ancestors ((name 'Kernel-tfel.235' message 'Changed the parsing from Stream in Date and Time classes to be more forgiving and esp. in the Date class to allow the ISO8601 format. Also changed the DateAndTime parsing to use the methods of Date and Time to parse their parts of the Stream making the whole method more forgiving if they don''t properly keep to the standard.' id 'd2e0bf54-4389-4074-8d85-d98707f39ef1' date '1 September 2009' time '11:37:20 am' author 'tfel' ancestors ((name 'Kernel-ar.234' message 'BlockClosure>>argumentCount for ansi compatibility.' id '24194d03-8c8c-324f-b6bb-34c7caf7011e' date '1 September 2009' time '1:19:59 am' author 'ar' ancestors ((name 'Kernel-ar.233' message 'Restore traits composition when printing class definitions.' id '3041bac3-13dd-d841-99a7-79e006ddf675' date '1 September 2009' time '1:00 am' author 'ar' ancestors ((name 'Kernel-dtl.232' message 'Update #oopString comment' id 'd3863eef-2d76-454e-97d2-7070ea1ac7d1' date '29 August 2009' time '3:10:31 am' author 'dtl' ancestors ((name 'Kernel-ar.231' message 'BlockClosure>>asMinimalRepresentation needs to return self, just like the comment says.' id '0fa0cc93-b060-8546-b78f-afa7b8429e80' date '26 August 2009' time '9:44:33 am' author 'ar' ancestors ((name 'Kernel-ar.230' message 'Implementations for BlockClosure>>isValid and asMinimalRepresentation for compatibility of BlockClosure with the when:evaluate: protocol.' id 'd0759469-14fd-2c40-a5bd-90aab36cd9a5' date '26 August 2009' time '9:01:37 am' author 'ar' ancestors ((name 'Kernel-ar.229' message 'Merging Kernel-djr.228:

CompiledMethod>>= seems to be broken. Attempt to fix it.

MethodProperties>>analogousCodeTo: calls Pragma>>analogousCodeTo: which does not exist.

Further assume when both properties are nil and both pragmas are empty, its equal.' id 'fad5617c-3a41-4c4e-80af-d8b2234cca10' date '26 August 2009' time '8:42:37 am' author 'ar' ancestors ((name 'Kernel-dtl.226' message 'Reference Mantis 7221: Remove some leftover VMMaker methods from base images.
Remove several C code generation methods that have previously been recategorized to the VMMaker package.' id 'fbd0e6cd-91b7-4a1a-bee7-5f776d32e4d1' date '25 August 2009' time '9:45:30 am' author 'dtl' ancestors ((name 'Kernel-bf.225' message 'Clarify the meaning of #asOop in Squeak.' id 'f47aa5b7-b450-4ed2-8237-26841337ce18' date '22 August 2009' time '5:25:40 am' author 'bf' ancestors ((name 'Kernel-ar.217' message 'Styling hooks:
- Add ParagraphEditor>>blinkParen and fix issue in ParagraphEditor>>clearParens for syntax highlighting compatibility.' id 'dd955a09-e540-8e42-a96f-190001d14800' date '18 August 2009' time '12:21:31 pm' author 'ar' ancestors ((name 'Kernel-ar.216' message 'Another round of reducing MVC/Morphic dependencies:
- Introduce the #isWindowForModel: protocol which avoids the use of patterns like "(d isKindOf: SystemWindow orOf: StandardSystemView) and:[d model == self]"
- Simply Object>>currentWorld to neither look at MVC embedded worlds nor create new MVC-based morphic worlds' id '6460bb2f-a080-c844-b792-d90dbdf7d40f' date '15 August 2009' time '3:21:22 am' author 'ar' ancestors ((name 'Kernel-mha.215' message 'removed obsolete method from CompiledMethod' id '56942fac-4cf8-4683-9150-7fc609ac4967' date '14 August 2009' time '8:45:23 am' author 'mha' ancestors ((name 'Kernel-mha.214' message 'fixed problem in MethodProperties>>#analogousCodeTo: that would cause an error in TraitTest' id '11f330dc-4448-4602-aece-922a2b8ca389' date '11 August 2009' time '9:18:30 am' author 'mha' ancestors ((name 'Kernel-mha.213' message 'implemented isMethodContext to avoid an error in MethodContextTest' id '33923d84-e551-435e-bba3-8595c25d01c0' date '10 August 2009' time '9:04:41 am' author 'mha' ancestors ((name 'Kernel-nice.212' message 'Patch for http://bugs.squeak.org/view.php?id=7373
-2.0 isInf -> true ' id 'bff91e35-b63c-4d30-bfbe-4a20254e99b9' date '9 August 2009' time '10:20:40 am' author 'nice' ancestors ((name 'Kernel-ar.211' message 'Allow CompiledMethod to provide a suitable drag label. Used by DnD in browsers.' id 'd2094614-095a-f94f-80b3-f58bf25d4534' date '8 August 2009' time '12:06:31 pm' author 'ar' ancestors ((name 'Kernel-ar.210' message 'Closure fallout: With closures, all object enumeration must have a definitive end marker since enumeration will almost always create new contexts from block activations.' id '4cccf698-4f26-0845-96d5-b5242a7182bd' date '6 August 2009' time '11:30:25 am' author 'ar' ancestors ((name 'Kernel-ar.209' message 'UIManagerization. Replaces all the trivial references to PopUpMenu, SelectionMenu, CustomMenu, and FillInTheBlank.' id 'aaf16b53-7d85-de41-9c41-e4b344a12b96' date '6 August 2009' time '8:57:12 am' author 'ar' ancestors ((name 'Kernel-ar.208' message 'Fixes debugging of FFI methods.' id 'f304322e-b838-f145-b163-f1c59d5e0eb9' date '2 August 2009' time '10:51:42 am' author 'ar' ancestors ((name 'Kernel-nice.207' message 'Fix for
http://bugs.squeak.org/view.php?id=6983
Float nan isLiteral. It should not. ' id '09318e77-fbbc-47db-9df6-f6ee867f3b24' date '28 July 2009' time '2:46:30 am' author 'nice' ancestors ((name 'Kernel-nice.204' message 'Fix for
http://bugs.squeak.org/view.php?id=4378
ScaledDecimal storeString incorrectly use printOn: and loose exactness ' id '7797ccd7-5fa4-4302-9007-24889dfc6ded' date '28 July 2009' time '2:17:12 am' author 'nice' ancestors ((name 'Kernel-nice.203' message 'Speed up number parsing by refactoring SqNumberParser
http://bugs.squeak.org/view.php?id=6976
http://bugs.squeak.org/view.php?id=7174
+ some refactoring applied in Pharo

Main speed up come from:
- not using Character>>#digitValue
- avoid creating ifFail: [] blocks, but rather return nil
- compose and conquer algorithm for parsing large integers (so as to make as many computations with SmallInteger as possible, in the spirit of divide and conquer printing)' id '6a236a07-be89-4628-a98d-c5d70e08240c' date '26 July 2009' time '1:22:40 am' author 'nice' ancestors ((name 'Kernel-nice.202' message 'Fix for
http://bugs.squeak.org/view.php?id=6779
ScaledDecimal readFrom: ''5.3''.
did not answer a ScaledDecimal ' id '5717de3a-9344-4dee-bbe5-48717e9b7709' date '25 July 2009' time '11:05:30 am' author 'nice' ancestors ((name 'Kernel-nice.201' message 'Fix for 
http://bugs.squeak.org/view.php?id=7169
self assert: (SqNumberParser parse: ''0.50s2'') = (1/2).' id '381decf3-a3e2-4167-bf7d-012a5aa355de' date '25 July 2009' time '11:00:36 am' author 'nice' ancestors ((name 'Kernel-nice.200' message 'Faster printString for LargeInteger
http://bugs.squeak.org/view.php?id=6887

Basic idea is to use divide and conquer algorithm:
split the LargeInteger in two halves and recursively so as to fallback to faster SmallInteger arithmetic as soon as possible.

This change improves
[:n | [n printString] bench] value: 100 factorial.
by roughly a factor 4' id '1ae51ff8-f5b2-4972-9075-4e9320fdb666' date '25 July 2009' time '10:50:30 am' author 'nice' ancestors ((name 'Kernel-nice.199' message 'Fix for http://bugs.squeak.org/view.php?id=6874
(2 raisedTo: 31) negated bitAnd: (2 raisedTo: 31) negated - 1.' id '92be1844-0ccc-49af-babb-99ae4db2879b' date '22 July 2009' time '9:21:39 am' author 'nice' ancestors ((name 'Kernel-nice.198' message 'Fix for http://bugs.squeak.org/view.php?id=7114
SmallInteger minVal highBitOfMagnitude.' id '8ce08ebc-4963-4d78-8af6-794b51ee2363' date '22 July 2009' time '9:01:38 am' author 'nice' ancestors ((name 'Kernel-ar.197' message 'The valueSuppressing/SupplyingAnswers protocol was missing from BlockClosure which caused several tests to fail.' id '43d5bc3e-4ebd-a04a-8613-bfce6ab3bb20' date '20 July 2009' time '12:28:03 pm' author 'ar' ancestors ((name 'Kernel-nice.196' message 'remove #asFloatSimply
http://bugs.squeak.org/view.php?id=7040

#asFloatSimply was introduced temporarily by me for fixing
http://bugs.squeak.org/view.php?id=3564

However, it was soon superseded, and I doubt it were ever used.
I propose to not even deprecate it, but simply remove it.
' id 'b51aaae8-eab7-4c01-9eaa-22bf9db31399' date '19 July 2009' time '9:56:33 am' author 'nice' ancestors ((name 'Kernel-nice.195' message 'Fix for
http://bugs.squeak.org/view.php?id=6990
0.0 significandAsInteger' id 'e3ad6b64-9516-48d2-9c3d-b9b6e5c5cb96' date '19 July 2009' time '9:43:31 am' author 'nice' ancestors ((name 'Kernel-nice.194' message 'Fix for
http://bugs.squeak.org/view.php?id=7134
Float rounded is inexact' id 'b25350c0-5d0e-4e49-aaa3-999136eb60cf' date '19 July 2009' time '9:05:25 am' author 'nice' ancestors ((name 'Kernel-nice.193' message 'Fixes for both:

http://bugs.squeak.org/view.php?id=6729
Float infinity closeTo: Float infinity negated.

http://bugs.squeak.org/view.php?id=7368
1.0 closeTo: 200 factorial.' id '58a1d853-346e-4e33-b6c9-ff807158e20b' date '19 July 2009' time '7:37:27 am' author 'nice' ancestors ((name 'Kernel-ar.192' message 'Post-closure cleanup and underscore removal.' id 'd33d968e-3948-2c46-b0ae-5421aa727146' date '18 July 2009' time '8:28:47 am' author 'ar' ancestors ((name 'Kernel-ar.189' message 'Closure compiler, main part.' id '2062a7e3-30b2-7a4d-89ee-72910323b08d' date '15 July 2009' time '10:36:24 am' author 'ar' ancestors ((name 'Kernel-ar.188' message 'Prerequiste changes for Closure installation.' id 'f9b32a15-1f2e-534e-915e-38e153b3b2a0' date '15 July 2009' time '10:11:05 am' author 'ar' ancestors ((name 'Kernel-dtl.187' message 'Reference Mantis 7353: Float>>printPaddedWith:to: doesn''t meet its specification
Fix provided by Eliot Miranda:

The comment for Float>>printPaddedWith:to: is
    "Answer the string containing the ASCII representation of the receiver
    padded on the left with aCharacter to be at least on aNumber
    integerPart characters and padded the right with aCharacter to be at
    least anInteger fractionPart characters."

but the number of fractional characters printed is not respected, at least not obviously.
e.g. IMO ((1000 / 3) roundTo: 0.001) printPaddedWith: $: to: 4.5
should answer '':333.333::'' but answers '':333.333:::::::''.

The bug is in the computation of fLen:
    fLen := (aNumber fractionPart * (aNumber asFloat exponent * 10)) asInteger.
for a natural interpretation of the fractionPart this can read e.g.
    fLen := aNumber fractionPart.
    [fLen fractionPart > 1e-6] whileTrue:
        [fLen := fLen * 10.0].
    fLen := fLen asInteger.' id 'a1ce9228-448a-45a2-b93f-4fd68b493650' date '14 July 2009' time '10:43:24 am' author 'dtl' ancestors ((name 'Kernel-dtl.186' message 'Reference Mantis 7357: DateAndTime class>>localOffset broken since Mantis 474, and Mantis 7273: DateAndTime class>>localTimeZone: does not work

Restore original implementation of DateAndTime class>>localOffset (including original author initials and time stamp, but with <lf> characters removed from source). Eliminate class variable LocalOffset.

This restores the original correct implementation, with no performance penalty.' id 'd240f600-2075-4d02-b570-3c75071f2826' date '14 July 2009' time '6:49:42 am' author 'dtl' ancestors ((name 'Kernel-ar.185' message 'Fixes ClassBuilder''s resistance to change a class from being a #subclass: to being a #variableSubclass: due to a test that should only be run for actual subclasses but was invoked for the superclass too. A test is provided in KernelTest-ar.67.' id 'fdd98fbc-9384-0043-a593-fb56728c03eb' date '13 July 2009' time '9:24:12 am' author 'ar' ancestors ((name 'Kernel-dtl.179' message 'Reference Mantis 7361: Float >= primitive failure code sends > instead of >=

Updated Float>>>= to fix error in fallback code (typo)
' id 'cada9be5-4834-4d84-a812-a42b1cf130c3' date '13 July 2009' time '9:40:18 am' author 'dtl' ancestors ((name 'Kernel-dtl.178' message 'Reference Mantis 7367: Add #asTimeStamp to TimeStamp class>>current

Add an #asTimeStamp to implementation of TimeStamp class>>current. Ensures that #current always answers an instance of TimeStamp even if the superclass implementation is modified. Permits external package TimeZoneDatabase to avoid packaging conflicts. There is no impact on function or performance. All Chronology tests are green.
' id 'c5c594c4-1a34-46cf-abf9-376914bb30bf' date '13 July 2009' time '4:13:46 am' author 'dtl' ancestors ((name 'Kernel-dtl.177' message 'Reference Mantis 0007356: DateAndTime fromSeconds: 0.5 => walkback, broken since Mantis 4669

Allow #fromSeconds: to accept non-integer arguments, and update Time>>printString to display fractional seconds for better compatibility with the original Squeak implementation. The expressions ''DateAndTime fromSeconds: 0.5'' and ''Time fromSeconds: 0.5'' now behave as expected.

This change set fixes a limitation of #fromSeconds: that was introduced in Mantis 4669: [ENH] TimeForSpeed. It changes the corresponding #fromSeconds: and #printString for class Time to match DateAndTime and to be more compatible with the original Squeak implementation.' id '152a8933-6259-46cc-a118-55029e8dbb5a' date '13 July 2009' time '12:08:49 pm' author 'dtl' ancestors ((name 'Kernel-dtl.176' message 'Remove temporary class variables from TimeSpan and Year. This completes removal of <lf> characters from these classes.' id '4086bce4-3850-4d74-a84f-d27f245c9d07' date '11 July 2009' time '4:40:16 pm' author 'dtl' ancestors ((name 'Kernel-dtl.175' message 'Remove <lf> characters from class comments of TimeSpan and Year. Add a bogus class veriable to each, to trick Monticello into accepting the change. The class variables will be removed in the next update.' id 'a0b860eb-7c60-4238-8597-0fac994e680c' date '11 July 2009' time '4:38 pm' author 'dtl' ancestors ((name 'Kernel-dtl.174' message 'Remove <lf> characters from a couple of methods in Kernel-Chronology missed in the last update.' id '5cd5ab8b-92f0-4fbf-9cc5-f5f377b67f67' date '11 July 2009' time '4:15:39 pm' author 'dtl' ancestors ((name 'Kernel-dtl.173' message 'Remove <lf> and fix underscores for Kernel-Chronology.

Reference Mantis 5229: Linefeeds in 22 Methods in 3.9g-7061
and Mantis 5675: Many method sources and class comments have been contaminated with Character lf.

Removed line feed characters and converted underscores to := for assignment, added missing indentation to one method.

Original author initials and timestamps have been retained.

Tricked Monticello into saving methods as "changed" by one of the following:
 - add or remove a line terminator to the method
 - remove unnecessary trailing $. at end of method' id 'f28428f4-cce4-4ef8-862b-25e912365e15' date '11 July 2009' time '3:58:44 pm' author 'dtl' ancestors ((name 'Kernel-auto.172' message 'This is an automatic commit from the 3.10.2 to cover the delta between 3.10 and 3.10.2 in the repositories' id 'bbb3bc0f-0f5f-534d-9d96-dbc20961ca3b' date '2 July 2009' time '7:06:49 pm' author 'auto' ancestors ((name 'Kernel-edc.171' message 'To follow this see
http://bugs.squeak.org/view.php?id= 5640' id 'f6d06fee-a24d-491d-887d-1f6481b5e8df' date '24 November 2007' time '7:13:04 am' author 'edc' ancestors ((name 'Kernel-edc.170' message 'To follow this see
http://bugs.squeak.org/view.php?id= 4669' id '52c8ec6e-63b5-4366-9036-b9ab6f0c779b' date '23 November 2007' time '6:36:21 am' author 'edc' ancestors ((name 'Kernel-edc.169' message 'To follow this see
http://bugs.squeak.org/view.php?id= 6660' id '5c37c34a-f19a-4ab5-9f19-75ef360e641e' date '4 November 2007' time '11:20:11 am' author 'edc' ancestors ((name 'Kernel-edc.168' message 'To follow this see
http://bugs.squeak.org/view.php?id= 6588' id 'b63aa974-c898-44f3-b31f-821572a5f8b6' date '4 November 2007' time '11:00:44 am' author 'edc' ancestors ((name 'Kernel-edc.167' message 'To follow this see
http://bugs.squeak.org/view.php?id= 6576' id '0c2d6005-c576-4d0f-9222-f800a2779f0d' date '4 November 2007' time '7:46:51 am' author 'edc' ancestors ((name 'Kernel-edc.166' message 'To follow this see
http://bugs.squeak.org/view.php?id= 6628' id '5d05b8d5-29ab-4702-8760-e2554f590d50' date '2 November 2007' time '6:37:59 am' author 'edc' ancestors ((name 'Kernel-edc.165' message 'To follow this see
http://bugs.squeak.org/view.php?id= 6590' id '40a67f99-d132-4cdc-a0d1-f3741bbd930d' date '8 August 2007' time '11:07:48 am' author 'edc' ancestors ((name 'Kernel-edc.164' message 'To follow this see
http://bugs.squeak.org/view.php?id= 6599' id 'e3fb8ea5-ac54-4864-99da-b9dd866b1c52' date '8 August 2007' time '8:54:31 am' author 'edc' ancestors ((name 'Kernel-edc.163' message 'To follow this see
http://bugs.squeak.org/view.php?id= 6576' id 'b2bd5da7-bb65-481b-be08-d569672d2589' date '28 July 2007' time '7:00:34 am' author 'edc' ancestors ((name 'Kernel-edc.162' message 'To follow this see
http://bugs.squeak.org/view.php?id= 6475' id '9519602c-e1e7-4951-8088-fd4f62acbbee' date '21 July 2007' time '6:31:08 am' author 'edc' ancestors ((name 'Kernel-edc.161' message 'To follow this see
http://bugs.squeak.org/view.php?id= 474' id '5ba3062a-a27d-4085-948a-949d4240328f' date '21 July 2007' time '5:53:42 am' author 'edc' ancestors ((name 'Kernel-edc.160' message 'To follow this see
http://bugs.squeak.org/view.php?id= 6512' id '3b02b7e8-6873-478a-ad24-9d5ed8bf4c49' date '19 July 2007' time '4:55:20 pm' author 'edc' ancestors ((name 'Kernel-edc.159' message 'To follow this see
http://bugs.squeak.org/view.php?id= 6441' id '1331e35e-d9d3-452c-9ccd-806395560b5e' date '26 June 2007' time '8:38:33 am' author 'edc' ancestors ((name 'Kernel-edc.158' message 'To follow this see
http://bugs.squeak.org/view.php?id= 6441' id 'b20f1178-fa3b-4d99-8f0d-e935ac1710c1' date '25 June 2007' time '8:43:23 am' author 'edc' ancestors ((name 'Kernel-edc.157' message 'To follow this see
http://bugs.squeak.org/view.php?id= 6505' id '2a68ca4e-8cde-47b0-a7ec-ad5b8833d58a' date '25 May 2007' time '5:38:05 am' author 'edc' ancestors ((name 'Kernel-edc.156' message 'To follow this see
http://bugs.squeak.org/view.php?id= 1666' id '5d78062d-872b-4b9f-a1f7-fb3fe973802a' date '11 May 2007' time '8:05:49 am' author 'edc' ancestors ((name 'Kernel-edc.158' message 'To follow this see
http://bugs.squeak.org/view.php?id= 1666' id '0928f6f6-f8fc-452f-b1bc-f5cb58f9a42d' date '11 May 2007' time '8:01:48 am' author 'edc' ancestors ((name 'Kernel-edc.155' message 'To follow this see
http://bugs.squeak.org/view.php?id= 6340' id '795faf47-e171-4452-9475-66fa31dbada1' date '8 May 2007' time '6:35:35 pm' author 'edc' ancestors ((name 'Kernel-edc.154' message '"To follow this see http://bugs.squeak.org/view.php?id=1014"' id '4c3d548d-a8f1-44ff-9d30-ab06d67a88d5' date '13 April 2007' time '5:15:39 pm' author 'edc' ancestors ((name 'Kernel-edc.153' message 'To follow this see
http://bugs.squeak.org/view.php?id= 2273' id '0adadd7a-a329-4064-91bb-bd76e30387f6' date '2 April 2007' time '8:48:03 am' author 'edc' ancestors ((name 'Kernel-edc.152' message 'To follow this see
http://bugs.squeak.org/view.php?id= 3568' id 'a325185b-f4b2-4dce-bdf7-55488f59bdef' date '1 April 2007' time '9:02:41 am' author 'edc' ancestors ((name 'Kernel-edc.151' message 'Some of the tests in the final released 3.9 image fail. You should be able to run all tests in a fresh image and get a green bar in the TestRunner.

The following patch makes that happen. Some of the bugs are fixed (thanks to Hans-Martin Mosner) and I deleted some of them and moved the rest of them to subclasses in a category FailingTests, which I then deleted. I have attached a change file that makes all the tests green in the final released image.
Ralph Johnson
' id '945f73dc-a20f-4d5a-90aa-105c61c5c1f0' date '31 January 2007' time '6:57:44 am' author 'edc' ancestors ((name 'Kernel-sd.150' message 'make test green' id '482019e1-6dce-11db-8b0c-001124e3ab0e' date '6 November 2006' time '8:37:47 pm' author 'sd' ancestors ((name 'Kernel-sd.149' message 'ClassRenameFix7#2006.1.cs' id 'e48b0a75-606f-11db-8261-001124e3ab0e' date '20 October 2006' time '9:19:22 pm' author 'sd' ancestors ((name 'Kernel-md.148' message 'fix condenseSources' id '019e0695-1ae4-4c2d-a683-cdccb579f3ff' date '7 September 2006' time '10:41:52 pm' author 'md' ancestors ((name 'Kernel-md.147' message '- clean up CM>>methodClass /selector
- fix some direct reverences to Compiler' id '39933ad5-63fd-43c6-8cc9-93e604d26502' date '2 August 2006' time '8:43:03 pm' author 'md' ancestors ((name 'Kernel-md.146' message 'dirty' id '26dfdb9f-2c4c-4fcb-b9cc-ba5f871b40aa' date '2 August 2006' time '5:43:19 pm' author 'md' ancestors ((name 'Kernel-md.144' message '0003133: [BUG][FIX] Float>>#asIEEE32BitWord and #fromIEEE32Bit:
0004312: Refactoring for behavior>>#new
0004307: DependentsArray>>copyWith:' id '6bd10e3b-f3cd-4481-8491-1ec4a5ea0c3f' date '23 July 2006' time '12:34:54 pm' author 'md' ancestors ((name 'Kernel-md.143' message '0004314: CleanUpMacOptionKeyPressed-md.cs' id '71822507-efb5-445b-85c6-9468d4561747' date '23 July 2006' time '12:17:06 pm' author 'md' ancestors ((name 'Kernel-md.142' message '0002120: Remove Object>>externalCallFailed from Kernel package
0004138: ScaledDecimals are parsed incorrectly in 3.9b-7036
0003609: Integer >> crossSumBase: aBase\
0003820: Code or comment in Date>>fromString: incorrect
' id 'bc06ef54-5012-4b93-805f-f0ea2a234cd7' date '15 July 2006' time '6:16:17 pm' author 'md' ancestors ((name 'Kernel-md.141' message '0002151: Max number of literals checked in MethodNode instead of CompiledMethod

0003512: Number>>readFrom: does not handle error cases correctly
' id '00e649d3-606d-4d42-b9e5-548e765bf1fd' date '14 July 2006' time '9:29:25 pm' author 'md' ancestors ((name 'Kernel-md.140' message '0003993: Number does not read ''1.0e-10 .txt'' from file
' id 'f3d2af43-b5d8-4404-b1a8-fa2c562dee3b' date '14 July 2006' time '4:41:50 pm' author 'md' ancestors ((name 'Kernel-md.139' message 'In 3.9b-7029, WeakMessageSendTest fails for lack of class comments. I spent about a hour studying the class and provided a reasonable class comment.
All KernalTests-Objects now run green.

- fix for Paragrapheditor>>#prettyPrint:' id '7de16533-743b-438b-84ac-e57243b709a4' date '14 July 2006' time '12:42:52 pm' author 'md' ancestors ((name 'Kernel-sd.138' message '0003628: refactoring for hasInstVarRef
Description
hasInstVarRef was only defined on the Context, this one moved the implementation from
MethodContext to compiledMethod (and just forwards from MethodContext).

Additionally, the changeset has a small refactoring to use BlockContext>>#endPC in BlockContext>>#hasInstVarRef' id 'f1634b7e-6abe-4d12-84bb-9dd65f8f489d' date '13 July 2006' time '5:10:47 pm' author 'sd' ancestors ((name 'Kernel-sd.137' message '0003648: explicit ^self in #yourself
Description
... when it''s important to return self, write it. (from the best practice patterns). yourself would
be a nice example to show this in a lecture.' id '0fec124a-d6d3-42f7-aaa0-82459134d8d1' date '13 July 2006' time '3:23:12 pm' author 'sd' ancestors ((name 'Kernel-sd.136' message '0003763: simplify #linesOfCode
Description
move logic from ClassDiscription#linesOfCode to CompiledMethod#linesOfCode' id '0c1fe719-6ebd-44de-90fe-49fb38269e38' date '13 July 2006' time '2:35:17 pm' author 'sd' ancestors ((name 'Kernel-md.135' message 'fix CompiledMethod>>#= to ignore the last two literals
(we may want to extend it to take pragmas into account
for equality later...)' id '61de8206-a937-4ad9-a401-c82f20946fa0' date '12 July 2006' time '10:25:06 pm' author 'md' ancestors ((name 'Kernel-sd.134' message '0003821: addMonths: does not handle leap years correctly' id 'ff18f59a-caee-4d15-aca5-3195470d09f7' date '12 July 2006' time '6:23:46 pm' author 'sd' ancestors ((name 'Kernel-sd.133' message 'Merge al 130 condenseChanges fix.' id '21835b78-34c9-4f45-8e83-b6961fa2cd63' date '12 July 2006' time '4:50:23 pm' author 'sd' ancestors ((name 'Kernel-sd.132' message '0004078: Misuse of #inject:into: in DependentsArray>>size' id '6f606fb1-7514-4507-a5b2-70c183cb2f99' date '8 July 2006' time '6:33:21 pm' author 'sd' ancestors ((name 'Kernel-sd.131' message '0003568: [FIX] Fraction>>asFloat does not answer nearest floating point number

0003564: LargeInteger>>asFloat does not honour IEEE rounding mode' id '43e5c7a6-4952-419b-840f-7a9e3fc07667' date '8 July 2006' time '6:11:15 pm' author 'sd' ancestors ((name 'Kernel-pmm.130' message '- fix browsing with alt+b for globals like Smalltalk
- push #isTrait to Object like #isBehavior' id 'ca825d54-f890-4bcb-be38-4a718f29459b' date '6 July 2006' time '8:59:24 pm' author 'pmm' ancestors ((name 'Kernel-al.129' message '- small fix of the ClassBuilder (when redefining a class, its class side traits were lost)' id 'ea1c48cf-2455-4fa5-ad13-75616626321b' date '3 July 2006' time '3:58:12 pm' author 'al' ancestors ((name 'Kernel-sd.128' message '	- allow for instantiating Behavior for creating anonymous classes (al fixes)' id 'fd4d1494-0b67-4ae7-8014-a61e74bd8544' date '20 June 2006' time '12:27:46 pm' author 'sd' ancestors ((name 'Kernel-pmm.127' message '- fix for browsing traits with shortcut
http://bugs.impara.de/view.php?id=3255' id '25ac39a7-9c10-44a3-9bcf-ee8718028cdb' date '3 June 2006' time '3:18:27 pm' author 'pmm' ancestors ((name 'Kernel-al.126' message '- recategorizing methods from *Traits extensions to local packages
- refactor accessing trait compositions to avoid unnecessary lazy initialization
- changes from ivar-shift cs
' id 'b8cd5ed6-3890-4642-8083-08af689a2cc0' date '7 May 2006' time '6:11:48 pm' author 'al' ancestors ((name 'Kernel-sd.125' message 'restore canUnderstand: + introduce canPerform:' id 'bd20f5e4-b563-4482-809f-c5d8b56c5f8e' date '7 May 2006' time '12:36:46 pm' author 'sd' ancestors ((name 'Kernel-sd.124' message '0003519: Duration isZero gets MNU in 7026;fix failed' id 'fb186e8f-724c-4157-8a8b-e56ce4ec6b4b' date '4 May 2006' time '3:57:58 pm' author 'sd' ancestors ((name 'Kernel-sd.123' message '0003527: infinite loop on locale change (Mantis 0003510 ) not fixed yet in 7027' id '0fa5b8ac-17e1-4b3d-9d61-9b847824657b' date '4 May 2006' time '3:29:43 pm' author 'sd' ancestors ((name 'Kernel-sd.122' message 'New version....because of problems
	---------------------------------
	0003520: Chronology Tests for hash failed in 7025; fixes included (by Tom Koenig)
	---------------------------------
	0003518: SkipListTests fails/errors in 7025;SkipListTestsFixes (by Tom Koenig)
	---------------------------------
	0003373: Float asFraction does not handle gradual underflow' id '482a31c8-1465-47ce-89ed-18fabb07f602' date '2 May 2006' time '8:50:50 pm' author 'sd' ancestors ((name 'Kernel-sd.118' message '0003504: Float asInteger conversion is inexact...' id 'af70ba1b-2cac-4ee2-a060-cad7f31fe8d9' date '29 April 2006' time '10:56:50 pm' author 'sd' ancestors ((name 'Kernel-sd.117' message 'See Mantis bug 1840 and 854.
This changeset allows a too-long Delay to fail the relevant primitive and schedules a fake delay to keep the timer system going. I claim this is preferable to disallowing long delays.

in 7026' id 'cdf1cb26-9695-4549-ae79-becf61d3dc25' date '29 April 2006' time '10:16:50 pm' author 'sd' ancestors ((name 'Kernel-md.116' message '- rename BlockContext>>endpc ->endPC
- 0003415: Changeset is not updated when renaming a class (Noury)
- 0003492: Complete the job of changing the way that arrays are printed (Andrew Black)' id 'a95ad0d2-d475-11da-92ca-000d933a223c' date '25 April 2006' time '6:07:57 pm' author 'md' ancestors ((name 'Kernel-ab.115' message 'asUTC
	^ offset isZero
		ifTrue: [self]
		ifFalse: [self utcOffset: 0]
		
	from avi' id '93460995-6d3e-448a-8690-3a76cf7756eb' date '22 April 2006' time '12:31:35 pm' author 'ab' ancestors ((name 'Kernel-md.114' message 'SmallLand' id 'bff2c8be-d145-11da-a5e8-000d933a223c' date '21 April 2006' time '4:47:26 pm' author 'md' ancestors ((name 'Kernel-sd.113' message 'Fix of Roel to avoid to get twice the same event when there is a reclassification.' id '79a6e886-ce77-4aff-9ac9-e7c68a1c50eb' date '9 April 2006' time '9:19:34 pm' author 'sd' ancestors ((name 'Kernel-md.112' message 'valueWithExit' id '669b2d7c-be8c-11da-a502-000d933a223c' date '28 March 2006' time '8:55:18 pm' author 'md' ancestors ((name 'Kernel-md.111' message 'Merge SqueakLand III' id 'f11c17fb-b74a-11da-8082-000d933a223c' date '19 March 2006' time '2:19:06 pm' author 'md' ancestors ((name 'Kernel-md.110' message 'merge with al' id '585b94ec-b746-11da-8082-000d933a223c' date '19 March 2006' time '1:46:11 pm' author 'md' ancestors ((name 'Kernel-md.107' message 'SqueakLand merge' id 'e423f593-b5d6-11da-b66a-000d933a223c' date '17 March 2006' time '5:55:51 pm' author 'md' ancestors ((name 'Kernel-md.106' message 'merge with SqueakLand' id '67949e61-b44f-11da-9a8d-000d933a223c' date '15 March 2006' time '7:13:29 pm' author 'md' ancestors ((name 'Kernel-md.105' message '- faster #binding' id '0bb7e5d3-af80-11da-a7a4-000d933a223c' date '9 March 2006' time '4:19:04 pm' author 'md' ancestors ((name 'Kernel-md.104' message '0003245: 7005: ProcessBrowser DNU
' id 'e85e183f-ac82-11da-80b4-000d933a223c' date '5 March 2006' time '9:02 pm' author 'md' ancestors ((name 'Kernel-md.103' message '- postCopy for MethodProperties
- Refactor/deprecate old environment methods in   
  SystemDictionary
- 0001613: [ENH] truncatedChanges-ls
-Change Set: dupAllCtrlAltKeysPref-dew
- changes from NewCompiler package' id 'ea4f628e-aac8-11da-886d-000d933a223c' date '3 March 2006' time '4:18:06 pm' author 'md' ancestors ((name 'Kernel-md.102' message '- changed BlockContext printOn to work with decompilers that
   can''t decompile blocks
- num literals check in CompiledMethod (from MethodNode)' id '6093de50-a849-11da-a8bb-000d933a223c' date '28 February 2006' time '12:00:06 pm' author 'md' ancestors ((name 'Kernel-md.101' message '0001596: [BUG][FIX] lurking signals in EventSensor' id 'e4497472-f6a5-4a27-b508-2113322d3003' date '24 February 2006' time '11:13:54 pm' author 'md' ancestors ((name 'Kernel-md.100' message '- BlockContext.st from Connectors
- Object.st from Connectors
- MessageSend.st from Connectors
- fix BlockContext>>#decompile to not reference Decompiler
- add CompiledMethod#decompileWithTemps (logic was in 	Tools... sigh!)
- ContextPart>>sourceCode simplified.
- refactored for #autoAccessors removal' id '3d597a10-15a7-4cd9-8a55-c9280511296b' date '22 February 2006' time '10:25:42 pm' author 'md' ancestors ((name 'Kernel-md.99' message '- add some closure runtim methods
- cm>>#methodNode does not prettyprint anymore
- add Class class>>#rootsOfTheWorld (from RB, VW compatible)
- decompileString for Blocks
- cleanups' id 'bf9d4698-fb42-445b-8b6a-9cc8c7162165' date '21 February 2006' time '9:30:12 am' author 'md' ancestors ((name 'Kernel-md.98' message 'add test for new cm format, test in #selector and #methodClass' id 'ef56dd0c-99e1-4a27-9a5e-c69753d270fd' date '19 February 2006' time '11:32:49 am' author 'md' ancestors ((name 'Kernel-md.97' message 'empty log message' id '2438b916-0bd3-4d36-98db-2bf0b3a6946d' date '19 February 2006' time '8:35:20 am' author 'md' ancestors ((name 'Kernel-md.96' message '- remove CompiledMethod>>#blockNode, blockNodeIn,   
- remove Message>>catcher
- remove MethodContext>>methodNode (use inherited version from MethodContext)' id '4ff1ff42-b75d-46c2-893b-b245a8ca15ce' date '19 February 2006' time '12:16:36 am' author 'md' ancestors ((name 'Kernel-md.95' message '- Fast #who part 2: Selector from compiledMethod.
- Forward from ContextPart to method (selector, decompile.)
  no need to search anymore

deprecate behavior>>#selectorAtMethod:setClass: 
	deprecate ContextPart>>#mclass (use methodClass, like in CompiledMethod)
	deprecate ContextPart>>#methodSelector (use #selector, like in CompiledMethod)
	deprecate MethodContext>>#answer: (comment indicates "will soon be removed' id '32ec81d2-2976-46c8-a597-e55e33aa8919' date '18 February 2006' time '1:42:05 pm' author 'md' ancestors ((name 'Kernel-md.94' message '- add Behavior hash
- simplify CompiledMethod: #defaultSelector, #equivalentTo:, #methodNode
- add CompiledMethod>>#selector
- add iVarselector to MethodProperties, accessors
' id '57880f56-2337-465e-b5cb-1e4e81da26e6' date '16 February 2006' time '7:24:40 pm' author 'md' ancestors ((name 'Kernel-md.93' message '- deprecated #who
- CompiledMethod>>#methodNode now sets Class and Selector
  for non-installed methods to Object/xxxUnknown
- refactored ContextPart to not call #who' id 'a9374e42-8f6a-4227-b614-22d31f5b620b' date '16 February 2006' time '4:49:29 pm' author 'md' ancestors ((name 'Kernel-md.92' message '- remove MethodPropertie>>#propDict (leftover)
- Pragma>>#selector fixed to no call #who
- First cut at "fast #who"
     - CompiledMethod>>#methodClass now gets class from
       classbinging in the last literal
     - cm>>#selector searches this class
     - searchForClass/seachForSelector search like old #who
     - who fixed to use methodClass/selector. does return
       #(unkown unkown) when not installed. deprecated.
     - isInstalled: tests if method is installed.
     - methodRef fixed to not use #who
     - #decompileTree deprecated
     - #decompile now sets class / selector
     - #decompileString changed to call #decompile
     - Behavior>>#binding returns the association form
       systemdict
     - Behavior>>#basicAddSelector:withMethod sets class
       in method on installation.' id '938634c4-fd4e-49ca-8921-4be99275f270' date '16 February 2006' time '2:18:22 pm' author 'md' ancestors ((name 'Kernel-md.91' message '- Changes for Properties/Pragmas
- Object class>>services backstop' id '378968df-8458-4f95-81c6-7264aa62290d' date '15 February 2006' time '5:35:28 pm' author 'md' ancestors ((name 'Kernel-md.90' message 'fixes from  0001734: [ENH] remove deprecated Chronology methods in 3.9 [cd][su][sm]' id '12a5e718-c29f-4c6a-a380-488297bd2f2c' date '14 February 2006' time '8:37:58 pm' author 'md' ancestors ((name 'Kernel-md.89' message '- add CompiledMethod>>#equivalentTo:
- fix for 0002513: arcTan: returns angle in strange intervale
- fix for 0002118: Integer class >> #primesUpTo: 
- move deprecated to 3.9Deprecated' id '8a801b0d-1987-4593-ab75-48b066ebf308' date '13 February 2006' time '6:15:52 pm' author 'md' ancestors ((name 'Kernel-md.88' message 'comment change' id 'aedbd00d-d367-49eb-85f9-29fa397dee25' date '12 February 2006' time '2:42:28 pm' author 'md' ancestors ((name 'Kernel-md.87' message 'delete Undefined>>languagePrefs, broken code' id 'f2e0f76d-1625-4af6-99e1-b8d280f5a6c8' date '12 February 2006' time '1:26:58 pm' author 'md' ancestors ((name 'Kernel-md.86' message '0002154: Light-weight mutex implementation' id '01512f50-f49f-464e-855f-ba80bdd0feaa' date '11 February 2006' time '7:19:50 pm' author 'md' ancestors ((name 'Kernel-stephaneducasse.85' message 'TestPrintOnBaseShowRadix' id '212dd511-8361-48a2-b647-88ecdda72841' date '9 February 2006' time '4:07:04 pm' author 'stephaneducasse' ancestors ((name 'Kernel-sd.84' message '0002135: Cmd-. don''t work with various Mac Os X keyboard layout' id '5afd2fd7-0b77-4ef8-a02c-5e81e4c1b40c' date '25 January 2006' time '8:44:33 pm' author 'sd' ancestors ((name 'Kernel-md.83' message 'added support for haltOnce' id 'c1ab5f8a-7be1-4ed5-a648-c04be9ee5786' date '21 January 2006' time '10:59:06 am' author 'md' ancestors ((name 'Kernel-md.82' message 'Change Set:		fileinUndeclared-bf
	Date:			12 January 2006
	Author:			Bert Freudenberg
	When filing in, do not ask whether it''s okay to moveclass var to Undeclared. Just move it.' id '3985a930-6c55-4726-a9c6-35bdfe543770' date '20 January 2006' time '11:04:46 pm' author 'md' ancestors ((name 'Kernel-md.81' message 'Changes from the ClosureCompiler package' id '8ea90bd3-239b-4a1c-a66a-ee3ec301f2aa' date '20 January 2006' time '10:49:47 pm' author 'md' ancestors ((name 'Kernel-md.80' message '0002353: Code browsers'' "inst vars" selects wrong item
' id '084d4c6e-0f4f-4983-af67-8e2862ab4a28' date '19 January 2006' time '8:36:47 pm' author 'md' ancestors ((name 'Kernel-md.79' message 'ummary
0002514: [FIX] condenseSources (was: Re: [Q] Removing changes file content.)
Description
You should have at most two versions, one in the sources file and one 
in the changes file. If you have more, then condenseChanges did not 
work properly.

One particular thing that breaks when running condenseChanges is 
overrides, which relies on the method history in the changes file.

Attached is a fix for that, it preserves method histories for methods 
in a "*-override" category. It''s pretty dumb, retaining each and 
every version of that method. An improvement would be to only keep 
the necessary ones, that is, those most recent after the 
categorization changed. But it works ;-)

- Bert -
' id 'f1b73a49-0f0a-40ba-8ba7-18e2eee445da' date '19 January 2006' time '10:42:26 am' author 'md' ancestors ((name 'Kernel-md.78' message 'Change Set:		selectorsWithArgs-md
	Date:			2 January 2006
	Author:			Marcus Denker
	Make Behavior>>#selectorsWithArgs: use symbol>>#numArgs.
	Much simpler: one line. And it fixes a bug.
	----
	Change Set:		removeUndefTest
	Date:			14 January 2006
	Author:			Marcus Denker
	removes UndefinedObject>>#test, which was a test method for alternate syntax' id '44777df0-17cb-4e68-857b-116f91c4a587' date '19 January 2006' time '12:02:49 am' author 'md' ancestors ((name 'Kernel-md.77' message '-> Behavior>>scopeHas:ifTrue has been move to deprecated
-> Object>>inspect changed to return self (which the Inspector
   does, but that''s better to do early)' id 'ddc7af58-f071-4f7e-88df-2e47661f5117' date '18 January 2006' time '7:24:23 pm' author 'md' ancestors ((name 'Kernel-sd.76' message 'made dirty by the annotation cs we put in the stream
6713' id '2eaf1dd7-b6a8-46d5-b936-aac3d41c0889' date '15 January 2006' time '7:19:51 pm' author 'sd' ancestors ((name 'Kernel-stephaneducasse.75' message '001 Compiler AnnotChanges without recompileAll.' id '4b355302-01fc-416f-b0a9-c6284d6a7130' date '15 January 2006' time '6:11:47 pm' author 'stephaneducasse' ancestors ((name 'Kernel-stephaneducasse.74' message 'preparation for method annotation cs
that will not be able to be loaded by MC.' id '2de151d7-1597-45d4-965f-8f7698e42cc9' date '15 January 2006' time '6:05:01 pm' author 'stephaneducasse' ancestors ((name 'Kernel-stephaneducasse.73' message 'TIM VMMaker related fixes:
		6669VMM38-64bit-imageUpdates.1.cs
		6669VMM38-gc-instrument-image.1.cs
		LocalePluginAddins.1.cs
		RemoveLeftoverVMMbits-38b4.1.cs
		WideStringPrimKill.1.cs' id 'd99a1a6c-b9f6-4b4c-8371-f989bb669f16' date '14 January 2006' time '12:41:55 pm' author 'stephaneducasse' ancestors ((name 'Kernel-al.72' message '- hide uses-clause in the class definition if the trait composition is empty
- add menu item to the context menu on classes in the browser to add traits
- changes corresponding to allClasses, allTraits interface' id 'cadc4d6a-434a-4777-9bbc-b3a04b2fd24d' date '13 January 2006' time '5:46:45 pm' author 'al' ancestors ((name 'Kernel-sd.71' message 'http://bugs.impara.de/view.php?id=2229' id 'faf0c4ce-bd9d-41b5-af85-e88a1d421d10' date '19 December 2005' time '4:59:06 pm' author 'sd' ancestors ((name 'Kernel-al.70' message '- restored class comment of Behavior that got lost' id '8074e742-b45b-4e50-8c47-58ed4c8c532e' date '8 December 2005' time '8:45:13 pm' author 'al' ancestors ((name 'Kernel-al.69' message '- moved method from Behavior into TPureBehavior' id '64bed1be-d26a-4491-9c58-29fe3e3b6e1b' date '7 December 2005' time '9:54:01 pm' author 'al' ancestors ((name 'Kernel-al.66' message '- moved modifications and additions in CompiledMethod from Traits to Kernel package' id 'efe11b97-9602-4489-b603-2f679acc6acf' date '2 December 2005' time '9:36:19 pm' author 'al' ancestors ((name 'Kernel-al.64' message '- moved a method to kernel package for bootstrapping reasons' id '05d7d8ca-5b33-45f2-83ee-14a0ac33142e' date '2 December 2005' time '4:31:28 pm' author 'al' ancestors ((name 'Kernel-al.63' message 'This package has the last 3.9a Kernel package as ancestor, and contains all changes of the sub-package Kernel-Classes of the Traits development branch (Kernel-al.62).' id 'ecd5cd8d-30fb-47b2-bead-f3c89957b3e3' date '2 December 2005' time '3:52:01 pm' author 'al' ancestors ((name 'Kernel-stephaneducasse.50' message 'include the changes that where giving a problem when loading PlusTools. So the package may not load alone.' id '3da343ab-836b-4817-a5ea-ea99a0c58b48' date '5 November 2005' time '3:24:15 pm' author 'stephaneducasse' ancestors ((name 'Kernel-CdG.49' message 'merged sd-44 in preparation for move to 39a' id '2c006814-9e82-6645-afd5-6bc256998ea3' date '31 October 2005' time '11:34:17 pm' author 'CdG' ancestors ((name 'Kernel-CdG.48' message 'backed out some problematic plustools changes' id 'f170e151-aad1-e64d-97ea-10a8a882fcff' date '31 October 2005' time '9:53:55 pm' author 'CdG' ancestors ((name 'Kernel-CdG.45' message 'Integrated PlusTools.zip (Mantis #1915)' id '7230b2c7-1c87-0846-abea-e1367dd30bfe' date '17 October 2005' time '11:06:13 pm' author 'CdG' ancestors ((name 'Kernel-CdG.44' message 'Integrated ToolBuilder-UI-Refactor-FillInTheBlank-1.cs from Mantis #1828' id '0fab7f13-620b-ab49-8964-1c741fff7f39' date '17 October 2005' time '9:06:56 pm' author 'CdG' ancestors ((name 'Kernel-CdG.43' message 'Integrated ToolBuilder-UI-Refactor-PopUpMenu-1.cs from Mantis #1828 ' id '23a832ea-240c-c84c-9431-be8ffd950709' date '17 October 2005' time '8:04:13 pm' author 'CdG' ancestors ((name 'Kernel-md.42' message '- Object isRectangle
- MethodDict scanFor: small refactoring' id 'e2cfeda8-06ac-4333-b88c-58c862114a7b' date '7 October 2005' time '4:09:26 pm' author 'md' ancestors ((name 'Kernel-md.41' message 'Change Set:		Complex-ln-bug-1815-v1
Date:			26 September 2005
Author:			Alexander@Lazarevic.de

This was reported on Mantis by snelgar:

The definition of Complex #ln produces the wrong real part, using arg where it should use abs. It should say
ln
    ""Answer the natural log of the receiver.""

    ^ self abs ln + (1 i * self arg)

but the abs is arg.
To convince yourself of the correct definition, try, in the distributed version:
(Complex real:2.71828 imaginary:0.0) ln. -> -Infinity + 0.0 i
BUT 2.71828 ln. -> 0.999999327347282
ln of a real number and of a complex number that happens to be real better be the same thing...
after the correction proposed above we get the proper
(Complex real:2.71828 imaginary:0.0) ln. -> 0.999999327347282 + 0.0 i' id '16f3676f-8761-4935-aee5-11e8c315e01a' date '7 October 2005' time '3:51:41 pm' author 'md' ancestors ((name 'Kernel-stephaneducasse.40' message '0000854: Long Delay schedules a deferred image crash' id '030a4781-cc1c-4486-954c-4672b3dd57cf' date '2 October 2005' time '5:42:24 pm' author 'stephaneducasse' ancestors ((name 'Kernel-stephaneducasse.39' message 'update class comment' id 'ed60e98c-8876-49e2-a5a1-3179fde5f61f' date '1 October 2005' time '9:09:20 pm' author 'stephaneducasse' ancestors ((name 'Kernel-stephaneducasse.38' message 'Fix a problem with Number>>printShowingDecimalPlaces:, where it would get confused by scientific notation (for example, 100000000 printShowingDecimalPlaces: 1 returned ''1.0'').  This is a new implementation that uses Integer>>asString instead of Float>>asString to avoid that problem.' id '5ec1635d-e36f-4ab7-9247-664eacee41a7' date '17 September 2005' time '10:18:16 pm' author 'stephaneducasse' ancestors ((name 'Kernel-stephaneducasse.37' message '0001577 added exploreWithLabel:' id 'be52ca06-313c-4408-abdb-c7f6858d1acd' date '17 September 2005' time '9:55:13 pm' author 'stephaneducasse' ancestors ((name 'Kernel-stephaneducasse.36' message 'merged Kernel-md35 and morphicsplitters loaded on Kernel-md.33

so to check.

' id '95b04e6e-3026-4bf1-b09e-7b5063edaeae' date '10 September 2005' time '3:32:48 pm' author 'stephaneducasse' ancestors ((name 'Kernel-md.35' message 'remove some more deprecated methods' id 'b85a0eed-f373-458c-990a-6aaf7cccb1c3' date '6 September 2005' time '11:12:01 pm' author 'md' ancestors ((name 'Kernel-md.34' message 'removed TempNameCache from CompiledMethod' id 'bf23c955-7df5-48e9-879b-b06dd98f4c46' date '6 September 2005' time '8:27:15 pm' author 'md' ancestors ((name 'Kernel-md.33' message 'remove deprected methods' id 'cb9e90c9-43e4-4eab-a8a4-95cc138ad4d8' date '6 September 2005' time '3:24:39 pm' author 'md' ancestors ((name 'Kernel-md.32' message 'Change Set:		CategorizerFix
Date:			13 May 2005
Author:			Alexandre Bergel

When recategoring a class, the SystemCategorizer removed the category ''as yet unclassified'', which does not make any sense.

This fix just check if the category ''as yet unclassified'' exists before to remove it.' id '12f4161d-13a5-4bab-b9bc-ad4a5afcb845' date '6 September 2005' time '1:14:05 pm' author 'md' ancestors ((name 'Kernel-md.31' message 'Change Set:		ClassRenameFix6#2004
Date:			23 August 2004
Author:			Karl Ramberg

md: removed the test, it was already in the image under another name.
Note: This changet now makes both tests of ClassRenameFix fail, this needs 
to be fixed (The tests or this code, don''t know)

Subject:		[BUG][FIX] Class>>rename fix 6/2004 (needs approval)
Author:		Chris Muller
Date Posted: 29 June 2004
Archive ID: 23079
Comments:	
In using the SystemChangeNotifier to detect class renames, I noticed that the
listeners are called in the middle of the rename, while the system is in an
inconsistent state.

The inconsistency is that the new name of the class is not set by the
time the handler methods run.  The Smalltalk global dictionary has been
updated, so (Smalltalk at: #RenamedClass) name ~= #RenamedClass.  This
is an inconsistent state of the Smalltalk dictionary.

The handler methods should operate as a true post-op, this fix makes it so.

Please ignore my first post about this, it was late and I accidently hit send
before I was done.

Thanks,
  Chris
' id 'bd6d3372-a0bf-4fee-bd41-be581e3175fc' date '6 September 2005' time '9:11 am' author 'md' ancestors ((name 'Kernel-md.30' message 'Change Set:		RemoveUnusedTempNameCache-bvs
Date:			6 January 2005
Author:			Benjamin Schroeder

CompiledMethod keeps a cache of temporary names for a single CompiledMethod instance. The cache is set after compilation and during certain debugger operations. However, it is never read.

Keeping the cache creates an extra reference to the most recently compiled method. This can be a problem in certain obscure situations, such as including the method in an image segment.

This changeset removes the cache.' id '270a16e6-1ab5-47ba-b27e-da86d640146c' date '5 September 2005' time '4:15:09 pm' author 'md' ancestors ((name 'Kernel-sd.29' message 'improved Magnitude comment' id '97ec7fab-f031-412e-8150-0b1f7cbfcb5a' date '4 September 2005' time '10:15:17 am' author 'sd' ancestors ((name 'Kernel-sd.28' message 'Improve Magnitude comment' id '7ca071e0-314e-445e-a74d-0729c0d379a9' date '4 September 2005' time '10:13:07 am' author 'sd' ancestors ((name 'Kernel-md.27' message 'integrated method from ToolBuilder-Spec' id 'e46b9301-2543-4c12-acc0-e3dcc5be1343' date '29 August 2005' time '5:03:09 pm' author 'md' ancestors ((name 'Kernel-md.26' message 'use #isDoIt' id '8e2b77ee-ad1c-47cd-b381-aa542289ce65' date '27 August 2005' time '9:17:51 pm' author 'md' ancestors ((name 'Kernel-md.25' message 'Change Set:		DecompileTree
Date:			30 January 2005
Author:			Dean Tribble, Alexandre Bergel

Allow a single method to be properly decompiled.' id '24024282-6eaa-41bc-bc64-2bbbeaf08a45' date '27 August 2005' time '12:49:10 pm' author 'md' ancestors ((name 'Kernel-md.24' message 'Change Set:		JonClassCommentBlank
Date:			9 January 2005
Author:			Jon Hylands

This is a simple fix to provide a more context-sensitive class comment template.' id '33a58350-4a60-45eb-888a-67d79ce93145' date '24 August 2005' time '10:53:06 am' author 'md' ancestors ((name 'Kernel-md.23' message 'Change Set:		fasterDayOfYear-brp
Date:			29 January 2005
Author:			Brent Pinkney

This enhancement was contributed by Dan Ingalls.

It replaces the implementation of DateAndTime>>dayOfYear to speed it up by a factor of 80.

All 394 test cases in the Kernel-Chronology Tests category succeed in a 3.9a-6531 image.' id '269494e5-1784-4048-92e1-9b5bf8fa2292' date '20 August 2005' time '7:10:41 pm' author 'md' ancestors ((name 'Kernel-md.22' message 'Removed RuleDate, RuleIndexDate and RuleSelectionCodeDate.
(ANSI, yes, but only for backward compatibility... Chronology
provides better meachnisms for those)
RuleDate will be availble over SqueakMap soon.' id 'df308359-08d5-4201-afb3-bbc319085800' date '20 August 2005' time '6:22:38 pm' author 'md' ancestors ((name 'Kernel-md.21' message 'remove support for #SQ00 alternate Syntax' id '894059a5-09a9-44c9-bb29-7c65f46582f3' date '14 August 2005' time '6:04:47 pm' author 'md' ancestors ((name 'Kernel-md.20' message 'Change Set:		SemaphoreWaitAndWaitTimeoutFix-jf
Date:			2 December 2003
Author:			Julian Fitzell

When using #wait and #waitTimeoutMSecs: together there is what appears to me to be a bug (both based on what the comment in #waitTimeoutMSecs: says and what seems intuitive.

#waitTimeoutMSecs: uses a Delay to signal the semaphore.  So, if there is already a process waiting on the semaphore, that process is resumed rather than the one that specified the timeout.

I''m note sure if there''s a better solution than the one here.  I enclosed a test as a separate attachment so other can implement a better one if they see fit.  The fix here creates an awful lot of short lived processes - I don''t see any obvious performance slow-down but I''m not really sure how best to benchmark it.' id '538cb112-a494-4b0d-b715-32d5f1367f57' date '13 August 2005' time '12:03 am' author 'md' ancestors ((name 'Kernel-md.19' message 'add isDictionary' id '4aec6e21-f581-4eff-b7d5-ef3cbe1c57d5' date '11 August 2005' time '4:46:12 pm' author 'md' ancestors ((name 'Kernel-md.18' message '-> comment for CompiledMethod>>methodClass
-> add BlockContext>>endpc: the end of the block bytecodes' id '38f4bba6-fbae-4bb9-872f-d11c8493992d' date '9 August 2005' time '8:06:47 pm' author 'md' ancestors ((name 'Kernel-md.17' message 'Change Set:		6603CleaningUtilities
Date:			30 March 2005
Author:			stephane ducasse

Move some utilities close to the class they use, i.e. Scanner' id '1cbc68de-04d9-44aa-b013-e1134d13031e' date '6 August 2005' time '12:02:25 pm' author 'md' ancestors ((name 'Kernel-md.16' message 'Change Set:		HexFixes
Date:			16 March 2005
Author:			Boris Gaertner

with changes set #6217 the method Integer>>hex was deprecated. This change set is an attempt to replace the remaining senders of hex with either storeStringHex or printStringHex"

Change Set:		ObjectExplorerIntegerBases-v2-laza
Date:			18 March 2005
Author:			Alexander@Lazarevic.de

This is a hack to make the ObjectExplorer display integers in hexadecimal, octal and binary form too. This also the changes the ObjectExplorer to open with expanded roots' id '09621b1d-5e3f-425a-8ee3-a8e1985918e6' date '4 August 2005' time '11:45:39 pm' author 'md' ancestors ((name 'Kernel-md.15' message '- adds Behavior>>formatterClass and Behavior>>prettyPrinterclass
- query methods for Behavior (which*)
- change ClassDescription>>reformatMethodAt: to use prettyPringerClass
- added to CM: allLiterals, getSource, literalsDo:, messagesDo:, methodClass, refersToLiteral, sendsSelector:
- changes CM>>methodNodeFormatted... to use prettyPrinterClass
- Added to Object: error, needwork' id 'b82226a9-de52-481c-a4d4-2d5c375132e4' date '3 August 2005' time '12:20:21 am' author 'md' ancestors ((name 'Kernel-md.14' message '- delete RenamedClassSourceFileRead (which has no comment
   and was not referenced anywhere)

Change Set:		commentsIn
Date:			28 March 2005
Author:			Markus Gaelli

Introduces the ability to read all comments of a method and not only the first one.
Not smart enough to bypass quotes in string constants, but does map doubled quote into a single quote.' id 'b469c941-9361-4796-9767-b15759fbd779' date '1 August 2005' time '4:03:52 pm' author 'md' ancestors ((name 'Kernel-sd.13' message 'introduce self evaluation for printing' id 'bced0436-01fe-11da-9134-001451041ea6' date '31 July 2005' time '10:07:36 pm' author 'sd' ancestors ((name 'Kernel-md.12' message 'fix for 0001423: [BUG] BlockContext>>valueWithArguments issues misleading error when sent non-Arrays

0001033: Inconsistency in naming of the formal parameters in certain methods of the True and False classes.

add Object>>isArray 

move newTileMorphRepresentative into Morphic package' id '2eee9073-65c7-48d8-908c-8f9bc72194cf' date '31 July 2005' time '2:23:34 pm' author 'md' ancestors ((name 'Kernel-md.11' message 'Change Set:		IntegerReadFromBaseFix-369-v2-laza
Date:			14 November 2004
Author:			Alexander@Lazarevic.de
Mantis-Bug:		369

This changes the method Integer readFrom:base: to do what the method comment says. That is to return 0 if there are no digits in the string (instead of raising an error).

v2: Corrected method comment.' id 'ef8189cb-76d2-40b4-869c-9a34470af085' date '30 July 2005' time '11:44:41 am' author 'md' ancestors ((name 'Kernel-md.10' message 'Change Set:		deprecate-isKindOThenDo
Date:			27 November 2004
Author:			Marcus Denker

Deprecates Object>>#isKindOf:thenDo:, fixes the sender.
a bit of cleanup of the Object categories' id '93c94806-cf96-46f6-bb68-a5c16f73c22d' date '29 July 2005' time '8:06:23 pm' author 'md' ancestors ((name 'Kernel-md.9' message 'Change Set:		KCP-0112-FixCanUnderstand
Date:			12 December 2003
Author:			Nathanael Schaerli

Fixes canUnderstand so that it deals with abstract methods (i.e., subclassResponsibility and shouldNotImplement) in the right way' id '7e66a34f-72ea-4682-8d4c-73b2e8b795f5' date '29 July 2005' time '4:03:47 pm' author 'md' ancestors ((name 'Kernel-md.8' message 'Change Set:		IntegerByteEncodeFix-850-v1-laza
Date:			30 January 2005
Author:			Alexander@Lazarevic.de
Mantis-Bug:		850

This fixes a problem I introduced in update 6217 with ByteEncoder in general and PostscriptEncoder in particular.' id '5e24dabc-871e-4a93-a4c5-30d64ccd4ca6' date '28 July 2005' time '7:54:11 am' author 'md' ancestors ((name 'Kernel-md.7' message '0001532: Remove some VMMaker methods to package
Description
When I packaged up the VMMaker stuff I left out a few methods and left them in the image. We ought to drop them fro mthe image now that I finally caught up with them.

Ought to go into 3.8 update stream as well as 3.9, ASAP.' id '1d98538e-e48b-4f2d-96c6-b81468e803fb' date '23 July 2005' time '6:22:48 am' author 'md' ancestors ((name 'Kernel-md.6' message '-> make Object>>-> to call Association basicNew, not new
   to save call to initialize.

added:

Change Set:		MethodReferenceEnh
Date:			6 February 2005
Author:			Alexandre Bergel

Add a utility method on the classside of MethodReference.
 ' id 'fd11509e-e78c-4062-849d-903a738596a4' date '22 July 2005' time '4:07:56 pm' author 'md' ancestors ((name 'Kernel-md.5' message '-----
an additional translated string from esther
-----
a small refactoring for isPrime
------
Change Set:		EasterDate
Date:			16 March 2005
Author:			Boris Gaertner

routines to compute the easter date
Example of use:
Date easterDateFor: 2004  
Date orthodoxEasterDateFor: 2004 

' id '47f37064-f2f9-11d9-ba4b-000d933a223c' date '12 July 2005' time '7:20:45 pm' author 'md' ancestors ((name 'Kernel-md.4' message 'Change Set:		TimespanEqualityFix
Date:			18 April 2005
Author:			Lukas Renggli

Comparing a Timespan instance or one of its subclasses with an object from a different hierarchy raises an error. This changeset adds a check for the class in the beginning, all equality methods should have this anyway. After loading this changeset all tests of the chronology framework pass.' id 'd4ee1b12-f2b6-11d9-853d-000d933a223c' date '12 July 2005' time '11:25:05 am' author 'md' ancestors ((name 'Kernel-md.3' message 'Change Set:		CategorizerFix
Date:			22 June 2005
Author:			Lukas Renggli

Fixes a very annoying problem where it is impossible to recategorize the system category list due to the default use of a limited print stream. All Squeak tools display an incompete printout of the categories what makes it impossible to edit and accept.

To reproduce this bug create a few more class categories, open the standard browser and hit reorganize in the system category list. This changeset fixes the problem.' id 'fcf3a2fd-f2b5-11d9-853d-000d933a223c' date '12 July 2005' time '11:19:03 am' author 'md' ancestors ((name 'Kernel-md.2' message '0001287: [ENH] Integer primality testing
Description
SPINIELLI Enrico <enrico.spinielli@eurocontrol.int>:

"please find attached a changeset which adds primality
testing to Integer.
(I wanted to solve Google puzzle
{first 10-digit prime found in consecutive digits of e}.com
so I needed a test for primality)

I have implemented Algorithm P, probabilistic primality test,
from Knuth, Donald E. ''The Art of Computer Programming'', Vol 2,
Third Edition, section 4.5.4, page 395"

md/ab: we added a test for <= 1 that raises an error for now.
(to be changed later... we''l ask him)' id '02f6572e-f2b3-11d9-9516-000d933a223c' date '12 July 2005' time '10:57:44 am' author 'md' ancestors ((name 'Kernel-dew.1' message 'Initial version from 3.8 partitioning.' id '8c652f29-ebd2-11d9-869f-000d93572e0e' date '3 July 2005' time '10:55:51 am' author 'dew' ancestors () stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())(name 'Kernel-avi.28' message 'Fix a problem with Number>>printShowingDecimalPlaces:, where it would get confused by scientific notation (for example, 100000000 printShowingDecimalPlaces: 1 returned ''1.0'').  This is a new implementation that uses Integer>>asString instead of Float>>asString to avoid that problem.' id '865f4f04-1f5d-11da-a506-000a95db7844' date '6 September 2005' time '10:09:10 pm' author 'avi' ancestors ((id 'e46b9301-2543-4c12-acc0-e3dcc5be1343')) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())(name 'Kernel-stephaneducasse.43' message 'tooDangerous for trait introduction' id 'a64b031a-d4ee-4210-aa86-89744ecc48aa' date '19 October 2005' time '9:26:40 am' author 'stephaneducasse' ancestors ((id 'e2cfeda8-06ac-4333-b88c-58c862114a7b')) stepChildren ())) stepChildren ())(name 'Kernel-stephaneducasse.44' message 'fix the fix of daniel for the class builder (inbox dvf-35)
The problem with those fixes is that the error was not propagated and the classBuilderFormatTestBroke


Name: Kernel-dvf.35
Author: dvf
Time: 22 September 2005, 3:24:37 pm
UUID: 39d61acc-9a2d-4785-b006-18bb10fee763
Ancestors: Kernel-md.34

Fixes for ClassBuilder, preventing the creation of bogus classes when a class redefinition aborts.
Fixes for ClassBuilder, preventing the creation of bogus classes when a class redefinition aborts.

Name: Kernel-dvf.23
Author: dvf
Time: 25 August 2005, 5:40:52 pm
UUID: 77ba3275-0545-46c3-a13d-26a3b4578e94
Ancestors: Kernel-dvf.21

Just Adrian''s fix, and Andrew and my fix to that. Adrian makes the old class copy be added as a subclass of the old classes super class.

Andrew and I wrap the removal of this link in an ensure section, since CB uses exceptions to signal some abnormal situations, and we want to clean up even then.' id '6a34744b-e563-4305-af0f-48b40cc23800' date '28 October 2005' time '3:35:47 pm' author 'stephaneducasse' ancestors ((id 'a64b031a-d4ee-4210-aa86-89744ecc48aa')) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())(name 'Kernel-al.71' message '- made traits understand withAllSuperclasses for compatibility reason (used in requires code)' id 'ef0f6260-f906-480a-8b92-a4a4e0f477a2' date '31 December 2005' time '1:51:59 pm' author 'al' ancestors ((id '8074e742-b45b-4e50-8c47-58ed4c8c532e')) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())(name 'Kernel-CdG.52' message 'combination of changes w.r.t. version 50 that were present in 6705 and patch for Mantis 2358/2353
' id '5e0fb1b5-bdf2-bf46-bde7-839393650421' date '13 December 2005' time '10:56:41 pm' author 'CdG' ancestors ((id '3da343ab-836b-4817-a5ea-ea99a0c58b48')) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())(name 'Kernel-al.89' message '- fixed marker methods that were broken because of new default literals in CompiledMethod' id '3b77bd99-96c8-4aa3-8ff6-cc5262397aa3' date '13 February 2006' time '10:36:33 pm' author 'al' ancestors ((id 'aedbd00d-d367-49eb-85f9-29fa397dee25')) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())(name 'Kernel-al.109' message '- Refactoring of Class|Trait>>category lookup. Improves category lookup by a factor of 10 and for example loading of a Monticello package by a factor of 2.' id '26ae46f5-1170-4acc-b17b-64f5e97f3759' date '18 March 2006' time '4:16:18 pm' author 'al' ancestors ((name 'Kernel-al.108' message '- Refactoring of Class|Trait>>category lookup. Improves category lookup by a factor of 10 and for example loading of a Monticello package by a factor of 2.' id '07b77571-7e77-46c5-8339-71b2de12a0f4' date '18 March 2006' time '2:13:09 pm' author 'al' ancestors ((name 'Kernel-al.107' message 'Improve performance of Class|Trait>>category by saving the current category name in an ivar. Improves category lookup by a factor of 10 and loading of a Monticello package by a factor of 2.' id 'e6d2bb99-eefe-4e15-b1f0-057d904807d4' date '18 March 2006' time '1:54:35 pm' author 'al' ancestors ((id '67949e61-b44f-11da-9a8d-000d933a223c')) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())(name 'Kernel-al.115' message '- recategorizing methods from *Traits extensions to local packages' id '740980fa-1883-4e40-b1e0-b2c5637f705d' date '27 March 2006' time '12:34:47 pm' author 'al' ancestors ((name 'Kernel-al.114' message '- refactor accessing trait compositions to avoid unnecessary lazy initialization' id 'e3852315-e6d9-4c86-99a2-dee4591fa93a' date '26 March 2006' time '10:16:43 pm' author 'al' ancestors ((name 'Kernel-al.113' message '- shifting ivars traitComposition and localSelectors (because of hardcoding of an ivar in Class in the VM) by moving them from Behavior to Class and Metaclass. Needs to run the changeset first.' id '3ff9186a-2deb-443e-a821-c6fea0ba1b6d' date '26 March 2006' time '7:22:43 pm' author 'al' ancestors ((id 'f11c17fb-b74a-11da-8082-000d933a223c')) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())(name 'Kernel-al.127' message '- allow for instantiating Behavior for creating anonymous classes' id '39bb43a6-1980-4041-8a56-f52c2b1b1e38' date '12 June 2006' time '10:49:23 am' author 'al' ancestors ((id 'b8cd5ed6-3890-4642-8083-08af689a2cc0')) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())(name 'Kernel-al.130' message '- remove two methods in Behavior and ClassDescription which were identical to methods defined by one of their traits.' id '4caedfa1-dbc2-4568-82f5-7598064d0f47' date '7 July 2006' time '12:59:51 pm' author 'al' ancestors ((id 'fd4d1494-0b67-4ae7-8014-a61e74bd8544')) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())(name 'Kernel-ar.190' message 'Semaphore>>wait accidentally went into Scripting-Override. Put it back into Kernel.' id '70aea0d9-628f-0f4d-bdb8-a04571aae974' date '17 July 2009' time '3:02:11 am' author 'ar' ancestors ((id 'a1ce9228-448a-45a2-b93f-4fd68b493650')) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())(name 'Kernel-djr.228' message 'CompiledMethod>>= seems to be broken. Attempt to fix it.

MethodProperties>>analogousCodeTo: calls Pragma>>analogousCodeTo: which does not exist.

Further assume when both properties are nil and both pragmas are empty, its equal.' id '64134c3b-4a17-49a5-8c8e-bf604e2b53bc' date '27 August 2009' time '12:29:15 pm' author 'djr' ancestors ((id 'f47aa5b7-b450-4ed2-8237-26841337ce18')) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())(name 'Kernel-ul.249' message '- added MethodDictionary >> #postCopy to replace #copy' id 'cd3a0f94-bfdc-8e4a-9053-cc86b3fd21e1' date '22 September 2009' time '5:05:35 am' author 'ul' ancestors ((id '89aa20e5-8219-d040-84bc-b10594ff152e')) stepChildren ())) stepChildren ())(name 'Kernel-ul.250' message '- removed unnecessary #copy from MethodDictionary' id '8562c0a7-ab42-7841-8efa-5f91c1123cb0' date '22 September 2009' time '5:08:10 am' author 'ul' ancestors ((id 'cd3a0f94-bfdc-8e4a-9053-cc86b3fd21e1')) stepChildren ())) stepChildren ())(name 'Kernel-ul.251' message '- replaced uses of #findElementOrNil: with #scanFor:
- new #scanFor: implementation for MethodDictionary
- Added BlockClosue >> #timeToRunWithoutGC which returns the number of milliseconds taken to the block without GC time.' id '0926180d-3ca0-0d41-9a06-d3a1d210b2bd' date '26 September 2009' time '3:01:51 am' author 'ul' ancestors ((id 'e21b2985-4367-5342-8fa3-87a10df7a4d1')(id '8562c0a7-ab42-7841-8efa-5f91c1123cb0')) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())(name 'Kernel-ul.265' message '- removed Float >> #shallowCopy. Primitive 148 seems to handle this correcly.' id '2bd42673-8acc-4d4f-8833-33440e7a80ab' date '9 October 2009' time '5:03:25 am' author 'ul' ancestors ((id '2ca1dd7b-3aaf-ef40-a65d-9470d31bf6b6')) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())(name 'Kernel-ul.270' message '- faster DateAndTime and Date creation with #year:month:day: and friends
- minor formatting fixes' id 'bc5f947a-5957-084c-8e47-25dde79031f5' date '15 October 2009' time '1:33:02 am' author 'ul' ancestors ((id '4df9fa19-cf20-4723-9f11-aefc85fe3c51')) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())(name 'Kernel-ul.283' message 'Updated MethodDictionary
- added MethodDictionary class >> #rehashAllInstances which rehashes all instances and changes the identities in one shot. Much faster than single #become: sends.
- removed
	- #add: - same implementation in superclass
	- #at:putNoBecome:, #fullCheckNoBecome, #growNoBecome, #removeKeyNoBecome: - old methods with no senders (not even in 3.8 full), no comment stating their usefulness
- modified several methods which have cleaner code and/or better performance assuming the following invariant: (self basicAt: index) isNil = (array at: index) isNil
- added a line about the invariant to the class comment' id 'b127e801-1e1d-c143-8076-dba46a715d74' date '30 October 2009' time '4:48:05 am' author 'ul' ancestors ((id 'c2f3dbc8-83f0-47ad-95e4-195f18f09f30')) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())(name 'Kernel-ar.337' message 'CompiledMethodTrailer: Cleanup.' id '357ce99e-9fe1-f548-9540-060ed21b7479' date '22 December 2009' time '1:54:20 am' author 'ar' ancestors ((id '3bc94ec9-ab5f-544f-9525-4f11e357ec43')) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())(name 'Kernel-ar.381' message 'Merging Kernel-Igor.Stasenko.377:

- Date class>>#readFrom:pattern:

(cross-fork compatibility)' id '334b9670-3205-1442-846a-04eaacc81774' date '23 January 2010' time '2:18:00.652 pm' author 'ar' ancestors ((id '06edff56-56d3-4b50-baf5-34cdd716ca88')(name 'Kernel-Igor.Stasenko.377' message '- Date class>>#readFrom:pattern:

(cross-fork compatibility)' id '828e9087-f180-4f56-b597-3bd3e325ff05' date '15 January 2010' time '2:30:42.198 pm' author 'Igor.Stasenko' ancestors ((id '0c8eee97-6a0c-4e7a-ad21-990fc5adbd35')) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())(name 'Kernel-mtf.388' message 'Made a note about the island and env instance variables in the Process class comment' id '97896701-ce97-4a36-a281-71ae723ce7e8' date '4 February 2010' time '5:23:44.746 pm' author 'mtf' ancestors ((name 'Kernel-mtf.387' message 'added two unused instance variables to Process. These are used by Cobalt; adding them here prevents loading cobalt from marking Kernel as dirty

island: used by the Tweak scripting system. very foundational to the entire Croquet infrastructure

env: part of ProcessSpecific, which adds process-specific variables to the image. Used by Logging, which Cobalt uses' id 'f761f4c5-3213-4c7d-af60-9bb5d1d78dec' date '4 February 2010' time '2:19:19.931 pm' author 'mtf' ancestors ((id '72d71775-3ee2-bb41-b1db-2a527b7cc25c')) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())(name 'Kernel-nice.403' message '1) Introduce a Number class>>#readSqueakSyntaxFrom:  for Compiler/Scanner. This will later enable introduction of extended for #readFrom:
2) Connect the hook for allowing leading + sign in Integer reading.' id 'b3db5f5a-bd5e-ce46-965a-f108c7608d2a' date '23 February 2010' time '2:39:40.246 pm' author 'nice' ancestors ((id '804739fb-f633-4d4d-9717-2b69cea9c2cb')) stepChildren ())) stepChildren ())(name 'Kernel-ul.406' message '- an implementation of the #cull: protocol' id 'c35323f5-b49d-6a45-8b3f-aab75d51c382' date '23 February 2010' time '4:32:14.835 pm' author 'ul' ancestors ((name 'Kernel-nice.405' message 'Oops, correct my very recent bug for + sign hook' id 'f3db6507-5501-8b41-a85a-1d9f34e759c3' date '23 February 2010' time '3:22:30.592 pm' author 'nice' ancestors ((name 'Kernel-nice.404' message 'Connect ExtendedNumberParser in Number class>>#readFrom: and some variants

Current behavior is:
'''' asNumber -> Error (used to be 0)
''1.'' asNumber -> 1.0 (used to be 1)
''1.e2'' asNumber -> 100.0
''1.e+2'' asNumber -> 100.0 (NEW)
''+1'' asNumber -> 1 (NEW)

OLD weird squeak behaviour preserved for sign position:
''-16rFF'' asNumber ->-255
''16r-FF'' asNumber ->-255
-16r-FF'' asNumber -> 255
(NOW has same with +)

These ones used to fail:
''1r0'' asNumber -> 1 (ignore the rest from $r to end)
''2r3'' asNumber -> 2 (ignore the rest from $r to end)

Changes due to 16rff from Andreas
''16r1.e2'' asNumber  -> 1.8828125 (used to be 4096.0)

Now time to raise your voice...
' id '602205a3-29f5-9240-9436-c42070a48cea' date '23 February 2010' time '3:14:34.835 pm' author 'nice' ancestors ((id 'b3db5f5a-bd5e-ce46-965a-f108c7608d2a')) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())(name 'Kernel-cmm.494' message 'Factored common CompiledMethod signature printing behavior.' id '4cf3f377-153b-440b-a59b-5474949b3069' date '19 September 2010' time '4:47:17.67 pm' author 'cmm' ancestors ((name 'Kernel-klc.493' message 'This makes two significant changes to DateAndTime/TimeStamp either of which fixes a number of TimeStamp tests.

1.  Ensure that when the date is extracted from either DateAndTime or TimeStamp that the date is defined in terms of a DateAndTime.

2.  If a TimeStamp and a DateAndTime represent equivalent instances in time then allow #= to return true when comparing them.

These changes may be controversial.  As mentioned when I discussed this on the #squeak IRC channel there are conceptual differences between TimeStamps and DateAndTimes.  I don''t disagree with this notion, however that is not how TimeStamp is implemented currently in Squeak.  I admit I''m taking the easier approach since I would have to give some serious thought and research into a ''proper'' redesign of TimeStamp.

For now these changes make TimeStamp/DateAndTime at least work like they seem to be expected to based on the tests.' id '2160992d-b8c1-a246-8dfe-751abbb9f685' date '12 September 2010' time '4:37:22.016 pm' author 'klc' ancestors ((name 'Kernel-nice.492' message 'Second revision of bench to display:

The rules are:

- display 10,400,000 rather than 1.04e7
- display 24 rather than 24.0
- display a fractional part only if significative

In any case, only first 3 digits are displayed, the rest are rounded to zero because considered un-meaningfull.

Above 100, every digit after the decimal point is at least in fourth position, so the decimal part won''t be displayed.' id '29865715-9a8e-c448-8d96-34eee97b5a37' date '10 September 2010' time '9:11:24.786 pm' author 'nice' ancestors ((name 'Kernel-nice.491' message 'Prevent bench to display 14 digits or so.
3 significative digits should be enough for a human brain (at least mine).' id '00d7b4ff-5219-aa44-b82d-be4c7f18c761' date '10 September 2010' time '2:33:29.294 pm' author 'nice' ancestors ((name 'Kernel-ar.490' message 'Restructurings to reduce package depencencies.' id '421b78d6-e95b-af49-affd-34ef3fa166ae' date '5 September 2010' time '11:28:07.1370000000000005 am' author 'ar' ancestors ((name 'Kernel-ar.489' message 'Merging Kernel-spd.476:

Fixed issue 7553 - DateAndTime now uses the local offset when creating an instance via readFrom: or fromString: if none is specified.  This is consistent with the behavior of year:day:hour:minute:second:' id '23754a5a-4269-4a4c-8151-36159992728b' date '2 September 2010' time '7:55:47.302 pm' author 'ar' ancestors ((name 'Kernel-ar.488' message 'Merging Kernel-cbr.475:

New comments for Month, Year, Week. This time without additional cruft from my image (whoops.)' id 'e6aaf57a-8657-8f42-b0de-eec4c9489a7d' date '2 September 2010' time '7:54:27.337 pm' author 'ar' ancestors ((name 'Kernel-nice.487' message 'provide a modular inversion much faster than the binary extended euclidean algorithm found in DigitalSignatureAlgorithm.

As raisedTo:modulo: belongs to Integer, reciprocalModulo: belongs to Integer too. These algorithms have value outside DSA.' id '283f7f22-eafa-42f9-a04d-6919febb4471' date '2 September 2010' time '9:42:36.971 pm' author 'nice' ancestors ((name 'Kernel-dtl.486' message 'Normalize new Duration instance if signs of seconds and nanoSeconds do not match. Fixes invalid printString for Duration in this case. DurationTest>>testNormalizeNanoSeconds passes now.' id '4779fe02-9375-421c-8753-c7db6d686b03' date '29 August 2010' time '12:18:28.667 pm' author 'dtl' ancestors ((name 'Kernel-ul.485' message '- fix LargeInteger printing' id 'fce08992-f821-ed46-a863-9935d6a7fe2e' date '23 August 2010' time '2:13:52.357 pm' author 'ul' ancestors ((name 'Kernel-dtl.484' message 'Remove Time class>>primUtcWithOffset (introduced in Kernel-dtl.476). The underlying mechanism for representing UTC and offset remains under discussion on the vm-dev list, so this method should not be introduced in trunk without an agreed approach.' id '54ee9807-a918-47fb-b619-b54b49c816e0' date '22 August 2010' time '11:01:16.199 pm' author 'dtl' ancestors ((name 'Kernel-nice.483' message 'Fix WeakMessageSends Part 3.
Thanks to Juan, see http://bugs.squeak.org/view.php?id=7352

Clean-up, but preserve WeakMessageSend>>valueWithEnoughArguments: though it is not used with such receiver (who knows a package might need it).' id '3fb5df26-bcfa-4958-8ee6-79cf603bb3fa' date '22 August 2010' time '9:41:03.176 pm' author 'nice' ancestors ((name 'Kernel-nice.482' message 'Fix WeakMessageSends Part 1.
Thanks to Juan, see http://bugs.squeak.org/view.php?id=7352

I could nor resist and added my own simplifications

There will be a second part for this fix.' id '0cda1747-d4ad-4e81-b7f9-a085602e5344' date '22 August 2010' time '9:12:15.834 pm' author 'nice' ancestors ((name 'Kernel-nice.481' message 'minor change: avoid creating a SortedCollection when not necessary...
asSortedCollection asArray -> asArray sort' id '70b04d4e-153d-4c0f-bb0d-92b3dce1cd88' date '22 August 2010' time '8:36:19.342 pm' author 'nice' ancestors ((name 'Kernel-nice.479' message 'Fix for http://bugs.squeak.org/view.php?id=7555

The sign of (Float negativeZero abs) was negative, which was surprising...' id '05a9ec90-5060-4f09-8808-608d5b6cb657' date '21 August 2010' time '10:42:50.198 pm' author 'nice' ancestors ((name 'Kernel-ul.478' message '- use #cull:, #cull:cull: and #valueWithPossibleArgument: instead of #valueWithPossibleArgs: to avoid array creation' id 'ce807f45-d3ef-0a41-8094-245579694724' date '21 August 2010' time '7:33:03.969999999 pm' author 'ul' ancestors ((name 'Kernel-eem.477' message 'Add a followingBytecode to InstructionStream, e.g.
SystemNavigation default browseAllSelect:
	[:m| | is |
	m isQuick not
	and: [is := InstructionStream on: m.
		is scanFor: [:b| b = 16r8F
						and: [is secondByte ~= 0
						and: [is followingBytecode = 115]]]]]' id '56dc3c2a-e134-4477-98c4-653096627951' date '14 August 2010' time '7:05:27.885 pm' author 'eem' ancestors ((name 'Kernel-dtl.476' message 'Add Time class>>primMicrosecondClock and Time class>>primUtcWithOffset for access to microsecond clock primitives available in newer Squeak VMs.

primMicrosecondClock provides a system clock with nominal microsecond precision.

primUtcWithOffset answers UTC time as microseconds since the Posix epoch and offset as seconds offset from GMT. The Squeak clock is traditionally implemented in terms of platform local time. Use of UTC time and offset is advantageous if time zones and daylight saving time offsets are to be considered.

Example:
{ Time primMillisecondClock .
   Time primMicrosecondClock .
   Time primUtcWithOffset } ==> #(6932757 6932757830 #(1281815075538304 -14400))
' id 'ac94bcb6-d6bc-4863-b7a8-70d7f49b81e2' date '14 August 2010' time '5:55:49.082 pm' author 'dtl' ancestors ((name 'Kernel-eem.475' message 'Fix CompiledMethod>>decompileWithTemps to live up to its name.' id '299acbbc-d538-4103-8ce2-29099b29d6b9' date '12 August 2010' time '2:07:00.805 pm' author 'eem' ancestors ((name 'Kernel-eem.474' message 'BlockClosure>>#once Travis Griggs'' neat idiom for interning values of computations.  Use e.g. as in
	myResourceMethod
		^[time-consuming computation] once' id '292f2cc5-ba81-4d03-a64f-4e7cb878d68f' date '22 July 2010' time '1:42:05.4 pm' author 'eem' ancestors ((name 'Kernel-eem.473' message 'Change to older semantics of Integer>>hex for Cog VMMaker.' id '2255d998-2581-444e-9caf-7e51de7ba918' date '17 July 2010' time '5:13:29.985 pm' author 'eem' ancestors ((name 'Kernel-eem.472' message 'yet another snafu for BlockClosure>>value.' id '6c1ef6ed-4b21-4887-9c13-7ed690069f0e' date '7 July 2010' time '11:53:07.243 am' author 'eem' ancestors ((name 'Kernel-eem.471' message 'Restore the BlockClosure>>value[:....] primitive numbers snafu from
the asContext fixes.' id '1ec2e53a-ad4f-42d4-90b2-4a413714f24d' date '7 July 2010' time '10:27:12.923 am' author 'eem' ancestors ((name 'Kernel-eem.470' message 'Fix the other dependencies of asContextWithSender:' id 'c0ed6502-acb0-4ab5-a352-16274fceec1a' date '2 July 2010' time '10:42:57.84 am' author 'eem' ancestors ((name 'Kernel-eem.469' message 'Make sure BlockClosure>asContext[WithSender:] pushes nils for
any arguments and pushes any copied values

I recommend that you load Kernel-eem.468 before loading this!' id '00b1358c-5201-4cfe-8fb4-c2e4c628fe09' date '1 July 2010' time '7:50:52.854 pm' author 'eem' ancestors ((name 'Kernel-eem.468' message 'Fix restart in blocks in the debugger.
Also first part of fix for BlockClosure>asContext[WithSender:]' id 'cefa8bb0-aaaa-4ea6-b115-9d4ce1a84d6f' date '1 July 2010' time '7:48:07.5 pm' author 'eem' ancestors ((name 'Kernel-ul.467' message '- a bit faster DependentsArray >> #select: implementation
- added missing MethodDictionary >> #associationAt:ifAbsent:' id 'fd9601ae-bedf-9342-b329-947d78cb0329' date '1 July 2010' time '9:11:12.989 pm' author 'ul' ancestors ((name 'Kernel-eem.466' message 'Add Object>>okToClose for multi-window browser support' id 'e7f77eee-fec2-441f-91ce-b505b87dd1db' date '1 July 2010' time '11:39:37.515 am' author 'eem' ancestors ((name 'Kernel-ar.465' message 'Cogification part 2: Float access primitives.' id '9a7edf96-1125-3646-b383-d2cbac094279' date '20 June 2010' time '2:29:04.886 pm' author 'ar' ancestors ((name 'Kernel-ar.464' message 'Cogification part 1: Remove unsafe prims from LargeInteger.' id 'f8f6461e-8062-0849-99f8-c19b58354a3d' date '20 June 2010' time '2:26:05.41 pm' author 'ar' ancestors ((name 'Kernel-cmm.463' message 'Removed implicit conversion of DateAndTime equality-testing argument.' id '1b05ff9c-c52f-4df5-9283-f8dcd5a88e3a' date '15 June 2010' time '3:18:03.121 pm' author 'cmm' ancestors ((name 'Kernel-ar.462' message 'TranslatedMethod can go, too.' id '88f629c7-3e53-f146-8fca-29f31e151dd4' date '14 June 2010' time '10:09:55.587 pm' author 'ar' ancestors ((name 'Kernel-ar.461' message 'Remove positively ancient j3 support that hasn''t been used in too many years.' id '86d9f9a3-3611-fa43-a6ec-dc6d3c69012a' date '14 June 2010' time '10:07:55.827 pm' author 'ar' ancestors ((name 'Kernel-nice.460' message 'add #methodsInCategory: from Pharo (needed by newer XMLParser package)

Correct a minor typo in a comment (Pharo).' id 'f4fe2c21-dea0-4c4e-ad78-12c8151cf993' date '12 June 2010' time '2:19:25.578 am' author 'nice' ancestors ((name 'Kernel-nice.459' message 'Avoid an overflow when asking for LargeInteger>>#log
Same for fractions of LargeInteger.

This completes the work engaged for #ln and #log:

Note 1: the code is duplicating #ln, but Idid not find any elegant way to avoid this duplication.

Note 2: concerning accuracy, LargeInteger>>#log and#ln might be several ulp off (up to 3, maybe more).' id 'ab072b6c-709f-8748-ab49-d5f71ca3fc92' date '12 June 2010' time '12:48:39.803 am' author 'nice' ancestors ((name 'Kernel-dtl.458' message 'Fix discrepancy noted in Mantis 7525
http://bugs.squeak.org/view.php?id=7525
----------------------------------------------------------------------
 JoachimGeidel - 06-10-10 12:20
----------------------------------------------------------------------
PseudoContext class>>initialize and TranslatedMethod class>>initialize test
if the specialObjectsArray size equals 41 after recreating it and raise an
Error if it is not (in Squeak 4.1, latest update: 9957). The tests should
either be updated or removed.
' id 'cbd7063b-14c0-46a6-80af-00ab06fef6cc' date '10 June 2010' time '7:19:48.745 pm' author 'dtl' ancestors ((name 'Kernel-dtl.457' message 'Merge Kernel-nice.453' id '9fefe953-125d-4872-b44c-8cddad771beb' date '3 June 2010' time '9:30:53.666 pm' author 'dtl' ancestors ((name 'Kernel-mtf.456' message 'Added a utility method to Behavior for testing whether a method is compiled correctly without overwriting the incorrectly compiled method if not' id 'b1e05e80-6bc8-47fd-adda-82388483e604' date '3 June 2010' time '11:05:37.324 am' author 'mtf' ancestors ((name 'Kernel-mtf.455' message 'Added a support method for making error handlers re-entrant. Needed for preserving Tweak island semantics in the presence of syncSends and error resignalling' id '515e8964-f471-4ac6-bcec-47e74b833f86' date '3 June 2010' time '9:41:09.471 am' author 'mtf' ancestors ((name 'Kernel-mtf.454' message 'added ProtoObject >> instVarsInclude:, which is used by the pointer tracer fixes:
http://bugs.squeak.org/view.php?id=7158' id '744ec5f0-a005-4e29-b3c0-d76f96573393' date '3 June 2010' time '8:51:28.452 am' author 'mtf' ancestors ((name 'Kernel-ar.452' message 'Eliot''s fix for ContextPart>>tryNamedPrim...' id '468fbdc7-4fcb-9845-8223-5333334177b8' date '24 May 2010' time '8:43:58.049 pm' author 'ar' ancestors ((name 'Kernel-nice.451' message '1) Add a class comment for Categorizer (both for testing MC and because class comments are a good thing).
2) Let a chance for NumberParser subclasses to parse a leading plus before an integer.
3) Skip backward in case of invalid radix, just to have the message inlined where due in code panes.' id '55b7ba84-6fa3-9e49-89a6-c42ce2ae82fc' date '6 May 2010' time '9:15:03.298 pm' author 'nice' ancestors ((name 'Kernel-ar.450' message 'Merging Kernel-wiz.444:

This adds Number>>roundDownTo:

Currently it is missing. Essentialy it is an umimplemented call. Called by:
''Point roundDownTo: {*Morphic-Truncation and Roundoff}'' ''Rectangle compressTo: {*Morphic-Truncation and Roundoff}'' ''Rectangle expandTo: {*Morphic-Truncation and Roundoff}''

It doesn''t show up as unimplemented because the selector is used by Point. However, if it is not present the other three methods will raise a stink.

' id 'f30101fa-2360-5249-8dc8-cf7d9f169246' date '5 May 2010' time '10:23:50.222 pm' author 'ar' ancestors ((name 'Kernel-ul.449' message '- #rehash doesn''t compress dictionaries, use #compact instead' id '67d79d4f-1329-644e-a7a6-3f63bc2904b8' date '2 May 2010' time '12:22:11.346 pm' author 'ul' ancestors ((name 'Kernel-fbs.448' message 'Support for Mantis 7517: a spawned workspace has no context menu.' id 'f46f80a9-5492-9542-9826-80a936a01df8' date '28 April 2010' time '10:30:41.538 pm' author 'fbs' ancestors ((name 'Kernel-ul.447' message '- use #quo: and #rem: instead of #// and #\\ to handle negative arguments properly in Duration class >> #milliSeconds:
- also removed the method comment which was obsolete' id 'e4508c46-01d1-b943-8c11-b4a471f12488' date '28 April 2010' time '10:01:34.283 am' author 'ul' ancestors ((name 'Kernel-ar.446' message 'Merging Kernel-hmm.441:

Proposal: wrap the parsing action in CompiledMethod>>methodNode in a SyntaxErrorNotification error handling block to decompile methods which can''t be parsed correctly.
OMeta2 and probably other domain specific languages benefit from this.' id '8677fe4e-dc64-b449-b45d-46674a51961a' date '21 April 2010' time '8:53:39.616 pm' author 'ar' ancestors ((name 'Kernel-nice.445' message '1) Avoid overflow when (1.7976931348623157e308 printStringBase: 16.) - http://bugs.squeak.org/view.php?id=3493.
2) cosmetic: use #bitShift:  because faster than #<< #>> and remove unecessary temps from #absPrintExactlyOn:base:' id '89933404-89fd-4dc7-838f-67300383b0b1' date '21 April 2010' time '12:00:42.462 am' author 'nice' ancestors ((name 'Kernel-ul.444' message '- merged' id '9e17b787-82e5-e947-99da-7ca2d6c2c97a' date '19 April 2010' time '2:33:10.77 am' author 'ul' ancestors ((name 'Kernel-ar.443' message 'Fix handling of duplicate/swap control and alt keys.' id '36dc17fd-f2de-d54d-b33f-435c2f08d6bb' date '17 April 2010' time '11:19:52.132 am' author 'ar' ancestors ((name 'Kernel-tbn.442' message 'remove unused Message>>pushReceiver
(see also http://code.google.com/p/pharo/issues/detail?id=2308)' id '8b407e36-b213-ad42-ad55-5df9e6dadcbc' date '14 April 2010' time '9:44:34.675 pm' author 'tbn' ancestors ((name 'Kernel-tbn.441' message 'categorize accessor methods in ValueHolder' id '9334492f-264f-cc4f-8cb3-dea1986e5217' date '14 April 2010' time '1:25:04.516 pm' author 'tbn' ancestors ((name 'Kernel-cmm.440' message 'Fixed Duration bug.' id 'e685ace9-6aa0-46a4-a4a2-02b16b385eec' date '8 April 2010' time '12:21:17.282 pm' author 'cmm' ancestors ((name 'Kernel-jcg.439' message 'Fix Promise to address failing test added in KernelTests-jcg.146.' id '6055c684-bed4-44a4-9da3-a55fc22de5b6' date '6 April 2010' time '1:42:28.455 am' author 'jcg' ancestors ((name 'Kernel-jcg.438' message 'Fix embarrassing bug in Promise>>resolveWith:' id '8d53a86d-8fd5-8c42-9bc7-abea484a3e5d' date '5 April 2010' time '12:40:23.346 am' author 'jcg' ancestors ((name 'Kernel-ar.437' message 'Fixes needed for new condensing method:
* Allow class comments to be moved to the sources file
* Make CompiledMethod>>setSourcePointer: less expensive by avoiding #become: if at all possible' id 'fca21cc5-5dcb-e24d-af15-a1bf0241151d' date '31 March 2010' time '11:12:42.404 pm' author 'ar' ancestors ((name 'Kernel-ar.436' message 'Fix failing traits condenseChanges test. Since we do not share compiled methods, moving *all* trait methods (instead of just ''local'' ones) is CORRECT behavior.' id 'd85068dc-e213-1149-81df-1f71ed09846c' date '29 March 2010' time '9:02:14.348 pm' author 'ar' ancestors ((name 'Kernel-ar.435' message 'Include the selector of the failing primitive in the error message about primitive failure. For example:

	Socket new primSocketDestroy: nil

now tells us that primSocketDestroy: failed instead of just ''a primitive has failed''.' id 'c4cbfefc-fcca-7643-9c6b-183eca2ccb8d' date '25 March 2010' time '3:27:26.733 pm' author 'ar' ancestors ((name 'Kernel-nice.434' message '1) Get rid of now unused MethodProperties
2) remove a _ assignment in Random comment' id 'de185e6f-0fc2-ec4a-be45-aaae05306fbe' date '24 March 2010' time '9:12:27.573 pm' author 'nice' ancestors ((name 'Kernel-ar.433' message 'Add the underscore preferences in Behavior.' id 'be2ffaa2-8818-3445-a7bf-d1af190aa044' date '24 March 2010' time '1:22:53.859 am' author 'ar' ancestors ((name 'Kernel-djr.432' message 'Fix rootsOfTheWorld, broken since the SmalltalkImage refactoring.' id '2e0904c5-b15c-4c07-9915-1cf2b51e0410' date '23 March 2010' time '5:43:36.668 pm' author 'djr' ancestors ((name 'Kernel-nice.431' message 'Use literalEqual: rather than = to test for compiled code equality.
We don''t want 256000.0s1 = 256000.0e0 nor = 256000' id '87f9485f-8b62-6740-93b3-e25f1710420b' date '22 March 2010' time '10:51:37.603 pm' author 'nice' ancestors ((name 'Kernel-nice.430' message 'Don''t use closeTo: when comparing compiledMethod.
Either two methods are equals or not (or we could fuzzify String equality to with sameAs: or other trick....).
The hack was previously necessary due to roundoff errors in printing and reading a Float.
This is not the case anymore: Float literals now storeOn: and readFrom: exactly..
' id '0b52ed47-5bac-5946-9625-04599fb094a3' date '22 March 2010' time '9:58:57.062 pm' author 'nice' ancestors ((name 'Kernel-laza.429' message 'reverting last change' id '5fceae69-95bb-4c8a-a95b-97006acf3086' date '22 March 2010' time '12:12:33.305 pm' author 'laza' ancestors ((name 'Kernel-laza.428' message 'Order instance variables alphabetically' id '5b1e683b-2d8c-4f21-b877-30e2426f1491' date '22 March 2010' time '11:47:56.242 am' author 'laza' ancestors ((name 'Kernel-ul.427' message '- don''t use SequenceableCollection >> #reverse' id '74f36aa8-f73c-7f43-b175-405c52de4af8' date '21 March 2010' time '5:52:49.226 pm' author 'ul' ancestors ((name 'Kernel-cmm.426' message 'Added remaining significant timezones for West / US.' id '1718cc0a-19ab-45ed-87b6-1f03715acd98' date '15 March 2010' time '6:56:53.665 pm' author 'cmm' ancestors ((name 'Kernel-nice.425' message 'Use Character>>digitValue..
Now that it is fast enough, there is no point in replicating the algorithm.' id '3c10b52e-83ec-404b-9db9-4fcdae5bb28f' date '15 March 2010' time '12:18:40.839 am' author 'nice' ancestors ((name 'Kernel-nice.424' message 'Cache well known digit values in NumberParser for speed.
Testing the base as of previous implementation was not a good idea, because some Unicode characters could have a digitValue < 10.' id '0ed744aa-5d6e-470a-9adc-a064c3d874df' date '14 March 2010' time '11:19:27.192 pm' author 'nice' ancestors ((name 'Kernel-laza.423' message 'Adds Host WindowEvent handling' id '4c7bfbb9-65d0-4419-a8be-432b2410216a' date '11 March 2010' time '9:33:09.112 am' author 'laza' ancestors ((id 'a8de6a84-8494-b34e-bfaa-eef854ed79e6')) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())(name 'Kernel-ul.441' message '- #compact protocol for MethodDictionary' id '060bac40-d722-4f46-b29e-49c1926243b6' date '13 April 2010' time '12:15:38.206 am' author 'ul' ancestors ((id 'e685ace9-6aa0-46a4-a4a2-02b16b385eec')) stepChildren ())) stepChildren ())) stepChildren ())(name 'Kernel-hmm.441' message 'Proposal: wrap the parsing action in CompiledMethod>>methodNode in a SyntaxErrorNotification error handling block to decompile methods which can''t be parsed correctly.
OMeta2 and probably other domain specific languages benefit from this.' id 'a3347ac6-2e2b-4deb-a8db-dd9c24d3e0f2' date '16 April 2010' time '10:19:20.499 pm' author 'hmm' ancestors ((id 'e685ace9-6aa0-46a4-a4a2-02b16b385eec')) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())(name 'Kernel-wiz.444' message 'This adds Number>>roundDownTo:

Currently it is missing. Essentialy it is an umimplemented call. Called by:
''Point roundDownTo: {*Morphic-Truncation and Roundoff}'' ''Rectangle compressTo: {*Morphic-Truncation and Roundoff}'' ''Rectangle expandTo: {*Morphic-Truncation and Roundoff}''

It doesn''t show up as unimplemented because the selector is used by Point. However, if it is not present the other three methods will raise a stink.

' id '3a8f4eb1-7d22-4398-a30b-0c674e73a0f7' date '2 May 2010' time '3:39:34.852 pm' author 'wiz' ancestors ((id '36dc17fd-f2de-d54d-b33f-435c2f08d6bb')) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())(id '0d47896c-fa27-4804-b345-ea3c8a17c1d1')) stepChildren ())) stepChildren ())) stepChildren ())(name 'Kernel-nice.453' message 'After recent vwnc post, don''t let LargeInteger ln overflow.
Same for Fraction with LargeInteger.
Also avoid loss of precision due to gradual underflow.' id '5961f8b3-0010-b643-b1d1-56bd1e657937' date '28 May 2010' time '9:37:49.978 pm' author 'nice' ancestors ((id '468fbdc7-4fcb-9845-8223-5333334177b8')) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())(name 'Kernel-cbr.475' message 'New comments for Month, Year, Week. This time without additional cruft from my image (whoops.)' id '6834d591-a86a-49c7-aedc-6fb30a6086e5' date '28 July 2010' time '6:18:23.911 pm' author 'cbr' ancestors ((id '292f2cc5-ba81-4d03-a64f-4e7cb878d68f')) stepChildren ())) stepChildren ())(name 'Kernel-spd.476' message 'Fixed issue 7553 - DateAndTime now uses the local offset when creating an instance via readFrom: or fromString: if none is specified.  This is consistent with the behavior of year:day:hour:minute:second:' id 'c4428bcf-4372-4365-b38f-091178c5068c' date '5 August 2010' time '9:46:40.546 am' author 'spd' ancestors ((name 'Kernel-spd.475' message 'Fixed issue 7553 - DateAndTime now uses the local offset when creating an instance via readFrom: or fromString: if none is specified.  This is consistent with the behavior of year:day:hour:minute:second:' id '2c89c8a6-b4ee-4ace-beef-53a87ee1c021' date '5 August 2010' time '9:32:20.313 am' author 'spd' ancestors ((id '292f2cc5-ba81-4d03-a64f-4e7cb878d68f')) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())(name 'Kernel-topa.508' message 'added missing withAllSuperAndSubclassesDo:' id 'bd68254c-b0c4-4cd5-9926-6a5caa6c82eb' date '25 October 2010' time '10:30:52.354 am' author 'topa' ancestors ((id 'f2a1ac34-c8a3-ae48-b38c-271043354faa')) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())(name 'Kernel-HenrikSperreJohansen.522' message 'adoptInstance: , an alternative interface to primitiveChangeClassTo:.

Uses primitive if available, if not the equivalent primitiveChangeClassTo: expression (only in Cog for now)' id '52384bb5-4b18-9e49-8292-cf8bb55e06aa' date '10 December 2010' time '11:35:02.564 am' author 'HenrikSperreJohansen' ancestors ((id '3b6f8cce-0310-2d4d-91aa-deab6d13bde9')) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())(name 'Kernel-nice.533' message '1) Let Behavior>>deepCopy return self, senders of deepCopy generally have no reason to copy a Behavior.
Moreover, the old code did a shallowCopy which is a non sense.

2) Make it explicit that veryDeepCopy does not copy any Behavior.
This was explicit for Metaclass, but implicit for Class (see Object>>#veryDeepInner: ), and undefined for Traits (they are not used, but who knows...).' id '477d8325-a6e0-469f-a805-27e058d930fd' date '29 December 2010' time '12:23:26.17 pm' author 'nice' ancestors ((id '30e481ee-c2ee-4d10-8484-ec8da55ae54a')) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())(name 'Kernel-cmm.541' message '#asStringOrText should return the receiver #asString, not printString.  This is the correct behavior to be able to render first-class objects in PluggableListMorphs without quotes around them.' id '3d47b3f2-cb83-4759-a9b6-93f6dbda47f7' date '30 January 2011' time '3:12:21.568 pm' author 'cmm' ancestors ((id 'a66e5204-4090-2149-8c6a-d65fa1cc4dd3')) stepChildren ())) stepChildren ())) stepChildren ())(name 'Kernel-hsj.547' message 'Fixes inconsistency in return value of adoptInstance: on different VM''s.' id '46e9ff86-8023-4720-a146-7eb8a2d2fb30' date '16 February 2011' time '1:45:07.199 pm' author 'hsj' ancestors ((id '89f8153f-e938-c742-9f8b-002d8e55612c')) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())(name 'Kernel-ul.553' message '- refactored preamble and timestamp fetching/parsing' id 'a6323824-6a25-514f-a383-fb44cafabb42' date '16 March 2011' time '11:54:02.277 pm' author 'ul' ancestors ((id '9200081a-9eb0-7042-b9b5-3a792061f53d')) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())(name 'Kernel-ul.599' message '- Don''t send #forgetDoIts, because it''s not needed anymore.
- Use #repeat instead of [ true ] whileTrue and friends.' id '153c6a95-543b-c044-915a-94fd0e7eef12' date '17 June 2011' time '4:33:17.842 pm' author 'ul' ancestors ((name 'Kernel-nice.598' message 'Speed up #primesUpTo:do: incrementing by 2 since it is well known that even numbers are not prime (except 2).

Use sqrtFloor in #largePrimesUpTo:do:
Also remove a useless #even test which is always performed on odd index' id 'a06f700c-45d2-4b73-802a-93efd44d22b1' date '17 June 2011' time '2:39:01.884 am' author 'nice' ancestors ((name 'Kernel-ul.597' message 'A more efficient implementation of Integer class >> #primesUpTo:do: using the Sieve of Eratosthenes.' id '579dc488-9b22-5f4c-8a32-d60e5a1f2032' date '17 June 2011' time '12:38:04.174 am' author 'ul' ancestors ((name 'Kernel-ul.596' message 'Merged.' id '4ec84fe6-a346-6544-aba2-60ae51a2937b' date '13 June 2011' time '12:02:09.223 pm' author 'ul' ancestors ((name 'Kernel-ul.595' message '- added CompiledMethod class >> #receiver:withArguments:executeMethod: which uses primitive 188 with three arguments (not all VMs support this yet, pre r2393 Cog VMs may crash when used with certain methods). If the primitive fails the fallback mechanism tries to use primitive 188 with two arguments (supported by all VMs).  CompiledMethod >> #valueWithReceiver:arguments: should use this method in the future, because it doesn''t send any messages to the receiver. The change was postponed, because older Cog versions would crash with this change.
- updated ContextPart >> #doPrimitive:method:receiver:args: to support both two and three arguments variants of primitive 188 and added support for primitive 189, so it won''t "escape from the debugger" anymore.' id '992b01d8-bccb-604d-8348-6ece685506db' date '13 June 2011' time '11:52:02.6390000000000002 am' author 'ul' ancestors ((name 'Kernel-ul.594' message 'Fixed a typo.' id '385c8487-9a12-1d42-a932-625ab60ddc72' date '10 June 2011' time '10:31:35.642 pm' author 'ul' ancestors ((name 'Kernel-wiz.592' message 'asNonFraction with updated comments.

ceiling speed up for positive numbers by mirroring floor code rathar than calling floor.' id 'ce3c0c86-e4f2-4bf5-8c2a-efbc708af821' date '29 May 2011' time '6:40:45.398 pm' author 'wiz' ancestors ((name 'Kernel-wiz.591' message 'This is asNonFraction defined only for Number and Fraction but not Object. Fractions are converted to Floats other numbers are left alone. Non numbers including nil  will raise a DNU.' id '53586ad8-595c-477a-ac55-19471c286e26' date '29 May 2011' time '4:11:53.048 pm' author 'wiz' ancestors ((name 'Kernel-eem.590' message 'Fix whichSelectorsReferTo:special:byte:thorough: for
Float bindingOf: #NaN, so that one can browse references
to the NaN class var.
Use literaslsDo: instead of literals do: in spaceUsed.' id 'bbcacb44-5bd6-40fe-965a-697b4b126ffd' date '23 May 2011' time '6:10:15.256 pm' author 'eem' ancestors ((name 'Kernel-nice.589' message 'Optimize the way to count number of printed digits for Integer
- by using iteration rather than recursion,
- by providing a slightly better guess in the decimal case.
Accelerate #raisedTo:modulo: because this operation is critical in cryptography.
Avoid using recursive #raisedToInteger:modulo: for same speed reasons, and deprecate it.
Sorry to sacrifice simplicity, hope you''ll understand..

Implementation notes:
#raisedTo:modulo: now uses the new montgomeryTimes primitive if present.
Otherwise, it fallbacks to classical multiplication, remainder sequences.
The Montgomery algorithm avoids division implied by the modulo operation and thus save a few CPU cycles (see http://en.wikipedia.org/wiki/Montgomery_reduction for an introduction).
Both Montgomery and fallback version use a sliding window algorithm.
It consists in exponentiating by bit packets rather than bit by bit and then save some multiplications.
It is a classical CPU vs memory tradeoff. Hope the comments help if you''re interested.
Note that raisedTo: could also use a slidingWindow if we want to. Do we?
In such case, we would have 3 most identical methods and should think of a better refactoring.' id '094e80f6-660c-4e82-803e-7f4a2d5d5a5a' date '19 May 2011' time '2:41:37.27 am' author 'nice' ancestors ((name 'Kernel-dtl.588' message 'Fix from Jerome Peace for [M7632] String Holder class>>openLabel: returns the Class rather than the instance.' id '08000000-1508-ba00-1508-ba0014000000' date '15 May 2011' time '8:56:25.962 pm' author 'dtl' ancestors ((name 'Kernel-dtl.587' message 'Remove broken autoAccessors hook from Object>>doesNotUnderstand:

Problem was reported with (partial) resolution agreed a year ago, but fix did not get applied. 

Background:

<http://lists.squeakfoundation.org/pipermail/squeak-dev/2010-April/148889.html>
Preferences autoAccessor when turned on seems to break badly the Object #doesNotUnderstand logic.

try this is the latest image:

	Preferences enable: #autoAccessors.
	5 annoyWith: 7

(beware it will hang the image for good)

<http://lists.squeakfoundation.org/pipermail/squeak-dev/2010-April/149022.html>
I think it''s safe to remove this part from Object >>
> #doesNotUnderstand:
>
> (Preferences autoAccessors
>  	 and: [self tryToDefineVariableAccess: aMessage]) ifTrue:
>  		[^aMessage sentTo: self].
>
>
> Levente

I agree, for the meantime there will be no automatic generation of accessors.

I you search for ''auto'' in the Preferences Browser you do not find an
entry for enabling the generation of them.

Hannes' id '08000000-1508-061c-1508-061c14000000' date '15 May 2011' time '11:47:32.816 am' author 'dtl' ancestors ((name 'Kernel-dtl.586' message 'Igor''s fix for CompiledMethodTrailer>>encodeVarLengthSourcePointer, see CompiledMethodTrailerTest>>testEncodingZeroSourcePointer for test and <http://lists.squeakfoundation.org/pipermail/squeak-dev/2011-May/159822.html> for discussion.' id '08000000-1508-8a15-1508-8a1514000000' date '10 May 2011' time '8:47:40.644 pm' author 'dtl' ancestors ((name 'Kernel-fbs.585' message 'Minor spelling nits fixed.' id 'd9402d4c-6a38-174f-9b94-739082e073c4' date '8 May 2011' time '7:02:15.266 pm' author 'fbs' ancestors ((name 'Kernel-nice.584' message 'Correct #whichSelectorsStoreInto: again, obviously testing is required ;)

Give Metaclass a chance to detect which method/selector writes into a class var.
Otherwise, the extension is not really usefull, most of these write are in class side.' id '099b94aa-ca97-4f91-b60c-0509e9211391' date '7 May 2011' time '2:37:16.885 pm' author 'nice' ancestors ((name 'Kernel-ul.583' message '- use #instVarIndexFor:ifAbsent: for getting the index of an instance variable
- fix: send #whichSelectorsStoreInto: to super instead of #whichMethodsStoreInto: from Class >> #whichSelectorsStoreInto:
- deprecated Behavior >> #whichSelectorsAssign:' id '51d4d8d1-1710-6d49-8633-eb60d4680c6a' date '7 May 2011' time '2:50:42.698 am' author 'ul' ancestors ((name 'Kernel-nice.582' message '1) Restore #whichSelectorsAssign: and #whichSelectorsStoreInto: because used by many tools (RB/OB/EC...)
2) While at it, extend their power to class variable names.
3) let''em always answer an Array, not an IdentitySet or an Array
4) correct #whichMethodsStoreInto: comment, they don''t answer a selector
5) simplify #whichMethodsStoreInto: 

Maybe we shall deprecate the old selectors later, but for now, maintain 2 versions...' id '1a8988c2-e42f-4e41-992e-9bcc200d85de' date '6 May 2011' time '11:02:30.631 pm' author 'nice' ancestors ((name 'Kernel-cmm.581' message 'Factor out domain work from UI work; so that applications may save an object on file.' id 'ef06ace4-3546-4a3e-aae0-91c22cc7dd8a' date '4 May 2011' time '1:59:30.972 pm' author 'cmm' ancestors ((name 'Kernel-cmm.580' message 'Restored Behavior>>whichMethodsStoreInto:.' id '88d42e3f-ca37-4d1b-87d6-76ed21f69864' date '3 May 2011' time '9:38:48.056 am' author 'cmm' ancestors ((name 'Kernel-cmm.579' message '- Removed unused methods.
- Fixed sender.' id 'bc0c0f5a-e690-458d-a2c1-5ca67389166c' date '2 May 2011' time '7:53:17.364 pm' author 'cmm' ancestors ((name 'Kernel-cmm.578' message '- Support for streamlined variable reference / assignment browsing.
- Fix for Month class>>#readFrom:.' id '913d762f-e361-4f5e-814f-0b0692ffa4d9' date '2 May 2011' time '6:46:17.696 pm' author 'cmm' ancestors ((name 'Kernel-ul.577' message 'Merged.' id 'f674fdde-21e4-f14c-a297-a29dfe42219c' date '30 April 2011' time '4:06:16.848 am' author 'ul' ancestors ((name 'Kernel-ul.576' message '- documented the issues with Behavior >> #commentsIn:
- remove SortedCollection (mis)usage from #allSubclassesWithLevelDo:startingLevel:' id '46b435fa-0bc5-954d-8b1b-37a9e581c85a' date '30 April 2011' time '3:48:56.834 am' author 'ul' ancestors ((name 'Kernel-ul.574' message 'Fixed an evil typo.' id 'c0c9cff9-5977-a14c-a3c0-7b53ba4c2771' date '27 April 2011' time '1:09:14.442 am' author 'ul' ancestors ((name 'Kernel-nice.573' message 'Arrange arCosh to answer a positive real part.
Arrange arcCos + arcSin to answer halfPi.
Implement sinh cosh without intermediate Complex creation.' id '6467b07b-fb80-8c41-8f33-91c673a57e88' date '24 April 2011' time '10:48:34.956 pm' author 'nice' ancestors ((name 'Kernel-nice.572' message 'Correct Complex arcSin and arcCos
Let (1 arTanh) return inf' id '83be5282-f6ca-43d4-a8c9-6618feeb883e' date '23 April 2011' time '4:11:47.274 am' author 'nice' ancestors ((name 'Kernel-nice.571' message 'Connect the new DomainError
Correct (-1 copySignTo: 0.0) to return a negativeZero.
Add hyperbolic and inverse hyperbolic functions
Add plenty of Complex missing methods and few mathematical functions:
	i (multiply by 1 i)
	raisedTo:
	conjugated
	sqrt
	squaredNorm
	arcSin arcCos arcTan arcTan:
	sinh cosh tanh arSinh arCosh arTanh
Speed up a few complex functions by using #real:imaginary: directly rather than intermediate arithmetic operations.' id '2bd91b82-067a-49c9-a7a7-61771de27b3b' date '23 April 2011' time '2:39:41.455 am' author 'nice' ancestors ((name 'Kernel-nice.570' message 'Remove #cachedStackTop
Rationale: we can''t always add, we must also remove
More: it''s unsent, old, implementation is weird, a request on squeak-dev about this method raised no interest, comment is outdated, no longer true and intimidating, which is probably the main reason for such long survival.
Last chance to struggle against unawareness of a casual commiter just passed.' id '3b5fd891-4f36-4a7a-8187-ec1ff8f1887d' date '20 April 2011' time '2:01:43.829 am' author 'nice' ancestors ((name 'Kernel-dtl.569' message 'If the VM supports primitiveMillisecondClockMask, use this at image startup time to obtain the millisecond clock mask value, otherwise use a default of 16r1FFFFFFF. Maintain the mask value in a class variable for speed, and use this for duration calculations associated with the millisecond clock.

Background - the millisecond clock in the VM rolls over when its value exceeds the mask value. The image may calculate durations (e.g. socket timeout values) using the millisecond clock, in which case the mask value is used to detect clock rollover. By making the mask value available through a primitive, the image can be assured that its mask value is the same as that being used in the VM. If the primitive is not available, the image should assume use of the traditional mask value 16r1FFFFFFF.' id 'c1d30608-4cc8-4db7-204a-2bf7a46c1508' date '14 April 2011' time '9:48:42.876 pm' author 'dtl' ancestors ((id '340ecdd9-40de-42e4-8388-09abc07cdedf')) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())(name 'Kernel-ul.575' message '- removed support for BlockContexts from ContextPart >> #copyTo:
- added a new method #copyTo:bottomContextDo: which provides access to the bottom context during copying' id '33ed898b-6592-984b-b1e6-d9f2a778f216' date '28 April 2011' time '12:03:58.259 am' author 'ul' ancestors ((id 'c0c9cff9-5977-a14c-a3c0-7b53ba4c2771')) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())(name 'Kernel-cbc.593' message 'Added examples to the comments in Number #roundDownTo:, #roundUpTo:, and #truncateTo: to clarify how to use the methods.' id '6ea87b7a-6755-1446-b2fd-54350609142c' date '7 June 2011' time '10:25:11.435 pm' author 'cbc' ancestors ((id 'ce3c0c86-e4f2-4bf5-8c2a-efbc708af821')) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())(name 'Kernel-yo.543' message 'Implements "Button for it" feature.' id '3b429e66-fae8-4923-8ea9-6dc0c41c1e16' date '30 June 2011' time '2:45:30.432 pm' author 'yo' ancestors ((id 'ea1d8beb-aa2d-4cf3-8389-2072df48f6e3')) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())(name 'Kernel-ul.611' message 'Removed unnecessary blocks.' id 'f6f9f434-559e-4442-a77a-58e4c0e29442' date '3 August 2011' time '1:45:38.639 am' author 'ul' ancestors ((name 'Kernel-nice.610' message 'Pulizie.
You shall not decently ask any object if it hasLiteralThorough:' id 'b6b7d674-a3ce-4967-876a-b041c32d03a8' date '20 July 2011' time '12:54:38.514 pm' author 'nice' ancestors ((name 'Kernel-nice.609' message 'Use literalEqual: in hasLiteral: and hasLiteralThorough:
Remove hasLiteralThorough:from: because it is suspect:
- it is not sent
- it checks whether aLiteral == aBlock which cannot happen in Squeak implementation
- it send hasLiteralThorough: to literals which was weired and is now deprecated' id '50b9cca2-c2a0-47c3-a367-2eae2ed530de' date '20 July 2011' time '9:29:30.183 am' author 'nice' ancestors ((name 'Kernel-eem.608' message 'Fix CompiledMethod>>hasLiteral: to not look for ==, but
literal equal (class == & value =)' id '0c48ee9d-2fdf-4ad9-9f55-5187010b71f7' date '19 July 2011' time '9:46:25.127 am' author 'eem' ancestors ((name 'Kernel-ul.607' message '- Behavior >> #allLocalCallsOn: was moved to the System package.
- use LowBitPerByteTable from #lowBit implementations
- enhanced Integer >> #lowBit' id '364aaf4f-24eb-4648-9612-2ba439cc26cd' date '18 July 2011' time '5:30:16.971 pm' author 'ul' ancestors ((name 'Kernel-ul.606' message 'Copy the lowBit per byte table from SmallInteger >> #lowBit to a class variable in Integer, so it can also be used from other methods without duplication.' id '765d93ce-2226-a942-abee-bd2f45d192f6' date '18 July 2011' time '5:26:44.832 pm' author 'ul' ancestors ((id '59831937-c6b3-4a5a-9f2a-a14f898e6fd7')) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())(name 'Kernel-ul.613' message 'Extracted and enhanced the ProcessSpecific from Pharo.' id 'cd3bc5e7-fabf-b74a-9f8c-18eee845bc9b' date '16 August 2011' time '11:33:03.743999999 am' author 'ul' ancestors ((id '4d1d5cde-63c0-4b82-ba0c-912fc1b880bd')) stepChildren ())(name 'Kernel-ul.619' message 'Proposed solution to the Monitor bug (see MonitorTest >> #testMonitorNotGainingUnwantedSignalsDuringUnwinding). The cause of the bug is that the process exits the monitor while it''s waiting and it''s expected to enter again (see #exitAndWaitInQueue:maxMilliseconds:), but that doesn''t happen if the process is terminated. If we ensure that it enters again, then the ensured exit in #critical: won''t cause any trouble.
Also ensure that the delay is unscheduled. The goal of this change is to avoid accumulating MonitorDelays and Semaphores when a waiting process is terminated. This is unrelated to the bug described above.' id '7e939691-d828-ac44-9354-44665be1b9e5' date '10 September 2011' time '7:39:00.317 pm' author 'ul' ancestors ((id '5c9061ca-b336-460a-bd15-2dfb6ecd2d0c')) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())(name 'Kernel-ul.630' message 'Fix for the recently introduced MethodDictionary bug reported by Mariano Martinez Peck on the Pharo list and some other things.
- added MethodDictionary class >> #newForCapacity: to reduce the complexity of the various methods which create new instances with a given capacity (#grow, #rehash, #removeAll). These changes make some comments unnecessary.
- fix: #sizeFor: should allow 75% load factor' id '87434805-2f3c-c446-b12b-3af3c0043cea' date '27 September 2011' time '6:09:18.907 pm' author 'ul' ancestors ((id 'efcd1a80-4b32-4ccf-bdb7-8548ec1f040b')) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())(name 'Kernel-ul.656' message 'Eliot''s fix of ContextPart >> #runUntilErrorOrReturnFrom: from http://lists.squeakfoundation.org/pipermail/squeak-dev/2011-December/162373.html .' id '20587caf-780b-384d-ad01-6bd9cf635708' date '6 December 2011' time '3:18:17.526 am' author 'ul' ancestors ((id 'a7fda999-52a1-42f1-92da-9cdae7a9614a')) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ((name 'Kernel-laza.660' message 'empty log message' id 'c6619ce1-96af-4213-bbd8-584f215b98b2' date '14 December 2011' time '4:15:18.716 pm' author 'laza' ancestors ((name 'Kernel-laza.659' message 'empty log message' id 'f62293c0-8c6e-48c1-a004-c592ad2981ec' date '14 December 2011' time '3:21:32.792 pm' author 'laza' ancestors ((id '8f8f6e77-b113-446b-b593-aa5aa0f8db4e')) stepChildren ())) stepChildren ())))) stepChildren ())) stepChildren ())(name 'Kernel-nice.656' message 'Remove one unused message: now that Integer is polymorphic to Fraction he never has to #adaptToFraction:andSend:' id '506e1645-c5f3-8f4b-8307-0c22476c079e' date '19 November 2011' time '10:45:57.156 pm' author 'nice' ancestors ((id 'd13de9a3-b2e6-403e-ac68-66d94cb15a79')) stepChildren ())) stepChildren ())(name 'Kernel-nice.644' message 'Add Integer>>bitCount to count the bits set (to 1) in an Integer.' id '612f5a8e-66ec-4531-86ab-ebc494038a94' date '19 October 2011' time '10:26:06.268 pm' author 'nice' ancestors ((id '26bbac76-79b8-4600-ac86-f60a02ad6da3')) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())(name 'Kernel-nice.671' message 'Remove Random>>theItsCompletelyBrokenTest
Replace it with a RandomTest.' id '8b75db5b-1aab-4de9-87e1-75c3fb99e976' date '3 March 2012' time '3:20:12.779 pm' author 'nice' ancestors ((name 'Kernel-eem.670' message 'Add accessors for a CompiledsMethod header''s sign bit.
The sign bit is useful for experiments but may also be used
to select an alternate bytecode set in the VM, e.g. for
supporting multiple languages or evolving the bytecode set.' id '18d57d21-e007-4be6-b076-13d011b90565' date '19 February 2012' time '11:03:50.709 am' author 'eem' ancestors ((name 'Kernel-eem.669' message 'Fix CompiledMethod>>#= for class-side methods where
the methodClassAssociation is not unique.' id 'a0cd06b2-129d-4601-b1f2-a2ef622e8ff0' date '13 February 2012' time '4:16:39.081 pm' author 'eem' ancestors ((id '6d7c03fa-7e34-49ee-af59-08c26564f9ef')) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())(name 'Kernel-nice.652' message 'PURPOSE:

Any Float now prints with the minimal number of digits that describes it unambiguously.
This way, every two different Float will have a different printed representation.
More over, every Float can be reconstructed from its printed representation with #readFrom:.

	self assert: ([:f | f isNaN or: [(Float readFrom: f printString) = f]] value: Float someInstance).

Note that Float nan, Float infinity and Float infinity negated still print as ''NaN'' ''Infinity'' and ''-Infinity'' which are compatible with #readFrom:.

RATIONALE:

the old behaviour was obscuring our data like for example:
       0.1 successor printString = 0.1 printString.
       1.0e-100 printString = ''9.99999999999999e-101''.

The old behaviour was returning many digits without any guaranty of exactness which is useless.

The old behaviour was faster (x4) but this is less relevant than exactness.
Similar or better speed should be obtained by controlling number of printed digits if we can afford inexactness.

IMPLEMENTATION:

The essential change was to use #absPrintExactlyOn:base: in #printOn:base:
Side note: this is really a bad name, because it prints the shortest base-representation, not the exact one.
Anyway, we can only print the exact one in even bases.
For example, the exact representation of 0.1 in base 10 is:
	0.1 asFraction asScaledDecimal = 0.1000000000000000055511151231257827021181583404541015625s55.

The second change was to marginally fast-up #absPrintExactlyOn:base: main loop by avoiding a #not send and piping decimal point test.
Avoiding the #not makes the intention a tiny bit clearer.
Also of few formatting has been performed in the last lines.

REJECTED CHANGES:

It is possible to move self > 0.0 before self isNaN to statistically reduce the number of tests performed.
This works because Float nan > 0.0 = false.
But this speed-up is quite marginal.

Similarly (self = Infinity) could replace (self isInfinite) and save another send and also another test (because NegativeInfinity can''t happen at this stage).
This would be at the price of a class var reference leak.

It could be more interesting to move this #isInfinite test in #printOn:base: in order to gather print rules for exceptional values.
I didn''t to avoid duplicating the test in the two branches > 0.0 and < 0.0.

A far more efficient speed-up would be to optimize LargeInteger arithmetic.
I think there is room, the VM is still using byte operations (thus at most 16 bits).' id '6588c880-ca5d-4c3d-a39b-b75588ce0263' date '5 November 2011' time '12:54:57.688 am' author 'nice' ancestors ((id '9ee9cceb-4b76-3d41-8a57-bd0b6eb79dc0')) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())(name 'Kernel-nice.690' message '1) Correct the very new #printOn:maxDecimalPlaces: which often rounds inexactly for large Float or large number of digits.
Rationale: the printed representation shall be rounded exactly

2) Don''t print arbitrary digits beyond Float precision, just print zeros
(0.1 printShowingDecimalPlaces: 20) now prints ''0.10000000000000000000'' instead of ''0.10000000000000000555'',
Rationale: those digits, while reflecting internal representation exactly, are totally insignificant and could be replaced with any other digits, while still representing the same Float. 

3) Print the negative sign, even if the number vanishes to zero at prescribed decimal places
(-0.001 printShowingDecimalPlaces: 2) now prints ''-0.00'' instead of ''0.00'',
Rationale: this behaves like classical lib printf, and is in the spirit of Float negativeZero printString: when the precision vanishes, the Float keeps its sign.

Note: I find the scheme feature which prints # for insignificant digits is very nice, but we should find a re-interpretable format...

Implementation details:

Of course, algorithms are taken from:
Robert G. Burger and R. Kent Dybvig
	Printing Floating Point Numbers Quickly and Accurately
	ACM SIGPLAN 1996 Conference on Programming Language Design and Implementation
	June 1996.

Note that there is lot of duplicated code between free format and fixed format Float printing.
And we should also fix the case of fixed number of digits #absPrintOn:base:digitCount: ...' id '2c2aba8b-d8bd-4ec3-8b88-a873de9c68c4' date '20 May 2012' time '10:05:07.444 am' author 'nice' ancestors ((id '06728744-bdfb-4e41-aa4c-39da40f860a4')) stepChildren ())) stepChildren ())) stepChildren ())(name 'Kernel-nice.692' message 'Let Fraction readFrom: ''1/2'' and Fraction readFrom: ''0.1'' answer the expected fractions.
The sign, if any, must be attached to numerator.' id '11e38193-788b-4aa2-8480-a04d6afb2ec5' date '22 May 2012' time '10:58:15.58 pm' author 'nice' ancestors ((id 'f69b524f-83bb-4ef0-b084-e7a96dd5d33e')) stepChildren ())) stepChildren ())) stepChildren ())(name 'Kernel-nice.694' message 'Protect floorLog: 2 for case of exceptional float values (because exponent does not)
Change exponent primitive fallback code to avoid a recursion with floorLog2:
Note that I created a separate selector #exponentFromBitPattern for handling fallback, because it''s easier to test.' id 'faa4f8ea-259e-47d4-adc7-eeb195787cad' date '3 June 2012' time '5:31:52.95 pm' author 'nice' ancestors ((id 'e88d4aab-9e87-4e64-82cd-0475d919faa5')) stepChildren ())) stepChildren ())(name 'Kernel-nice.695' message 'Provides a new version of significandAsInteger that relies on regular Float arithmetic and regular asInteger conversion.
In case of exceptional values, use the old behaviour, that is directly extract the bit pattern, but without implied one at position 53.
Marginally faster than old version - sorry, not significantly.' id '6e5aa981-c989-4ac5-9f18-542a7360f3a9' date '7 June 2012' time '1:20:38.119 am' author 'nice' ancestors ((id 'faa4f8ea-259e-47d4-adc7-eeb195787cad')) stepChildren ())) stepChildren ())) stepChildren ())