GLML is an early stage functional domain-specific language for writing fragment shaders, targeting GLSL. Right now, it is primarily based on Hindley-Milner typing and features typeclasses for operator overloading. The long-term goal is to evolve into an ML-style language with size-dependent types. See docs/INFORMATION.md for a working roadmap and referenced resources.
If Nix is installed, nix develop provides the necessary libraries. Check dune-project to note dependencies, but all of the packages should support OCaml 5.3.0.
# Nix:
nix develop
# Opam:
opam switch create . 5.3.0
opam install . --deps-only- CLI:
dune exec GLML -- compile <file> - Web Playground:
make serve
