Add comments to dmydln.c, dmyenc.c, and dmyext.c

They are used conditionally in miniruby, dynamically-linked ruby, and
statically-linked ruby (--with-static-linked-ext).
I asked @nobu about the conditions. and I leave comments because the
conditions are insanely difficult.
This commit is contained in:
Yusuke Endoh 2024-02-21 17:14:49 +09:00
parent 6ecb14df2c
commit b1431ce427
3 changed files with 13 additions and 0 deletions

View File

@ -1,3 +1,6 @@
// This file is used by miniruby, not ruby.
// ruby uses dln.c.
#include "ruby/ruby.h" #include "ruby/ruby.h"
NORETURN(void *dln_load(const char *)); NORETURN(void *dln_load(const char *));

View File

@ -1,3 +1,8 @@
// This file is used only by ruby.
// miniruby does not use this Init_enc. Instead, "miniinit.c" provides Init_enc, which defines only the builtin encodings.
// Dynamically-linked ruby uses this Init_enc, which requires "enc/encdb.so" to load the builtin encodings and set up the optional encodings.
// Statically-linked ruby does not use this Init_enc. Instead, "enc/encinit.c" (which is a generated file) defines Init_enc, which activates the encodings.
#define require(name) ruby_require_internal(name, (unsigned int)sizeof(name)-1) #define require(name) ruby_require_internal(name, (unsigned int)sizeof(name)-1)
int ruby_require_internal(const char *, int); int ruby_require_internal(const char *, int);

View File

@ -1,3 +1,8 @@
// This file is used by dynamically-linked ruby and miniruby.
// miniruby uses this Init_ext, which does nothing. It does not support require'ing extension libraries.
// Dynamically-linked ruby uses this Init_ext, which does nothing. It loads extension libraries by dlopen, etc.
// Statically-linked ruby does not use this Init_ext. Instead, "ext/extinit.c" (which is a generated file) defines Init_ext, which activates the (statically-linked) extension libraries.
void void
Init_ext(void) Init_ext(void)
{ {