moon
moonscript
Our great sponsors
moon | moonscript | |
---|---|---|
6 | 35 | |
2,584 | 3,118 | |
3.6% | - | |
9.7 | 4.4 | |
6 days ago | 6 months ago | |
Rust | Lua | |
MIT License | - |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
moon
-
Launch HN: Moonrepo (YC W23) โ Open-source build system
(for context - I'm not interested in first class node support)
This seems pretty cool. I particularly like how 'gradual' it seems to be relative to things like Bazel, i.e. you can take some shell scripts and migrate things over. I did have a play and hit an initial problem around project caching I think, which I raised at [0].
One comment, from the paranoid point of view of someone who has built distributed caching build systems before is that your caching is very pessimistic! I understand why you hash outputs by default (as well as inputs), but I think that will massively reduce hit rate a lot of the time when it may not be necessary? I raised [1].
As an aside, I do wish build systems moved beyond the 'file-based' approach to inputs/outputs to something more abstract/extensible. For example, when creating docker images I'd prefer to define an extension that informs the build system of the docker image hash, rather than create marker files on disk (the same is true of initiating rebuilds on environment variable change, which I see moon has some limited support for). It just feels like language agnostic build systems saw the file-based nature of Make and said 'good enough for us' (honorable mention to Shake, which is an exception [2]).
[0] https://github.com/moonrepo/moon/issues/637
- A build system and repo management tool for the web ecosystem, written in Rust
-
Building a full-stack TypeScript application with Turborepo
There are many tools like Lerna, Nx, Turborepo, Moon, Rush, and Bazel, to name a few. Today, we'll be using Turborepo, as it's lightweight, flexible, and easy to use.
-
Lerna reborn - What's new in v6?
You should give moon a try: https://moonrepo.dev/
- Moon - A build system for the javascript ecosystem, written in rust.
moonscript
-
Why Fennel?
Now I like lua, and think single pass is the way to go for interpreted, since you don't have the disadvantage of a slow compile time no matter how big your codebase gets, BUT its not great to write in. things like +=, ++, are not possible, which means the only solution is to transpile into it, which has led to some good languages like moonscript[0], teal[1] which offers static type checking, an absolute must as your codebase grows.
[0]: https://moonscript.org/
-
Forth: The programming language that writes itself: The Web Page
That can be very productive and clever, but be - and stay - aware that such polyglot solutions tend to be maintenance headaches in the longer run.
There is a really nice open source project out there that allows you to train your hearing and your sightreading, but it's written in the authors own language which in turn compiles to JavaScript and the headache to set up their toolchain is such that I haven't bothered fixing any of the bugs that I'm aware of (and there are plenty).
https://sightreading.training/
https://github.com/leafo/sightreading.training
It's written in a language called 'Moonscript':
https://github.com/leafo/moonscript
Which compiles to Lua. Which compiles to JS.
Madness. Nice madness, but still, it stopped me from being a contributor.
-
Lua: The Little Language That Could
RE: the cost of switching at this point, what about languages that compile to Lua? Like https://moonscript.org/. That would let you keep the legacy code, no?
-
Trying to make a website with Lapis
In the case of Lapis, it is actually written in Moonscript, which needs a few more things.
- Launch HN: Moonrepo (YC W23) โ Open-source build system
- Using Lua with C++
-
Using other languages
There's also some languages made to compile straight to Lua: - MoonScript is the most popular Lua wrapper - it's built to be more Python-like, featuring indentation-based scopes, function calls without parentheses, lambda syntax, list comprehension, and much more. - Yuescript is a modern update to MoonScript that adds more features (I haven't used it myself, so I'm not entirely sure exactly how it differs from MS). - Teal is a version of Lua that adds static typing for better code standards.
-
Best Websites For Coders
A programmer-friendly language that compiles to Lua.
- data types in function definition
-
A MiniTron In 47 Lines
This is a sample code for learning, written in Moonscript for TIC-80:
What are some alternatives?
hash - ๐ The open-source, self-building database. From @hashintel
Yuescript - A Moonscript dialect compiles to Lua.
orogene - Makes `node_modules/` happen. Fast. No fuss.
nelua-lang - Minimal, efficient, statically-typed and meta-programmable systems programming language heavily inspired by Lua, which compiles to C and native code.
nx - Smart Monorepos ยท Fast CI
TypeScriptToLua - Typescript to lua transpiler. https://typescripttolua.github.io/
mandelbrot - Microbenchmark testing Python, Numba, Mojo, Dart, C/gcc, Rust, Go, JavaScript, C#, Java, Kotlin, Pascal, Ruby, Haskell performance in Mandelbrot set generation
luau - A fast, small, safe, gradually typed embeddable scripting language derived from Lua
napi-rs - A framework for building compiled Node.js add-ons in Rust via Node-API
TIC-80 - TIC-80 is a fantasy computer for making, playing and sharing tiny games.
hackerman - Cargo hack manager
LuaJIT - Mirror of the LuaJIT git repository