Changes for version 0.571 - 2026-06-22

  • Requirement Changes
    • Require SPVM 0.990190.
    • Require SPVM::Errno 0.098.
    • Require SPVM::Math 1.010.
    • Require SPVM::Resource::SocketUtil 1.006.
  • New Features
    • Add Sys::Process#spawnvp_nowait method.
    • Add many functions to spvm_sys_windows.c and use them.
    • Support waitpid in Windows.
  • Changes
    • Restore Sys::Socket#inet_ntoa in Windows.
    • Use inet_pton to implement Sys::Socket#inet_aton.
  • Test Improvement
    • Clean up tests.
    • Add many tests.
    • Add tests:Open same file twice as write mode.
    • Add tests:Open same file twice as read mode.
    • Add same file tests for Sys::IO#open.
    • Enable ualarm tests in asan on linux.
  • Fix tests
    • Skip some clock_gettime tests for mac.
    • Improve ualarm tests. Ignore SIGALRM.
    • Fix tests for Sys::Time#times. Fix #115.
  • Internal Changes
    • Remove private methods in Sys class for Cwd.
  • Exception Handling Improvement
    • Improve exception handling in spvm_sys_windows.c
  • Incompatible Changes
    • Change declarations for Windows encoding conversion function for UTF-8 and WCHAR.
      • SPVM_OBJ* spvm_sys_windows_utf8_to_win_wchar(SPVM_ENV* env, SPVM_VALUE* stack, const char* utf8_string, int32_t* error_id, const char* func_name, const char* file, int32_t line);
      • const WCHAR* spvm_sys_windows_utf8_to_win_wchar_wchars(SPVM_ENV* env, SPVM_VALUE* stack, const char* utf8_string, int32_t* error_id, const char* func_name, const char* file, int32_t line);
      • SPVM_OBJ* spvm_sys_windows_win_wchar_to_utf8(SPVM_ENV* env, SPVM_VALUE* stack, const WCHAR* win_wchar_string, int32_t* error_id, const char* func_name, const char* file, int32_t line);
      • const char* spvm_sys_windows_win_wchar_to_utf8_chars(SPVM_ENV* env, SPVM_VALUE* stack, const WCHAR* win_wchar_string, int32_t* error_id, const char* func_name, const char* file, int32_t line);
      • void spvm_sys_windows_set_errno_from_windows_last_error(int default_errno);
    • Remove Sys::Process#execv and add Sys::Process#execvp and Sys#exec use execvp.
    • Change Sys#exec arguments.
      • static method exec : void ($program : string, $args : string[] = undef) {
      • static method exec : void ($args : string[], $options : object[] = undef) {

Documentation

Modules

System Calls for File IO, Sockets, Time, Process, Signals, Users
Environemnt Variables
IO System Call
Constant values for File IO.
DIR structure in the C language.
struct dirent in the C language
FILE structure in the C language.
struct flock in the C language
BSD bsd_glob Porting
struct stat in the C language
The ioctl System Call
Constant Values for The ioctl Function.
OS Information
Poll System Call
Constant Values for The poll System Call
Array of struct pollfd in the C language
Process System Calls
Constant Values for Process Manipulation
Resource for Windows
Select System Call
Constant Values for Select.
fd_set structure in C Language
Signal System Calls
Signal Constant Values
System Calls for Sockets
struct addrinfo in the C language
Linked List of struct addrinfo in the C language
Sockets Constant Values
Socket Error Numbers
Invalid Network address Socket Error
struct in6_addr in the C language
struct in_addr in the C language
Base Class of struct in_addr family.
struct ip_mreq in the C language
struct ip_mreq_source in the C language
struct ipv6_mreq in the C language
struct sockaddr in the C language
struct sockaddr_in in the C language
struct sockaddr_in6 in the C language
struct sockaddr_storage in the C language
struct sockaddr_un in the C language
Socket Utilities
System Calls for Time Manipulation
Constant Values for Time
struct itimerval in the C language
struct timespec in the C language
struct timeval in the C language
struct tm in the C language
struct tms in the C language
Time Utilities
struct utimbuf in the C language
User/Group System Calls
Entry of Group Database
Entry of Password Database
Test Utilities for SPVM::Sys::Socket
Servers for tests for SPVM::Sys::Socket
Server Manager Base Class for Tests for Sockets.
Server Manager for tests for internet domain sockets
Server Manager for tests for UNIX Domain Sockets
Socket Utility Functions for SPVM::Sys::Socket