linux minheadless pharo vm builds itimer or heartbeat?

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

linux minheadless pharo vm builds itimer or heartbeat?

Alistair Grant
 
Hi All,

Are Pharo linux minheadless builds itimer or threaded heartbeat?

(all the listings below are extracts, not the complete file / page)

The file list on bintray suggests that they are itimer:

https://bintray.com/opensmalltalk/vm/cog/201907112020#files

pharo.cog.spur+sdl2-cmake-minhdls_linux64x64_itimer_201907112020.tar.gz
6 days ago 4.23 MB
pharo.cog.spur-cmake-minhdls_linux64x64_itimer_201907112020.tar.gz 6
days ago 4.22 MB


While travis indicates that only threaded heartbeat versions are built:

https://travis-ci.org/OpenSmalltalk/opensmalltalk-vm/builds/553922116

Setting environment variables from .travis.yml
$ export ARCH="linux64x64"
$ export FLAVOR="pharo.cog.spur"
$ export CPU_ARCH="x64"
$ export HEARTBEAT="threaded"
$ export BUILD_WITH_CMAKE="yes"


.travis.yml agrees with the travis output:

  - stage: "Minheadless CMake builds"
  - env: ARCH="linux32x86" FLAVOR="pharo.cog.spur" CPU_ARCH="x86"
HEARTBEAT="threaded" BUILD_WITH_CMAKE="yes"
  - env: ARCH="linux64x64" FLAVOR="pharo.cog.spur" CPU_ARCH="x64"
HEARTBEAT="threaded" BUILD_WITH_CMAKE="yes"


And pack-vm.sh seems to be doing the right thing when determining how
to name the archive:

  for dir in */; do
    if [[ "${ARCH}" == *"ARM"* || "${dir}" == *"ht/" ]]; then
      name="${IDENTIFIER}"
    else
      name="${IDENTIFIER_ITIMER}"
    fi


Unfortunately figuring out which VM is being used isn't helped by the
fact that "pharo --version" doesn't work with minheadless:

$ ./pharo --version
Opening Image: --version
Opening Image: No such file or directory
Error opening image file: --version


Thanks,
Alistair
Reply | Threaded
Open this post in threaded view
|

Re: linux minheadless pharo vm builds itimer or heartbeat?

Ronie Salgado
 
Hi Alistair,

That is a bug that I have to fix. Currently, it is only using and old version of the threaded heartbeat. This because of the intentional duplication of code that I did originally when doing the minheadless VM:
1.- Remove everything.
2.- Stub all of the platform specific code
3.- Compile and fix linking errors by adding the platform specific code.

Now the missing step is to remove this code duplication by merging the code of the minheadless VM with the normal VM. The main problem of fixing this is that I will need to coordinate with the rest of the VM community on what is the best course of action. In my opinion, I think that the correct way for doing this is to use the minheadless VM as the core VM, and support the different windowing systems by refactoring the code in folders under the platforms/minheadless/

Best regards,
Ronie

El jue., 18 jul. 2019 a las 10:11, Alistair Grant (<[hidden email]>) escribió:
 
Hi All,

Are Pharo linux minheadless builds itimer or threaded heartbeat?

(all the listings below are extracts, not the complete file / page)

The file list on bintray suggests that they are itimer:

https://bintray.com/opensmalltalk/vm/cog/201907112020#files

pharo.cog.spur+sdl2-cmake-minhdls_linux64x64_itimer_201907112020.tar.gz
6 days ago 4.23 MB
pharo.cog.spur-cmake-minhdls_linux64x64_itimer_201907112020.tar.gz 6
days ago 4.22 MB


While travis indicates that only threaded heartbeat versions are built:

https://travis-ci.org/OpenSmalltalk/opensmalltalk-vm/builds/553922116

Setting environment variables from .travis.yml
$ export ARCH="linux64x64"
$ export FLAVOR="pharo.cog.spur"
$ export CPU_ARCH="x64"
$ export HEARTBEAT="threaded"
$ export BUILD_WITH_CMAKE="yes"


.travis.yml agrees with the travis output:

  - stage: "Minheadless CMake builds"
  - env: ARCH="linux32x86" FLAVOR="pharo.cog.spur" CPU_ARCH="x86"
HEARTBEAT="threaded" BUILD_WITH_CMAKE="yes"
  - env: ARCH="linux64x64" FLAVOR="pharo.cog.spur" CPU_ARCH="x64"
HEARTBEAT="threaded" BUILD_WITH_CMAKE="yes"


And pack-vm.sh seems to be doing the right thing when determining how
to name the archive:

  for dir in */; do
    if [[ "${ARCH}" == *"ARM"* || "${dir}" == *"ht/" ]]; then
      name="${IDENTIFIER}"
    else
      name="${IDENTIFIER_ITIMER}"
    fi


Unfortunately figuring out which VM is being used isn't helped by the
fact that "pharo --version" doesn't work with minheadless:

$ ./pharo --version
Opening Image: --version
Opening Image: No such file or directory
Error opening image file: --version


Thanks,
Alistair
Reply | Threaded
Open this post in threaded view
|

Re: linux minheadless pharo vm builds itimer or heartbeat?

Alistair Grant
 
Hi Ronie,

Thanks for your update.  I haven't looked at the directory structure,
but the idea of using minheadless as the core makes sense.

Thanks again,
Alistair

On Thu, 18 Jul 2019 at 16:56, Ronie Salgado <[hidden email]> wrote:

>
>
> Hi Alistair,
>
> That is a bug that I have to fix. Currently, it is only using and old version of the threaded heartbeat. This because of the intentional duplication of code that I did originally when doing the minheadless VM:
> 1.- Remove everything.
> 2.- Stub all of the platform specific code
> 3.- Compile and fix linking errors by adding the platform specific code.
>
> Now the missing step is to remove this code duplication by merging the code of the minheadless VM with the normal VM. The main problem of fixing this is that I will need to coordinate with the rest of the VM community on what is the best course of action. In my opinion, I think that the correct way for doing this is to use the minheadless VM as the core VM, and support the different windowing systems by refactoring the code in folders under the platforms/minheadless/
>
> Best regards,
> Ronie
>
> El jue., 18 jul. 2019 a las 10:11, Alistair Grant (<[hidden email]>) escribió:
>>
>>
>> Hi All,
>>
>> Are Pharo linux minheadless builds itimer or threaded heartbeat?
>>
>> (all the listings below are extracts, not the complete file / page)
>>
>> The file list on bintray suggests that they are itimer:
>>
>> https://bintray.com/opensmalltalk/vm/cog/201907112020#files
>>
>> pharo.cog.spur+sdl2-cmake-minhdls_linux64x64_itimer_201907112020.tar.gz
>> 6 days ago 4.23 MB
>> pharo.cog.spur-cmake-minhdls_linux64x64_itimer_201907112020.tar.gz 6
>> days ago 4.22 MB
>>
>>
>> While travis indicates that only threaded heartbeat versions are built:
>>
>> https://travis-ci.org/OpenSmalltalk/opensmalltalk-vm/builds/553922116
>>
>> Setting environment variables from .travis.yml
>> $ export ARCH="linux64x64"
>> $ export FLAVOR="pharo.cog.spur"
>> $ export CPU_ARCH="x64"
>> $ export HEARTBEAT="threaded"
>> $ export BUILD_WITH_CMAKE="yes"
>>
>>
>> .travis.yml agrees with the travis output:
>>
>>   - stage: "Minheadless CMake builds"
>>   - env: ARCH="linux32x86" FLAVOR="pharo.cog.spur" CPU_ARCH="x86"
>> HEARTBEAT="threaded" BUILD_WITH_CMAKE="yes"
>>   - env: ARCH="linux64x64" FLAVOR="pharo.cog.spur" CPU_ARCH="x64"
>> HEARTBEAT="threaded" BUILD_WITH_CMAKE="yes"
>>
>>
>> And pack-vm.sh seems to be doing the right thing when determining how
>> to name the archive:
>>
>>   for dir in */; do
>>     if [[ "${ARCH}" == *"ARM"* || "${dir}" == *"ht/" ]]; then
>>       name="${IDENTIFIER}"
>>     else
>>       name="${IDENTIFIER_ITIMER}"
>>     fi
>>
>>
>> Unfortunately figuring out which VM is being used isn't helped by the
>> fact that "pharo --version" doesn't work with minheadless:
>>
>> $ ./pharo --version
>> Opening Image: --version
>> Opening Image: No such file or directory
>> Error opening image file: --version
>>
>>
>> Thanks,
>> Alistair