Hi Stefan, Lots of stuff here, which is why I took the time to read it. :-)
Stefan Israelsson Tampe <stefan.ita...@gmail.com> writes: > 1. The theorem prover (leanCop) is a nice exercise [...] > 2. Kanren is a nice way to program like with prolog, Great that you’re mentioning them. It looks like there’s a lot of interesting work that’s been done around Kanren, such as the “toy” type inference engine and, better, αleanTAP. I don’t grok it all I’m glad you’re looking at it from a Guile perspective. :-) > 4. The umatch hackity hack was turned into a much more hygienic creature. Funny sentence. :-) > 5) Typechecking is for safty and optimisation, in the end it can be cool to > have and I'm working to understand all sides of this and have a pretty good > idea what is needed. It will be a goos testcase for the code. Yes, if the type inference engine that comes with Kanren could somehow be hooked into Guile’s compiler, so that it can emit type-mismatch warnings or determine whether type-checks can be optimized away (which would require changes in the VM), that’d be great. What’s amazing is that Kanren + type-inference.scm weigh in at “only” ~3,500 SLOC. > 6) I copied the glil->assembly compiler and modded the code to spit out > c-code in stead of assembly. For functions which does not call other scheme > functions except in tail call manner this should be quite fast to adapt. And > of cause loops becomes wickedly fast when compiling this way. Wingo:s example > without consing tok 7ns for each loop on my machine. Interesting. Is it a sufficiently isolated change that you could point us to? Thanks, Ludo’.