> A complete language needs a complete implementation.
No, Minh, I was not talking about re-implementing a whole Lisp/Scheme language interpreter in Haskell. (I know there is BTW a Scheme interpreter made in Haskell : http://jonathan.tang.name/files/scheme_in_48/tutorial/overview.html).
But what I really wanted to know is how usually haskellers do to script their applications.
For instance (as you say), many games made in C/C++ use Lua (for AI or for configuration).
That is the kind of scripting I'm talking about : a compiled program (in Haskell) reading an interpreting a script (in some already existing interpreted language (*) or some DSL especially made for this purpose).
(*) functional language, because I want to keep the benefit of functional programming for scripting. So no Lua, no Python...
> I may have misunderstood your goals and what you mean by
"scripting". Our DSEL is intended to be used for expressing all kinds
of scripting tasks.
Martin, I did not understand your meaning of "scripting". IMO, a program can be scripted if it provides a way to alter (a part of) its configuration without having to recompile it entirely. If need be it recompiles the configuration files, but I think it's better if those files are interpreted (speeds up the program lauching, since it doesn't have to compile and link again (*))
(*) Yi, for instance, takes a little time to recompile its configuration, and when it re-links its executable, it weighs 38Mo! (and dynamic linking is still not perfect in Haskell)
Plus, end-users have to install the compiler (GHC, which is not lightweight), even if they have the statically-linked executable of the application.
2010/5/4 Limestraël <limestrael@gmail.com>:
> ...
>Yes GHC is needed. But if your goal is to produce something with the
> Minh, Kyle, Gwern, the dyre approach seems to be very interesting too.
> But if I understood well, we also have to recompile at run-time the
> configuration haskell script?
> So the final application (Yi, for instance) will need GHC to be installed to
> run? Or did I miss something?
> By the way, I had never heard of Yi, but can I deduce from its name its a
> Vi(m)-like (which I am a big fan of)? Moreover, the idea of scripting my
> editor in Haskell appeals me.
benefits of a complete language for configuration, I think it's fine.
Numerous games include for instance a complete Lua interpreter,
SketchUp includes a ruby interpreter (or maybe it is python), Blender
uses python, Common Lisp programs can use Common Lisp, and so on.
A complete language needs a complete implementation.
If you want to make your own (non-embedded) DSL, you will either
provide less than a "complete" language or have to implement a lot of
stuff.
Cheers,
Thu