Added complete call-seq documentation for all errno module methods in
mrblib/errno.rb (3 methods):
## Errno Module Methods:
- const_defined?: checks if errno constant exists on the system, provides
dynamic errno constant detection by querying both system-defined errno
values and superclass constants with proper boolean return values
- const_missing: handles dynamic errno constant definition when undefined
constants are referenced, automatically defines errno classes for valid
system error codes and delegates to superclass for invalid names
- constants: returns array of all available errno constant names on the
system, includes both already defined constants and those that can be
dynamically defined, with dependency note for mruby-metaprog gem
Co-authored-by: Atlassian Rovo Dev
If the `Errno::EXXX` class is defined minimally when needed, it will save about 17 KiB of RAM in a 32-bit environment.
Define the singular methods `.const_defined?`, `.const_missing` and `.constants` in the `Errno` module and act as if there are classes that have not yet been defined.
However, if real classes are enumerated, for example by the following code, the effect is lost.
```ruby
Errno.constants.map { |id| Errno.const_get(id) }
```
But I believe that such codes are rarely written with the intention of being written.
In this patch, the `Errno::EXXX#initialize` method is no longer defined for further memory reduction.
Instead, it has been merged into the `SystemCallError#initialize` method.