-
290f8357
by Matthew Pickering at 2025-09-29T11:50:38+01:00
driver: Load bytecode static pointer entries during linking
Previously the entries were loaded too eagerly, during upsweep, but we
should delay loading them until we know that the relevant bytecode
object is demanded.
Towards #25230
-
ec2e3643
by Matthew Pickering at 2025-09-29T12:52:44+01:00
loader: Unify loadDecls and loadModuleLinkables functions
These two functions nearly did the same thing. I have refactored them so
that `loadDecls` now calls `loadModuleLinkables`.
Fixes #26459
-
3d2fdc22
by Matthew Pickering at 2025-09-29T13:08:42+01:00
testsuite: Use ghci_ways to set ways in PackedDataCon/UnboxedTuples/UnliftedDataTypeInterp tests
These tests reimplemented the logic from `valid_way` in order to
determine what ways to run. It's easier to use this combination of
`only_ways` and `extra_ways` to only run in GHCi ways and always run in
GHCi ways.
-
7b818199
by Matthew Pickering at 2025-09-29T13:08:42+01:00
Rename interpreterBackend to bytecodeBackend
-
b6923147
by Cheng Shao at 2025-09-29T13:08:42+01:00
compiler: implement and test bytecode serialization logic
-
2fa6fb1c
by Matthew Pickering at 2025-09-29T13:09:23+01:00
Add support for generating bytecode objects
This commit adds the `-fwrite-byte-code` option which makes GHC emit a
`.gbc` file which contains a serialised representation of bytecode.
The bytecode can be loaded by the compiler to avoid having to
reinterpret a module when using the bytecode interpreter (for example,
in GHCi).
There are also the new options:
* -gbcdir=<DIR>: Specify the directory to place the gbc files
* -gbcsuf=<suffix>: Specify the suffix for gbc files
The option `-fbyte-code-and-object-code` now implies
`-fwrite-byte-code`.
-
ff36bea7
by Matthew Pickering at 2025-09-29T13:09:24+01:00
Remove LazyBCOs
-
79400e0f
by Matthew Pickering at 2025-09-29T13:09:24+01:00
Print path to .gbc file if it's generated.
-
acd34084
by Matthew Pickering at 2025-09-29T13:09:24+01:00
Normalised ghci output
-
5355a342
by Matthew Pickering at 2025-09-29T13:09:24+01:00
Fix loading of objects
-
c2ca8e1a
by Matthew Pickering at 2025-09-29T13:09:24+01:00
Add performance test for consuming bytecode files