[Vm-dev] Proposal | Clean-up source tree's *src folders

Marcel Taeumel marcel.taeumel at hpi.de
Tue Jul 13 11:17:14 UTC 2021


Hi Jakob,

I think that you are mixing up "interface" and "implementation" of our build system here. I wouldn't want to change any "interface", e.g. "./mvm -f" for Windows builds or its direkt Makefile variant. The build-system's "implementation" can be improved without breaking existing workflows. :-)

> Newcomers should not be overwhelmed by any more extraordinariness [...]

That's exactly why I think that there are too many *src folder on the toplevel.

> In my opinion the build should work as "ordinarily" as possible in comparison to other FOSS builds.

Well, this is no ordinary FOSS project. So, we might want to find good - and better - trade-offs here. ;-)

Best,
Marcel
Am 13.07.2021 13:11:21 schrieb Jakob Reschke <jakres+squeak at gmail.com>:
Hi Marcel,

In my opinion the build should work as "ordinarily" as possible in
comparison to other FOSS builds. Newcomers should not be overwhelmed by
any more extraordinariness than there already is because of the Slang
generation, updateSCCSVersions, hand-written makefiles plus scripts, plugin
lists etc. Being ordinary should also simplify ports and build
refactorings. I think that relying on symlinks would be one step further
away from being ordinary.

Kind regards,
Jakob


Am Di., 13. Juli 2021 um 10:53 Uhr schrieb Marcel Taeumel <
marcel.taeumel at hpi.de>:

>
> Hmm... all of our build systems are able to create symlinks, right?
> Couldn't we just create that "src/vm" symlink to point to the particular
> flavor? Hmm....
>
> Am 13.07.2021 09:38:36 schrieb Marcel Taeumel :
> Ah, I noticed the pattern "../../platforms" (or similar). Well, by
> flattening the sources one level, that pattern would still work.
>
>
> Best,
> Marcel
>
> Am 13.07.2021 09:22:24 schrieb Marcel Taeumel :
> Please find attached a change set for VMMaker and a screenshot of what the
> src folder would look like. A diff for all build files will follow soon
> here on this list.
>
>
>
> Best,
> Marcel
>
> Am 13.07.2021 08:49:24 schrieb Marcel Taeumel :
> Hi all!
>
> I would like to clarify (or re-arrange) the structure of the source tree
> so that we can continue to work on existing and experiment on new flavors
> of the VM. They would then better match our build structure:
>
> /src/plugins -> (same)
>
> /src/vm -> /src/vm.32bit.cog.v3
> /stacksrc/vm -> /src/vm.32bit.stack.v3
>
> /spurstacksrc/vm -> /src/vm.32bit.stack.spur
> /spurstack64src/vm -> /src/vm.64bit.stack.spur
> /spursrc/vm -> /src/vm.32bit.cog.spur
> /spur64src/vm -> /src/vm.64bit.cog.spur
> /spursistasrc/vm -> /src/vm.32bit.sista.spur
> /spursista64src/vm -> /src/vm.64bit.sista.spur
>
> /nsspurstacksrc/vm -> /src/newspeak.vm.32bit.stack.spur
> /nsspurstack64src/vm -> /src/newspeak.vm.64bit.stack.spur
> /nsspursrc/vm -> /src/newspeak.vm.32bit.cog.spur
> /nsspur64src/vm -> /src/newspeak.vm.64bit.cog.spur
>
> /spurlowcodestacksrc/vm -> /src/lowcode.vm.32bit.stack.spur
> /spurlowcodestack64src/vm -> /src/lowcode.vm.64bit.stack.spur
> /spurlowcodesrc/vm -> /src/lowcode.vm.32bit.cog.spur
> /spurlowcode64src/vm -> /src/lowcode.vm.64bit.cog.spur
>
> This would make 15 different *src folders disappear from the source tree's
> toplevel. Flavor-specific plugin lists might be defined from within VMMaker
> and generated into their respective src folders.
>
> Also, there would be a clear place for /src/vm.32bit.interpreter.v3 too
> :-)
>
> Thoughts? Opinions? Objections?
>
> Best,
> Marcel
>
>

Hi Marcel,

In my opinion the build should work as "ordinarily" as possible in comparison to other FOSS builds.  Newcomers should not be overwhelmed by any more extraordinariness than there already is because of the Slang generation, updateSCCSVersions, hand-written makefiles plus scripts, plugin lists etc.  Being ordinary should also simplify ports and build refactorings.  I think that relying on symlinks would be one step further away from being ordinary.

Kind regards,
Jakob


Am Di., 13. Juli 2021 um 10:53 Uhr schrieb Marcel Taeumel <marcel.taeumel at hpi.de [mailto:marcel.taeumel at hpi.de]>:

 

Hmm... all of our build systems are able to create symlinks, right? Couldn't we just create that "src/vm" symlink to point to the particular flavor? Hmm....

Am 13.07.2021 09:38:36 schrieb Marcel Taeumel <marcel.taeumel at hpi.de [mailto:marcel.taeumel at hpi.de]>:

Ah, I noticed the pattern "../../platforms" (or similar). Well, by flattening the sources one level, that pattern would still work.


Best,
Marcel


Am 13.07.2021 09:22:24 schrieb Marcel Taeumel <marcel.taeumel at hpi.de [mailto:marcel.taeumel at hpi.de]>:

Please find attached a change set for VMMaker and a screenshot of what the src folder would look like. A diff for all build files will follow soon here on this list.



Best,
Marcel


Am 13.07.2021 08:49:24 schrieb Marcel Taeumel <marcel.taeumel at hpi.de [mailto:marcel.taeumel at hpi.de]>:
Hi all!

I would like to clarify (or re-arrange) the structure of the source tree so that we can continue to work on existing and experiment on new flavors of the VM. They would then better match our build structure:

/src/plugins -> (same)

/src/vm -> /src/vm.32bit.cog.v3
/stacksrc/vm -> /src/vm.32bit.stack.v3

/spurstacksrc/vm -> /src/vm.32bit.stack.spur
/spurstack64src/vm -> /src/vm.64bit.stack.spur
/spursrc/vm -> /src/vm.32bit.cog.spur
/spur64src/vm -> /src/vm.64bit.cog.spur
/spursistasrc/vm -> /src/vm.32bit.sista.spur
/spursista64src/vm -> /src/vm.64bit.sista.spur

/nsspurstacksrc/vm -> /src/newspeak.vm.32bit.stack.spur
/nsspurstack64src/vm -> /src/newspeak.vm.64bit.stack.spur
/nsspursrc/vm -> /src/newspeak.vm.32bit.cog.spur
/nsspur64src/vm -> /src/newspeak.vm.64bit.cog.spur


/spurlowcodestacksrc/vm -> /src/lowcode.vm.32bit.stack.spur
/spurlowcodestack64src/vm -> /src/lowcode.vm.64bit.stack.spur

/spurlowcodesrc/vm -> /src/lowcode.vm.32bit.cog.spur
/spurlowcode64src/vm -> /src/lowcode.vm.64bit.cog.spur


This would make 15 different *src folders disappear from the source tree's toplevel. Flavor-specific plugin lists might be defined from within VMMaker and generated into their respective src folders.

Also, there would be a clear place for /src/vm.32bit.interpreter.v3 too :-)

Thoughts? Opinions? Objections?

Best,
Marcel

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20210713/aa54f68c/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image.png
Type: image/png
Size: 28911 bytes
Desc: not available
URL: <http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20210713/aa54f68c/attachment-0002.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image.png
Type: image/png
Size: 173140 bytes
Desc: not available
URL: <http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20210713/aa54f68c/attachment-0003.png>


More information about the Vm-dev mailing list