0.255 2026-10-16 [Test Improvement] * Add DGRAM tests in IO::SocketIP and IO::Socket::UNIX. [Requirement Changes] * Require SPVM::Sys 0.584. [Changes] * Add Listen and PeerAddr validation in IO::Socket::IP. * Add Listen and Peer validation in IO::Socket::UNIX. [Internal Changes] * Set SocketCategory again. 0.254 2026-10-15 [Internal Changes] * Separate Sockaddr field to PeerSockaddr and LocalSockaddr fields. * Do not set and use SocketCategory. * Remove duplicate TCP settings. [Requirement Changes] * Require SPVM::Sys 0.583. * Require SPVM::File::Temp for tests. [New Features] * Add IPv6 auto detection to IO::Socket::IP. * Support UPD non connect client socket. [Incompatible Changes] * Remove Type detection from Proto in IO::Socket::IP. * Fix listen logic. If Listen option exists, call listen. * Set default listen backlog to SOMAXCONN if Listen option is zero or less. * Move set_default_tcp_settings and set_default_udp_settings from IO::Socket to IO::Socket::IP. [Bug Fix] * Remove listen logic in UDP. * Call bind if Local is defined in IO::Socket::UNIX. * Call bind if LocalAddr or LocalPort is defined in IO::Socket::IP. 0.253 2026-10-09 [New Features] * Add IO::Pipe class. 0.252 2026-10-07 [Bug Fix] * Remove loading Test::Server::Echo in IO::Socket. 0.251 2026-10-06 [Internal Changes] * Use Sys::Socket::Util#set_tcp_keepalive method for IO::Socket#set_tcp_keepalive method. * Use Sys::Socket::Util#set_blocking method for IO::Handle#set_blocking method. [Requirement Changes] * Require SPVM::Go 0.047. [Test Improvement] * Add Test::Server::Echo for tests. * Remove Test::SPVM::Sys::Socket::XXX classes from tests. I've rewritten the server tests from the unreliable implementation using Perl's fork to a portable test suite using only SPVM::Go. 0.250 2026-09-26 [Bug Fix] * Fix a bug that socket close does not cancel io wait. [Requirement Changes] * Require SPVM::Go 0.046. * Require SPVM::Sys 0.581. * Require SPVM::Math 1.013. * Require SPVM::Net::DNS::Native' 0.003. [Test Improvement] * Reduce using Perl code for server tests. 0.249 2026-02-16 [Requirement Changes] * Require SPVM::Sys 0.561. [Changes] * Apply Go-like default settings (disabling Nagle's algorithm and enabling TCP keep-alive with a 15-second idle time) to TCP sockets when they are created or accepted via IO::Socket#socket and IO::Socket#accept, specifically for internet domain sockets (AF_INET and AF_INET6). 0.248 2026-02-09 [Incompatible Changes] * Remove Deadline field and update set_deadline to set both ReadDeadline and WriteDeadline for Go compatibility. * Change I/O timeout exception from Go::Context::Error::DeadlineExceeded to Go::Error::IOTimeout. 0.247 2026-02-05 [Test Fix] * Fix the test suite to properly enable and execute the deadline-related test cases that were previously inactive. 0.246 2026-02-05 [Requirement Changes] * Require SPVM::Go 0.025. [New Features] * Add Deadline, ReadDeadline, and WriteDeadline fields to the IO::Socket class to allow setting absolute I/O deadlines. [Incompatible Changes] * Modify the accept method to no longer inherit the Timeout field from the listening socket to follow Go's networking behavior. [Test Improvement] * Update the test suite to use httpbin for more robust and realistic network I/O testing. 0.245 2026-01-17 [Internal Changes] * Catch up with latest Go. 0.244 2026-01-07 [Test Chanes] * Catch up with latest SPVM::Go. 0.243 2025-12-10 [Incompatible Changes] * Rename IO::Socket#write method to syswrite. * Rename IO::Socket#read method to sysread. * Move IO::Handle#print method to IO::File#print. * Move IO::Handle#printf method to IO::File#printf. * Move IO::Handle#say method to IO::File#say. * Implement IO::Handle#sysread method. * Implement IO::Handle#syswrite method. * Change IO::File#printf argument [Before] method printf : void ($format : string, $args : object[]); [After] method printf : void ($format : string, $args : object...); [Changes] * IO::File#open method close the file if the handle is already opened. 0.242 2025-10-14 [Internal Changes] * Refactor options. 0.241 2025-10-13 [Incompatible Changes] * IO::Poll#disabled_fd_indexes field is changed. [Before] has disabled_fd_indexes : IntList; [After] has disabled_fd_indexes : int[]; 0.240 2025-10-13 [Incompatible Changes] * IO::Select#fds_list field is changed. [Before] has fds_list : IntList; [After] has fds : int[]; 0.239 2025-10-13 [Internal Changes] * Do internal changes to catch up latest SPVM. [Requirement Changes] * Require SPVM 0.990102. 0.238 2025-08-12 [New Features] * Support int mode and permissions in IO::File#open method. [Changes] * Nagle algorizm is on over TCP. [Document Improvement] * Add the link to IO. 0.237 2025-05-23 [Requirement Changes] * Require SPVM::Sys 0.540. [Incompatible Changes] * IO::Dir#read method returns a file name instead of a directory entry. 0.236 2025-03-13 [New Features] * Add IO::File#seek method. * Add IO::File#tell method. 0.235 2025-03-12 [Bug Fix] * Fix a bug that IO::File#read method's $legnth is not set to the default value. * Fix a bug that a file handle is not closed in the object destruction. [Changes] * IO::File#close throws an exception when the file is not opened. * Add DESTROY method to IO::Handle and remove that in IO::Socket. [Requirement Changes] * Require SPVM 0.990048. [Internal Changes] * Add IO::Socket#Category field. * Add protected enum to IO::Socket. protected enum { CATEGORY_CLIENT, CATEGORY_SERVER, CATEGORY_ACCEPTED, } 0.234 2025-02-21 [Test Internal Chnages] * Do not use Fn#grep method. 0.233 2025-01-27 [Requirement Changes] * Require SPVM 0.990042. * Require SPVM::Regex 0.246. [Test Improvement] * Call Fn#destroy_runtime_permanent_vars method in the end of tests. 0.232 2023-11-29 [Test Fix] * Fix a test bug of IPv6 test skip. 0.231 2023-10-22 [Changes] * Add IO::Socket#Sockaddr field. * Throw an exception when PeerAddr and Listen option in IO::Socket::IP#init are used together. * Throw an exception when Peer and Local option in IO::Socket::Unix#init are used together. [Incompatible Changes] * Change arguments of IO::Socket#connect method. [Before] protected method connect : void ($sockaddr : Sys::Socket::Sockaddr); [After] protected method connect : void (); * Change arguments of IO::Socket#bind method. [Before] protected method bind : void ($sockaddr : Sys::Socket::Sockaddr); [After] protected method bind : void (); 0.230 2023-10-22 [Changes] * Operate non-blocking getaddrinfo using Net::DNS::Native. [Requirement Changes] * Require SPVM::Net::DNS::Native 0.001. [New Features] * Add IO::Socket::IP#create_sockaddr method. * Add IO::Socket::IP::Import::IPv4#create_sockaddr method. * Add IO::Socket::IP::Import::IPv6#create_sockaddr method. 0.229 2023-10-19 [Requirement Changes] * Require SPVM::Go 0.008. [Test Improvement] * Add tests for IO::Socekt::IP#accept method. * Add tests for accept timeout and read timeout for IO::Socket::IP. 0.228 2023-10-18 [Requirement Changes] * Require SPVM::Sys 0.528. [Bug Fix] * Fix a bug checking Errno->EINTR instead of Sys::Socket::Errno->EINTR. 0.227 2023-10-17 [Bug Fix] * Fix a bug that IO::Socket#connect method do not retry connect operation when a retry is needed. [Document Improvement] * Fix and improve docs for IO::Socket#connect method. * Fix and improve docs for IO::Socket#accept method. * Fix and improve docs for IO::Socket#recvfrom method. * Fix and improve docs for IO::Socket#sendto method. 0.226 2023-10-16 [New Features] * Add V6Only option to IO::Socket::IP#init method. [Imcompatible Changes] * AutoFlush field is moved from IO::Handle to IO::File. * set_autoflush method is moved from IO::Handle to IO::File. * autoflush method is moved from IO::Handle to IO::File. * Default values of options for IO::Socket#init method are changed. Domain = 0 Proto = 0 Type = 0 Listen = 0 * The type of IO::Socket::IP#ReuseAddr becomes byte. * The type of IO::Socket::IP#ReusePort becomes byte. * The type of IO::Socket::IP#Broadcast becomes byte. [Document Improvement] * Improve docs for IO::Socket. * Add IO::open link to docs for IO::Dir class. * Add IO::opendir link to docs for IO::File class. [Document Fix] * Fix a doc that IO::Socket#close returned int type instead of void type. 0.225 2023-10-15 [Requirement Changes] * Require SPVM 0.990021 [Incompatibe Changes] * IO::Socket::IP#set_blocking method throw an exception if a true value is given. * IO::Socket::IP#new dose not set SOCK_RAW Type for IPPROTO_ICMP Proto. This is Perl's IO::Socket::IP compatible beheivior. [Document Improvement] * Improve docs for IO::Socket::IP * Improve docs for IO::Socket::IP::Import::IPv4. * Improve docs for IO::Socket::IP::Import::IPv6. [Test Improvement] * Add tests for IO::Socket::IP. 0.224 2023-10-11 [Bug Fix] * Fix a bug that IO::Socket::INET does not call DESTROY method in IO::Socket. * Fix a bug that IO::Socket::INET6 does not call DESTROY method in IO::Socket. * Fix a bug that IO::Socket::UNIX does not call DESTROY method in IO::Socket. [Incompatible Changes] * The default value of LocalPort option becomes 0. * The default value of PeerPort option becomes 0. [Document Improvement] * Improve docs for IO::Socekt::IP. [Test Improvement] * Improve IPv6 tests. 0.223 2023-10-11 [Test Improvement] * Improve tests for IO::Socket::UNIX. [Internal Changes] * IO::Socket::UNIX#option_names becomes protected method. [Document Improvement] * Add docs for IO::Socket::UNIX. * Improve docs for IO::Socket::INET. * Improve docs for IO::Socket::INET6. [Document Improvement] * Add docs for IO::Socket::UNIX. * Improve docs for IO::Socket::INET. * Improve docs for IO::Socket::INET6. [Imcompatible Changes] * Changes the beheivior of options in IO::Socket::UNIX. Domain field is always set to AF_UNIX. Type field is set to SOCK_STREAM if Type option is not specified. Proto field is always set to 0. * Listen default value becomes 0 from -1. [Exception Changes] * IO::Socket::UNIX#new thrown an exception. "Peer option must be sepcified if this socket is a clienet socket. Listen option must be a positive number if this socket is a server socket. * IO::Socket::IP#new thrown an exception. "PeerAddr option must be sepcified if this socket is a clienet socket. Listen option must be a positive number if this socket is a server socket. 0.222 2023-10-10 [Internal Changes] * Remove IO::File#configure method. [Bug Fix] * Fix a bug that IO::File#new_from_fd returns IO::Handle instead of IO::File. * Fix a bug that IO::Socket::UNIX does not work well. [Incompatible Changes] * Remove IO::Handle#new method and IO::Handle becomes an abstruct class. * IO::File#fdopen method becomes a protected method. * IO::Socket#listen method becomes a protected method. * IO::Socket#bind method becomes a protected method. * IO::Socket#connect method becomes a protected method. * IO::Socket#socket method becomes a protected method. 0.221 2023-10-10 [Internal Changes] * IO::Handle#set_blocking method always perform a system call. * configure method is implemented in IO::File class and it is called from new and new_from_fd method. * configure method is called in new method in IO::Socket::IP, IO::Socket::INET, IO::Socket::INET6. * Remove configure method from IO::Handle. * Remove FieldsInitOnly option from IO::Handle#init method. [Incompatible Changes] * Blocking option ins IO::Socket and its child classes is not allowed. Its blocking mode is always non-blocking mode. * IO::Socket is an abstract class, and remove new method. [Bug Fix] * Fix a bug that IO::Socket and its child classes are not non-blocking mode. * Fix a bug that acceptted client is not non-blocking mode. 0.220001 2023-10-09 [Test Fix] * Disable server tests for IO::Socket::IP for Windows segfault for now. 0.220 2023-10-09 [New Features] * Add IO#open method. * Add IO#opendir method. [Test Improvement] * Add tests for IO::Socket::IP server features with goroutines. 0.219 2023-06-14 [Support Changes] * Does not support 32bit systems. [Requirement Changes] * Require SPVM::Sys 0.524. * Require Perl v5.20.3. * Remove Test::TCP requirement. * Remove IO 1.55 requirement. * Remove Mojolicious requirement. [New Features] * Add IO::Socket#accept method. This has existed, but not documented. * Add IO::Socket::IP#accept method. * Add IO::Socket::INET#accept method. * Add IO::Socket::INET6#accept method. * Add IO::Socket::UNIX#accept method. [Incompatible Changes] * The return type of IO::Socket::INET is changed from IO::Socket::IP to IO::Socket::INET. * The return type of IO::Socket::INET6 is changed from IO::Socket::IP to IO::Socket::INET6. [Bug Fix] * Fix the bug that IO::Handle#set_blocking method set Blocking field to a wrong value. 0.218 2023-06-03 [Requirement Changes] * Require SPVM::Sys 0.520. 0.217 2023-06-01 [New Features] * Add IO::Socket#sendto method. * Add IO::Socket#recvfrom method. [Test Improvement] * Add tests for IO::Select using a test HTTP server. [Incompatible Changes] * Remove an argument of IO::Socket#shutdown method. [Before] method shutdown : void ($sockfd : int, $how : int); [After] method shutdown : void ($how : int); * IO::Socket#close method throw an excetpion if the socket is not opened. * Remove IO::Socket#peername field. The return value of peername method is not cached. * Remove the argument $to of IO::Socket#send method. [Before] method send : int ($buffer : string, $flags : int = 0, $to : Sys::Socket::Sockaddr = undef, $length : int = -1, $buf_offset : int = 0); [After] method send : int ($buffer : string, $flags : int = 0, $length : int = -1, $buf_offset : int = 0); [Changes] * The following method in IO::Socket class becomes public. socket connect listen bind accept [Requirement Changes] * Require SPVM::Sys 0.517. 0.216 2023-05-29 [Requirement Changes] * Require SPVM::Sys 0.516. [New Features] * Add IO::Poll class. 0.215 2023-05-24 [New Features] * Add IO::Dir class. [Requirement Changes] * Require SPVM::Sys 0.515. 0.214 2023-05-21 [Imcompatible Changes] * handles field in IO::Select is renamed to fds_list. * The type of add method in IO::Select is changed from int to void. * The type of remove method in IO::Select is changed from int to void. * handles method in IO::Select is renamed to fds. [New Features] * Add count method to IO::Select class. * An argument in IO::Select#can_read method becomes an optional argument. Negative value means block indefinitely. [Before] method can_read : int[] ($timeout : double); [After] method can_read : int[] ($timeout : double = -1); * An argument in IO::Select#can_write method becomes an optional argument. Negative value means block indefinitely. [Before] method can_write : int[] ($timeout : double); [After] method can_write : int[] ($timeout : double = -1); * An argument in IO::Select#can_has_exception method becomes an optional argument. Negative value means block indefinitely. [Before] method can_has_exception : int[] ($timeout : double); [After] method can_has_exception : int[] ($timeout : double = -1); 0.213 2023-05-20 [Imcompatible Changes] * stream field in IO::File is renamed to FileStream. * input_file_nubmer field in IO::File is renamed to InputLineNumber. * close method in IO::File set FD field to -1, instead of setting FileStream to undef. * Change the following methods in the IO::File. - static method new : IO::File ($file_name : string = undef, $open_mode : object of string|Int = undef, $perm : int = -1); + static method new : IO::File ($file_name : string = undef, $open_mode : string = undef); - static method new_from_fd : IO::Handle ($fd : int, $open_mode : string = undef); + static method new_from_fd : IO::Handle ($fd : int, $open_mode : string); - method open : void ($file_name : string, $open_mode : object of string|Int, $perm : int = -1); + method open : void ($file_name : string, $open_mode : string); * Remove printflush method from IO::File. * Remove set_input_line_number from IO::File. [Bug Fix] * Fix the bug that AutoFlush option does not work . 0.212 2023-05-17 [Buf Fix] * Fix the bug that IO::Socket::INET uses IPv6 addrinfo. [New Features] * Add the IO::Socket::INET6 class. [Imcompatible Changes] * The default value of Listen option is changed from 5 to -1. * "Blocking" option is removed from IO::Socket because socket is always non-blocking to work with goroutine. * Remove socketpair method in IO::Socket class. * socket method in IO::Socket become protected, and the doc is removed. * connect, listen, bind, accept methods in IO::Socket become protected, and the docs are removed. * Remove new_from_instance from IO::Socket, IO::Socket::IP, IO::Socket::Unix. * fd field in IO::Handle is renamed to FD. * autoflush field in IO::Handle is renamed to AutoFlush. * Blocking field is moved from IO::Socket to IO::Handle. * Remove sysread and sysread method from IO::Handle and IO::Socket. * trancate method in IO::Handle class throws excetpion. This implementation is moved to IO::File. * sync method in IO::Handle class throws excetpion. This implementation is moved to IO::File. 0.211002 2023-12-07 [Prerequirement Changes] * Require SPVM::Sys 0.510. 0.211001 2023-11-18 [Internal Changes] * Do not use Sys->select for the future breaking backword compatible. 0.211 2023-11-18 [Incompatible Changes] * The return types of the following methods becomes void. [IO::Handle] sync print printf say close truncate [IO::File] close flush printflush open fdopen [IO::Socket] close setsockopt connect listen bind shutdown socket * Remove the set_sockopt method from the IO::Socket class. * Remove the getsockopt method from the IO::Socket class. * The type of Timeout field in the IO::Socket becomes double. [Changes] * The write method in the IO::File returns written length. 0.210 2023-11-18 [Prerequirement Changes] * Require SPVM::Go 0.005. 0.209 2023-11-16 [Prerequirement Changes] * Require SPVM::Sys 0.497. * Require SPVM::Go 0.003. [New Features] * Add $lengtht and $buf_offset argument to the send method in the IO::Socket class. method send : int ($buffer : string, $flags : int = 0, $to : Sys::Socket::Sockaddr = undef, $length : int = -1, $buf_offset : int = 0); * Add $buf_offset argument to the recv method in the IO::Socket class. method recv : int ($buffer : mutable string, $length : int = -1, $flags : int = 0, $buf_offset : int = 0); [Internal Changes] * The the read method in the IO::Socket calls revc method. * The the write method in the IO::Socket calls send method. * The the sysread method in the IO::Socket calls revc method. * The the syswrite method in the IO::Socket calls send method. [New Features and Incompatible Changes] * The socket of IO::Socket is set to non-blocking mode. * IO::Socket supports goroutine of Go. 0.208 2023-09-11 [Prerequirement Changes] * Require SPVM::Sys 0.490. [Incompatibe Changes] * The following methods are moved from the IO::File class to the IO::Handle class. method sync : int (); method stat : Sys::IO::Stat (); method truncate : int ($legnth : long); * The sync method in the IO::Handle class is changed. If succedd, returns 1. * The following methods in IO::File class are changed. - static method new : IO::File ($file_name : string = undef, $open_mode : string = undef); + static method new : IO::File ($file_name : string = undef, $open_mode : object of string|Int = undef, $perm : int = 0); - method open : void ($file_name : string, $open_mode : string); + method open : int ($file_name : string, $open_mode : object of string|Int, $perm : int = 0); * The write method in the IO::Handle return if succedd. * The following methods in the IO::Socket class are changed. + method sockopt : int ($level : int, $optname : int); + method set_sockopt : int ($level : int, $optname : int, $optval : int); 0.207 2023-09-04 [Prerequirement Changes] * Require SPVM::Sys 0.486. * Require SPVM 0.989040. [New Features] * The IO::Socket::UNIX class is added. [Changes] * The implementation of fileno method is improved. [Incompatibe Changes] * input_output_number is incremented. * The following fields and methods in the IO::Socket class are added, deleted, or changed. - has timeout : protected ro int; + has Timeout : protected int; + method timeout : int (); - has sockdomain : protected ro int; + has Domain : protected int; + method sockdomain : int (); - has socktype : protected ro int; + has Type : protected int; + method socktype : int (); - has protocol : protected ro int; + has Proto : protected ro int; + method protocol : int (); - has listen_backlog : protected int; + has Listen : protected int; - method peerport : int (); - method peerhost : string (); - has peername : protected ro Sys::Socket::Sockaddr; + has peername : protected Sys::Socket::Sockaddr; + method peername : Sys::Socket::Sockaddr (); * The following fields and methods in the IO::File class are added, deleted, or changed. + method input_line_number : long (); + method set_input_line_number : void ($input_line_number : long); + method truncate : int ($legnth : long); + method stat : Sys::IO::Stat (); + method sync : int (); - method opened : int (); * The following fields and methods in the IO::Handle class are added, deleted, or changed. - method blocking : void ($blocking : int); + method blocking : int (); + method set_blocking : void ($blocking : int); - has blocking_flag : rw protected int; + has nonblocking : protected int; - has opened : ro protected int; + method opened : int (); method truncate : int ($legnth : long) throws an exception. method sync : int () throws an exception. - method stat : int ($stat : Sys::IO::Stat); + method stat : Sys::IO::Stat (); * fd field in IO::Socket class is moved to IO::Handle class. * write method in IO::Socket class call syswrite method. * read method in IO::Socket class call sysread method. * print method calls write method. 0.206 2023-09-04 [Prerequirement Changes] * SPVM::Sys 0.485 is required. 0.205 2023-09-04 [Prerequirement Changes] * SPVM::Sys 0.484 is required. 0.204003 2023-08-22 [Changes] * Type comments of the ioctl method in the IO::Handle are changed. - method ioctl : int ($request : int, $request_arg : object = undef of Byte|Short|Int|Long|Float|Double|object); + static method ioctl : int ($fd : int, $request : int, $request_arg_ref : object of byte[]|short[]|int[]|long[]|float[]|double[]|object = undef); [Bug Fix] * A bug is fixed: The blocking method in the IO::Handle has not work well in Windows. 0.204002 2023-08-22 [Bug Fix] * A bug is fixed. FIONBIO has not been defined. 0.204001 2023-08-22 [Prerequirement Changes] * SPVM::Sys 0.482 is required. 0.204 2023-08-18 [New Features] The following methods are added to IO::Socket. + method write : int ($string : string, $length : int = -1, $offset : int = 0); + method read : int ($string : mutable string, $length : int = -1, $offset : int = 0); [Incompatibe Changes] The following methods are removed from IO::File and IO::Handle. method syswrite : int ($buffer : string, $length : int, $offset : int = 0); method sysread : int ($buffer : mutable string, $length : int, $offset : int = 0); [Changes] The following methods in IO::File and IO::Handle are changed. - method write : int ($buffer : string, $length : int, $offset : int = 0); + method write : int ($string : string, $length : int = -1, $offset : int = 0); - method read : int ($buffer : mutable string, $length : int, $offset : int = 0); + method read : int ($string : mutable string, $length : int = -1, $offset : int = 0); 0.203 2023-08-15 [New Features] The following method is added to IO::Socket. method peerport : int (); method peerhost : string (); 0.202001 2023-05-29 [Prerequirement Changes] * SPVM 0.986+ is required. 0.202 2023-05-23 [Incompatibe Changes] * The definition of the following methods in the IO::Handle class are changed. [Before] method printf : int ($format : string, $args : object[]...); [After] method printf : int ($format : string, $args : object[]); 0.201 2023-05-23 [License Change] * The license is changed to MIT License. [Prerequirement Changes] * SPVM 0.981+ is required. [New Features] * The version string can be got. 0.20 2023-03-20 [Internal Compatible Changes] * Use SPVM::ExchangeAPI method instead of SPVM functions. 0.19 2023-03-15 [Prerequirement Changes] * SPVM::Sys 0.43+ is needed. 0.18 2023-03-06 [Prerequirement Changes] * SPVM 0.9695+ is needed. [Changes] * Removed the unused IO::Util class. [Incompatible Changes] * Removed IO::Handle::Interface. * Removed IO::Socket::Interface. * Removed the has_interfaces method in the IO::Handle. 0.17 2023-03-06 [Changes] * The definition of the init method in the IO::File is changed. [Before] protected method init : void (); [After] protected method init : void ($options = undef : object[]); 0.16 2023-02-14 [Bug Fix] * Fixed the bug that the close method in the IO::File doesn't set the stream undef. 0.15 2023-02-08 [Prerequirement Changes] * SPVM 0.9691+ is needed. 0.14 2022-12-03 [Prerequrement Changes] * SPVM::IO needs SPVM 0.9664+. * SPVM::IO needs SPVM::Sys 0.28+. [Incompatible Document Changes] * Removed the is_io_handlable method in the IO::Handle class in the doc. This was removed in the past. [Document Improvement] * Added the doc of the IO::Handle. * Added the doc of the IO::Handle::Interface. [Incompatible Changes] * Removed the autoflush method in the IO::File class. * Removed the get_autoflush in the IO::Handle class. * Changed the definitions of the following fields in the IO::Handle class. [Before] has autoflush : wo byte; [After] has autoflush : rw byte; 0.13 2022-11-22 [New Features] * Added many methods and some classes. [Document Improvement] * Documents of many methods and some classes are added. 0.12 2022-11-16 [Prerequirement Changes] * SPVM::IO needs SPVM::Math 0.11. 0.12 2022-11-16 [Incompatible Changes] * The methods in the IO::Socket::INET is moved to the IO::Socket class. * Removed IO::Socket::INET. This module will be added in the nearly future. [Prerequirement Changes] * SPVM::IO needs SPVM 0.9662+. 0.11 2022-11-07 [Prerequirement Changes] * SPVM::IO needs SPVM 0.9661+. * SPVM::IO needs SPVM::Sys 0.26+. [New Features] * Added the IO::Handle::Interface class. * Added many methods to IO::File and IO::Handle. 0.10 2022-09-16 [New Features] * Add the IO::Socket::Interface interface. * The IO::Socket class has the IO::Socket::Interface interface. [Bug Fix] * Fix the bug that IO::Socket::INET doesn't work in SPVM 0.9648+. [Prerequirement Changes] * SPVM 0.9652+ is needed. 0.09 2022-08-01 [Internal Ineffective Changes] * Use get_field_object_by_name_v2 in SPVM/IO/File.c * Use set_field_object_by_name_v2 in SPVM/IO/File.c [Pre Requirement Changes] * SPVM 0.9632 is needed. 0.08 2022-07-30 [Test Fix] * Fix testing bug that occur upgrading to SPVM 0.9630. [Improve Exception Messages] * Improve IO::FileHandle exception messages. [Incompatible Changes] * Remove undocumented Fn->unlink method. * Remove undocumented Fn->rename method, * Changed the undocumented definition of fh field of IO::File [Before] has fh : private ro IO::FileHandle; [After] has fh : private IO::FileHandle; * Changed the undocumented definition read method of IO::File [Before] method read : int ($bufer : byte[]); [After] method read : int ($bufer : mutable string); * Remove the undocumented following class variables our $SEEK_SET : ro int; our $SEEK_CUR : ro int; our $SEEK_END : ro int; * Change the undocumented following definitions [Before] our $STDIN : ro int; our $STDOUT : ro int; our $STDERR : ro int; [After] native static method STDERR : int (); native static method STDIN : int (); native static method STDOUT : int (); 0.07 2022-06-30 [New Features] * Add SPVM::IO::Handle module * Add SPVM::IO::Socket module * Add SPVM::IO::Socket::Fn module * SPVM::IO::Socket::INET extends SPVM::IO::Socket [Bug Fix] * Fix the bug that SPVM::IO don't work on Windows. * Fix broken tests. [Changes] * SPVM::IO::Socket extends SPVM::IO::Handle * SPVM::File extends SPVM::IO::File * Need SPVM 0.9614 [Incompatible Changes] * Removed SPVM::IO::Handlable * Removed SPVM::IO::Socketable 0.06 2022-06-22 * Catch up with SPVM 0.96 0.05 2022-06-20 * Catch up with SPVM 0.9609 0.04 2022-06-14 [CHANGES] * Fix tests * Add IO::Handlable class. * Rename IO::Socket to IO::Socketable * IO::File has IO::Handlable interface. * IO::Socket::INET has IO::Handlable interface. 0.03 2022-06-13 [CHANGES] * Catch up with latest SPVM. 0.02 2022-05-26 [CHANGES] * Catch up with latest SPVM. 0.01 2022-05-23 [CHANGES] * First development release