Itcl - the [incr Tcl] extension

Check-in [fcbb36b8f9]
Login
Bounty program for improvements to Tcl and certain Tcl packages.
Tcl 2019 Conference, Houston/TX, US, Nov 4-8
Send your abstracts to [email protected]
or submit via the online form by Sep 9.

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:fix disable assert for release-version (normally NDEBUG signaling no asserts)
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | sebres-on-dmnd-resolver-perf-branch
Files: files | file ages | folders
SHA3-256: fcbb36b8f9365daa49c1dfdf82eafe6fc3d8ebce08992e1ad89489d7e2f5aba4
User & Date: sebres 2019-04-17 20:36:29
Context
2019-04-17
20:40
Itcl_BuildVirtualTables: avoid whole recreation of var-resolver table (huge speed-up of class creation) check-in: 4744d4ba35 user: sebres tags: sebres-on-dmnd-resolver-perf-branch
20:36
fix disable assert for release-version (normally NDEBUG signaling no asserts) check-in: fcbb36b8f9 user: sebres tags: sebres-on-dmnd-resolver-perf-branch
2019-04-14
15:19
small review check-in: c8831b5a95 user: sebres tags: sebres-memopt-perf-branch
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to generic/itclInt.h.

50
51
52
53
54
55
56
57
58
59
60

61
62
63
64
65
66
67
68
69
/*
 * Since the Tcl/Tk distribution doesn't perform any asserts,
 * dynamic loading can fail to find the __assert function.
 * As a workaround, we'll include our own.
 */

#undef  assert
#define DEBUG 1
#ifndef  DEBUG
#define assert(EX) ((void)0)
#else

#define assert(EX) (void)((EX) || (Itcl_Assert(STRINGIFY(EX), __FILE__, __LINE__), 0))
#endif  /* DEBUG */

#define ITCL_INTERP_DATA "itcl_data"
#define ITCL_TK_VERSION "8.6"

/*
 * Convenience macros for iterating through hash tables. FOREACH_HASH_DECLS
 * sets up the declarations needed for the main macro, FOREACH_HASH, which






|
<

<
>

|







50
51
52
53
54
55
56
57

58

59
60
61
62
63
64
65
66
67
68
/*
 * Since the Tcl/Tk distribution doesn't perform any asserts,
 * dynamic loading can fail to find the __assert function.
 * As a workaround, we'll include our own.
 */

#undef  assert
#if defined(NDEBUG) && !defined(DEBUG)

#define assert(EX) ((void)0)

#else /* !NDEBUG || DEBUG */
#define assert(EX) (void)((EX) || (Itcl_Assert(STRINGIFY(EX), __FILE__, __LINE__), 0))
#endif

#define ITCL_INTERP_DATA "itcl_data"
#define ITCL_TK_VERSION "8.6"

/*
 * Convenience macros for iterating through hash tables. FOREACH_HASH_DECLS
 * sets up the declarations needed for the main macro, FOREACH_HASH, which