https://www.youtube.com/watch?v=xv-WApd-pSY
#simonpeytonjones #spj #interview #haskell #ghc #verse #gamedev #unreal #fortnight #functionalprogramming


After too much time I finally was able to find some time to release a new version of my Crem library! Main new feature is the support for #ghc 9.10
https://hackage-content.haskell.org/package/crem-0.1.1.0
Now I need to continue working on it to support newer GHC versions
Might #GHC 9.14 be the first release that does not break anything (except for bounds bumps)? If you find anything, report it here:
https://discourse.haskell.org/t/was-any-breakage-caused-by-9-14/13902?u=jaror

Did anyone’s build break when they updated to GHC 9.14? That is, was any non-trival (not just bound bumps) change required to upgrade Haskell code that worked with GHC 9.12 to GHC 9.14? I haven’t found any examples but it’s possible I haven’t been paying close enough attention. For the last coupule of years I’ve been keeping a breakage inventory of such breakage. The amount of breakage has been declining over that period. Has it really hit zero? If you know of some such breakage please let me...
#GHC s #wasm backend,native uses the native bignum backend and the wasm native #codegen Compared to the #gmp flavour, the run-time performance may be slightly worse if the workload involves big Integer operations. May be useful if you are compiling proprietary projects and have concerns about statically linking the #LGPL-licensed gmp library.
Besides wasm MVP, certain extensions are used. The feature flags are enabled globally in our wasi-sdk build, passed at GHC configure time, and the wasm NCG may make use of the features. The rationale of post-MVP wasm feature inclusion:
Non-browser non-JavaScript runtimes
wasmtime
wasmedge
toywasm
wasmi
Non-browser #JavaScript runtimes
node, using the builtin wasi module to provide WASI implementation
bun, using the builtin WASI implementation
deno, using a legacy WASI implementation in std
#browsers
WASI spec includes certain syscalls that are provided as the wasi_snapshot_preview1 wasm imports. Additionally, the current WASI ABI specifies two different kinds of WASI modules: commands and reactors.
When linking a program for almost any platform out there, the linker needs to handle ctors(constructors) & dtors(destructors). ctors and dtors are special functions that need to be invoked to correctly initialize/finalize certain runtime state. Even if the user program doesn't use ctors/dtors, as long as the program links to libc, ctors/dtors will need to be handled.
Add --export flag for malloc/free. You can now allocate and free linear memory buffers that can be visible to the Haskell world, since the entire linear memory is available as the memory export.
In the #Haskell world,
https://github.com/palas/ghc-wasm-meta
"Compiler and runtime support for continuation marks" (PLDI 2020) https://dl.acm.org/doi/10.1145/3385412.3385981
"Continuation marks enable dynamic binding and context inspection in a language with proper handling of tail calls and first-class, multi-prompt, delimited continuations."
GHC proposal: "scoped thread-locals" https://github.com/ghc-proposals/ghc-proposals/pull/751
"efficient storage and lookup for immutable context
attached to the current Haskell thread, which is inherited by child threads."
Packages like `text` reach into the unstable bowels of #GHC to avoid allocating intermediate structures when reading IO.
But it is possible to do fusible lazy IO:
```
produce :: IO [Char]
produce = IO $ \s0 ->
(# s0 , build $ \c n ->
let go s = case runIO getChar s of
(# s' , x #) -> c x (go s')
in go s0
#)
```
Perhaps GHC could expose something like that and the text package could use it.
GHC amplia compras da agricultura familiar e reforça alimentação como política de saúde no SUS
#haskell development be mostly busywork for new #ghc versions...
2d61b20 relax dependencies for ghc-9.14
df41b88 relax dependencies for ghc-9.8
f5ce400 relax dependencies for ghc-9.6
4b4417f (tag: v0.1.2.1) v0.1.2.1
28330e6 relax dependencies for ghc-9.4
eac7560 fix incorrect wrapper on Win64
4ea1b67 bump dependencies for ghc 9.2