Compiling Pharo VM used for P8

JV
Jan Vraný
Fri, Sep 1, 2023 12:32 PM

Hi,

I'm trying (and failing) to (re)compile Pharo VM used for P8, more specifically
this one (from `pharo -version): Date: Wed Feb 12 11:43:20 2020 CommitHash: 52202d8.
I'm targeting linux on x86_64.

Whether I use mvm (seems that it was used by Jenkins by then) or cmake I always end
up having following errors (just a few, there're loads of them):

/usr/bin/ld: vm/vm.a(cogit.o):/redacted/pharo-vm/spur64src/vm/cointerp.h:377: multiple definition of debugCallbackInvokes'; vm/vm.a(gcc3x- cointerp.o):/redacted/pharo-vm/spur64src/vm/cointerp.h:377: first defined here /usr/bin/ld: vm/vm.a(cogit.o):/redacted/pharo-vm/spur64src/vm/cointerp.h:376: multiple definition of checkForLeaks'; vm/vm.a(gcc3x-
cointerp.o):/redacted/pharo-vm/spur64src/vm/cointerp.h:376: first defined here
/usr/bin/ld: vm/vm.a(cogit.o):/redacted/pharo-vm/spur64src/vm/cointerp.h:375: multiple definition of checkedPluginName'; vm/vm.a(gcc3x- cointerp.o):/redacted/pharo-vm/spur64src/vm/cointerp.h:375: first defined here /usr/bin/ld: vm/vm.a(cogit.o):/redacted/pharo-vm/spur64src/vm/cointerp.h:374: multiple definition of checkAllocFiller'; vm/vm.a(gcc3x-
cointerp.o):/redacted/pharo-vm/spur64src/vm/cointerp.h:374: first defined here
/usr/bin/ld: vm/vm.a(cogit.o):/redacted/pharo-vm/spur64src/vm/cointerp.h:371: multiple definition of `breakLookupClassTag'; vm/vm.a(gcc3x-
cointerp.o):/redacted/pharo-vm/spur64src/vm/cointerp.h:371: first defined here

Does anyone have an idea? Is there a more detailed description of build
environment to use?

Thanks! Jan

Hi, I'm trying (and failing) to (re)compile Pharo VM used for P8, more specifically this one (from `pharo -version): Date: Wed Feb 12 11:43:20 2020 CommitHash: 52202d8. I'm targeting linux on x86_64. Whether I use mvm (seems that it was used by Jenkins by then) or cmake I always end up having following errors (just a few, there're loads of them): /usr/bin/ld: vm/vm.a(cogit.o):/redacted/pharo-vm/spur64src/vm/cointerp.h:377: multiple definition of `debugCallbackInvokes'; vm/vm.a(gcc3x- cointerp.o):/redacted/pharo-vm/spur64src/vm/cointerp.h:377: first defined here /usr/bin/ld: vm/vm.a(cogit.o):/redacted/pharo-vm/spur64src/vm/cointerp.h:376: multiple definition of `checkForLeaks'; vm/vm.a(gcc3x- cointerp.o):/redacted/pharo-vm/spur64src/vm/cointerp.h:376: first defined here /usr/bin/ld: vm/vm.a(cogit.o):/redacted/pharo-vm/spur64src/vm/cointerp.h:375: multiple definition of `checkedPluginName'; vm/vm.a(gcc3x- cointerp.o):/redacted/pharo-vm/spur64src/vm/cointerp.h:375: first defined here /usr/bin/ld: vm/vm.a(cogit.o):/redacted/pharo-vm/spur64src/vm/cointerp.h:374: multiple definition of `checkAllocFiller'; vm/vm.a(gcc3x- cointerp.o):/redacted/pharo-vm/spur64src/vm/cointerp.h:374: first defined here /usr/bin/ld: vm/vm.a(cogit.o):/redacted/pharo-vm/spur64src/vm/cointerp.h:371: multiple definition of `breakLookupClassTag'; vm/vm.a(gcc3x- cointerp.o):/redacted/pharo-vm/spur64src/vm/cointerp.h:371: first defined here Does anyone have an idea? Is there a more detailed description of build environment to use? Thanks! Jan
GP
Guillermo Polito
Mon, Sep 4, 2023 8:47 AM

Hi Jan,

could you share a link to the repo/commit you’re building?

Have you tried with this tag?

https://github.com/pharo-project/pharo-vm/tree/v8.6.1

G

El 1 sep. 2023, a las 14:32, Jan Vraný Jan.Vrany@labware.com escribió:

Hi,

I'm trying (and failing) to (re)compile Pharo VM used for P8, more specifically
this one (from `pharo -version): Date: Wed Feb 12 11:43:20 2020 CommitHash: 52202d8.
I'm targeting linux on x86_64.

Whether I use mvm (seems that it was used by Jenkins by then) or cmake I always end
up having following errors (just a few, there're loads of them):

/usr/bin/ld: vm/vm.a(cogit.o):/redacted/pharo-vm/spur64src/vm/cointerp.h:377: multiple definition of debugCallbackInvokes'; vm/vm.a(gcc3x- cointerp.o):/redacted/pharo-vm/spur64src/vm/cointerp.h:377: first defined here /usr/bin/ld: vm/vm.a(cogit.o):/redacted/pharo-vm/spur64src/vm/cointerp.h:376: multiple definition of checkForLeaks'; vm/vm.a(gcc3x-
cointerp.o):/redacted/pharo-vm/spur64src/vm/cointerp.h:376: first defined here
/usr/bin/ld: vm/vm.a(cogit.o):/redacted/pharo-vm/spur64src/vm/cointerp.h:375: multiple definition of checkedPluginName'; vm/vm.a(gcc3x- cointerp.o):/redacted/pharo-vm/spur64src/vm/cointerp.h:375: first defined here /usr/bin/ld: vm/vm.a(cogit.o):/redacted/pharo-vm/spur64src/vm/cointerp.h:374: multiple definition of checkAllocFiller'; vm/vm.a(gcc3x-
cointerp.o):/redacted/pharo-vm/spur64src/vm/cointerp.h:374: first defined here
/usr/bin/ld: vm/vm.a(cogit.o):/redacted/pharo-vm/spur64src/vm/cointerp.h:371: multiple definition of `breakLookupClassTag'; vm/vm.a(gcc3x-
cointerp.o):/redacted/pharo-vm/spur64src/vm/cointerp.h:371: first defined here

Does anyone have an idea? Is there a more detailed description of build
environment to use?

Thanks! Jan

Hi Jan, could you share a link to the repo/commit you’re building? Have you tried with this tag? https://github.com/pharo-project/pharo-vm/tree/v8.6.1 G > El 1 sep. 2023, a las 14:32, Jan Vraný <Jan.Vrany@labware.com> escribió: > > Hi, > > I'm trying (and failing) to (re)compile Pharo VM used for P8, more specifically > this one (from `pharo -version): Date: Wed Feb 12 11:43:20 2020 CommitHash: 52202d8. > I'm targeting linux on x86_64. > > Whether I use mvm (seems that it was used by Jenkins by then) or cmake I always end > up having following errors (just a few, there're loads of them): > > /usr/bin/ld: vm/vm.a(cogit.o):/redacted/pharo-vm/spur64src/vm/cointerp.h:377: multiple definition of `debugCallbackInvokes'; vm/vm.a(gcc3x- > cointerp.o):/redacted/pharo-vm/spur64src/vm/cointerp.h:377: first defined here > /usr/bin/ld: vm/vm.a(cogit.o):/redacted/pharo-vm/spur64src/vm/cointerp.h:376: multiple definition of `checkForLeaks'; vm/vm.a(gcc3x- > cointerp.o):/redacted/pharo-vm/spur64src/vm/cointerp.h:376: first defined here > /usr/bin/ld: vm/vm.a(cogit.o):/redacted/pharo-vm/spur64src/vm/cointerp.h:375: multiple definition of `checkedPluginName'; vm/vm.a(gcc3x- > cointerp.o):/redacted/pharo-vm/spur64src/vm/cointerp.h:375: first defined here > /usr/bin/ld: vm/vm.a(cogit.o):/redacted/pharo-vm/spur64src/vm/cointerp.h:374: multiple definition of `checkAllocFiller'; vm/vm.a(gcc3x- > cointerp.o):/redacted/pharo-vm/spur64src/vm/cointerp.h:374: first defined here > /usr/bin/ld: vm/vm.a(cogit.o):/redacted/pharo-vm/spur64src/vm/cointerp.h:371: multiple definition of `breakLookupClassTag'; vm/vm.a(gcc3x- > cointerp.o):/redacted/pharo-vm/spur64src/vm/cointerp.h:371: first defined here > > Does anyone have an idea? Is there a more detailed description of build > environment to use? > > Thanks! Jan > > > > >
JV
Jan Vraný
Mon, Sep 4, 2023 10:12 AM

Hi,

freshly downloaded zeroconf VM for P8 shows in pharo -version:

Date: Wed Feb 12 11:43:20 2020 CommitHash: 52202d8.

so I tried this exact commit from https://github.com/pharo-project/pharo-vm.git :

commit 52202d80a407f05e9eb4bbd1001d21d913c4fc5b (tag: dev-7-20200212-2, origin/cog/dev-7)
Author: Pablo Tesone tesonep@gmail.com
Date:  Wed Feb 12 11:43:20 2020 +0100

   Adding B3D plugin dependencies

Just now also tried v8.6.1 as you suggested (from the same repo):

commit e829a1dabcea88556103ebe61f69e2a8fb1111ea (HEAD, tag: v8.6.1)
Author: Pablo Tesone tesonep@gmail.com
Date:  Tue Oct 13 15:43:09 2020 +0200

   Changing version to 8.6.1

using cmake:

git clone ... pharo-vm
cd pharo-vm
mkdir build
cd build
cmake ..
make

but got a bunch of errors too (though very different) - see below.

Jan

...
NewUndeclaredWarning: BalloonEnginePlugin>>primitiveAddRect (GEFWrongFill is Undeclared)
NewUndeclaredWarning: BalloonEnginePlugin>>primitiveAddRect (GEFEngineStopped is Undeclared)
NewUndeclaredWarning: BalloonEnginePlugin>>primitiveAddRect (GEFWorkTooBig is Undeclared)
NewUndeclaredWarning: BalloonEnginePlugin>>primitiveAddRect (GEFBadPoint is Undeclared)
NewUndeclaredWarning: BalloonEnginePlugin>>primitiveAddRect (GEFEntityLoadFailed is Undeclared)
MetacelloNotification: Loaded -> VMMaker-tonel.1 --- tonel:///home/jv/Projects/Pharo/pharo-vm/smalltalksrc --- cache
MetacelloNotification: Loading -> VMMakerCompatibilityForPharo6-tonel.1 --- tonel:///home/jv/Projects/Pharo/pharo-vm/smalltalksrc --- cache
Warning: This package depends on the following classes:
EncoderForV3
You must resolve these dependencies before you will be able to load these definitions:
EncoderForV3>>#extensionsAt:in:into:

MCPackageLoader(Object)>>notify:
MCPackageLoader>>warnAboutDependencies
MCPackageLoader>>validate
MCPackageLoader>>loadWithNameLike:
MCVersionLoader>>basicLoadWithNameLike:
[

...

adBlock goferLoad answers resolvedReference ...etc...
[:bar |
bar value: 1.
aBlock value.
bar value: 2 ] in IceMetacelloPharoPlatform(MetacelloPharoCommonPlatform)>>do:displaying: in Block: [:bar |...

*** Warning: Warning: This package depends on the following classes:
EncoderForV3
You must resolve these dependencies before you will be able to load these definitions:
EncoderForV3>>#extensionsAt:in:into:

NewUndeclaredWarning: OCAbstractScope>>childrenDo:after:suchThat: (children is Undeclared)
NewUndeclaredWarning: OCAbstractScope>>childrenDo:after:suchThat: (children is Undeclared)
NewUndeclaredWarning: OCAbstractScope>>childrenDo:suchThat: (children is Undeclared)
NewUndeclaredWarning: OCAbstractScope>>childrenDo:suchThat: (children is Undeclared)
NewUndeclaredWarning: DisplayText class>>text: (DefaultTextStyle is Undeclared)

...

MetacelloNotification: Loading -> FileAttributesPlugin-tonel.1 --- tonel:///home/jv/Projects/Pharo/pharo-vm/smalltalksrc --- cache
MetacelloNotification: Loaded -> FileAttributesPlugin-tonel.1 --- tonel:///home/jv/Projects/Pharo/pharo-vm/smalltalksrc --- cache
MetacelloNotification: ...finished baseline
[ 13%] Generating VM files for flavour: CoInterpreterWithQueueFFI
Generating #CoInterpreterWithQueueFFI in '/home/jv/Projects/Pharo/pharo-vm/build'...
NewUndeclaredWarning: VMMaker class>>forceNewFileNamed: (MultiByteFileStream is Undeclared)
NewUndeclaredWarning: VMMaker class>>forceNewFileNamed: (MultiByteFileStream is Undeclared)
#MultiByteFileStream is missing, and does not understand #forceNewFileNamed:
UndefinedObject>>doesNotUnderstand: #forceNewFileNamed:
VMMaker class>>forceNewFileNamed:
CCodeGeneratorGlobalStructure(CCodeGenerator)>>storeHeaderOnFile:contents:

...

FullBlockClosure(BlockClosure)>>on:do:
PharoCommandLineHandler(BasicCommandLineHandler)>>activateSubCommand:
PharoCommandLineHandler(BasicCommandLineHandler)>>handleSubcommand
PharoCommandLineHandler(BasicCommandLineHandler)>>handleArgument:
Syntax Error on line 1: 'Variable or expression expected'

---========================
1: er frameCallerSP: (interpreter frameCallerFP: interpreter framePointer).
^
2: aContext := interpreter ensureFrameIsMarried: framePointerToMarry SP: stackPointerToMarry.
3: interpreter externalDivorceFrame: framePointerToMarry andContext: aContext.
4: expectedDivorcedContext := interpreter frameCallerContext: interpreter stackPage baseFP.
5:
6: self assert: expectedDivorcedContext equals: aContext.
make[2]: *** [CMakeFiles/PharoVMCore.dir/build.make:74: generated/vm/src/cogit.c] Error 1
make[1]: *** [CMakeFiles/Makefile2:291: CMakeFiles/PharoVMCore.dir/all] Error 2
make: *** [Makefile:156: all] Error 2

On Mon, 2023-09-04 at 10:47 +0200, Guillermo Polito wrote:

Hi Jan,

could you share a link to the repo/commit you’re building?

Have you tried with this tag?

https://github.com/pharo-project/pharo-vm/tree/v8.6.1

G

El 1 sep. 2023, a las 14:32, Jan Vraný Jan.Vrany@labware.com escribió:

Hi,

I'm trying (and failing) to (re)compile Pharo VM used for P8, more specifically
this one (from `pharo -version): Date: Wed Feb 12 11:43:20 2020 CommitHash: 52202d8.
I'm targeting linux on x86_64.

Whether I use mvm (seems that it was used by Jenkins by then) or cmake I always end
up having following errors (just a few, there're loads of them):

/usr/bin/ld: vm/vm.a(cogit.o):/redacted/pharo-vm/spur64src/vm/cointerp.h:377: multiple definition of debugCallbackInvokes'; vm/vm.a(gcc3x- cointerp.o):/redacted/pharo-vm/spur64src/vm/cointerp.h:377: first defined here /usr/bin/ld: vm/vm.a(cogit.o):/redacted/pharo-vm/spur64src/vm/cointerp.h:376: multiple definition of checkForLeaks'; vm/vm.a(gcc3x-
cointerp.o):/redacted/pharo-vm/spur64src/vm/cointerp.h:376: first defined here
/usr/bin/ld: vm/vm.a(cogit.o):/redacted/pharo-vm/spur64src/vm/cointerp.h:375: multiple definition of checkedPluginName'; vm/vm.a(gcc3x- cointerp.o):/redacted/pharo-vm/spur64src/vm/cointerp.h:375: first defined here /usr/bin/ld: vm/vm.a(cogit.o):/redacted/pharo-vm/spur64src/vm/cointerp.h:374: multiple definition of checkAllocFiller'; vm/vm.a(gcc3x-
cointerp.o):/redacted/pharo-vm/spur64src/vm/cointerp.h:374: first defined here
/usr/bin/ld: vm/vm.a(cogit.o):/redacted/pharo-vm/spur64src/vm/cointerp.h:371: multiple definition of `breakLookupClassTag'; vm/vm.a(gcc3x-
cointerp.o):/redacted/pharo-vm/spur64src/vm/cointerp.h:371: first defined here

Does anyone have an idea? Is there a more detailed description of build
environment to use?

Thanks! Jan

Hi, freshly downloaded zeroconf VM for P8 shows in `pharo -version`: Date: Wed Feb 12 11:43:20 2020 CommitHash: 52202d8. so I tried this exact commit from https://github.com/pharo-project/pharo-vm.git : commit 52202d80a407f05e9eb4bbd1001d21d913c4fc5b (tag: dev-7-20200212-2, origin/cog/dev-7) Author: Pablo Tesone <tesonep@gmail.com> Date: Wed Feb 12 11:43:20 2020 +0100 Adding B3D plugin dependencies Just now also tried v8.6.1 as you suggested (from the same repo): commit e829a1dabcea88556103ebe61f69e2a8fb1111ea (HEAD, tag: v8.6.1) Author: Pablo Tesone <tesonep@gmail.com> Date: Tue Oct 13 15:43:09 2020 +0200 Changing version to 8.6.1 using cmake: git clone ... pharo-vm cd pharo-vm mkdir build cd build cmake .. make but got a bunch of errors too (though very different) - see below. Jan ... NewUndeclaredWarning: BalloonEnginePlugin>>primitiveAddRect (GEFWrongFill is Undeclared) NewUndeclaredWarning: BalloonEnginePlugin>>primitiveAddRect (GEFEngineStopped is Undeclared) NewUndeclaredWarning: BalloonEnginePlugin>>primitiveAddRect (GEFWorkTooBig is Undeclared) NewUndeclaredWarning: BalloonEnginePlugin>>primitiveAddRect (GEFBadPoint is Undeclared) NewUndeclaredWarning: BalloonEnginePlugin>>primitiveAddRect (GEFEntityLoadFailed is Undeclared) MetacelloNotification: Loaded -> VMMaker-tonel.1 --- tonel:///home/jv/Projects/Pharo/pharo-vm/smalltalksrc --- cache MetacelloNotification: Loading -> VMMakerCompatibilityForPharo6-tonel.1 --- tonel:///home/jv/Projects/Pharo/pharo-vm/smalltalksrc --- cache Warning: This package depends on the following classes: EncoderForV3 You must resolve these dependencies before you will be able to load these definitions: EncoderForV3>>#extensionsAt:in:into: MCPackageLoader(Object)>>notify: MCPackageLoader>>warnAboutDependencies MCPackageLoader>>validate MCPackageLoader>>loadWithNameLike: MCVersionLoader>>basicLoadWithNameLike: [ ... adBlock goferLoad answers resolvedReference ...etc... [:bar | bar value: 1. aBlock value. bar value: 2 ] in IceMetacelloPharoPlatform(MetacelloPharoCommonPlatform)>>do:displaying: in Block: [:bar |... *** Warning: Warning: This package depends on the following classes: EncoderForV3 You must resolve these dependencies before you will be able to load these definitions: EncoderForV3>>#extensionsAt:in:into: NewUndeclaredWarning: OCAbstractScope>>childrenDo:after:suchThat: (children is Undeclared) NewUndeclaredWarning: OCAbstractScope>>childrenDo:after:suchThat: (children is Undeclared) NewUndeclaredWarning: OCAbstractScope>>childrenDo:suchThat: (children is Undeclared) NewUndeclaredWarning: OCAbstractScope>>childrenDo:suchThat: (children is Undeclared) NewUndeclaredWarning: DisplayText class>>text: (DefaultTextStyle is Undeclared) ... MetacelloNotification: Loading -> FileAttributesPlugin-tonel.1 --- tonel:///home/jv/Projects/Pharo/pharo-vm/smalltalksrc --- cache MetacelloNotification: Loaded -> FileAttributesPlugin-tonel.1 --- tonel:///home/jv/Projects/Pharo/pharo-vm/smalltalksrc --- cache MetacelloNotification: ...finished baseline [ 13%] Generating VM files for flavour: CoInterpreterWithQueueFFI Generating #CoInterpreterWithQueueFFI in '/home/jv/Projects/Pharo/pharo-vm/build'... NewUndeclaredWarning: VMMaker class>>forceNewFileNamed: (MultiByteFileStream is Undeclared) NewUndeclaredWarning: VMMaker class>>forceNewFileNamed: (MultiByteFileStream is Undeclared) #MultiByteFileStream is missing, and does not understand #forceNewFileNamed: UndefinedObject>>doesNotUnderstand: #forceNewFileNamed: VMMaker class>>forceNewFileNamed: CCodeGeneratorGlobalStructure(CCodeGenerator)>>storeHeaderOnFile:contents: ... FullBlockClosure(BlockClosure)>>on:do: PharoCommandLineHandler(BasicCommandLineHandler)>>activateSubCommand: PharoCommandLineHandler(BasicCommandLineHandler)>>handleSubcommand PharoCommandLineHandler(BasicCommandLineHandler)>>handleArgument: Syntax Error on line 1: 'Variable or expression expected' ========================================================= 1: er frameCallerSP: (interpreter frameCallerFP: interpreter framePointer). _^_ 2: aContext := interpreter ensureFrameIsMarried: framePointerToMarry SP: stackPointerToMarry. 3: interpreter externalDivorceFrame: framePointerToMarry andContext: aContext. 4: expectedDivorcedContext := interpreter frameCallerContext: interpreter stackPage baseFP. 5: 6: self assert: expectedDivorcedContext equals: aContext. make[2]: *** [CMakeFiles/PharoVMCore.dir/build.make:74: generated/vm/src/cogit.c] Error 1 make[1]: *** [CMakeFiles/Makefile2:291: CMakeFiles/PharoVMCore.dir/all] Error 2 make: *** [Makefile:156: all] Error 2 On Mon, 2023-09-04 at 10:47 +0200, Guillermo Polito wrote: > Hi Jan, > > could you share a link to the repo/commit you’re building? > > Have you tried with this tag? > > https://github.com/pharo-project/pharo-vm/tree/v8.6.1 > > G > > > El 1 sep. 2023, a las 14:32, Jan Vraný <Jan.Vrany@labware.com> escribió: > > > > Hi, > > > > I'm trying (and failing) to (re)compile Pharo VM used for P8, more specifically > > this one (from `pharo -version): Date: Wed Feb 12 11:43:20 2020 CommitHash: 52202d8. > > I'm targeting linux on x86_64. > > > > Whether I use mvm (seems that it was used by Jenkins by then) or cmake I always end > > up having following errors (just a few, there're loads of them): > > > > /usr/bin/ld: vm/vm.a(cogit.o):/redacted/pharo-vm/spur64src/vm/cointerp.h:377: multiple definition of `debugCallbackInvokes'; vm/vm.a(gcc3x- > > cointerp.o):/redacted/pharo-vm/spur64src/vm/cointerp.h:377: first defined here > > /usr/bin/ld: vm/vm.a(cogit.o):/redacted/pharo-vm/spur64src/vm/cointerp.h:376: multiple definition of `checkForLeaks'; vm/vm.a(gcc3x- > > cointerp.o):/redacted/pharo-vm/spur64src/vm/cointerp.h:376: first defined here > > /usr/bin/ld: vm/vm.a(cogit.o):/redacted/pharo-vm/spur64src/vm/cointerp.h:375: multiple definition of `checkedPluginName'; vm/vm.a(gcc3x- > > cointerp.o):/redacted/pharo-vm/spur64src/vm/cointerp.h:375: first defined here > > /usr/bin/ld: vm/vm.a(cogit.o):/redacted/pharo-vm/spur64src/vm/cointerp.h:374: multiple definition of `checkAllocFiller'; vm/vm.a(gcc3x- > > cointerp.o):/redacted/pharo-vm/spur64src/vm/cointerp.h:374: first defined here > > /usr/bin/ld: vm/vm.a(cogit.o):/redacted/pharo-vm/spur64src/vm/cointerp.h:371: multiple definition of `breakLookupClassTag'; vm/vm.a(gcc3x- > > cointerp.o):/redacted/pharo-vm/spur64src/vm/cointerp.h:371: first defined here > > > > Does anyone have an idea? Is there a more detailed description of build > > environment to use? > > > > Thanks! Jan > > > > > > > > > >
JV
Jan Vraný
Tue, Nov 28, 2023 12:43 PM

Hi,

I'm still wondering if anyone managed to compile P8 VM on
her/his Linux machine?

Thanks! Jan

On Mon, 2023-09-04 at 11:12 +0100, Jan Vrany wrote:

Hi,

freshly downloaded zeroconf VM for P8 shows in pharo -version:

Date: Wed Feb 12 11:43:20 2020 CommitHash: 52202d8.

so I tried this exact commit from https://github.com/pharo-project/pharo-vm.git :

commit 52202d80a407f05e9eb4bbd1001d21d913c4fc5b (tag: dev-7-20200212-2, origin/cog/dev-7)
Author: Pablo Tesone <tesonep@gmail.com>
Date:   Wed Feb 12 11:43:20 2020 +0100

    Adding B3D plugin dependencies

Just now also tried v8.6.1 as you suggested (from the same repo):

commit e829a1dabcea88556103ebe61f69e2a8fb1111ea (HEAD, tag: v8.6.1)
Author: Pablo Tesone <tesonep@gmail.com>
Date:   Tue Oct 13 15:43:09 2020 +0200

    Changing version to 8.6.1

using cmake:

git clone ... pharo-vm
cd pharo-vm
mkdir build
cd build
cmake ..
make

but got a bunch of errors too (though very different) - see below.

Jan

...
NewUndeclaredWarning: BalloonEnginePlugin>>primitiveAddRect (GEFWrongFill is Undeclared)
NewUndeclaredWarning: BalloonEnginePlugin>>primitiveAddRect (GEFEngineStopped is Undeclared)
NewUndeclaredWarning: BalloonEnginePlugin>>primitiveAddRect (GEFWorkTooBig is Undeclared)
NewUndeclaredWarning: BalloonEnginePlugin>>primitiveAddRect (GEFBadPoint is Undeclared)
NewUndeclaredWarning: BalloonEnginePlugin>>primitiveAddRect (GEFEntityLoadFailed is Undeclared)
MetacelloNotification: Loaded -> VMMaker-tonel.1 --- tonel:///home/jv/Projects/Pharo/pharo-vm/smalltalksrc --- cache
MetacelloNotification: Loading -> VMMakerCompatibilityForPharo6-tonel.1 --- tonel:///home/jv/Projects/Pharo/pharo-vm/smalltalksrc --- cache
Warning: This package depends on the following classes:
EncoderForV3
You must resolve these dependencies before you will be able to load these definitions:
EncoderForV3>>#extensionsAt:in:into:

MCPackageLoader(Object)>>notify:
MCPackageLoader>>warnAboutDependencies
MCPackageLoader>>validate
MCPackageLoader>>loadWithNameLike:
MCVersionLoader>>basicLoadWithNameLike:
[

...

adBlock goferLoad answers resolvedReference ...etc...
[:bar |
bar value: 1.
aBlock value.
bar value: 2 ] in IceMetacelloPharoPlatform(MetacelloPharoCommonPlatform)>>do:displaying: in Block: [:bar |...

*** Warning: Warning: This package depends on the following classes:
EncoderForV3
You must resolve these dependencies before you will be able to load these definitions:
EncoderForV3>>#extensionsAt:in:into:

NewUndeclaredWarning: OCAbstractScope>>childrenDo:after:suchThat: (children is Undeclared)
NewUndeclaredWarning: OCAbstractScope>>childrenDo:after:suchThat: (children is Undeclared)
NewUndeclaredWarning: OCAbstractScope>>childrenDo:suchThat: (children is Undeclared)
NewUndeclaredWarning: OCAbstractScope>>childrenDo:suchThat: (children is Undeclared)
NewUndeclaredWarning: DisplayText class>>text: (DefaultTextStyle is Undeclared)

...

MetacelloNotification: Loading -> FileAttributesPlugin-tonel.1 --- tonel:///home/jv/Projects/Pharo/pharo-vm/smalltalksrc --- cache
MetacelloNotification: Loaded -> FileAttributesPlugin-tonel.1 --- tonel:///home/jv/Projects/Pharo/pharo-vm/smalltalksrc --- cache
MetacelloNotification: ...finished baseline
[ 13%] Generating VM files for flavour: CoInterpreterWithQueueFFI
Generating #CoInterpreterWithQueueFFI in '/home/jv/Projects/Pharo/pharo-vm/build'...
NewUndeclaredWarning: VMMaker class>>forceNewFileNamed: (MultiByteFileStream is Undeclared)
NewUndeclaredWarning: VMMaker class>>forceNewFileNamed: (MultiByteFileStream is Undeclared)
#MultiByteFileStream is missing, and does not understand #forceNewFileNamed:
UndefinedObject>>doesNotUnderstand: #forceNewFileNamed:
VMMaker class>>forceNewFileNamed:
CCodeGeneratorGlobalStructure(CCodeGenerator)>>storeHeaderOnFile:contents:

...

FullBlockClosure(BlockClosure)>>on:do:
PharoCommandLineHandler(BasicCommandLineHandler)>>activateSubCommand:
PharoCommandLineHandler(BasicCommandLineHandler)>>handleSubcommand
PharoCommandLineHandler(BasicCommandLineHandler)>>handleArgument:
Syntax Error on line 1: 'Variable or expression expected'

---========================
1: er frameCallerSP: (interpreter frameCallerFP: interpreter framePointer).
^
2: aContext := interpreter ensureFrameIsMarried: framePointerToMarry SP: stackPointerToMarry.
3: interpreter externalDivorceFrame: framePointerToMarry andContext: aContext.
4: expectedDivorcedContext := interpreter frameCallerContext: interpreter stackPage baseFP.
5:
6: self assert: expectedDivorcedContext equals: aContext.
make[2]: *** [CMakeFiles/PharoVMCore.dir/build.make:74: generated/vm/src/cogit.c] Error 1
make[1]: *** [CMakeFiles/Makefile2:291: CMakeFiles/PharoVMCore.dir/all] Error 2
make: *** [Makefile:156: all] Error 2

On Mon, 2023-09-04 at 10:47 +0200, Guillermo Polito wrote:

Hi Jan,

could you share a link to the repo/commit you’re building?

Have you tried with this tag?

https://github.com/pharo-project/pharo-vm/tree/v8.6.1

G

El 1 sep. 2023, a las 14:32, Jan Vraný Jan.Vrany@labware.com escribió:

Hi,

I'm trying (and failing) to (re)compile Pharo VM used for P8, more specifically
this one (from `pharo -version): Date: Wed Feb 12 11:43:20 2020 CommitHash: 52202d8.
I'm targeting linux on x86_64.

Whether I use mvm (seems that it was used by Jenkins by then) or cmake I always end
up having following errors (just a few, there're loads of them):

/usr/bin/ld: vm/vm.a(cogit.o):/redacted/pharo-vm/spur64src/vm/cointerp.h:377: multiple definition of debugCallbackInvokes'; vm/vm.a(gcc3x- cointerp.o):/redacted/pharo-vm/spur64src/vm/cointerp.h:377: first defined here /usr/bin/ld: vm/vm.a(cogit.o):/redacted/pharo-vm/spur64src/vm/cointerp.h:376: multiple definition of checkForLeaks'; vm/vm.a(gcc3x-
cointerp.o):/redacted/pharo-vm/spur64src/vm/cointerp.h:376: first defined here
/usr/bin/ld: vm/vm.a(cogit.o):/redacted/pharo-vm/spur64src/vm/cointerp.h:375: multiple definition of checkedPluginName'; vm/vm.a(gcc3x- cointerp.o):/redacted/pharo-vm/spur64src/vm/cointerp.h:375: first defined here /usr/bin/ld: vm/vm.a(cogit.o):/redacted/pharo-vm/spur64src/vm/cointerp.h:374: multiple definition of checkAllocFiller'; vm/vm.a(gcc3x-
cointerp.o):/redacted/pharo-vm/spur64src/vm/cointerp.h:374: first defined here
/usr/bin/ld: vm/vm.a(cogit.o):/redacted/pharo-vm/spur64src/vm/cointerp.h:371: multiple definition of `breakLookupClassTag'; vm/vm.a(gcc3x-
cointerp.o):/redacted/pharo-vm/spur64src/vm/cointerp.h:371: first defined here

Does anyone have an idea? Is there a more detailed description of build
environment to use?

Thanks! Jan

Hi, I'm still wondering if anyone managed to compile P8 VM on her/his Linux machine? Thanks! Jan On Mon, 2023-09-04 at 11:12 +0100, Jan Vrany wrote: > Hi, > > freshly downloaded zeroconf VM for P8 shows in `pharo -version`: > > Date: Wed Feb 12 11:43:20 2020 CommitHash: 52202d8. > > so I tried this exact commit from https://github.com/pharo-project/pharo-vm.git : > > commit 52202d80a407f05e9eb4bbd1001d21d913c4fc5b (tag: dev-7-20200212-2, origin/cog/dev-7) > Author: Pablo Tesone <tesonep@gmail.com> > Date: Wed Feb 12 11:43:20 2020 +0100 > > Adding B3D plugin dependencies > > Just now also tried v8.6.1 as you suggested (from the same repo): > > commit e829a1dabcea88556103ebe61f69e2a8fb1111ea (HEAD, tag: v8.6.1) > Author: Pablo Tesone <tesonep@gmail.com> > Date: Tue Oct 13 15:43:09 2020 +0200 > > Changing version to 8.6.1 > > using cmake: > > git clone ... pharo-vm > cd pharo-vm > mkdir build > cd build > cmake .. > make > > but got a bunch of errors too (though very different) - see below. > > Jan > > ... > NewUndeclaredWarning: BalloonEnginePlugin>>primitiveAddRect (GEFWrongFill is Undeclared) > NewUndeclaredWarning: BalloonEnginePlugin>>primitiveAddRect (GEFEngineStopped is Undeclared) > NewUndeclaredWarning: BalloonEnginePlugin>>primitiveAddRect (GEFWorkTooBig is Undeclared) > NewUndeclaredWarning: BalloonEnginePlugin>>primitiveAddRect (GEFBadPoint is Undeclared) > NewUndeclaredWarning: BalloonEnginePlugin>>primitiveAddRect (GEFEntityLoadFailed is Undeclared) > MetacelloNotification: Loaded -> VMMaker-tonel.1 --- tonel:///home/jv/Projects/Pharo/pharo-vm/smalltalksrc --- cache > MetacelloNotification: Loading -> VMMakerCompatibilityForPharo6-tonel.1 --- tonel:///home/jv/Projects/Pharo/pharo-vm/smalltalksrc --- cache > Warning: This package depends on the following classes: > EncoderForV3 > You must resolve these dependencies before you will be able to load these definitions: > EncoderForV3>>#extensionsAt:in:into: > > MCPackageLoader(Object)>>notify: > MCPackageLoader>>warnAboutDependencies > MCPackageLoader>>validate > MCPackageLoader>>loadWithNameLike: > MCVersionLoader>>basicLoadWithNameLike: > [ > > ... > > adBlock goferLoad answers resolvedReference ...etc... > [:bar | > bar value: 1. > aBlock value. > bar value: 2 ] in IceMetacelloPharoPlatform(MetacelloPharoCommonPlatform)>>do:displaying: in Block: [:bar |... > > *** Warning: Warning: This package depends on the following classes: > EncoderForV3 > You must resolve these dependencies before you will be able to load these definitions: > EncoderForV3>>#extensionsAt:in:into: > > NewUndeclaredWarning: OCAbstractScope>>childrenDo:after:suchThat: (children is Undeclared) > NewUndeclaredWarning: OCAbstractScope>>childrenDo:after:suchThat: (children is Undeclared) > NewUndeclaredWarning: OCAbstractScope>>childrenDo:suchThat: (children is Undeclared) > NewUndeclaredWarning: OCAbstractScope>>childrenDo:suchThat: (children is Undeclared) > NewUndeclaredWarning: DisplayText class>>text: (DefaultTextStyle is Undeclared) > > ... > > MetacelloNotification: Loading -> FileAttributesPlugin-tonel.1 --- tonel:///home/jv/Projects/Pharo/pharo-vm/smalltalksrc --- cache > MetacelloNotification: Loaded -> FileAttributesPlugin-tonel.1 --- tonel:///home/jv/Projects/Pharo/pharo-vm/smalltalksrc --- cache > MetacelloNotification: ...finished baseline > [ 13%] Generating VM files for flavour: CoInterpreterWithQueueFFI > Generating #CoInterpreterWithQueueFFI in '/home/jv/Projects/Pharo/pharo-vm/build'... > NewUndeclaredWarning: VMMaker class>>forceNewFileNamed: (MultiByteFileStream is Undeclared) > NewUndeclaredWarning: VMMaker class>>forceNewFileNamed: (MultiByteFileStream is Undeclared) > #MultiByteFileStream is missing, and does not understand #forceNewFileNamed: > UndefinedObject>>doesNotUnderstand: #forceNewFileNamed: > VMMaker class>>forceNewFileNamed: > CCodeGeneratorGlobalStructure(CCodeGenerator)>>storeHeaderOnFile:contents: > > ... > > FullBlockClosure(BlockClosure)>>on:do: > PharoCommandLineHandler(BasicCommandLineHandler)>>activateSubCommand: > PharoCommandLineHandler(BasicCommandLineHandler)>>handleSubcommand > PharoCommandLineHandler(BasicCommandLineHandler)>>handleArgument: > Syntax Error on line 1: 'Variable or expression expected' > ========================================================= > 1: er frameCallerSP: (interpreter frameCallerFP: interpreter framePointer). > _^_ > 2: aContext := interpreter ensureFrameIsMarried: framePointerToMarry SP: stackPointerToMarry. > 3: interpreter externalDivorceFrame: framePointerToMarry andContext: aContext. > 4: expectedDivorcedContext := interpreter frameCallerContext: interpreter stackPage baseFP. > 5: > 6: self assert: expectedDivorcedContext equals: aContext. > make[2]: *** [CMakeFiles/PharoVMCore.dir/build.make:74: generated/vm/src/cogit.c] Error 1 > make[1]: *** [CMakeFiles/Makefile2:291: CMakeFiles/PharoVMCore.dir/all] Error 2 > make: *** [Makefile:156: all] Error 2 > > > > > > > > On Mon, 2023-09-04 at 10:47 +0200, Guillermo Polito wrote: > > Hi Jan, > > > > could you share a link to the repo/commit you’re building? > > > > Have you tried with this tag? > > > > https://github.com/pharo-project/pharo-vm/tree/v8.6.1 > > > > G > > > > > El 1 sep. 2023, a las 14:32, Jan Vraný <Jan.Vrany@labware.com> escribió: > > > > > > Hi, > > > > > > I'm trying (and failing) to (re)compile Pharo VM used for P8, more specifically > > > this one (from `pharo -version): Date: Wed Feb 12 11:43:20 2020 CommitHash: 52202d8. > > > I'm targeting linux on x86_64. > > > > > > Whether I use mvm (seems that it was used by Jenkins by then) or cmake I always end > > > up having following errors (just a few, there're loads of them): > > > > > > /usr/bin/ld: vm/vm.a(cogit.o):/redacted/pharo-vm/spur64src/vm/cointerp.h:377: multiple definition of `debugCallbackInvokes'; vm/vm.a(gcc3x- > > > cointerp.o):/redacted/pharo-vm/spur64src/vm/cointerp.h:377: first defined here > > > /usr/bin/ld: vm/vm.a(cogit.o):/redacted/pharo-vm/spur64src/vm/cointerp.h:376: multiple definition of `checkForLeaks'; vm/vm.a(gcc3x- > > > cointerp.o):/redacted/pharo-vm/spur64src/vm/cointerp.h:376: first defined here > > > /usr/bin/ld: vm/vm.a(cogit.o):/redacted/pharo-vm/spur64src/vm/cointerp.h:375: multiple definition of `checkedPluginName'; vm/vm.a(gcc3x- > > > cointerp.o):/redacted/pharo-vm/spur64src/vm/cointerp.h:375: first defined here > > > /usr/bin/ld: vm/vm.a(cogit.o):/redacted/pharo-vm/spur64src/vm/cointerp.h:374: multiple definition of `checkAllocFiller'; vm/vm.a(gcc3x- > > > cointerp.o):/redacted/pharo-vm/spur64src/vm/cointerp.h:374: first defined here > > > /usr/bin/ld: vm/vm.a(cogit.o):/redacted/pharo-vm/spur64src/vm/cointerp.h:371: multiple definition of `breakLookupClassTag'; vm/vm.a(gcc3x- > > > cointerp.o):/redacted/pharo-vm/spur64src/vm/cointerp.h:371: first defined here > > > > > > Does anyone have an idea? Is there a more detailed description of build > > > environment to use? > > > > > > Thanks! Jan > > > > > > > > > > > > > > > >