I mentioned here recently that I was working on updating my Scintilla plugin for OCaml to also support Standard ML - and it is now "done"(*).
Since this coincided fortuitously (and barely) with the release cycle for Scintilla/SciTE 1.79, the new version has been included in the just-released editing package.
If you go to http://www.scintilla.org and look for binaries, you will be pointed to http://www.scintilla.org/SciTEDownload.html. Here you can get compiled versions of the full Scintilla package (supporting a lot of programming languages) as part of either Windows or GTK+/Linux builds of the SciTE editor.
One thing which might be missed were one to jump right in and start editing SML with the SciTE editor + the aforementioned OCaml/SML plugin (called a "lexer" in Scintilla parlance): only ONE language at a time can be automagically associated with a given source file extension (file type).
So, as things come out of the box, OCaml has .ml and .mli files, while SML has .sml files. This may be adjusted two ways: by selecting a specific language from the SciTE Language menu, a default binding may be overridden. Or, by adjusting configuration files, SML can "take over" .ml file support for itself. These issues are discussed in the caml.properties config file in the main SciTE directory - note that you probably don't want to count on .ml and .ML being distinguishable.
Perhaps I am missing something, but it looks like Poly is all about an interactive read-eval-print loop sort of dev environment, as opposed to [also] supporting a non-interactive edit-compile-run model... this makes the efforts underway to have a richer interactive experience even more understandable. ;)
As I have already built OCaml bindings for Scintilla, creating SML bindings should be doable... but would this really be usable, given that Scintilla is Windows or GTK+, while Poly seems to be more Windows or X (including Motif here) oriented. Hmmm. I bring this up, because I think Scintilla can be useful as the "editing and output window" part of an IDE.
(*) - actually, while "done" as much as software projects ever are, some suggestions for updating the 3 [arbitrary] groups of keywords would be welcomed (again, see the caml.properties config file). ;)
Robert
Robert Roessler wrote:
I mentioned here recently that I was working on updating my Scintilla plugin for OCaml to also support Standard ML - and it is now "done"(*).
Since this coincided fortuitously (and barely) with the release cycle for Scintilla/SciTE 1.79, the new version has been included in the just-released editing package.
If you go to http://www.scintilla.org and look for binaries, you will be pointed to http://www.scintilla.org/SciTEDownload.html. Here you can get compiled versions of the full Scintilla package (supporting a lot of programming languages) as part of either Windows or GTK+/Linux builds of the SciTE editor.
... and, while I don't have a Mac and so don't pay as close attention, Scintilla/SciTE has been available on OS X for a few releases, and with this one, now supports Cocoa.
Robert
Robert Roessler wrote:
I mentioned here recently that I was working on updating my Scintilla plugin for OCaml to also support Standard ML - and it is now "done"(*).
It looks very nice. I've just been trying it out.
Perhaps I am missing something, but it looks like Poly is all about an interactive read-eval-print loop sort of dev environment, as opposed to [also] supporting a non-interactive edit-compile-run model... this makes the efforts underway to have a richer interactive experience even more understandable. ;)
Yes, this is the difficulty for an IDE. The model is that of an interactive session where the user types declarations and evaluates expressions in the scope of the previous declarations. There's no mechanism for separate compilation as such. Files can be compiled and executed using the "use" function and a file can itself contain calls to "use". This is the way large programs are built up. What this means, though, is that it isn't possible to tell just be looking at a file what it depends on. The IDE has to know where in the sequence of "uses" the file is if it wants to compile it "out-of-order".
As I have already built OCaml bindings for Scintilla, creating SML bindings should be doable... but would this really be usable, given that Scintilla is Windows or GTK+, while Poly seems to be more Windows or X (including Motif here) oriented. Hmmm. I bring this up, because I think Scintilla can be useful as the "editing and output window" part of an IDE.
Poly/ML doesn't really have any GUI associated with it. On Windows it puts up a simple GUI because command-line execution on Windows is so painful. On Unix most people use the command line version or various other wrap-arounds. The X-Windows/Motif code was for writing GUI applications in ML (there is now some similar code for Windows) but isn't used much at all now. For editing ML code Lucas has written a plug-in for jEdit which is in the SVN repository and that runs on both Unix and Windows. This supports the background compilation mechanism that we're working on for Poly/ML 5.3 where the editor can highlight program errors while it's being edited.
Regards, David