Re: [MLton] ML hack evening ideas

Matthew Fluet <[email protected]> Sun, 9 Jul 2017 22:37:02 -0400
Newsgroups gmane.comp.lang.ml.mlton.devel
Message-ID <CAMrhFL4zc3cJhJ6wgJeMbrB7A=_KJZ2rrOb_c0fcTLnieAAenQ@mail.gmail.com>
Some of the typical suggestions come to mind:
 * Some kind of Unicode support.  MLton now supports basic UTF-8 input
in string constants (http://mlton.org/SuccessorML#ExtendedTextConsts)
but could use additional library support for things like validating
proper UTF-8 encoded strings, counting the number of Unicode
characters in a string, etc.
 * A general-purpose graph library.  SML/NJ's utility library has a
strongly-connected component library, but there is often a need for
more general graph operations.
 * SML/NJ has a relatively new JSON library, but I don't know of any
YAML libraries, which is another common interchange format (which I've
sometimes found easier to generate than JSON).
 * Additional IDE (esp. Emacs) support.  For example, MLton has a
'def-use' mode for emacs (http://mlton.org/EmacsDefUseMode), which I
use quite a bit, but I wonder if it wouldn't be better to integrate
with one of the general-purpose emacs packages for that purpose (e.g.,
ctags, xref).  Similarly, I'd love to get some kind of completion
support, presumably using the emacs company-mode package.
 * I've wanted to develop a more powerful and declarative "options"
library.  Something that goes a bit further than getopt and even
SML/NJ's Controls library
(https://smlnj-gforge.cs.uchicago.edu/scm/viewvc.php/smlnj-lib/trunk/Controls/controls-sig.sml?view=markup&revision=4197&root=smlnj).
For example, I'd like to be able to express constraints between
options (e.g., if the "debug" option has been enabled, then the
"verbose" default is "true"; it is an error for both "profile" and
"debug" to be enabled); I'd like the same declarative description of
options to generate code to support setting options via command line
processing as well as via configuration file reading.
 * One issue with IDE support for SML is that it is often difficult
(if not impossible) to know the context in which a .sml file is meant
to be used; it is implicit in the containing .mlb or .cm file.  So,
unlike most languages, where upon encountering an identifier that is
not bound in the file, one jumps to the top of the file to look at the
#import or include directives, one needs to do more work with SML
files.  So, I've wondered what things would look like in a world where
we had .smlb files (or something), which would be a (restricted)
combination of .sml and .mlb files.  Essentially something that
allowed one to declare the imports and exports of SML code.

-Matthew


On Thu, Jul 6, 2017 at 7:23 PM, Ram Raghunathan <[email protected]> wrote:
> All,
>
> I'm a graduate student at CMU, and a few of us here along with Gabriel
> Scherer are putting together an ML hacking evening to let people make
> small and meaningfull contributions to ML. I was wondering if the
> MLton dev team had any ideas of suggestions for MLton. These should be
> things that someone can do in a few hours. Some examples include
> documentation and simple features. We are open to suggestions that are
> both MLton-specific and more generally for SML.
>
> Here is a website for a similar even held at MIT last year:
> http://www.ccs.neu.edu/home/gasche/tmp/ocaml-hacking-session-june-6-2017/announce.html
> That event was for OCaml, while we wish to expand it to OCaml and
> SML.
>
> Thanks,
> Ram Raghunathan
>
> ------------------------------------------------------------------------------
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
> _______________________________________________
> MLton-devel mailing list
> [email protected]; [email protected]
> https://lists.sourceforge.net/lists/listinfo/mlton-devel

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot