2010/3/28 laurent laffont <laurent.laffont@gmail.com>

2010/3/28 Mariano Martinez Peck <marianopeck@gmail.com>
Hi Laurent. I have been trying to compile the VM directly from your sources, but I found some problems.


The first one was that I haven't installed cmake. Thus, I have to do a sudo apt-get install cmake. After that, it could do the configure.

Then, the second error is that when trying to configure, there are some libraries or headers not found. I attach the output of the configure command.

In debian-based distro headers are in separate packages, the ones that ends with -dev. (flamewar inside:) that's why I've switched to ArchLinux, far more simple).


Yes. I know that problem ;)�� With SqueakDBX I had the same problem when installing the dev packages of the database client libraries.
So when a header is not found, like�asoundlib.h, the easy way is to go to�http://packages.ubuntu.com/ , go down the page to "Search the contents of packages" and fill the search field with the name of file.�
You will see that it's libasound2-dev package.


Good link! I didn't know how to easily search it. Thanks
In debian (I don't really know ubuntu), you have apt-file to search for a package's file:
apt-file search asoundlib.h

And a really great command is "auto-apt run" which installs automagically all needed packages for a given command. You can try:
auto-apt run ../unix/cmake/configure

when it detects a missing header, it will search the corresponding package and prompt you to install it.


I tried both tools but don't seem to work...I don't know why. They just do nothing. But anyway, I do it manually :)

If someone is interested, these are all the packages I needed to install in order not to have problems in my Ubuntu 9.10:

sudo apt-get install linux-libc-dev libecasound2.2-dev libasound2-dev libc6-dev gnulib libc6-dev libpulse-dev libxrender-dev uuid-dev


In addition, is the output of the configure written somewhere like config.log or similar ?

It seems no. You can do�
�../unix/cmake/configure > config.log


yes, thanks :)

2) why the "squeak" executable has "hardcoded" the parameters "-pathenc UTF-8 -encoding UTF-8 -plugins /usr/local/lib/squeak/3.11.13-2135 -vm-sound-oss"
is that correct ?� do I ALWAYS want all those parameters ? And if I don't want them, how can I execute a "clean" squeak ?


May be you can remove sound related plugin... �take a look at�
../unix/cmake/configure �--help
...
--without-<plugin> � �do not build the named plugin
....


Ok.....but not only plugins. For exaple, if I don't want UTF-8 ?


You can also generate your own src using the Pharo-Core with VMMaker image I've made�http://lolgzs.free.fr/pharo/squeak-vm/PharoCore-1.0-VMMaker-1.2.tar.gz

VMMaker is already configured. Just remove the sound plugin from external plugins, adapt paths to your system and click "Entire".


Thanks. I did this several times, but in MacOS, not linux. But this step is the same :)


Finally, in another thread, Eliot told me how to be able to debug SqueakVM with Gdb and threads. He told me to do:

../unix/cmake/configure CFLAGS="-g3 -pthread" LIBS=-lpthread

but configure says:

unknown option: CFLAGS=-g3 -pthread
unknown option: LIBS=-lpthread

you forgot the --



ufff.....what an idiot...thanks!� did you already discovered I am a newbie here ? :)

Thanks for everything.

Mariano

../unix/cmake/configure --CFLAGS="-g3-pthread"

Laurent Laffont

Do you know how can I do this ?�� should I send this email to vm mailing list ?

Thanks a lot in advance!�

Mariano



On Sun, Mar 28, 2010 at 12:50 PM, Levente Uzonyi <leves@elte.hu> wrote:
Your optimization flags are probably ignored by cmake: see this thread http://lists.squeakfoundation.org/pipermail/vm-dev/2010-January/003736.html

You could also give these flags a try on x86 cpus: -O3 -fomit-frame-pointer -mfpmath=sse -march=native


Levente


On Sun, 28 Mar 2010, laurent laffont wrote:

More benchmarks.

Updated procedure with gcc optimizations activated:
wget
http://lolgzs.free.fr/pharo/squeak-vm/Squeak-3.11.3.2135-pharo-src.tar.gz
tar -xvzf Squeak-3.11.3.2135-pharo-src.tar.gz
cd Squeak-3.11.3.2135-pharo-src/
mkdir build && cd build
../unix/cmake/configure �--CFLAGS="-O2"
make
sudo make install


Squeak VM 3.11.3 -r 2135 + FT2Plugin
==========================================
334421946 bytecodes/sec; 8026581 sends/sec
334640522 bytecodes/sec; 7449884 sends/sec
334421946 bytecodes/sec; 7449884 sends/sec
334421946 bytecodes/sec; 7675486 sends/sec
327156549 bytecodes/sec; 7598782 sends/sec

Squeak VM 3.11.3 -r 2135 + FT2Plugin + CFLAGS=-O2
==========================================
330109606 bytecodes/sec; 9183392 sends/sec
331177231 bytecodes/sec; 9190792 sends/sec
330535829 bytecodes/sec; 9198204 sends/sec
329896907 bytecodes/sec; 9220511 sends/sec
330963154 bytecodes/sec; 8973857 sends/sec

Squeak VM 3.11.3 -r 2135 + FT2Plugin + CFLAGS=-O3
==========================================
296811594 bytecodes/sec; 10138464 sends/sec
296467863 bytecodes/sec; 10129460 sends/sec
296639629 bytecodes/sec; 10138464 sends/sec
296124927 bytecodes/sec; 7920675 sends/sec
296296296 bytecodes/sec; 7926179 sends/sec

Squeak VM 3.11.3 -r 2151 + FT2Plugin + Gnuification
==========================================
306586826 bytecodes/sec; 7218843 sends/sec
308248043 bytecodes/sec; 7209717 sends/sec
308805790 bytecodes/sec; 7223415 sends/sec
309552599 bytecodes/sec; 7218843 sends/sec
309927360 bytecodes/sec; 7269453 sends/sec

Squeak VM 3.11.3 -r 2151 + FT2Plugin + Gnuification + CFLAGS=-O2
==========================================
293073840 bytecodes/sec; 8807546 sends/sec
292070735 bytecodes/sec; 8841684 sends/sec
281628162 bytecodes/sec; 8896858 sends/sec
294422081 bytecodes/sec; 8903804 sends/sec

Laurent Laffont


2010/3/28 Mariano Martinez Peck <marianopeck@gmail.com>



2010/3/27 laurent laffont <laurent.laffont@gmail.com>

OK, I've tried the Smalltalk one...

With rev 2151 gnuification (awk) is done as I have gnu-interp.c
and gnu-interp.c.log in my build directory.

Benchmark gives me:

Squeak VM 3.11.3 -r 2151 + FT2Plugin + Gnuification
==========================================
312385600 bytecodes/sec; 7320778 sends/sec
310868245 bytecodes/sec; 8271046 sends/sec
310679611 bytecodes/sec; 8271046 sends/sec
310868245 bytecodes/sec; 7232576 sends/sec
310491206 bytecodes/sec; 8271046 sends/sec

compared to

�Squeak VM 3.11.3 -r 2135 + FT2Plugin
==========================================
334421946 bytecodes/sec; 8026581 sends/sec
334640522 bytecodes/sec; 7449884 sends/sec
334421946 bytecodes/sec; 7449884 sends/sec
334421946 bytecodes/sec; 7675486 sends/sec
327156549 bytecodes/sec; 7598782 sends/sec

so it seems that on my machine rev 2135 without gnuification is a little
better. I have GCC 4.4.3, �Linux 32bits.


I don't understand....it is slower with the gnuification ?

weird....




Laurent Laffont



On Sat, Mar 27, 2010 at 8:55 PM, Levente Uzonyi <leves@elte.hu> wrote:

On Sat, 27 Mar 2010, laurent laffont wrote:

�I've tried gnuification on rev 2151. cmake/configure OK. But while
building:


/home/lol/sandbox/squeakvm/Squeak-3.11.3.2151-pharo-src/build/gnu-interp.c:25104:2:
erreur: #error GNUIFICATION FAILED ( 0 )


Which gnuification method did you try?
There are two different versions. The origial version is an awk script
which is run when you're building the vm with make. This is executed by
default if you have awk installed.
There's another version written in smalltalk (linked by Mariano into this
thread) which is not used by VMMAker at the moment, you probably don't need
that. If you applied the latter one, you have to make sure that the first
one is not executed. You can't gnuifying the sources twice.
Since both do the same, the best you can do now is to ignore the
smalltalk version. If VMMaker will adopt Gnuifier.st we can remove the awk
dependency from the build process, until then you shouldn't apply it if your
platform has awk installed.


Levente




Laurent Laffont


On Sat, Mar 27, 2010 at 6:47 PM, laurent laffont
<laurent.laffont@gmail.com>wrote:

�Does it mean latest SVN source is already "Gnuified" ? �With latest
rev.
I

have a little drop in benchmarks. However I'd rather put a stable

release

for Pharo 1.0 than latest trunk. What do you think ?


The so-called "gnuification" is a transformation of the interp.c file.
So
this is done after generating the sources with VMMaker. The cmake
configuration that comes with revision 2135 does not have this step
enabled,
and the more recent version that I used, revision 2151, has it. The
magic is
in the awk script in unix/cmake/gnuify.awk which produes gnu-interp.c.


OK thanks. I will take a look.

Laurent Laffont




Cheers,
Adrian


Laurent Laffont



Adrian


_______________________________________________
Pharo-project mailing list
Pharo-project@lists.gforge.inria.fr
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

�_______________________________________________
Pharo-project mailing list
Pharo-project@lists.gforge.inria.fr
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project



_______________________________________________
Pharo-project mailing list
Pharo-project@lists.gforge.inria.fr
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project





_______________________________________________
Pharo-project mailing list
Pharo-project@lists.gforge.inria.fr
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project



_______________________________________________
Pharo-project mailing list
Pharo-project@lists.gforge.inria.fr
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project



_______________________________________________
Pharo-project mailing list
Pharo-project@lists.gforge.inria.fr
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project



_______________________________________________
Pharo-project mailing list
Pharo-project@lists.gforge.inria.fr
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
Pharo-project mailing list
Pharo-project@lists.gforge.inria.fr
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
Pharo-project mailing list
Pharo-project@lists.gforge.inria.fr
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project