Pharo-dev
By thread
pharo-dev@lists.pharo.org
By month
Messages by month
- ----- 2026 -----
- 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
October 2015
- 891 messages
Re: [Pharo-dev] [Vm-dev] Re: Random forest in Pharo
by Esteban Lorenzano
Hi,
just to be clear.
When we talk about MTVM, we talk about a MT-FFI, *not* a MTVM in general.
In general, a âcommonâ approach to MT cannot be applied in Pharo (or Smalltalk in general) and to get a VM *and* an image working properly is an effort that makes what I called massive some mails above like a small stone compared to a mountain.
Said that:
- What is in plans is MT-FFI, and that will be available eventually.
- There is an approach I want to re-work, that would allow us profit of multicores without going multithread: the âhydraâ experiment made some years ago by Igor creates a good basis to this. But is also a lot of of work (but a lot less than a complete MT), and not a real priority for now⦠I hope to resume work on that area some day⦠just not anytime soon.
Esteban
> On 18 Oct 2015, at 17:56, Ben Coman <btc(a)openInWorld.com> wrote:
>
>
> On Sat, Oct 17, 2015 at 2:25 AM, Robert Withers
> <robert.w.withers(a)gmail.com> wrote:
>> Yes, exactly. I do realize I was consciously changing that effort
>> synchronization order.
>
> I see 64-bit being higher priority than multi-threaded for the wider
> community. Dealing with larger in-Image data opens the door to more
> corporate project/funding opportunities. Also simplifying the install
> on modern Linux platforms without requiring additional 386 libraries
> will help acceptance there.
>
>> It is my humble opinion, without really knowing, that 64-bit would have to be redone after the MTVM completes.
>
> I would assume it was the other way around. Presuming that Eliot has
> sponsors influencing his priorities, it seems given that 64-bits will
> happen first. I would guess any MTVM development on the old vm would
> then need to be reworked.
>
>> I was doing so with the idea in mind that I and others
>> might dig into working on the VM, for threading support, while Eliot
>> maintains focus on 64-bits...a tall order, I know.
>
> The usual downside of splitting resources applies. There are not that
> many "others" and maybe they would be drawn away from helping with the
> 64-bit vm. If the 64-bit vm goes slower for lack of resources then
> your footing for MTVM will shifting for a longer time. You may
> ultimately get where you want to go faster by helping with the 64-bit
> vm. The rapport built with other vm devs from working on 64-bit might
> could then be applied to MTVM. (Of course, its your free time, so you
> should pursue what interests you.)
>
>> I was barely familiar with the VM, slang, interpreter, it years ago...
>> I'm totally unfamiliar with cog.
>
> The experience you gain from working beside Esteban and Eliot on
> 64-bit Cog/Spur could then be applied to a MTVM.
>
> btw, you may find these threads interesting...
> * http://lists.pharo.org/pipermail/pharo-dev_lists.pharo.org/2015-April/10864…
> * http://forum.world.st/Copy-on-write-for-a-multithreaded-VM-td4837905.html
>
> cheers -ben
>
>> I believe another item on that list ought to be modernizing slang. So
>> many big items!
>>
>> Robert
>>
>>
>>
>> On 10/16/2015 12:48 PM, Stephan Eggermont wrote:
>>>
>>>
>>> On 16-10-15 14:05, Robert Withers wrote:
>>>>
>>>> Because of that assumption I've made and without the responsibilities
>>>> you have, Esteban, but recognizing modernizing NB to FFI, my desired
>>>> list is:
>>>
>>>
>>> I would expect the least total effort to be needed by keeping the work
>>> of Esteban and Eliot as much as possible aligned. That is what Esteban's
>>> list achieves.
>>>
>>> Stephan
>>>
>>>
>>
Oct. 19, 2015
Re: [Pharo-dev] WhatsUp from: 2015-10-19 until: 2015-10-31
by Dimitris Chloupis
- Go back to UPBE
-- Fix so now the complete book is compiled as a single pdf once again
-- Document Spotter in Pharo Tour chapter
-- Document Nautilus Icons in Pharo Tour tutorial
-- Create Nautilus icons in 3d just for fun
-- Integrate pull request by bpietro with several improvements
-Give a slack a try
-- Create a a dedicate channel in slack pharoproject , documentation, for
talking about documentation
-- Integrate github commits so people logged in the channel get informed
about any new commits in our books
-Ephestos
-- Prepare for a Blender Pharo API. Until now Ephestos allowed pharo users
to use the Blender python API even with pharo syntax and python syntax but
I have decided to implement a new API completely in Pharo that will
further simplify the process and guard the pharo users from Blender
technical details and make controlling Blender from Pharo much easier. My
goal is to create a povray ( http://www.povray.org/ ) kind of language ,
more or less, with pharo for scripting Blender.
-Pharo auto completion
-- Keep studying auto completion , unfortunately I still need time to make
sense of things , but I have figured out the basics.
On Mon, Oct 19, 2015 at 9:50 AM stepharo <stepharo(a)free.fr> wrote:
>
>
> Le 19/10/15 07:00, seaside(a)rmod.lille.inria.fr a écrit :
> > Hi! We're sending this automatic email twice a month, to give the
> community an opportunity to easily know what's happening and to coordinate
> efforts. Just answer informally, and feel free to spawn discussions
> thereafter!
> >
> > ### Here's what I've been up to since the last WhatsUp:
> - working on pharo mooc
> - working on magritte30 tutorial
> - working on reef chapter
> - extra pharo lecture @ uni lille.
>
> >
> > ### What's next, until 2015-10-31 (*):
> >
> > - $NEXT_STEPS_TOWARDS_WORLD_DOMINATION
>
> - working on pharo mooc
> - working on magritte30 tutorial
> - working on reef chapter
>
>
Oct. 19, 2015
[pharo-project/pharo-core]
by GitHub
Branch: refs/tags/50392
Home: https://github.com/pharo-project/pharo-core
Oct. 19, 2015
[pharo-project/pharo-core] 8276a9: 50392
by GitHub
Branch: refs/heads/5.0
Home: https://github.com/pharo-project/pharo-core
Commit: 8276a9c35e6aa2e826bff169dc14fd476a37c39d
https://github.com/pharo-project/pharo-core/commit/8276a9c35e6aa2e826bff169…
Author: Jenkins Build Server <board(a)pharo-project.org>
Date: 2015-10-19 (Mon, 19 Oct 2015)
Changed paths:
M AST-Core.package/RBBlockNode.class/instance/initialization/initialize.st
M AST-Core.package/RBParser.class/instance/private-parsing/parseCascadeMessage.st
M AST-Core.package/RBParser.class/instance/private-parsing/parsePrimitiveObject.st
A AST-Core.package/RBParser.class/instance/private-parsing/saveCommentsDuring_.st
M AST-Core.package/RBPatternBlockNode.class/instance/matching/createBlockFor_.st
A AST-Core.package/RBPragmaNode.class/instance/initialization/initialize.st
M AST-Core.package/RBReturnNode.class/class/instance creation/value_.st
M AST-Core.package/RBReturnNode.class/instance/accessing/stop.st
A AST-Core.package/RBReturnNode.class/instance/initialization/initialize.st
A AST-Core.package/RBVariableNode.class/instance/initialize/initialize.st
M MonticelloFileServices.package/extension/MCVersionReader/class/fileReaderServicesForFile_suffix_.st
M Morphic-Widgets-Tree.package/MorphTreeListManager.class/instance/keyboard managing/basicKeyPressed_.st
M OpalCompiler-Core.package/extension/RBSequenceNode/instance/transformLastToReturn.st
R ScriptLoader50.package/ScriptLoader.class/instance/pharo - scripts/script50391.st
A ScriptLoader50.package/ScriptLoader.class/instance/pharo - scripts/script50392.st
R ScriptLoader50.package/ScriptLoader.class/instance/pharo - updates/update50391.st
A ScriptLoader50.package/ScriptLoader.class/instance/pharo - updates/update50392.st
M ScriptLoader50.package/ScriptLoader.class/instance/public/commentForCurrentUpdate.st
Log Message:
-----------
50392
15184 Systembrowser package navigation inconsistent behavior
https://pharo.fogbugz.com/f/cases/15184
16799 RBParser assigns comments to wrong node
https://pharo.fogbugz.com/f/cases/16799
16798 #sourceInterval should work for every RBNode
https://pharo.fogbugz.com/f/cases/16798
16476 dropping an MCZ file on the world does not propose a browse anymore
https://pharo.fogbugz.com/f/cases/16476
http://files.pharo.org/image/50/50392.zip
Oct. 19, 2015
Re: [Pharo-dev] WhatsUp from: 2015-10-19 until: 2015-10-31
by stepharo
Le 19/10/15 07:00, seaside(a)rmod.lille.inria.fr a écrit :
> Hi! We're sending this automatic email twice a month, to give the community an opportunity to easily know what's happening and to coordinate efforts. Just answer informally, and feel free to spawn discussions thereafter!
>
> ### Here's what I've been up to since the last WhatsUp:
- working on pharo mooc
- working on magritte30 tutorial
- working on reef chapter
- extra pharo lecture @ uni lille.
>
> ### What's next, until 2015-10-31 (*):
>
> - $NEXT_STEPS_TOWARDS_WORLD_DOMINATION
- working on pharo mooc
- working on magritte30 tutorial
- working on reef chapter
Oct. 19, 2015
Re: [Pharo-dev] interesting recursive out-of-memory error
by Marcus Denker
There is some memory leak with the new editor recently (we have seen it until now just with nautilus).
But I guess that could be the same reason.
> On 18 Oct 2015, at 23:33, Tudor Girba <tudor(a)tudorgirba.com> wrote:
>
> Hmm, I never encountered this case. Let's try to manufacture this case again.
>
> Cheers,
> Doru
>
> On Sun, Oct 18, 2015 at 3:58 PM, Eliot Miranda <eliot.miranda(a)gmail.com <mailto:eliot.miranda@gmail.com>> wrote:
> Hi Nicolai,
>
> On Oct 18, 2015, at 3:16 AM, Nicolai Hess <nicolaihess(a)gmail.com <mailto:nicolaihess@gmail.com>> wrote:
>
>> Thanks eliot.
>> Did you run anything that consumed much memory?
>> Platform linux?
>
> I filed in a small package that is entirely Smalltalk code, ran a very simple example in the context of a GT playground, played around with a colleague exploring the playground, diving into and out of the structure, and then left it alone for perhaps a half hour until I returned, at which point it appeared to lock up as soon as I started interacting with it to shut it down.
>
> _,,,^..^,,,_ (phone)
>
>>
>>
>> 2015-10-18 2:24 GMT+02:00 Eliot Miranda <eliot.miranda(a)gmail.com <mailto:eliot.miranda@gmail.com>>:
>> Hi All,
>>
>> this in a bleeding edge Pharo 5 image which had been left standing with a Playground open which, when I clicked on it after leaving it for over an hour, got into an infinite recursion failing to allocate an object as part of opening a file to write an error report to. Here's the infinite recursion beginning. Full crash.mp <http://crash.mp/> attached.
>>
>> 0x3ebf4bf8 s OutOfMemory class(Exception class)>signal
>> 0x3ebf4c54 s OutOfMemory class(Behavior)>basicNew
>> 0x3ebf4cb0 s OutOfMemory class(Behavior)>new
>> 0x3ebf4d0c s OutOfMemory class(Exception class)>signal
>> 0x3ebe52ec s OutOfMemory class(Behavior)>basicNew
>> 0x3ebf4d68 s OutOfMemory class(Behavior)>new
>> 0x3ebf4dc4 s OutOfMemory class(Exception class)>signal
>> 0x3ebf4e20 s OutOfMemory class(Behavior)>basicNew
>> 0x3ebf4e7c s OutOfMemory class(Behavior)>new
>> 0x3ebf4ed8 s OutOfMemory class(Exception class)>signal
>> 0x3ebf4f34 s OutOfMemory class(Behavior)>basicNew
>> 0x3ebf4f90 s OutOfMemory class(Behavior)>new
>> 0x3ebf4fec s OutOfMemory class(Exception class)>signal
>> 0x3ebe5290 s WeakFinalizerItem class(Behavior)>basicNew:
>> 0x3ebf5048 s WeakFinalizerItem class>new
>> 0x3ebf50a4 s [] in WeakRegistry>add:executor:
>> 0x3ebe5234 s WeakIdentityKeyDictionary(Dictionary)>at:ifAbsent:
>> 0x3ebe51c4 s [] in WeakRegistry>add:executor:
>> 0x3ebf4860 s BlockClosure>on:do:
>> 0x3ebe5154 s BlockClosure>ifError:
>> 0x3ebe50e4 s [] in Semaphore>critical:ifError:
>> 0x3ebf48bc s [] in Semaphore>critical:
>> 0x3ebf4918 s BlockClosure>ensure:
>> 0x3ebe505c s Semaphore>critical:
>> 0x3ebe4fdc s Semaphore>critical:ifError:
>> 0x3ebe4f5c s WeakRegistry>protected:
>> 0x3ebe4ee8 s WeakRegistry>add:executor:
>> 0x3ebf4974 s WeakRegistry>add:
>> 0x3ebf49d0 s MultiByteFileStream class(StandardFileStream class)>register:
>> 0x3ebf4a2c s MultiByteFileStream(StandardFileStream)>register
>> 0x3ebe4de0 s MultiByteFileStream(StandardFileStream)>open:forWrite:
>> 0x3ebe4e58 s MultiByteFileStream>open:forWrite:
>> 0x3ebf4524 s MultiByteFileStream class(StandardFileStream class)>readOnlyFileNamed:
>> 0x3ebf4580 s MultiByteFileStream(StandardFileStream)>readOnlyCopy
>> 0x3ebf45dc s [] in SourceFileArray>readStreamAtFileIndex:atPosition:ifPresent:ifAbsent:
>> 0x3ebf4638 s BlockClosure>on:do:
>> 0x3ebe4cc8 s SourceFileArray>readStreamAtFileIndex:atPosition:ifPresent:ifAbsent:
>> 0x3ebf4694 s SourceFileArray>readStreamAt:ifPresent:ifAbsent:
>> 0x3ebe4be8 s SourceFileArray>sourceCodeAt:
>> 0x3ebe4c64 s [] in CompiledMethod>getSourceFromFile
>> 0x3ebf418c s BlockClosure>on:do:
>> 0x3ebe4b6c s CompiledMethod>getSourceFromFile
>> 0x3ebf41e8 s CompiledMethod>sourceCode
>> 0x3ebf4244 s CompiledMethod>parseTree
>> 0x3ebf42a0 s [] in ASTCache>at:
>> 0x3ebf42fc s [] in ASTCache(Dictionary)>at:ifAbsentPut:
>> 0x3ebf4358 s ASTCache(Dictionary)>at:ifAbsent:
>> 0x3ebe4adc s ASTCache(Dictionary)>at:ifAbsentPut:
>> 0x3ebe4a6c s ASTCache>at:
>> 0x3ebe4a10 s ASTCache class>at:
>> 0x3ebe49b4 s CompiledMethod>ast
>> 0x3ebf3ce0 s CompiledMethod>sourceNode
>> 0x3ebf3d3c s CompiledMethod>sourceNodeForPC:
>> 0x3ebf3d98 s BlockClosure>sourceNode
>> 0x3ebf3df4 s BlockClosure>printOn:
>> 0x3ebf3e50 s [] in BlockClosure(Object)>printStringLimitedTo:
>> 0x3ebe4944 s String class(SequenceableCollection class)>streamContents:limitedTo:
>> 0x3ebe4850 s BlockClosure(Object)>printStringLimitedTo:
>> 0x3ebf3eac s BlockClosure(Object)>printString
>> 0x3ebf3f08 s Context>printOn:
>> 0x3ebf3f64 s Context>printDebugOn:
>> 0x3ebf3fc0 s [] in Context>debugStack:on:
>> 0x3ebe44c8 s OrderedCollection>do:
>> 0x3ebe4458 s Context>debugStack:on:
>> 0x3ebf3a00 s Context>shortDebugStackOn:
>> 0x3ebf3a5c s [] in ControlButtonMorph(Morph)>drawErrorOn:
>> 0x3ebf3ab8 s String class(SequenceableCollection class)>new:streamContents:
>> 0x3ebf3b14 s String class(SequenceableCollection class)>streamContents:
>> 0x3ebe4318 s [] in ControlButtonMorph(Morph)>drawErrorOn:
>> 0x3ebe42b4 s ControlButtonMorph(Morph)>valueOfProperty:ifPresentDo:
>> 0x3ebe41e0 s ControlButtonMorph(Morph)>drawErrorOn:
>> 0x3ebe4244 s [] in ControlButtonMorph(Morph)>fullDrawOn:
>> 0x3ebf377c s BlockClosure>cull:
>> 0x3ebf37d8 s Context>evaluateSignal:
>> 0x3ebf3834 s Context>handleSignal:
>> 0x3ebe1608 s OutOfMemory(Exception)>signal
>> 0x3ebe1664 s OutOfMemory class(Exception class)>signal
>> 0x3ebe158c s BalloonBuffer class(Behavior)>basicNew:
>> 0x3ebe1830 s BalloonBuffer class(Behavior)>new:
>> 0x3ebe1478 s BalloonEngine class>allocateOrRecycleBuffer:
>> 0x3ebe1944 s BalloonEngine>reset
>> 0x3ebe1530 s BalloonEngine>resetIfNeeded
>> 0x3ebe14d4 s BalloonEngine>drawRectangle:fill:borderWidth:borderColor:transform:
>> 0x3ebe1ab4 s BalloonCanvas>drawRectangle:color:borderWidth:borderColor:
>> 0x3ebe1b6c s BalloonCanvas>fillRectangle:basicFillStyle:
>> 0x3ebe1c24 s FormCanvas>balloonFillRectangle:fillStyle:
>> 0x3ebe1cdc s FormCanvas>fillRectangle:basicFillStyle:
>> 0x3ebe1d94 s GradientFillStyle(FillStyle)>fillRectangle:on:
>> 0x3ebe1e4c s FormCanvas(Canvas)>fillRectangle:fillStyle:
>> 0x3ebe1f04 s FormCanvas(Canvas)>fillRectangle:fillStyle:borderStyle:
>> 0x3ebe1fbc s ControlButtonMorph(Morph)>drawOn:
>> 0x3ebdf0fc s FormCanvas(Canvas)>draw:
>> 0x3ebdf0a0 s FormCanvas(Canvas)>drawMorph:
>> 0x3ebe212c s [] in ControlButtonMorph(Morph)>fullDrawOn:
>> 0x3ebe21e4 s FormCanvas>roundCornersOf:in:during:
>> 0x3ebe229c s FormCanvas(Canvas)>roundCornersOf:during:
>> 0x3ebdf030 s [] in ControlButtonMorph(Morph)>fullDrawOn:
>> 0x3ebe16c0 s BlockClosure>on:do:
>> 0x3ebdefac s ControlButtonMorph(Morph)>fullDrawOn:
>> 0x3ebe2468 s FormCanvas(Canvas)>fullDraw:
>> 0x3ebe2520 s FormCanvas(Canvas)>fullDrawMorph:
>> 0x3ebe25d8 s [] in SearchMorph(Morph)>drawSubmorphsOn:
>> 0x3ebe2690 s Array(SequenceableCollection)>reverseDo:
>> 0x3ebdef3c s [] in SearchMorph(Morph)>drawSubmorphsOn:
>> 0x3ebe27a4 s FormCanvas>clipBy:during:
>> 0x3ebded5c s SearchMorph(Morph)>drawSubmorphsOn:
>> 0x3ebdedc8 s SearchMorph(DropListMorph)>drawSubmorphsOn:
>> 0x3ebe2914 s [] in SearchMorph(Morph)>fullDrawOn:
>> 0x3ebe29cc s FormCanvas>roundCornersOf:in:during:
>> 0x3ebe2a84 s FormCanvas(Canvas)>roundCornersOf:during:
>> 0x3ebdecc8 s [] in SearchMorph(Morph)>fullDrawOn:
>> 0x3ebe2b98 s BlockClosure>on:do:
>> 0x3ebdec44 s SearchMorph(Morph)>fullDrawOn:
>> 0x3ebe2cac s FormCanvas(Canvas)>fullDraw:
>> 0x3ebe2d64 s FormCanvas(Canvas)>fullDrawMorph:
>> 0x3ebe2e1c s [] in SystemWindow(Morph)>drawSubmorphsOn:
>> 0x3ebd976c s Array(SequenceableCollection)>reverseDo:
>> 0x3ebd96fc s [] in SystemWindow(Morph)>drawSubmorphsOn:
>> 0x3ebe2f8c s FormCanvas>clipBy:during:
>> 0x3ebd9584 s SystemWindow(Morph)>drawSubmorphsOn:
>> 0x3ebe30a0 s [] in SystemWindow(Morph)>fullDrawOn:
>> 0x3ebe3158 s FormCanvas>roundCornersOf:in:during:
>> 0x3ebe3210 s FormCanvas(Canvas)>roundCornersOf:during:
>> 0x3ebd94f0 s [] in SystemWindow(Morph)>fullDrawOn:
>> 0x3ebe3324 s BlockClosure>on:do:
>> 0x3ebd946c s SystemWindow(Morph)>fullDrawOn:
>> 0x3ebd9410 s FormCanvas(Canvas)>fullDraw:
>> 0x3ebd93b4 s FormCanvas(Canvas)>fullDrawMorph:
>> 0x3ebd9004 s [] in WorldState>drawWorld:submorphs:invalidAreasOn:
>> 0x3ebe35ec s Rectangle>allAreasOutsideList:startingAt:do:
>> 0x3ebe36a4 s Rectangle>allAreasOutsideList:do:
>> 0x3ebd8e94 s [] in WorldState>drawWorld:submorphs:invalidAreasOn:
>> 0x3ebe3858 s Array(SequenceableCollection)>do:
>> 0x3ebd8b98 s WorldState>drawWorld:submorphs:invalidAreasOn:
>> 0x3ebd8c94 s [] in WorldState>displayWorld:submorphs:
>> 0x3ebe3a68 s FormCanvas>roundCornersOf:in:during:
>> 0x3ebe3b20 s FormCanvas(Canvas)>roundCornersOf:during:
>> 0x3ebd8aa8 s WorldState>displayWorld:submorphs:
>> 0x3ebe3c34 s WorldMorph>displayWorld
>> 0x3ebe3cec s [] in WorldState>displayWorldSafely:
>> 0x3ebe3da4 s BlockClosure>on:do:
>> 0x3ebd8a2c s BlockClosure>ifError:
>> 0x3ebd89ac s WorldState>displayWorldSafely:
>> 0x3ebd3df4 s WorldState>doOneCycleNowFor:
>> 0x3ebe3f70 s WorldState>doOneCycleFor:
>> 0x3ebe4028 s WorldMorph>doOneCycle
>> 0x2162ad58 s [] in MorphicUIManager>spawnNewProcess
>> 0x21629f30 s [] in BlockClosure>newProcess
>>
>>
>>
>> _,,,^..^,,,_
>> best, Eliot
>>
>
>
>
> --
> www.tudorgirba.com <http://www.tudorgirba.com/>
>
> "Every thing has its own flow"
Oct. 19, 2015
WhatsUp from: 2015-10-19 until: 2015-10-31
by seaside@rmod.lille.inria.fr
Hi! We're sending this automatic email twice a month, to give the community an opportunity to easily know what's happening and to coordinate efforts. Just answer informally, and feel free to spawn discussions thereafter!
### Here's what I've been up to since the last WhatsUp:
- $HEROIC_ACHIEVEMENTS_OR_DISMAL_FAILURES_OR_SIMPLE_BORING_NECESSARY_TASKS
### What's next, until 2015-10-31 (*):
- $NEXT_STEPS_TOWARDS_WORLD_DOMINATION
(*) we'll be expecting results by then ;)
Oct. 19, 2015
Re: [Pharo-dev] interesting recursive out-of-memory error
by Tudor Girba
Hmm, I never encountered this case. Let's try to manufacture this case
again.
Cheers,
Doru
On Sun, Oct 18, 2015 at 3:58 PM, Eliot Miranda <eliot.miranda(a)gmail.com>
wrote:
> Hi Nicolai,
>
> On Oct 18, 2015, at 3:16 AM, Nicolai Hess <nicolaihess(a)gmail.com> wrote:
>
> Thanks eliot.
> Did you run anything that consumed much memory?
> Platform linux?
>
>
> I filed in a small package that is entirely Smalltalk code, ran a very
> simple example in the context of a GT playground, played around with a
> colleague exploring the playground, diving into and out of the structure,
> and then left it alone for perhaps a half hour until I returned, at which
> point it appeared to lock up as soon as I started interacting with it to
> shut it down.
>
> _,,,^..^,,,_ (phone)
>
>
>
> 2015-10-18 2:24 GMT+02:00 Eliot Miranda <eliot.miranda(a)gmail.com>:
>
>> Hi All,
>>
>> this in a bleeding edge Pharo 5 image which had been left standing
>> with a Playground open which, when I clicked on it after leaving it for
>> over an hour, got into an infinite recursion failing to allocate an object
>> as part of opening a file to write an error report to. Here's the infinite
>> recursion beginning. Full crash.mp attached.
>>
>> 0x3ebf4bf8 s OutOfMemory class(Exception class)>signal
>> 0x3ebf4c54 s OutOfMemory class(Behavior)>basicNew
>> 0x3ebf4cb0 s OutOfMemory class(Behavior)>new
>> 0x3ebf4d0c s OutOfMemory class(Exception class)>signal
>> 0x3ebe52ec s OutOfMemory class(Behavior)>basicNew
>> 0x3ebf4d68 s OutOfMemory class(Behavior)>new
>> 0x3ebf4dc4 s OutOfMemory class(Exception class)>signal
>> 0x3ebf4e20 s OutOfMemory class(Behavior)>basicNew
>> 0x3ebf4e7c s OutOfMemory class(Behavior)>new
>> 0x3ebf4ed8 s OutOfMemory class(Exception class)>signal
>> 0x3ebf4f34 s OutOfMemory class(Behavior)>basicNew
>> 0x3ebf4f90 s OutOfMemory class(Behavior)>new
>> 0x3ebf4fec s OutOfMemory class(Exception class)>signal
>> 0x3ebe5290 s WeakFinalizerItem class(Behavior)>basicNew:
>> 0x3ebf5048 s WeakFinalizerItem class>new
>> 0x3ebf50a4 s [] in WeakRegistry>add:executor:
>> 0x3ebe5234 s WeakIdentityKeyDictionary(Dictionary)>at:ifAbsent:
>> 0x3ebe51c4 s [] in WeakRegistry>add:executor:
>> 0x3ebf4860 s BlockClosure>on:do:
>> 0x3ebe5154 s BlockClosure>ifError:
>> 0x3ebe50e4 s [] in Semaphore>critical:ifError:
>> 0x3ebf48bc s [] in Semaphore>critical:
>> 0x3ebf4918 s BlockClosure>ensure:
>> 0x3ebe505c s Semaphore>critical:
>> 0x3ebe4fdc s Semaphore>critical:ifError:
>> 0x3ebe4f5c s WeakRegistry>protected:
>> 0x3ebe4ee8 s WeakRegistry>add:executor:
>> 0x3ebf4974 s WeakRegistry>add:
>> 0x3ebf49d0 s MultiByteFileStream class(StandardFileStream class)>register:
>> 0x3ebf4a2c s MultiByteFileStream(StandardFileStream)>register
>> 0x3ebe4de0 s MultiByteFileStream(StandardFileStream)>open:forWrite:
>> 0x3ebe4e58 s MultiByteFileStream>open:forWrite:
>> 0x3ebf4524 s MultiByteFileStream class(StandardFileStream
>> class)>readOnlyFileNamed:
>> 0x3ebf4580 s MultiByteFileStream(StandardFileStream)>readOnlyCopy
>> 0x3ebf45dc s [] in
>> SourceFileArray>readStreamAtFileIndex:atPosition:ifPresent:ifAbsent:
>> 0x3ebf4638 s BlockClosure>on:do:
>> 0x3ebe4cc8 s
>> SourceFileArray>readStreamAtFileIndex:atPosition:ifPresent:ifAbsent:
>> 0x3ebf4694 s SourceFileArray>readStreamAt:ifPresent:ifAbsent:
>> 0x3ebe4be8 s SourceFileArray>sourceCodeAt:
>> 0x3ebe4c64 s [] in CompiledMethod>getSourceFromFile
>> 0x3ebf418c s BlockClosure>on:do:
>> 0x3ebe4b6c s CompiledMethod>getSourceFromFile
>> 0x3ebf41e8 s CompiledMethod>sourceCode
>> 0x3ebf4244 s CompiledMethod>parseTree
>> 0x3ebf42a0 s [] in ASTCache>at:
>> 0x3ebf42fc s [] in ASTCache(Dictionary)>at:ifAbsentPut:
>> 0x3ebf4358 s ASTCache(Dictionary)>at:ifAbsent:
>> 0x3ebe4adc s ASTCache(Dictionary)>at:ifAbsentPut:
>> 0x3ebe4a6c s ASTCache>at:
>> 0x3ebe4a10 s ASTCache class>at:
>> 0x3ebe49b4 s CompiledMethod>ast
>> 0x3ebf3ce0 s CompiledMethod>sourceNode
>> 0x3ebf3d3c s CompiledMethod>sourceNodeForPC:
>> 0x3ebf3d98 s BlockClosure>sourceNode
>> 0x3ebf3df4 s BlockClosure>printOn:
>> 0x3ebf3e50 s [] in BlockClosure(Object)>printStringLimitedTo:
>> 0x3ebe4944 s String class(SequenceableCollection
>> class)>streamContents:limitedTo:
>> 0x3ebe4850 s BlockClosure(Object)>printStringLimitedTo:
>> 0x3ebf3eac s BlockClosure(Object)>printString
>> 0x3ebf3f08 s Context>printOn:
>> 0x3ebf3f64 s Context>printDebugOn:
>> 0x3ebf3fc0 s [] in Context>debugStack:on:
>> 0x3ebe44c8 s OrderedCollection>do:
>> 0x3ebe4458 s Context>debugStack:on:
>> 0x3ebf3a00 s Context>shortDebugStackOn:
>> 0x3ebf3a5c s [] in ControlButtonMorph(Morph)>drawErrorOn:
>> 0x3ebf3ab8 s String class(SequenceableCollection
>> class)>new:streamContents:
>> 0x3ebf3b14 s String class(SequenceableCollection class)>streamContents:
>> 0x3ebe4318 s [] in ControlButtonMorph(Morph)>drawErrorOn:
>> 0x3ebe42b4 s ControlButtonMorph(Morph)>valueOfProperty:ifPresentDo:
>> 0x3ebe41e0 s ControlButtonMorph(Morph)>drawErrorOn:
>> 0x3ebe4244 s [] in ControlButtonMorph(Morph)>fullDrawOn:
>> 0x3ebf377c s BlockClosure>cull:
>> 0x3ebf37d8 s Context>evaluateSignal:
>> 0x3ebf3834 s Context>handleSignal:
>> 0x3ebe1608 s OutOfMemory(Exception)>signal
>> 0x3ebe1664 s OutOfMemory class(Exception class)>signal
>> 0x3ebe158c s BalloonBuffer class(Behavior)>basicNew:
>> 0x3ebe1830 s BalloonBuffer class(Behavior)>new:
>> 0x3ebe1478 s BalloonEngine class>allocateOrRecycleBuffer:
>> 0x3ebe1944 s BalloonEngine>reset
>> 0x3ebe1530 s BalloonEngine>resetIfNeeded
>> 0x3ebe14d4 s
>> BalloonEngine>drawRectangle:fill:borderWidth:borderColor:transform:
>> 0x3ebe1ab4 s BalloonCanvas>drawRectangle:color:borderWidth:borderColor:
>> 0x3ebe1b6c s BalloonCanvas>fillRectangle:basicFillStyle:
>> 0x3ebe1c24 s FormCanvas>balloonFillRectangle:fillStyle:
>> 0x3ebe1cdc s FormCanvas>fillRectangle:basicFillStyle:
>> 0x3ebe1d94 s GradientFillStyle(FillStyle)>fillRectangle:on:
>> 0x3ebe1e4c s FormCanvas(Canvas)>fillRectangle:fillStyle:
>> 0x3ebe1f04 s FormCanvas(Canvas)>fillRectangle:fillStyle:borderStyle:
>> 0x3ebe1fbc s ControlButtonMorph(Morph)>drawOn:
>> 0x3ebdf0fc s FormCanvas(Canvas)>draw:
>> 0x3ebdf0a0 s FormCanvas(Canvas)>drawMorph:
>> 0x3ebe212c s [] in ControlButtonMorph(Morph)>fullDrawOn:
>> 0x3ebe21e4 s FormCanvas>roundCornersOf:in:during:
>> 0x3ebe229c s FormCanvas(Canvas)>roundCornersOf:during:
>> 0x3ebdf030 s [] in ControlButtonMorph(Morph)>fullDrawOn:
>> 0x3ebe16c0 s BlockClosure>on:do:
>> 0x3ebdefac s ControlButtonMorph(Morph)>fullDrawOn:
>> 0x3ebe2468 s FormCanvas(Canvas)>fullDraw:
>> 0x3ebe2520 s FormCanvas(Canvas)>fullDrawMorph:
>> 0x3ebe25d8 s [] in SearchMorph(Morph)>drawSubmorphsOn:
>> 0x3ebe2690 s Array(SequenceableCollection)>reverseDo:
>> 0x3ebdef3c s [] in SearchMorph(Morph)>drawSubmorphsOn:
>> 0x3ebe27a4 s FormCanvas>clipBy:during:
>> 0x3ebded5c s SearchMorph(Morph)>drawSubmorphsOn:
>> 0x3ebdedc8 s SearchMorph(DropListMorph)>drawSubmorphsOn:
>> 0x3ebe2914 s [] in SearchMorph(Morph)>fullDrawOn:
>> 0x3ebe29cc s FormCanvas>roundCornersOf:in:during:
>> 0x3ebe2a84 s FormCanvas(Canvas)>roundCornersOf:during:
>> 0x3ebdecc8 s [] in SearchMorph(Morph)>fullDrawOn:
>> 0x3ebe2b98 s BlockClosure>on:do:
>> 0x3ebdec44 s SearchMorph(Morph)>fullDrawOn:
>> 0x3ebe2cac s FormCanvas(Canvas)>fullDraw:
>> 0x3ebe2d64 s FormCanvas(Canvas)>fullDrawMorph:
>> 0x3ebe2e1c s [] in SystemWindow(Morph)>drawSubmorphsOn:
>> 0x3ebd976c s Array(SequenceableCollection)>reverseDo:
>> 0x3ebd96fc s [] in SystemWindow(Morph)>drawSubmorphsOn:
>> 0x3ebe2f8c s FormCanvas>clipBy:during:
>> 0x3ebd9584 s SystemWindow(Morph)>drawSubmorphsOn:
>> 0x3ebe30a0 s [] in SystemWindow(Morph)>fullDrawOn:
>> 0x3ebe3158 s FormCanvas>roundCornersOf:in:during:
>> 0x3ebe3210 s FormCanvas(Canvas)>roundCornersOf:during:
>> 0x3ebd94f0 s [] in SystemWindow(Morph)>fullDrawOn:
>> 0x3ebe3324 s BlockClosure>on:do:
>> 0x3ebd946c s SystemWindow(Morph)>fullDrawOn:
>> 0x3ebd9410 s FormCanvas(Canvas)>fullDraw:
>> 0x3ebd93b4 s FormCanvas(Canvas)>fullDrawMorph:
>> 0x3ebd9004 s [] in WorldState>drawWorld:submorphs:invalidAreasOn:
>> 0x3ebe35ec s Rectangle>allAreasOutsideList:startingAt:do:
>> 0x3ebe36a4 s Rectangle>allAreasOutsideList:do:
>> 0x3ebd8e94 s [] in WorldState>drawWorld:submorphs:invalidAreasOn:
>> 0x3ebe3858 s Array(SequenceableCollection)>do:
>> 0x3ebd8b98 s WorldState>drawWorld:submorphs:invalidAreasOn:
>> 0x3ebd8c94 s [] in WorldState>displayWorld:submorphs:
>> 0x3ebe3a68 s FormCanvas>roundCornersOf:in:during:
>> 0x3ebe3b20 s FormCanvas(Canvas)>roundCornersOf:during:
>> 0x3ebd8aa8 s WorldState>displayWorld:submorphs:
>> 0x3ebe3c34 s WorldMorph>displayWorld
>> 0x3ebe3cec s [] in WorldState>displayWorldSafely:
>> 0x3ebe3da4 s BlockClosure>on:do:
>> 0x3ebd8a2c s BlockClosure>ifError:
>> 0x3ebd89ac s WorldState>displayWorldSafely:
>> 0x3ebd3df4 s WorldState>doOneCycleNowFor:
>> 0x3ebe3f70 s WorldState>doOneCycleFor:
>> 0x3ebe4028 s WorldMorph>doOneCycle
>> 0x2162ad58 s [] in MorphicUIManager>spawnNewProcess
>> 0x21629f30 s [] in BlockClosure>newProcess
>>
>>
>>
>> _,,,^..^,,,_
>> best, Eliot
>>
>
>
--
www.tudorgirba.com
"Every thing has its own flow"
Oct. 18, 2015
Re: [Pharo-dev] [Cryptography port to Pharo] RandomGenerator class>>unpredictableStringsDo:
by Ron Teitelbaum
Hi Robert,
Nice to see you!
Looks interesting I know that Chris did something gathering sources of entropy. Seems like the more the better. Could you just make the entropy sources optional such that if they exist we use them? I would have to go back and see what Chris did but he was following suggestions from Schneider in his secureRandom.
All the best,
Ron Teitelbaum
> -----Original Message-----
> From: Pharo-dev [mailto:pharo-dev-bounces@lists.pharo.org] On Behalf Of
> Robert Withers
> Sent: Sunday, October 18, 2015 5:00 AM
> To: The general-purpose Squeak developers list; Pharo Development List
> Subject: Re: [Pharo-dev] [Cryptography port to Pharo] RandomGenerator
> class>>unpredictableStringsDo:
>
> I'm sorry, I forgot the code. I list the existing method, followed by my
> modified Pharo method below. I welcome any feedback.
>
> Regards,
> Robert
>
> ---
> Existing:
> unpredictableStringsDo: aBlock
> "Enumerate sources of information from my environment that
> should be generally hard to guess."
> | time |
> time := Time millisecondsToRun:
> [ aBlock
> value: World imageForm bits compressToByteArray ;
> value: Sensor mousePoint x asString ;
> value: Sensor mousePoint y asString ;
> value: Time millisecondClockValue asByteArray ;
> value: Date today asString ;
> value: Time now asString ;
> value: Display extent asString.
> 100 timesRepeat: [ aBlock value: UUID new ].
> #(vmVersion platformName primVmPath imageName
> platformSubtype datedVersion lastQuitLogPosition vmStatisticsReportString
> imageName)
> collect:
> [ : each |
> aBlock value: (SmalltalkImage current perform: each)
> asByteArray ] ].
> aBlock
> value: time asByteArray;
> "maybe the pointer has moved, hit it again."
> value: Sensor mousePoint asString ;
> value: Time millisecondClockValue asByteArray
>
> ---
> Pharo port:
> unpredictableStringsDo: aBlock
> "Enumerate sources of information from my environment that
> should be generally hard to guess."
>
> | time |
> time := Time millisecondsToRun:
> [ aBlock
> value: Time millisecondClockValue asByteArray ;
> value: Date today asString ;
> value: Time now asString.
> 100 timesRepeat: [ aBlock value: UUID new ].
> #(version primImagePath imagePath datedVersion
> lastQuitLogPosition)
> collect:
> [ : each |
> aBlock value: (SmalltalkImage current perform: each)
> asByteArray ] ].
> aBlock
> value: time asByteArray;
> value: Time millisecondClockValue asByteArray
>
>
> On 10/18/2015 04:23 AM, Robert Withers wrote:
> > This is a message intended for anyone who was on the Cryptography team.
> > I recently ported it to Pharo and had to make changes to
> RandomGenerator
> > class>>unpredictableStringsDo:. This certainly removed some uncertainty
> > from the results of this message. My question is what should I do about
> > that? This method seems to require non-headless, as it is checking the
> > mouse point and such. This being a crypto cornerstone, what the best
> > answer here.
> >
> > Thank you,
> > Robert
Oct. 18, 2015
Re: [Pharo-dev] Confusing Date parsing
by Sven Van Caekenberghe
> On 18 Oct 2015, at 17:50, Torsten Bergmann <astares(a)gmx.de> wrote:
>
> '9.7.2015' asDate returns the 7th of September, I would have expected 9th of July
Hmm, this particular case (any case involving two numbers <= 12) is non-deterministic when no expected pattern is given.
Smalltalk was written in the US, so they chose their date format as default.
> because in Date readFrom: comment it is stated:
>
> readFrom: aStream
> "Read a Date from the stream in any of the forms:
> <day> <month> <year> (15 April 1982; 15-APR-82; 15.4.82; 15APR82)
> <month> <day> <year> (April 15, 1982; 4/15/82)
> <year>-<month>-<day> (1982-04-15) (ISO8601)"
>
> According to this the order day, month, year with a $. as separator should be valid.
>
> When I try '15.4.82' asDate als does not work, it gives an error that the month is exceeded with 15...
So by default it goes for the American format, month first. From that perspective it is correct.
I did not look at the implementation, but I think there is no real universal solution.
> Looks like this is not correctly implemented/backed up by tests. Or the comment is just wrong.
> Should I open an issue?
>
> Thanks
> T.
>
>
>
>
Oct. 18, 2015