!xmLtiCaAJxfhURjrXl:matrix.org

NixOS RISC-V

236 Members
NixOS on RISC-V https://wiki.nixos.org/wiki/RISC-V https://pad.lassul.us/NixOS-riscv64-linux 68 Servers

You have reached the beginning of time (for this room).


SenderMessageTime
4 Apr 2024
@alex:tunstall.xyzAlex

GHC is quite tricky to compile, so I'd be pleasantly surprised if Sulong were capable of handling it.

Historically, using Hugs to run GHC on itself has been an option, but AFAIK Hugs doesn't support 64-bit ISAs and it also has a relatively low limit on program size that makes bootstrapping GHC even on x86 a nightmare. I don't know what it would take to support RV64GC and I haven't explored patching Hugs to raise the program size limitations.

12:24:58
@alex:tunstall.xyzAlexAlso Hugs requires an ancient version of GCC.12:25:47
@alex:tunstall.xyzAlex

Looking into Sulong, apparently it's not a Haskell compiler/interpreter but an LLVM bitcode interpreter?

That doesn't seem suitable for compiling GHC (Haskell code) from source.
LLVM bitcode isn't the problem here.

12:29:37
@shalokshalom:kde.orgShalokShalom Graal and Sulong are able to produce a native image of Haskell code 12:41:42
@shalokshalom:kde.orgShalokShalom Graal provides two runtimes: JVM and Truffle. Sulong is the LLVM implementation on Truffle 12:42:09
@shalokshalom:kde.orgShalokShalom Hugs is even older than Eta, so I doubt very much it can compile any modern Haskell code at all? 12:42:35
@thefossguy:matrix.orgPratham Patel (you can mention me)
In reply to @skeuchel:matrix.org
Here are my estimates

On the pioneer:
Unregisterised release+profiled_libs: >30h
Unregisterised quick+no_profiled_libs: 18h
Registerised release+profiled_libs: 12h
Registerised quick+no_profiled_libs: 9h

Using qemu user-mode
Registerised release+profiled_libs: 8h
Registerised quick+no_profiled_libs: 6h

Yeah, the multi-core interconnects are only present to connect the cores, not much more. i.e. not how 64-cores are interconnected on threadrippers/eypcs;

So here, qemu-emulation on x86 will be faster tbh

12:43:10
@skeuchel:matrix.orgSteven Keuchel
In reply to @thefossguy:matrix.org

Yeah, the multi-core interconnects are only present to connect the cores, not much more. i.e. not how 64-cores are interconnected on threadrippers/eypcs;

So here, qemu-emulation on x86 will be faster tbh

Most of the stuff I compile is quicker on the pioneer than user-mode emulations, so there's still something GHC-specific to it. Compiling w/o ilbnuma? Larger caches on x86? More "symbolic computations" in comparison to gcc?
12:57:44
@thefossguy:matrix.orgPratham Patel (you can mention me)There's obviously a lot of moving parts to this :)12:58:43
@thefossguy:matrix.orgPratham Patel (you can mention me)What I meant to say was, you're not actually using all 64-cores on the pioneer "efficiently" because the interconnects aren't well. It's a first gen product. Impressive that they could even pull it off, a first gen product nonetheless.12:59:42
@alex:tunstall.xyzAlex
In reply to @shalokshalom:kde.org
Hugs is even older than Eta, so I doubt very much it can compile any modern Haskell code at all?
It doesn't need to. It only needs to be able to interpret an old version of GHC, then the build can work its way up to a modern GHC.
13:43:26
@shalokshalom:kde.orgShalokShalom Yeah, true. 14:03:45
@shalokshalom:kde.orgShalokShalom Well then, Eta might be a choice. It has a native Haskell compiler for 7 and even some features of 8, probably better than Hugs 🤷 14:05:07
@rtunreal:c-base.orgrtunreal joined the room.15:23:24
@jopejoe1:matrix.orgjopejoe1 joined the room.16:22:35
@hive:the-apothecary.clubionRedacted or Malformed Event18:06:30

Show newer messages


Back to Room ListRoom Version: 10