PALs & GALs are also relatively simple components programmable using non-proprietary hw & sw.
There are some FPGA families supported by fully open source toolchain today.
And there's CPLDs, which fall in between complexity wise.
Any of those would offer much shorter propagation delays (read: higher clocks) than EEPROMs.