Would it be benficial/possible to have a primtive returning a dictionary of limits compiled into the VM? I am thinking of a case where the VM might be compiled to run in an embedded environment (e.g. robotics). Then these limits would only need changing in one spot. How big would such a list be? cheers -ben
On Wed, Aug 26, 2015 at 4:50 AM, Levente Uzonyi leves@elte.hu wrote:
I guess then we should change a few 255s and 65535s to 32767. I've uploaded Compiler-ul.307, and Kernel-ul.946 to the Inbox with some changes. There may be more methods with the obsolete limit in the image, and my changes may not be correct. Please review them!
Levente
On Tue, 25 Aug 2015, Eliot Miranda wrote:
On Tue, Aug 25, 2015 at 10:40 AM, Levente Uzonyi leves@elte.hu wrote: Hi Eliot,
That was me who updated the method, because if was failing.
CompilerTest #testMaxLiterals verifies a certain literal limit, and checks if adding one more literal will make the compilation fail.
Ah, OK. I just wanted to point out that the limit is 32767, not 65535.
Levente On Tue, 25 Aug 2015, Eliot Miranda wrote: Hi Tobias, Sent from my iPhone On Aug 22, 2015, at 2:55 PM, commits@source.squeak.org
wrote:
Changes to Trunk (http://source.squeak.org/trunk.html)
in the last 24 hours:
http://lists.squeakfoundation.org/pipermail/packages/2015-August/008871.html
Name: Tests-ul.325 Ancestors: Tests-topa.324 Increased maxLiterals in CompilerTest's #testMaxLiterals
and #testMaxLiteralsWithClassReferenceInClosure to make them pass again. In theory Spur supports literals up to 65535, but I think the compiler will have to be changed to be able to use that many.
In the end I made the literal limit 32767, leaving bit 15 for
a flag identifying methods generated by the dynamic optimizer, when we have one.
Why do you think the compiler needs modifying to allow for
more than 255 literals? I think it's a bytecode set issue, not a compiler issue. Both the Newspeak V4 and Sista V1 bytecode sets support 64k literals.
=============================================
http://lists.squeakfoundation.org/pipermail/packages/2015-August/008872.html
Name: Tests-ul.326 Ancestors: Tests-ul.325 PointTest's #testNormal and #testTheta seem to get
decompiled correctly.
=============================================
http://lists.squeakfoundation.org/pipermail/packages/2015-August/008873.html
Name: Collections-ul.644 Ancestors: Collections-ul.643 Extracted and enhanced Bitset from WideCharacterSet. =============================================
http://lists.squeakfoundation.org/pipermail/packages/2015-August/008874.html
Name: CollectionsTests-ul.247 Ancestors: CollectionsTests-ul.246 Added BitSetTest. =============================================
http://lists.squeakfoundation.org/pipermail/packages/2015-August/008875.html
Name: Collections-ul.645 Ancestors: Collections-ul.644 Use the extracted Bitset in WideCharacterSet: - decreased chunk size from 65536 to 256. This should
give a purpose to use a dictionary instread of an array for map, because its size will have a chance to be larger than 64. - byteArrayMap is always initialized, so there's no need to use the method to reference it, nor to check if it's initialized - moved #remove: behavior to #remove:ifAbsent:, just like it's done by most collections. Kept the existing behavior of #remove: to not signal an error when the character is not in the collection. - use #atAllPut: to clear the byteArrayMap in #removeAll, because it should be faster than allocating a new instance - improved #size's performance - migrate instances on-the-fly - migrate any unmigrated instaces during the postscript - removed the unused methods
=============================================
http://lists.squeakfoundation.org/pipermail/packages/2015-August/008876.html
Name: Collections-ul.646 Ancestors: Collections-ul.645 - removed migration code from WideCharacterSet =============================================
http://lists.squeakfoundation.org/pipermail/packages/2015-August/008877.html
Name: Tools-eem.631 Ancestors: Tools-ul.630 Remove the become[Un]Compact messages from MethodFinder
as these are going away.
=============================================
http://lists.squeakfoundation.org/pipermail/packages/2015-August/008878.html
Name: System-eem.758 Ancestors: System-ul.757 Reimplement the post-load enumeration of loaded objects
to use the revised primitive available in the VMMaker.oscog-eem.1441 /3427 VMs that becomes the loaded segment into an Array of the loaded objects. Hence endMarker disappears and allObjectsDo: is trivially implemented as do: sent to the segment.
This change requires users to upgrade their VMs but as
the alternative is crashes in ImageSegment loads this is acceptable. AFAIA this fixes ImageSegments in Spur but they clearly need pounding on.
=============================================
http://lists.squeakfoundation.org/pipermail/packages/2015-August/008879.html
Name: SMBase-eem.134 Ancestors: SMBase-bf.133 Reimplement the post-load enumeration of loaded objects
to use the revised primitive available in the VMMaker.oscog-eem.1441 /3427 VMs that becomes the loaded segment into an Array of the loaded objects. Hence endMarker disappears and allObjectsDo: is trivially implemented as do: sent to the segment.
This change requires users to upgrade their VMs but as
the alternative is crashes in ImageSegment loads this is acceptable. AFAIA this fixes ImageSegments in Spur but they clearly need pounding on.
=============================================
http://lists.squeakfoundation.org/pipermail/packages/2015-August/008880.html
Name: KernelTests-eem.297 Ancestors: KernelTests-ul.296 Remove the compact class index tests from
LargeNegativeInteger as the compact class code is going away.
=============================================
http://lists.squeakfoundation.org/pipermail/packages/2015-August/008881.html
Name: Kernel-eem.944 Ancestors: Kernel-ul.943 Nuke the compact class support in Kernel and the
ClassBuilder. Spur has a regular 64-bit object header format with no special cases.
Fix CompiledMethod>>at:ifAbsent: to work with the
initialPC to endPC range and run the ifAbsent: block for indices outside this range.
Categorize isCompiledMethodClass correctly. =============================================
http://lists.squeakfoundation.org/pipermail/packages/2015-August/008882.html
Name: Collections-ul.647 Ancestors: Collections-ul.646 - in Spur we can speed up Character >> #sameAs: by using
#==
=============================================
http://lists.squeakfoundation.org/pipermail/packages/2015-August/008883.html
Name: Regex-Core-ul.40 Ancestors: Regex-Core-ul.39 RxsPredicate: - added \t \n escapes for tab and lf - unified all single character predicates as
#beCharacter: - postscript reinitializes the dictionary
RxMatchOptimizer: - removed lookarounds, because they were never used,
just collected - all collections get initialized lazily - CharacterSet are used for storing characters - IdentitySets are used where unique objects are stored (e.g. symbols) - use #== and #~~ for character comparison (Spur-specific change)
RxMatcher: - reuse previous markerPositions - use String >> #new:streamContents: where possible - use #== and #~~ for character comparison
(Spur-specific change) - quick returns in #tryMatch
General: - renamed RxmLookahaed to RxmLookahead - in RxmPredicate >> #matchAgainst: use the fact that
aMatcher is providing a ReadStream of characters, so nil means end of stream - reimplemented RxmSubstring
=============================================
http://lists.squeakfoundation.org/pipermail/packages/2015-August/008884.html
Name: Regex-Tests-Core-ul.1 Ancestors: - tests from Pharo =============================================
-- _,,,^..^,,,_ best, Eliot
vm-dev@lists.squeakfoundation.org