[Pharo-users] DWARF parser?

2017-01-05 Thread Luke Gorrie
Hoi,

Just a quick question to avoid duplicated effort: Has anybody written a
DWARF [1] parser for Pharo?

[1] https://en.wikipedia.org/wiki/DWARF


[Pharo-users] Recommended stable Pharo 5.0 VM for Linux users?

2017-04-03 Thread Luke Gorrie
Questions!

Where can I find the source code for the latest stable Linux/unix VM for
Pharo 5.0? I want to package it for a Linux distribution (NixOS).

Currently I am confused:

The release tarballs at
http://files.pharo.org/vm/src/vm-unix-sources/blessed show the latest
non-Spur version being 2016-02-18.

The github repo at https://github.com/pharo-project/pharo-vm has a tag
Pharo50-stable on commit b8ec25a which dates from 2016-05-04. (Is this tag
immutable or does it move around?)

The URL for downloading binaries (get.pharo.org/vm50) does not seem to say
anywhere what version it is downloading, and it was not obvious to me from
downloading the binary and inspecting it with 'strings' either (it's not
for my distro so I can't just run it with '--version').

Help would be appreciated!

Great if somebody could also tell me under what circumstances the spur VM
is preferred to the non-spur VM.


Re: [Pharo-users] Recommended stable Pharo 5.0 VM for Linux users?

2017-04-04 Thread Luke Gorrie
Thanks for the fast response!

Can you also recommend the best pharo-launcher image version to package?
The stable one looks stale (lists Pharo 5.0 as "beta" for me)
On Tue, 4 Apr 2017 at 08:45, Esteban Lorenzano  wrote:

> in fact, I will promote a new stable soon, so I’d recommend for now take
> the master branch of  https://github.com/pharo-project/pharo-vm
>
> Esteban
>
>
> On 4 Apr 2017, at 07:01, Luke Gorrie  wrote:
>
> Questions!
>
> Where can I find the source code for the latest stable Linux/unix VM for
> Pharo 5.0? I want to package it for a Linux distribution (NixOS).
>
> Currently I am confused:
>
> The release tarballs at
> http://files.pharo.org/vm/src/vm-unix-sources/blessed show the latest
> non-Spur version being 2016-02-18.
>
> The github repo at https://github.com/pharo-project/pharo-vm has a tag
> Pharo50-stable on commit b8ec25a which dates from 2016-05-04. (Is this tag
> immutable or does it move around?)
>
> The URL for downloading binaries (get.pharo.org/vm50) does not seem to
> say anywhere what version it is downloading, and it was not obvious to me
> from downloading the binary and inspecting it with 'strings' either (it's
> not for my distro so I can't just run it with '--version').
>
> Help would be appreciated!
>
> Great if somebody could also tell me under what circumstances the spur VM
> is preferred to the non-spur VM.
>
>
>
>


Re: [Pharo-users] Recommended stable Pharo 5.0 VM for Linux users?

2017-04-04 Thread Luke Gorrie
Hi again Esteban,

On 4 April 2017 at 08:44, Esteban Lorenzano  wrote:

> in fact, I will promote a new stable soon, so I’d recommend for now take
> the master branch of  https://github.com/pharo-project/pharo-vm
>

Could you possibly spin a (alpha) release that I could use?

The problem with building directly from Git is that then I need to use
another Pharo for bootstrapping and this will complicate the build process
considerably. I can't use the get.pharo.org method on NixOS both because
the binary won't be compatible and because I need all dependencies to be
locked down with a known sha256. So I would need to build the previous VM
release from source and combine that with a compatible (pre-5.0) image to
run VMMaker. This sounds a bit complicated, time consuming, and prone to
error if I am using a much older image than the official releases for
bootstrapping.

Cheers!
-Luke


Re: [Pharo-users] Recommended stable Pharo 5.0 VM for Linux users?

2017-04-04 Thread Luke Gorrie
On 4 April 2017 at 12:01, Esteban Lorenzano  wrote:

> well, I’m working on commit also generated sources as an amend… but you
> will need to wait a couple of days for that :)
>

Sounds great, thanks in advance!


Re: [Pharo-users] Build Pharo VM with --dynamic-linker

2017-04-05 Thread Luke Gorrie
Hi Alistair,

Just an idea: One alternative could be to use patchelf [1] to modify the
dynamic library path in an existing binary. My understanding is that this
method is very robust and widely used.

[1]: https://nixos.org/patchelf.html

On 5 April 2017 at 09:14, Alistair Grant  wrote:

> Hi All,
>
> I'm still working on getting Pharo packaged with snapcraft.  The latest
> hurdle is that 32 bit applications won't load correctly because the
> snapcraft environment means that ld-linux.so.2 isn't in the expected
> location.
>
> My understanding is that adding the appropriate --dynamic-linker flag
> should solve the problem, defining:
>
> export LDFLAGS="-Wl,--dynamic-linker=/snap/pharo/x1/lib/ld-linux.so.2"
>
> successfully builds, but the pharo executable still has the default
> location:
>
> $ strings pharo-vm/pharo | grep ld-linux
> /lib/ld-linux.so.2
>
> Can someone point me to where I should modify the build scipt(s) so I
> can set --dynamic-linker appropriately?
>
>
> Thanks!
> Alistair
>
>


Re: [Pharo-users] Recommended stable Pharo 5.0 VM for Linux users?

2017-04-12 Thread Luke Gorrie
On 4 April 2017 at 12:16, Luke Gorrie  wrote:

> On 4 April 2017 at 12:01, Esteban Lorenzano  wrote:
>
>> well, I’m working on commit also generated sources as an amend… but you
>> will need to wait a couple of days for that :)
>>
>
> Sounds great, thanks in advance!
>

Gentle ping on a Pharo VM unix source release that works with the 5.0 image
:-)


Re: [Pharo-users] Recommended stable Pharo 5.0 VM for Linux users?

2017-04-12 Thread Luke Gorrie
On 12 April 2017 at 10:27, Esteban Lorenzano  wrote:

> yes, at the end I did a different process.
> after cloning vm sources, now you do not need to generate them… just go to
>
> $ cd build.linuxWHATEVER/pharo.cog.spur/build
> $ ./mvm
>
> that will work and produce the official latest VM :)
>

Thanks for the information. I will give it a try.

Any chance of updating the instructions in the README for future reference?


Re: [Pharo-users] Recommended stable Pharo 5.0 VM for Linux users?

2017-04-12 Thread Luke Gorrie
On 12 April 2017 at 14:08, Esteban Lorenzano  wrote:

> It is in my TODO list.
> … along with other milliards of things with more priority ;)
>
> I will welcome any Pull Request, in any area but specially on that one :D
>

I can potentially make some time to help out with VM maintenance. I have
already volunteered to maintain the NixOS packaging for Pharo and that is
what leads me here in the first place, I will need to successfully build
the VM myself before I can help anybody else though :).

Before committing time I would like to understand the situation a little
bit better. How come nobody in the Pharo community sees it as a priority to
make a VM source release that is compatible with the current image version
(5.0)?

I had imagined that a compatible VM would be released at the same time as
the image. So I am obviously missing some point about why other people see
the VM source release as such a low priority. Is it just that everybody is
running zeroconf binaries distributed by Jenkins and that I am one of very
few people who wants to build from source (without bootstrapping from
another Pharo)?

Context: I am a relative newbie who wants to develop an application based
on Pharo. It's much harder than I expected to get started!


Re: [Pharo-users] Pharo 6 snap install

2017-04-12 Thread Luke Gorrie
On 12 April 2017 at 16:43, Offray Vladimir Luna Cárdenas <
offray.l...@mutabit.com> wrote:

> I'm also interested in the upcoming Nix package initiative that has been
> announced in the list recently, which also deals with installing
> dependencies in a Linux distribution neutral fashion.
>

This can only happen if the Pharo community somehow products a new release
of the VM that I can package.

The suggestion from the list was that I pick a commit from the
pharo-project/pharo-vm#master branch, but I have browsed the commit history
and that is way too much of a moving target for me to ship onwards to
Nix/NixOS users.

Pharo community: Please - somehow - make a new source release of your
bloomin' VM!


Re: [Pharo-users] Pharo 6 snap install

2017-04-13 Thread Luke Gorrie
On 13 April 2017 at 12:20, Stephane Ducasse  wrote:

> We will do that.
>

Thank you! I will wait :).

Now we are under stress for the release :)
> And PharoDays. Great conference!
>

Thank you for explaining. I am new around here ("oh, are you working on a
release now?") so it helps me to have this kind of hint about short-term
issues (e.g. busy period) vs long term ones (e.g. no longer making source
releases of the VM for some reason.)


Re: [Pharo-users] Pharo 6 snap install

2017-04-14 Thread Luke Gorrie
On 14 April 2017 at 08:53, Stephane Ducasse  wrote:

> We always try to have a major release around mid/end of april
>

Once the dust settles, I think it would be wonderful to have this invariant:

- The latest Pharo VM source release is compatible with the latest Pharo
image.

This would make it easy for me to help nix users. My job will be to package
the latest source release of the VM, period, and I will know that users can
use this to run the latest image. I don't have much scope to screw things
up and make people sad e.g. by shipping a bad commit from the master branch.

(Of course it makes life harder for you upstream Pharo maintainers. Now
updating the VM source release is a blocker for releasing a new image.
Could be that this is too constraining in practice, I dunno. I'm just a guy
who wants to setup a stable Pharo that I can use to build an application
:-))


Re: [Pharo-users] Pharo 6 snap install

2017-04-14 Thread Luke Gorrie
On 14 April 2017 at 22:20, Stephane Ducasse  wrote:

> This is what we always have when we release and we freeze it.
> The vm 60 will be compatible with latest pharo 60 image.
>

It is possible that I have misunderstood the whole situation and there is
no problem at all. That would be awesome. Let's check :-) here is my
understanding of the state of the world right now:

The latest stable image release is Pharo-50771.image.
The latest stable VM source release is pharo-vm-2016.02.18.
These two releases are not compatible: This interpreter (vers. 6505) cannot
read image file (vers. 6521).

So the problem is that if a distribution packages the latest VM source
release then the users won't be able to run the Pharo 5 VM that they
download from pharo.org or via the pharo-launcher image.

Is that correct? If so that's fine and hopefully we can fix it for Pharo
6.0. But if I am misunderstanding and a fix is available today that would
also be good to know.

I am looking for the "latest VM source release" in
http://files.pharo.org/vm/src/vm-unix-sources/ and assuming that non-spur
is the stable option for pre-6.0 images.

Cheers!
-Luke


Re: [Pharo-users] Pharo 6 snap install

2017-04-15 Thread Luke Gorrie
On 15 April 2017 at 09:12, Alistair Grant  wrote:

> On Sat, Apr 15, 2017 at 06:43:39AM +0200, Luke Gorrie wrote:
> > The latest stable image release is Pharo-50771.image.
> > The latest stable VM source release is pharo-vm-2016.02.18.
> > These two releases are not compatible: This interpreter (vers. 6505)
> cannot
> > read image file (vers. 6521).
>
> Is this from a VM you built yourself?


This is a VM built from source during packaging for NixOS Linux.

  What's the output of:
>
> $ pharo --version
>

Here it is:

$ pharo-vm-nox --version
3.9-7 #1 Tue Mar 28 16:26:45 UTC 2017 gcc 5.4.0 [Production ITHB VM]
NBCoInterpreter NativeBoost-CogPlugin-EstebanLorenzano.21 uuid:
4d9b9bdf-2dfa-4c0b-99eb-5b110dadc697 Apr  5 2016
NBCogit NativeBoost-CogPlugin-EstebanLorenzano.21 uuid:
4d9b9bdf-2dfa-4c0b-99eb-5b110dadc697 Apr  5 2016
https://github.com/pharo-project/pharo-vm.git Commit:
ba1aa855f546b084ec0ebdeb85a36f2352f97b49 Date: 2016-02-18 17:17:13 +0100
By: Esteban Lorenzano  Jenkins build #15040
Linux localhost 4.4.23 #1-NixOS SMP Fri Sep 30 08:20:43 UTC 2016 i686
GNU/Linux
plugin path:
/nix/store/5bm2pwrkd1083sb1f1rf0jz20cw87yya-pharo-vm-i386-2016.02.18/lib/pharo-vm-i386-2016.02.18/
[default:
/nix/store/5bm2pwrkd1083sb1f1rf0jz20cw87yya-pharo-vm-i386-2016.02.18/lib/pharo-vm-i386-2016.02.18/]


Note that the date 2016-02-18 corresponds with the latest non-spur source
tarball release at http://files.pharo.org/vm/src/vm-unix-sources/

I just downloaded:
>
> $ curl http://get.pharo.org/50+vm | bash
>
> And it started without problem.
>

I *think* the difference is that you are downloading the VM as a binary and
I am downloading it as source code, and we get different versions because
pharo.org is regularly shipping updated binaries but not updating the
source code releases at the same time. So the source releases lag behind
over time and now it's at the point that they can't run the 5.0 image.


Re: [Pharo-users] Pharo 6 snap install

2017-04-15 Thread Luke Gorrie
On 15 April 2017 at 10:08, Alistair Grant  wrote:

> How about trying:
>
> $ git clone https://github.com/pharo-project/pharo-vm.git
> $ cd pharo-vm
> $ git checkout b8ec25a570d7539653e1d793e97609adb509aaed
>
> and build that?  It should be the source code for the binary VM on
> get.pharo.org.
>

First, thanks for taking the time to play along with me here, it really
helps to make sure I don't hold things up due to a misunderstanding.

Grabbing the source directly from Git is attractive if (a) I know that I am
choosing a good version and (b) I am able to build it in a good way.

Seems like a workable solution to (a) is to periodically check for a new
binary release, work out which commit it is based off, and build that. This
seems fairly reasonable and is probably also possible to automate. (I
suppose you got the commit-id from --version or from checking Jenkins.)

I see (b) as problematic though. The source tarball releases have a simple
build procedure ("make") while the Git checkouts require a more involved
one (bootstrapping the VM from an existing Pharo image.) So I would need to
revise the nix build scripts quite a bit if I want to build from Git
instead of the tarballs. However, it seems that on the master branch last
week the VM build procedure has been reworked so that it is _not_ necessary
to run the bootstrapping procedure anymore, which sounds great to me,
except that I understand this new build procedure to be quite bleeding edge
and not yet documented or used for a binary release (it's not included in
the commit that you cite above.)

So what to make of all that? Just right now I see only bad alternatives:
sticking with the source release means not supporting Pharo 5.0, updating
the build scripts to do bootstrapping takes effort and is already obsoleted
by changes on the VM master branch, and shipping the VM master branch means
making a pseudo-release without any QA and potentially causing problems for
people downstream (there are lots of commits landing on that branch and I
have no idea which ones are important/stable.)

So the most reasonable course of action from my point of view seems to be
to sit and wait for a better solution to come along e.g. a new source
release of the VM or a "blessed" Git commit ID that includes the updated
build scripts. The downside is that meanwhile NixOS users can't run the 5.0
image. Could be that Pharo 6.0 will resolve this and that is fine for me --
but of course I'd take a solution sooner if there is a simple one.


Re: [Pharo-users] Pharo 6 snap install

2017-04-15 Thread Luke Gorrie
On 15 April 2017 at 11:53, Alistair Grant  wrote:

> (actually, I'm not sure why you're bothering since 6 should
> be out before the end of the month, but that's your choice :-)).
>

I just want something stable and reasonably modern for running existing
applications and building new ones.

If that means waiting for Pharo 6.0 release then that is okay with me.

The (V6) linux install relies on a number of bash scripts to launch pharo
> (bin/pharo, bin/pharo-ui and bin/pharo-vm/pharo).  How are you producing
> these, or are you doing something else?
>

Here is where those scripts are generated in the existing pharo-vm
packaging:
https://github.com/NixOS/nixpkgs/blob/master/pkgs/
development/pharo/vm/build-vm.nix#L50-L70

(I didn't write the nix packaging code but I have volunteered to maintain
it so if it's out of date then I should fix that.)

git clone https://github.com/pharo-project/pharo-vm.git
> git checkout 
> cd pharo-vm/opensmalltalk-vm/build.linux64x64/pharo.cog.spur/build
> ./mvm
> --
>
> BTW: HEAD is currently eaf13db484ac87720d8454e66b5ce92f51c01036, and my
> experience is that it is significantly less stable than the latest
> binary, which is from 1c38b03fb043a2962f30f080db5b1292b5b7badb
>

This is really the bleeding edge :-) both of those commits were pushed
within the past three days!

I will take a look at the ./mvm script now.


Re: [Pharo-users] Pharo 6 snap install

2017-04-15 Thread Luke Gorrie
On 15 April 2017 at 14:45, Esteban Lorenzano  wrote:

> this belongs to pharo-dev, please continue there :)
>

Looks to me like I should make a small replacement for mvm that is for nix.

Nix indeed does its own thing.

The downside is that it's restricted: the build runs in a sandbox, can't
touch the network, has to declare the sha256 of any dependencies that it
needs. Nothing - not one byte - is allowed to change from one build to the
next without being accounted for and that breaks the mvm script.

On the plus side it will supply all of the dependencies, with exactly the
expected version and exactly the expected build options, so that is less
work for mvm to do i.e. the third-party stuff should be taken care of
automatically.

I'm taking a poke now.

However, I must remind myself that this is a distraction, since I am trying
to get a _stable_ VM for Pharo 5.0. Somehow I have been swept up in this
enthusiasm for building the bleeding edge Pharo 6.0 VM that is not actually
of any practical use to me :-) although it will be in the near future.


Re: [Pharo-users] VM/Image magic numbers (Re: Pharo 6 snap install)

2017-04-18 Thread Luke Gorrie
On 15 April 2017 at 01:22, Ben Coman  wrote:

> The "magic decode for image files" seems related and possibly *very*
> useful
> http://forum.world.st/magic-decode-for-image-files-td4941712.html#a4941837
>
> Now traditionally the VM has been backward compatible with old Images,
> but Pharo doesn't necessarily adhere to that and policy IIUC is
> release specific VM/Image pairs.
> So does Pharo require extra magic numbers to co-ordinate this?
> And how would this interact with OpenSmalltalk policy on these magic
> numbers?
>

I would really like a copy of the script that checks the magic number and
starts the right VM. David, could you share yours please?

I started writing

case file -m @share@/magic "$image" in
'Smalltalk image V3 32b*')
vm=@pharo-vm-cog@
;;
'Smalltalk image Spur 32b*')
vm=@pharo-vm-spur@
;;
'Smalltalk image Spur 64b*')
vm=@pharo-vm-spur64@
;;
*)
echo unrecognized image file format
;;
esac


... but would prefer to avoid reinventing the wheel e.g. on how to find the
image name in amongst the various options passed to $@.

I would quite like for my package to be able to open the pharo-launcher
image and the various images that this downloads. This means supporting
pre-spur images. I would ideally like to do that by building a non-spur
version of the latest VM, but I am not sure if that is supported for pharo,
there is no mvm script for non-spur. The alternative would be to just build
an old VM release with cmake.


Re: [Pharo-users] Out of image IDE

2017-05-04 Thread Luke Gorrie
On 4 May 2017 at 05:26, Sean P. DeNigris  wrote:

> Forwarding message stuck on Nabble (probably the author is not subscribed
> to
> the list)...
>
> sigipa wrote
> > Hello All,
> >
> > I've been playing with Pharo off and on for a few years now. I have
> > thought a lot about where and how I could potentially use it. I have an
> > idea about how I would really like it to work, but up to now I haven't
> had
> > the chance to pursue it. I think I may even have had a discussion about
> it
> > with someone on this list at some point. Due to some recent changes in my
> > situation, It looks I may be at a point that I can look into things more
> > seriously.


I am in a possibly similar situation.

I have also been wanting better tools for my application development work
for some years now, and this year it has finally bubbled up to the top of
my priority list. My applications are not based on Pharo but I want to use
Pharo for the tooling.

The basic design I am following is a frontend/backend split. The frontend
is Pharo with the "Moldable Tools" concept i.e. spotter, inspector, Roassal
visualizations, etc. The backend is nix i.e. integrating diverse tools
(profilers, debuggers, protocol analyzers, statistical models, physical
hardware resources, etc.)

I am building network equipment and mostly need diagnostic tools for
profiling and troubleshooting issues after they have occurred. So my
emphasis is not so much live coding as "what interesting observations can
we make about these 1000 core dump files from various environments and
software versions?"

I hope that the design will be practical and that the project will grow to
support other people's applications too. Just now it is very early days.
Link: https://github.com/studio/studio

Cheers,
-Luke


[Pharo-users] How to run a window in full-screen mode?

2017-07-17 Thread Luke Gorrie
Hoi!

I am looking for a way to run a window in full-screen mode in Pharo. That
is it should maximize, beyond the bounds that the expand button usually
takes, and it should automatically resize when the world does.

I'm thinking of the GTInspector but a custom class would be fine too.

Is there a simple solution?

On Discord I got a partial solution:

window := GTInspector openOn: self.
window
  removeBoxes;
  beSticky;
  bounds: window world clearArea.

but the main problem here is that it doesn't resize when the world does.

I wonder if it would make more sense to avoid the SystemWindow and embed
the inspector directly in the World somehow...?

Cheers!
-Luke


Re: [Pharo-users] How to run a window in full-screen mode?

2017-07-17 Thread Luke Gorrie
On 17 July 2017 at 16:02, Nicolai Hess  wrote:

> There is a FullscreenMorph
>

Thanks, Nicolai! That's exactly what I need.

I wonder how I missed it in the Spotter :).


Re: [Pharo-users] Performance Testing Tools

2017-07-19 Thread Luke Gorrie
Hi Evan,

I am also really interesting in this topic and have been doing a bunch of
work on automating statistical benchmarks. I don't have a background in
statistics or formal QA but I am learning as I go along :).

The tools I'm building are outside Smalltalk. Our full performance test
suite takes about a week of machine time to run because tests ~15,000 QEMU
VMs with different software versions / configurations / workloads. There is
a CI server that runs all those tests, getting pretty fast turnarounds by
distributing across a cluster of servers and reusing results from
unmodified software branches, and spits out a CSV with one row per test
result (giving the benchmark score and the parameters of the test.)

Then what to do with that ~15,000 line CSV file? Just now I run Rmarkdown
to make a report on the distribution of results and then manually inspect
that to check for interesting differences. I lump all of the different
configurations in together and treat them as one population at the moment.
Here is an example report:
https://hydra.snabb.co/build/1604171/download/2/report.html

It's a bit primitive but it is getting the job done for release
engineering. I'm reasonably confident that new software releases don't
break or slow down in obscure configurations. We are building network
equipment and performance regressions are generally not acceptable.

I'm looking into more clever ways to automatically interpret the results,
e.g. fumbling around at
https://stats.stackexchange.com/questions/288416/non-parametric-test-if-two-samples-are-drawn-from-the-same-distribution
.

Could relate to your ambitions somehow?


On 19 July 2017 at 02:00, Evan Donahue  wrote:

> Hi,
>
> I've been doing a lot of performance testing lately, and I've found myself
> wanting to upgrade my methods from ad hoc use of bench and message tally.
> Is there any kind of framework for like, statistically comparing
> improvements in performance benchmarks across different versions of code,
> or anything that generally helps manage the test-tweak-test loop? Just
> curious what's out there before I go writing something. Too many useful
> little libraries to keep track of!
>
> Evan
>


Re: [Pharo-users] Shameful advertisement

2017-07-28 Thread Luke Gorrie
Hi Serge,

Just wanted to say that you guys do a really nice job of advocating for
Pharo and promoting it :).

I joined the association now and will be sure to plug Pharo. It's great. I
wouldn't build my current application at all if I didn't have
Pharo/Glamour/Roassal as a base... it would be too much work.




On 28 July 2017 at 11:10, Serge Stinckwich 
wrote:

> Hi all,
>
> I was talking about Twitter in my previous email. This is a nice way to
> advertise the work of the community to others communities.
>
> Now some **shameful advertisement** : you can subscribe to my Twitter
> account here:
> https://twitter.com/SergeStinckwich
>
> I try my best to publish info about Pharo/Smalltalk community and with my
> 1733 followers I can have some impact sometimes.
>
> Please send me a private email if you want to advertise something specific
> about your work.
>
> They are other interesting accounts to follow:
> - PharoProject: https://twitter.com/pharoproject
> - PharoJS: https://twitter.com/pharojs
> ​- Stéphane Ducasse: https://twitter.com/stephaneducasse
> - Tudor Girba : https://twitter.com/girba
> ​- ObjectProfile : https://twitter.com/ObjectProfile
>
> ​and many others !​
>
> ​Regards,​
>
> --
> Serge Stinckwich
> UCN & UMI UMMISCO 209 (IRD/UPMC)
> Every DSL ends up being Smalltalk
> http://www.doesnotunderstand.org/
>


[Pharo-users] Loading and saving packages to filetree repos

2017-08-17 Thread Luke Gorrie
Hoi,

I want to have a quick "cheat mode" for loading and saving the Smalltalk
packages in my project. This is to make life easy for newbies who are not
very familiar with Monticello and Metacello.

The "cheat" is to assume that there is one filetree:// repository that
contains all of the relevant packages, and all we need to do is load or
save each of those packages in that repository.

I have the loading part working already:

repo := MCFileTreeRepository new directory: '/foo/bar/baz'
asFileReference.
repo allFileNames do: [ :file |
(repo versionFromFileNamed: file) load.
  ].

but now I am wondering how to do the saving part? That is, given a path to
a filetree repo like '/foo/bar/baz', how do I save each package in that
repo i.e. export the code in the image?

Ideally I would like the same operation to skip metadata that is likely to
cause conflicts when the code is checked into Git later e.g. package
timestamps and versions.

Tips would be appreciated :).


Re: [Pharo-users] Loading and saving packages to filetree repos

2017-08-20 Thread Luke Gorrie
Hi Thierry,

I am really looking for a "low-tech" solution here - five line Monticello
code snippet - that will be easy for me to understand (as a newbie) and
also easy for new contributors to my project to understand (who will have
no prior exposure to Pharo.)

I don't know what AltBrowser is, but just as a user I need to get a bit
more "winnage" before I am ready to take another iteration at learning more
tools. The tools currently represent barriers in the way of solving my
problems. I am sure this will change over time with more gradual learning
and experience.


On 18 August 2017 at 16:28, Thierry Goubier 
wrote:

> Hi Luke,
>
> if you use gitfiletree with AltBrowser and configurations/baselines, then
> you'll see that you have a command to do the writing for you, without
> metadata and with a single git commit.
>
> Regards,
>
> Thierry
>
>
> Le 17/08/2017 à 13:25, Luke Gorrie a écrit :
>
>> Hoi,
>>
>> I want to have a quick "cheat mode" for loading and saving the Smalltalk
>> packages in my project. This is to make life easy for newbies who are not
>> very familiar with Monticello and Metacello.
>>
>> The "cheat" is to assume that there is one filetree:// repository that
>> contains all of the relevant packages, and all we need to do is load or
>> save each of those packages in that repository.
>>
>> I have the loading part working already:
>>
>>  repo := MCFileTreeRepository new directory: '/foo/bar/baz'
>> asFileReference.
>>  repo allFileNames do: [ :file |
>>  (repo versionFromFileNamed: file) load.
>>].
>>
>> but now I am wondering how to do the saving part? That is, given a path
>> to a filetree repo like '/foo/bar/baz', how do I save each package in that
>> repo i.e. export the code in the image?
>>
>> Ideally I would like the same operation to skip metadata that is likely
>> to cause conflicts when the code is checked into Git later e.g. package
>> timestamps and versions.
>>
>> Tips would be appreciated :).
>>
>>
>>
>>
>
>


Re: [Pharo-users] Loading and saving packages to filetree repos

2017-08-20 Thread Luke Gorrie
I wish that somebody would take my original question at face value.

It is frustrating to be told that I don't really understand the problem. I
actually believe that the solution I am looking for is what I need in this
project at this time. I don't want to write an essay-length justification
for this position though.


Re: [Pharo-users] Loading and saving packages to filetree repos

2017-08-25 Thread Luke Gorrie
On 20 August 2017 at 12:50, stephan  wrote:

> I'm afraid you might do newbies a disservice by adding yet another way of
> loading and saving combinations of packages.


I have been reflecting on this point a bit. I think there are two relevant
classes of newbies here.

One is people who are learning to be Pharo hackers and joining this
community. They need to "get with the program" and learn to do things the
same way as everybody else. So they need to learn Smalltalk, Monticello,
Metacello, Iceberg, FogBugz, etc.

The other is people who are using a Pharo-based application and want to
make an extension. For example, imagine a Dr. Geo user who wants to
contribute support for a new geometric function that they need for their
work. This person needs to take the shortest path to solving their problem:
reuse their existing skills (e.g. command-line git) and make use of
examples (e.g. copy-paste-tweak some existing code.)

I'm concerned about the latter group. I'm building an application that I
want users to be able to extend, and I am assuming that most of them are
not aspiring Smalltalk hackers (yet.) So I am wondering how to minimize the
barriers to entry for people to contribute their first extension.

My model is Emacs. Lots of people use Emacs to edit text files. Many of
them become power users by copy-paste-tweak from each others' configuration
files. Only a few take the next step and learn Lisp e.g. to understand what
"lambda" actually means. Everybody manages to participate and share.

So, coming back to point, this is why I imagine now is to have a simple
"Save all..." item in the World menu that saves all of the
relevant-to-this-application packages back into a directory on the local
disk (which will be a Git checkout that can be committed, pushed, and Pull
Requested.) Then I don't need to force people to learn Metacello, etc, just
to become "power users" of the application.

Maybe I am still on the wrong track anyway? Maybe others have been down
this specific trail before, too?


[Pharo-users] Glamorous Toolkit as IDE for another language?

2016-10-22 Thread Luke Gorrie
Howdy,

I am interested in building a Lua IDE using the Glamorous Toolkit. The idea
is that the Playground, the Inspector, the Spotter, and the Debugger would
all be interacting with an external Lua process instead of running code in
the Pharo image. The "under the hood" part of Pharo - Smalltalk code -
would be hidden unless specially enabled.

Good or bad idea? Any tips on how to approach this? Has something similar
been done before? (Is there example code available?)

Cheers,
-Luke


[Pharo-users] How to consume the MOOC?

2016-11-04 Thread Luke Gorrie
Howdy!

Just a question from a confused newbie: What is the easiest way to consume
the Pharo MOOC content in English?

I have tried to find the content a few times over the past few months but
so far I have hit a registration page / short trailer video / video in
French. (I keep hoping that a YouTube channel will appear that makes the
videos easy to follow in sequence on any device.)

Cheers!
-Luke


Re: [Pharo-users] How to consume the MOOC?

2016-11-06 Thread Luke Gorrie
Hi Stepharo,

On 5 November 2016 at 18:14, stepharo  wrote:

> you can use the webportal (it supports subtitles in french and english -
> but read carefully what we wrote because we got trapped into a bug with
> certain configurations).
>
> http://rmod-pharo-mooc.lille.inria.fr/MOOC/WebPortal/co/pharo.html


Thanks for this link! I had somehow missed the webportal and this looks
like the right thing for me.