modern software 2025 edition
Back in the olden times, software was hard to build and hard to use, but remarkable improvements have been made, and entire ecosystems of ergonomic languages are now available. I happen to think the old ways still have some merit, but don’t want to spend all my time staring at the cave walls.
Gleam v1.11.0 was released today, so let’s give it a whirl.
vivo:~/work/gleam-1.11.0> make
grep: repetition-operator operand invalid
Off to a great start. I can follow instructions, however, and run the install command as directed.
vivo:~/work/gleam-1.11.0> make install
cd gleam-bin && cargo install --path . --force --locked
Installing gleam v1.11.0 (/home/tedu/work/gleam-1.11.0/gleam-bin)
Updating crates.io index
thread 'main' panicked at src/tools/cargo/src/cargo/sources/registry/http_remote.rs:288:9:
assertion `left == right` failed
left: 384
right: 385
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
*** Error 101 in /home/tedu/work/gleam-1.11.0 (Makefile:15 'install')
Sweet. I will do as instructed.
vivo:~/work/gleam-1.11.0> env RUST_BACKTRACE=1 make install
cd gleam-bin && cargo install --path . --force --locked
Installing gleam v1.11.0 (/home/tedu/work/gleam-1.11.0/gleam-bin)
Updating crates.io index
thread 'main' panicked at src/tools/cargo/src/cargo/sources/registry/http_remote.rs:288:9:
assertion `left == right` failed
left: 384
right: 385
stack backtrace:
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
*** Error 101 in /home/tedu/work/gleam-1.11.0 (Makefile:15 'install')
Progress! I am happy to continue towards the light.
vivo:~/work/gleam-1.11.0> env RUST_BACKTRACE=full make install
cd gleam-bin && cargo install --path . --force --locked
Installing gleam v1.11.0 (/home/tedu/work/gleam-1.11.0/gleam-bin)
Updating crates.io index
thread 'main' panicked at src/tools/cargo/src/cargo/sources/registry/http_remote.rs:288:9:
assertion `left == right` failed
left: 384
right: 385
stack backtrace:
0: 0x84cc513d27e - <unknown>
1: 0x84cc516a601 - <unknown>
2: 0x84cc5128b94 - <unknown>
3: 0x84cc513d0c7 - <unknown>
4: 0x84cc514a8fd - <unknown>
5: 0x84cc514a7b4 - <unknown>
6: 0x84cc514b02b - <unknown>
7: 0x84cc513d7ab - <unknown>
8: 0x84cc513d4dd - <unknown>
9: 0x84cc514ab31 - <unknown>
10: 0x84cc51716a4 - <unknown>
11: 0x84cc5171a1e - <unknown>
12: 0x84cc51718d1 - <unknown>
13: 0x84cc451a2b3 - <unknown>
14: 0x84cc469eca1 - <unknown>
15: 0x84cc4418666 - <unknown>
16: 0x84cc446e275 - <unknown>
17: 0x84cc47b57b6 - <unknown>
18: 0x84cc47b911a - <unknown>
19: 0x84cc3f7de24 - <unknown>
20: 0x84cc3f9fd4b - <unknown>
21: 0x84cc3f9ca93 - <unknown>
22: 0x84cc3f8db31 - <unknown>
23: 0x84cc3ec589a - <unknown>
24: 0x84cc3f86360 - <unknown>
25: 0x84cc51543f8 - <unknown>
26: 0x84cc3f92281 - <unknown>
27: 0x84cc3eaef2b - <unknown>
*** Error 101 in /home/tedu/work/gleam-1.11.0 (Makefile:15 'install')
Having examined the tea leaves, I decide that the answer is to run make build
instead of make install
.
vivo:~/work/gleam-1.11.0> make build
cargo build --release
Updating crates.io index
Downloaded anstyle-parse v0.2.4
Downloaded asn1-rs-derive v0.4.0
Downloaded matchers v0.0.1
Downloaded 335 crates (23.8MiB) in 4.05s (largest was `age` at 1.4MiB)
Compiling proc-macro2 v1.0.95
Compiling unicode-ident v1.0.12
Compiling gleam-wasm v1.11.0 (/home/tedu/work/gleam-1.11.0/compiler-wasm)
Finished `release` profile [optimized] target(s) in 6m 13s
This works just fine. I now have a gleam binary in the targets directory.
vivo:/tmp> gleam new hi
Your Gleam project hi has been successfully created.
The project can be compiled and tested by running these commands:
cd hi
gleam test
vivo:/tmp> cd hi
/tmp/hi
vivo:/tmp/hi> ls
README.md gleam.toml src/ test/
Success! It works.
vivo:/tmp/hi> gleam test
Resolving versions
Downloading packages
Downloaded 2 packages in 0.16s
Compiling gleam_stdlib
Illegal instruction
Ah, well. Back to the cave.