Transput RFC - early version based on POSIX
Jose E. Marchesi
jemarch@gnu.org
Thu May 21 09:16:29 GMT 2026
Hello Chris.
> Good afternoon everyone,
>
> After monkeying around far too long trying to pull out bits of van
> Vliet's transput so I could implement it piece by piece, I have given up on
> that approach (way too many dependencies between things in there) and am
> gritting my teeth and starting back at the beginning.
>
> To facilitate getting as much as possible working, I'd like to put van
> Vliet's code and ideas on top of Algol 68 POSIX for now, forgetting about
> reading and writing binary for the first go-around.
>
> Does that make sense?
To me, it makes 100% sense. In my experience, once you get something
working it becomes easier to reason about it. There is a lot to learn
in the process too.
> Assuming it's not too crazy an idea, the first bump on the road I've
> encountered is dealing with system file status. As far as I can tell, the
> only pathway in Algol 68 POSIX for this type of thing is to call fopen() or
> fcreate() with various flags as documented here:
>
> https://gcc.gnu.org/onlinedocs/ga68/POSIX-files.html
>
> and then, based on what works and what doesn't, I can resolve many of van
> Vliet's "possibles":
> - get_possible(f) { true if fopen(filename, bits file o rdonly) returns ≥ 0
> }
> - put_possible(f) { true if fopen(filename, bits file o wronly) returns ≥ 0
> }
> - bin_possible(f) { always false for now }
> - compressible(f) { always true - indicates variable length lines }
> - reset_possible(f) { always true for now }
> - set_possible(f) { always true for now because lseek() }
> - backspace_possible(f) { always true for now because lseek() }
> - reidf_possible(f) { always false for now because Algol 68 transput
> doesn't provide rename() }
>
> Does this sound like an acceptable start?
I think it would be better to call to the system's fstat, a wrapper for
which needs to be added to the POSIX prelude.
More information about the Algol68
mailing list