|
| shpongled wrote:
| This is awesome, I will be installing and trying out later today!
|
| I was working on a SML compiler [1] and language server in Rust
| as well, but I dropped the ball towards the end of 2020 as I had
| a PhD to finish!
|
| SML is a great language, and I think some better tooling (like a
| language server) is all that it really needs to be useful.
|
| [1] https://github.com/SomewhatML/sml-compiler
| [deleted]
| sideeffffect wrote:
| SML comes with many implementations/compilers, but it is one
| standardized language (with formalized and verified semantics,
| IIRC).
|
| Does that mean that there is one repository with modules (like
| PyPI or Maven Central) which all the implementations can use? Is
| there even a single build tool that can work with all (or at
| least some) of them (like Maven, etc.)?
| nextaccountic wrote:
| > it is one standardized language (with formalized and verified
| semantics, IIRC).
|
| Unfortunately the spec defines too little, and there are large
| deviations between implementations. See
|
| http://mlton.org/StandardMLPortability
|
| http://mlton.org/UnresolvedBugs
|
| http://mlton.org/SMLNJDeviations
|
| SML/NJ is the most used implementation afaik. mlton is a whole-
| program optimizing compiler
| lpedrosa wrote:
| I think there was something like a package manager.
|
| Tbh, I wish we lived in an alternative reality where SML won
| over JS and we had it running on every major browser.
| pharmakom wrote:
| Very cool!
|
| Is anyone using SML these days for major projects? Feels like all
| the hype is around F# and OCaml.
| azdavis wrote:
| Author here, hope you like it!
| cwzwarich wrote:
| You're reusing some components from rust-analyzer, so is there
| any reason you didn't go with a more query-based/demand-driven
| architecture, e.g. by also using salsa?
| azdavis wrote:
| Just to make the MVP simpler.
|
| I note in the caveats that the current approach is to
| recompute everything whenever even one file is changed. But
| that's probably not sustainable, as I admit myself in
| https://azdavis.net/posts/pl-idea-tooling/ :
|
| > As an example, it would be unsustainable if, every time we
| changed a single function's body, the language server had to
| re-typecheck the entire codebase. This might work for an
| initial proof-of-concept on a small codebase, but for large
| ones, the responsiveness of the language server would drop
| precipitously.
|
| If I get around to addressing this, I'd probably use salsa
| and/or follow along this post: https://rust-
| analyzer.github.io//blog/2020/07/20/three-archi...
| lpedrosa wrote:
| This is great. I wanted to create something like this for quite
| some time! I definitely try it.
|
| Well done!
| yaseer wrote:
| Cool project!
|
| I always thought SML was a great language for teaching computer
| science and functional programming.
|
| A lot more fun than learning Java. With ML, you got glimpses of
| aesthetic beauty in code.
| westurner wrote:
| The bricklayer IDE and bricklayer-lite are SML IDEs FWIU [1].
| Could Millet and/or three Millet VSCode extension and/or the
| SML/NJ Jupyter kernel [2] be useful for creating executable
| books [3][4] for learning?
|
| [1] https://bricklayer.org/level-1/ :
|
| > _Bricklayer libraries provide support for creating 2D and 3D
| block-based artifacts. Problem-solving and math are used to
| exercise creative and artistic skills in a fun and innovative
| environment. Bricklayer integrates with third-party software
| including: LEGO Digital Designer, LDraw, Minecraft, and 3D
| Builder_ (LeoCAD; `dnf install -y leocad`)
|
| [2] https://github.com/matsubara0507/simple-ismlnj
|
| [3] https://github.com/executablebooks
|
| [4] https://executablebooks.org/en/latest/ (Jupyter-Book:
| Sphinx (Docutils (.rst ReStructuredText), .md)), MyST-Parser
| (.md MyST Markdown), Jupyter Kernels (.ipynb Jupyter
| Notebooks),)
| mark_undoio wrote:
| I enjoyed my university learning of SML a lot less than I think
| I should have done. Coming back to it later I was really
| impressed.
|
| Before university I'd programmed (primarily in BASIC) for many
| years, so imperative programming just made sense to me.
| Functional programming seemed alien and the amazing type system
| of ML-like languages just seemed to get in my way.
|
| What I was missing was the context to understand why it was
| good. And, to be honest, some compelling examples - we almost
| completely glossed over IO and system interfaces and the
| gyrations required to do things like efficient iteration just
| seemed a bit pointless.
|
| It was good computer science but I found it to be very
| unsatisfying engineering as I couldn't see how to build
| something useful. This may be my fault for not doing an
| engineering degree ;-)
|
| Once I understood more of how these systems are built at lower
| levels I was much better equipped to be impressed by how much
| of that was hidden from view!
| hajile wrote:
| A great language in need of a bit of tooling love. This is
| awesome!!
| cannam wrote:
| Well! This is interesting. I like the write-up.
|
| The acknowledgements include "Project Savanna, a group who shares
| my desire in improving the tooling around SML", with a link to a
| Slack page that asks for a login. Can you say anything more about
| this project?
| azdavis wrote:
| It's a group of mostly current/former CMU 15-150 TAs working on
| various SML tools, like:
|
| https://github.com/brandonspark/mulligan
|
| https://github.com/T-Brick/molasses
|
| https://github.com/shwestrick/parse-sml
| egcodes wrote:
| By the way, the word "Millet" means "people" in Turkish
___________________________________________________________________
(page generated 2022-08-18 23:00 UTC) |