ruby/ext/socket
Jemma Issroff 5246f4027e Transition shape when object's capacity changes
This commit adds a `capacity` field to shapes, and adds shape
transitions whenever an object's capacity changes. Objects which are
allocated out of a bigger size pool will also make a transition from the
root shape to the shape with the correct capacity for their size pool
when they are allocated.

This commit will allow us to remove numiv from objects completely, and
will also mean we can guarantee that if two objects share shapes, their
IVs are in the same positions (an embedded and extended object cannot
share shapes). This will enable us to implement ivar sets in YJIT using
object shapes.

Co-Authored-By: Aaron Patterson <tenderlove@ruby-lang.org>
2022-11-10 10:11:34 -05:00
..
lib Support timeout for Addrinfo 2019-09-10 10:10:59 +09:00
.document
addrinfo.h Expand tabs [ci skip] 2022-07-21 09:42:04 -07:00
ancdata.c Try `nil` as default for 'default timeout'. (#6509) 2022-10-08 14:02:34 +13:00
basicsocket.c Try `nil` as default for 'default timeout'. (#6509) 2022-10-08 14:02:34 +13:00
constants.c Expand tabs [ci skip] 2022-07-21 09:42:04 -07:00
depend Transition shape when object's capacity changes 2022-11-10 10:11:34 -05:00
extconf.rb Substitute from the actual netinet6/in6.h 2022-11-04 17:38:28 +09:00
getaddrinfo.c Expand tabs [ci skip] 2022-07-21 09:42:04 -07:00
getnameinfo.c Expand tabs [ci skip] 2022-07-21 09:42:04 -07:00
ifaddr.c Expand tabs [ci skip] 2022-07-21 09:42:04 -07:00
init.c Try `nil` as default for 'default timeout'. (#6509) 2022-10-08 14:02:34 +13:00
ipsocket.c Expand tabs [ci skip] 2022-07-21 09:42:04 -07:00
mkconstants.rb sockopt adding Linux constants, SO_INCOMING_CPU/SO_INCOMING_NAPI_ID. 2022-09-21 17:15:54 +09:00
option.c Expand tabs [ci skip] 2022-07-21 09:42:04 -07:00
raddrinfo.c Use `rb_sprintf` instead of deprecated `sprintf` 2022-11-09 11:58:37 +09:00
rubysocket.h Expand tabs [ci skip] 2022-07-21 09:42:04 -07:00
socket.c Add IO#timeout attribute and use it for blocking IO operations. (#5653) 2022-10-07 21:48:38 +13:00
sockport.h
sockssocket.c Expand tabs [ci skip] 2022-07-21 09:42:04 -07:00
tcpserver.c Expand tabs [ci skip] 2022-07-21 09:42:04 -07:00
tcpsocket.c Expand tabs [ci skip] 2022-07-21 09:42:04 -07:00
udpsocket.c Try `nil` as default for 'default timeout'. (#6509) 2022-10-08 14:02:34 +13:00
unixserver.c Expand tabs [ci skip] 2022-07-21 09:42:04 -07:00
unixsocket.c Expand tabs [ci skip] 2022-07-21 09:42:04 -07:00