1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-09 05:30:21 +02:00
guile/module/language/tree-il
Andy Wingo 51bc69dd1c Fix bytevector mutators to correctly check for mutability
Previously, bytevectors that were serialized into binaries were actually
mutable by compiled bytevector-u8-set! et al.

* libguile/bytevectors.h (SCM_F_BYTEVECTOR_IMMUTABLE): Renumber to 0x80,
as for immutable vectors.
(SCM_BYTEVECTOR_CONTIGUOUS_P): Just use SCM_CELL_TYPE.
(SCM_BYTEVECTOR_FLAGS): Remove unused accessor.
* module/language/tree-il/compile-cps.scm (bytevector-set-converter):
Emit mutable-bytevector? instead of bytevector?.
* module/system/vm/assembler.scm (link-data): Update immutable flag.
* module/language/cps/compile-bytecode.scm:
* module/language/cps/effects-analysis.scm:
* module/language/cps/type-fold.scm:
* module/language/cps/types.scm:
* module/system/base/types/internal.scm: Update for immutable-bytevector
predicates.
2025-05-30 16:48:26 +02:00
..
analyze.scm tree-il-src is a vector, replaces tree-il-srcv 2025-05-12 13:45:21 +02:00
compile-bytecode.scm tree-il-src is a vector, replaces tree-il-srcv 2025-05-12 13:45:21 +02:00
compile-cps.scm Fix bytevector mutators to correctly check for mutability 2025-05-30 16:48:26 +02:00
cps-primitives.scm Allow string->utf8 to constant-fold 2023-11-15 10:44:21 +01:00
debug.scm tree-il-src is a vector, replaces tree-il-srcv 2025-05-12 13:45:21 +02:00
demux-lambda.scm New optimization: demux-lambda 2024-03-13 13:11:14 +01:00
effects.scm peval: better primcall folding in effect contexts 2023-11-15 19:31:24 +01:00
eta-expand.scm Add eta-expansion pass after peval 2020-01-15 16:11:15 +01:00
fix-letrec.scm Optimize ordering edges in fix-letrec 2025-01-22 16:51:28 +01:00
inlinable-exports.scm Fix inlinable-exports serialization for kwargs 2024-03-18 16:40:32 +01:00
letrectify.scm tree-il-src is a vector, replaces tree-il-srcv 2025-05-12 13:45:21 +02:00
optimize.scm Tree-IL lowerer has #:dump-optimized-tree-il? option 2024-04-23 13:06:34 +02:00
peval.scm tree-il-src is a vector, replaces tree-il-srcv 2025-05-12 13:45:21 +02:00
primitives.scm Move atomic primitive registration to (language tree-il) 2025-04-30 10:41:44 +02:00
resolve-free-vars.scm -Oresolve-free-vars pass gracefully handles failed autoloads. 2022-01-11 21:32:40 +01:00
spec.scm Move source properties out to a module 2025-05-12 16:29:04 +02:00