diff options
Diffstat (limited to 'include/ruby/backward.h')
| -rw-r--r-- | include/ruby/backward.h | 85 |
1 files changed, 66 insertions, 19 deletions
diff --git a/include/ruby/backward.h b/include/ruby/backward.h index f804c2c36e..76bd162cb2 100644 --- a/include/ruby/backward.h +++ b/include/ruby/backward.h @@ -1,25 +1,72 @@ -#ifndef RUBY_RUBY_BACKWARD_H /*-*-C++-*-vi:se ft=cpp:*/ +#ifndef RUBY_RUBY_BACKWARD_H #define RUBY_RUBY_BACKWARD_H 1 -/** - * @author Ruby developers <ruby-core@ruby-lang.org> - * @copyright This file is a part of the programming language Ruby. - * Permission is hereby granted, to either redistribute and/or - * modify this file, provided that the conditions mentioned in the - * file COPYING are met. Consult the file for details. - */ -#include "ruby/internal/value.h" -#include "ruby/internal/interpreter.h" -#include "ruby/backward/2/attributes.h" - -#define RBIMPL_ATTR_DEPRECATED_SINCE(ver) RBIMPL_ATTR_DEPRECATED(("since " #ver)) -#define RBIMPL_ATTR_DEPRECATED_INTERNAL(ver) RBIMPL_ATTR_DEPRECATED(("since "#ver", also internal")) -#define RBIMPL_ATTR_DEPRECATED_INTERNAL_ONLY() RBIMPL_ATTR_DEPRECATED(("only for internal use")) - -RBIMPL_ATTR_DEPRECATED_INTERNAL_ONLY() void rb_clear_constant_cache(void); + +#define RClass RClassDeprecated +#ifndef __cplusplus +DEPRECATED_TYPE(("RClass is internal use only"), +struct RClass { + struct RBasic basic; +}); +#endif + +#define DECLARE_DEPRECATED_FEATURE(ver, func) \ + NORETURN(ERRORFUNC(("deprecated since "#ver), DEPRECATED(void func(void)))) + +/* complex.c */ +DECLARE_DEPRECATED_FEATURE(2.2, rb_complex_set_real); +DECLARE_DEPRECATED_FEATURE(2.2, rb_complex_set_imag); + +/* eval.c */ +DECLARE_DEPRECATED_FEATURE(2.2, rb_disable_super); +DECLARE_DEPRECATED_FEATURE(2.2, rb_enable_super); + +/* hash.c */ +DECLARE_DEPRECATED_FEATURE(2.2, rb_hash_iter_lev); +DECLARE_DEPRECATED_FEATURE(2.2, rb_hash_ifnone); + +/* string.c */ +DECLARE_DEPRECATED_FEATURE(2.2, rb_str_associate); +DECLARE_DEPRECATED_FEATURE(2.2, rb_str_associated); + +/* variable.c */ +DEPRECATED(void rb_autoload(VALUE, ID, const char*)); + +/* vm.c */ +DECLARE_DEPRECATED_FEATURE(2.2, rb_clear_cache); +DECLARE_DEPRECATED_FEATURE(2.2, rb_frame_pop); + +#define DECLARE_DEPRECATED_INTERNAL_FEATURE(func) \ + NORETURN(ERRORFUNC(("deprecated internal function"), DEPRECATED(void func(void)))) + +/* error.c */ +DECLARE_DEPRECATED_INTERNAL_FEATURE(rb_compile_error); +DECLARE_DEPRECATED_INTERNAL_FEATURE(rb_compile_error_with_enc); +DECLARE_DEPRECATED_INTERNAL_FEATURE(rb_compile_error_append); + +/* struct.c */ +DECLARE_DEPRECATED_INTERNAL_FEATURE(rb_struct_ptr); + +/* variable.c */ +DECLARE_DEPRECATED_INTERNAL_FEATURE(rb_generic_ivar_table); + +/* vm.c */ +DEPRECATED(int rb_frame_method_id_and_class(ID *idp, VALUE *klassp)); /* from version.c */ -#if defined(RUBY_SHOW_COPYRIGHT_TO_DIE) && !!(RUBY_SHOW_COPYRIGHT_TO_DIE+0) -# error RUBY_SHOW_COPYRIGHT_TO_DIE is deprecated +#ifndef RUBY_SHOW_COPYRIGHT_TO_DIE +# define RUBY_SHOW_COPYRIGHT_TO_DIE 1 +#endif +#if RUBY_SHOW_COPYRIGHT_TO_DIE +/* for source code backward compatibility */ +DEPRECATED(static inline int ruby_show_copyright_to_die(int)); +static inline int +ruby_show_copyright_to_die(int exitcode) +{ + ruby_show_copyright(); + return exitcode; +} +#define ruby_show_copyright() /* defer EXIT_SUCCESS */ \ + (exit(ruby_show_copyright_to_die(EXIT_SUCCESS))) #endif #endif /* RUBY_RUBY_BACKWARD_H */ |
