Repository navigation
Remove GHCJS - #12396
Remove GHCJS#12396
Conversation
a1f95f0 to
6ad0efa
Compare
zlonast
left a comment
There was a problem hiding this comment.
Thank you very much for the work done!
1258820 to
d0da966
Compare
andreabedini
left a comment
There was a problem hiding this comment.
IIUC project fields like ghcjs-options and the like will now cause a unknown field warning, am I correct? It would be better to say "deprecated". The changelog say they are ignored, it might be worth being more specific.
d0da966 to
56396a0
Compare
ce95809 to
63f1757
Compare
|
@andreabedini, I've updated the changelog to be more explicit. The |
2ac6928 to
91af7e0
Compare
- Remove the --ghcjs flag - Remove the ghcjs and ghcjs-pkg builtin programs - Use uhc instead in tests that used ghcjs - Give a dedicated error when GHCJS is selected - ghcjs-* in a pkg ignored, in a project warned
91af7e0 to
0c4b18a
Compare
Merge Queue Status
This pull request spent 2 hours 6 minutes 36 seconds in the queue, including 1 hour 54 minutes 53 seconds running CI. Required conditions to merge
|
Fixes #11609, removing GHCJS.
I'll squash commits before applying the merge label if this pull request is approved.
Important
The removed exceptions and
ghcjsVersionImplInfowere exported fromCabal,so this needs a major version bump.
GHCJS was a standalone compiler that predates the JavaScript backend of GHC, which shipped with GHC 9.6. Its repository has been dormant for years and Cabal's
Distribution.Simple.GHCJSmodule was a stranded, untested duplicate of the GHC module.What is removed
Distribution.Simple.GHCJSmodule and itsPackageTests/GHCJStest.--ghcjsflag and theghcjsandghcjs-pkgbuiltin programs, with theghcjs-*lines they contributed to the generated config file and the program lists in the help text and the manual.ghcjsVersionImplInfoand the GHCJS branch ofgetImplInfo.VersionMismatchJS(9001) andVersionMismatchGHCJS(4001) exceptions. Their codes are marked retired.GHCJS ->case left inCabalandcabal-install. None were reachable once configure could no longer produce the flavour.Selecting the flavour, with
compiler: ghcjsin a project file or on theSetup configurecommand line, now fails with a dedicated error:What is kept
Cabal-syntax, theGHCJSconstructor ofCompilerFlavor,PerCompilerFlavorand theghcjs-options,ghcjs-prof-options,ghcjs-shared-optionsandghcjs-prof-shared-optionsfields. Packages on Hackage use these fields and must keep parsing. The manual marks them deprecated and ignored.OS Ghcjsand theghcjs_HOST_OSCPP guards. These describe thejavascript-unknown-ghcjstarget that the JavaScript backend of GHC still uses, not the GHCJS compiler.Deprecation process
The deprecation process that asks for a four release window is skipped in favour of a faster removal I proposed on discourse. So far, we've received no objections.
QA Notes
cabal buildin a project withcompiler: ghcjsincabal.projectshould fail with[Cabal-4002]and the message above.cabal build --ghcjsshould be rejected as an unrecognised option.cabal build --helpshould no longer list--ghcjs, and the--with-PROGprogram list should no longer includeghcjsorghcjs-pkg.~/.config/cabal/configshould have noghcjs-location,ghcjs-pkg-location,ghcjs-optionsorghcjs-pkg-optionslines.ghcjs-options: -fooshould still configure and build with GHC, with no warning and no effect.Tests
PackageTests/GHCJS/NotSupportedchecks the new error.IntegrationTests2config test drops itsghcjs-*assertions and passes.project-config-sharedparser test usesuhcinstead ofghcjsas its sample flavour.doc/was regenerated withmake -B -C doc cmd-helpandmake users-guidebuilds the manual cleanly.Template Α: This PR modifies behaviour or interface
Include the following checklist in your PR:
significance: significantin the changelog file.