Releases: moebius-rex/primes
Primes v1.3.2
This release changes the format of console output from all implementations of the example app:
- Change the word
primeness
toprimality
in all prompts for the integer range to test - Change
Prime numbers in range
toPrime numbers in the range
in the results set to conform to the longform English used elsewhere in the output
Primes v1.3.1
Minor top-level documentation tweaks.
Primes v1.3.0
New release 1.3.0 adds C++ pImpl
paradigm examples:
- app4 implements the
pImpl
paradigm on top of the shared C library implementation - app5 implements a pure C++
pImpl
In addition, the installation document has been updated to provide notes on Maven, Fedora installation and generic Linux/Unix installations.
Primes v1.2.3
This release adds the ability to use Go's gccgo
compiler if it's available and write all go
commands executed to a local hidden .golog
file. Also:
- install
gccgo
instead ofgccgo-go
package in Ubunto docker image to fixgccgo-go
/golang-go
issue wheregccgo
compiler wasn't installed - add a script for Go apps that uses the
gccgo
compiler if it's available, or thego
compiler if not - add
prime bounce
command to stop, rebuild and restart docker containers, either to reset the images or to install image changes - modify
prime container shell
to use default shell for distro if the specified shell is only available on the other project distros
Primes v1.2.2
Primes v1.2.2 is a patch release that updates the introductory section of the project README.md
.
Primes v1.2.1
Primes v1.2.1 is a patch release that includes the following minor changes:
- Migrate from
apt-get install
toapt install
in ubuntu.dockerfile - Support use of Linux distro's default shell when attaching to a Docker container
- Support chaining of actions in
go/sieve/sieve.go
and use ingo/app2/app.go
- Remove
go/app2/app.go
negative range check since it's already done ingo/sieve/sieve.go
- Set then unset
GOFLAGS = -compiler gccgo
in go Makefiles as a reminder to trygccgo
once the Ubuntu docker install works - Add a note to
DOCKER.md
explaining why Docker-in-Docker isn't supported
Primes v1.2.0
Release notes
Primes v1.2.0 introduces Go language implementations of the Sieve of Eratosthenes algorithm to the Primes project, including:
- a utility package that implements the algorithm as a Go structure with associated member functions
- an app that uses
cgo
to implement the algorithm by calling functions in the existing C shared library implementation,/usr/local/lib/libcsieve.so
Other tweaks in this release include:
- all implementations that depend on the C shared library now reference it via soft links in
/usr/local
setup.sh
now checks that/usr/local
is writable, and if not, displays a message to try again usingsudo
to complete the project installation
Tech note
As a required part of this release, Go language package installations were added to each of the Docker image configuration files provided with the project. However, this caused the Ubuntu Docker image build to hang. This turned out to be a known issue with the tzdata
package installer's interactive dialog and can be addressed in several ways, including:
- rolling back to an earlier version of Ubuntu, like 18.04 LTS (Bionic Beaver):
FROM ubuntu:bionic
- disabling all interactive package installation dialogs only while building the image (by using the
ARG
, notENV
, build instruction):
RUN apt-get update -y
RUN apt-get upgrade -y
# disable all interactive package installation dialogs while building the image
ARG DEBIAN_FRONTEND=noninteractive
# install utilities
RUN apt-get install -y file less tree vim
- disabling interactive dialog for the
tzdata
package installation only:
RUN apt-get update -y
RUN apt-get upgrade -y
# disable tzdata interactive package installation dialogs while building the image
RUN DEBIAN_FRONTEND=noninteractive && apt-get install -y tzdata
# install utilities
RUN apt-get install -y file less tree vim
- installing
tzdata
before any other packages:
RUN apt-get update -y
RUN apt-get upgrade -y
# disable all interactive installation dialogs
RUN apt-get install -y tzdata
# install utilities
RUN apt-get install -y file less tree vim
All of the above options solve the problem. We chose to disable all interactive dialogs, because:
- they clearly make no sense, since Docker image building is not an interactive process
- using
ARG
instead ofENV
means that interactive dialogs are disabled only during image builds and not while running containers - we don't want one "badly behaved" installer tying us to a particular Ubuntu release
- we're not creating an additional package dependency (
tzdata
) in our Docker file
Primes v1.1.0
This release adds a bash script to the project's home directory that simplifies running implementations of the primes algorithm locally, and building, launching and running Docker containers to run implementations. The script's name is prime
and running it with no arguments causes it to build and run all algorithm implementations locally. Enter prime help
to get some idea of other potential uses of the script.
Primes v1.0.0
Initial release of the Primes project. Refer to the main documentation for a description of the project and its components.