Some docker marketing bla bla:
Docker is an application encapsulation technology, as software containers,
to distribute without problems of dependencies or incompatibilities in >various operating systems (such as Windows or Linux) and local or cloud >environments such as Azure or AWS. Thus, the different files that make up
our applications and their dependencies… are transformed into a Docker >image, ready to be deployed on countless systems.
Additionally, the Docker package allows us to create, run and, if
necessary, update and stop the operation of the containers.
Next question:
Why on earth would one want such a fat encapsulated thing for tiny Forth?
I read the promotion of Docker. It tries to solve the problem:
"it works on my machine". Then it doesn't work on yours.
The correct solution - I think - is distributions. Debian goes to
great length to make sure that all programs cooperate.
Docker tries to pull in all possible influences in your machine
to generate a "package". Then it supposedly works.
Looking at a Forth compiler I see external influences:[..]
- it works on a version of linux or windows. Those good folks
work hard that my program works the same on the next version.
- It observes a PATH : to find the program system wide.
Even this is not necessary, you can specify the full path.
I see that there are several competing "package managers".
Instead of installing a program, you must start by
installing the behooved package manager before you can continue.
github invites you to select one of 6 possible packages:
Docker/ ApacheMaven / Nuget/Rubygems/npm/ Containers.
I fear for the future:
As the dust settles, and e.g. Nuget has won, you no longer
can run programs unless you pay monthly 10 euro's to Nuget
incorporated (student discounts possible.)
Ullrich Hofman has created a github archive of docker images
of forths, (including lina32 and lina64 for i86 linux. )
https://github.com/uho/docker-forth
What are the possibilities opened by this effort?
Why on earth would one want such a fat encapsulated thing for tiny Forth?
So, it seems to me that one answer to your question is that Forth >implementors (not just those, but you asked about Forth) have problems >producing portable source code. Not sure if it's better with binary
code (at least the iforth, lxf, SwiftForth and VFX binaries work on
the platforms I use them on), but one way to avoid problems with
binary portability is to package the system in a container; don't
docker containers brodge the gap between Linux and Windows?
- anton--
Exercism.org makes extensive use of Docker as a means of making 70 >programming languages available to students. See down the bottom of >https://exercism.org/dashboard for the full list of languages, and >https://exercism.org/docs/building/tooling/docker for a discussion about >their use of Docker.
-Bruce
In article <2024May3.162352@mips.complang.tuwien.ac.at>,
Anton Ertl <anton@mips.complang.tuwien.ac.at> wrote:
So, it seems to me that one answer to your question is that Forth >>implementors (not just those, but you asked about Forth) have problems >>producing portable source code. Not sure if it's better with binary
code (at least the iforth, lxf, SwiftForth and VFX binaries work on
the platforms I use them on), but one way to avoid problems with
binary portability is to package the system in a container; don't
docker containers brodge the gap between Linux and Windows?
What do you think about lina 5.5.0? >https://github.com/albertvanderhorst/ciforth
The binary provided only uses linux system calls, that should be
widely portable.
After unpacking you can run in the current directory,
provided . is in your PATH.
There are two assembler files for gas and for fasm.
There is not even a Makefile, instructions for compiling
are in the header. The two binaries are equivalent but
not identical.
This is how to build with gas
/tmp/ci86.lina64-9.9.9: as -64 ci86.lina64.s
/tmp/ci86.lina64-9.9.9: ld -melf_x86_64 -s -N a.out -o lina
albert@spenarnc.xs4all.nl writes:
In article <2024May3.162352@mips.complang.tuwien.ac.at>,
Anton Ertl <anton@mips.complang.tuwien.ac.at> wrote:
So, it seems to me that one answer to your question is that Forth >>>implementors (not just those, but you asked about Forth) have problems >>>producing portable source code. Not sure if it's better with binary
code (at least the iforth, lxf, SwiftForth and VFX binaries work on
the platforms I use them on), but one way to avoid problems with
binary portability is to package the system in a container; don't
docker containers brodge the gap between Linux and Windows?
What do you think about lina 5.5.0? >>https://github.com/albertvanderhorst/ciforth
So I performed
git clone https://github.com/albertvanderhorst/ciforth
The binary provided only uses linux system calls, that should be
widely portable.
There is no binary provided in that repo.
After unpacking you can run in the current directory,
provided . is in your PATH.
There are two assembler files for gas and for fasm.
There is not even a Makefile, instructions for compiling
are in the header. The two binaries are equivalent but
not identical.
I find a Makefile (called this way) as well as other makefiles, such
as lina64.mak.
Not sure what you mean by header. I find a number of README files
with a total size of 935 lines. A quick scan of README does not
reveal a way to build it. README.lina might be apropos for the Linux >version. It tells me to "tar xfz ci86.lina##-#.#.#.gz" but there is
no such file; and then it tells me that I can run lina## or lina, but
there are no such files there.
In other words: I did not find instructions on how to build lina in
the repo.
This is how to build with gas
/tmp/ci86.lina64-9.9.9: as -64 ci86.lina64.s
/tmp/ci86.lina64-9.9.9: ld -melf_x86_64 -s -N a.out -o lina
[c8:~/nfstmp/ciforth:103723] as -64 ci86.lina64.s
Assembler messages:
Error: can't open ci86.lina64.s for reading: No such file or directory
I get the feeling that you left some essential part out in your
instructions.
- anton
In article <2024May5.173917@mips.complang.tuwien.ac.at>,...
Anton Ertl <anton@mips.complang.tuwien.ac.at> wrote: >>albert@spenarnc.xs4all.nl writes:
What do you think about lina 5.5.0? >>>https://github.com/albertvanderhorst/ciforth
Normally the binaries are in the release, not in the source
repository. At the above site click on code. At the right side
you see "about" with miscellaneous information. Scroll down
and the releases appear ordered on most recent.
Indeed, it was not an invitation to build, but to just download the release. >I invited you to download the latest release. 5.5.0
Sysop: | Keyop |
---|---|
Location: | Huddersfield, West Yorkshire, UK |
Users: | 475 |
Nodes: | 16 (2 / 14) |
Uptime: | 18:35:14 |
Calls: | 9,487 |
Calls today: | 6 |
Files: | 13,617 |
Messages: | 6,121,092 |