Skip to content

Commit

Permalink
Add comments to dmydln.c, dmyenc.c, and dmyext.c
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
mame committed Feb 21, 2024
1 parent 6ecb14d commit b1431ce
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 0 deletions.
3 changes: 3 additions & 0 deletions dmydln.c
@@ -1,3 +1,6 @@
// This file is used by miniruby, not ruby.
// ruby uses dln.c.

#include "ruby/ruby.h"

NORETURN(void *dln_load(const char *));
Expand Down
5 changes: 5 additions & 0 deletions dmyenc.c
@@ -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)
int ruby_require_internal(const char *, int);

Expand Down
5 changes: 5 additions & 0 deletions dmyext.c
@@ -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
Init_ext(void)
{
Expand Down

0 comments on commit b1431ce

Please sign in to comment.