Can you help me find this info?

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

Can you help me find this info?

Victor RENE
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


tel: +33 6 26 83 61 76
 
Reply | Threaded
Open this post in threaded view
|

Re: Can you help me find this info?

SergeStinckwich
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/

Reply | Threaded
Open this post in threaded view
|

Re: Can you help me find this info?

hernanmd
In reply to this post by Victor RENE


2016-05-02 6:30 GMT-03:00 Victor RENE <[hidden email]>:
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)

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


tel: +33 6 26 83 61 76
 

Reply | Threaded
Open this post in threaded view
|

Re: Can you help me find this info?

Ben Coman
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

Reply | Threaded
Open this post in threaded view
|

Re: Can you help me find this info?

Offray Vladimir Luna Cárdenas-2
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:
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


tel: +33 6 26 83 61 76
 

Reply | Threaded
Open this post in threaded view
|

Re: Can you help me find this info?

stepharo
In reply to this post by Victor RENE



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_Control_Techniques_in_Smalltalk).
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


tel: +33 6 26 83 61 76
 

Reply | Threaded
Open this post in threaded view
|

Re: Can you help me find this info?

kilon.alios
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.

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 <[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


tel: +33 6 26 83 61 76