sudo make install (following build with ./mvm) will install 64-bit Spur VMs with /usr/local/bin/spur64, 32-bit Spur VMs with /usr/local/bin/spur, and 32-bit Cog V3 VMs as /usr/local/bin/cog. Along with branch dtl/distinct-VERSION_TAG (separate PR), this allows the three flavors of opensmalltalk-vm, plus the interpreter VM, to all be installed side by side in a standard unix directory (e.g. /usr/local/bin/ or /usr/bin for executable scripts). Within the various builds in ./products, the base squeak script is still called "squeak", and it invokes ./bin/spur64, ./bin/spur or ./bin/cog in that folder depending on the type of VM. Net effect is no change in behavior for the ./products builds, and elimination of name space conflicts in the standard unix directories. You can view, comment on, or merge this pull request online at:
https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/591
-- Commit Summary --
* Update mvm scripts to specify distinct names for squeak run scripts.
-- File Changes --
M building/linux32ARMv6/squeak.cog.spur/build.assert/mvm (1) M building/linux32ARMv6/squeak.cog.spur/build.debug/mvm (1) M building/linux32ARMv6/squeak.cog.spur/build/mvm (1) M building/linux32ARMv6/squeak.cog.v3/build.assert/mvm (1) M building/linux32ARMv6/squeak.cog.v3/build.debug/mvm (1) M building/linux32ARMv6/squeak.cog.v3/build/mvm (1) M building/linux32ARMv6/squeak.stack.spur/build.assert/mvm (1) M building/linux32ARMv6/squeak.stack.spur/build.debug/mvm (1) M building/linux32ARMv6/squeak.stack.spur/build/mvm (1) M building/linux32ARMv6/squeak.stack.v3/build.assert/mvm (1) M building/linux32ARMv6/squeak.stack.v3/build.debug/mvm (1) M building/linux32ARMv6/squeak.stack.v3/build/mvm (1) M building/linux32x86/squeak.cog.spur/build.assert.itimerheartbeat/mvm (1) M building/linux32x86/squeak.cog.spur/build.assert/mvm (1) M building/linux32x86/squeak.cog.spur/build.debug.itimerheartbeat/mvm (1) M building/linux32x86/squeak.cog.spur/build.debug/mvm (1) M building/linux32x86/squeak.cog.spur/build.itimerheartbeat/mvm (1) M building/linux32x86/squeak.cog.spur/build/mvm (1) M building/linux32x86/squeak.cog.v3/build.assert.itimerheartbeat/mvm (1) M building/linux32x86/squeak.cog.v3/build.assert/mvm (1) M building/linux32x86/squeak.cog.v3/build.debug.itimerheartbeat/mvm (1) M building/linux32x86/squeak.cog.v3/build.debug/mvm (1) M building/linux32x86/squeak.cog.v3/build.itimerheartbeat/mvm (1) M building/linux32x86/squeak.cog.v3/build.multithreaded.assert/mvm (1) M building/linux32x86/squeak.cog.v3/build.multithreaded.debug/mvm (1) M building/linux32x86/squeak.cog.v3/build.multithreaded/mvm (1) M building/linux32x86/squeak.cog.v3/build/mvm (1) M building/linux32x86/squeak.sista.spur/build.assert.itimerheartbeat/mvm (1) M building/linux32x86/squeak.sista.spur/build.assert/mvm (1) M building/linux32x86/squeak.sista.spur/build.debug.itimerheartbeat/mvm (1) M building/linux32x86/squeak.sista.spur/build.debug/mvm (1) M building/linux32x86/squeak.sista.spur/build.itimerheartbeat/mvm (1) M building/linux32x86/squeak.sista.spur/build/mvm (1) M building/linux32x86/squeak.stack.spur/build.assert/mvm (5) M building/linux32x86/squeak.stack.spur/build.debug/mvm (5) M building/linux32x86/squeak.stack.spur/build/mvm (5) M building/linux32x86/squeak.stack.v3/build.assert/mvm (1) M building/linux32x86/squeak.stack.v3/build.debug/mvm (1) M building/linux32x86/squeak.stack.v3/build/mvm (1) M building/linux64ARMv8/squeak.cog.spur/build.assert/mvm (1) M building/linux64ARMv8/squeak.cog.spur/build.debug/mvm (1) M building/linux64ARMv8/squeak.cog.spur/build/mvm (1) M building/linux64ARMv8/squeak.cogmt.spur/build.assert/mvm (1) M building/linux64ARMv8/squeak.cogmt.spur/build.debug/mvm (1) M building/linux64ARMv8/squeak.cogmt.spur/build/mvm (1) M building/linux64ARMv8/squeak.stack.spur/build.assert/mvm (1) M building/linux64ARMv8/squeak.stack.spur/build.debug/mvm (1) M building/linux64ARMv8/squeak.stack.spur/build/mvm (1) M building/linux64x64/squeak.cog.spur/build.assert.itimerheartbeat/mvm (1) M building/linux64x64/squeak.cog.spur/build.assert/mvm (1) M building/linux64x64/squeak.cog.spur/build.debug.itimerheartbeat/mvm (1) M building/linux64x64/squeak.cog.spur/build.debug/mvm (1) M building/linux64x64/squeak.cog.spur/build.itimerheartbeat/mvm (1) M building/linux64x64/squeak.cog.spur/build/mvm (1) M building/linux64x64/squeak.stack.spur/build.assert/mvm (5) M building/linux64x64/squeak.stack.spur/build.debug/mvm (5) M building/linux64x64/squeak.stack.spur/build/mvm (5) M building/sunos32x86/squeak.cog.spur/build/mvm (1) M building/sunos32x86/squeak.stack.spur/build/mvm (1) M building/sunos64x64/squeak.cog.spur/build/mvm (1) M building/sunos64x64/squeak.stack.spur/build/mvm (5)
-- Patch Links --
https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/591.patch https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/591.diff
It looks like you also need to update "configure" and "configure.ac"? Why is it "spur" and not "spur32" but "spur64"? Is this a common pattern on unix/linux?
The naming convention is historical, just what I have been using on my system for some years. First we had /usr/bin/squeak, then Cog became available, so /usr/bin/cog. Then Spur was added, so /usr/bin/spur. Later the 64-bit Spur was added, so /usr/bin/spur64. At this point it might be more clear to use the name spur32 rather than spur?
The updates for configure and make are in https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/a385f5b69e7bda720e9... in the Cog branch which should be sufficient to support this PR.
On Fri, Sep 10, 2021 at 8:55 AM David T Lewis ***@***.***> wrote:
The naming convention is historical, just what I have been using on my system for some years. First we had /usr/bin/squeak, then Cog became available, so /usr/bin/cog. Then Spur was added, so /usr/bin/spur. Later the 64-bit Spur was added, so /usr/bin/spur64. At this point it might be more clear to use the name spur32 rather than spur?
I think so. It's a nice symmetrical distinction. On Unix /usr/lib is ambiguous. Some systems added /usr/lib64, some /usr/lib32,, all in an effort to not confront the necessity of changing the old /usr/lib into /usr/lib32. We don't have to repeat the same mistake/ It's a litt;e painful at fiurst but using spur32 & spur64, and not using spur is clear and easier for scripts, etc. IMO. _,,,^..^,,,_ best, Eliot
Agreed, I just pushed an update to use spur32 as script name for 32-bit Spur VMs.
@dtlewis290 pushed 1 commit.
225a7e404407114a1813fcbedfe42572e63c6620 Use scriptname=spur32 instead of scriptname=spur for 32bit spur VMs
@dtlewis290 pushed 1 commit.
13c83564faa59f8d7c06a90c4436abbbdcd9cc59 Fix accidental updates in the last commit
@marceltaeumel pushed 1 commit.
503a3d4d29ddd9623a21d03fe09ac3513b5e0269 Merge branch 'Cog' into dtl/distinct-scriptnames
Still not working: ``` configure: error: unrecognized option: `--scriptname=spur32' ``` For example, see https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/591/checks?check_run_...
Is it possible that the CI is failing to update the platforms/unix/config directory? The "missing" configure option is present in the platforms sources but seems to be missing when run on CI.
I will push a fix for configure.ac to this PR soon. It's almost ready. :-) I will change the option "scriptname" to "with-scriptname" because it is then compatible with autoconf.
@marceltaeumel pushed 1 commit.
cf11c7e64d98f45fe869cdc59626cd2b50479642 Changes option "scriptname" to "with-scriptname" to make it compatible with "make configure". Adapts "configure.ac" and all mvm files accordingly.
Done. Please check if I broke anything. "sudo make install" still works as expected in my VirtualBox. 😄
Aha, I see it now, I was not doing a make on the config directory so did not notice the conflict. Thank you for the fix Marcel.
Confirming - the builds for spur64, spur32, and cog all work as expected when building on my Ubuntu laptop. Correct scripts are installed in /usr/local/bin and the ./products folder looks good also.
Merged #591 into Cog.
vm-dev@lists.squeakfoundation.org