Pharo-dev
By thread
pharo-dev@lists.pharo.org
By month
Messages by month
- ----- 2026 -----
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- 4 participants
- 144623 messages
Re: [Pharo-project] fuelized test failures
by Camillo Bruni
On 2012-07-24, at 16:29, Mariano Martinez Peck wrote:
> On Fri, Jul 20, 2012 at 6:09 PM, Camillo Bruni <camillobruni(a)gmail.com>wrote:
>
>> From now on all the test-failures are serialized on the build server.
>>
>> This allows us to quickly find the cause of a failing test:
>> - download the .fuel file for the failing test
>> - materialize the .fuel in the image and debug the code
>> | aContext |
>> aContext := FLMaterializer materializeFromFileNamed:
>> 'PharoDebug.fuel'.
>> Debugger openContext: aContext label: 'This is the new debugger!'
>> contents: nil
>>
>>
>
> does it really work for you?? I am trying to materialize, for example,
> https://ci.lille.inria.fr/pharo/view/Pharo%202.0/job/pharo-2.0-tests/ws/Arc…
>
> and I get:
>
> FLClassNotFound: Materialization error. Class named #HDTestReport not found
>
> That happens because during serialization the graph somehow reached the
> class HDTestReport (probably a sender at some point in the stack). But now,
> when materializing, such class is not present. So...is there in the
> workspace an image with the jenkins stuff?
> Anyway, the idea was to include this directly in Pharo, wasn't it?
I suggest you use the image in the same directory, cause we install
some Hudson tools (which IMO should be included by default). I don't
really like that we have to load stuff for running the test, meaning
that this might affect the outcome of the results...
So for now either take the following image:
https://ci.lille.inria.fr/pharo/view/Pharo%202.0/job/pharo-2.0-tests/Archit…
or manually install the hudson tools:
"Load Hudson Build Tools"
Gofer new
url: 'http://ss3.gemstone.com/ss/CISupport';
package: 'HudsonBuildTools20';
load.
then everything should work I think.
best
cami
July 24, 2012
Re: [Pharo-project] fuelized test failures
by Mariano Martinez Peck
On Fri, Jul 20, 2012 at 6:09 PM, Camillo Bruni <camillobruni(a)gmail.com>wrote:
> From now on all the test-failures are serialized on the build server.
>
> This allows us to quickly find the cause of a failing test:
> - download the .fuel file for the failing test
> - materialize the .fuel in the image and debug the code
> | aContext |
> aContext := FLMaterializer materializeFromFileNamed:
> 'PharoDebug.fuel'.
> Debugger openContext: aContext label: 'This is the new debugger!'
> contents: nil
>
>
does it really work for you?? I am trying to materialize, for example,
https://ci.lille.inria.fr/pharo/view/Pharo%202.0/job/pharo-2.0-tests/ws/Arc…
and I get:
FLClassNotFound: Materialization error. Class named #HDTestReport not found
That happens because during serialization the graph somehow reached the
class HDTestReport (probably a sender at some point in the stack). But now,
when materializing, such class is not present. So...is there in the
workspace an image with the jenkins stuff?
Anyway, the idea was to include this directly in Pharo, wasn't it?
Thanks
> The serialized stack trace is very limited (generally only 2 contexts) but
> they
> are enough to get a decent view on what the variables are
>
--
Mariano
http://marianopeck.wordpress.com
July 24, 2012
[Pharo-project] pharo-2.0-tests » 32,mac - Build # 256 - Failure!
by jenkins-pharo.ci.inria.fr@jenkins-server.lille.inria.fr
July 24, 2012
[Pharo-project] TextMorph: how to change its bounds/extent?
by Gareth Cox
Hi All
The default behaviour of a TextMorph is for it to grow down as you enter
text.
How can I change that behaviour so that the TextMorph grows both up AND
down as I enter text?
Kind Regards
Dusty
July 24, 2012
Re: [Pharo-project] Memory usage
by David T. Lewis
On Tue, Jul 24, 2012 at 09:27:49AM +0200, jannik.laval wrote:
> Hi Dave,
>
> Should I load the SystemTracer available on SqueakSource ? The last version is from 2011, and seems old, no ?
> When I try it, it calls some methods that do not exist in Pharo.
>
> Do you have more information on how to use it ?
Hi Jannik,
The system tracer is explained in the class comment of class SystemTracer.
The comment was written by Dan Ingalls (I think), and gives credit to Ted
Kaehler as the inventor of the original. Class SystemTracer2 has additional
documentation including how to run the trace. SystemTracer2 is a newer
version that you will actually be using, so you can think of SystemTracer
as the original reference implementation, while SystemTracer2 and its
subclasses are variations on the original. SystemTracer64 is the subclass
that implements conversion logic for copying 32-bit objects into the
experimental 64-bit object memory format. This object format is described
in the SystemTracer64 class comment, and more information is available at
http://squeakvm.org/squeak64.
A system tracer will first put your image into a "quiet" mode, then copy
and convert the running object memory to a new image file, and then wake up
and return to normal. This is similar to saving your image and restarting
from a disk file, except that the system tracer will trace your object
memory to a new format rather than saving it unchanged.
To trace your running image to a new 64-bit image file, you would do this:
SystemTracer64 writeImage: 'new64bitImage.image'
The last update I did to SystemTracer (SystemTracing-dtl.23) works with
closure-enabled images, including Pharo at one time. I have a 64-bit
Pharo 1.4 image that I made about a year and a half ago. I don't know
what has changed in Pharo since then, so probably some updates will be
needed, or possibly a Pharo-specific version. I know that others on the
Pharo list have worked on this, so hopefully someone else can give you
some pointers about that.
Dave
July 24, 2012
[Pharo-project] [update 2.0] #20233
by Marcus Denker
20233
-----
Issue 6442: Add temporal MCCacheRepository >> default
http://code.google.com/p/pharo/issues/detail?id=6442
Issue 6439: Add smalltalkhub convenience method for Gofer
http://code.google.com/p/pharo/issues/detail?id=6439
Issue 6438: Failing tests related to ChangeSet
http://code.google.com/p/pharo/issues/detail?id=6438
Issue 6436: Removing SystemChangeNotifier dependencies from some tests
http://code.google.com/p/pharo/issues/detail?id=6436
--
Marcus Denker -- http://marcusdenker.de
July 24, 2012
Re: [Pharo-project] [Metacello] Re: Change in MCCacheRepository that affects Metacello loading
by Mariano Martinez Peck
On Mon, Jul 23, 2012 at 6:24 PM, Dale Henrichs <dhenrich(a)vmware.com> wrote:
> Yeah, if you could hold off on that change for a bit (this is for
> Pharo-2.0 right?)...I might have a different solution for Pharo-2.0...
>
>
Dale, our jenkins jobs were unable to build because we are unable to
bootstrap Metacello. Metacello is so important for us that we prefer to fix
it immediately and give time for you ;)
http://code.google.com/p/**pharo/issues/detail?id=6442<http://code.google.com/p/pharo/issues/detail?id=6442>
So....when you have fixed a released a new version of Metacello, let us
know and we just remove the method.
thanks!
> Dale
>
> ----- Original Message -----
> | From: "Stéphane Ducasse" <stephane.ducasse(a)inria.fr>
> | To: Pharo-project(a)lists.gforge.inria.fr
> | Cc: metacello(a)googlegroups.com
> | Sent: Monday, July 23, 2012 1:41:58 AM
> | Subject: Re: [Pharo-project] Change in MCCacheRepository that affects
> Metacello loading
> |
> | may be we should rollback this changes because it is not mandatory.
> |
> | Stef
> |
> | On Jul 23, 2012, at 10:14 AM, Mariano Martinez Peck wrote:
> |
> | > Hi Dale. http://code.google.com/p/pharo/issues/detail?id=6405
> | > renames MCCacheRepository #default to #uniqueInstance. Therefore,
> | > to be able to bootstrap Metacello we need to change:
> | >
> | > ConfigurationOfMetacello class >> bootstrapPackage: aString from:
> | > aPath
> | > | repository version |
> | > repository := (MCCacheRepository uniqueInstance
> | > includesVersionNamed: aString)
> | > ifTrue: [MCCacheRepository uniqueInstance]
> | > ifFalse: [MCHttpRepository
> | > location: aPath
> | > user: ''
> | > password: ''].
> | > repository
> | > versionReaderForFileNamed: aString , '.mcz'
> | > do: [:reader |
> | > version := reader version.
> | > version load.
> | > version workingCopy repositoryGroup addRepository:
> repository]
> | >
> | > I could commit, but I don't want to break Metacello loading in
> | > other images and I don't know how do you handle these cases.
> | >
> | > Thanks,
> | >
> | >
> | > --
> | > Mariano
> | > http://marianopeck.wordpress.com
> | >
> |
> |
> |
>
--
Mariano
http://marianopeck.wordpress.com
July 24, 2012
Re: [Pharo-project] [squeak-dev] CompiledMethod>>#hash broken on CogVM r2559, Win7, Squeak 4.3
by Mariano Martinez Peck
On Mon, Jul 23, 2012 at 11:07 PM, Eliot Miranda <eliot.miranda(a)gmail.com>wrote:
> On Mon, Jul 23, 2012 at 1:44 PM, Eliot Miranda <eliot.miranda(a)gmail.com>wrote:
>
>>
>>
>> On Mon, Jul 23, 2012 at 1:35 PM, Mariano Martinez Peck <
>> marianopeck(a)gmail.com> wrote:
>>
>>>
>>>
>>> On Mon, Jul 23, 2012 at 10:22 PM, Eliot Miranda <eliot.miranda(a)gmail.com
>>> > wrote:
>>>
>>>>
>>>>
>>>> On Mon, Jul 23, 2012 at 1:02 PM, Mariano Martinez Peck <
>>>> marianopeck(a)gmail.com> wrote:
>>>>
>>>>>
>>>>>
>>>>> On Mon, Jul 23, 2012 at 9:43 PM, Mariano Martinez Peck <
>>>>> marianopeck(a)gmail.com> wrote:
>>>>>
>>>>>>
>>>>>>
>>>>>> On Mon, Jul 23, 2012 at 8:38 PM, Eliot Miranda <
>>>>>> eliot.miranda(a)gmail.com> wrote:
>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Mon, Jul 23, 2012 at 11:34 AM, Mariano Martinez Peck <
>>>>>>> marianopeck(a)gmail.com> wrote:
>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> On Mon, Jul 23, 2012 at 8:08 PM, Eliot Miranda <
>>>>>>>> eliot.miranda(a)gmail.com> wrote:
>>>>>>>>
>>>>>>>>> Hi Marcel,
>>>>>>>>>
>>>>>>>>> that's because the old hash method is broken. The Cog VM
>>>>>>>>> finally adds a correct bounds check that prevents byte access to the
>>>>>>>>> non-byte parts (literals) of a CompiledMethod. Accessing the literals of a
>>>>>>>>> method via byte access gives access to the addresses of objects. This is
>>>>>>>>> broken since the GC is a moving garbage collector and so addresses can
>>>>>>>>> change. Hence a hash derived from such bytes is not stable. See
>>>>>>>>> Kernel-eem.692 which provides the attached hash method.
>>>>>>>>>
>>>>>>>>>
>>>>>>>> Hi Eliot. I remember seeing this discussion in the Pharo mailing
>>>>>>>> list also. So...I guess we should commit that also in Pharo, right?
>>>>>>>>
>>>>>>>
>>>>>>> Yes. Also the bug fixes in Kernel-eem.700 & Kernel-eem.703.
>>>>>>>
>>>>>>>
>>>>>>
>>>>>> Regarding Kernel-eem.700, I don't really understand much the code, so
>>>>>> I will trust you. Now, regarding Kernel-eem.703 it seems it was already
>>>>>> fixed in Pharo. You added the
>>>>>>
>>>>>> CompiledMethod >> postCopy
>>>>>> | penultimateLiteral |
>>>>>> (penultimateLiteral := self penultimateLiteral) isMethodProperties
>>>>>> ifTrue:
>>>>>> [self penultimateLiteral: (penultimateLiteral copy
>>>>>> setMethod: self;
>>>>>> yourself).
>>>>>> self pragmas do:
>>>>>> [:p| p setMethod: self]]
>>>>>>
>>>>>>
>>>>> btw, aren't the those two lines wrong?
>>>>> shouldn't they be:
>>>>>
>>>>> *copy* pragmas do:
>>>>> [:p| p setMethod: *copy*]].
>>>>>
>>>>> ?
>>>>>
>>>>
>>>> No. postCopy is sent to the copy.
>>>>
>>>> Object>>copy
>>>> "Answer another instance just like the receiver. Subclasses typically
>>>> override postCopy; they typically do not override shallowCopy."
>>>>
>>>> ^self shallowCopy postCopy
>>>>
>>>>
>>>
>>> Sorry, I wanted to mean in copyWithTrailerBytes: trailer
>>>
>>>
>>> copyWithTrailerBytes: trailer
>>> "Testing:
>>> (CompiledMethod compiledMethodAt: #copyWithTrailerBytes:)
>>> tempNamesPut: 'copy end '
>>> "
>>> | copy end start penultimateLiteral |
>>> start := self initialPC.
>>> end := self endPC.
>>> copy := trailer createMethod: end - start + 1 class: self class header:
>>> self header.
>>> 1 to: self numLiterals do: [:i | copy literalAt: i put: (self
>>> literalAt: i)].
>>> (penultimateLiteral := self penultimateLiteral) isMethodProperties
>>> ifTrue: [
>>> copy penultimateLiteral: (penultimateLiteral copy
>>> setMethod: copy;
>>> yourself).
>>> * self pragmas do:*
>>> * [:p| p setMethod: self]*
>>> ].
>>> start to: end do: [:i | copy at: i put: (self at: i)].
>>> ^copy
>>>
>>
>> It looks ot me like redunant code that worked around an earlier bug.
>> I've removed it. I've written some tests which I'll commit soon.
>>
>
> see KernelTests-eem.228 & Kernel-eem.706
>
>
Thanks Eliot. I took a look. Regarding the tests, 2 things. First, I have
added 2 additional asserts (you can add them if you want):
self assert: copy penultimateLiteral method == copy.
self assert: method penultimateLiteral method == method.
Then, I think there is a problem with the #equivalentTo:
self deny: (method equivalentTo: copy). "equivalentTo: decompiles; since
temps differ, equivalentTo: should be false."
Actually, if you debug that, the #equivalentTo: answers false because of
the last statement (self decompile = aCompiledMethod decompile) but it is
NOT because the decompiled is different, but because the MethodNode does
not implements #= and hence relies on #== which answers false. In fact, if
you change the #equivalentTo: to:
(self decompileString = aCompiledMethod decompileString) it answers true.
This is because, I don't know why, both decompiled look equal to mee (the
temps seems not taken into account).
For Pharo, I just avoid the assert for #equivalentTo: since you already
assert for #= and because we do not have #equivalentTo: in the image.
More details here: http://code.google.com/p/pharo/issues/detail?id=6441
Thanks!
>
>
>
>>
>>>
>>>
>>>>
>>>>
>>>>>
>>>>>
>>>>>
>>>>>> But we already have:
>>>>>>
>>>>>> CompiledMethod >> postCopy
>>>>>>
>>>>>> 1 to: self literals size do: [:index |
>>>>>> | literal |
>>>>>> literal := self literalAt: index.
>>>>>>
>>>>>> literal class == AdditionalMethodState ifTrue: [
>>>>>> literal := literal copy.
>>>>>> self literalAt: index put: literal.
>>>>>> self fixAdditionalMethodStateMethodReference: literal]].
>>>>>> So....I don't really understand why we iterate over all literals if
>>>>>> we just fix the pragmas...so I think your part of the "(penultimateLiteral
>>>>>> := self penultimateLiteral) isMethodProperties ifTrue:" is better.
>>>>>>
>>>>>> Now, you only do #setMethod for the pragma, but our code:
>>>>>>
>>>>>> fixAdditionalMethodStateMethodReference: anAdditionalMethodState
>>>>>>
>>>>>> anAdditionalMethodState method: self.
>>>>>> anAdditionalMethodState pragmas do: [:each | each instVarAt: 1 put:
>>>>>> self].
>>>>>>
>>>>>>
>>>>>> And again, I don't know why we se instVarAt: 1 put: rather than
>>>>>> #setMethod:
>>>>>>
>>>>>> So, all in all, I think your code looks better. Am I missing
>>>>>> something?
>>>>>>
>>>>>> Thanks!
>>>>>>
>>>>>>
>>>>>>
>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Sun, Jul 22, 2012 at 7:10 AM, Marcel Taeumel <
>>>>>>>>> marcel.taeumel(a)student.hpi.uni-potsdam.de> wrote:
>>>>>>>>>
>>>>>>>>>> Hi!
>>>>>>>>>>
>>>>>>>>>> It is not possible to compute the hash value of a CompiledMethod
>>>>>>>>>> instance
>>>>>>>>>> with the CogVM r2559 on a Windows 7 machine using a Squeak 4.3
>>>>>>>>>> image.
>>>>>>>>>>
>>>>>>>>>> Should it be possible despite of all enhancements in the Cog VM?
>>>>>>>>>>
>>>>>>>>>> Best,
>>>>>>>>>> Marcel
>>>>>>>>>>
>>>>>>>>>> 22 July 2012 4:06:54.988 pm
>>>>>>>>>>
>>>>>>>>>> VM: Win32 - Smalltalk
>>>>>>>>>> Image: Squeak4.3 [latest update: #11860]
>>>>>>>>>>
>>>>>>>>>> SecurityManager state:
>>>>>>>>>> Restricted: false
>>>>>>>>>> FileAccess: true
>>>>>>>>>> SocketAccess: true
>>>>>>>>>> Working Dir C:\Tools\vivide_dev
>>>>>>>>>> Trusted Dir C:\Tools\vivide_dev\Marcel
>>>>>>>>>> Untrusted Dir C:\Users\Marcel\Documents\My Squeak
>>>>>>>>>>
>>>>>>>>>> CompiledMethod(Object)>>error:
>>>>>>>>>> Receiver: (Morph>>#drawOn: "a CompiledMethod(337)")
>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>> aString: 'subscript is out of bounds: 1'
>>>>>>>>>> Receiver's instance variables:
>>>>>>>>>> (Morph>>#drawOn: "a CompiledMethod(337)")
>>>>>>>>>>
>>>>>>>>>> CompiledMethod(Object)>>errorSubscriptBounds:
>>>>>>>>>> Receiver: (Morph>>#drawOn: "a CompiledMethod(337)")
>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>> index: 1
>>>>>>>>>> Receiver's instance variables:
>>>>>>>>>> (Morph>>#drawOn: "a CompiledMethod(337)")
>>>>>>>>>>
>>>>>>>>>> CompiledMethod(Object)>>basicAt:
>>>>>>>>>> Receiver: (Morph>>#drawOn: "a CompiledMethod(337)")
>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>> index: 1
>>>>>>>>>> Receiver's instance variables:
>>>>>>>>>> (Morph>>#drawOn: "a CompiledMethod(337)")
>>>>>>>>>>
>>>>>>>>>> CompiledMethod class(ByteArray class)>>hashBytes:startingWith:
>>>>>>>>>> Receiver: CompiledMethod
>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>> aByteArray: (Morph>>#drawOn: "a
>>>>>>>>>> CompiledMethod(337)")
>>>>>>>>>> speciesHash: 244619647
>>>>>>>>>> byteArraySize: 43
>>>>>>>>>> hash: 244619647
>>>>>>>>>> low: nil
>>>>>>>>>> pos: 1
>>>>>>>>>> Receiver's instance variables:
>>>>>>>>>> superclass: ByteArray
>>>>>>>>>> methodDict: a MethodDictionary(size 190)
>>>>>>>>>> format: 3586
>>>>>>>>>> instanceVariables: nil
>>>>>>>>>> organization: ('accessing' clearFlag
>>>>>>>>>> defaultSelector dragLabel endPC flag
>>>>>>>>>> flush...etc...
>>>>>>>>>> subclasses: nil
>>>>>>>>>> name: #CompiledMethod
>>>>>>>>>> classPool: a Dictionary(#LargeFrame->56
>>>>>>>>>> #SmallFrame->16 )
>>>>>>>>>> sharedPools: nil
>>>>>>>>>> environment: Smalltalk globals "a
>>>>>>>>>> SystemDictionary with lots of globals"
>>>>>>>>>> category: #'Kernel-Methods'
>>>>>>>>>>
>>>>>>>>>> CompiledMethod(ByteArray)>>hash
>>>>>>>>>> Receiver: (Morph>>#drawOn: "a CompiledMethod(337)")
>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>
>>>>>>>>>> Receiver's instance variables:
>>>>>>>>>> (Morph>>#drawOn: "a CompiledMethod(337)")
>>>>>>>>>>
>>>>>>>>>> UndefinedObject>>DoIt
>>>>>>>>>> Receiver: nil
>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>
>>>>>>>>>> Receiver's instance variables:
>>>>>>>>>> nil
>>>>>>>>>>
>>>>>>>>>> Compiler>>evaluate:in:to:notifying:ifFail:logged:
>>>>>>>>>> Receiver: a Compiler
>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>> textOrStream: a ReadWriteStream
>>>>>>>>>> '(Morph>>#drawOn:) hash'
>>>>>>>>>> aContext: nil
>>>>>>>>>> receiver: nil
>>>>>>>>>> aRequestor: a SmalltalkEditor
>>>>>>>>>> failBlock: [closure] in [] in
>>>>>>>>>> SmalltalkEditor(TextEditor)>>evaluateSelectionAnd...etc...
>>>>>>>>>> logFlag: true
>>>>>>>>>> methodNode: DoIt
>>>>>>>>>> ^ (Morph >> #drawOn:) hash
>>>>>>>>>> method: (UndefinedObject>>#DoIt "a
>>>>>>>>>> CompiledMethod(1506)")
>>>>>>>>>> value: nil
>>>>>>>>>> toLog: nil
>>>>>>>>>> itsSelection: nil
>>>>>>>>>> itsSelectionString: nil
>>>>>>>>>> Receiver's instance variables:
>>>>>>>>>> sourceStream: a ReadWriteStream
>>>>>>>>>> '(Morph>>#drawOn:) hash'
>>>>>>>>>> requestor: a SmalltalkEditor
>>>>>>>>>> class: UndefinedObject
>>>>>>>>>> category: nil
>>>>>>>>>> context: nil
>>>>>>>>>> parser: a Parser
>>>>>>>>>>
>>>>>>>>>> [] in SmalltalkEditor(TextEditor)>>evaluateSelectionAndDo:
>>>>>>>>>> Receiver: a SmalltalkEditor
>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>> <<error during printing>
>>>>>>>>>> Receiver's instance variables:
>>>>>>>>>> morph: a TextMorphForEditView(2114)
>>>>>>>>>> selectionShowing: false
>>>>>>>>>> model: a Workspace
>>>>>>>>>> paragraph: a MultiNewParagraph
>>>>>>>>>> markBlock: a CharacterBlock with index 1 and
>>>>>>>>>> character $( and rectangle
>>>>>>>>>> 0@0 cor...etc...
>>>>>>>>>> pointBlock: a CharacterBlock with index 23
>>>>>>>>>> and rectangle 154@0 corner:
>>>>>>>>>> 154@17
>>>>>>>>>> ...etc...
>>>>>>>>>> beginTypeInIndex: nil
>>>>>>>>>> emphasisHere: {a TextFontChange font: 1}
>>>>>>>>>> lastParenLocation: nil
>>>>>>>>>> otherInterval: (1 to: 22)
>>>>>>>>>> oldInterval: (1 to: 22)
>>>>>>>>>> typeAhead: a WriteStream ''
>>>>>>>>>> styler: nil
>>>>>>>>>>
>>>>>>>>>> BlockClosure>>on:do:
>>>>>>>>>> Receiver: [closure] in
>>>>>>>>>> SmalltalkEditor(TextEditor)>>evaluateSelectionAndDo:
>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>> exception: OutOfScopeNotification
>>>>>>>>>> handlerAction: [closure] in
>>>>>>>>>> SmalltalkEditor(TextEditor)>>evaluateSelectionAndDo...etc...
>>>>>>>>>> handlerActive: true
>>>>>>>>>> Receiver's instance variables:
>>>>>>>>>> outerContext:
>>>>>>>>>> SmalltalkEditor(TextEditor)>>evaluateSelectionAndDo:
>>>>>>>>>> startpc: 97
>>>>>>>>>> numArgs: 0
>>>>>>>>>>
>>>>>>>>>> SmalltalkEditor(TextEditor)>>evaluateSelectionAndDo:
>>>>>>>>>> Receiver: a SmalltalkEditor
>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>> aBlock: [closure] in
>>>>>>>>>> SmalltalkEditor(TextEditor)>>evaluateSelection
>>>>>>>>>> result: nil
>>>>>>>>>> rcvr: nil
>>>>>>>>>> ctxt: nil
>>>>>>>>>> Receiver's instance variables:
>>>>>>>>>> morph: a TextMorphForEditView(2114)
>>>>>>>>>> selectionShowing: false
>>>>>>>>>> model: a Workspace
>>>>>>>>>> paragraph: a MultiNewParagraph
>>>>>>>>>> markBlock: a CharacterBlock with index 1 and
>>>>>>>>>> character $( and rectangle
>>>>>>>>>> 0@0 cor...etc...
>>>>>>>>>> pointBlock: a CharacterBlock with index 23
>>>>>>>>>> and rectangle 154@0 corner:
>>>>>>>>>> 154@17
>>>>>>>>>> ...etc...
>>>>>>>>>> beginTypeInIndex: nil
>>>>>>>>>> emphasisHere: {a TextFontChange font: 1}
>>>>>>>>>> lastParenLocation: nil
>>>>>>>>>> otherInterval: (1 to: 22)
>>>>>>>>>> oldInterval: (1 to: 22)
>>>>>>>>>> typeAhead: a WriteStream ''
>>>>>>>>>> styler: nil
>>>>>>>>>>
>>>>>>>>>> SmalltalkEditor(TextEditor)>>evaluateSelection
>>>>>>>>>> Receiver: a SmalltalkEditor
>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>
>>>>>>>>>> Receiver's instance variables:
>>>>>>>>>> morph: a TextMorphForEditView(2114)
>>>>>>>>>> selectionShowing: false
>>>>>>>>>> model: a Workspace
>>>>>>>>>> paragraph: a MultiNewParagraph
>>>>>>>>>> markBlock: a CharacterBlock with index 1 and
>>>>>>>>>> character $( and rectangle
>>>>>>>>>> 0@0 cor...etc...
>>>>>>>>>> pointBlock: a CharacterBlock with index 23
>>>>>>>>>> and rectangle 154@0 corner:
>>>>>>>>>> 154@17
>>>>>>>>>> ...etc...
>>>>>>>>>> beginTypeInIndex: nil
>>>>>>>>>> emphasisHere: {a TextFontChange font: 1}
>>>>>>>>>> lastParenLocation: nil
>>>>>>>>>> otherInterval: (1 to: 22)
>>>>>>>>>> oldInterval: (1 to: 22)
>>>>>>>>>> typeAhead: a WriteStream ''
>>>>>>>>>> styler: nil
>>>>>>>>>>
>>>>>>>>>> SmalltalkEditor(TextEditor)>>doIt
>>>>>>>>>> Receiver: a SmalltalkEditor
>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>
>>>>>>>>>> Receiver's instance variables:
>>>>>>>>>> morph: a TextMorphForEditView(2114)
>>>>>>>>>> selectionShowing: false
>>>>>>>>>> model: a Workspace
>>>>>>>>>> paragraph: a MultiNewParagraph
>>>>>>>>>> markBlock: a CharacterBlock with index 1 and
>>>>>>>>>> character $( and rectangle
>>>>>>>>>> 0@0 cor...etc...
>>>>>>>>>> pointBlock: a CharacterBlock with index 23
>>>>>>>>>> and rectangle 154@0 corner:
>>>>>>>>>> 154@17
>>>>>>>>>> ...etc...
>>>>>>>>>> beginTypeInIndex: nil
>>>>>>>>>> emphasisHere: {a TextFontChange font: 1}
>>>>>>>>>> lastParenLocation: nil
>>>>>>>>>> otherInterval: (1 to: 22)
>>>>>>>>>> oldInterval: (1 to: 22)
>>>>>>>>>> typeAhead: a WriteStream ''
>>>>>>>>>> styler: nil
>>>>>>>>>>
>>>>>>>>>> SmalltalkEditor(TextEditor)>>doIt:
>>>>>>>>>> Receiver: a SmalltalkEditor
>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>> aKeyboardEvent: [keystroke '<Cmd-d>']
>>>>>>>>>> Receiver's instance variables:
>>>>>>>>>> morph: a TextMorphForEditView(2114)
>>>>>>>>>> selectionShowing: false
>>>>>>>>>> model: a Workspace
>>>>>>>>>> paragraph: a MultiNewParagraph
>>>>>>>>>> markBlock: a CharacterBlock with index 1 and
>>>>>>>>>> character $( and rectangle
>>>>>>>>>> 0@0 cor...etc...
>>>>>>>>>> pointBlock: a CharacterBlock with index 23
>>>>>>>>>> and rectangle 154@0 corner:
>>>>>>>>>> 154@17
>>>>>>>>>> ...etc...
>>>>>>>>>> beginTypeInIndex: nil
>>>>>>>>>> emphasisHere: {a TextFontChange font: 1}
>>>>>>>>>> lastParenLocation: nil
>>>>>>>>>> otherInterval: (1 to: 22)
>>>>>>>>>> oldInterval: (1 to: 22)
>>>>>>>>>> typeAhead: a WriteStream ''
>>>>>>>>>> styler: nil
>>>>>>>>>>
>>>>>>>>>> SmalltalkEditor(TextEditor)>>dispatchOnKeyboardEvent:
>>>>>>>>>> Receiver: a SmalltalkEditor
>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>> aKeyboardEvent: [keystroke '<Cmd-d>']
>>>>>>>>>> honorCommandKeys: true
>>>>>>>>>> openers: nil
>>>>>>>>>> closers: nil
>>>>>>>>>> result: nil
>>>>>>>>>> Receiver's instance variables:
>>>>>>>>>> morph: a TextMorphForEditView(2114)
>>>>>>>>>> selectionShowing: false
>>>>>>>>>> model: a Workspace
>>>>>>>>>> paragraph: a MultiNewParagraph
>>>>>>>>>> markBlock: a CharacterBlock with index 1 and
>>>>>>>>>> character $( and rectangle
>>>>>>>>>> 0@0 cor...etc...
>>>>>>>>>> pointBlock: a CharacterBlock with index 23
>>>>>>>>>> and rectangle 154@0 corner:
>>>>>>>>>> 154@17
>>>>>>>>>> ...etc...
>>>>>>>>>> beginTypeInIndex: nil
>>>>>>>>>> emphasisHere: {a TextFontChange font: 1}
>>>>>>>>>> lastParenLocation: nil
>>>>>>>>>> otherInterval: (1 to: 22)
>>>>>>>>>> oldInterval: (1 to: 22)
>>>>>>>>>> typeAhead: a WriteStream ''
>>>>>>>>>> styler: nil
>>>>>>>>>>
>>>>>>>>>> SmalltalkEditor(TextEditor)>>keyStroke:
>>>>>>>>>> Receiver: a SmalltalkEditor
>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>> anEvent: [keystroke '<Cmd-d>']
>>>>>>>>>> Receiver's instance variables:
>>>>>>>>>> morph: a TextMorphForEditView(2114)
>>>>>>>>>> selectionShowing: false
>>>>>>>>>> model: a Workspace
>>>>>>>>>> paragraph: a MultiNewParagraph
>>>>>>>>>> markBlock: a CharacterBlock with index 1 and
>>>>>>>>>> character $( and rectangle
>>>>>>>>>> 0@0 cor...etc...
>>>>>>>>>> pointBlock: a CharacterBlock with index 23
>>>>>>>>>> and rectangle 154@0 corner:
>>>>>>>>>> 154@17
>>>>>>>>>> ...etc...
>>>>>>>>>> beginTypeInIndex: nil
>>>>>>>>>> emphasisHere: {a TextFontChange font: 1}
>>>>>>>>>> lastParenLocation: nil
>>>>>>>>>> otherInterval: (1 to: 22)
>>>>>>>>>> oldInterval: (1 to: 22)
>>>>>>>>>> typeAhead: a WriteStream ''
>>>>>>>>>> styler: nil
>>>>>>>>>>
>>>>>>>>>> [] in [] in TextMorphForEditView(TextMorph)>>keyStroke:
>>>>>>>>>> Receiver: a TextMorphForEditView(2114)
>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>> <<error during printing>
>>>>>>>>>> Receiver's instance variables:
>>>>>>>>>> bounds: 0@0 corner: 416@19
>>>>>>>>>> owner: a TransformMorph(1978)
>>>>>>>>>> submorphs: #()
>>>>>>>>>> fullBounds: 0@0 corner: 416@19
>>>>>>>>>> color: Color black
>>>>>>>>>> extension: a MorphExtension (2184) [other:
>>>>>>>>>> (signalConnections -> a
>>>>>>>>>> Dictionary(...etc...
>>>>>>>>>> borderWidth: 0
>>>>>>>>>> borderColor: Color black
>>>>>>>>>> textStyle: a TextStyle Bitmap Envy Code R 10
>>>>>>>>>> regular
>>>>>>>>>> text: a Text for '(Morph>>#drawOn:) hash'
>>>>>>>>>> wrapFlag: true
>>>>>>>>>> paragraph: a MultiNewParagraph
>>>>>>>>>> editor: a SmalltalkEditor
>>>>>>>>>> container: nil
>>>>>>>>>> predecessor: nil
>>>>>>>>>> successor: nil
>>>>>>>>>> backgroundColor: nil
>>>>>>>>>> margins: nil
>>>>>>>>>> editHistory: nil
>>>>>>>>>> editView: a PluggableTextMorphPlus(3348)
>>>>>>>>>> acceptOnCR: false
>>>>>>>>>>
>>>>>>>>>> TextMorphForEditView(TextMorph)>>handleInteraction:fromEvent:
>>>>>>>>>> Receiver: a TextMorphForEditView(2114)
>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>> interactionBlock: [closure] in [] in
>>>>>>>>>> TextMorphForEditView(TextMorph)>>keyStroke...etc...
>>>>>>>>>> evt: [keystroke '<Cmd-d>']
>>>>>>>>>> oldEditor: a SmalltalkEditor
>>>>>>>>>> oldParagraph: a MultiNewParagraph
>>>>>>>>>> oldText: a Text for '(Morph>>#drawOn:)
>>>>>>>>>> hash'
>>>>>>>>>> Receiver's instance variables:
>>>>>>>>>> bounds: 0@0 corner: 416@19
>>>>>>>>>> owner: a TransformMorph(1978)
>>>>>>>>>> submorphs: #()
>>>>>>>>>> fullBounds: 0@0 corner: 416@19
>>>>>>>>>> color: Color black
>>>>>>>>>> extension: a MorphExtension (2184) [other:
>>>>>>>>>> (signalConnections -> a
>>>>>>>>>> Dictionary(...etc...
>>>>>>>>>> borderWidth: 0
>>>>>>>>>> borderColor: Color black
>>>>>>>>>> textStyle: a TextStyle Bitmap Envy Code R 10
>>>>>>>>>> regular
>>>>>>>>>> text: a Text for '(Morph>>#drawOn:) hash'
>>>>>>>>>> wrapFlag: true
>>>>>>>>>> paragraph: a MultiNewParagraph
>>>>>>>>>> editor: a SmalltalkEditor
>>>>>>>>>> container: nil
>>>>>>>>>> predecessor: nil
>>>>>>>>>> successor: nil
>>>>>>>>>> backgroundColor: nil
>>>>>>>>>> margins: nil
>>>>>>>>>> editHistory: nil
>>>>>>>>>> editView: a PluggableTextMorphPlus(3348)
>>>>>>>>>> acceptOnCR: false
>>>>>>>>>>
>>>>>>>>>> TextMorphForEditView>>handleInteraction:fromEvent:
>>>>>>>>>> Receiver: a TextMorphForEditView(2114)
>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>> interActionBlock: [closure] in [] in
>>>>>>>>>> TextMorphForEditView(TextMorph)>>keyStroke...etc...
>>>>>>>>>> evt: [keystroke '<Cmd-d>']
>>>>>>>>>> Receiver's instance variables:
>>>>>>>>>> bounds: 0@0 corner: 416@19
>>>>>>>>>> owner: a TransformMorph(1978)
>>>>>>>>>> submorphs: #()
>>>>>>>>>> fullBounds: 0@0 corner: 416@19
>>>>>>>>>> color: Color black
>>>>>>>>>> extension: a MorphExtension (2184) [other:
>>>>>>>>>> (signalConnections -> a
>>>>>>>>>> Dictionary(...etc...
>>>>>>>>>> borderWidth: 0
>>>>>>>>>> borderColor: Color black
>>>>>>>>>> textStyle: a TextStyle Bitmap Envy Code R 10
>>>>>>>>>> regular
>>>>>>>>>> text: a Text for '(Morph>>#drawOn:) hash'
>>>>>>>>>> wrapFlag: true
>>>>>>>>>> paragraph: a MultiNewParagraph
>>>>>>>>>> editor: a SmalltalkEditor
>>>>>>>>>> container: nil
>>>>>>>>>> predecessor: nil
>>>>>>>>>> successor: nil
>>>>>>>>>> backgroundColor: nil
>>>>>>>>>> margins: nil
>>>>>>>>>> editHistory: nil
>>>>>>>>>> editView: a PluggableTextMorphPlus(3348)
>>>>>>>>>> acceptOnCR: false
>>>>>>>>>>
>>>>>>>>>> [] in TextMorphForEditView(TextMorph)>>keyStroke:
>>>>>>>>>> Receiver: a TextMorphForEditView(2114)
>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>> evt: [keystroke '<Cmd-d>']
>>>>>>>>>> action: nil
>>>>>>>>>> Receiver's instance variables:
>>>>>>>>>> bounds: 0@0 corner: 416@19
>>>>>>>>>> owner: a TransformMorph(1978)
>>>>>>>>>> submorphs: #()
>>>>>>>>>> fullBounds: 0@0 corner: 416@19
>>>>>>>>>> color: Color black
>>>>>>>>>> extension: a MorphExtension (2184) [other:
>>>>>>>>>> (signalConnections -> a
>>>>>>>>>> Dictionary(...etc...
>>>>>>>>>> borderWidth: 0
>>>>>>>>>> borderColor: Color black
>>>>>>>>>> textStyle: a TextStyle Bitmap Envy Code R 10
>>>>>>>>>> regular
>>>>>>>>>> text: a Text for '(Morph>>#drawOn:) hash'
>>>>>>>>>> wrapFlag: true
>>>>>>>>>> paragraph: a MultiNewParagraph
>>>>>>>>>> editor: a SmalltalkEditor
>>>>>>>>>> container: nil
>>>>>>>>>> predecessor: nil
>>>>>>>>>> successor: nil
>>>>>>>>>> backgroundColor: nil
>>>>>>>>>> margins: nil
>>>>>>>>>> editHistory: nil
>>>>>>>>>> editView: a PluggableTextMorphPlus(3348)
>>>>>>>>>> acceptOnCR: false
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> --- The full stack ---
>>>>>>>>>> CompiledMethod(Object)>>error:
>>>>>>>>>> CompiledMethod(Object)>>errorSubscriptBounds:
>>>>>>>>>> CompiledMethod(Object)>>basicAt:
>>>>>>>>>> CompiledMethod class(ByteArray class)>>hashBytes:startingWith:
>>>>>>>>>> CompiledMethod(ByteArray)>>hash
>>>>>>>>>> UndefinedObject>>DoIt
>>>>>>>>>> Compiler>>evaluate:in:to:notifying:ifFail:logged:
>>>>>>>>>> [] in SmalltalkEditor(TextEditor)>>evaluateSelectionAndDo:
>>>>>>>>>> BlockClosure>>on:do:
>>>>>>>>>> SmalltalkEditor(TextEditor)>>evaluateSelectionAndDo:
>>>>>>>>>> SmalltalkEditor(TextEditor)>>evaluateSelection
>>>>>>>>>> SmalltalkEditor(TextEditor)>>doIt
>>>>>>>>>> SmalltalkEditor(TextEditor)>>doIt:
>>>>>>>>>> SmalltalkEditor(TextEditor)>>dispatchOnKeyboardEvent:
>>>>>>>>>> SmalltalkEditor(TextEditor)>>keyStroke:
>>>>>>>>>> [] in [] in TextMorphForEditView(TextMorph)>>keyStroke:
>>>>>>>>>> TextMorphForEditView(TextMorph)>>handleInteraction:fromEvent:
>>>>>>>>>> TextMorphForEditView>>handleInteraction:fromEvent:
>>>>>>>>>> [] in TextMorphForEditView(TextMorph)>>keyStroke:
>>>>>>>>>> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
>>>>>>>>>> ECToolSet class>>codeCompletionAround:textMorph:keyStroke:
>>>>>>>>>> ToolSet class>>codeCompletionAround:textMorph:keyStroke:
>>>>>>>>>> TextMorphForEditView(TextMorph)>>keyStroke:
>>>>>>>>>> TextMorphForEditView>>keyStroke:
>>>>>>>>>> TextMorphForEditView(TextMorph)>>handleKeystroke:
>>>>>>>>>> KeyboardEvent>>sentTo:
>>>>>>>>>> TextMorphForEditView(Morph)>>handleEvent:
>>>>>>>>>> TextMorphForEditView(Morph)>>handleFocusEvent:
>>>>>>>>>> [] in HandMorph>>sendFocusEvent:to:clear:
>>>>>>>>>> BlockClosure>>on:do:
>>>>>>>>>> PasteUpMorph>>becomeActiveDuring:
>>>>>>>>>> HandMorph>>sendFocusEvent:to:clear:
>>>>>>>>>> HandMorph>>sendEvent:focus:clear:
>>>>>>>>>> HandMorph>>sendKeyboardEvent:
>>>>>>>>>> HandMorph>>handleEvent:
>>>>>>>>>> HandMorph>>processEvents
>>>>>>>>>> [] in WorldState>>doOneCycleNowFor:
>>>>>>>>>> Array(SequenceableCollection)>>do:
>>>>>>>>>> WorldState>>handsDo:
>>>>>>>>>> WorldState>>doOneCycleNowFor:
>>>>>>>>>> WorldState>>doOneCycleFor:
>>>>>>>>>> PasteUpMorph>>doOneCycle
>>>>>>>>>> [] in Project class>>spawnNewProcess
>>>>>>>>>> [] in BlockClosure>>newProcess
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>> View this message in context:
>>>>>>>>>> http://forum.world.st/CompiledMethod-hash-broken-on-CogVM-r2559-Win7-Squeak…
>>>>>>>>>> Sent from the Squeak - Dev mailing list archive at Nabble.com.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> best,
>>>>>>>>> Eliot
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> Mariano
>>>>>>>> http://marianopeck.wordpress.com
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> best,
>>>>>>> Eliot
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Mariano
>>>>>> http://marianopeck.wordpress.com
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Mariano
>>>>> http://marianopeck.wordpress.com
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> best,
>>>> Eliot
>>>>
>>>>
>>>
>>>
>>> --
>>> Mariano
>>> http://marianopeck.wordpress.com
>>>
>>>
>>
>>
>> --
>> best,
>> Eliot
>>
>>
>
>
> --
> best,
> Eliot
>
>
--
Mariano
http://marianopeck.wordpress.com
July 24, 2012
Re: [Pharo-project] Memory usage
by jannik.laval
Iep, I will keep all the informations and write a document.
Jannik
On Jul 23, 2012, at 2:41 PM, Tudor Girba wrote:
> The prospect sounds exciting.
>
> Jannik, if you do manage to get this to work with Moose, it would be
> great to document it :)
>
> Cheers,
> Doru
>
> On Mon, Jul 23, 2012 at 2:15 PM, David T. Lewis <lewis(a)mail.msen.com> wrote:
>> On Mon, Jul 23, 2012 at 09:26:18AM +0200, jannik.laval wrote:
>>> Dear pharoers,
>>>
>>> We are loading really big models in the Moose software analysis platform.
>>> This generate a lot of small objects and with the biggest model, we approach the limit of 2Gb of the VM.
>>>
>>> Is it possible for anyone who knows the VM to add extra memory space ? Going to 4Gb or maybe 8Gb would be a great thing.
>>>
>>
>> It is possible to have an image of at least 7GB (I have done this on
>> my PC with 8GB real memory). Currently this requires tracing the image
>> to a 64-bit object format with SystemTracer, and running the image
>> on an interpreter VM compiled for the 64-bit format.
>>
>> I expect that this will work for Moose in a Pharo image, although
>> performance of the garbage collector is likely to become an issue
>> as the memory grows with lots of smaller objects, and the 64-bit
>> interpreter VM will be significantly slower than a 32-bit Cog VM.
>>
>> If you want to try this with one of your images, I'll try to give you
>> some help.
>>
>> I believe that Eliot has longer term plans for 64-bit object formats,
>> VMs, and improved garbage collectors.
>>
>> Dave
>>
>>
>
>
>
> --
> www.tudorgirba.com
>
> "Every thing has its own flow"
>
---
Jannik Laval
July 24, 2012
Re: [Pharo-project] Memory usage
by jannik.laval
Hi Dave,
Should I load the SystemTracer available on SqueakSource ? The last version is from 2011, and seems old, no ?
When I try it, it calls some methods that do not exist in Pharo.
Do you have more information on how to use it ?
Cheers,
Jannik
On Jul 23, 2012, at 2:15 PM, David T. Lewis wrote:
> On Mon, Jul 23, 2012 at 09:26:18AM +0200, jannik.laval wrote:
>> Dear pharoers,
>>
>> We are loading really big models in the Moose software analysis platform.
>> This generate a lot of small objects and with the biggest model, we approach the limit of 2Gb of the VM.
>>
>> Is it possible for anyone who knows the VM to add extra memory space ? Going to 4Gb or maybe 8Gb would be a great thing.
>>
>
> It is possible to have an image of at least 7GB (I have done this on
> my PC with 8GB real memory). Currently this requires tracing the image
> to a 64-bit object format with SystemTracer, and running the image
> on an interpreter VM compiled for the 64-bit format.
>
> I expect that this will work for Moose in a Pharo image, although
> performance of the garbage collector is likely to become an issue
> as the memory grows with lots of smaller objects, and the 64-bit
> interpreter VM will be significantly slower than a 32-bit Cog VM.
>
> If you want to try this with one of your images, I'll try to give you
> some help.
>
> I believe that Eliot has longer term plans for 64-bit object formats,
> VMs, and improved garbage collectors.
>
> Dave
>
>
---
Jannik Laval
July 24, 2012