mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
5e22f873ed
Saves comitters' daily life by avoid #include-ing everything from internal.h to make each file do so instead. This would significantly speed up incremental builds. We take the following inclusion order in this changeset: 1. "ruby/config.h", where _GNU_SOURCE is defined (must be the very first thing among everything). 2. RUBY_EXTCONF_H if any. 3. Standard C headers, sorted alphabetically. 4. Other system headers, maybe guarded by #ifdef 5. Everything else, sorted alphabetically. Exceptions are those win32-related headers, which tend not be self- containing (headers have inclusion order dependencies).
55 lines
1.6 KiB
C
55 lines
1.6 KiB
C
/**********************************************************************
|
|
|
|
constant.h -
|
|
|
|
$Author$
|
|
created at: Sun Nov 15 00:09:33 2009
|
|
|
|
Copyright (C) 2009 Yusuke Endoh
|
|
|
|
**********************************************************************/
|
|
#ifndef CONSTANT_H
|
|
#define CONSTANT_H
|
|
#include "ruby/ruby.h"
|
|
#include "id_table.h"
|
|
|
|
typedef enum {
|
|
CONST_DEPRECATED = 0x100,
|
|
|
|
CONST_VISIBILITY_MASK = 0xff,
|
|
CONST_PUBLIC = 0x00,
|
|
CONST_PRIVATE,
|
|
CONST_VISIBILITY_MAX
|
|
} rb_const_flag_t;
|
|
|
|
#define RB_CONST_PRIVATE_P(ce) \
|
|
(((ce)->flag & CONST_VISIBILITY_MASK) == CONST_PRIVATE)
|
|
#define RB_CONST_PUBLIC_P(ce) \
|
|
(((ce)->flag & CONST_VISIBILITY_MASK) == CONST_PUBLIC)
|
|
|
|
#define RB_CONST_DEPRECATED_P(ce) \
|
|
((ce)->flag & CONST_DEPRECATED)
|
|
|
|
typedef struct rb_const_entry_struct {
|
|
rb_const_flag_t flag;
|
|
int line;
|
|
VALUE value; /* should be mark */
|
|
VALUE file; /* should be mark */
|
|
} rb_const_entry_t;
|
|
|
|
VALUE rb_mod_private_constant(int argc, const VALUE *argv, VALUE obj);
|
|
VALUE rb_mod_public_constant(int argc, const VALUE *argv, VALUE obj);
|
|
VALUE rb_mod_deprecate_constant(int argc, const VALUE *argv, VALUE obj);
|
|
void rb_free_const_table(struct rb_id_table *tbl);
|
|
VALUE rb_const_source_location(VALUE, ID);
|
|
|
|
MJIT_SYMBOL_EXPORT_BEGIN
|
|
int rb_autoloading_value(VALUE mod, ID id, VALUE *value, rb_const_flag_t *flag);
|
|
rb_const_entry_t *rb_const_lookup(VALUE klass, ID id);
|
|
VALUE rb_public_const_get_at(VALUE klass, ID id);
|
|
VALUE rb_public_const_get_from(VALUE klass, ID id);
|
|
int rb_public_const_defined_from(VALUE klass, ID id);
|
|
VALUE rb_const_source_location_at(VALUE, ID);
|
|
MJIT_SYMBOL_EXPORT_END
|
|
|
|
#endif /* CONSTANT_H */
|