Algol 68 compiler on DragonFlyBSD 6.4.2
Nelson H. F. Beebe
beebe at math.utah.edu
Fri May 22 07:54:37 PDT 2026
In late November 2025, the GNU Algol 68 compiler, ga68, was merged
into recent gcc-15, gcc-16, and gcc-17 distributions:
https://www.phoronix.com/news/Algol-68-Merged-Into-GCC-16
There is an active mailing list for ga68 at
https://gcc.gnu.org/pipermail/algol68/
where I've made several postings, including one announcing two
extensive new bibliographies of publications about the Algol language
family:
https://www.math.utah.edu/pub/tex/bib/algol68.bib
https://www.math.utah.edu/pub/tex/bib/algol-bulletin.bib
As always in our archives at Utah, you can change the final ".bib" to
".html" if you prefer a Web browser view with live hyperlinks. The
BibTeX ".bib" file is the definitive source, and the companion "*.ltx"
LaTeX files demonstrate that the entries can be successfully typeset.
I have built ga68 on several platforms, and am working on more.
Few O/S distributions have ga68 yet, but Ubuntu 26.04 RISC-V64 does,
so I have been able to test the compiler on that CPU, plus with my own
builds on physical ARM64 and x86_64 CPUs.
Here is a short example for calling a C math function from Algol 68:
% cat demo-j0f.a68
demo_j0f:
begin
short real x;
short real y;
proc (short real) short real j0f = nest C "j0f";
x := 0.0;
for k from 0 to 8
do
y := j0f(x);
puts("C j0f(" + fixed(x, 6, 3) + ") = " + fixed(y, 18, 9) + "'n");
x +:= 0.125
od
end
% ga68 demo-j0f.a68 -lm && ./a.out
C j0f(+0.000) = +1.000000000
C j0f(+0.125) = +0.996097564
C j0f(+0.250) = +0.984435939
C j0f(+0.375) = +0.965151596
C j0f(+0.500) = +0.938469791
C j0f(+0.625) = +0.904702281
C j0f(+0.750) = +0.864242362
C j0f(+0.875) = +0.817560386
C j0f(+1.000) = +0.765197706
These are early days for ga68, and corresponding tests for "real" and
"long real" types (like C "double" and "long double") do not yet
appear to work correctly. Nevertheless, I've been able to write about
4K lines of test code in Algol 68 for both ga68, and for the venerable
Algol 68 Genie compiler, a68g. Unfortunately, the latter appears to
have no escape to other languages, such as used in the "nest C"
example above. Also, it requires rather different syntax from that
accepted by ga68, and it does not seem possible to use both compilers
on common Algol 68 source files.
The main purpose of this note is to report that I have been able to
build ga68 on DragonFlyBSD 6.4.2 from the gcc-17-20260517 snapshot,
with a couple of workarounds during the build, and builds are in
progress on that system for more languages supported by gcc-17:
ada,c,algol68,c++,cobol,d,fortran,go,lto,m2,objc,obj-c++,rust
Builds of the full complement of languages in gcc on virtual machines
are multiday affairs, so progress is slow. On our fastest multicore
x86_64 machines, the builds take about an hour. On a 4-core Raspberry
Pi (2.4GHz Cortex-A74), they take about 17 hours.
I encourage the gcc maintainers for DragonFlyBSD to consider adding
support for gcc-16 and gcc-17 streams, and to include builds for ALL
of the available languages, including Algol 68, Cobol, D, Go, and
Modula/2. The gcc Rust compiler, gccrs, is, alas, not yet in a usable
state, and cannot process a hello-world example program that works
fine with rustc.
----------------------------------------
P.S> If any list reader is anxious to try my build of ga68 for
DragonFlyBSD, please contact me off list. I will supply a private link
to a .tar.gz file of the installation tree, which should be usable
immediately after unpacking the bundle, along with a bundle of test
Algol 68 programs.
-------------------------------------------------------------------------------
- Nelson H. F. Beebe Tel: +1 801 581 5254 -
- University of Utah -
- Department of Mathematics, 110 LCB Internet e-mail: beebe at math.utah.edu -
- 155 S 1400 E RM 233 beebe at acm.org beebe at computer.org -
- Salt Lake City, UT 84112-0090, USA URL: https://www.math.utah.edu/~beebe -
-------------------------------------------------------------------------------
More information about the Users
mailing list