trueagi-io / metta-morph

Metta-morph (from Metamorphosis): Macro-based MeTTa to (Chicken) Scheme translator.
MIT License
7 stars 1 forks source link

The choice of Scheme compiler #15

Open Necr0x0Der opened 1 year ago

Necr0x0Der commented 1 year ago

Chicken Scheme looks ok, but other choices can be considered carefully in order to proceed further. There are other choices such as Dr.Racket or Guile with different approaches (e.g. compilation to a VM rather than to a shared library). We need to create a list of suitable Scheme compilers and analyze them in accordance with a number of properties, e.g.

patham9 commented 12 months ago

A first summary regarding Ambivalence and Matchable (the major workhorses of MeTTamorph) in other Scheme implementations:

Ambilavence in other Scheme implementations: In October it was introduced to Gerbil (std/amb): https://github.com/mighty-gerbils/gerbil/blob/master/CHANGELOG.md In Racket: https://planet.racket-lang.org/package-source/murphy/amb.plt/1/0/planet-docs/amb/index.html In Guile, usable through a library on Gitlab: https://gitlab.com/tojoqk/guile-amb I will soon try whether the superpose macro for Chicken Scheme also works (or can adapted to work) with these amb implementations, and whether the depth-first search strategy matches.

Regarding Matchable: that one initially was on track to get standardized: https://srfi.schemers.org/srfi-204/srfi-204.html This however did not happen, but the library is written in a portable way, written with the hygienic syntax-rules macro system, so will also work with the other Schemes with just minor modifications. The source for Chicken Scheme is here: https://code.call-cc.org/svn/chicken-eggs/release/5/matchable/trunk/ and the package description: http://wiki.call-cc.org/eggref/5/matchable

patham9 commented 11 months ago

Some findings since last time:

I guess considering these points we can at least already eliminate Gerbil from the options?

Necr0x0Der commented 11 months ago

Yes, Gerbil can be discarded.