From c1bcfeec38cdc04858ba607eb6f6aaa64dc731c9 Mon Sep 17 00:00:00 2001 From: Nobuyoshi Nakada Date: Mon, 10 Jan 2022 23:38:16 +0900 Subject: Transfer the responsibility for MJIT options to mjit.c --- internal/cmdlineopt.h | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 internal/cmdlineopt.h (limited to 'internal') diff --git a/internal/cmdlineopt.h b/internal/cmdlineopt.h new file mode 100644 index 0000000000..7419beb649 --- /dev/null +++ b/internal/cmdlineopt.h @@ -0,0 +1,61 @@ +#ifndef INTERNAL_CMDLINEOPT_H /*-*-C-*-vi:se ft=c:*/ +#define INTERNAL_CMDLINEOPT_H + +#include "mjit.h" +#include "yjit.h" + +typedef struct { + unsigned int mask; + unsigned int set; +} ruby_features_t; + +typedef struct ruby_cmdline_options { + const char *script; + VALUE script_name; + VALUE e_script; + struct { + struct { + VALUE name; + int index; + } enc; + } src, ext, intern; + VALUE req_list; + ruby_features_t features; + ruby_features_t warn; + unsigned int dump; +#if USE_MJIT + struct mjit_options mjit; +#endif +#if YJIT_SUPPORTED_P + struct rb_yjit_options yjit; +#endif + + int sflag, xflag; + unsigned int warning: 1; + unsigned int verbose: 1; + unsigned int do_loop: 1; + unsigned int do_print: 1; + unsigned int do_line: 1; + unsigned int do_split: 1; + unsigned int do_search: 1; + unsigned int setids: 2; +} ruby_cmdline_options_t; + +struct ruby_opt_message { + const char *str; + unsigned short namelen, secondlen; +}; + +#define RUBY_OPT_MESSAGE(shortopt, longopt, desc) { \ + shortopt " " longopt " " desc, \ + (unsigned short)sizeof(shortopt), \ + (unsigned short)sizeof(longopt), \ +} + +#define opt_match(s, l, name) \ + ((((l) > rb_strlen_lit(name)) ? (s)[rb_strlen_lit(name)] == '=' : \ + (l) == rb_strlen_lit(name)) && \ + memcmp((s), name, rb_strlen_lit(name)) == 0 && \ + (((s) += rb_strlen_lit(name)), 1)) + +#endif -- cgit v1.2.3