Rework usages/naming of configuration macros [part 1] (#2793)

There are quite a few configuration macros in the project.
As discussed in the #2520 issue there are a few awkward constructs.

Main changes:

* Renamed all CONFIG_DISABLE_<name>_BUILTIN macro to JERRY_BUILTIN_<name> format.
* The special JERRY_BUILTINS macro specifies the basic config for all es5.1 builtins.
* Renamed all CONFIG_DISABLE_ES2015_<name> to JERRY_ES2015_<name> format.
* The special JERRY_ES2015 macro specifies the basic config for all es2015 builtins.
* Renamed UNICODE_CASE_CONVERSION to JERRY_UNICODE_CASE_CONVERSION.
* Renamed ENABLE_REGEXP_STRICT_MODE to JERRY_REGEXP_STRICT_MODE.
* All options (in this change) can have a value of 0 or 1.
* Renamed ENABLE_REGEXP_STRICT_MODE to JERRY_REGEXP_STRICT_MODE.
  JERRY_REGEXP_STRICT_MODE is set to 0 by default.
* Reworked CONFIG_ECMA_NUMBER_TYPE macro to JERRY_NUMBER_TYPE_FLOAT64 name and now
  it uses the value 1 for 64 bit floating point numbers and 0 for 32 bit floating point
  number.
  By default the 64-bit floating point number mode is enabled.
* All new JERRY_ defines can be used wit the `#if ENABLED (JERRY_...)` construct to
  test if the feature is enabled or not.
* Added/replaced a few config.h includes to correctly propagate the macro values.
* Added sanity checks for each macro to avoid incorrectly set values.
* Updated profile documentation.
* The CMake feature names are not updated at this point.

JerryScript-DCO-1.0-Signed-off-by: Peter Gal pgal.u-szeged@partner.samsung.com
This commit is contained in:
Péter Gál
2019-04-09 10:14:46 +02:00
committed by Robert Fancsik
parent 722d092528
commit 40f7b1c27f
213 changed files with 1902 additions and 1649 deletions
+12 -12
View File
@@ -67,7 +67,7 @@ typedef struct jerry_context_data_header
*/
#define JERRY_CONTEXT_FIRST_MEMBER ecma_builtin_objects
#ifndef CONFIG_DISABLE_ES2015_MODULE_SYSTEM
#if ENABLED (JERRY_ES2015_MODULE_SYSTEM)
/**
* Contains the lexical environments of the loaded modules.
*/
@@ -76,7 +76,7 @@ typedef struct ecma_module_lex_envs
ecma_object_t *lex_env_p; /**< pointer to loaded module's lexical environment */
struct ecma_module_lex_envs *next_p; /**< pointer to the next item in the linked list */
} ecma_module_lex_envs_t;
#endif /* !CONFIG_DISABLE_ES2015_MODULE_SYSTEM */
#endif /* ENABLED (JERRY_ES2015_MODULE_SYSTEM) */
/**
* JerryScript context
@@ -96,9 +96,9 @@ struct jerry_context_t
/* Update JERRY_CONTEXT_FIRST_MEMBER if the first non-external member changes */
ecma_object_t *ecma_builtin_objects[ECMA_BUILTIN_ID__COUNT]; /**< pointer to instances of built-in objects */
#ifndef CONFIG_DISABLE_REGEXP_BUILTIN
#if ENABLED (JERRY_BUILTIN_REGEXP)
const re_compiled_code_t *re_cache[RE_CACHE_SIZE]; /**< regex cache */
#endif /* !CONFIG_DISABLE_REGEXP_BUILTIN */
#endif /* ENABLED (JERRY_BUILTIN_REGEXP) */
ecma_object_t *ecma_gc_objects_p; /**< List of currently alive objects. */
jmem_heap_free_t *jmem_heap_list_skip_p; /**< This is used to speed up deallocation. */
jmem_pools_chunk_t *jmem_free_8_byte_chunk_p; /**< list of free eight byte pool chunks */
@@ -109,16 +109,16 @@ struct jerry_context_t
const lit_utf8_byte_t * const *lit_magic_string_ex_array; /**< array of external magic strings */
const lit_utf8_size_t *lit_magic_string_ex_sizes; /**< external magic string lengths */
ecma_lit_storage_item_t *string_list_first_p; /**< first item of the literal string list */
#ifndef CONFIG_DISABLE_ES2015_SYMBOL_BUILTIN
#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL)
ecma_lit_storage_item_t *symbol_list_first_p; /**< first item of the global symbol list */
#endif /* !CONFIG_DISABLE_ES2015_SYMBOL_BUILTIN */
#endif /* ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) */
ecma_lit_storage_item_t *number_list_first_p; /**< first item of the literal number list */
ecma_object_t *ecma_global_lex_env_p; /**< global lexical environment */
#ifndef CONFIG_DISABLE_ES2015_MODULE_SYSTEM
#if ENABLED (JERRY_ES2015_MODULE_SYSTEM)
ecma_module_lex_envs_t *ecma_module_lex_envs_p; /**< list of module's lexical environments */
parser_module_context_t *module_top_context_p; /**< top (current) module parser context */
#endif /* !CONFIG_DISABLE_ES2015_MODULE_SYSTEM */
#endif /* ENABLED (JERRY_ES2015_MODULE_SYSTEM) */
vm_frame_ctx_t *vm_top_context_p; /**< top (current) interpreter context */
jerry_context_data_header_t *context_data_p; /**< linked list of user-provided context-specific pointers */
@@ -137,14 +137,14 @@ struct jerry_context_t
* if !0 property hashmap allocation is disabled */
#endif /* !CONFIG_ECMA_PROPERTY_HASHMAP_DISABLE */
#ifndef CONFIG_DISABLE_REGEXP_BUILTIN
#if ENABLED (JERRY_BUILTIN_REGEXP)
uint8_t re_cache_idx; /**< evicted item index when regex cache is full (round-robin) */
#endif /* !CONFIG_DISABLE_REGEXP_BUILTIN */
#endif /* ENABLED (JERRY_BUILTIN_REGEXP) */
#ifndef CONFIG_DISABLE_ES2015_PROMISE_BUILTIN
#if ENABLED (JERRY_ES2015_BUILTIN_PROMISE)
ecma_job_queueitem_t *job_queue_head_p; /**< points to the head item of the jobqueue */
ecma_job_queueitem_t *job_queue_tail_p; /**< points to the tail item of the jobqueue*/
#endif /* CONFIG_DISABLE_ES2015_PROMISE_BUILTIN */
#endif /* ENABLED (JERRY_ES2015_BUILTIN_PROMISE) */
#ifdef JERRY_VM_EXEC_STOP
uint32_t vm_exec_stop_frequency; /**< reset value for vm_exec_stop_counter */