OCaml standart kitaplığındaki birçok external
bildirimi, int_of_float
:OCaml harici beyannamede% ne demektir?
external int_of_float : float -> int = "%intoffloat"
tanımı gibi işlev adının başında% 'dır?
OCaml standart kitaplığındaki birçok external
bildirimi, int_of_float
:OCaml harici beyannamede% ne demektir?
external int_of_float : float -> int = "%intoffloat"
tanımı gibi işlev adının başında% 'dır?
Derleyicide gizlenen çok sayıda %foo
özel ilkel madde var. Ocaml derleyici kaynaklarında en iyi listenin bytecomp/translcore.ml
sürümünde olduğunu düşünüyorum. Diyelim ki ben burada listeleyebilirsiniz kaç görelim:
Bu karşılaştırmalar uzman var sürümleri karşılaştırmak , float, string, nativeint, int32 ve int64, ve tür derleme zamanında biliniyorsa otomatik uzmanlaşacaktır.
%identity, %ignore, %field0, %field1, %setfield0, %makeblock, %makemutable, %raise, %incr, %decr, %seqand, %seqor, %boolnot
%negint, %succint, %predint, %addint, %subint, %mulint, %divint, %modint, %andint, %orint, %xorint, %lslint, %lsrint, %asrint
%eq, %noteq, %ltint, %leint, %gtint, %geint
%intoffloat, %floatofint, %negfloat, %absfloat, %addfloat, %subfloat, %mulfloat, %divfloat
%eqfloat, %noteqfloat, %ltfloat, %lefloat, %gtfloat, %gefloat
%string_length, %string_safe_get, %string_safe_set, %string_unsafe_get, %string_unsafe_set
%array_length, %array_safe_get, %array_safe_set, %array_unsafe_get, %array_unsafe_set
%obj_size, %obj_field, %obj_set_field, %obj_is_int
%lazy_force
%{nativeint,int32,int64}: _of_int, _to_int, _neg, _add, _sub, _mul, _div, _mod, _and, _or, _xor, _lsl, _lsr, _asr
%nativeint_{of,to}_int32, int64_{of,to}_int32, int64_{of,to}_nativeint
%caml_ba_ref_{1,2,3}, %caml_ba_set_{1,2,3}, %caml_ba_unsafe_ref_{1,2,3}, %caml_ba_unsafe_set_{1,2,3}
%send, %sendself, %sendcache
Tek bulabildiğim bu.
harici harici, özel olarak derleyici tarafından ele alınacak özel dıştır. Örneğin, int_of_float ile, ocamlc onu bir C işlevinin çağrısına derler, ancak ocamlopt ile, onu çiftden tamsayıya dönüştüren bazı özel assembler opcode'una derler.
Böyle bir şey olup olmadığını merak ediyordum. Bu özelliğin ve mevcut sihirli adların herhangi bir yerde belgelenip belgelenmediğini biliyor musunuz? –