Ruby 3.3.7p123 (2025-01-15 revision be31f993d7fa0219d85f7b3c694d454da4ecc10b)
main.c
1/**********************************************************************
2
3 main.c -
4
5 $Author$
6 created at: Fri Aug 19 13:19:58 JST 1994
7
8 Copyright (C) 1993-2007 Yukihiro Matsumoto
9
10**********************************************************************/
11
20#undef RUBY_EXPORT
21#include "ruby.h"
22#include "vm_debug.h"
23#ifdef HAVE_LOCALE_H
24#include <locale.h>
25#endif
26
27#if defined RUBY_DEVEL && !defined RUBY_DEBUG_ENV
28# define RUBY_DEBUG_ENV 1
29#endif
30#if defined RUBY_DEBUG_ENV && !RUBY_DEBUG_ENV
31# undef RUBY_DEBUG_ENV
32#endif
33
34static int
35rb_main(int argc, char **argv)
36{
38 ruby_init();
39 return ruby_run_node(ruby_options(argc, argv));
40}
41
42#if defined(__wasm__) && !defined(__EMSCRIPTEN__)
43int rb_wasm_rt_start(int (main)(int argc, char **argv), int argc, char **argv);
44#define rb_main(argc, argv) rb_wasm_rt_start(rb_main, argc, argv)
45#endif
46
47#ifdef _WIN32
48#define main(argc, argv) w32_main(argc, argv)
49static int main(int argc, char **argv);
50int wmain(void) {return main(0, NULL);}
51#endif
52
53int
54main(int argc, char **argv)
55{
56#if defined(RUBY_DEBUG_ENV) || USE_RUBY_DEBUG_LOG
57 ruby_set_debug_option(getenv("RUBY_DEBUG"));
58#endif
59#ifdef HAVE_LOCALE_H
60 setlocale(LC_CTYPE, "");
61#endif
62
63 ruby_sysinit(&argc, &argv);
64 return rb_main(argc, argv);
65}
#define RUBY_INIT_STACK
A convenience macro to call ruby_init_stack().
void ruby_init(void)
Calls ruby_setup() and check error.
Definition eval.c:99
void ruby_sysinit(int *argc, char ***argv)
Initializes the process for libruby.
Definition ruby.c:3059