Hello,
I am new to Pharo and would like to understand a few things. I can search by myself, but I do not know the code base yet, so: [Questions] Pharo image: Serialization, deserialization, where is the code? Pharo vm (Cog/Spur): Rendering loop and event loops. done with SDL2, where is the code? Message passing, object hierarchy lookup, where is the code? Pharo minimal: How to get a working version? The builds I tried (4.0) crashed. [Purpose] My goal is work out an image/vm with minimum overhead. For example, let's say I want to build a modern multi-touch application. Pharo's environment looks promising on the live coding/debugging side, but what about the performance? Lack of responsiveness would not be acceptable (think about design differences between Android/iOS). [Context] I want to understand if the object oriented nature of Smalltalk is the reason for the lack of apps of this nature (as far as I can tell). For example, games have been done with Lisp: Jack and Daxter (on the PS2, by Naughty Dogs). There are also game engines for the JVM (https://www.lwjgl.org/). Dedicated hardware has been built for either Lisp or Forth. I can't seem to find any hardware built specifically to power Smalltalk software. Yet as far as I can tell, it's the big time for software virtual machines, because the new generation of hardware will be supporting them. (https://news.ycombinator.com/item?id=10032295) UPDATE: I am reading through "Evaluating message passing control techniques in Smalltalk" (https://www.researchgate.net/publication/2440118_Evaluating_Message_Passing_Control_Techniques_in_Smalltalk). I am getting a better picture of the whole, please direct to more such papers. Thanks, Victor RENE Software engineer, Game designer, Writer Blog: http://victor-rene.com Projects: http://logiqub.com tel: +33 6 26 83 61 76 email: [hidden email] |
Maybe you should register for Pharo MOOC:
https://www.fun-mooc.fr/courses/inria/41010/session01/about?platform=hootsuite This is English/French and start today ;-) Regards, On Mon, May 2, 2016 at 5:30 PM, Victor RENE <[hidden email]> wrote: > Hello, > > I am new to Pharo and would like to understand a few things. > I can search by myself, but I do not know the code base yet, so: > > [Questions] > Pharo image: > Serialization, deserialization, where is the code? > Pharo vm (Cog/Spur): > Rendering loop and event loops. done with SDL2, where is the code? > Message passing, object hierarchy lookup, where is the code? > Pharo minimal: > How to get a working version? The builds I tried (4.0) crashed. > > [Purpose] > My goal is work out an image/vm with minimum overhead. For example, > let's say I want to build a modern multi-touch application. > Pharo's environment looks promising on the live coding/debugging side, > but what about the performance? Lack of responsiveness would not be > acceptable (think about design differences between Android/iOS). > > [Context] > I want to understand if the object oriented nature of Smalltalk is > the reason for the lack of apps of this nature (as far as I can tell). > For example, games have been done with Lisp: Jack and Daxter (on the PS2, > by Naughty Dogs). There are also game engines for the JVM > (https://www.lwjgl.org/). > Dedicated hardware has been built for either Lisp or Forth. I can't seem > to find any hardware built specifically to power Smalltalk software. > Yet as far as I can tell, it's the big time for software virtual machines, > because the new generation of hardware will be supporting them. > (https://news.ycombinator.com/item?id=10032295) > > UPDATE: I am reading through "Evaluating message passing control techniques > in Smalltalk" > (https://www.researchgate.net/publication/2440118_Evaluating_Message_Passing_Control_Techniques_in_Smalltalk). > I am getting a better picture of the whole, please direct to more such > papers. > > Thanks, > > Victor RENE > Software engineer, > Game designer, Writer > > Blog: http://victor-rene.com > Projects: http://logiqub.com > > tel: +33 6 26 83 61 76 > email: [hidden email] > -- Serge Stinckwich UCBN & UMI UMMISCO 209 (IRD/UPMC) Every DSL ends up being Smalltalk http://www.doesnotunderstand.org/ |
In reply to this post by Victor RENE
2016-05-02 6:30 GMT-03:00 Victor RENE <[hidden email]>:
Have a look at Fuel classes (those starting with FL)
For low-level stuff you should check the primitives and/or plugins code (C code) and its interface code (Slang code, Smalltalk subset language to interface Slang to C code) which used to be in the VMMaker package (didn't checked lately).
There was a paper of Hernan Wilkinson about method lookup but I cannot find the link.
I don't know if it's working or experimental, it used to work some time ago.
|
In reply to this post by Victor RENE
On Mon, May 2, 2016 at 5:30 PM, Victor RENE <[hidden email]> wrote:
> > Hello, > > I am new to Pharo and would like to understand a few things. > I can search by myself, but I do not know the code base yet, so: > > [Questions] > Pharo vm (Cog/Spur): > Rendering loop (Whoops, I notice too late you are asking about the vm. For what its worth, I send anyway what I wrote about the image side of rendering) Within the Image, do "EllipseMorph new openInWorld" then put a "self haltOnce" in EllipseMorph>>drawOn: and select World > System > Enable halt/inspect once, then in the debugger that appears, right-click to select "Full Stack". Observe the sender chain... EllipseMorph>>drawOn: FormCanvas(Canvas)>>draw: FormCanvas(Canvas)>>drawMorph: EllipseMorph(Morph)>>fullDrawOn: FormCanvas(Canvas)>>fullDraw: FormCanvas(Canvas)>>fullDrawMorph: Observe there are three implementors of fullDrawMorph: * Canvas * AthensCanvas * AthensCanvasWrapper Canvas is the bitmap rendering. Athens is vector rendering. Scroll down the stack to see MorphicUIManager>>spawnNewProcess. and also look for it's senders. Open World > Tools > Process Browser to observe the "(40) Morphic UI Process" created by #spawnNewProcess. > and event loops. In World > Tools > Process Browser, select "(60) Input Event Fetcher Process" and browse its call stack in the top-right pane. > done with SDL2, where is the code? I'm not familiar enough to comment > Message passing, object hierarchy lookup, where is the code? https://clementbera.wordpress.com/2013/08/09/the-cog-vm-lookup/ https://clementbera.wordpress.com/category/sista/ http://www.mirandabanda.org/cogblog/2011/03/01/build-me-a-jit-as-fast-as-you-can/ http://www.mirandabanda.org/cogblog/on-line-papers-and-presentations/ cheers -ben |
In reply to this post by Victor RENE
On minimal images, you could take a look at Cuis:
http://cuis-smalltalk.org/ Is not based on Pharo, but could give you some ideas/inspiration. Cheers, Offray On 02/05/16 04:30, Victor RENE wrote:
|
In reply to this post by Victor RENE
Le 2/5/16 à 11:30, Victor RENE a
écrit :
Are you talking about image or serialization of objects? Look at OSWindows in Pharo we are in transition.
in the VM Can you tell us more? We have different systems - miniimage which is built automatically by removing packges and this is working so may be you use the wrong vm. - bootstrapped kernels will be in production in Pharo 60 - specialized image we got down to 11k for 2+3 and 18k for 20 factorial this is experimental but hyper fun. [Purpose] Yes we build that for Thales It depends what you want to do. if this is real time, Pharo is not a real time os After Thales are migrating to Pharo for their "prototype" of new interactive UI. We should do a pass on the Android VM and its event. Lack of Marketing is the reason. Not the technology. Squeak run on PS2 in 300 k back in 2002 or befor.
I do not know.
it is an old paper. When I arrived from CLOS I wanted to know if I could do the same. Now I know and we can certainly do better at the MOP level.
|
In reply to this post by Victor RENE
Performance wise Pharo is doing very well on that front because its one of the very few dynamic languages to come with a JIT VM. Generally speaking because you are talking about games, it will depend on the game. Both Android and iOS they rely heavily on C libraries, libraries that Pharo can use. So performance is not our problem nor we need hardware VM support because graphics are already heavily hardware accelerated. On Mon, May 2, 2016 at 12:31 PM Victor RENE <[hidden email]> wrote:
|
Free forum by Nabble | Edit this page |