ghc
passerine
Our great sponsors
ghc | passerine | |
---|---|---|
95 | 10 | |
2,968 | 1,029 | |
0.8% | 0.5% | |
9.7 | 0.0 | |
3 days ago | almost 2 years ago | |
Haskell | Rust | |
GNU General Public License v3.0 or later | 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.
ghc
-
Veryl: A Modern Hardware Description Language
of course it does! what else would you call something like chicken scheme [https://call-cc.org/], ats [https://ats-lang.sourceforge.net/], or ghc [https://www.haskell.org/ghc/]? they are not "scripts", they are full-blown compilers that happen to use C as their compilation target, and then leverage C compilers to generate code for a variety of architecures. it's a very sensible way to do things.
-
XL: An Extensible Programming Language
Agree about Haskell... as far as I'm aware there is actually no declarative/easily-readable definition of the Haskell syntax that is also complete, especially when it comes to the indentation rules, and the syntax is basically defined by the very (ironically) imperatively-defined GHC parser[0].
I prefer a syntax like in Pure[1], where the ambiguous, hard to parse indentation-based syntax is replaced by explicit semicolons (Yeah, you can use braces/semicolons in Haskell as well, but most code doesn't).
[0] https://github.com/ghc/ghc/blob/master/compiler/GHC/Parser/L...
[1] https://agraef.github.io/pure-lang/
-
Revisiting Haskell after 10 years
GHC, the main Haskell compiler
-
Beginner question -- best way to implement this in Haskell?
GHCi, version 9.6.3: https://www.haskell.org/ghc/ :? for help Loaded GHCi configuration from /Users/daniel/.ghci ghci> :{ | split :: Float -> [Int] | split value = map(read . (:[])) . show | :} :3:15: error: [GHC-83865] • Couldn't match expected type: [Int] with actual type: a0 -> [b0] • Probable cause: ‘(.)’ is applied to too few arguments In the expression: map (read . (: [])) . show In an equation for ‘split’: split value = map (read . (: [])) . show
-
GHC 9.8.1 has been released
GHC is hosted on Gitlab, the Github repo is just a mirror. So money.
https://github.com/ghc/ghc
-
Um rápido Hello World com Haskell
☁ ~ ghci GHCi, version 9.4.7: https://www.haskell.org/ghc/ :? for help ghci> 6 + 3^2 * 4 42
-
Introducing NeoHaskell: A beacon of joy in a greyed tech world
Depending on who you ask, a programming language can be different things. If you ask the Haskell community, many will tell you that the language is the Haskell specification, and that what currently is being used is not Haskell itself, but an extension of Haskell that is supported by the GHC compiler. Similar to the C language, a programming language would be a specification.
- Exploring the Internals of Linux v0.01
-
type derivation
GHCi, version 9.4.2: https://www.haskell.org/ghc/ :? for help Loaded GHCi configuration from ~/.dotfiles/ghc/.ghc/ghci.conf
- Why did GHC go from "occurs check failed" to talking about rigid type variables?
passerine
- Passerine: A small functional scripting language with macros, powered by Rust
-
The absurd complexity of server-side rendering
It's still a long way from being complete, but I'm working on something like that[0]. Eventual plans are to have good Rust library interop (e.g. bindings to hyper for http) while also being able to compile to Wasm (to run on an erlang-style distributed runtime / the browser). The language is currently interpreted, but one I get typechecking working, I should be able to merge in the Wasm codegen backend I'm working on (with eventual plans for LLVM). Current compiler has zero external dependencies.
Language itself could be described as a mix of OCaml, Scheme, and Lua. Currently working on the hygienic procedural macro system and system injection through algebraic effects.
[0]: https://github.com/vrtbl/passerine
-
I wrote a Cozy Programming language
Passerine was the next language i decided to try to fit onto paka, but alas this one too was eventually put aside for the time being.
-
Scripting Languages of the Future
Tossing my hat in for Passerine [1]. Gorgeous ML inspired syntax. Built for scripting Rust applications.
Dreaming here: Lua is a fantastic scripting language, but the Rust FFI isn’t as ergonomic as it could be. Enter Luster [2], which is basically LuaJIT rewritten in Rust.
Embedding a scripting language in a Rust application gives you tons of power (e.g. scripting Rust structs from Lua [3]), and setting this up isn’t terribly difficult.
[1] https://github.com/vrtbl/passerine
[2]: https://github.com/kyren/luster
[3]: https://git.sr.ht/~ioiojo/kiwi
- GitHub - vrtbl/passerine: A small extensible programming language designed for concise expression with little code.
-
Extensible syntax?
Seed7 and https://github.com/vrtbl/passerine (and seemingly more as others have suggested) have direct / first-class support of syntax declaration/definition in a homoiconic way, as powerful as LISPs, but feels more "natural" compared to a LISP.
-
Achieving nullable ergonomics with a real optional type without special compiler privileges.
It used to work pretty well only if the core PL makes semicolons programmable, but given the development of effect systems, plus customizable syntax as in https://github.com/ThomasMertes/seed7 and https://github.com/vrtbl/passerine , I'd say, there are much more we can do about it.
-
Passerine: An extensible and expressive new programming language
git clone https://github.com/vrtbl/passerine
- Passerine — extensible functional scripting langauge — 0.9.0 Released!
What are some alternatives?
polysemy - :gemini: higher-order, no-boilerplate monads
dapr - Dapr is a portable, event-driven, runtime for building distributed applications across cloud and edge.
in-other-words - A higher-order effect system where the sky's the limit
dmd - dmd D Programming Language compiler
vim-multiple-cursors - True Sublime Text style multiple selections for Vim
xvm - Ecstasy and XVM
effect-zoo - Comparing Haskell effect systems for ergonomics and speed
langs-in-rust - A list of programming languages implemented in Rust, for inspiration.
seed7 - Source code of Seed7
frp-zoo - Comparing many FRP implementations by reimplementing the same toy app in each.
TypeScript - TypeScript is a superset of JavaScript that compiles to clean JavaScript output.