semantic-source
enso
semantic-source | enso | |
---|---|---|
23 | 83 | |
8,862 | 7,297 | |
0.2% | 0.2% | |
9.1 | 9.9 | |
about 1 month ago | 1 day ago | |
Haskell | Scala | |
MIT License | Apache License 2.0 |
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.
semantic-source
-
The Meaning of Monad in MonadTrans
One production example I know: GitHub code navigation is written in Haskell https://github.com/github/semantic
- Semantic: Parsing, analyzing, and comparing source code across many languages
-
How to Get Started with Tree-Sitter
ah, easy. it's because support has not been added into https://github.com/github/semantic which is the tech that powers the GitHub UI. Adding support is pretty easy/mainly glue code [1] that imports the tree sitter API.
[1] https://github.com/github/semantic/blob/793a876ae45d38a6bd17...
- Scala community now has control over the official Scala grammar for tree-sitter 🎉
- 2022 State of Haskell Survey
-
11 Companies That Use Haskell in Production
GitHub used Haskell for implementing Semantic, a command-line tool for parsing, analyzing, and comparing source code.
-
What happened with GitHub's semantic project?
As far as engineering effort, you can read this GitHub comment for an overview of where we’d like to take the project in the future. The tl;dr here is that the open sum type view of the world made it very concise to fold over syntax trees (since such a view of data is ultimately unityped, recursion schemes Just Work), but the tradeoff thus associated—namely, that you have to parse a concrete syntax tree into an open-sum view (a complicated and painful-to-read process), that you can never really be sure how a given syntax tree is shaped, and that the types don’t help you nearly as much as they could—proved to be too onerous to deal with. Going forward, we’re generating syntax types from the AST once per target language, and working on an abstraction (probably via this generated code; I made five separate efforts at using Generics for this, and failed every time) that recovers at least some of the convenience of recursion schemes. It turns out that recursion schemes over a mutually recursive syntax tree—as pretty much every language’s syntax trees are, in practice—are pretty much an unsolved problem, especially when extended to languages like TypeScript, which have hundreds of different syntax nodes.
-
Stack Graphs
Meanwhile their Tree-Sitter-based semantic parser[1] looks abandoned. There is even rotting for years pull request[2] adding support of the same stack graphs into it.
[1] https://github.com/github/semantic
[2] https://github.com/github/semantic/pull/535
-
Cardano relying on Haskell is not bad at all
The semantic team at GitHub uses it for statically analyzing the dozens of languages that end up in GitHub repositories: https://github.com/github/semantic/blob/eaf13783838861fe5eb6cd46d59354774a8eb88d/docs/why-haskell.md
-
7 Useful Tools Written in Haskell
Yesterday I was looking for some examples of projects using tree-sitter (which is C) when I found GitHub's semantic, used to analyze and compare source code, and written in Haskell: https://github.com/github/semantic/
enso
- Show HN: Flyde – an open-source visual programming language
-
Ask HN: What are your thoughts on no-code tools like Microsoft's Power Automate?
> At least I have yet to see one that is actually useful in the sense of a generic (or even a single-purpose-built) language
Yeah as said, https://github.com/enso-org/enso seems to be a general purpose functional programming language with visual editor, but otherwise I haven't really seen any no-code solutions worth their salt. I'm not particularly a fan of enso either, but it's the best I've seen.
- Platform for mixing Python, Java, JavaScript and much more
-
Visual Node Graph with ImGui
Although it's not quite the same, I do like what Enso[0] is bringing to the table, especially the 1:1 visual node/language interop. Whether this is generalisable to a fully decoupled interface remains to be seen, but there's definitely potential.
[0]: https://enso.org/
-
Show HN: Ezno, a TypeScript checker written in Rust, is now open source
I think Enso is already taken by a YC company [0]. Could get confusing.
[0] https://enso.org
-
Official /r/rust "Who's Hiring" thread for job-seekers and job-offerers [Rust 1.67]
COMPANY: Enso Inc. TYPE: Full time LOCATION: Europe and United States of America – fully distributed company REMOTE: Only remote VISA: No VISA required DESCRIPTION: Hi, we are Enso (enso.org, Y Combinator S21)! We are looking for an amazing Cloud engineer to join our core team. We are a remote first company, working in Europe and the USA.
- Enso – a programming language with dual visual and textual representations
-
Ask HN: Has anyone fully attempted Bret Victor's vision?
Friends of mine are developing Enso (https://enso.org/), an interactive programming language with dual visual and textual representations.
Even well before Bret Victor's time, there were tools for visual programming. I have been using LabView to maintain data processing in an optical laboratory.
- Enso – Get insights you can rely on. In real time
-
Modern Data Modeling: Start with the End?
> I'm convinced this entire space should be visual.
At my last 2 jobs I spent entirely too much time debugging Matillion jobs, which are visual. I have my doubts that it’s the panacea that it appears to be.
That said, you may find Enso particularly interesting: https://github.com/enso-org/enso
What are some alternatives?
diffsitter - A tree-sitter based AST difftool to get meaningful semantic diffs
blockly - The web-based visual programming editor.
massiv - Efficient Haskell Arrays featuring Parallel computation
rakudo - 🦋 Rakudo – Raku on MoarVM, JVM, and JS
refined - Refinement types with static checking
makepad - Makepad is a creative software development platform for Rust that compiles to wasm/webGL, osx/metal, windows/dx11 linux/opengl
cantor-pairing - Convert data to and from a natural number representation
liquibase - Main Liquibase Source
jump - Jump start your Haskell development
Graal - GraalVM compiles Java applications into native executables that start instantly, scale fast, and use fewer compute resources 🚀
Glean - System for collecting, deriving and working with facts about source code.
dark - Darklang main repo, including language, backend, and infra