unison
circle
Our great sponsors
unison | circle | |
---|---|---|
17 | 54 | |
5,540 | 2,165 | |
1.1% | - | |
9.9 | 5.0 | |
6 days ago | 6 months ago | |
Haskell | C++ | |
GNU General Public License v3.0 or later | - |
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.
unison
- Unison Programming Language
-
Unison Cloud
Short version: no type classes (yet)
Longer version:
Building upon what Quekid5 mentioned, Unison abilities are an implementation of what is referred to as algebraic effects in programming language literature. They represent capabilities like IO, state, exceptions, etc. They aren't really a replacement for type classes, though in some cases you can shoehorn abilities in where you might otherwise use a type class.
For someone coming from a Haskell background, I think that abilities are closer to a replacement for monad transformers. But in my opinion they are much more ergonomic.
Discusson of type classes comes up a lot. Here is a long-standing GitHub issue: https://github.com/unisonweb/unison/issues/502
For what it's worth, I've written Unison quite a lot over the past few years and while I've missed type classes at times, I think that reading unfamiliar code is easier without them. There's no implicit magic; you can see exactly what is being passed into a function. So far I've been happy with a bit more verbosity for the sake of readability.
-
Show HN: Winglang – a new Cloud-Oriented programming language
I've been following the Unison lang [1] for quite some. Wing seem to set similar goals? From the first glance Wing looks more polished, but there's "The Big Idea" behind Unison - is there something similar?
[1]: https://github.com/unisonweb/unison
- Unison Language
-
C++ evolution vs C++ successor languages. Circle's feature pragmas let you select your own "evolver language."
in haskell it looks like this, you specify the language extensions you want at the top of the source files: https://github.com/unisonweb/unison/blob/trunk/unison-core/src/Unison/ABT.hs
-
Looking for a new language to learn for Advent of Code that's unlike anything you've tried before? Check out Unison!
they adjusted my ticket to be a bug fix on their part.
-
Syntax Design
I think Unison is going in this direction. Imo this is a mistake, as a program language functions not just as specification for the machine, but also as communication between programmers. Allowing the introduction of arbitrary dialects to suit individual preferences seems like it would interfere with that communication.
- Unison
- Unison Milestone 3
- What if Git worked with Programming Languages?
circle
-
How difficult would it be to make a c++ compiler
Sean Baxter created a front end c++ compiler by himself, using llvm for the back end and the gcc or clang stl. I think it took him a couple of years. https://www.circle-lang.org/. Before this happened I heard a couple of different people claiming that there would never be a totally new compiler as it was too much work.
-
Toward a TypeScript for C++"
The real Typescript for C++ is Circle.
https://www.circle-lang.org/
Just like Typescript to JavaScript, the syntax is an evolution of what already exists, not a completely different syntax.
-
A Metaobject Protocol for C++ [pdf]
Sean Baxter's Circle [1] is arguably the spiritual successor to MOP.
[1] https://www.circle-lang.org/
-
Circle Evolves C++ [video]
Context: https://github.com/seanbaxter/circle/blob/master/new-circle/...
Note that Circle is not an F/OSS compiler as someone pointed out before. This however doesn't make Circle less relevant, because it is actually a testament to show that C++ could have been much better without the claimed breakage. If Circle does provide a number of desirable features and its compiler can be built by a single person, then why shouldn't the committee do the same?
-
My (Herb Sutter's) C++ Now 2023 talk is online: “A TypeScript for C++”
From all wannabe C++ replacements candidates, the only language that is really a TypeScript for C++, is Circle.
For whatever reason, Herb Sutter decided to ignore this language on the presentation.
https://www.circle-lang.org/
This is the only one with the syntax based on C++, incrementally changing the features via #pragma settings.
"Circle Fixes Defects, Makes C++ Language Safer & More Productive"
https://www.youtube.com/watch?v=x7fxeNqSK2k
"Circle Evolves C++"
https://www.youtube.com/watch?v=P1ZDOGDMNLM
- File for Divorce from LLVM
-
Making C++ Safe Without Borrow Checking, Reference Counting, or Tracing GC
The second someone makes a successor language that seamlessly/directly interops with C++ _AND_ has the level of build/IDE tooling that C++/Rust have, I'm on board.
The closest thing right now is Sean Baxter's "Circle" compiler in "Carbon" mode IMO:
https://github.com/seanbaxter/circle/blob/master/new-circle/...
Unfortunately, Circle is closed-source and there's no LSP or other tooling to make the authoring experience nice.
- Circle-lang: A feasible, simple, and immediate way for C++ to break out of the rut it's been in. Surprised more people aren't talking about it.
-
Recurrence-expression is a programmable superset of fold-expression
I read through the whole of https://github.com/seanbaxter/circle/blob/master/new-circle/README.md and man, I'm drooling. Awesome work, kudos.
-
Dropping support for old C++ standards
Have a look at Circle from Sean Baxter [0]. It's pretty impressive.
[0]: https://github.com/seanbaxter/circle/blob/master/new-circle/...
What are some alternatives?
nvim-treesitter-context - Show code context
raspberry-pi-os - Learning operating system development using Linux kernel and Raspberry Pi
dark - Darklang main repo, including language, backend, and infra
dts2hx - Converts TypeScript definition files (d.ts) to haxe externs (.hx) via the TypeScript compiler API
project-m36 - Project: M36 Relational Algebra Engine
mdspan - Reference implementation of mdspan targeting C++23
cone - Cone Programming Language
papers - ISO/IEC JTC1 SC22 WG21 paper scheduling and management
nbdime - Tools for diffing and merging of Jupyter notebooks.
CppCoreGuidelines - The C++ Core Guidelines are a set of tried-and-true guidelines, rules, and best practices about coding in C++
structured-haskell-mode - Structured editing minor mode for Haskell in Emacs
meta