reason
refterm
Our great sponsors
reason | refterm | |
---|---|---|
44 | 37 | |
10,044 | 1,496 | |
0.3% | - | |
5.8 | 0.0 | |
about 1 month ago | about 1 year ago | |
OCaml | C | |
MIT License | GNU General Public License v3.0 only |
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.
reason
- Learning Elm by porting a medium-sized web front end from React (2019)
-
Melange for React devs book, alpha release
Hey HN, at Ahrefs we have been working on an online book that hopefully helps React developers get up and running with Melange, an OCaml to JavaScript compiler. You can read more about Melange here: https://melange.re/.
There are still a few chapters that we'd like to add before considering it "complete", but it might be already helpful for some folks out there, that's why we decided to publish it early.
The book uses Reason syntax to implement React components using ReasonReact components. You can read more about both in:
-
ReScript: Rust like features for JavaScript
ReScript is "Fast, Simple, Fully Typed JavaScript from the Future". What that means is that ReScript has a lightning fast compiler, an easy to learn JS like syntax, strong static types, with amazing features like pattern matching and variant types. Until 2020 it was called "BuckleScript" and is closely related to ReasonML.
- Ask HN: Interest in a Rust-Inspired Language Compiling to JavaScript?
-
Earning the privilege to work on unoriginal problems
This tracks with how I've seen "normal" languages converge on similar, flawed imitations of better type systems through tools and repurposed syntax. Thank you for confirming.
Do you have any recommendations or warnings regarding general languages which reach in the opposite direction? Reason[1] and F#[2] are both examples: they attach pre-existing ecosystems and compile-for-$PLATFORM tools to OCaml-like typing.
OCaml itself is also intriguing for personal projects. However, I'm worried the "GPL" in its standard library's LGPL license might scare people despite both the linking exception and Jane Street's MIT alternative.
-
Melange 1.0: Compile OCaml / ReasonML to JavaScript
ReasonML purely as a syntax layer on top of OCaml is still being updated and released[1]. Incidentally, I'm one of the maintainers of that project too :-)
With this Melange release, we're hoping to somewhat revive ReasonML and channel some folks back to the community from the perspective of a vertically integrated platform that has seen major investment in the past few years.
-
My Thoughts on OCaml
Quieted down, but I depend on projects with worst graphs:
ReasonML and ReScript are a (more or less the same) new syntax on top of OCaml. ReScript only targets JS, while ReasonML targets both JS and the native archs OCaml supports. Facebook and Bloomberg are using ReScript internally, afaik. Messenger.com is written in it. Facebook also maintains React bindings to ReScript.
-
why
There is also reasonml for Web development.
- Por que Elm é uma linguagem tão deliciosa?
refterm
- Linux Terminal Emulators Have the Potential of Being Much Faster
-
What Happens Before the Main Function is Called ?
refterm, a terminal emulator proof of concept.
- Beside SDL, is there an easier way to just show a custom rectangle with text, cross-platform?
- Windows Terminal is now the default Windows 11 22H2 console
-
Why Modern Software Is Slow
> licensing it so that they couldn’t even look at it
https://github.com/cmuratori/refterm/blob/main/LICENSE
It’s just GPL 2.0, what are you talking about!?
Are Microsoft employees vampires that will burn up instantly if they merely glance at GPL code or something?
This is sour grapes nonsense from Microsoft. “We don’t like your tone so we won’t even dignify your argument by considering it.”
At one point an MS employee said they would love to fix their code as suggested by Casey but he refused to even look at the YouTube video!
“I would love to hear your arguments but I refuse to listen to the sound of your voice.” is next-level dismissive.
-
How can I create a rogue engine from scratch without curses?
Casey Muratori made a renderer/terminal a short while back. Might be a good reference of you intend to go that route. https://github.com/cmuratori/refterm
-
Microsoft insults dev then takes credit for their idea
You keep complaining that it's not a fully working terminal. Casey, on the other hand, writes here: [1]
> These features are not designed to be comprehensive, since this is only meant to be a reference renderer, not a complete terminal.
>most of the code in the parser/renderer part of the terminal is unnecessary and just slows things down. What this code needs to do is extremely simple and it seems like it has been massively overcomplicated
He means exactly what he says. Notably, refterm had almost no optimization applied to it.[0] The massive performance increase was entirely due to non-pessimization.[1]
>refterm actually isn't very fast. Despite being several orders of magnitude faster than Windows Terminal, refterm is largely unoptimized and is much slower than it could be. It is nothing more than a straightforward implementation of a tile renderer, with a very simple cache to ensure that glyph generation only gets called when new glyphs are seen. It is all very, very simple. A more complex codebase that parsed Unicode and rendered glyphs itself would likely be much faster than refterm for many important metrics.[0]
[0] - https://github.com/cmuratori/refterm
[1] - Refterm Lecture Part 1 - Philosophies of Optimization - https://www.youtube.com/watch?v=pgoetgxecw8
Sure but in this case it was grossly over-estimated compared to the under-estimated side. Casey did the implementation [1] to prove the point and also made explanatory videos [2] of it.
-
Burn My Windows
After that post they did implement a full reference implementation:
https://github.com/cmuratori/refterm/commits/main
And there is movement in getting changes into the terminal itself:
What are some alternatives?
xterm.js - A terminal for the web
Windows Terminal - The new Windows Terminal and the original Windows console host, all in the same place!
purescript - A strongly-typed language that compiles to JavaScript
kitty - Cross-platform, fast, feature-rich, GPU based terminal
rescript-compiler - The compiler for ReScript.
termbench - Simple benchmark for terminal output
hyperterm - A terminal built on web technologies
alacritty - A cross-platform, OpenGL terminal emulator.
melange - A mixture of tooling combined to produce JavaScript from OCaml & Reason
js_of_ocaml - Compiler from OCaml to Javascript.
ocamlformat - Auto-formatter for OCaml code
sqlite3-ocaml - OCaml bindings to the SQLite3 database