ghc VS xl

Compare ghc vs xl and see what are their differences.

ghc

Mirror of the Glasgow Haskell Compiler. Please submit issues and patches to GHC's Gitlab instance (https://gitlab.haskell.org/ghc/ghc). First time contributors are encouraged to get started with the newcomers info (https://gitlab.haskell.org/ghc/ghc/wikis/contributing). (by ghc)
Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
ghc xl
95 6
2,971 242
0.8% -
9.7 10.0
about 7 hours ago about 1 year ago
Haskell C++
GNU General Public License v3.0 or later GNU General Public License v3.0 only
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
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

Posts with mentions or reviews of ghc. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-03-12.
  • Veryl: A Modern Hardware Description Language
    3 projects | news.ycombinator.com | 12 Mar 2024
    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
    8 projects | news.ycombinator.com | 21 Feb 2024
    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
    8 projects | dev.to | 15 Jan 2024
    GHC, the main Haskell compiler
  • Beginner question -- best way to implement this in Haskell?
    1 project | /r/haskellquestions | 7 Dec 2023
    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
    1 project | news.ycombinator.com | 10 Oct 2023
    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
    1 project | dev.to | 4 Oct 2023
    ☁ ~ 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
    2 projects | dev.to | 24 Sep 2023
    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
    8 projects | news.ycombinator.com | 12 Aug 2023
  • type derivation
    1 project | /r/haskellquestions | 31 May 2023
    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?
    2 projects | /r/haskell | 27 Apr 2023

xl

Posts with mentions or reviews of xl. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-02-21.
  • XL: An Extensible Programming Language
    8 projects | news.ycombinator.com | 21 Feb 2024
    From what I can read the author got really unlucky with some kind of radical API changes. Maybe at that time the LLVM team was a bit less serious with deprecations ?

    I use LLVM since v9, nowadays I'm stuck on v15 (that's not because of LLVM btw).

    Between the two versions there's been a radical change too, i.e "opaque pointers", but the transition was rather smooth as we were provided, for a long time, the two versions of the functions affected by the change. Maybe the LLVM team got more serious since the author experienced the said difficulties ?

    Other thing I note is that the author uses the CPP API. I use the C one which exposes only a high-level subset of the CPP one. This encourages a saner use of LLVM, a more concrete separation between the front-end and the mid-end, although sometimes there are limitations.

    A simple example of what encourages the C API, especially since opaque ptrs are added, is not to rely on LLVM to retrieve the IR type of an IR value. That should always be done using the AST, eg with an `.ir` field in your nodes.

    Another one I remark, after a brief overview of LLVM-CRAP, is that the author had to change the internal data structure used, depending on the LLVM version [0]. Using the C API that would never had happened. The C API essentially allows to create block refs, instructions refs, value refs, type refs, contexts. Then you choose the containers you want to use to hold them. No need to switch to another stdcpp one, even if internally LLVM does so.

    [0]: https://github.com/c3d/xl/blob/master/src/llvm-crap.cpp#L265

  • Ask HN: Cool Useful GitHub Repos?
    6 projects | news.ycombinator.com | 22 Dec 2023

What are some alternatives?

When comparing ghc and xl you can also consider the following projects:

polysemy - :gemini: higher-order, no-boilerplate monads

Modern_GUI_PyDracula_PySide6_or_PyQt6

in-other-words - A higher-order effect system where the sky's the limit

Modern_GUI_PyDracula_

vim-multiple-cursors - True Sublime Text style multiple selections for Vim

db48x - RPL runtime for the DM42 calculator, in the spirit of HP48/49/50

effect-zoo - Comparing Haskell effect systems for ergonomics and speed

seed7 - Source code of Seed7

frp-zoo - Comparing many FRP implementations by reimplementing the same toy app in each.

fused-effects - A fast, flexible, fused effect system for Haskell

xvm - Ecstasy and XVM

ghc-proposals - Proposed compiler and language changes for GHC and GHC/Haskell