Building Pharo and Plugins for Mac OS X and Linux

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

Building Pharo and Plugins for Mac OS X and Linux

david li-5
Hi,

  I am new to Pharo and wonder if there is a step by step instruction on building Pharo for Mac OS X and Linux. I am working on a project that requires extension either through itself or via plugins. I have been seeing the mention of VMaker but can't find a good document about it.

  Thanks a lot for the help.

David Li


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Building Pharo and Plugins for Mac OS X and Linux

Mariano Martinez Peck


On Mon, Jan 4, 2010 at 7:19 PM, David Li <[hidden email]> wrote:
Hi,

 I am new to Pharo

Hi and welcome!
 
and wonder if there is a step by step instruction on building Pharo for Mac OS X and Linux.
I am working on a project that requires extension either through itself

what do you mean "trought itself" ?  You just need to write a plugin or change the VM ?  Why you need to tho that ?  I ask because maybe someone has even a better solution or advice for you.

Cheers

Mariano
 
or via plugins. I have been seeing the mention of VMaker but can't find a good document about it.

 Thanks a lot for the help.

David Li


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Building Pharo and Plugins for Mac OS X and Linux

david li-5
In reply to this post by david li-5

On Jan 5, 2010, at 3:24 AM, [hidden email] wrote:

> On Mon, Jan 4, 2010 at 7:19 PM, David Li <[hidden email]> wrote:
> Hi,
>
>  I am new to Pharo
>
> Hi and welcome!
>  
> and wonder if there is a step by step instruction on building Pharo for Mac OS X and Linux.
>
> The only thing I am aware of is http://code.google.com/p/pharo/wiki/BuildingAVMOnPharo

Thanks. I have come across that document as well. I kind of got stuck on figuring how how I can install VMMaker.

>> I am working on a project that requires extension either through itself
>
> what do you mean "trought itself" ?  You just need to write a plugin or change the VM ?  Why you need to tho that ?  I ask because maybe someone has even a better solution or advice for you.

I am experimenting with Scratch and planning to integrate several native library into it. It seems that I can accomplish most of what I need via plugins. But it would be nice to get a clear pictures about how to build the VM and how the codes are structure in case I need to get in there.

>
> Cheers
>
> Mariano
>  
> or via plugins. I have been seeing the mention of VMaker but can't find a good document about it.
>
>  Thanks a lot for the help.
>
> David Li
>
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Building Pharo and Plugins for Mac OS X and Linux

Stéphane Ducasse
In reply to this post by david li-5
David
check the squeak documentation on how to invoke external library with FFI.
In pharo you have also alien (not tested on non intel - works on mac).

You do not have to recompile the vm to invoke external library. You define methods with specific pragmas
annotations and the plugin code can be invoked.

One if these days we should write a better doc

http://wiki.squeak.org/squeak/2426
http://www.is.titech.ac.jp/~ohshima/squeak/DShowVideo/index.html
http://www.visoracle.com/squeak/faq/ffi-windows.html
http://wiki.squeak.org/squeak/356

VMMaker is published  on SqueakSource.
May be people with more experience will comment.

Stef

On Jan 4, 2010, at 7:19 PM, David Li wrote:

> Hi,
>
>  I am new to Pharo and wonder if there is a step by step instruction on building Pharo for Mac OS X and Linux. I am working on a project that requires extension either through itself or via plugins. I have been seeing the mention of VMaker but can't find a good document about it.
>
>  Thanks a lot for the help.
>
> David Li
>
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Building Pharo and Plugins for Mac OS X and Linux

hernanmd
In reply to this post by david li-5
2010/1/4 David Li <[hidden email]>:

>
> On Jan 5, 2010, at 3:24 AM, [hidden email] wrote:
>
>> On Mon, Jan 4, 2010 at 7:19 PM, David Li <[hidden email]> wrote:
>> Hi,
>>
>>  I am new to Pharo
>>
>> Hi and welcome!
>>
>> and wonder if there is a step by step instruction on building Pharo for Mac OS X and Linux.
>>
>> The only thing I am aware of is http://code.google.com/p/pharo/wiki/BuildingAVMOnPharo
>
> Thanks. I have come across that document as well. I kind of got stuck on figuring how how I can install VMMaker.
>

Try (and proceed with the Warning)

Gofer new squeaksource:'JBARepo';
        package:'FFI-Kernel';
        load.
(Smalltalk at: #ExternalType) initialize.
(Smalltalk at: #ExternalStructure) compileAllFields.
Smalltalk recreateSpecialObjectsArray.
Gofer new squeaksource:'VMMaker';
        package:'VMMaker';
        load.


Hernán

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Building Pharo and Plugins for Mac OS X and Linux

johnmci
In reply to this post by david li-5
Ok, for the os-x
the build instructions are here

http://squeakvm.org/cgi-bin/viewcvs.cgi/trunk/platforms/Mac%20OS/vm/Documentation/readme.txt?rev=1984&view=auto

If you want to build the os-x V5 beta version, then
get the SVN tree from here
http://svn.isqueak.org/vm/
and build the
SqueakPureObjc.xcodeproj

For linux
http://squeakvm.org/unix/


That all precludes the install & setup of VMMaker, but I always view that as the *easy* part.


On 2010-01-04, at 10:19 AM, David Li wrote:

> Hi,
>
>  I am new to Pharo and wonder if there is a step by step instruction on building Pharo for Mac OS X and Linux. I am working on a project that requires extension either through itself or via plugins. I have been seeing the mention of VMaker but can't find a good document about it.
>
>  Thanks a lot for the help.
>
> David Li
>
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

--
===========================================================================
John M. McIntosh <[hidden email]>   Twitter:  squeaker68882
Corporate Smalltalk Consulting Ltd.  http://www.smalltalkconsulting.com
===========================================================================





_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Building Pharo and Plugins for Mac OS X and Linux

johnmci
In reply to this post by david li-5

On 2010-01-04, at 11:46 AM, David Li wrote:

> I am experimenting with Scratch and planning to integrate several native library into it. It seems that I can accomplish most of what I need via plugins. But it would be nice to get a clear pictures about how to build the VM and how the codes are structure in case I need to get in there.

Personally I think the thing to do is expose the native library calls via FFI or Alien, then build the messy frame work for dealing with
the library in smalltalk.  Take a look at the GStreamer api I did in EToys for OLPC, or the Navigation services or quicktime stuff in Sophie.

Or you can cheat a bit and also do most of the work in SLANG, see the Mac Menu Bar plugin as an example. Most code in SLANG with some cCode: for the api calls.

===========================================================================
John M. McIntosh <[hidden email]>   Twitter:  squeaker68882
Corporate Smalltalk Consulting Ltd.  http://www.smalltalkconsulting.com
===========================================================================





_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Building Pharo and Plugins for Mac OS X and Linux

David T. Lewis
In reply to this post by Stéphane Ducasse
On Mon, Jan 04, 2010 at 09:04:26PM +0100, St?phane Ducasse wrote:

> David
> check the squeak documentation on how to invoke external library with FFI.
> In pharo you have also alien (not tested on non intel - works on mac).
>
> You do not have to recompile the vm to invoke external library. You define methods with specific pragmas
> annotations and the plugin code can be invoked.
>
> One if these days we should write a better doc
>
> http://wiki.squeak.org/squeak/2426
> http://www.is.titech.ac.jp/~ohshima/squeak/DShowVideo/index.html
> http://www.visoracle.com/squeak/faq/ffi-windows.html
> http://wiki.squeak.org/squeak/356
>
> VMMaker is published  on SqueakSource.
> May be people with more experience will comment.

Tim Rowledge's explanation of VMMaker is here:
 http://wiki.squeak.org/squeak/2105

You will also find detailed instructions for VM builders along
with the platform source code, which is maintained in a Subversion
source code repository at squeakvm.org:
  http://squeakvm.org/cgi-bin/viewcvs.cgi/trunk/platforms/

For example, documentation on building for Unix (Linux) will
be found here:
  http://squeakvm.org/cgi-bin/viewcvs.cgi/trunk/platforms/unix/doc/HowToBuildFromSource.pdf

And for Windows:
  http://squeakvm.org/cgi-bin/viewcvs.cgi/trunk/platforms/win32/docs/?rev=2147
which points to:
  http://squeakvm.org/win32/

And for Mac OS:
  http://squeakvm.org/cgi-bin/viewcvs.cgi/trunk/platforms/Mac%20OS/vm/Documentation/
as well as other documents that John mentioned in his reply.

In other words, after you download the platform source code from the
Subversion repository, you will find detailed documentation in the
subdirectory for each of the major platforms.

There is also a mailing list for the VM:
  http://lists.squeakfoundation.org/mailman/listinfo/vm-dev

Dave


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Building Pharo and Plugins for Mac OS X and Linux

Stéphane Ducasse
this is cool!

Stef

On Jan 5, 2010, at 5:21 AM, David T. Lewis wrote:

> On Mon, Jan 04, 2010 at 09:04:26PM +0100, St?phane Ducasse wrote:
>> David
>> check the squeak documentation on how to invoke external library with FFI.
>> In pharo you have also alien (not tested on non intel - works on mac).
>>
>> You do not have to recompile the vm to invoke external library. You define methods with specific pragmas
>> annotations and the plugin code can be invoked.
>>
>> One if these days we should write a better doc
>>
>> http://wiki.squeak.org/squeak/2426
>> http://www.is.titech.ac.jp/~ohshima/squeak/DShowVideo/index.html
>> http://www.visoracle.com/squeak/faq/ffi-windows.html
>> http://wiki.squeak.org/squeak/356
>>
>> VMMaker is published  on SqueakSource.
>> May be people with more experience will comment.
>
> Tim Rowledge's explanation of VMMaker is here:
> http://wiki.squeak.org/squeak/2105
>
> You will also find detailed instructions for VM builders along
> with the platform source code, which is maintained in a Subversion
> source code repository at squeakvm.org:
>  http://squeakvm.org/cgi-bin/viewcvs.cgi/trunk/platforms/
>
> For example, documentation on building for Unix (Linux) will
> be found here:
>  http://squeakvm.org/cgi-bin/viewcvs.cgi/trunk/platforms/unix/doc/HowToBuildFromSource.pdf
>
> And for Windows:
>  http://squeakvm.org/cgi-bin/viewcvs.cgi/trunk/platforms/win32/docs/?rev=2147
> which points to:
>  http://squeakvm.org/win32/
>
> And for Mac OS:
>  http://squeakvm.org/cgi-bin/viewcvs.cgi/trunk/platforms/Mac%20OS/vm/Documentation/
> as well as other documents that John mentioned in his reply.
>
> In other words, after you download the platform source code from the
> Subversion repository, you will find detailed documentation in the
> subdirectory for each of the major platforms.
>
> There is also a mailing list for the VM:
>  http://lists.squeakfoundation.org/mailman/listinfo/vm-dev
>
> Dave
>
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Building Pharo and Plugins for Mac OS X and Linux

melkyades
In reply to this post by David T. Lewis
It's nice to see there's more info about VM's than I thought, it would be even nicer to have it all gathered in just one place and up to date so it's easier to find it. Recently I started compiling my own unix VMs and as I was very confused at first, I decided to write a small guide for beginers to share my experiences (and to remember the steps after some time). It has some still-unanswered questions, but is thought for beginners, so it might help you. The link is this:

http://wwew.javipimas.com.ar/node/2

hope it helps.

regards,
            Javier.

On Tue, Jan 5, 2010 at 1:21 AM, David T. Lewis <[hidden email]> wrote:
On Mon, Jan 04, 2010 at 09:04:26PM +0100, St?phane Ducasse wrote:
> David
> check the squeak documentation on how to invoke external library with FFI.
> In pharo you have also alien (not tested on non intel - works on mac).
>
> You do not have to recompile the vm to invoke external library. You define methods with specific pragmas
> annotations and the plugin code can be invoked.
>
> One if these days we should write a better doc
>
> http://wiki.squeak.org/squeak/2426
> http://www.is.titech.ac.jp/~ohshima/squeak/DShowVideo/index.html
> http://www.visoracle.com/squeak/faq/ffi-windows.html
> http://wiki.squeak.org/squeak/356
>
> VMMaker is published  on SqueakSource.
> May be people with more experience will comment.

Tim Rowledge's explanation of VMMaker is here:
 http://wiki.squeak.org/squeak/2105

You will also find detailed instructions for VM builders along
with the platform source code, which is maintained in a Subversion
source code repository at squeakvm.org:
For example, documentation on building for Unix (Linux) will
be found here:
 http://squeakvm.org/cgi-bin/viewcvs.cgi/trunk/platforms/unix/doc/HowToBuildFromSource.pdf

And for Windows:
 http://squeakvm.org/cgi-bin/viewcvs.cgi/trunk/platforms/win32/docs/?rev=2147
which points to:
 http://squeakvm.org/win32/

And for Mac OS:
as well as other documents that John mentioned in his reply.

In other words, after you download the platform source code from the
Subversion repository, you will find detailed documentation in the
subdirectory for each of the major platforms.

There is also a mailing list for the VM:
 http://lists.squeakfoundation.org/mailman/listinfo/vm-dev

Dave


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project



--
Javier Pimás
Ciudad de Buenos Aires

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Building Pharo and Plugins for Mac OS X and Linux

Stéphane Ducasse
thanks!

Stef

On Jan 5, 2010, at 3:55 PM, Javier Pimás wrote:

> It's nice to see there's more info about VM's than I thought, it would be even nicer to have it all gathered in just one place and up to date so it's easier to find it. Recently I started compiling my own unix VMs and as I was very confused at first, I decided to write a small guide for beginers to share my experiences (and to remember the steps after some time). It has some still-unanswered questions, but is thought for beginners, so it might help you. The link is this:
>
> http://wwew.javipimas.com.ar/node/2
>
> hope it helps.
>
> regards,
>             Javier.
>
> On Tue, Jan 5, 2010 at 1:21 AM, David T. Lewis <[hidden email]> wrote:
> On Mon, Jan 04, 2010 at 09:04:26PM +0100, St?phane Ducasse wrote:
> > David
> > check the squeak documentation on how to invoke external library with FFI.
> > In pharo you have also alien (not tested on non intel - works on mac).
> >
> > You do not have to recompile the vm to invoke external library. You define methods with specific pragmas
> > annotations and the plugin code can be invoked.
> >
> > One if these days we should write a better doc
> >
> > http://wiki.squeak.org/squeak/2426
> > http://www.is.titech.ac.jp/~ohshima/squeak/DShowVideo/index.html
> > http://www.visoracle.com/squeak/faq/ffi-windows.html
> > http://wiki.squeak.org/squeak/356
> >
> > VMMaker is published  on SqueakSource.
> > May be people with more experience will comment.
>
> Tim Rowledge's explanation of VMMaker is here:
>  http://wiki.squeak.org/squeak/2105
>
> You will also find detailed instructions for VM builders along
> with the platform source code, which is maintained in a Subversion
> source code repository at squeakvm.org:
>  http://squeakvm.org/cgi-bin/viewcvs.cgi/trunk/platforms/
>
> For example, documentation on building for Unix (Linux) will
> be found here:
>  http://squeakvm.org/cgi-bin/viewcvs.cgi/trunk/platforms/unix/doc/HowToBuildFromSource.pdf
>
> And for Windows:
>  http://squeakvm.org/cgi-bin/viewcvs.cgi/trunk/platforms/win32/docs/?rev=2147
> which points to:
>  http://squeakvm.org/win32/
>
> And for Mac OS:
>  http://squeakvm.org/cgi-bin/viewcvs.cgi/trunk/platforms/Mac%20OS/vm/Documentation/
> as well as other documents that John mentioned in his reply.
>
> In other words, after you download the platform source code from the
> Subversion repository, you will find detailed documentation in the
> subdirectory for each of the major platforms.
>
> There is also a mailing list for the VM:
>  http://lists.squeakfoundation.org/mailman/listinfo/vm-dev
>
> Dave
>
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
>
>
> --
> Javier Pimás
> Ciudad de Buenos Aires
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Building Pharo and Plugins for Mac OS X and Linux

David T. Lewis
In reply to this post by melkyades
On Tue, Jan 05, 2010 at 11:55:40AM -0300, Javier Pim??s wrote:

> It's nice to see there's more info about VM's than I thought, it would be
> even nicer to have it all gathered in just one place and up to date so it's
> easier to find it. Recently I started compiling my own unix VMs and as I was
> very confused at first, I decided to write a small guide for beginers to
> share my experiences (and to remember the steps after some time). It has
> some still-unanswered questions, but is thought for beginners, so it might
> help you. The link is this:
>
> http://wwew.javipimas.com.ar/node/2 <http://www.javipimas.com.ar/node/2>
>
> hope it helps.

Javier,

This is a really good introduction. It explains the process clearly,
and your diagram does a nice job of showing how the pieces come
together. Well done!

Regarding your question on the web page:

> I've read that pharo uses a modified OE that supports full closures,
> but I don't know what changes you have to introduce to make them work.
> Anyway, I don't know if closures aren't used that much, or the default
> code already ingtegrates them but my pharo images never complained
> of my handmade OEs, so the VMMaker package seems to be the same for
> both Pharo and Squeak.

All current VMs provide closure support, which is included in the
VMMaker package. If your image uses closures, then the VM supports
them and there are no modifications required. Pharo, Squeak trunk,
and Cuis images all use closures now, other others (e.g. SqueakLand)
will probable have this added as time goes on.

Dave


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project