Planet Squeak Code

blogs about Squeak, Pharo, Croquet and family
planet squeak - planet squeak es - planet squeak jp - planet croquet - planet squeak code - planet smalltalk

December 08, 2016


Fix menu activation on selected method or class which has no MC working copy defined.

by Chris Muller ( at December 08, 2016 04:36 AM


Implement mustBeBoolean processing, mapping machine code frame to interpreted frame.

by Eliot Miranda ( at December 08, 2016 02:36 AM

December 07, 2016


Fix a translation-time snafu with the V3 Cogit.

by Eliot Miranda ( at December 07, 2016 11:23 PM


Fix occasional start-up crashes on linux x64. The choice of 16rBADA550 for a constant in closed PIC prototype generation (used to compute offsets in PICs) occasionally coincides with the address for code chosen by address space randomization, and so confuses the Cogit into generating pc-relative addressing to create this address, hence causing mayhem later on when the wrong sizes for instructions are used to decode closed PIC contents. Hence also beef up the asserts regarding distinguishing constants planted in code on X64 for MoveCwR PushCw and ArithCwR.

Implement the Cogit side of mustBeBoolean processing in the RegisterAllocatingCogit.

Add a variable to help debug the crashes in callbacks experienced in the Pharo VM. The variable is a set of bit flags tracing the path through returnAs:ThroughCallback:Context:.

Fix a compilation warning with the definition of sigsetjump & siglongjmp in the interpreter.

by Eliot Miranda ( at December 07, 2016 11:04 PM


Smalltalk garbageCollect can sometimes take many minutes, and there's no need to do it when opening a ProcessBrowser.

by Chris Muller ( at December 07, 2016 09:31 PM


- Some naive patches and reverts to regain use of the Object Catalog and Paint tool.

by Chris Muller ( at December 07, 2016 07:06 PM


Fix DNU when searching for "Paint" in the Object Catalog.

by Chris Muller ( at December 07, 2016 06:56 PM



No longer flush on conditional branch; instead leave it up to the merge logic to harmonise the stacks on join.

Consequently, fix the order of generating fixups and pushing the dummyValue when no deadCode in genSpecialSelectorEqalsEquals:. This didn't matter with the StackToRegisterMappingCogit but in the RegisterAllocatingCogit now that teh stack is not flushed on conditional branch, it is critical; the fixup must be established before the dummyValue is pushed.

Also consequently make mergeCurrentSimStackWith:/reconcileForwardsWith: more intelligent, able to merge when the target has spills and the current does not.

At least mark that mustBeBoolean: will switch to an interpreted frame (yet to be implementd).

Fix a slip in genSubConstant:R: which always used TempReg and didn't use its argument.

Fix a slip in temp name printing for sim stack printing.

Use = to compare objectmemory falseObject and objectMemory trueObject swith SSConstant entry constants. These are integeger oops, not objects, and so integral comparison shoudl be used.

by Eliot Miranda ( at December 07, 2016 02:09 AM

December 06, 2016


Smalltalk garbageCollect can sometimes take many minutes, and there's no need to do it when opening a ProcessBrowser.

by Chris Muller ( at December 06, 2016 09:50 PM


Add temp names to simStack printing during in-image compilation.

by Eliot Miranda ( at December 06, 2016 09:45 PM


Provide CompiledMethod>>tempNames again. Requires Tools-eem.735

by Eliot Miranda ( at December 06, 2016 07:30 PM


Provide a path for methods to compute their temp names.

by Eliot Miranda ( at December 06, 2016 07:29 PM


3+4=7 :-)

genSpecialSelectorComparison must create merge fixups at the targets (fall-through after the following branch and jump destination) for register assignments to be carried forwards. Doing so eliminates the merge conflicts seen in SequenceableCollection>>#findBinaryIndex:do:ifNone: and so means that, for now, the code in resolveRegisterOrderConflictsBetweenCurrentSimStackAnd: is not used.

Make sure that ensureNonMergeFixupAt: reciords bytecodePC for debugging.

Hack implement swapCurrentRegistersInMask:accordingToRegisterOrderIn: for the trivial two-registers-in-conflict case.

by Eliot Miranda ( at December 06, 2016 07:08 PM


- simplified Semaphore >> critical:ifLocked:
- Float >> #arcTan: always return a Float + some micro-optimizations
- micro-optimizations in Float >> #sign

by Levente Uzonyi ( at December 06, 2016 06:03 PM


- micro-optimized OrderedCollection's #first, #last, #removeFirst and #removeLlast

by Levente Uzonyi ( at December 06, 2016 06:02 PM


Adopt improved and vastly expanded Linked List tests from our relatives.

by Tobias Pape ( at December 06, 2016 01:32 PM


Adopt improved (ie, actually working) Linked List from our relatives.

by Tobias Pape ( at December 06, 2016 01:31 PM

December 05, 2016


Fix a few comments

by Tobias Pape ( at December 05, 2016 07:58 PM



Clean up reconcilePoppingWith:

Fix bug with merging results into temp vars with live regs. If merging a non-temp with a temp that has a live register we can assign to the register, but must unassign the register from the temp, otherwise the temp will acquire the merged value without an assignment.

Fix bug with allocateRegForStackEntryAt:; use the register of the entry if it has one.

Nuke captureUnspilledSpillsForSpecialSelectorSend:. With the recent changes to merge logic this is no longer necessary.

Fix bugs with genSpecialSelectorArithmetic. Assign a new register for the result unless rcvr is otherwise unused register or constant; do /not/ overwrite rcvrReg (which could be a temp). If rcvr or arg are live ensure they're restored correctly after tag removal or overflow during arithmetic.

Improve printing of cogMethods with nil selectors.

Execution now gets much further; up to the compilation of findBinaryIndex:do:ifNone: in the context of restoring the display. This method requires swapCurrentRegistersInMask:accordingToRegisterOrderIn: to be implemented.

Clément, please review especially genSpecialSelectorArithmetic carefully. Thanks!

by Eliot Miranda ( at December 05, 2016 07:38 PM


rename temp var to avoid conflict with global while generating sources.

by Esteban Lorenzano ( at December 05, 2016 08:59 AM

December 04, 2016


DateAndTime asSeconds should refer to seconds since the Smalltalk epoch.

by David T. Lewis ( at December 04, 2016 05:40 PM


Tests that send DateAndTime class>>localTimeZone: will set the automaticTimeZone preference as an unintended side effect. Save and restore the preference when running these tests.

by David T. Lewis ( at December 04, 2016 05:27 PM


Three new tests to verify that #asSeconds is symmetric with #fromSeconds: with various offset values. The tests pass.

by David T. Lewis ( at December 04, 2016 04:48 PM


The correct number of elapsed seconds from the Smalltalk epoch to 2004-02-29T13:33:00+02:00 is 3255507180. Change DateAndTime>>testAsSeconds to assert this value.

by David T. Lewis ( at December 04, 2016 03:38 PM

December 03, 2016


Fix DateAndTime class>>epoch and remove the #FIXME flag.

The Smalltalk epoch is assumed to be 1 January 1901, Greenwich Mean Time. The number of elapsed seconds from the Smalltalk epoch to the Posix epoch is assumed to be a constant

References: Eliot Miranda confirms that Smalltalk epoch was intended to be defined UTC, not relative to local time zone. Ian Piumarta documented the assumed offset in platforms/unix/vm/sqUnixMain.c:

/* Squeak epoch is Jan 1, 1901. Unix epoch is Jan 1, 1970: 17 leap years and 52 non-leap years later than Squeak. */ return unixTime + ((52*365UL + 17*366UL) * 24*60*60UL);

by Dave Lewis ( at December 03, 2016 10:31 PM



Fix a slip in reconcileForwardsWith:; if a constant is merged with something other than the same constant then the resulting stack entry cannot be constant. This fixes the bug compiling the or: in UnixFileDirectory>>#setPathName:.

Refactor mergeWithFixupIfRequired: & mergeCurrentSimStackWith: to pass fixup so that mergeCurrentSimStackWith: can update isReceiverResultRegSelf correctly. This fixes the bug accessing array for the second send of #size in WeakSet>>scanFor:.

by Eliot Miranda ( at December 03, 2016 06:49 PM


The various scanFor: and scanForEmptySlotFor: implementations only need to access the size of their array once.

by Eliot Miranda ( at December 03, 2016 05:34 PM


The various scanFor: and scanForEmptySlotFor: implementations only need to access the size of their array once.

by Eliot Miranda ( at December 03, 2016 05:32 PM


The various scanFor: and scanForEmptySlotFor: implementations only need to access the size of their array once.

Fix protocol for an #=

by Eliot Miranda ( at December 03, 2016 05:31 PM


Abstract away voiding the optStatus into voidReceiverOptStatus so that RegisterAllocatingCogit can override to clear the liveRegister on simSelf.

Add voidReceiverResultRegContainsSelf that scans the stack for occurrences of simSelf in a register on stack and to either flush (StackToRegisterMappingCogit) or void liveRegister (RegisterAllocatingCogit). Except that I suspect RegisterAllocatingCogit may have to flush in certain curcumstances too.

Add asserts to check that optStatus and simSelf are in sync w.r.t. ReceiverResultReg.

Fix a bad slip in existsInstVarRefBeforeSendOrReturn.

Nuke an obsolete NewspeakV3 bytecode.

Very close to working properly. System no longer crashes in JIT or assert failure but runs, albeit looping on an MNU.

by Eliot Miranda ( at December 03, 2016 01:02 AM

December 02, 2016


Rename moveSimStackConstantsToRegisters to moveVolatileSimStackEntriesToRegisters sicne we also have to capture inst var refs (anything not relative to FPReg).

Fix slip in reconcileForwardsWith:.

ensureNonMergeFixupAt: shoudl only set the mergeSimStack of the fixup if it doesn't yet have one.

When merging we have tio make sure that simSelf's liveRegister is up-to-date, not just optStatus. Oh how nice it would be to only have simSelf and be able to nuke optStatus. [the issue is having two defs for a simStackEntry in StackToRegisterMappingCogit, one with liveRegister, needed for simSelf, one not, for normal entries].

Get fixups to remember the bytecode pc that set them, and print the bcpc(s). Add printing simSelf to traceSimStack.

Execution now gets to Process>>popTo: during SmalltalkImage>installLowSpaceWatcher, 187 methods compiled and executed.

by Eliot Miranda ( at December 02, 2016 08:53 PM


Give sensible names to the three reconciliation methods in CogRegisterAllocatingSimStackEntry. Be sure to use registerOrNone, not just liveRegister.
Refactor mergeCurrentSimStackWith: for clarity.
Have restoreSimStackAtMergePoint: maintain optStatus.

Execution gets as far as a stack imbalance in a send from Dictionary>noCheckNoGrowFillFrom: during EventSensor startUp:.

by Eliot Miranda ( at December 02, 2016 05:00 PM


Handle DataStream deserialization of old format DateAndTime by converting to the new format. This is required for reading instances that have been saved in the snapshot.bin of a Monticello MCZ archive. If deserializing the snapshot.bin works at all, then it must also handle the special case of DataAndTime instances that were serialized with the old DateAndTime instance format.

by Dave Lewis ( at December 02, 2016 02:20 AM

December 01, 2016


Improve debugging of stack imbalances on primitive invocation by restoring the stack pointer after calling failUnbalancedPrimitive.

by Eliot Miranda ( at December 01, 2016 08:21 PM



Reimplement mergeCurrentSimStackWith: to use a better algorithm. Implement all but the register sort/swap code.

Esteban, amen!

by Eliot Miranda ( at December 01, 2016 06:48 PM


my fix didn't work.
roolling back and adding a check to fix the loading problem.
I think Eliot will want to fix correctly this...

2017. We are in the future now. I would like to quote some historical event like "for the first time in history, humanity joins to stop greed, nonsense and stupidity, and thanks to that world hunger is something of past, wars are over and global warming has stop. We will survive.".
It doesn't feels like we are going that way 9nont even for 3017), but you never know... dreaming is a powerful force.

by Esteban Lorenzano ( at December 01, 2016 02:31 PM


Added a setting so that subclasses of cogit can choose to refuse early openPIC promotion.

This leads to much, much, *much* better type information on PICs in the Sista VM. No changes in the normal VM.

by ClementBera ( at December 01, 2016 09:33 AM


move initializationOptions to initializeMiscConstants

by Esteban Lorenzano ( at December 01, 2016 08:44 AM

November 30, 2016



by Tobias Pape ( at November 30, 2016 08:11 PM


Avoid ssStorePop:toPreferredReg: stomping on already-allocated registers.

by Eliot Miranda ( at November 30, 2016 08:05 PM


Fix slips in allocateRegForStackEntryAt:notConflictingWith: and CogRegisterAllocatingSimStackEntry>>registerMaskOrNone.

Improve Spur genGetClassObjectOf:into:scratchReg:instRegIsReceiver: to avoid reg-reg copies.

Fix reconcileRegisterStateForJoinAfterSpecialSelectorSendwhich must traverse entire stack. Hence extend reconcilePoppingWith: to deal with spilled target entries.

by Eliot Miranda ( at November 30, 2016 07:36 PM


Implement a register allocating version of inlined #==.

Use simStackAt:at:.

Now that fixups are being counted correctlty, stop overcounting.

by Eliot Miranda ( at November 30, 2016 05:05 PM


Disable #aboutToLeaveWorld sending deprectated #removeModalWindow

by Bert Freudenberg ( at November 30, 2016 02:45 PM

November 29, 2016


Remove spurious KedamaTurtleVectorPlayer class

by Bert Freudenberg ( at November 29, 2016 09:04 PM


Fix captureUnspilledSpillsForSpecialSelectorSend: to update liveRegs and nuke a bogus assert.

by Eliot Miranda ( at November 29, 2016 09:02 PM


Count fixups for backward branches.

Implement saving the stack at a backward branch and reloading register state before taking the backward jump. Reverse the sense of reconcileWith: and rename it to reconcilePoppingWith: to match the backwards jump reconciliation code.

Extend CogRASSBytecodeFixup with the state of the optStatus for self and fix reInitialize.

by Eliot Miranda ( at November 29, 2016 08:46 PM


Fix liveRegisters to scan entire stack, not just from spillBase.
Add intelligence to genStorePop:TemporaryVariable: to avoid writing through a register.

by Eliot Miranda ( at November 29, 2016 04:56 PM


Another fix for reading Characters from SmartRefStream

by Bert Freudenberg ( at November 29, 2016 03:25 PM


Accessor generation.

Makes for a nice class hook and pushes responsibility to the class.

by Tobias Pape ( at November 29, 2016 02:31 PM



by Tobias Pape ( at November 29, 2016 02:30 PM


Fix a comment.

by Eliot Miranda ( at November 29, 2016 02:46 AM


Merge with VMMaker.oscog-nice.2003. Use SysV ifTrue: ... not cppIf:ifTrue:... as we are now going to generate two Cogits for X64. Refactor the CogInLineLiteralsX64Compiler/CogOutOfLineLiteralsX64Compiler overrides for RISCTempReg vs ExtraReg6 to avoid testing SysV.

Change StackToRegisterMappingCogit>>allocateRegForStackEntryAt:notConflictingWith: et al to use registerOrNone to allow RegisterAllocatingCogit to allocate the live reg since it overrides registerOrNone. Add registerMaskOrNone to complement.

Refactor maybeCountFixup to maybeCountFixup: and count extra fixups for jumps following inlined special selectors.

Avoid assigning temp vars to ReceiverResultReg et al by introducing registerMaskUndesirableForTempVars.

Add special selector comparison and special selector class handling. Improve the code in CogObjectRepresentationForSpur>>genGetClassObjectOf:into:scratchReg:instRegIsReceiver: to avoid spilling instReg.

Have ensureNonMergeFixupAt: set the merge sim stack for the fixup.

Avoid allocating a liveRegister for SSRegister types in popToReg: and storeToReg: by not setting liveRegister and copyLiveRegisterToCopiesOf: if type is SSRegister.

Execution currently blows up in the block in send:toClassesNamedIn:with: trying to start-up Delay (a regression from earlier today).

by Eliot Miranda ( at November 29, 2016 02:40 AM


Fix the Win64 x64 register arguments

by Nicolas Cellier ( at November 29, 2016 01:33 AM


Retract the choice of cppIf: #WIN64 for x64 ABI testing 'cause it's not simulator friendly.
Instead use a boolean SysV which is OK both in generated code and simulator (a bit less explicit than ABI = #SysV, but it works better).

by Nicolas Cellier ( at November 29, 2016 01:24 AM

November 28, 2016


stable v 2.8.0 (pharo 6 support)

November 28, 2016 08:53 AM

November 27, 2016


missed renaming the #browseMcMethodHistory service

by Chris Muller ( at November 27, 2016 11:32 PM


Change "history" nomenclature to "revisions".

by Chris Muller ( at November 27, 2016 11:09 PM


Assign a different register usage for Win64 ABI.

By now, there is no mean to support concurrent code generation for SysV and Win64 x64 ABI.
To generate a cogitx64.c compatible with Win64 ABI, one must hack (overwrite) the ABI class variable in CogX64Compiler with anything but #SysV, then regenerate cog spur 64 sources.
We will have to generate the header for both ABI with appropriate compiler directives.

by Nicolas Cellier ( at November 27, 2016 09:36 PM


Correctly marshal the trampoline arguments for Win64 x64 ABI.
The registers for passing first 4 integer/pointer parameters are RCX, RDX, R8, R9.

More over, it's necessary to reserve shadow space on the stack so that the callee can save those 4 registers even when there is less than 4.
Consequently, it's mandatory for cogit to invoke genRemoveNArgsFromStack: even when numArgs = 0, and let the backEnd decide what to do.

Correct a typo in cResultRegister comment.

by Nicolas Cellier ( at November 27, 2016 09:30 PM


- Fix cascade which broke saving MC Configurations.
- Fix new recoverAll:.

by Chris Muller ( at November 27, 2016 08:38 PM


empty log message

by Vladimir Lutsenko ( at November 27, 2016 06:30 PM


empty log message

November 27, 2016 09:33 AM

November 26, 2016


- now that baseColor is initialized in SimpleBorder, make sure its subclasses expect it to be initialized as well

by Levente Uzonyi ( at November 26, 2016 10:26 PM


Better naming of observeLiveRegisterIn: => copyLiveRegisterToCopiesOf:.

by Eliot Miranda ( at November 26, 2016 07:12 PM


methodOrBlockNumTemps must not be reset to the actual value ignoring the initial pushNils. Doing so wrecks spilling.

scanMethod must add an extra fixup for conditional branches since, if preceded by a special selector send, there may be two fixups created, one for each target, the target of the jump and the fall-through after the non-inlined send (see e.g. the two ensureFixupAt: sends in genBinaryInlineComparison:opFalse:destReg:).

This gets execution as far as the send of #<= in the loop in Interval>>#collect: which ends up passing nil as the second argument. It maybe time to tackle inlining of special selector comparisons.

by Eliot Miranda ( at November 26, 2016 03:19 AM


RegisterAllocatingCogit & SistaCogit

Refactor StackToRegisterMappingCogit>>compileBlockBodies to eliminate SistaCogit>>compileBlockBodies (now stale because it was missing the literalsManager save/resetForBlockCompile sends)).

Refactor simStack printing to allow CogRASSBytecodeFixup>>printStateOn: to print its simStack on an arbitrary stream.

The only change in semantics:
I *think* RegisterAllocatingCogit>>ensureFixupAt: needs to set the mergeSimStack of a fixup if the fixup needsFixup and doesn't have a mergeSimStack.

by Eliot Miranda ( at November 26, 2016 02:04 AM

November 25, 2016


Compile readStream>>#next correctly, i.e. compile the inlined + in "^collection at: (position := position + 1)" in the context of colleciton on the stack. Also keep receiverResultRegLive.

Alas these changes cause IdentityDictionary>scanFor: to blow up again, sending \\ to the key.

by Eliot Miranda ( at November 25, 2016 08:27 PM


Don't shadow 'label' var. Also, rename single use of "editions".

by Bert Freudenberg ( at November 25, 2016 11:17 AM


Display timestamp and category in Editions list (similar to version history)

by Bert Freudenberg ( at November 25, 2016 10:47 AM

November 24, 2016


Made #~~ a special selector instead of #blockCopy:.

If the bytecode compiler compiles #~~ using the special selector bytecode, then the pointer comparison with #~~ is inlined as it is with #==.

This leads #~~ to have the same performance as #==. It also means #~~ is not a primitive call, as #==.

I believe this is important for system consistency.

To integrate that in the Squeak / Pharo image, one needs to add #~~ instead of #blockCopy: in the special selector array and add Object>>#~~ as primitive 169 if not already the case.

I compiled both Sista and non Sista VMs with Spur and ensure everything is correct. I "guess" the V3 and Newspeak VMs are correct too.

by ClementBera ( at November 24, 2016 12:44 PM


Get the 64-bit system as far as the second \\ send in IdentityDictionary>>#scanFor:.

Set a simStackEntry's liveRegister in popToReg: and storeToReg: in addition to in genStorePop:TemporaryVariable:. When setting liveRegister: in this way, look through the simStack for any and all copies of the entry having its liveRegister set, and set their liveRegister to match.

When ensuring that ensureReceiverResultRegContainsSelf, nuke any liveRegister in non-self stack entries that is equal ReceiverResultReg.

Make inlined genSpecialSelectorArithmetic keep register values live around the uncommon send by cloning the simStack after generating inline code and reconciling the register state after the send.

liveRegister must be taken into account when asking for a simStackEntry's registerMask to arrange that flushing/spilling occurs.

Print the optStatus as well as the simStack when tracing the simStack.

by Eliot Miranda ( at November 24, 2016 01:46 AM

November 23, 2016


Primer intento de agregar recursos

November 23, 2016 10:56 AM


Add Edgar's DateAndTime class>>fromUnixTime:

From: Edgar De Cleene <>
Date: Fri, 18 Nov 2016 10:16:07 -0300
To: The general-purpose Squeak developers list <>
Subject: [squeak-dev] UnixTime

I found useful add UnixTime at the beginning of file names for you have
nnnFoo.etc what is compatible with different OS and you easily see ordered .

But I my image I do not have how convert this value to DateAndTime again.
So i attach this just in case some could use it.

[-- Attachment #2: DateAndTime --]

by Dave Lewis ( at November 23, 2016 01:45 AM


Make #asSeconds be consistent with #fromSeconds:

Squeak traditionally used seconds since the Smalltalk epoch in local time, which is undefinable. The error was probably caused by some early VM design choices that have since been corrected. Assume now that the Smalltalk epoch is defined relative to GMT, and that it may be treated similarly to the Posix epoch except for a constant offset value.

This implementation differs from earlier Squeak in that it uses seconds relative to the Smalltalk epoch (not local time), and represents seconds as an arbitrary precision number rather than an integer.

by Dave Lewis ( at November 23, 2016 01:27 AM

November 22, 2016


SystemReporter support the Reuse Windows preference.

by Chris Muller ( at November 22, 2016 11:25 PM


Personal SqueakSource repository default to port 8079 because a lot of people use 8888 for testing.

by Chris Muller ( at November 22, 2016 11:25 PM


- Substitute the faster #addNewElement: for #includes: + #add:.
- Recover MCAncestry>>#clearAncestors.
- #copyWithTrimmedAncestry leaves the most recent to support MC diffing function.

by Chris Muller ( at November 22, 2016 11:24 PM


Guard against patching a newer system with an older patch file.

by Chris Muller ( at November 22, 2016 11:18 PM


- Moved MCVersionInfo>>#clearAncestors to the Monticello package, because its used by it!
- Have just one Process which sequentially loops through all Projects for indexing rather than a Process per Project. This provides better simplicity and safety and, hopefully, server shutdown detection.
- Expansion of the ReadStrategy to eliminate more proxy reads.
- Perform a garbage collect upon initialization of the server and log how long it takes; there may be an issue with the VM.
- 3 DataRepairs:
1) Decided that although the canonicalization of MCVersionInfo's from the McModel into the SSRepository model is good for the Magma representation, it bloats the 'data.obj' file exported by SSFilesystem. A MagmaDataRepair reverses this.
2) 3 Versions in the Inbox project have unwanted MCAncestry, causing them to be proxied upon the initial read. Trim them.
3) For some reason, trunk did not get everything indexed into the McModel. Remove those Versions which didn't, so the next recovery will try again.
- The #exportscripts script now takes an argument list of the scripts to export.
- Use default port of 8079 instead of 8888 because too many people use 8888 for testing.

by Chris Muller ( at November 22, 2016 11:03 PM


Several fixes for synch with wiki and more

November 22, 2016 06:20 AM


Get the 64-bit system as far as the isInMemory send in SmalltalkImage>>#send:toClassesNamedIn:with:.

Main change is to not merge following a return (there is no mergeSimStack at a fixup).

Fix several asserts checking the spill state of the stack.
Reorder the compilationTrace flags and add tracing of compilation in cog:selector: and cogFullBlockMethod:numCopied:.
Improve printing of constasnts in the sim stack entry classes.

by Eliot Miranda ( at November 22, 2016 01:22 AM


Fix editing slip introduced in Chronology-Core-dtl.7, remove class NameOfSubclass

by Dave Lewis ( at November 22, 2016 12:55 AM

November 21, 2016


Now that the surface functions take int pointer, we'd better pass int pointer rather than sqInt pointer. Hence declare some BitBlt variable appropriately.

Rather than coercing to unsigned, just declare unsigned in absoluteSquared8Dot24:
Note that this could be simply replaced by an unsigned 64bit multiplication then shift nowadays, if someone is willing to measure time spent.

Do to signed32BitValueOf: what has been done to signed32BitIntegerFor:
only invoke noInlineSigned32BitValueGutsOf: for the case of LargeInteger deciphering.
When the oop is a 31bits SmallInteger, don't bother entering such function - just inline

by Nicolas Cellier ( at November 21, 2016 09:35 PM


empty log message

by Vaidotas Didzbalis ( at November 21, 2016 04:53 PM

Hitbug Parcial-JuanManuel.13

la trecera es la vencida

by Juan Manuel Sakkal ( at November 21, 2016 03:37 AM

Hitbug Parcial-JuanManuel.12

constructor de contenido y test

by Juan Manuel Sakkal ( at November 21, 2016 03:33 AM

Hitbug Parcial-JuanManuel.11

Agregado constructor de contenido y hecho un test

by Juan Manuel Sakkal ( at November 21, 2016 03:30 AM


Fix in-image compilation regression due to VMMaker.oscog-eem.1996

by Eliot Miranda ( at November 21, 2016 01:18 AM


Oops; there are two places the zero divide can bite.

by Eliot Miranda ( at November 21, 2016 12:23 AM


The new FilePlugin code must protect against zero-divide when given empty arrays.

by Eliot Miranda ( at November 21, 2016 12:21 AM

November 20, 2016

Hitbug Parcial-IgnacioPerez.10

ni me acuerdo q cambie pero algo cambie, primeros 5 sigue sin andar

by Ignacio Perez ( at November 20, 2016 03:32 PM

Hitbug Parcial-IgnacioPerez.9

movi un par de boludeces

by Ignacio Perez ( at November 20, 2016 02:00 PM

Hitbug Parcial-JuanManuel.8

avance un poco mas con esta roto y remover los contenidos que estan rotos

by Juan Manuel Sakkal ( at November 20, 2016 02:36 AM

November 19, 2016

Hitbug Parcial-JuanManuel.7

trate de hacer los 5 mas recientes, no pude :(

by Juan Manuel Sakkal ( at November 19, 2016 09:05 PM


Add support for 64-bit simulation using DoubleWordArray as the memroy class.

Rewrite the byte and short accessors to use arithmetic rather than caseOf:.

Move write-protect and convertToArray memory access into the Objectmemory classes out of StackInterpreter.

Provide a cCoerceSimple:to: to allow the LargeIntegersPlugin to simulate.

Provide memory tests for short and byte access in the object memory simulators.

by Eliot Miranda ( at November 19, 2016 06:01 PM


Fix the FilePlugin for Spur 32-bit and 16-bit integer arrays.

by Eliot Miranda ( at November 19, 2016 05:56 PM


No changes in this update, not applicable for V3 class formats.

Name: Collections-eem.723
Author: eem
Time: 18 November 2016, 4:48:38.535448 pm
UUID: 470b6823-5711-407f-bdf3-ae2d7585fcba
Ancestors: Collections-nice.722

Provide a default bytesPerElement that accords with reality.

by Dave Lewis ( at November 19, 2016 01:56 AM


Name: Collections-nice.722
Author: nice
Time: 26 October 2016, 12:27:56.637026 am
UUID: e951d8a8-3e64-4f5c-821a-6aad7a1955c4
Ancestors: Collections-eem.721

Improve anyOne: don't perform an emptyCheck before extracting any element, that's useless: anyOne is an empty check by itself ;). Extract first if we can, then error if we can't.

Excluded from update because DoubleByteArray does not exist in V3:

Correct DoubleByteArray comment (it's not HalfWordArray anymore)

by Dave Lewis ( at November 19, 2016 01:50 AM


Name: Collections-eem.721
Author: eem
Time: 25 October 2016, 1:52:30.584675 pm
UUID: 2bb84a66-90fc-4430-8da4-509fef3d7eb4
Ancestors: Collections-nice.720

Comment an unexpectedly controversial method.

by Dave Lewis ( at November 19, 2016 01:45 AM


Name: Collections-nice.720
Author: nice
Time: 22 October 2016, 2:39:21.705933 pm
UUID: 7018ec94-c3e6-4cfe-b087-11f110445aa0
Ancestors: Collections-nice.719

Change implementation of isEmpty to not rely on size by default, because size could be slow (default implementation enumerates the whole collection) or even infinite.

Provide implementation in subclasses in order to preserve efficiency.

by Dave Lewis ( at November 19, 2016 01:44 AM


Name: Collections-nice.719
Author: nice
Time: 20 October 2016, 10:28:18.384751 pm
UUID: a873d200-0ee0-4297-aebd-510f92ea243c
Ancestors: Collections-nice.718

Let reversed preserve Interval class.
Handle the case of empty Interval specially (preserve the bounds).

by Dave Lewis ( at November 19, 2016 01:41 AM


No changes in this update. DoubleWordArray and DoubleByteArray use class formats and primitives that are supported in Spur but not in V3. In particular, the new class formats cannot be represented in V3.

Name: Collections-nice.718
Author: nice
Time: 20 October 2016, 10:23:53.462294 pm
UUID: 13d0b4c6-3da0-48a4-bf4e-789740593810
Ancestors: Collections-nice.717, Collections-eem.717

Merge nice-717 for providing HalfWordArray and DoubleWordArray

Rename HalfWord -> DoubleByte according to Eliot's protocol

Name: Collections-nice.717
Author: nice
Time: 21 September 2016, 9:43:43.472517 pm
UUID: f94b2210-9435-4dce-81d4-fe6fb57b3ec7
Ancestors: Collections-dtl.716

Introduce HalfWordArray and DoubleWordArray for positive 16 bits and 64 bits integer elements.

by Dave Lewis ( at November 19, 2016 01:40 AM


Name: Kernel-cmm.1049
Author: cmm
Time: 11 November 2016, 2:55:37.977602 pm
UUID: c1a99cf9-1315-4aac-9bdb-c84fecc12912
Ancestors: Kernel-nice.1048

Give ReferenceStream the ability to serialize objects whose behaviors were extended via #primitiveChangeClassTo:.

by Dave Lewis ( at November 19, 2016 01:16 AM


No changes in this update, V3 image format does not have boxed floats.

Name: Kernel-nice.1048
Author: nice
Time: 30 October 2016, 5:18:07.732545 pm
UUID: 476a34de-b988-44ea-8d97-3b553e3e879e
Ancestors: Kernel-nice.1047

Move the duplicated fallback code for timesTwoPower: primitive up in Float.

Adjust the limits a bit,

- we can evaluate down to (1.0 timesTwoPower: -1074) with gradual underflow (Float emin - Float precision + 1).

- we can shift by 29 with SmallInteger, so correctly set the limit to -30 < exponent < 30

by Dave Lewis ( at November 19, 2016 01:06 AM


Name: Compiler-nice.328
Author: nice
Time: 30 October 2016, 10:48:17.206969 pm
UUID: 165e1dcd-51cd-4ce9-8806-92457585a3d1
Ancestors: Compiler-tfel.327

Remove obsolete code-generation methods

by Dave Lewis ( at November 19, 2016 12:59 AM


Provide a default bytesPerElement that accords with reality.

by Eliot Miranda ( at November 19, 2016 12:49 AM

November 18, 2016


ultimo q hice

by Ignacio Perez ( at November 18, 2016 08:27 PM


Fix an unused value warning in Balloon/Bezier

I think that the intention was to use 2nd derivative to decide direction when 1st derivative is null.

Fix a typo in tempolines comment.

Fix primitiveBeCursor - generated code could dereference a null pointer offsetObj due to misplaced block end.
Also a null pointer cursorObj could be dereferenced if 2 arguments or more were passed to the primitive.

by Nicolas Cellier ( at November 18, 2016 03:22 AM


Name: Files-tfel.165
Author: tfel
Time: 30 August 2016, 10:42:22.521946 am
UUID: 45b18cd1-022d-824f-8b83-077e3908cb22
Ancestors: Files-tfel.162, Files-dtl.164

merge translation and read-only check from Squeakland Etoys

by Dave Lewis ( at November 18, 2016 12:39 AM


Name: Files-dtl.164
Author: dtl
Time: 28 August 2016, 10:55:13.088975 am
UUID: 4d4aaa9c-efd6-4ea2-8f37-d405243840da
Ancestors: Files-dtl.163

Avoid exception if TranscriptSteam is not present, and use #ifNotNil: instead of #ifNotNilDo:

by Dave Lewis ( at November 18, 2016 12:39 AM


Name: Files-dtl.163
Author: dtl
Time: 27 August 2016, 11:16:05.899859 pm
UUID: b4b2f4c1-4c24-44b4-8fc7-90a63a0f5940
Ancestors: Files-ul.162

Add StandardFileStream>>update: to handle #appendEntry by flushing the stream. This allows the standard output stream to be a dependent of the Transcript, flushing output as expected for a transcript view.

by Dave Lewis ( at November 18, 2016 12:39 AM


Name: Files-ul.162
Author: ul
Time: 24 August 2016, 9:23:41.082845 pm
UUID: 43f75097-2eb2-4c8f-b246-f1346ff30fef
Ancestors: Files-cmm.161

Don't let #next:putAll:startingAt: roll back the receiver when the first argument is negative.

by Dave Lewis ( at November 18, 2016 12:39 AM


Name: Files-cmm.161
Author: cmm
Time: 25 July 2016, 3:52:18.391906 pm
UUID: 23aaa0dc-71b3-4585-a06a-25a113d14404
Ancestors: Files-cmm.160

- Soften the change to FileDirectory>>#/ to be more backward compatible, and extend it to DirectoryEntry.
- We have #assureExistence, add #assureAbsence for safely ensuring a directory does not exist without having to write a error-handler.

by Dave Lewis ( at November 18, 2016 12:39 AM


Name: Files-cmm.160
Author: cmm
Time: 21 July 2016, 9:50:48.903412 pm
UUID: 39b8ccca-fb51-40b1-9967-44ed1dbb2648
Ancestors: Files-cmm.159

Enable DirectoryEntry's with directory-tree enumeration and content stream access.

by Dave Lewis ( at November 18, 2016 12:39 AM


Name: Files-cmm.159
Author: cmm
Time: 21 July 2016, 3:44:04.16263 pm
UUID: 52077283-7106-4ab6-8368-d5f4b5f6f641
Ancestors: Files-eem.158

Fix FileDirectory>>#/ to not assume the argument represents another directory; it could be a file.

by Dave Lewis ( at November 18, 2016 12:38 AM


Name: Files-eem.158
Author: eem
Time: 8 July 2016, 11:34:56.899258 am
UUID: bd16d152-2f96-4857-8363-c7364470391b
Ancestors: Files-dtl.157

Add directoryNamesMatching: & streamline fileNamesMatching:

by Dave Lewis ( at November 18, 2016 12:38 AM


Name: Files-dtl.157
Author: dtl
Time: 3 June 2016, 11:15:12.62641 pm
UUID: 66c41d04-aff3-414b-8e48-8db1829db0f6
Ancestors: Files-tpr.156

Flush before sync, unsure streams are flushed before sync to disk.

by Dave Lewis ( at November 18, 2016 12:38 AM


Name: Files-tpr.156
Author: tpr
Time: 24 May 2016, 10:00:21.788027 am
UUID: a9fad8c9-8c36-480a-8c66-1521c4e1bf16
Ancestors: Files-cmm.155

Add call to the fsync file flushing/synchronising primitive, plus a #sync method to use it.

by Dave Lewis ( at November 18, 2016 12:38 AM


Skip Files-cmm.155, presumably not required since it is a fix for 154, which was skipped due to Spur dependencies.

Name: Files-cmm.155
Author: cmm
Time: 20 May 2016, 3:29:53.0841 pm
UUID: 2d1395ee-9f47-47f6-91f5-dbd18af891e7
Ancestors: Files-ul.154

Fix ability to load OSProcess after recent mode-conversion changes.

by Dave Lewis ( at November 18, 2016 12:38 AM


Skip changes in Files-ul.154 because a ByteArray may not be able to adopt an instance of ByteString in V3.

As of Files-xxx-154, the V3 trunk update stream contains Spur dependences. Additional dependencies are expected to be minimal, but an update branch is required in order to manage the differences as of 154.

Name: Files-ul.154
Author: ul
Time: 15 May 2016, 11:17:08.015805 pm
UUID: 7a4281ea-9f72-4784-ac30-b324ca3b456e
Ancestors: Files-nice.153

- use #adoptInstance: to convert between binary and ascii mode instead of creating new collections

by Dave Lewis ( at November 18, 2016 12:38 AM

November 17, 2016


The processor creation primitives should be 64-bit aware, including LLP64.

by Eliot Miranda ( at November 17, 2016 11:48 PM


Fix primitiveIntegerAt in Spur 64-bits by always using signed32BitIntegerFor: to obtain the result object. Refactor signed32BitIntegerFor: into an inlineable part that cvhecks for isIntegerValue: and a non-inlined part (noInlineSigned32BitIntegerGutsFor:) that constructs a LargeInteger object.

Fix a simulation inlitialization slip.

by Eliot Miranda ( at November 17, 2016 07:46 PM


An update stream is specified by a repository URL and an update map name. If multiple repositories are involved, these are specified in the update maps within the update stream.

Therefore clean up leftover cruft from earlier refactorings, eliminating MCMcmUpdater class>>updateFromRepositories: and related methods because updater instances now know their own repository URL.

Move Andreas original code example for from MCMcmUpdater class>> updateFromRepositories: to MCMcmUpdater class>> updateFromRepository: because updaters are instance based, one repository per updater.

"MCMcmUpdater updateFromRepository: '' "

by David T. Lewis ( at November 17, 2016 03:17 AM


Fix the BrowseTest in the presence of the openToolsAttachedToMouseCursor preference.

by Eliot Miranda ( at November 17, 2016 02:08 AM


Improve the testOutOfMemorySignal test so as not to take an age on 64-bit machines.

by Eliot Miranda ( at November 17, 2016 01:46 AM

November 16, 2016

Hitbug Parcial-IgnacioPerez.6

empece esta roto, creo q esta mal y asi como esta no se puede implementar :p

by Ignacio Perez ( at November 16, 2016 03:57 PM

Hitbug Parcial-IgnacioPerez.5

Contenidos especiales, buscar y eliminar en biblioteca

by Ignacio Perez ( at November 16, 2016 12:49 AM

November 15, 2016

Hitbug Parcial-JuanManuel.4


by Juan Manuel Sakkal ( at November 15, 2016 07:21 PM

Hitbug Parcial-IgnacioPerez.3

esliviano y agregar a la biblioteca

by Ignacio Perez ( at November 15, 2016 06:46 PM

Hitbug Parcial-IgnacioPerez.2

lo de los algoritmos de compresion

by Ignacio Perez ( at November 15, 2016 06:07 PM

Hitbug Parcial-JuanManuel.1

Esta va mepa

by Juan Manuel Sakkal ( at November 15, 2016 05:00 PM



by Juan Manuel Sakkal ( at November 15, 2016 04:59 PM


initial D

by Ignacio Perez ( at November 15, 2016 04:51 PM


Ancestors: LIF-vd.5
Added, Modified, Deleted vs. LIF-vd.5:
A #(#LIF #'LIF-Boxes' #'LIF-Domo' #'LIF-Filter' #'LIF-Utils')
A FlapjaxLib
A FlapjaxLib>>flapjax21Js
A HttpUrl>>fullSizeUrl
A HttpUrl>>inSubCatalogNamed:
A HttpUrl>>midsizeUrl
A HttpUrl>>thumbnailUrl
A Integer>>printStringAsCents
A LIF2 class>>filterPictureFileNames
A LIF2 class>>jqueryFiles
A LIF2 class>>jqueryUiPictureNames
A LIF2 class>>printCopyRenameForwardUsing:on:
A LIF2 class>>printRenameForwardUsing:on:
A LIF2 class>>renderOneOn:
A LIF2 class>>renderSampleColumnOn:
A LIF2 class>>renderSampleOn:
A LIF2 class>>renderSampleOneOn:
A LIF2 class>>selectorForExtension:
A LIF2 class>>serveCatalog
A LIF2 class>>serveCssNamed:
A LIF2 class>>serveEotNamed:
A LIF2 class>>serveFiles
A LIF2 class>>serveGifNamed:
A LIF2 class>>serveImageNamed:type:locatedAt:
A LIF2 class>>serveItems
A LIF2 class>>serveJavascriptNamed:
A LIF2 class>>serveJpgNamed:
A LIF2 class>>serveMediumSizeNamed:
A LIF2 class>>serveMediumSizePictures
A LIF2 class>>serveNamed:type:locatedAt:
A LIF2 class>>serveNamed:type:locatedAt:webPath:
A LIF2 class>>servePngNamed:
A LIF2 class>>serveThumbnailNamed:
A LIF2 class>>serveThumbnails
A LIF2 class>>serveWebFolderName:imageNamed:type:locatedAt:
A LIF2 class>>serveWoffNamed:
A LIF2 class>>startServer
A LIF2 class>>stripPathFromDict:
A LIF2 class>>tempNamesForFiles:
A LIF2>>initialize
A LIFAboutBox
A LIFAboutBox class>>messageText:
A LIFAboutBox>>cosmstyle
A LIFAboutBox>>dddColor
A LIFAboutBox>>messageText:
A LIFAboutBox>>picturesColWidth
A LIFAboutBox>>renderContentOn:
A LIFAboutBox>>renderFiltersOn:
A LIFAboutBox>>renderTextOn:
A LIFAboutBox>>sidelineColor
A LIFAboutBox>>style
A LIFAboutBox>>subDirectoryName
A LIFAboutBox>>updateRoot:
A LIFAboutBox>>urlForPictureFileName:
A LIFAboutBox>>wrapColor
A LIFAboutBox>>xstyle
A LIFAbstractCBFilter
A LIFAbstractCBFilter>>renderOn:
A LIFAbstractGeleFilter
A LIFAbstractGeleFilter class>>label
A LIFAbstractGeleFilter class>>selectAll
A LIFAbstractGeleFilter>>availableOptionLabels
A LIFAbstractGeleFilter>>initialize
A LIFAbstractGeleFilter>>label
A LIFAbstractGeleFilter>>satisfies:
A LIFAbstractGeleFilter>>selectAll
A LIFAbstractGeleFilter>>selectNone
A LIFAbstractGeleFilter>>selectOnly:
A LIFAbstractGeleFilter>>selected:value:
A LIFAbstractGeleFilter>>selector
A LIFAbstractPage
A LIFAbstractPage>>defaultTitle
A LIFAbstractPage>>fullPageForRequest:
A LIFAbstractPage>>jqueryFiles
A LIFAbstractPage>>renderAttachMenuScriptOn:
A LIFAbstractPage>>renderCssHeaderRootOn:
A LIFAbstractPage>>renderFlexCssOn:
A LIFAbstractPage>>renderFontsCssRootOn:
A LIFAbstractPage>>renderHeaderContentOn:
A LIFAbstractPage>>renderIncludeBootstrapCSSOn:
A LIFAbstractPage>>renderJavascriptOn:
A LIFAbstractPage>>renderOnLoadScriptOn:
A LIFAbstractPage>>renderRemoveResponsiveCssOn:
A LIFAbstractPage>>renderResponsiveOnRoot:
A LIFAbstractPage>>renderRoot:forRequest:
A LIFAbstractPage>>renderRootOn:
A LIFAbstractPage>>renderSearchBandOn:
A LIFAbstractPage>>renderSearchByPavadinimasOn:
A LIFAbstractPage>>xxxrenderAttachMenuScriptOn:
A LIFApie class>>footerPictureNames
A LIFApie class>>pictureNames
A LIFApie>>defaultTitle
A LIFApie>>footerPictureNames
A LIFApie>>pabaigosTekstas
A LIFApie>>pictureNames
A LIFApie>>renderContentOn:
A LIFApie>>renderIncludeBootstrapCSSOn:
A LIFApie>>renderResponsiveOnRoot:
A LIFApie>>renderSukiaiOn:
A LIFApie>>renderSukiaiPaprastaiOn:
A LIFApie>>renderTextParagraphOn:
A LIFAukstisFilter
A LIFAukstisFilter class>>availableOptionLabels
A LIFAukstisFilter class>>availableOptions
A LIFAukstisFilter class>>label
A LIFAukstisFilter>>pasirinktiAukscioIntervalai
A LIFAukstisFilter>>satisfies:
A LIFBatchImporter
A LIFBatchImporter class>>canBeRoot
A LIFBatchImporter class>>initialize
A LIFBatchImporter>>contents
A LIFBatchImporter>>contents:
A LIFBatchImporter>>initialize
A LIFBatchImporter>>renderContentOn:
A LIFBatchImporter>>updateRoot:
A LIFBatchImporterTask
A LIFBatchImporterTask class>>canBeRoot
A LIFBatchImporterTask class>>exampleTSVData
A LIFBatchImporterTask class>>initialize
A LIFBatchImporterTask>>go
A LIFBatchImporterTask>>importProductListFromClipboard
A LIFBatchImporterTask>>importProductsListFromString:
A LIFBatchImporterTask>>initialize
A LIFBatchImporterTask>>onUpdatedOld:to:
A LIFBatchImporterTask>>resetCounters
A LIFBatchImporterTask>>storeRemotely:
A LIFBatchImporterTask>>updateRoot:
A LIFBatchedList
A LIFBatchedList>>allSize
A LIFBatchedList>>currentPage
A LIFBatchedList>>currentPageIndex
A LIFBatchedList>>fetchNextPage:
A LIFBatchedList>>fetchNextPageFromStream:
A LIFBatchedList>>filtersSatisfy:
A LIFBatchedList>>firstInCurrentPageIndex
A LIFBatchedList>>initialize
A LIFBatchedList>>isOnFirstPage
A LIFBatchedList>>isOnLastPage
A LIFBatchedList>>lastInCurrentPageIndex
A LIFBatchedList>>nextPage
A LIFBatchedList>>paginate
A LIFBatchedList>>previousPage
A LIFBatchedList>>renderCurrentItemsInfoOn:
A LIFBatchedList>>renderFilterOn:
A LIFBatchedList>>renderFiltersOn:
A LIFBatchedList>>renderListItemsOn:
A LIFBatchedList>>renderNextOn:
A LIFBatchedList>>renderOn:
A LIFBatchedList>>renderPageNumbersOn:
A LIFBatchedList>>renderPreviousOn:
A LIFFileLibrary
A LIFFileLibrary>>faviconIco
A LIFFileLibrary>>jqueryvalidateJs
A LIFFileMaker
A LIFFileMaker class>>collectInfoRoot:using:
A LIFFileMaker class>>nonAscNames
A LIFFileMaker class>>renameForwardFilesIn:using:
A LIFFileMaker class>>renameToSafeFilesIn:
A LIFFileMaker class>>renameToSafeFilesInRoot:
A LIFFileMaker class>>subDirNames
A LIFFileMaker class>>withoutAPictureAt:
A LIFFileMaker class>>withoutAPictureAtRoot:
A LIFFileMaker class>>withoutAPictureAtTempRoot
A LIFFileMaker>>calculatePictureExtentsAtDir:
A LIFFileMaker>>calculatePictureExtentsAtDir:fileName:
A LIFFileMaker>>extensions
A LIFFileMaker>>extents
A LIFFileMaker>>extesionOfFileName:
A LIFFileMaker>>fileNames
A LIFFileMaker>>fileNamesInfoForGeles:
A LIFFileMaker>>initTempNames
A LIFFileMaker>>nameHashes
A LIFFileMaker>>printCropForSourceDir:on:
A LIFFileMaker>>renameBackwardFilesAt:
A LIFFileMaker>>renameFilesAtRootDir:usinInfo:
A LIFFileMaker>>renameFilesInDir:named:to:
A LIFFileMaker>>renameFilesNamed:to:
A LIFFileMaker>>renameForwardFilesIn:using:
A LIFFileMaker>>renameKeysUsinInfo:
A LIFFileMaker>>saveCropFileTempDir:
A LIFFileMaker>>setUrlsForGeles
A LIFFileMaker>>subDirNames
A LIFFileMaker>>tempNames
A LIFGalerija
A LIFGalerija class>>footerPictureNames
A LIFGalerija class>>pictureNames
A LIFGalerija>>defaultTitle
A LIFGalerija>>pictureNames
A LIFGalerija>>renderContentOn:
A LIFGalerija>>renderIncludeBootstrapCSSOn:
A LIFGalerija>>renderResponsiveOnRoot:
A LIFGalerija>>renderTextParagraphOn:
A LIFGele class>>aukscioIntervalai
A LIFGele class>>characteristicsAvailable
A LIFGele class>>filterClasses
A LIFGele class>>filters
A LIFGele class>>newFilters
A LIFGele class>>readNumberIntervalFromString:
A LIFGele class>>reportComponent
A LIFGele class>>sauleArPavesis
A LIFGele class>>sausaArSlapia
A LIFGele class>>spalvos
A LIFGele class>>style
A LIFGele class>>urlForPictureFileName:
A LIFGele class>>zydejimoLaikotarpiai
A LIFGele>><=
A LIFGele>>aprasas
A LIFGele>>aprasas:
A LIFGele>>assert:reason:
A LIFGele>>aukscioIntervalas
A LIFGele>>aukscioIntervalas:
A LIFGele>>characteristicsEncoded
A LIFGele>>fileNamesOnDisk
A LIFGele>>frlicrQueryString
A LIFGele>>greaseString
A LIFGele>>initialize
A LIFGele>>kaina
A LIFGele>>kaina:
A LIFGele>>kainaFromString:
A LIFGele>>katalogas
A LIFGele>>labelForSelector:
A LIFGele>>lapuSpalva
A LIFGele>>lapuSpalva:
A LIFGele>>matchesJPGFileOnDisk:
A LIFGele>>pavadinimai:
A LIFGele>>pavadinimas
A LIFGele>>pavadinimasLietuviskai
A LIFGele>>pavadinimasLietuviskai:
A LIFGele>>pavadinimasPorusis
A LIFGele>>pavadinimasRusis
A LIFGele>>printOn:
A LIFGele>>renderBlueLineOn:
A LIFGele>>renderDashedLineOn:
A LIFGele>>renderDetailsButtonOn:viena:
A LIFGele>>renderDomoLotLineOn:viena:
A LIFGele>>renderDomoLtLineAndKainaOn:viena:
A LIFGele>>renderDomoOn:viena:
A LIFGele>>renderElement:label:pictureNameOrNil:on:
A LIFGele>>renderFlicrOn:
A LIFGele>>renderFullPictureDialogOn:
A LIFGele>>renderOneGelesCharakteristikosOn:
A LIFGele>>renderOnePictureForAListOn:
A LIFGele>>renderOnePictureWithThumbnailsOn:
A LIFGele>>renderSliderFailedAgainOn:
A LIFGele>>renderSliderOldOn:
A LIFGele>>renderSliderOn:
A LIFGele>>sauleArPavesis
A LIFGele>>sausaArSlapia
A LIFGele>>setFileNames:
A LIFGele>>setKainaFromString:
A LIFGele>>setKatalogoSkyriusFromString:
A LIFGele>>setSauleArPavesistarpisFromString:
A LIFGele>>setSausaArSlapiaFromString:
A LIFGele>>setSpalvuGrupesFormString:
A LIFGele>>setZydejimoLaikotarpisFromString:
A LIFGele>>spalva
A LIFGele>>spalva:
A LIFGele>>spalvuGrupes
A LIFGele>>style
A LIFGele>>title
A LIFGele>>uniqueConstraints
A LIFGele>>urlForPictureFileName:
A LIFGele>>urls
A LIFGele>>validate
A LIFGele>>zona:
A LIFGele>>zydejimoLaikotarpiai
A LIFInfoBox
A LIFInfoBox class>>messageText:
A LIFInfoBox>>info:
A LIFInfoBox>>messageText:
A LIFInfoBox>>renderContentOn:
A LIFInfoBox>>updateRoot:
A LIFKaipPirkti
A LIFKaipPirkti class>>footerPictureNames
A LIFKaipPirkti class>>pictureNames
A LIFKaipPirkti>>defaultTitle
A LIFKaipPirkti>>footerPictureNames
A LIFKaipPirkti>>pabaigosTekstas
A LIFKaipPirkti>>pictureNames
A LIFKaipPirkti>>renderContentOn:
A LIFKaipPirkti>>renderIncludeBootstrapCSSOn:
A LIFKaipPirkti>>renderResponsiveOnRoot:
A LIFKaipPirkti>>renderSukiaiOn:
A LIFKaipPirkti>>renderSukiaiPaprastaiOn:
A LIFKaipPirkti>>renderTextParagraphOn:
A LIFKatalogas
A LIFKatalogas>>defaultTitle
A LIFKatalogas>>fullPageForRequest:
A LIFKatalogas>>jqueryFiles
A LIFKatalogas>>renderAttachMenuScriptOn:
A LIFKatalogas>>renderContentOn:
A LIFKatalogas>>renderFilterContentOn:
A LIFKatalogas>>renderHiddenListOn:
A LIFKatalogas>>renderJavascriptOn:
A LIFKatalogas>>renderOnLoadScriptOn:
A LIFKatalogas>>renderResponsiveOnRoot:
A LIFKatalogas>>renderRoot:forRequest:
A LIFKontaktai
A LIFKontaktai class>>footerPictureNames
A LIFKontaktai class>>pictureNames
A LIFKontaktai>>defaultTitle
A LIFKontaktai>>pictureNames
A LIFKontaktai>>renderContentOn:
A LIFKontaktai>>renderIncludeBootstrapCSSOn:
A LIFKontaktai>>renderResponsiveOnRoot:
A LIFKontaktai>>renderTextParagraphOn:
A LIFKontaktaiBox
A LIFKontaktaiBox>>renderContentOn:
A LIFKontaktaiBox>>style
A LIFKontaktaiBox>>updateRoot:
A LIFPatariu
A LIFPatariu class>>footerPictureNames
A LIFPatariu class>>pictureNames
A LIFPatariu>>defaultTitle
A LIFPatariu>>footerPictureNames
A LIFPatariu>>pabaigosTekstas
A LIFPatariu>>pictureNames
A LIFPatariu>>renderContentOn:
A LIFPatariu>>renderIncludeBootstrapCSSOn:
A LIFPatariu>>renderResponsiveOnRoot:
A LIFPatariu>>renderSukiaiOn:
A LIFPatariu>>renderSukiaiPaprastaiOn:
A LIFPatariu>>renderTextParagraphOn:
A LIFPavadinimasFilter
A LIFPavadinimasFilter class>>label
A LIFPavadinimasFilter>>initialize
A LIFPavadinimasFilter>>packageNamesFor:
A LIFPavadinimasFilter>>renderOn:
A LIFPavadinimasFilter>>satisfies:
A LIFPavadinimasFilter>>submitCallback:
A LIFPavadinimasFilter>>xkalbos
A LIFPavadinimasFilter>>xsearchSelector
A LIFSauleArPavesisFilter
A LIFSauleArPavesisFilter class>>availableOptionLabels
A LIFSauleArPavesisFilter class>>availableOptions
A LIFSauleArPavesisFilter class>>label
A LIFSauleArPavesisFilter>>satisfies:
A LIFSausaArSlapiaFilter
A LIFSausaArSlapiaFilter class>>availableOptionLabels
A LIFSausaArSlapiaFilter class>>availableOptions
A LIFSausaArSlapiaFilter class>>label
A LIFSausaArSlapiaFilter>>satisfies:
A LIFSpalvaFilter
A LIFSpalvaFilter class>>availableOptionLabels
A LIFSpalvaFilter class>>availableOptions
A LIFSpalvaFilter class>>label
A LIFSpalvaFilter>>satisfies:
A LIFSubscriber
A LIFSubscriber class>>reportColumnsForComponent:
A LIFSubscriber class>>reportComponent
A LIFSubscriber class>>sample
A LIFSubscriber>>dateAndTime
A LIFSubscriber>>email
A LIFSubscriber>>email:
A LIFSubscriber>>initialize
A LIFSubscriber>>storeToDefaultDb
A LIFSubscriber>>title
A LIFSubscriber>>uniqueConstraints
A LIFUtil class>>deploy
A LIFUtil class>>packageNames
A LIFUtil class>>packages
A LIFUtil class>>startWebServer
A LIFUtil class>>storePackagesWithSuffix:
A LIFZydejimoLaikotarpiaiFilter
A LIFZydejimoLaikotarpiaiFilter class>>availableOptionLabels
A LIFZydejimoLaikotarpiaiFilter class>>label
A LIFZydejimoLaikotarpiaiFilter>>satisfies:
A ModalDemo
A ModalDemo>>fullPageForRequest:
A ModalDemo>>renderContentOn:
A String>>asLifFileName
A String>>lifNameHash
A UndefinedObject>>intersection:
A WAConditionalComment>>ie9
A WADivTag
A WADivTag>>clear
A WADivTag>>tag
A WAHtmlAttributes>>addRole:
A WAHtmlCanvas>>bsCheckbox:on:
A WAHtmlCanvas>>mdRowColumns:
A WAHtmlCanvas>>mdrow12With:
A WAHtmlCanvas>>renderCarouselUrls:
A WAHtmlCanvas>>renderFullPictureDialogUrls:
A WAHtmlCanvas>>renderGeles
A WATagBrush>>myAt:put:
A WATagBrush>>role:
A WAUrl class>>daugiametes
A WAUrl>>beDaugiametes
A WAUrl>>beVienmetes
A WAUrl>>beZolynai
A WebRequest>>host
A WebRequest>>hostAndPort
A WebRequest>>mySend400Response
A WebRequest>>mySend400ResponseDataTooLarge
A WebRequest>>needsRedirect
A WebRequest>>port

by Vaidotas Didzbalis ( at November 15, 2016 06:31 AM

November 14, 2016


Fix integerValueOf: & integerObjectOf: in plugins for 64-bits. Since the CCodeGenerator generates the shifts directly it must use a #define for the number of tag bits to shift by since in 64-bit Spur we use three tag bits, not one.


Revert changes to SpurNBitMemoryManager>>integerValueOf: which use bitShift: for simulation.

Fix coercions for usqIntptr_t (*)(void).

by Eliot Miranda ( at November 14, 2016 11:20 PM


Fix accesss to DoubleByte integer arrays: fetchShort16:ofObject: is signed and we want an unsigned short.

Note: most memory access should be unsigned and extension to sqInt is also unecessary: we have improving slang type inference now. Non counting the divergence with VM simulator which provides mostly unsigned memory access! But for now, do the minimal change that could possibly work, not the right one.

by Nicolas Cellier ( at November 14, 2016 10:39 PM


Ancestors: Seaside-Canvas-vd.118
Added, Modified, Deleted vs. Seaside-Canvas-vd.118:
A #(#'Seaside-Canvas' #'Seaside-Canvas-Tags')
A GRPackage class>>seasideCanvas
A WAAbstractTextAreaTag
A WAAbstractTextAreaTag>>callback:
A WAAbstractTextAreaTag>>exampleText:
A WAAbstractTextAreaTag>>setCursorPosition:
A WAAbstractTextAreaTag>>setSelectionFrom:to:
A WAAnchorTag
A WAAnchorTag>>callback:
A WAAnchorTag>>charset:
A WAAnchorTag>>document:
A WAAnchorTag>>document:mimeType:
A WAAnchorTag>>document:mimeType:fileName:
A WAAnchorTag>>extraParameters:
A WAAnchorTag>>extraPath:
A WAAnchorTag>>fragment:
A WAAnchorTag>>ignoreURL
A WAAnchorTag>>mailto:
A WAAnchorTag>>name:
A WAAnchorTag>>navigation
A WAAnchorTag>>newTarget
A WAAnchorTag>>on:of:
A WAAnchorTag>>rel:
A WAAnchorTag>>relationship:
A WAAnchorTag>>resourceUrl:
A WAAnchorTag>>reverse:
A WAAnchorTag>>submitFormNamed:
A WAAnchorTag>>tag
A WAAnchorTag>>target:
A WAAnchorTag>>text:
A WAAnchorTag>>type:
A WAAnchorTag>>url
A WAAnchorTag>>url:
A WAAnchorTag>>useBaseUrl
A WAAnchorTag>>with:
A WABasicFormTag
A WABasicFormTag>>acceptCharset:
A WABasicFormTag>>action:
A WABasicFormTag>>defaultUrlCharset
A WABasicFormTag>>get
A WABasicFormTag>>initialize
A WABasicFormTag>>method:
A WABasicFormTag>>multipart
A WABasicFormTag>>multipart:
A WABasicFormTag>>name:
A WABasicFormTag>>noAutocomplete
A WABasicFormTag>>post
A WABasicFormTag>>setParent:canvas:
A WABasicFormTag>>tag
A WABreakTag
A WABreakTag>>isClosed
A WABreakTag>>tag
A WABrush
A WABrush>>close
A WABrush>>initialize
A WABrush>>labelForSelector:of:
A WABrush>>parent
A WABrush>>setParent:canvas:
A WABrush>>with:
A WAButtonTag
A WAButtonTag>>bePush
A WAButtonTag>>beReset
A WAButtonTag>>beSubmit
A WAButtonTag>>callback:
A WAButtonTag>>initialize
A WAButtonTag>>isClosed
A WAButtonTag>>on:of:
A WAButtonTag>>tag
A WAButtonTag>>type
A WAButtonTag>>value
A WAButtonTag>>value:
A WAButtonTag>>with:
A WACancelButtonTag
A WACancelButtonTag>>callback:
A WACanvas
A WACanvas>>brush:
A WACanvas>>flush
A WACanvas>>insert:
A WACanvas>>nest:
A WACanvas>>render:
A WACanvas>>text:
A WACheckboxTag
A WACheckboxTag>>after
A WACheckboxTag>>callback:
A WACheckboxTag>>onTrue:onFalse:
A WACheckboxTag>>submitFormNamed:
A WACheckboxTag>>type
A WACheckboxTag>>value:
A WACollectionTag
A WACollectionTag>>add:
A WACollectionTag>>addAll:
A WACollectionTag>>before
A WACollectionTag>>callback:
A WACollectionTag>>hasList
A WACollectionTag>>isSelected:
A WACollectionTag>>labelForOption:
A WACollectionTag>>labels:
A WACollectionTag>>list
A WACollectionTag>>list:
A WACollectionTag>>on:of:
A WACollectionTag>>renderListItem:labelled:
A WACollectionTag>>selected:
A WACompound
A WACompound>>addCallback
A WACompound>>callback:
A WACompound>>close
A WACompound>>hasCallback
A WACompound>>id
A WACompound>>id:
A WACompound>>initialize
A WACompound>>on:of:
A WACompound>>value
A WACompound>>value:
A WACompound>>with:
A WADateInput
A WADateInput>>addCallback
A WADateInput>>addDayCallbackToBrush:
A WADateInput>>addMonthCallbackToBrush:
A WADateInput>>addYearCallbackToBrush:
A WADateInput>>day
A WADateInput>>day:
A WADateInput>>defaultOptions
A WADateInput>>month
A WADateInput>>month:
A WADateInput>>options
A WADateInput>>options:
A WADateInput>>renderDay
A WADateInput>>renderMonth
A WADateInput>>renderYear
A WADateInput>>setValueWithNewDate
A WADateInput>>with:
A WADateInput>>year
A WADateInput>>year:
A WAEditTag
A WAEditTag>>cite:
A WAEditTag>>datetime:
A WAFieldSetTag
A WAFieldSetTag>>before
A WAFieldSetTag>>legend:
A WAFieldSetTag>>tag
A WAFileUploadTag
A WAFileUploadTag>>accept:
A WAFileUploadTag>>callback:
A WAFileUploadTag>>on:of:
A WAFileUploadTag>>type
A WAFormInputTag
A WAFormInputTag>>callback:
A WAFormInputTag>>isClosed
A WAFormInputTag>>name:
A WAFormInputTag>>on:of:
A WAFormInputTag>>readonly:
A WAFormInputTag>>setFocus
A WAFormInputTag>>size:
A WAFormInputTag>>submitOnClick
A WAFormInputTag>>tag
A WAFormInputTag>>text:
A WAFormInputTag>>type
A WAFormInputTag>>type:
A WAFormInputTag>>value
A WAFormInputTag>>value:
A WAFormInputTag>>with:
A WAFormTag
A WAFormTag>>after
A WAFormTag>>before
A WAFormTag>>defaultAction:
A WAFormTag>>isGet
A WAFormTag>>isInternetExplorer
A WAGenericTag
A WAGenericTag class>>tag:
A WAGenericTag>>initializeWithTag:
A WAGenericTag>>tag
A WAHeadingTag
A WAHeadingTag>>initialize
A WAHeadingTag>>level
A WAHeadingTag>>level1
A WAHeadingTag>>level2
A WAHeadingTag>>level3
A WAHeadingTag>>level4
A WAHeadingTag>>level5
A WAHeadingTag>>level6
A WAHeadingTag>>level:
A WAHeadingTag>>tag
A WAHiddenInputTag
A WAHiddenInputTag>>type
A WAHorizontalRuleTag
A WAHorizontalRuleTag>>isClosed
A WAHorizontalRuleTag>>tag
A WAHtmlCanvas
A WAHtmlCanvas class>>builder
A WAHtmlCanvas>>abbreviated
A WAHtmlCanvas>>abbreviated:
A WAHtmlCanvas>>acronym
A WAHtmlCanvas>>acronym:
A WAHtmlCanvas>>address
A WAHtmlCanvas>>address:
A WAHtmlCanvas>>anchor
A WAHtmlCanvas>>anchor:
A WAHtmlCanvas>>basicForm
A WAHtmlCanvas>>basicForm:
A WAHtmlCanvas>>big
A WAHtmlCanvas>>big:
A WAHtmlCanvas>>blockquote
A WAHtmlCanvas>>blockquote:
A WAHtmlCanvas>>break
A WAHtmlCanvas>>button
A WAHtmlCanvas>>button:
A WAHtmlCanvas>>cancelButton
A WAHtmlCanvas>>cancelButton:
A WAHtmlCanvas>>checkbox
A WAHtmlCanvas>>citation
A WAHtmlCanvas>>citation:
A WAHtmlCanvas>>code
A WAHtmlCanvas>>code:
A WAHtmlCanvas>>dateInput
A WAHtmlCanvas>>definition
A WAHtmlCanvas>>definition:
A WAHtmlCanvas>>definitionData
A WAHtmlCanvas>>definitionData:
A WAHtmlCanvas>>definitionList
A WAHtmlCanvas>>definitionList:
A WAHtmlCanvas>>definitionTerm
A WAHtmlCanvas>>definitionTerm:
A WAHtmlCanvas>>deleted
A WAHtmlCanvas>>deleted:
A WAHtmlCanvas>>div
A WAHtmlCanvas>>div:
A WAHtmlCanvas>>emphasis
A WAHtmlCanvas>>emphasis:
A WAHtmlCanvas>>encodeCharacter:
A WAHtmlCanvas>>fieldSet
A WAHtmlCanvas>>fieldSet:
A WAHtmlCanvas>>fileUpload
A WAHtmlCanvas>>form
A WAHtmlCanvas>>form:
A WAHtmlCanvas>>heading
A WAHtmlCanvas>>heading:
A WAHtmlCanvas>>heading:level:
A WAHtmlCanvas>>hiddenInput
A WAHtmlCanvas>>horizontalRule
A WAHtmlCanvas>>html:
A WAHtmlCanvas>>iframe
A WAHtmlCanvas>>image
A WAHtmlCanvas>>image:
A WAHtmlCanvas>>imageButton
A WAHtmlCanvas>>imageButton:
A WAHtmlCanvas>>inserted
A WAHtmlCanvas>>inserted:
A WAHtmlCanvas>>keyboard
A WAHtmlCanvas>>keyboard:
A WAHtmlCanvas>>keyboardInput
A WAHtmlCanvas>>keyboardInput:
A WAHtmlCanvas>>label
A WAHtmlCanvas>>label:
A WAHtmlCanvas>>legend
A WAHtmlCanvas>>legend:
A WAHtmlCanvas>>listItem
A WAHtmlCanvas>>listItem:
A WAHtmlCanvas>>map
A WAHtmlCanvas>>map:
A WAHtmlCanvas>>multiSelect
A WAHtmlCanvas>>multiSelect:
A WAHtmlCanvas>>nav
A WAHtmlCanvas>>object
A WAHtmlCanvas>>object:
A WAHtmlCanvas>>option
A WAHtmlCanvas>>option:
A WAHtmlCanvas>>optionGroup
A WAHtmlCanvas>>optionGroup:
A WAHtmlCanvas>>orderedList
A WAHtmlCanvas>>orderedList:
A WAHtmlCanvas>>painter
A WAHtmlCanvas>>paragraph
A WAHtmlCanvas>>paragraph:
A WAHtmlCanvas>>parameter
A WAHtmlCanvas>>parameter:
A WAHtmlCanvas>>passwordInput
A WAHtmlCanvas>>passwordInput:
A WAHtmlCanvas>>popupAnchor
A WAHtmlCanvas>>popupAnchor:
A WAHtmlCanvas>>preformatted
A WAHtmlCanvas>>preformatted:
A WAHtmlCanvas>>quote
A WAHtmlCanvas>>quote:
A WAHtmlCanvas>>radioButton
A WAHtmlCanvas>>radioButton:
A WAHtmlCanvas>>radioGroup
A WAHtmlCanvas>>radioGroup:
A WAHtmlCanvas>>sample
A WAHtmlCanvas>>sample:
A WAHtmlCanvas>>sampleOutput
A WAHtmlCanvas>>sampleOutput:
A WAHtmlCanvas>>script
A WAHtmlCanvas>>script:
A WAHtmlCanvas>>select
A WAHtmlCanvas>>select:
A WAHtmlCanvas>>small
A WAHtmlCanvas>>small:
A WAHtmlCanvas>>spaceEntity
A WAHtmlCanvas>>span
A WAHtmlCanvas>>span:
A WAHtmlCanvas>>strong
A WAHtmlCanvas>>strong:
A WAHtmlCanvas>>submitButton
A WAHtmlCanvas>>submitButton:
A WAHtmlCanvas>>subscript
A WAHtmlCanvas>>subscript:
A WAHtmlCanvas>>superscript
A WAHtmlCanvas>>superscript:
A WAHtmlCanvas>>table
A WAHtmlCanvas>>table:
A WAHtmlCanvas>>tableBody
A WAHtmlCanvas>>tableBody:
A WAHtmlCanvas>>tableCaption
A WAHtmlCanvas>>tableCaption:
A WAHtmlCanvas>>tableColumn
A WAHtmlCanvas>>tableColumn:
A WAHtmlCanvas>>tableColumnGroup
A WAHtmlCanvas>>tableColumnGroup:
A WAHtmlCanvas>>tableData
A WAHtmlCanvas>>tableData:
A WAHtmlCanvas>>tableFoot
A WAHtmlCanvas>>tableFoot:
A WAHtmlCanvas>>tableHead
A WAHtmlCanvas>>tableHead:
A WAHtmlCanvas>>tableHeading
A WAHtmlCanvas>>tableHeading:
A WAHtmlCanvas>>tableRow
A WAHtmlCanvas>>tableRow:
A WAHtmlCanvas>>teletype
A WAHtmlCanvas>>teletype:
A WAHtmlCanvas>>textArea
A WAHtmlCanvas>>textArea:
A WAHtmlCanvas>>textInput
A WAHtmlCanvas>>textInput:
A WAHtmlCanvas>>timeInput
A WAHtmlCanvas>>unorderedList
A WAHtmlCanvas>>unorderedList:
A WAHtmlCanvas>>variable
A WAHtmlCanvas>>variable:
A WAHtmlCanvas>>withLineBreaksAndUrls:
A WAHtmlCanvas>>withUrls:
A WAIframeTag
A WAIframeTag>>callback:
A WAIframeTag>>contents:
A WAIframeTag>>document:
A WAIframeTag>>document:mimeType:
A WAIframeTag>>document:mimeType:fileName:
A WAIframeTag>>height:
A WAIframeTag>>name:
A WAIframeTag>>performRendering:
A WAIframeTag>>rootBlock
A WAIframeTag>>rootBlock:
A WAIframeTag>>tag
A WAIframeTag>>url
A WAIframeTag>>url:
A WAIframeTag>>width:
A WAIframeTag>>with:
A WAImageButtonTag
A WAImageButtonTag>>callback:
A WAImageButtonTag>>document:
A WAImageButtonTag>>document:mimeType:
A WAImageButtonTag>>document:mimeType:fileName:
A WAImageButtonTag>>extent:
A WAImageButtonTag>>height:
A WAImageButtonTag>>resourceUrl:
A WAImageButtonTag>>type
A WAImageButtonTag>>url:
A WAImageButtonTag>>width:
A WAImageMapTag
A WAImageMapTag>>callback:
A WAImageTag
A WAImageTag>>altText:
A WAImageTag>>document:
A WAImageTag>>document:mimeType:
A WAImageTag>>document:mimeType:fileName:
A WAImageTag>>height:
A WAImageTag>>initialize
A WAImageTag>>isClosed
A WAImageTag>>resourceUrl:
A WAImageTag>>setParent:canvas:
A WAImageTag>>src:
A WAImageTag>>tag
A WAImageTag>>url:
A WAImageTag>>width:
A WALabelTag
A WALabelTag>>for:
A WALabelTag>>tag
A WAListTag
A WAListTag>>callback:
A WAListTag>>hasCallback
A WAListTag>>performCallback:
A WAListTag>>renderListItem:labelled:
A WAMultiSelectTag
A WAMultiSelectTag>>callbackClass
A WAMultiSelectTag>>closeTag
A WAMultiSelectTag>>isSelected:
A WAMultiSelectTag>>openTag
A WAMultiSelectTag>>storeCallback:
A WAMultiSelectTag>>triggerCallback
A WANavTag
A WANavTag>>clear
A WANavTag>>tag
A WAObjectTag
A WAObjectTag>>archive:
A WAObjectTag>>classId:
A WAObjectTag>>codebase:
A WAObjectTag>>codetype:
A WAObjectTag>>declare:
A WAObjectTag>>height:
A WAObjectTag>>standby:
A WAObjectTag>>tag
A WAObjectTag>>type:
A WAObjectTag>>url:
A WAObjectTag>>width:
A WAOptionGroupTag
A WAOptionGroupTag>>initialize
A WAOptionGroupTag>>label:
A WAOptionGroupTag>>tag
A WAOptionTag
A WAOptionTag>>callback:
A WAOptionTag>>label:
A WAOptionTag>>selected:
A WAOptionTag>>tag
A WAOptionTag>>value:
A WAOptionTag>>value:with:
A WAOrderedListTag
A WAOrderedListTag>>tag
A WAParameterTag
A WAParameterTag>>name:
A WAParameterTag>>tag
A WAParameterTag>>type:
A WAParameterTag>>value:
A WAPasswordInputTag
A WAPasswordInputTag>>type
A WAPopupAnchorTag
A WAPopupAnchorTag>>dependent:
A WAPopupAnchorTag>>extent:
A WAPopupAnchorTag>>featureString
A WAPopupAnchorTag>>height:
A WAPopupAnchorTag>>initialize
A WAPopupAnchorTag>>left:
A WAPopupAnchorTag>>location:
A WAPopupAnchorTag>>menubar:
A WAPopupAnchorTag>>name
A WAPopupAnchorTag>>name:
A WAPopupAnchorTag>>position:
A WAPopupAnchorTag>>resizable:
A WAPopupAnchorTag>>scrollbars:
A WAPopupAnchorTag>>status:
A WAPopupAnchorTag>>toolbar:
A WAPopupAnchorTag>>top:
A WAPopupAnchorTag>>width:
A WAPopupAnchorTag>>with:
A WARadioButtonTag
A WARadioButtonTag>>beChecked
A WARadioButtonTag>>beUnchecked
A WARadioButtonTag>>callback:
A WARadioButtonTag>>checked:
A WARadioButtonTag>>group
A WARadioButtonTag>>group:
A WARadioButtonTag>>selected:
A WARadioButtonTag>>type
A WARadioButtonTag>>value:
A WARadioGroup
A WARadioGroup class>>canvas:
A WARadioGroup>>callback:
A WARadioGroup>>callbackValue:
A WARadioGroup>>hasCallback
A WARadioGroup>>hasSelection
A WARadioGroup>>initializeWithCanvas:
A WARadioGroup>>isSelected:
A WARadioGroup>>key
A WARadioGroup>>radioButton
A WARadioGroup>>selected:
A WARadioGroup>>valuesAt:put:
A WARadioGroup>>with:
A WARenderCanvas
A WARenderCanvas class>>initialize
A WARenderCanvas class>>unload
A WARequestContext>>closeThisPopup
A WARequestContext>>closeThisPopupAndReloadOpener
A WAScriptTag
A WAScriptTag>>after
A WAScriptTag>>before
A WAScriptTag>>defer
A WAScriptTag>>resourceUrl:
A WAScriptTag>>tag
A WAScriptTag>>url:
A WAScriptTag>>with:
A WASelectTag
A WASelectTag>>beOptional
A WASelectTag>>beSubmitOnChange
A WASelectTag>>before
A WASelectTag>>callback:
A WASelectTag>>callbackClass
A WASelectTag>>dispatchCallback
A WASelectTag>>enabled:
A WASelectTag>>hasCallback
A WASelectTag>>initialize
A WASelectTag>>isEnabled:
A WASelectTag>>isOptional
A WASelectTag>>name:
A WASelectTag>>nextKey
A WASelectTag>>optionalLabel:
A WASelectTag>>renderListItem:labelled:
A WASelectTag>>renderOptional
A WASelectTag>>size:
A WASelectTag>>tag
A WASelectTag>>titleFor:
A WASelectTag>>titles:
A WASelectTag>>valueFor:
A WASelectTag>>valuesAt:put:
A WASubmitButtonTag
A WASubmitButtonTag>>callback:
A WASubmitButtonTag>>on:of:
A WASubmitButtonTag>>type
A WASubmitButtonTag>>with:
A WATableCellTag
A WATableCellTag>>align:
A WATableCellTag>>character:
A WATableCellTag>>characterOffset:
A WATableCellTag>>verticalAlign:
A WATableColumnGroupTag
A WATableColumnGroupTag>>span:
A WATableColumnGroupTag>>tag
A WATableColumnGroupTag>>width:
A WATableColumnTag
A WATableColumnTag>>isClosed
A WATableColumnTag>>tag
A WATableDataTag
A WATableDataTag>>abbreviation:
A WATableDataTag>>axis:
A WATableDataTag>>colSpan:
A WATableDataTag>>headers:
A WATableDataTag>>rowSpan:
A WATableDataTag>>scope:
A WATableDataTag>>tag
A WATableHeadingTag
A WATableHeadingTag>>tag
A WATableTag
A WATableTag>>align:
A WATableTag>>border:
A WATableTag>>cellpadding:
A WATableTag>>cellspacing:
A WATableTag>>frame:
A WATableTag>>rules:
A WATableTag>>summary:
A WATableTag>>tag
A WATagBrush
A WATagBrush class>>tag
A WATagBrush>>accessKey:
A WATagBrush>>addShortcut:
A WATagBrush>>after
A WATagBrush>>attributeAt:
A WATagBrush>>attributeAt:ifAbsent:
A WATagBrush>>attributeAt:ifAbsentPut:
A WATagBrush>>attributeAt:ifPresent:
A WATagBrush>>attributeAt:put:
A WATagBrush>>attributes
A WATagBrush>>attributes:
A WATagBrush>>before
A WATagBrush>>class:
A WATagBrush>>class:if:
A WATagBrush>>closeTag
A WATagBrush>>confirm:
A WATagBrush>>direction:
A WATagBrush>>disableEnter
A WATagBrush>>disabled
A WATagBrush>>disabled:
A WATagBrush>>document
A WATagBrush>>ensureId
A WATagBrush>>id
A WATagBrush>>id:
A WATagBrush>>isClosed
A WATagBrush>>isDisabled
A WATagBrush>>language:
A WATagBrush>>onAbort:
A WATagBrush>>onBlur:
A WATagBrush>>onChange:
A WATagBrush>>onClick:
A WATagBrush>>onDoubleClick:
A WATagBrush>>onEnter:
A WATagBrush>>onError:
A WATagBrush>>onFocus:
A WATagBrush>>onKeyDown:
A WATagBrush>>onKeyPress:
A WATagBrush>>onKeyUp:
A WATagBrush>>onLoad:
A WATagBrush>>onMouseDown:
A WATagBrush>>onMouseMove:
A WATagBrush>>onMouseOut:
A WATagBrush>>onMouseOver:
A WATagBrush>>onMouseUp:
A WATagBrush>>onReset:
A WATagBrush>>onResize:
A WATagBrush>>onScroll:
A WATagBrush>>onSelect:
A WATagBrush>>onSubmit:
A WATagBrush>>onUnload:
A WATagBrush>>openTag
A WATagBrush>>storeCallback:
A WATagBrush>>style:
A WATagBrush>>tabIndex:
A WATagBrush>>tag
A WATagBrush>>title:
A WATagBrush>>with:
A WATagBrush>>withLineBreaks:
A WATagCanvas
A WATagCanvas>>break
A WATagCanvas>>space
A WATagCanvas>>space:
A WATagCanvas>>spaceEntity
A WATagCanvas>>tag:
A WATagCanvas>>tag:with:
A WATagCanvas>>withLineBreaks:
A WATextAreaTag
A WATextAreaTag>>columns:
A WATextAreaTag>>initialize
A WATextAreaTag>>isClosed
A WATextAreaTag>>rows:
A WATextAreaTag>>tag
A WATextAreaTag>>value
A WATextAreaTag>>value:
A WATextAreaTag>>with:
A WATextInputTag
A WATextInputTag>>maxLength:
A WATextInputTag>>type
A WATextInputTag>>with:
A WATimeInput
A WATimeInput>>addCallback
A WATimeInput>>addHoursCallbackToBrush:
A WATimeInput>>addMinutesCallbackToBrush:
A WATimeInput>>addSecondsCallbackToBrush:
A WATimeInput>>hours
A WATimeInput>>hours:
A WATimeInput>>initialize
A WATimeInput>>minutes
A WATimeInput>>minutes:
A WATimeInput>>renderHours
A WATimeInput>>renderMinutes
A WATimeInput>>renderSeconds
A WATimeInput>>seconds
A WATimeInput>>seconds:
A WATimeInput>>setValueWithNewTime
A WATimeInput>>with:
A WATimeInput>>withSeconds
A WATimeInput>>withoutSeconds
A WAUnorderedListTag
A WAUnorderedListTag>>tag
A WAXmlCanvas
A WAXmlCanvas>>break
A WAXmlCanvas>>cdata:
A WAXmlCanvas>>spaceEntity

by Vaidotas Didzbalis ( at November 14, 2016 06:22 PM


D WADivTag
D WADivTag>>clear
D WADivTag>>tag
M WAHtmlCanvas>>form
A WAHtmlCanvas>>nav
A WANavTag
A WANavTag>>clear
A WANavTag>>tag

by Vaidotas Didzbalis ( at November 14, 2016 06:15 PM

November 13, 2016


Fix for 64bits Win32OSProcessPlugin.

handleArrayOopPtr is a pointer to a Smalltalk array, so the elements are OOP (sqInt), not unsigned int.

Each element is ByteObject with correct size to store a HANDLE (sizeof(void *)), but at this level we don't care, that's the business of handleFrom:.

by nicolas cellier ( at November 13, 2016 10:00 PM


Fix passing 64bits args thru LLP64 FFI.

by Nicolas Cellier ( at November 13, 2016 03:45 PM


Fix prototype of various SurfaceFn again to match those of platforms/Corss/plugins/SurfacePlugin/SurfacePlugin.h

These should be matching the prototypes:

by Nicolas Cellier ( at November 13, 2016 12:54 PM


Fix inlining problem of shortPrintContext: - a side effect was eliminated on stack flavour.

Fix prototype of unlockSurfaceFn after recent platforms source file revision.
Also, the surfceID returned by primitiveCreateManualSurface is an int, so fits in signed32BitIntegerFor:.

Avoid passing a sqInt to Serial and Midi external functions when they expect a pointer.

Explicit a few conversions 64->32 bits to avoid compiler warnings in LargeIntegers.

by Nicolas Cellier ( at November 13, 2016 09:27 AM

November 11, 2016


Give ReferenceStream the ability to serialize objects whose behaviors were extended via #primitiveChangeClassTo:.

by Chris Muller ( at November 11, 2016 08:55 PM

November 09, 2016


Fix two forgotten C Compiler warnings about taking abs value of an unsigned integer.

Of course, we want to take absolute value of signed difference.

by Nicolas Cellier ( at November 09, 2016 10:36 PM


- Made type-testing methods of SSStorage consistently-named.
- #recover: improvements; #canonicalizeReferencesFromModelFor:using: can Error if the mcz is bad. Fix bug for when using magmaThenFilesystem.
- Fix a *major* performance bug for SSFileSystem saving the model due to a bug of not setting the #goDeep ReadStrategy, and therefore requiring piecemeal reads of the whole model just to save it.
- Be restrictive about unintended configurations for now.
- Use a proper ReadStrategy for each configuration case.
- Fix dependency on Ma packages.
- 'logGuard' is a Semaphore, execution machinery, so make it transient.
- Fix #getDiffyVersionData:in: to possibly return nil.

by Chris Muller ( at November 09, 2016 07:33 PM

November 08, 2016


VMMaker 4.15.9

Various refactorings for stack/context interpreters.

VMMaker tool allow selection of context or stack interpreter (stack is not yet functional, requires struct code generation).

Add some FilePlugin updates from oscog, excluding those with platforms code dependencies (primitiveDirectoryEntry, primitiveDirectoryDelimitor).

Retire some old primitives in Interpreter class>>initializePrimitiveTable to align with oscog.

by David T. Lewis ( at November 08, 2016 10:33 PM


Like already the case for the #positive32BitIntegerFor: and #signed32BitIntegerFor: , #positive32BitValueOf: and #signed32BitValueOf: can be simplified with separate 32/64 bits branches.

Indeed, we know that any 32bits signed/unsigned int will fit into a SmallInteger when hasSixtyFourBitImmediates,.
No need to perform any superfluous testing...

The previous implementation produces a lot of dead code in 64bits VM and prevents inlining unecessarily.

by Nicolas Cellier ( at November 08, 2016 09:07 PM


Fix generation of signed32BitIntegerFor: for 64 bits VM.

signed32BitIntegerFor: must work for any 32bit int, but current version will overflow if this int is large, for example -16r80000000.

Indeed, not only constants must be extended to sqInt, but any expression whose type is shorter.

Also, use unsigned usqInt, rather than signed sqInt, because it's well defined behavior (sign extension will occur during the conversion).

by Nicolas Cellier ( at November 08, 2016 12:43 AM

November 07, 2016


- For Monticello class and method edition history, adopt the nomenclature of "editions" rather than "history", since it may be used to look at alternative editions in any repository, not just the trunk.
- Sort nil class categories to the end rather than blow up the IDE (MCSnapshotBrowser).

by Chris Muller ( at November 07, 2016 10:31 PM


Minor correction to VMMaker.oscog-nice.1977 to note that Sista counters are always 32-bits, having two 16-bit halves for the reached and taken counts.

by Eliot Miranda ( at November 07, 2016 04:35 PM


Force change in post-script so it will execute.

by Chris Muller ( at November 07, 2016 04:33 PM

November 06, 2016


No changes in this update

Name: Kernel-nice.1047
Author: nice
Time: 20 October 2016, 10:07:24.06516 pm
UUID: a8f40d9d-7e18-4ae4-99ce-a3144357602d
Ancestors: Kernel-tfel.1046, Kernel-nice.1041

Merge nice.1041 changes for 16/64 bits integer array

By now all changes are superseded by Eliot's
HalfWord -> DoubleByte
isHalfWords -> isShorts
isDoubleWords -> isLongs

by Dave Lewis ( at November 06, 2016 09:41 PM


Name: Kernel-tfel.1046
Author: tfel
Time: 19 October 2016, 5:34:18.991659 pm
UUID: 12ebf345-b919-2845-8147-56a8b2f4cae4
Ancestors: Kernel-eem.1045

Improve performance of large integer fallback code for multiplication and division with small integers, by avoiding recalculating SmallInteger>>digitLength a lot of times. (This yields a 3x speedup in some integer heavy shootout benchmarks like pidigits for RSqueak, where we don't have a LargeIntegers plugin)

by Dave Lewis ( at November 06, 2016 09:38 PM


X64 Win64 FFI requires setsp/getsp

by Nicolas Cellier ( at November 06, 2016 09:26 PM


Implement some tests for the median of medians.

by nicolas cellier ( at November 06, 2016 07:14 PM


Implement the median of medians algorithm for Collection.

Also compute the nth highest: or nth smallest: number in that collection.

Note that this package may override Collection>>median if it exists.

Note that this median agorithm will answer the midpoint between two central numbers when collection size is even unlike some old Squeak versions that used to answer the element just below.

For example:

((1 to: 100) asArray shuffled median) -> 101/2.
((1 to: 100) asArray shuffled highest: 3) -> 98.
((1 to: 100) asArray shuffled smallest: 4) -> 4.

by nicolas cellier ( at November 06, 2016 07:14 PM

November 04, 2016


empty log message


A #(#'SBE-Quinto')
A SBECell>>initialize
A SBECell>>mouseAction:
A SBECell>>mouseUp:
A SBEGame>>cellsPerSide
A SBEGame>>initialize
A SBEGame>>newCellAt:at:
A SBEGame>>toggleNeighboursOfCellAt:at:

by AlexanderZ ( at November 04, 2016 01:06 PM


empty log message

by AlexanderZ ( at November 04, 2016 01:04 PM

November 03, 2016


GameObject Oberklasse

by Emanuel Metzenthin ( at November 03, 2016 11:12 AM


Jo diggis krasse modellierung und so

by Annika Baldi ( at November 03, 2016 11:03 AM

November 02, 2016


Adapted to Squeak 4.4

November 02, 2016 08:42 AM

November 01, 2016


Percolation is done

by Vladimir Lutsenko ( at November 01, 2016 06:37 AM

October 31, 2016


added base percolation class

by Vladimir Lutsenko ( at October 31, 2016 07:06 PM


First commit.

by Bracken Spencer ( at October 31, 2016 06:44 PM

October 29, 2016



by Vladimir Lutsenko ( at October 29, 2016 08:06 PM

October 27, 2016


add PBEEncryptor

by Robert Withers ( at October 27, 2016 08:07 PM


initial commit

by Robert Withers ( at October 27, 2016 07:39 PM


initial commit

by Robert Withers ( at October 27, 2016 07:39 PM


initial commit

by Robert Withers ( at October 27, 2016 07:39 PM


added dataEncoder selection, serverSpec, tracing.

See the Java/Squeak code-base at

My vm started crashing during the performance test and the AESede rate dropped from 118 Mbps to 3 Mbps. I have no idea what's going on and I don't see the cryptoPlugins on this vm either, Will try to build cog.spur since months.

mumkin netu 'araf?

by Robert Withers ( at October 27, 2016 07:39 PM


cleaned up PBEStorage

by Robert Withers ( at October 27, 2016 05:19 PM


A spaceship flies not around #yolospaceship

by Annika Baldi ( at October 27, 2016 12:34 PM


cleaned up PBEDBLayer and added dataEncoder negotiation to the protocol and cleaned upcryptoProtocols.

by Robert Withers ( at October 27, 2016 12:32 PM



by Emanuel Metzenthin ( at October 27, 2016 11:55 AM


empty log message

October 27, 2016 11:08 AM

October 26, 2016


fixed callbacks

by Esteban Lorenzano ( at October 26, 2016 10:07 AM


make it work on recent Pharo

October 26, 2016 08:30 AM


refactored PBEStorage

by Robert Withers ( at October 26, 2016 04:11 AM


added PBE and allow restricted protocols and added an 'DBL-AESede' protocol using PBE for double encryption. Added CryptoProtocol. changed connection installation.

by Robert Withers ( at October 26, 2016 04:11 AM

October 24, 2016



by Robert Withers ( at October 24, 2016 10:15 AM


fixed PBEStorage

by Robert Withers ( at October 24, 2016 10:14 AM

October 22, 2016


������ �������� � ������ ��������� � ������� ����

by Vladimir Lutsenko ( at October 22, 2016 06:50 PM


empty log message

October 22, 2016 11:34 AM

October 20, 2016


repaired cipher and PBE use

by Robert Withers ( at October 20, 2016 04:01 PM


fixed PBE

by Robert Withers ( at October 20, 2016 04:01 PM


protocol and PBEStorage

by Robert Withers ( at October 20, 2016 01:08 PM


socket address changes

by Robert Withers ( at October 20, 2016 01:07 PM

October 19, 2016


��������� ������ ��������� ��������� ������� � ������ ������ � ���������

by Vladimir Lutsenko ( at October 19, 2016 10:20 AM


Small tweak for the update information in the release.

October 19, 2016 05:49 AM


Last minute fix for selector browser label.

October 19, 2016 05:49 AM


Pass a boolean to startUpFrom: indicating whether the object came from a different endian machine or not.

October 19, 2016 05:49 AM


Fixes regression typo.

October 19, 2016 05:48 AM


Fixes a Morphic button test wrt. global gradients preference.

October 19, 2016 05:48 AM



by Robert Withers ( at October 19, 2016 01:03 AM


updated sample identities and set the nickname to the vatId when unset.

by Robert Withers ( at October 19, 2016 12:48 AM


add to SqueakSource

by Robert Withers ( at October 19, 2016 12:48 AM

October 18, 2016


Implement Gerardo Santana's fix to the UnixOSProcessPlugin for OpenBSD in the right place.

by Eliot Miranda ( at October 18, 2016 10:00 PM


Cryptography is now the shared package between Squeak and Pharo

- RandomGenerator class>>#unpredictableStringsDo: changed details to be squeak/pharo compliant (see comment)
- senders/implementers of #asAsn1Bytes (removed) changed to #asAsn1DerBytes
- senders/implementers of #fromAsn1Bytes: (removed) changed to #fromAsn1DerBytes:
- X509Certificate class>>#fromFile: changed use of #fromBytes: (removed) to #fromAsn1DerBytes:
- X509CertificateDerReader>>#asCertificate changed use of #fromBytes: (removed) to #fromAsn1DerBytes:
- all CryptoX509Test>>#certificateX changed use of #fromBytes: (removed) to #fromAsn1DerBytes:
- moved asn1 module definitions and support accessers for RSA and DSA Keys to Cryptography
- changed DiffieHellman>>sendMessage to use SecureRandom>>#nextBits: to keep bitSize
- added CryptoHashFunctionTest tests for HMAC Specs
- added String>>#padLeftTo:with: for squeak
- fixed padding mode to set and retrieve the IV vector
- added PBEEncryptor and removed inappropriate padding for AES256 encryption
- added PBKDF2WithHmacSHA1 for key stretching from password

by Ron Teitelbaum ( at October 18, 2016 07:28 AM

October 17, 2016


������ �������� � ������ ��������� � ������� ����

by Vladimir Lutsenko ( at October 17, 2016 05:35 AM

October 15, 2016


Skip Kernel-eem.1045 because the V3 compiled method format uses a 4 bit format field (versus 5 bit in Spur), and the 16 bit and 64 bit slot size formats are not readily defined.

See ObjectMemory>>formatOf: method comment for the V3 specification:

0 no fields
1 fixed fields only (all containing pointers)
2 indexable fields only (all containing pointers)
3 both fixed and indexable fields (all containing pointers)
4 both fixed and indexable weak fields (all containing pointers).

5 unused
6 indexable word fields only (no pointers)
7 indexable long (64-bit) fields (only in 64-bit images)

8-11 indexable byte fields only (no pointers) (low 2 bits are low 2 bits of size)
12-15 compiled methods:
# of literal oops specified in method header,
followed by indexable bytes (same interpretation of low 2 bits as above)

Name: Kernel-eem.1045
Author: eem
Time: 12 October 2016, 12:10:33.006651 pm
UUID: d91d38c6-bb5b-4fcd-a28b-1bdbc867a33e
Ancestors: Kernel-nice.1044

Add support for creating DoubleByte (isShorts) and DoubleWord (isLongs) variable classes.

by Dave Lewis ( at October 15, 2016 09:32 PM