docs.odin 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179
  1. package runtime
  2. /*
  3. package runtime has numerous entities (declarations) which are required by the compiler to function.
  4. ## Basic types and calls (and anything they rely on)
  5. Source_Code_Location
  6. Context
  7. Allocator
  8. Logger
  9. __init_context
  10. _cleanup_runtime
  11. ## cstring calls
  12. cstring_to_string
  13. cstring_len
  14. ## Required when RTTI is enabled (the vast majority of targets)
  15. Type_Info
  16. type_table
  17. __type_info_of
  18. ## Hashing
  19. default_hasher
  20. default_hasher_cstring
  21. default_hasher_string
  22. ## Pseudo-CRT required procedured due to LLVM but useful in general
  23. memset
  24. memcpy
  25. memove
  26. ## Procedures required by the LLVM backend
  27. umodti3
  28. udivti3
  29. modti3
  30. divti3
  31. fixdfti
  32. fixunsdfti
  33. fixunsdfdi
  34. floattidf
  35. floattidf_unsigned
  36. truncsfhf2
  37. truncdfhf2
  38. gnu_h2f_ieee
  39. gnu_f2h_ieee
  40. extendhfsf2
  41. __ashlti3 // wasm specific
  42. __multi3 // wasm specific
  43. ## Required an entry point is defined (i.e. 'main')
  44. args__
  45. ## When -no-crt is defined (and not a wasm target) (mostly due to LLVM)
  46. _tls_index
  47. _fltused
  48. ## Bounds checking procedures (when not disabled with -no-bounds-check)
  49. bounds_check_error
  50. matrix_bounds_check_error
  51. slice_expr_error_hi
  52. slice_expr_error_lo_hi
  53. multi_pointer_slice_expr_error
  54. ## Type assertion check
  55. type_assertion_check
  56. type_assertion_check2 // takes in typeid
  57. ## Arithmetic
  58. quo_complex32
  59. quo_complex64
  60. quo_complex128
  61. mul_quaternion64
  62. mul_quaternion128
  63. mul_quaternion256
  64. quo_quaternion64
  65. quo_quaternion128
  66. quo_quaternion256
  67. abs_complex32
  68. abs_complex64
  69. abs_complex128
  70. abs_quaternion64
  71. abs_quaternion128
  72. abs_quaternion256
  73. ## Comparison
  74. memory_equal
  75. memory_compare
  76. memory_compare_zero
  77. cstring_eq
  78. cstring_ne
  79. cstring_lt
  80. cstring_gt
  81. cstring_le
  82. cstring_gt
  83. string_eq
  84. string_ne
  85. string_lt
  86. string_gt
  87. string_le
  88. string_gt
  89. complex32_eq
  90. complex32_ne
  91. complex64_eq
  92. complex64_ne
  93. complex128_eq
  94. complex128_ne
  95. quaternion64_eq
  96. quaternion64_ne
  97. quaternion128_eq
  98. quaternion128_ne
  99. quaternion256_eq
  100. quaternion256_ne
  101. ## Map specific calls
  102. map_seed_from_map_data
  103. __dynamic_map_check_grow // static map calls
  104. map_insert_hash_dynamic // static map calls
  105. __dynamic_map_get // dynamic map calls
  106. __dynamic_map_set // dynamic map calls
  107. ## Dynamic literals ([dymamic]T and map[K]V) (can be disabled with -no-dynamic-literals)
  108. __dynamic_array_reserve
  109. __dynamic_array_append
  110. __dynamic_map_reserve
  111. ## Objective-C specific
  112. objc_lookUpClass
  113. sel_registerName
  114. objc_allocateClassPair
  115. ## for-in `string` type
  116. string_decode_rune
  117. string_decode_last_rune // #reverse for
  118. */