From bcc585a80f9b6c51240b2d9495debc2f50b27ca0 Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Thu, 19 Feb 2026 14:24:27 +0900 Subject: [PATCH] presym.h: merge enable.h into presym.h Since disable.h was removed, enable.h was the only remaining dispatch target from presym.h. Inline its contents into presym.h and delete the now-redundant enable.h. Also define _2 backward compatibility macros in terms of the standard macros. Co-authored-by: Claude --- include/mruby/presym.h | 40 +++++++++++++++++++++++++++------ include/mruby/presym/enable.h | 40 --------------------------------- include/mruby/presym/scanning.h | 16 ++++++------- 3 files changed, 41 insertions(+), 55 deletions(-) delete mode 100644 include/mruby/presym/enable.h diff --git a/include/mruby/presym.h b/include/mruby/presym.h index be3c17db0..a677cf4f5 100644 --- a/include/mruby/presym.h +++ b/include/mruby/presym.h @@ -8,13 +8,12 @@ #define MRUBY_PRESYM_H #if !defined(MRB_PRESYM_SCANNING) -# include -#endif + +#include /* * Where `mrb_intern_lit` is allowed for symbol interning, it is directly - * replaced by the symbol ID if presym is enabled by using the following - * macros. + * replaced by the symbol ID using the following macros. * * MRB_OPSYM(xor) //=> ^ (Operator) * MRB_GVSYM(xor) //=> $xor (Global Variable) @@ -31,9 +30,36 @@ * excluding leading and ending punctuation. * * These macros are expanded to compile-time integer constants. - * The `_2` suffix variants (e.g., `MRB_SYM_2`) are kept for backward - * compatibility only; they accept an explicit `mrb_state*` parameter - * but ignore it. New code should use the standard macros above. */ +#define MRB_OPSYM(name) MRB_OPSYM__##name +#define MRB_GVSYM(name) MRB_GVSYM__##name +#define MRB_CVSYM(name) MRB_CVSYM__##name +#define MRB_IVSYM(name) MRB_IVSYM__##name +#define MRB_SYM_B(name) MRB_SYM_B__##name +#define MRB_SYM_Q(name) MRB_SYM_Q__##name +#define MRB_SYM_E(name) MRB_SYM_E__##name +#define MRB_SYM(name) MRB_SYM__##name + +/* backward compatibility: _2 variants accept but ignore mrb_state* */ +#define MRB_OPSYM_2(mrb, name) MRB_OPSYM(name) +#define MRB_GVSYM_2(mrb, name) MRB_GVSYM(name) +#define MRB_CVSYM_2(mrb, name) MRB_CVSYM(name) +#define MRB_IVSYM_2(mrb, name) MRB_IVSYM(name) +#define MRB_SYM_B_2(mrb, name) MRB_SYM_B(name) +#define MRB_SYM_Q_2(mrb, name) MRB_SYM_Q(name) +#define MRB_SYM_E_2(mrb, name) MRB_SYM_E(name) +#define MRB_SYM_2(mrb, name) MRB_SYM(name) + +#define MRB_PRESYM_DEFINE_VAR_AND_INITER(name, size, ...) \ + static const mrb_sym name[] = {__VA_ARGS__}; + +#define MRB_PRESYM_INIT_SYMBOLS(mrb, name) (void)(mrb) + +/* use MRB_SYM() for E_RUNTIME_ERROR etc. */ +#undef MRB_ERROR_SYM +#define MRB_ERROR_SYM(sym) MRB_SYM(sym) + +#endif /* !MRB_PRESYM_SCANNING */ + #endif /* MRUBY_PRESYM_H */ diff --git a/include/mruby/presym/enable.h b/include/mruby/presym/enable.h deleted file mode 100644 index bf60e8c1d..000000000 --- a/include/mruby/presym/enable.h +++ /dev/null @@ -1,40 +0,0 @@ -/** -** @file mruby/presym/enable.h - Enable Preallocated Symbols -** -** See Copyright Notice in mruby.h -*/ - -#ifndef MRUBY_PRESYM_ENABLE_H -#define MRUBY_PRESYM_ENABLE_H - -#include - -#define MRB_OPSYM(name) MRB_OPSYM__##name -#define MRB_GVSYM(name) MRB_GVSYM__##name -#define MRB_CVSYM(name) MRB_CVSYM__##name -#define MRB_IVSYM(name) MRB_IVSYM__##name -#define MRB_SYM_B(name) MRB_SYM_B__##name -#define MRB_SYM_Q(name) MRB_SYM_Q__##name -#define MRB_SYM_E(name) MRB_SYM_E__##name -#define MRB_SYM(name) MRB_SYM__##name - -/* backward compatibility: _2 variants accept but ignore mrb_state* */ -#define MRB_OPSYM_2(mrb, name) MRB_OPSYM__##name -#define MRB_GVSYM_2(mrb, name) MRB_GVSYM__##name -#define MRB_CVSYM_2(mrb, name) MRB_CVSYM__##name -#define MRB_IVSYM_2(mrb, name) MRB_IVSYM__##name -#define MRB_SYM_B_2(mrb, name) MRB_SYM_B__##name -#define MRB_SYM_Q_2(mrb, name) MRB_SYM_Q__##name -#define MRB_SYM_E_2(mrb, name) MRB_SYM_E__##name -#define MRB_SYM_2(mrb, name) MRB_SYM__##name - -#define MRB_PRESYM_DEFINE_VAR_AND_INITER(name, size, ...) \ - static const mrb_sym name[] = {__VA_ARGS__}; - -#define MRB_PRESYM_INIT_SYMBOLS(mrb, name) (void)(mrb) - -/* use MRB_SYM() for E_RUNTIME_ERROR etc. */ -#undef MRB_ERROR_SYM -#define MRB_ERROR_SYM(sym) MRB_SYM(sym) - -#endif /* MRUBY_PRESYM_ENABLE_H */ diff --git a/include/mruby/presym/scanning.h b/include/mruby/presym/scanning.h index 14110db0a..0359ebf81 100644 --- a/include/mruby/presym/scanning.h +++ b/include/mruby/presym/scanning.h @@ -39,14 +39,14 @@ #define MRB_SYM(name) MRB_PRESYM_SCANNING_TAGGED(#name) /* backward compatibility: _2 variants accept but ignore mrb_state* */ -#define MRB_OPSYM_2(mrb, name) MRB_OPSYM__##name(mrb) -#define MRB_GVSYM_2(mrb, name) MRB_PRESYM_SCANNING_TAGGED("$" #name) -#define MRB_CVSYM_2(mrb, name) MRB_PRESYM_SCANNING_TAGGED("@@" #name) -#define MRB_IVSYM_2(mrb, name) MRB_PRESYM_SCANNING_TAGGED("@" #name) -#define MRB_SYM_B_2(mrb, name) MRB_PRESYM_SCANNING_TAGGED(#name "!") -#define MRB_SYM_Q_2(mrb, name) MRB_PRESYM_SCANNING_TAGGED(#name "?") -#define MRB_SYM_E_2(mrb, name) MRB_PRESYM_SCANNING_TAGGED(#name "=") -#define MRB_SYM_2(mrb, name) MRB_PRESYM_SCANNING_TAGGED(#name) +#define MRB_OPSYM_2(mrb, name) MRB_OPSYM(name) +#define MRB_GVSYM_2(mrb, name) MRB_GVSYM(name) +#define MRB_CVSYM_2(mrb, name) MRB_CVSYM(name) +#define MRB_IVSYM_2(mrb, name) MRB_IVSYM(name) +#define MRB_SYM_B_2(mrb, name) MRB_SYM_B(name) +#define MRB_SYM_Q_2(mrb, name) MRB_SYM_Q(name) +#define MRB_SYM_E_2(mrb, name) MRB_SYM_E(name) +#define MRB_SYM_2(mrb, name) MRB_SYM(name) #define MRB_OPSYM__not(mrb) MRB_PRESYM_SCANNING_TAGGED("!") #define MRB_OPSYM__mod(mrb) MRB_PRESYM_SCANNING_TAGGED("%")