source: XmlTools2/trunk/XmlTools/libs/config.h@ 905

Last change on this file since 905 was 905, checked in by s10k, 11 years ago

XmlTools v2

File size: 4.7 KB
RevLine 
[905]1#ifndef _42TinyJS_config_h__
2#define _42TinyJS_config_h__
3
4/*
5 * 42TinyJS
6 *
7 * A fork of TinyJS with the goal to makes a more JavaScript/ECMA compliant engine
8 *
9 * Authored By Armin Diedering <armin@diedering.de>
10 *
11 * Copyright (C) 2010-2013 ardisoft
12 *
13 *
14 * Permission is hereby granted, free of charge, to any person obtaining a copy of
15 * this software and associated documentation files (the "Software"), to deal in
16 * the Software without restriction, including without limitation the rights to
17 * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
18 * of the Software, and to permit persons to whom the Software is furnished to do
19 * so, subject to the following conditions:
20
21 * The above copyright notice and this permission notice shall be included in all
22 * copies or substantial portions of the Software.
23
24 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
25 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
26 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
27 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
28 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
29 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
30 * SOFTWARE.
31 */
32
33//////////////////////////////////////////////////////////////////////////
34
35/* POOL-ALLOCATOR
36 * ==============
37 * To speed-up new & delete 42TinyJS adds an object-pool
38 * The pool is activated by default.
39 * To deactivate this stuff define NO_POOL_ALLOCATOR
40 */
41//#define NO_POOL_ALLOCATOR
42
43/*
44 * for debugging-stuff you can define DEBUG_POOL_ALLOCATOR
45 * if a memory-leak detected the allocator usage is printed to stderr
46 */
47//#define DEBUG_POOL_ALLOCATOR
48/*
49 * with define LOG_POOL_ALLOCATOR_MEMORY_USAGE
50 * the allocator usage is always printed to stderr
51 */
52//#define LOG_POOL_ALLOCATOR_MEMORY_USAGE
53
54// NOTE: _DEBUG or LOG_POOL_ALLOCATOR_MEMORY_USAGE implies DEBUG_POOL_ALLOCATOR
55
56//////////////////////////////////////////////////////////////////////////
57
58/* REGEXP-SUPPORT
59 * ==============
60 * The RegExp-support needs boost-regex or TR1-regex
61 * To deactivate this stuff define NO_REGEXP
62 */
63//#define NO_REGEXP
64
65/* if NO_REGEXP not defined <regex> is included and std::regex is used
66 * you can define HAVE_BOOST_REGEX and <boost/regex.hpp> is included and boost::regex is used
67 */
68#define HAVE_BOOST_REGEX
69
70/* or you can define HAVE_TR1_REGEX and <tr1/regex> is included and std::tr1::regex is used
71 */
72//#define HAVE_TR1_REGEX
73
74
75//////////////////////////////////////////////////////////////////////////
76
77/* LET-STUFF
78 * =========
79 * Redeclaration of LET-vars is not allowed in block-scopes.
80 * But in the root- and functions-scopes it is currently allowed
81 * In future ECMAScript versions this will be also in root-and functions-scopes forbidden
82 * To enable the future behavior define PREVENT_REDECLARATION_IN_FUNCTION_SCOPES
83 */
84//#define PREVENT_REDECLARATION_IN_FUNCTION_SCOPES
85
86
87//////////////////////////////////////////////////////////////////////////
88
89/* MULTI-THREADING
90 * ===============
91 * 42TinyJS is basically thread-save.
92 * You can run different or the same JS-code simultaneously in different instances of class TinyJS.
93 * The threading-stuff is currently only needed by the pool-allocator
94 * to deactivate threading define NO_THREADING
95 * NOTE: if NO_POOL_ALLOCATOR not defined you can not run JS-code simultaneously
96 * NO_POOL_ALLOCATOR implies NO_THREADING
97 */
98
99//#define NO_THREADING
100
101/* on Windows the windows-threading-API is used by default.
102 * on non-Windows (WIN32 is not defined) it is tried to use the POSIX pthread-API
103 * to force the pthread-API define HAVE_PTHREAD (windows needs in this case
104 * a pthread-lib e.g http://http://sourceware.org/pthreads-win32/)
105 */
106//#define HAVE_PTHREAD
107
108/* you can implement your own custom thread-implementation.
109 * to prevent the using of the win- or pthread-API define HAVE_CUSTOM_THREADING_IMPL
110 */
111//#define HAVE_CUSTOM_THREADING_IMPL
112
113////////////////////////////////////////////////
114// DO NOT MAKE CHANGES OF THE FOLLOWING STUFF //
115////////////////////////////////////////////////
116
117#if defined(NO_POOL_ALLOCATOR) && !defined(NO_THREADING)
118# define NO_THREADING
119#endif
120
121#if !defined(NO_POOL_ALLOCATOR) && defined(NO_THREADING)
122#pragma message("\n***********************************************************************\n\
123* You have defined NO_THREADING and not defined NO_POOL_ALLOCATOR\n\
124* NOTE: you can not run JS-code simultaneously in different threads\n\
125***********************************************************************\n")
126#endif
127
128
129#endif // _42TinyJS_config_h__
Note: See TracBrowser for help on using the repository browser.