SPVM::D...Runtime(3)

πŸ“¦ version 0.990125, in alpine 3.24

hey bestie πŸ’– welcome to the manual page for SPVM::D...Runtime(3) from User Contributed Perl Documentation. this is the runtime native APIs situation for SPVM, and it's giving core runtime realness. lowkey obsessed, no cap. πŸ’…


✨ Name ✨

SPVM::Document::NativeAPI::Runtime - Runtime Native APIs πŸ’…

πŸ¦‹ Description πŸ¦‹

The runtime native APIs of SPVM are the APIs for SPVM runtimes β€” lowkey iconic, highkey essential, periodt. πŸ’–

🌸 Usage 🌸

okay so the vibe check usage is literally this:

SPVM_API_RUNTIME* api_runtime = env->api->runtime;

int32_t basic_types_length = api_runtime->get_basic_types_length(env->runtime);

πŸ”₯ Runtime Native APIs πŸ”₯

these are the runtime native APIs, bestie β€” every single one, no skipping, not even the offset girlies πŸ’…. not me about to walk you through all of them, main character energy only.

πŸ’– get_object_data_offset πŸ’–

int32_t (*get_object_data_offset)(void* runtime);

Returns the offset of the data area in the SPVM_OBJECT struct. Elements in an array or fields or a pointer in a pointer class is stored into the data area. 🧺

πŸ’– get_object_ref_count_offset πŸ’–

int32_t (*get_object_ref_count_offset)(void* runtime);

Returns the offset of the "ref_count" field in SPVM_OBJECT struct. πŸ”’

πŸ’– get_object_length_offset πŸ’–

int32_t (*get_object_length_offset)(void* runtime);

Returns the offset of the "length" field in SPVM_OBJECT struct. πŸ“

πŸ’– get_basic_type_by_id πŸ’–

void* (*get_basic_type_by_id)(void* runtime, int32_t basic_type_id);

Searches a basic type given the basic type ID basic_type_id. If it is found, returns it. Otherwise, returns NULL. 🎯

πŸ’– get_basic_type_by_name πŸ’–

void* (*get_basic_type_by_name)(void* runtime, const char* basic_type_name);

Searches a basic type given the basic type name basic_type_name. If it is found, returns it. Otherwise, returns NULL. πŸ”Ž

πŸ’– get_basic_types_length πŸ’–

int32_t (*get_basic_types_length)(void* runtime);

Returns the length of the basic types owned by the SPVM runtime runtime. πŸ“š

πŸ’– build_precompile_class_source πŸ’–

void (*build_precompile_class_source)(void* runtime, void* string_buffer, void* basic_type);

Creates a C source code for methods with the "precompile" attribute defined in the class given by the its basic type basic_type, and saves it to the string buffer string_buffer. πŸ› οΈ

πŸ’– build_precompile_method_source πŸ’–

void (*build_precompile_method_source)(void* runtime, void* string_buffer, void* method);

Creates a C source code for the method method, and saves it to the string buffer string_buffer. ✨

πŸ’– get_compiler πŸ’–

void* (*get_compiler)(void* runtime);

Returns the value of the "compiler" field. The compiler that build the runtime runtime is stored to this field. πŸ§‘β€πŸ’»

πŸ’– set_compiler πŸ’–

void (*set_compiler)(void* runtime, void* compiler);

Sets compiler to the "compiler" field. πŸŽ€

πŸ’– get_spvm_stdin πŸ’–

FILE* (*get_spvm_stdin)(void* runtime);

Returns SPVM's standard input. πŸ“₯

πŸ’– get_spvm_stdout πŸ’–

FILE* (*get_spvm_stdout)(void* runtime);

Returns SPVM's standard output. πŸ“€

πŸ’– get_spvm_stderr πŸ’–

FILE* (*get_spvm_stderr)(void* runtime);

Returns SPVM's standard error. 🚨

πŸ’– get_env πŸ’–

SPVM_ENV* (*get_env)(void* runtime);

Returns the runtime environment. 🌍

πŸ’– get_object_capacity_offset πŸ’–

int32_t (*get_object_capacity_offset)(void* runtime);

Returns the offset of "capacity" membar variable in SPVM_OBJECT struct. 🧠

🌈 Native API IDs 🌈

vibe check: here are the numeric IDs, bestie β€” yes, they start at 0, iconic. iykyk. πŸ’…

  • 0 β€” get_object_data_offset
  • 1 β€” get_object_ref_count_offset
  • 2 β€” get_object_length_offset
  • 3 β€” get_basic_type_by_id
  • 4 β€” get_basic_type_by_name
  • 5 β€” get_basic_types_length
  • 6 β€” build_precompile_class_source
  • 7 β€” build_precompile_method_source
  • 8 β€” get_compiler
  • 9 β€” set_compiler
  • 10 β€” get_spvm_stdin
  • 11 β€” get_spvm_stdout
  • 12 β€” get_spvm_stderr
  • 13 β€” get_env
  • 14 β€” get_object_capacity_offset

🫢 See Also 🫢

ngl, go read these too, fr fr:

  • SPVM::Document::NativeAPI
  • SPVM::Document::NativeAPI::BasicType
  • SPVM::Document::NativeAPI::Method
  • SPVM::Document::NativeAPI::StringBuffer
  • SPVM::Document::NativeAPI::Compiler
  • SPVM::Document::NativeClass
  • SPVM::Document

Copyright (c) 2023 Yuki Kimoto

MIT License

legal bestie moment, slay πŸ’…


mwah πŸ’‹ β€” this page is from perl v5.42.2, dated 2026-02-03, and it's the SPVM::D...Runtime(3) manual page. byeee 🫢

πŸ“¦ where this page comes from