OCaml 手册中缺少关于 unboxed/boxed 的说明
Missing clarification in the OCaml manual about unboxed/boxed
OCaml 手册指出:
As another optimization, unboxable record types are represented specially; unboxable record types are the immutable record types that have only one field.
(https://caml.inria.fr/pub/docs/manual-ocaml/intfc.html#ss:c-tuples-and-records)
但是那个“一个字段”可以有哪些类型呢?仅限原生,还是任何记录类型?
任何类型:OCaml 内存表示是统一的。
更准确地说,就内存表示而言,OCaml 值要么是整数,要么是指向块的指针。
一个块由 header 后跟多个值组成。
拆箱用此值替换指向仅包含一个 OCaml 值的块的指针的拆箱内存表示。
OCaml 手册指出:
As another optimization, unboxable record types are represented specially; unboxable record types are the immutable record types that have only one field.
(https://caml.inria.fr/pub/docs/manual-ocaml/intfc.html#ss:c-tuples-and-records)
但是那个“一个字段”可以有哪些类型呢?仅限原生,还是任何记录类型?
任何类型:OCaml 内存表示是统一的。
更准确地说,就内存表示而言,OCaml 值要么是整数,要么是指向块的指针。 一个块由 header 后跟多个值组成。
拆箱用此值替换指向仅包含一个 OCaml 值的块的指针的拆箱内存表示。