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 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


Rebase remaining LLP64 changes on VMMaker.oscog-nice.1982

These changes are not strictly necessary and may have side effects on code generation, so they will eventually be introduced later.


- forbid usage of 'long' and 'unsigned long' in VMMaker since they are ambiguous.
- correctly generateShiftLeft: for plugins too: we can't rely on (vmClass objectMemoryClass wordSize), because a plugin #isForBoth32Or64Bits
- correctly generateShiftRight: by using appropriate unsigned type. Prepare for casting back to original type after shift, but do not apply yet, it uncovers a bug currently...
- correctly generateIntegerObjectOf: without UB, that is with usqInt cast.
- apply same optimization as #positive32BitIntegerFor: to positive32BitValueOf: and signed32BitValueOf: for 64bits
- avoid using loadFloatRegs hack in FFI: there are only 16 different combinations of floating point/integer register in X64 Win64, so explicitely handle them with a switch.
- Fix FFI preamble: X64 may need to getsp/setsp and WIN64 PLATFORM_API_USES_CALLEE_POPS_CONVENTION

by Nicolas Cellier ( at November 06, 2016 08:59 PM


Replace remaining long/unsigned long with sqIntptr_t/usqIntptr_t.
Replace asLong/asUnsignedLong senders with asIntegerPtr/asUnsignedIntegerPtr.
This should be essentially for those int containing a target machine pointer/address.

For some printf cCode (used for debugging), the %ld does not work in LLP64.
We use the standard C way for compatible 32 & 64bits code:
use PRI_format_Type macros as the format (mainly PRIxSQPTR).

This way, VMMaker is now LLP64 friendly.
For other conventions (ILP32 and LP64), this does not change anything since sqIntptr_t is equivalent to long.

by Nicolas Cellier ( at November 06, 2016 08:20 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


reportMinimumUnusedHeadroom with %lld format. That's superfluous in 32 bits, but does not hurt, and it works correctly in LLP64 contrarily to %ld. The alternative of using PRIdSQPTR macro would be overkill here.

Review usage of long/unsigned long type hints that should better be replaced with sqInt/usqInt because the intention is to handle a oop, not a target machine address.

Same with senders of asUnsignedLong, some should be replaced with asUnsignedInteger (that is a cast to usqInt), typically after longAt: because longAt: returns an oop (a sqInt).

Let #'sqIntptr_t' #'usqIntptr_t' types be "isFunctional" to allow inlining in C code generator.

by Nicolas Cellier ( at November 06, 2016 01:28 PM


Fix shifting in ffiCreateIntegralResultOop:ofAtomicType:in: like already applied in primitiveFFIIntegerAt/Put

Properly count the parameters passed by register for X64 Win64: there are only 4 of them, either floating point or integer or any mix, but not 4 floating point and 4 integers.

Fix passing structure by value in X64 Win64: size must be a power of 2, and it's not possible to pass a 16bytes structure into two registers.

by Nicolas Cellier ( at November 06, 2016 08:41 AM

November 04, 2016


Introduce sqIntptr_t and usqIntptr_t in VMMaker (image side) for LLP64 compatibility - but do not yet use them.
These are integers long enough to hold a target machine pointer (BytesPerWord).
These should later replace most usage of #long and #'unsigned long'.
They are already defined in sqMemoryAccess.h.

Add enough machinery for generating and simulating these types, inferring size, converting signedness etc....

Introduce asUnsignedIntegerPtr which will convert to (cast to) a usqIntptr_t.
same for asIntegerPtr -> sqIntptr_t.
They should replace most usage of asUnsignedLong and asLong in the future.
Unless we don't want a machine word, but an oop, in which case we should use asUnsignedInteger (-> usqInt) or asInteger (-> sqInt) (typically to turn a longAt: into an unsignedLongAt: - because longAt: answers a sqInt not a long!)

Restore the size of sqInt/usqInt as BytePerOop.
BytesPerOop matches BytesPerWord for Spur currently, but the CCodeGenerator should be Spur-agnostic if possible.

Move sqInt/usqInt check ahead in simulated sizeof: because most variables are of this type.

by Nicolas Cellier ( at November 04, 2016 09:00 PM


Remove ExternalForm from FFI-Kernel. It is available as part of Etoys (Etoys-Squeakland-Graphics-External) and was used as an FFI example, but has no business in the FFI-Kernel.

by Eliot Miranda ( at November 04, 2016 08:26 PM


The 64-bit accessors in ByteArray should use the underlying accessor in 8-byte mode since this has been in the VMs for a while.

by Eliot Miranda ( at November 04, 2016 08:19 PM


Improve portability to LLP64 by using usqInt rather than unsigned long where it makes sense.
It's not the case of integer containing target machine pointer that should use usqIntptr_t for the eventual future case when image wordSize differs from machine word size (32bits image on 64bits VM).

Currently, on Spur, LLP64 apart, usqInt and 'unsigned long' do match, and longAt: longAtPointer: in fact do return a sqInt (see platforms/cross/vm/sqMemory.h).

So for now:
- a single sista counter should fit into a usqInt.
- an immediate character fits into a usqInt.
- maxOldSpaceSize is not going to exeeed addressable space in the image, so it should allways fit into a usqInt too.

by Nicolas Cellier ( at November 04, 2016 07:47 PM


Fix bounds check for unsigned store in primitiveFFIIntegerAtPut. Must use an unsigned long long comparison.

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


Rebase LLP64 changes on oscog-eem.1976

by Nicolas Cellier ( at November 04, 2016 06:52 PM


add missing nesting to mainCategoryListMenu

#addList: expects a list of tuples

November 04, 2016 06:42 PM


fix: ByteArray>>#asExternalPointer uses fixed 32bits pointer size

by Esteban Lorenzano ( at November 04, 2016 01:59 PM


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


Fix generation of the V3 VM in a principled way; add BytecodeSetHasExtensions rather than presuming from MULTIPLEBYTECODESETS.

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


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


Fix the root cause of the bugs wrngly fixed in VMMaker.oscog-eem.1971 & VMMaker.oscog-eem.1972. Eliminate the extBFirstZero variable and its effects on assembling a signed extB. This restores the Newspeak and no-access-control Cadence Newspeak VMs.

by Eliot Miranda ( at November 02, 2016 10:33 PM


add 'explore model' to a Morph's debug menu

in addition to 'inspect model'

November 02, 2016 03:08 PM


Adapted to Squeak 4.4

November 02, 2016 08:42 AM

November 01, 2016


Eliminate C compiler warning about taking absolute value of positive integer: correctly store the value in a signed integer, then take the absolute value, in #rewriteCPICJumpAt:target: and #findEmptySegNearestInSizeTo:

Fix a typo in #flushICacheFrom:to:.

Use #sqLong type in is32BitSignedImmediate: because it's guaranteed to be 64bits long. #long can be 32bits for LLP64 compilers.

Another 64bits fix for MacMenuBarPlugin.

by Nicolas Cellier ( at November 01, 2016 09:19 PM


Fix bug
ioGetClockLogSizeUsecsIdxMsecsIdx prototype is not 64bits compatible

The problem is in primitiveClockLogAddresses for which type inference for #runInNOut result into an int.
But ioGetClockLogSizeUsecsIdxMsecsIdx expect a pointer on a sqInt, not a pointer on an int as first parameter.
Workaround by explicitely decalring #runInNOut as sqInt.

The fix is in oscogLLP64 branch ( since VMMaker.oscogLLP64-nice.1915, Time: 29 July 2016, 12:36:23.284336 am

by Nicolas Cellier ( at November 01, 2016 07:30 PM


Percolation is done

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

October 31, 2016


Redo fixing extB sign extension in NewsqueakV4 & SistaV1 extPushIntegerBytecode & extUnconditionalJump in interpreter and Cogit using bitShift: 8 instead of << 8. Slang seems to generate the correct code with bitAShift:, but not with <<.

by Eliot Miranda ( at October 31, 2016 09:42 PM


Added ability to demote a repository of a group to the bottom, so that other repositories will be checked first.

by Chris Muller ( at October 31, 2016 08:34 PM


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 30, 2016


Remove obsolete code-generation methods

by Nicolas Cellier ( at October 30, 2016 09:49 PM


Remove obsolete code-generation methods

by Nicolas Cellier ( at October 30, 2016 09:45 PM


exponent is defined in subclasses.
cubeRoot is nthRoot: 3.

by Nicolas Cellier ( at October 30, 2016 09:28 PM


Rewrite the timesTwoPower: gradual underflow test to make it both:
- more thorough
- less obscure (I hope...)

by Nicolas Cellier ( at October 30, 2016 07:48 PM


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 Nicolas Cellier ( at October 30, 2016 04:18 PM


Remove Float>>timesTwoPower: which is unecessary and correspond to an old and incomplete Squeak version.

It has been superseded by Kernel-nice.900.mcz

Then the code has been moved to Float subclasses during Spur transition.

by Nicolas Cellier ( at October 30, 2016 04:03 PM

October 29, 2016



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


Fix extB sign extension in NewsqueakV4 & SistaV1 extPushIntegerBytecode & extUnconditionalJump in interpreter and Cogit.

by Eliot Miranda ( at October 29, 2016 02:28 AM

October 28, 2016


Genuflect to Slang in that last fix.

by Eliot Miranda ( at October 28, 2016 10:57 PM


Fix initialization of Spur's newSpace. The old code was convoluted and wrong.

Reduce the default number of stack pages in Spur to 50 to reflect GC tuning work at Cadence.

Add vmParameter 19 to answer the value of the scavengeThreshold, which is the effective size of eden.

In 1968 the Prague and Paris Spring protests took place.

by Eliot Miranda ( at October 28, 2016 07:26 PM


Make the undeclared dictionary point weakly to its bindings so as to reduce namespace pollution and minimize the impact of yet to be solved undeclared bugs.

This requires the WeakIdentityDictionary class defined in Collections-nice.723

by Nicolas Cellier ( at October 28, 2016 12:14 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


Name: Collections-eem.717
Author: eem
Time: 13 October 2016, 4:14:34.323953 pm
UUID: ff6f9273-5077-47f9-b660-0cdd4b184bb1
Ancestors: Collections-dtl.716

Revise upwards the cross-over in SequenceableCollection>>atAllPut: at which point to move from a simple loop using at:put: to connivance using replaceFrom:to:with:startingAt:. Add a comment that includes the code to actually test this, instead of simply claiming without support.

by Dave Lewis ( at October 15, 2016 01:14 PM