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_...). I am getting a better picture of the whole, please direct to more such papers. Thanks, Victor RENESoftware engineer,Game designer, Writer Blog: http://victor-rene.comProjects: http://logiqub.com tel: +33 6 26 83 61 76email: victor-rene@outlook.com
Maybe you should register for Pharo MOOC: https://www.fun-mooc.fr/courses/inria/41010/session01/about?platform=hootsui... This is English/French and start today ;-) Regards, On Mon, May 2, 2016 at 5:30 PM, Victor RENE <victor-rene.dev@outlook.com> 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_...). 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: victor-rene@outlook.com
-- Serge Stinckwich UCBN & UMI UMMISCO 209 (IRD/UPMC) Every DSL ends up being Smalltalk http://www.doesnotunderstand.org/
2016-05-02 6:30 GMT-03:00 Victor RENE <victor-rene.dev@outlook.com>:
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?
Have a look at Fuel classes (those starting with FL)
Pharo vm (Cog/Spur): Rendering loop and event loops. done with SDL2, where is the code?
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).
Message passing, object hierarchy lookup, where is the code?
There was a paper of Hernan Wilkinson about method lookup but I cannot find the link.
Pharo minimal: How to get a working version? The builds I tried (4.0) crashed.
I don't know if it's working or experimental, it used to work some time ago.
[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)
http://basis.desk.org:8080/ToytownStLab/Smalltalk+hardware
UPDATE: I am reading through "Evaluating message passing control techniques in Smalltalk" ( https://www.researchgate.net/publication/2440118_Evaluating_Message_Passing_... ). 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: victor-rene@outlook.com
On Mon, May 2, 2016 at 5:30 PM, Victor RENE <victor-rene.dev@outlook.com> 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... http://www.mirandabanda.org/cogblog/on-line-papers-and-presentations/ cheers -ben
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:
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_...). 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: victor-rene@outlook.com
Le 2/5/16 à 11:30, Victor RENE a écrit :
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? Are you talking about image or serialization of objects?
Pharo vm (Cog/Spur): Rendering loop and event loops. done with SDL2, where is the code? Look at OSWindows in Pharo we are in transition.
Message passing, object hierarchy lookup, where is the code?
in the VM
Pharo minimal: How to get a working version? The builds I tried (4.0) crashed. 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]
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. Yes we build that for Thales
Pharo's environment looks promising on the live coding/debugging side, but what about the performance?
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.
Lack of responsiveness would not be acceptable (think about design differences between Android/iOS). We should do a pass on the Android VM and its event.
[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).
Lack of Marketing is the reason. Not the technology. Squeak run on PS2 in 300 k back in 2002 or befor.
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) I do not know.
UPDATE: I am reading through "Evaluating message passing control techniques in Smalltalk" (https://www.researchgate.net/publication/2440118_Evaluating_Message_Passing_...). I am getting a better picture of the whole, please direct to more such papers.
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.
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: victor-rene@outlook.com
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. The problem for pharo is support of those platforms, like multi touch, a more multi touch friendly GUI etc. Generally speaking expect to get your hands dirty on making C libraries working with Pharo on those platforms a lot more than worrying about VM speed. Even for heavy 3d games would could use something like Unreal or Unity together with Pharo. On iOS it may be an issue because Apple allows for a single executable. So the problem here is not speed, its the diffirent way of doing things on those platforms that would require a lot of boilercode to make things work smoothly. This is why game devs prefer using something like Unity and Unreal that are well tested and offer all those luxuries outside the box without you having to worry about that. On Mon, May 2, 2016 at 12:31 PM Victor RENE <victor-rene.dev@outlook.com> 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_... ). 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: victor-rene@outlook.com
participants (7)
-
Ben Coman -
Dimitris Chloupis -
Hernán Morales Durand -
Offray Vladimir Luna Cárdenas -
Serge Stinckwich -
stepharo -
Victor RENE