-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
GHC 9.12 and cabal 3.14 release announcement #10
base: main
Are you sure you want to change the base?
Conversation
1c56805
to
3324bb3
Compare
3324bb3
to
2df95cb
Compare
### Code Generation | ||
|
||
* Experimental support for the [RISC-V Platform](https://gitlab.haskell.org/ghc/ghc/-/issues/16783); | ||
* SIMD! In the x86: Most floating-point operations and some integer vector operations are supported 128-bit vectors **without LLVM**. [Get in touch](https://matrix.to/#/#ghc:matrix.org) to help with this effort |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
* SIMD! In the x86: Most floating-point operations and some integer vector operations are supported 128-bit vectors **without LLVM**. [Get in touch](https://matrix.to/#/#ghc:matrix.org) to help with this effort | |
* SIMD! On x86, most floating-point operations and some integer vector operations are supported for 128-bit vectors **without requiring LLVM**. [Get in touch](https://matrix.to/#/#ghc:matrix.org) to help with this effort |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The crux of the effort was to support vector operations in the native code generator (NCG) instead of LLVM only. Whether NCG actually compiles them to SIMD instructions on x86_64 / NEON on aarch64 / etc. is somewhat secondary (also obviously very important in practice).
I'd say "Vectorised operations are now supported by GHC native code generator and no longer require a separate compilation with LLVM".
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Right, that was what I was attempting to say.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does the suggestion still stand? I'm not sure I understand the distinction you're making @Bodigrim, since in my understanding (and I could be very well wrong), vector operations are ultimately tied to SIMD. And the release notes item says:
SIMD support has been added to the X86 native code generator. For the time being, only 128 bit wide vectors are supported, with most floating-point operations implemented, together with a few integer vector operations. Other operations still require the LLVM backend. Contributors welcome!
#### ⚠️ Deprecations | ||
|
||
* Support 32-bit Windows & macOS/iOS has been dropped; | ||
* As a result, friendship with the `stdcall` calling convention for FFI is ended. Now `ccall` is your best friend. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
* As a result, friendship with the `stdcall` calling convention for FFI is ended. Now `ccall` is your best friend. | |
* As a result, friendship with the `stdcall` calling convention for FFI has ended. Now `ccall` is your best friend. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hm, actually don't we want to recommend CApiFFI
and capi
, come to think of it? It goes back to 7.6.1, and I would argue that it's nearly mandatory since ghc switched to generating asm rather than C.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's not like you can replace stdcall
with ccall
and keep compiling on 32-bit Windows: the support for Win32 ended, thus stdcall
serves no purpose any longer.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
True, but that also rules out the recommendation for ccall
. In any case, I think the deprecation period for 32-bit Windows ending makes that moot: if you want to continue using it you must use an older ghc, which will still support stdcall
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
TBH I never understood why Microsoft chose to use the Pascal calling convention when nobody to speak of was using a Pascal compiler to write programs for Windows. Yes, strictly speaking it has some advantages, but they're outweighed by the added complexity of needing to switch calling conventions for system APIs.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@bgamari @AndreasPK what's the recommended phrasing here? Should we steer users away from ccall
and directly to capi
, or is ccall
a good intermediate step when they migrate away from stdcall
?
Co-authored-by: brandon s allbery kf8nh <[email protected]>
Co-authored-by: brandon s allbery kf8nh <[email protected]>
Co-authored-by: brandon s allbery kf8nh <[email protected]>
Co-authored-by: brandon s allbery kf8nh <[email protected]>
Co-authored-by: brandon s allbery kf8nh <[email protected]>
@@ -0,0 +1,128 @@ | |||
+++ | |||
title = "GHC 9.12 & cabal 3.14 releases" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Shouldn't it be either Cabal
or cabal-install
? Seems odd to choose lower case.
* The deprecation period for [GHC.Pack][GHC.Pack] has come to an end. Goodbye! | ||
* [GHC.Desugar][GHC.Desugar] will be removed in GHC 9.14. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What does this actually mean that 'a deprecation period' has ended? It's not crystal clear whether it means the deprecation was cancelled, the module was removed in 9.14, the module was previously removed before 9.14 or whether it will now get removed, after 9.14 was released. The valediction 'Goodbye' is cute but unnecessary, it would be better to just plainly state that the module is not available in 9.14.
I think it would be better to avoid colloquial or memey language like e.g. the 'friendship has ended, now best friend' meme. It's culture specific and unnecessary, hasn't traditionally been used (at least not according to releases) and I don't understand why now is the time to start using memes.
No description provided.