Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
History for cwal.c
|
2022-01-20
| ||
| 16:57 | Renamed to src/cwal.c. Major build reorg, step 1 of N. Moving to a top-level non-recursive make, based on the recent libfossil build tree re-org. Currently onlythe main libcwal builds. check-in: [a6705cc58a] user: stephan branch: build-reorg, size: 0 | |
|
2021-08-01
| ||
| 10:23 | Removed CWAL_FEATURE_SCOPE_STORAGE_HASH and changed the default of CWAL_OBASE_ISA_HASH to 1. file: 0f6a4fbc35 check-in: [deddd35e15] user: stephan branch: trunk, size: 459263 | |
|
2021-07-24
| ||
| 10:45 | Implemented cwal_hash_take_props() for the CWAL_OBASE_ISA_HASH case. That was the last known piece which required/requires fiddling for that build option. Time to try it out on my various CGI backends. file: b7dccc3075 check-in: [a98b4b273d] user: stephan branch: trunk, size: 460792 | |
| 09:36 | Some cwal_size_t to cwal_midsize_t conversions. Minor doc and constness tweaks. file: 9af2c57667 check-in: [601b514dd3] user: stephan branch: trunk, size: 458869 | |
|
2021-07-23
| ||
| 05:46 | Minor doc updates. file: 6175cc5494 check-in: [0a79496327] user: stephan branch: trunk, size: 458983 | |
|
2021-07-22
| ||
| 12:41 | Corrected a silly cwal_obase_kvp_iter_next() bug which caused it to skip over colliding tail-end entries in the hashtable (this resolves my website build failures). Corrected some of the scope propery handling for the case when scopes are configured to use hashes (that feature can reasonably be removed now that CWAL_OBASE_ISA_HASH works). Valgrind seems happy but needs another 20-30 minutes to finish crunching the various memory configurations of the s2 unit tests. file: e82d683fd7 check-in: [bbe082639a] user: stephan branch: trunk, size: 458922 | |
|
2021-07-20
| ||
| 02:21 | Found and documented (for the time being) an unexpected failure case when using the new cwal_obase hashtable storage. Renamed cwal_scope_import_properties() to cwal_scope_import_props() for consistency. file: 488c06017d check-in: [b4f045c66a] user: stephan branch: trunk, size: 457781 | |
|
2021-07-11
| ||
| 23:29 | A full valgrind of the s2 test scripts is happy with CWAL_OBASE_ISA_HASH mode, but cwal_hash_take_properties() is disabled in that mode - it needs to be reimplemented for that case and is a bit of a beast. Aside from the unavoidable behavioural change of using type-strict property keys in hash mode, all seems to be working exactly as before. Memory cost comparisons are pending. file: 9629ee39c3 check-in: [5e954ac3be] user: stephan branch: obase-isa-hash2, size: 457786 | |
| 22:06 | CWAL_OBASE_ISA_HASH is mostly implemented and seems to basically work, but cwal_hash_take_props() still has to be reimplemented. file: 557bea1c01 check-in: [273b214789] user: stephan branch: obase-isa-hash2, size: 457765 | |
| 18:27 | More baby steps towards hash-stored object properties. file: d55df2f5b2 check-in: [e0d28b94d6] user: stephan branch: trunk, size: 456020 | |
| 17:45 | More cwal_size_t ==> cwal_midsize_t changes. file: 01e620b62d check-in: [92f0fb90be] user: stephan branch: trunk, size: 454830 | |
| 17:36 | Inconsequential minor cleanups. file: 2676cbf15f check-in: [3310bf0b1c] user: stephan branch: trunk, size: 454595 | |
| 17:20 | More char-to-bool API conversions. Started changing the string APIs to expose cwal_midsize_t string lengths, though a couple such changes (namely cwal_string_cstr2()) are pending because they'll break a bit of s2's core. file: 65fd972fef check-in: [cdefef67f8] user: stephan branch: trunk, size: 454683 | |
| 10:00 | Renamed cwal_lsize_t cwal_midsize_t. Should probably just use uint32_t, but like the "documentation factor" of using this typename. file: d9ba166784 check-in: [9ec0b252f6] user: stephan branch: trunk, size: 454149 | |
| 08:42 | core infrastructure: re-added the obase kvp iterator, a flag on cwal_list to flag whether it's being visited, and strengthened some internal assertions related to list/child visitation. file: ec5767e8eb check-in: [45f6d620a6] user: stephan branch: trunk, size: 454011 | |
|
2021-07-10
| ||
| 22:22 | Refactored the core cwal_hash operations into the internal-only cwal_htable type, for eventual re-use in implementing hash-hosted object-level properties (as opposed to the current sorted list impl). A full valgrind of the s2 test scripts is happy. file: 042c4a5c6a check-in: [5e0ce36380] user: stephan branch: trunk, size: 451374 | |
| 20:14 | Got CWAL_ENABLE_TRACE compiling again and added --trace-cwal flag to s2sh/s2sh2. file: 3c7f3a3079 check-in: [b73445b7ca] user: stephan branch: trunk, size: 447746 | |
| 20:06 | Pulled in part of [16c11f2139]. Preparing to take a fresh whack at the [obase-isa-hash] branch, as that branch is apparently beyond repair. file: 05c0244c18 check-in: [8c86fbdedf] user: stephan branch: trunk, size: 447742 | |
| 19:56 | Now it doesn't work in either mode. Stashing this for later analysis and rolling back to some previous version (possibly the start). file: 7d4ba1b50f check-in: [9522bcf73e] user: stephan branch: obase-isa-hash-wha, size: 457014 | |
| 15:41 | Minor cleanups. Fixed an ancient bug in cwal_hash_insert_with_flags() when replacing a property using a string literal key (it was storing that key as the new value). Still having the same refcount/lifetime issues with hash-hosted object properties :/. file: a38777a688 check-in: [16c11f2139] user: stephan branch: obase-isa-hash, size: 455781 | |
| 14:28 | Some code de-duplication. Still getting values without a scope at cleanup-time when using hash property storage. file: 2f9950168d check-in: [250dad0420] user: stephan branch: obase-isa-hash, size: 455542 | |
| 12:58 | test.c tests of hash property storage basically works but any non-empty script in s2sh triggers assertions at scope cleanup related to unexpected refcounts and missing scope ownership. file: cf125db2e8 check-in: [d7a5284c55] user: stephan branch: obase-isa-hash, size: 455937 | |
| 11:46 | Both property storage modes now compile but the new one is (predictably) currenly broken. file: b2e9938512 check-in: [3c808939d6] user: stephan branch: obase-isa-hash, size: 453710 | |
| 11:21 | Resolved a new memory leak, fixed a cwal_list_reserve() result misuse, and changed some cwal_size_t decls to cwal_lsize_t. file: c929a63c0f check-in: [4d6229e505] user: stephan branch: obase-isa-hash, size: 452790 | |
| 10:35 | More work on the new hashtable infrastructure. The old/non-hash obase case works with this new code, but still hammering on the new case. file: 18f5ab6bf5 check-in: [4fdff30fc3] user: stephan branch: obase-isa-hash, size: 452394 | |
| 04:26 | More work on enabling hash storage for cwal_obase properties. file: ee940cd1bb check-in: [a6b871bfd0] user: stephan branch: obase-isa-hash, size: 449858 | |
| 00:04 | Initial work on adding a compile-time option to make cwal_obase use a hashtable for property storage. That mode does not yet compile. file: 047fc7f2c3 check-in: [044ee16592] user: stephan branch: obase-isa-hash, size: 447142 | |
|
2021-07-09
| ||
| 22:06 | Changed a bunch of predicate function signatures from returning char to bool (now that we're C99, we might as well own it). file: ed18f29ab3 check-in: [9b35720349] user: stephan branch: trunk, size: 447665 | |
| 21:59 | Added cwal_prop_key_can() to check the data type of object property keys and hashtable keys so that we can reject any types for which their mutable state is accounted for in their comparison or hashing operation. Thus Buffers and Tuples are no longer legal as property keys and will trigger a CWAL_RC_TYPE error. Allowing those types as keys in the first place was a design error. file: 3a7ddd66e8 check-in: [539060fab2] user: stephan branch: trunk, size: 447666 | |
| 20:46 | Refactored cwal_printf() interface to use return-0-on-success semantics because the classical printf semantics are next to useless for this particular API and this gives us the ability to propagate errors out properly. file: ce3d556175 check-in: [043c912982] user: stephan branch: trunk, size: 447073 | |
|
2021-06-26
| ||
| 08:16 | Added cwal_rc_cstr_fallback() to allow us to get rid of s2_rc_cstr() so that being-factored-out t10n/c9n code can make use of cwal_rc_cstr() to report non-core-cwal result code strings. s2 now registers a fallback for its S2_RC_xxx codes. file: 868eb86538 check-in: [e679463d26] user: stephan branch: trunk, size: 447102 | |
| 02:40 | A few cleanups to the s2_error/cwal_error port. file: c574b8611b check-in: [caa168b835] user: stephan branch: s2-remove-err-obj, size: 446266 | |
|
2021-06-24
| ||
| 11:00 | Had emacs reformat the core lib to 2-space indentation. file: 963a0988cb check-in: [29cf299dec] user: stephan branch: trunk, size: 446093 | |
| 09:29 | More work on the standalone t10n/c9n subsystem. file: 4652f75073 check-in: [fb2e2b8f05] user: stephan branch: trunk, size: 485252 | |
| 07:47 | More work on the standalone t10n/c9n subsystem. file: 1a49609e1d check-in: [24029cb1d9] user: stephan branch: trunk, size: 485062 | |
| 05:25 | Ported much of the s2_error infrastructure to cwal_error in the core lib for use by the pending t10n/c9n modules (and similar code). file: 418820672b check-in: [3d41e2d40f] user: stephan branch: trunk, size: 484980 | |
|
2020-05-22
| ||
| 06:31 | Random drive-by doc tweaks. file: e63dd82909 check-in: [cf93734fae] user: stephan branch: trunk, size: 479789 | |
|
2020-02-20
| ||
| 01:35 | Insignificant internal tweak. file: 8c958a8694 check-in: [37a77d4f5f] user: stephan branch: trunk, size: 479764 | |
|
2020-02-18
| ||
| 21:15 | Clarified in the docs that cwal_props_copy() and friends do not traverse/copy hidden properties. file: c2b260d748 check-in: [dbc89b0be6] user: stephan branch: trunk, size: 479235 | |
|
2020-02-07
| ||
| 13:00 | cwal_parse_argv_flags() now optionally accepts an array as its target, and appends all raw/unparsed flags to that array. s2sh/s2sh2 now create s2.ARGV as an array. file: cff9756592 check-in: [058c6f6ae8] user: stephan branch: trunk, size: 479324 | |
|
2020-02-02
| ||
| 06:41 | Minor error check reordering so that hash insert matches its docs. file: b7269b7914 check-in: [ce136e8b11] user: stephan branch: trunk, size: 478690 | |
|
2020-01-18
| ||
| 08:43 | Changed cwal_obase_search() and cwal_obase_search_v() to stop looking if any entry in their prototype chain is locked (previously only their initial object was checked for a lock). No APIs currently lock these, so this doesn't break anything. file: 50fcb12aef check-in: [89b61168d2] user: stephan branch: trunk, size: 478690 | |
| 05:14 | Fixed some test code which was broken by the recent cycle-detection/iteration changes. Patched Object.eachProperty() impl to handle the iteration-related result codes (transforming them to exceptions). Changed cwal_props_visit_kvp() to *not* return CWAL_RC_CYCLES_DETECTED for concurrent visiting (which is now legal) and fixed some ancient incorrect docs in nearby functions. file: cbd3c6ad7b check-in: [9dfc28ffaa] user: stephan branch: trunk, size: 478803 | |
|
2020-01-11
| ||
| 21:45 | Minor internal cleanups, mostly removal of dead code. file: b61a7009be check-in: [0a6549cae8] user: stephan branch: trunk, size: 478727 | |
|
2019-12-20
| ||
| 17:56 | Minor internal doc addition. file: 550a38bcdb check-in: [e2f34d234d] user: stephan branch: trunk, size: 481351 | |
| 17:43 | s2 array.sort() now internally uses floating-point comparison so that sort routines which do things like (return 0.1-0.3) can DTRT. Prompted by a bug report files against mujs: https://github.com/ccxvii/mujs/issues/122 file: 48c1c332e6 check-in: [4f0d98c329] user: stephan branch: trunk, size: 481195 | |
|
2019-12-17
| ||
| 02:38 | Style change: globally removed commas after 'i.e.,'. file: 0bd779b42c check-in: [6100e95be2] user: stephan branch: trunk, size: 480788 | |
| 02:36 | Global style change: removed commas from 'e.g.,'. Style guides disagree on whether that comma is 'required'. IMO it just adds noise and its intent is strongly implied without requiring the comma. file: 3c2e30831b check-in: [040a1c6ac4] user: stephan branch: trunk, size: 480789 | |
|
2019-12-13
| ||
| 01:07 | Added a few missing is-visiting checks on property-modifying functions. file: 48234297be check-in: [81abb1596a] user: stephan branch: trunk, size: 480791 | |
|
2019-12-12
| ||
| 12:52 | Reinstated cyclic valid checks in the core JSON API via addition of another visitation-related RCFLAG (so we're now stealing 8 refcount bits for flags). Simplified and cleaned up the is-traversing flagging APIs. file: 4d264ab99c check-in: [0cf849b260] user: stephan branch: multi-iteration, size: 480602 | |
| 02:04 | MOAR multi-iteration-related work. We broke the cycle-detection in the JSON bits with this undertaking, and now have to fall back to the configured max output depth to catch them. file: 3d3023cf6b check-in: [4fc57dd5d5] user: stephan branch: multi-iteration, size: 478338 | |
| 00:32 | More cleanups, some relevant to this branch, some only remotely related. This unfortunately increases the sizeof(cwal_obase) on 32-bit builds by 4 (2?) bytes, but we desperately needed more flag bits for container flags. Forgot to mention that the previous commit stole another refcount bit (7 flag bits in total). file: 2458b3a572 check-in: [db9f4b10f3] user: stephan branch: multi-iteration, size: 477740 | |
|
2019-12-11
| ||
| 23:06 | Initial work on making multiple concurrent iteration possible/legal, and disallowing it at the right times (e.g., we cannot sanely iterate and sort an array concurrently). The s2 unit tests pass, after a couple minor modifications, but there is still lots of testing and documentation patching to be done. file: 788875fcf3 check-in: [e21f0af7f4] user: stephan branch: multi-iteration, size: 478029 | |
|
2019-12-10
| ||
| 19:27 | Added an as-yet-unused flags member on cwal_tuple (no sizeof() increase, due to spare padding). Added some tuple comparison tests. file: d899642e98 check-in: [1f42218ded] user: stephan branch: trunk, size: 482667 | |
| 17:33 | Flags-related refactoring in prep for an attempt to increase some flag sizes without increasing sizeof() (with the help of existing padding). file: 58d3ac2d05 check-in: [cdd0f4d93f] user: stephan branch: trunk, size: 482604 | |
| 14:11 | Added CWAL_CONTAINER_DISALLOW_PROTOTYPE_SET flag and CWAL_RC_DISALLOW_PROTOTYPE_SET result code, which are the prototype-set counterparts of CWAL_CONTAINER/RC_DISALLOW_PROP_SET, and applied them to s2_seal_container()-sealed objects (which includes the new s2out). Reworked s2 enum construction so that setting the prototype property there is well-defined (though probably ill-advised, and replacing enum prototypes may yet be removed as a feature). Removed some dead code. file: 03a71f267e check-in: [9484a7e93e] user: stephan branch: trunk, size: 482416 | |
|
2019-11-18
| ||
| 08:08 | Fixed a typo and reordered a couple if/else conditions. No functional change. file: 64c9932337 check-in: [bb6aa1c237] user: stephan branch: trunk, size: 483860 | |
|
2019-09-11
| ||
| 20:31 | Incidental internal doc touchups and removal of one unnecessary #if block. No functional changes. file: 840dc2cc0d check-in: [e15d5c7b72] user: stephan branch: trunk, size: 483860 | |
|
2019-08-07
| ||
| 13:30 | Doc typo fix. file: 8d53f57a50 check-in: [97f7fa77c8] user: stephan branch: trunk, size: 483826 | |
|
2019-08-04
| ||
| 12:46 | Insignificant internal docs tweaks and factored out one superfluous variable. file: d5f9479ce1 check-in: [832b98af5a] user: stephan branch: trunk, size: 483827 | |
|
2019-07-17
| ||
| 19:16 | Exposed the cwal-internal hashing function via the public API, as cwal_hash_bytes(), because i have a good use for it in the UUID module. file: 9f80fc7f2e check-in: [34e21ebeca] user: stephan branch: trunk, size: 483828 | |
|
2019-07-13
| ||
| 01:19 | Fixed an ancient string ref mishandling in the JSON parser. No idea why it waited until now to show up :/, but that code certainly dates back to the time where i thought it was generally okay to temporarily have no refs. file: 906cd372db check-in: [ac444d043c] user: stephan branch: trunk, size: 483766 | |
|
2019-07-06
| ||
| 07:21 | Fixed core property lookup to always perform type-strict comparison if either the lookup key or property key is of type CWAL_TYPE_BOOL. Without this, X[true] was resolving to the first truthy property key, and X[false] to the first falsy one. file: e2e0b8d744 check-in: [a32fcc4268] user: stephan branch: trunk, size: 483688 | |
|
2019-03-26
| ||
| 07:33 | Fixed cwal_cstr_to_int() to not succeed if it sees no digits, e.g. a standalone minus sign. file: 4254b1c318 check-in: [5fc02ab14d] user: stephan branch: trunk, size: 482373 | |
|
2018-12-04
| ||
| 14:04 | Minor errno-handling tweak. file: d1449e8cef check-in: [a1dc0941fb] user: stephan branch: trunk, size: 482281 | |
|
2018-12-01
| ||
| 16:32 | Minor error handling tweak which might or might not do anything. file: f46de3ae86 check-in: [978c1c04d2] user: stephan branch: trunk, size: 482255 | |
|
2018-11-30
| ||
| 18:11 | Minor tweaks/cleanups. file: 2b189c233a check-in: [05e167e2eb] user: stephan branch: trunk, size: 482062 | |
|
2018-11-29
| ||
| 14:43 | Minor tweaks caught while porting some of this code into another tree. file: d7504f5cba check-in: [4398c5bec4] user: stephan branch: trunk, size: 482712 | |
|
2018-11-28
| ||
| 14:43 | Removed a stray comma from the new metrics dump output. file: e628e9ee1f check-in: [40423dbcc0] user: stephan branch: trunk, size: 482968 | |
| 14:33 | Core lib doc updates/additions. Added cwal_engine::metrics::len1StringsSaved to record how many length-1 strings are saved via that optimization. Moved the length-1 ASCII optimization flag into cwal_config.h. file: 1e347945e7 check-in: [39016bac11] user: stephan branch: trunk, size: 482970 | |
|
2018-11-27
| ||
| 11:12 | Several deeply internal assert()/fatal condition check improvements and cleanups. file: 100bb09b99 check-in: [af11b6ac1f] user: stephan branch: trunk, size: 480206 | |
| 09:25 | cwal_function_call_in_scope() now calls cwal_refunref() on the callback's result if its own caller passes NULL for the rv pointer (which, in practice, is never done). Fixed a missing cwal_strlen() in cwal_prop_take() (a holdover from when the API treated an explicit length of 0 to mean 'count it yourself'). Removed the last of the functions which were marked as @deprecated. file: f8dcafc3d7 check-in: [7b251481bd] user: stephan branch: trunk, size: 480956 | |
| 07:38 | Added doxygen support, adjusted some docs to squelch doxygen warnings, removed several deprecated functions. Edit: doh, it seems we already had the doxygen files, they were just long forgotten and i overwrote them with copies from another source tree. file: 29695c0220 check-in: [73251240a6] user: stephan branch: trunk, size: 485534 | |
| 01:34 | Patch previous commit to politely overlook the NaN/Inf special values. The new s2 math module can emit those. file: 871ac39fca check-in: [d951557a0d] user: stephan branch: trunk, size: 488046 | |
| 01:05 | Swapped out cwal_double_to_cstr() with an impl which doesn't write e-notation (because s2 can't read that (and i don't want to teach it to), so it shouldn't generate it). This caused several hours more hassle than it really should have, in the form of broken comparison operations and weird stringified output, but floating point numbers are strange, strange beasts. file: 8452e0c547 check-in: [6fcff747c1] user: stephan branch: trunk, size: 487895 | |
|
2018-11-26
| ||
| 16:31 | Improved/hardened the cwal_buffer_value() is-this-really-a-Value check. file: 818a61062c check-in: [7db9dc8d92] user: stephan branch: trunk, size: 486698 | |
| 14:21 | removed some dead code. file: d0c130b33c check-in: [c2c5f3b1fd] user: stephan branch: trunk, size: 486510 | |
| 11:45 | Added cwal_scope_vacuum() in order to play with recursive vacuuming (which still breaks s2 because there are many places where we recurse into the eval engine). file: d7d7b1429a check-in: [014b06ff6d] user: stephan branch: trunk, size: 489451 | |
| 10:24 | Minor cost-correctness improvements. file: 0c1b9f6f58 check-in: [dea8b92b24] user: stephan branch: trunk, size: 489105 | |
|
2018-11-24
| ||
| 21:15 | cwal_value_unhand() now returns the value passed to it, instead of avoid, in the interest of making it easier to use for the most common usage. file: b8007edc24 check-in: [7aefa0fc0e] user: stephan branch: trunk, size: 489093 | |
|
2018-11-23
| ||
| 14:43 | Snapshot. Lots of cleanup of the new s2_scope mechanism. Removed some now-obsolete s2 scope-handling functions. file: 196751fdd6 check-in: [b7de2a8e38] user: stephan branch: scope-push-pop-hooks, size: 489112 | |
| 07:48 | Initial work on scope push/pop hooks. The intent is so that clients (s2) can keep their own scope state in sync with cwal's, but whether that will really be possible is as yet uncertain because of engine init/startup timing vis-a-vis access to the allocator. file: 68d2da497b check-in: [a1472de17e] user: stephan branch: scope-push-pop-hooks, size: 488914 | |
|
2018-11-22
| ||
| 15:10 | Removed some dead code: cwal_var_unset_s(). file: 3dad773c85 check-in: [b9357f7de4] user: stephan branch: trunk, size: 488434 | |
| 10:58 | cwal core: changed the string hashing algorithm yet again. Seems to perform better (fewer collisions). file: 36a5d2743e check-in: [e0524c4ed3] user: stephan branch: trunk, size: 488574 | |
| 02:41 | minor constness improvements. file: ff8baf4800 check-in: [028f3467cf] user: stephan branch: trunk, size: 488166 | |
| 02:29 | Another tweak to that just-fixed (but really re-broken) assert. file: f3ff83c103 check-in: [59288dfffb] user: stephan branch: trunk, size: 488118 | |
| 02:07 | Fixed a bogus assert() in cwal_function_call_in_scope2() which was triggered by old C++ test code. file: 441edf3fe5 check-in: [c04f1f3314] user: stephan branch: trunk, size: 487677 | |
|
2018-11-20
| ||
| 09:16 | Squelched a couple non-debug build warnings. file: 224e91e676 check-in: [2656a0cb3c] user: stephan branch: trunk, size: 487633 | |
| 09:05 | Squelched dozens of unused parameter warnings (removing their names causes a completely different warning) triggered by work on the build process. Fixed cwal_scope_chain_set_with_flags() to not ignore the flags it was given and to honor various KVP/container flags which its _v() counterpart was honoring. file: 3ad79c9cdb check-in: [211af69f84] user: stephan branch: trunk, size: 487617 | |
|
2018-11-07
| ||
| 18:19 | Enhanced cwal_value_from_arg() a bit. file: 5f68b30dea check-in: [3fafa494c7] user: stephan branch: trunk, size: 486284 | |
|
2018-11-04
| ||
| 11:22 | Cleaned up ref/unref handling in cwal_parse_argv_flags(). Its previous behavour could have caused Grief with interned strings. file: ca1c31625f check-in: [1a2383df89] user: stephan branch: trunk, size: 485809 | |
|
2018-10-16
| ||
| 05:12 | Internal doc/comment touchups. Changed the range of builtin integer values (again - it was set to some weird range). Removed a couple unused/unnecessary macros. file: 25d55426a8 check-in: [0689e96ea9] user: stephan branch: trunk, size: 485199 | |
| 04:45 | Typo fixes (future dates). file: ee54f05e71 check-in: [f6afbb8ba4] user: stephan branch: trunk, size: 484526 | |
|
2018-09-19
| ||
| 17:36 | Fixed a bug in the low-level object cleanup which caused refcount points on prototypes to not be properly removed. Discovered by accident while working on a new module. file: 82f1e8c3ea check-in: [5e7ebb45df] user: stephan branch: trunk, size: 484526 | |
|
2018-08-12
| ||
| 10:07 | Fixed gcc7 warnings, a couple of which were valid and many of which were from its new, stunningly braindeaded behaviour of warning about switch fallthrough (which of course fails because we build with -Wall -Wpedantic). file: bf0a251c1f check-in: [6b2c51d9c8] user: stephan branch: trunk, size: 484964 | |
|
2018-06-20
| ||
| 14:32 | Stateful array qsort no longer uses a random pivot because checkin [f40e1afaed]'s removal of a call to srand() revealed a bug with that approach (and i'm not up for chasing down exactly what the problem is). file: cf90bebaa9 check-in: [8c4d44300e] user: stephan branch: trunk, size: 484980 | |
|
2018-05-23
| ||
| 15:54 | Array sorting with a custom callback now sets the is-visiting flag for the duration of the sort, to prohibit iteration during the sorting process. file: 6cab7ac28c check-in: [2fa3e2286d] user: stephan branch: trunk, size: 484104 | |
| 15:09 | Replaced the broken internal cwal_array_sort_stateful() qsort with a working one and added a way for non-exception errors to be propagated back out of cwal_array_sort_stateful() callbacks. file: 91d3580ddd check-in: [75cd61d03c] user: stephan branch: trunk, size: 483718 | |
| 13:09 | added a todo about broken error propagation in array.sort(callback). Also discovered a sorting bug in that context which was yet to be properly identified. file: f07072cad5 check-in: [b90276c8b6] user: stephan branch: trunk, size: 484593 | |
|
2018-05-08
| ||
| 13:29 | Changed how cwal_next_prime() works, utilizing the pre-existing 1000 primes list. file: ee4324059f check-in: [a02432c152] user: stephan branch: trunk, size: 484076 | |
|
2018-05-07
| ||
| 23:31 | minor internal tinkering. file: c35b5753da check-in: [9211afe535] user: stephan branch: trunk, size: 483812 | |
| 22:38 | minor metrics formatting tweaks and one pedantic micro-optimization. file: 8d6be43c0d check-in: [301300b9e7] user: stephan branch: trunk, size: 483903 | |
|
2018-04-11
| ||
| 00:34 | typo fix, removed some duplicate/unused code. file: 00786f8652 check-in: [3b3f00851a] user: stephan branch: trunk, size: 483921 | |
|
2018-01-05
| ||
| 14:33 | Extended the Unique-type cleanup checks ([74e71fae100d44]) to Tuples, which hypothetically have the same cleanup error case (but it's never been witnessed). Edit: and accidentally checked in unrelated termbox tinkering at the same time :/. file: 2e0b9129e8 check-in: [eae27e464a] user: stephan branch: trunk, size: 483921 | |
| 13:40 | cwal core now gc-queues all values (not just containers) during scope cleanup. This fixes a difficult-to-trigger cleanup-time problem involving Unique-type values and their non-container wrapped values. file: 8934a4a74c check-in: [74e71fae10] user: stephan branch: trunk, size: 481338 | |
|
2018-01-03
| ||
| 16:04 | consistency: changed signature of cwal_prop_has() and cwal_prop_has_v(), removed cwal_prop_has_s(). file: 0200054e04 check-in: [db1a5c3526] user: stephan branch: trunk, size: 480520 | |
|
2018-01-02
| ||
| 04:28 | generic tinkering. file: f22bfa0754 check-in: [bbba146715] user: stephan branch: trunk, size: 480769 | |
|
2017-12-27
| ||
| 12:36 | removed some dead code, minor internal touchups. file: b97eb58387 check-in: [e06340a5d2] user: stephan branch: trunk, size: 486740 | |
| 11:41 | removed some dead code. file: fcc7438c4e check-in: [0be8130cf2] user: stephan branch: trunk, size: 487648 | |
| 11:30 | Minor refactoring in the scope of interceptor support. Changed the cwal-internal string hash routine again. Added some metrics output. file: 54fbd62e38 check-in: [47e9b8e8a6] user: stephan branch: trunk, size: 488671 | |
| 10:10 | Fixed some ref/unref boneheadedness in cwal_json which prematurely killed values (bug introduced in [ad93dd9b93e37763]). Added missing ref/unhand in cwal_scope_pop2() which killed propagating values. file: 05435a3424 check-in: [957e87d7f8] user: stephan branch: trunk, size: 487181 | |
|
2017-12-26
| ||
| 16:29 | Didn't mean to hit enter there. file: f663e92da1 check-in: [3af17e6d5d] user: stephan branch: trunk, size: 485889 | |
| 16:28 | Cleanups and preliminary work for adding property interceptors to the core via alternative getter/setter APIs. file: c23f4f296e check-in: [ed485b7b8b] user: stephan branch: trunk, size: 485889 | |
| 10:24 | Removed more superfluous funcs. Added one unit test. file: ca9db3fdcd check-in: [ad93dd9b93] user: stephan branch: trunk, size: 479421 | |
| 09:59 | removed some old/unused functions. file: f9abc39165 check-in: [f5570c4333] user: stephan branch: trunk, size: 480827 | |
|
2017-12-25
| ||
| 12:04 | Removed deprecated cwal_args_callee_state(). Minor doc tweaks. file: 67a8de7fa9 check-in: [56e46c52bd] user: stephan branch: trunk, size: 481232 | |
| 10:42 | minor tweak to the string is-ascii determination. file: 84f2296458 check-in: [817bebac7a] user: stephan branch: trunk, size: 481563 | |
|
2017-12-08
| ||
| 14:32 | Added cwal_scope_pop2(), analog to s2_scope_pop2(). file: 1597c2fb5c check-in: [09c10d90c0] user: stephan branch: s2-interceptors, size: 481087 | |
|
2017-12-07
| ||
| 00:10 | Minor proactive rescoping fixes. file: 212d07decf check-in: [6848b566bc] user: stephan branch: trunk, size: 480698 | |
|
2017-12-06
| ||
| 19:13 | Apparently fixed an old bug in cwal_prop_get_kvp(). A slight semantics change to cwal_kvp_flags_set(). Tweaks to how cwal_function_call_in_scope() handles references. Fixed an old missing result code check which somehow never caused grief (or did it?). file: bed819cb5d check-in: [e491db6af4] user: stephan branch: trunk, size: 480550 | |
|
2017-12-03
| ||
| 21:09 | Tiny random cleanups. file: 23890ef119 check-in: [ed33242e31] user: stephan branch: trunk, size: 480709 | |
| 15:16 | Added cwal_build_info() to make various build-time config options available to client code. Stole another bit from the maximum string length to add an is-ascii flag to strings, which we can use to speed up many algorithms for the most common cases (but it slows down string creation for the common case). file: a290ef81d3 check-in: [72236d95aa] user: stephan branch: trunk, size: 480709 | |
|
2017-12-02
| ||
| 14:33 | Made the range of built-in integers build-time configurable and removed the shared-instance integer cwal_weak_refs. Removed some cruft from CWAL_BUILTIN_VALS. file: 1f8410ec99 check-in: [79988ded9c] user: stephan branch: trunk, size: 475325 | |
|
2017-12-01
| ||
| 19:26 | Added cwal_engine_outputer_get/set() to simplify swapping out the outputer. Added cwal_output_f_cwal_outputer(). file: 5a3982e9ba check-in: [2a21245d11] user: stephan branch: trunk, size: 475160 | |
|
2017-11-30
| ||
| 18:32 | a minor const correctness fix in cwal_unique_wrapped_get(). file: a9b4f29890 check-in: [38620308fe] user: stephan branch: trunk, size: 474543 | |
|
2017-11-21
| ||
| 17:05 | added a reminder to self. file: a552b2c671 check-in: [35baac6ef3] user: stephan branch: trunk, size: 474537 | |
| 15:57 | Fixed the length-1 string handling for X- and Z-strings. file: 16cc18f176 check-in: [717abf2614] user: stephan branch: trunk, size: 474347 | |
| 12:43 | cwal core now includes all byte-length-1 ASCII strings in its builtin Values. In the various s2 unit tests this cuts alloc counts by anywhere from ~1% to ~12% with recycling disabled and ~1% to ~2.5% with recycling enabled. Total memory use without recycling was cut by ~1-10% and is highly script-dependent (those with many length-1 variable names save more). file: 8ed4bb8a13 check-in: [8bef0b5c74] user: stephan branch: trunk, size: 473234 | |
|
2017-11-13
| ||
| 12:26 | minor utility API renaming and additions. file: 23a10e314e check-in: [d8df88227b] user: stephan branch: trunk, size: 471272 | |
| 09:38 | Moved ownership of s2's eval-holder array from the eval() routine to s2_scope. This cuts allocations drastically when recycling is disabled, reducing the unit test amalgamation alloc counts by about 1/3rd and saving 1M of total alloc'd memory. The savings when recycling is on are minimal but better than nothing. file: 19db9c811a check-in: [61f4780ed8] user: stephan branch: trunk, size: 470659 | |
| 07:08 | Refactored s2's various assignment operators for better ref/unref handling and readability. file: fb218738fa check-in: [557510fcb9] user: stephan branch: trunk, size: 470666 | |
|
2017-11-12
| ||
| 10:49 | Discovered and applied gcc's -Wextra warning level, plus patched up violations it caught (mostly missing struct member initializers). file: eafec55b8c check-in: [f13f6c3c4b] user: stephan branch: trunk, size: 470672 | |
| 09:06 | Migrated s2.Buffer.replace() implementations into core cwal functions. file: e500a18593 check-in: [e980d01913] user: stephan branch: trunk, size: 470640 | |
|
2017-11-10
| ||
| 20:49 | cwal_value_from_arg() now trims starting/ending quotes from the value part of --key="value". file: 3ae29f2b97 check-in: [f37e0dbf88] user: stephan branch: trunk, size: 467856 | |
|
2017-11-07
| ||
| 13:10 | reworked the change to cwal_buffer_fill_from_filename() from the previous commit. file: c10c2c104f check-in: [673581aadb] user: stephan branch: trunk, size: 467685 | |
| 13:06 | imported GLOB/LIKE pattern matching from sqlite3. Added s2.glob(glob,haystack[,globStyle]). file: 19458a8bb5 check-in: [4eac2f17a9] user: stephan branch: trunk, size: 467683 | |
|
2017-11-03
| ||
| 11:49 | Minor semantics change in cwal_exception_setfv() and friends (returning CWAL_RC_OOM as-is, rather than trying to create an exception object). file: 0ef9e8c0a3 check-in: [5e957a91c3] user: stephan branch: trunk, size: 467792 | |
| 00:59 | minor doc tweaks file: a09efda190 check-in: [38b67c092e] user: stephan branch: trunk, size: 467508 | |
|
2017-10-13
| ||
| 12:36 | minor (and arguable) CWAL_TYPE_LISTMEM metrics tweak: no longer count a cwal_list_reserve() of a larger size as an alloc request if we already have enough memory in the list. file: a0650e6dc3 check-in: [29f0e06050] user: stephan branch: trunk, size: 467410 | |
| 12:23 | s/\bUNUSED\b/CWAL_UNUSED_VAR/g. Minor s2 unit test tweak. file: a616f4ddcb check-in: [6eaa08f972] user: stephan branch: trunk, size: 467415 | |
|
2017-10-12
| ||
| 12:11 | Random tiny cleanups, auto-reformatting, and fixed (i think) CWAL_TYPE_LISTMEM allocation metrics tracking. file: 8bfd823449 check-in: [d7ba485ecd] user: stephan branch: trunk, size: 467388 | |
|
2017-10-07
| ||
| 13:38 | re-renamed a couple routines left mis-named by the strlen refactoring. file: f52b103228 check-in: [a78283a20f] user: stephan branch: trunk, size: 466045 | |
|
2017-10-05
| ||
| 17:09 | Merged (private) strlen-rewrite branch. This eliminates the 'length of 0 means to use cwal_strlen()' semantics from the major APIs (there may be a couple small outliers). My hands managed to survive, with the left pinky being only ever so slightly sore. file: 4de44d576a check-in: [ef477c5d1e] user: stephan branch: trunk, size: 466026 | |
|
2017-03-22
| ||
| 18:56 | random typos. file: 8302cb02c7 check-in: [390cab8ffd] user: stephan branch: trunk, size: 466333 | |
|
2017-03-20
| ||
| 11:56 | cwal core now sorts Object properties internally, making searches faster (on average). file: 562e5f7d62 check-in: [792bbb7ddd] user: stephan branch: trunk, size: 466454 | |
|
2016-09-09
| ||
| 19:21 |
Adding a preliminary CMakeLists.txt for use in CLion.
Also changed the UNUSED_VAR macro to an UNUSED attribute which appears to be more widely adopted by compilers. file: ee769c5390 check-in: [d834ba36b3] user: calebg branch: s2-ndebug, size: 467519 | |
|
2016-08-30
| ||
| 17:54 | Adding some build information to cwal. file: 6a9d41867a check-in: [a88bdfc8b2] user: calebg branch: cwal-ndebug, size: 467606 | |
| 16:26 | Removing NDEBUG and just using DEBUG to simplify sources. file: 6331870832 check-in: [a449dc869c] user: calebg branch: cwal-ndebug, size: 466813 | |
| 13:37 | Fixing up the cwal non-debug build: * Switched around the amal build so that cwal_amalgamation.* files can be used without including other files. * Added ENABLE_SPEED_OPTIMIZATIONS and ENABLE_SIZE_OPTIMIZATIONS to config.make - ENABLE_DEBUG=0 make - ENABLE_DEBUG=0 ENABLE_SPEED_OPTIMIZATIONS=1 make - ENABLE_DEBUG=0 ENABLE_SIZE_OPTIMIZATIONS=1 make * Replaced all debugging double negatives with just a positive expressions: "#if !defined(NDEBUG)" is now "#ifdef DEBUG" * Added the UNUSED_VAR macro to prevent the 'unused variable' compiler warning. * Removed the "force assert() to always work" section in the test.c file. * Added CWAL_AMALGAMATION_BUILD to test.c so that it's possible to easily build the test with the amal build. * Literred UNUSED_VAR everywhere it was needed in the test.c file. file: 400e69b9d2 check-in: [fce3c1d39b] user: calebg branch: cwal-ndebug, size: 466972 | |
|
2016-08-25
| ||
| 20:44 | Changed several *CWAL_INT/DBL derefs to memcpy() to avoid a bus fault on ARM. Had to work around gcc boneheadedness to do it :/. file: 049de06050 check-in: [4b1745c43f] user: stephan branch: trunk, size: 466918 | |
|
2016-08-20
| ||
| 10:32 | Fixed a not-_quite_-right assertion in the Unique-type's finalizer which could incorrectly trigger during scope cleanup. file: 96a7eecbf9 check-in: [1627a35a2c] user: stephan branch: trunk, size: 465886 | |
|
2016-03-09
| ||
| 09:44 | removed scope pointers from cwal_dump_value() and s2_dump_value() (they're just noise, as scopes are always stack allocated). file: b0a55644a0 check-in: [104193e661] user: stephan branch: trunk, size: 465492 | |
|
2016-03-07
| ||
| 17:55 | Ported s2 String.indexOf() to cwal_utf8_indexof(). Fixed a couple wrong no-match return cases in indexOf() (was still returning undefined (historical semantics) in some cases). file: 44fc55d614 check-in: [8b8f0837cd] user: stephan branch: trunk, size: 465524 | |
|
2016-03-05
| ||
| 20:52 | Refactored s2's string case folding utilities into the cwal core. Need to eventually do most of the string utilities (indexOf, split, etc.), but i have an immediate use for this one. file: 41863a3ad0 check-in: [6ad30c288e] user: stephan branch: trunk, size: 467331 | |
|
2016-03-01
| ||
| 17:57 | corrected an assertion message. file: e3e2a7fcfb check-in: [226b9b7f00] user: stephan branch: trunk, size: 465525 | |
| 17:15 | removed some dead code, added an assertion to try to tickle and s2-level bug earlier on. file: 4b84fe72c8 check-in: [04e628eb7e] user: stephan branch: trunk, size: 465522 | |
| 16:36 | merged in trunk, resolved conflicts. file: b19110c11a check-in: [9128a3b5d8] user: stephan branch: core-prop-interceptors, size: 470343 | |
| 16:31 | removed an extraneous call which does the same thing as the thing which calls it. file: dcdd0aa024 check-in: [75f2be92ce] user: stephan branch: trunk, size: 465805 | |
|
2016-02-29
| ||
| 11:44 | os-x compile warning fix from Warren (his compiler is lying and/or misbehaving, though). Edit: okay, not lying, but performing an unexpected (to me) conversion from uint16_t to int. file: c5958941da check-in: [de4c5e6afe] user: stephan branch: trunk, size: 465857 | |
|
2016-02-28
| ||
| 13:55 | Refactored the vacuum-safe flag from cwal_obase::flags to cwal_value::rcflags. s2_eval_ptoker() now uses a Unique instead of an Array for keeping its pending result safe (this is slightly cheaper), but in theory we can factor out that middleman (first attempt failed, so fell back to the Unique as an easy workaround). file: fb58c30d89 check-in: [15092b9bd0] user: stephan branch: trunk, size: 465861 | |
| 11:26 | split off cwal_refcount_t from cwal_size_t so that we can eventually (if needed) up the refcounts+flags to 64-bits on 32-bit builds without increasing cwal_size_t (which would have a higher overall cost). Stole another (the 6th) refcount bit to allow us to move the vacuum-safe flag from containers to values. file: 4ea8898003 check-in: [6f574d3f55] user: stephan branch: trunk, size: 465745 | |
| 10:56 | merged trunk, resolved a conflict. file: 08229c15fc check-in: [08244059ce] user: stephan branch: core-prop-interceptors, size: 470361 | |
|
2016-02-26
| ||
| 15:47 | child-rescoping fix for tuples (assertion triggered). file: 930eab5b90 check-in: [0c897fd853] user: stephan branch: trunk, size: 465718 | |
| 14:57 | tuple docs and an iteration error check fix. file: 7835437e3f check-in: [3ceffbf8b9] user: stephan branch: cwal_value_pair, size: 465712 | |
| 13:12 | omg facepalm. The automatic resizing of hashes was losing their kvp flags. Thus scope storage failed to retain const flags only after having enough vars to cause it to resize. file: 26431203d2 check-in: [2ac9af21ff] user: stephan branch: cwal_value_pair, size: 465705 | |
| 01:25 | okay, got carried away: discovered that hashes as scope storage fail to trigger const violations on s2 assignments, at least in one of the unit tests (but not in the interactive shell, for reasons unknown). Too tired to debug it further now. file: 9834e2b1fc check-in: [42ddd6cf8c] user: stephan branch: cwal_value_pair, size: 464526 | |
|
2016-02-25
| ||
| 23:54 | minor tuple touchups. good night. file: 8e597b05e3 check-in: [fe58f61202] user: stephan branch: cwal_value_pair, size: 463629 | |
| 23:38 | changed tuple hashing to just use the ptr-hash instead of hashing all elements. We might want to revision that later for use with tuples as hash keys (for use in simulating sets via hash tables). Edit: nevermind: hash keys' hashes have to be constant, and tuples are not, so this is the right hash algo. file: 99f56a5684 check-in: [b8fcba87c5] user: stephan branch: cwal_value_pair, size: 463541 | |
| 23:15 | a small start on the CWAL_F_IS_VISITING transition to CWAL_RFC_IS_VISITING. file: db21713233 check-in: [1006c5a9dd] user: stephan branch: cwal_value_pair, size: 463418 | |
| 22:25 | cwal_value_may_iterate() now works for tuples. file: 70290a01b5 check-in: [efcb1523c8] user: stephan branch: cwal_value_pair, size: 463122 | |
| 22:18 | Added foreach() support for tuples, working like arrays. And stole another refcount bit to get the is-visiting flag for cwal_values (needed for tuples and uniques, though uniques don't currently use it (they really should)). So far 5 refcount bits stolen for flags. file: 3c561365c3 check-in: [515942ded1] user: stephan branch: cwal_value_pair, size: 463061 | |
| 21:42 | refactored pairs as tuples (fixed-length arrays). Still need to add foreach() support. file: ecbfbcc56d check-in: [5cc361ae64] user: stephan branch: cwal_value_pair, size: 462101 | |
| 19:25 | merged in trunk. file: 44efdc5464 check-in: [ec839ef681] user: stephan branch: cwal_value_pair, size: 461977 | |
| 17:12 | changed semantics of cwal_array_visit/visit2() when it comes to NULL entries (they are no longer skipped over, so that iteration can keep track of the indexes properly if it wants to, without having to jump through hoops to do so). file: a56bedba9e check-in: [8ecd168f4b] user: stephan branch: trunk, size: 455466 | |
|
2016-02-16
| ||
| 18:28 | i give up for tonight. file: 01122365ea check-in: [8bbe9797b9] user: stephan branch: core-prop-interceptors, size: 459520 | |
| 18:09 | i had a property setter interceptor working, then broke it, and am now too tired (and this machine has no debugger). Someone's getting cleaned up when they shouldn't, random crashes. To look at later. file: 584e0051fb check-in: [ef67b58df2] user: stephan branch: core-prop-interceptors, size: 459364 | |
| 14:37 | merged in trunk file: 98497073f9 check-in: [e5dfe6a291] user: stephan branch: core-prop-interceptors, size: 456584 | |
| 14:29 | merged in trunk file: a6058aa5da check-in: [7658116a71] user: stephan branch: cwal_value_pair, size: 461953 | |
| 12:11 | Got rid of cwal_unref_from(). s2 still works. file: 6698bf2fb4 check-in: [78bac73345] user: stephan branch: trunk, size: 455442 | |
| 10:45 | oops - enabled one of the #if's which allows th1ish to continue to work (it was disabled while testing yesterday). file: 52530de244 check-in: [71969d4b29] user: stephan branch: th1ish-R.I.P., size: 453868 | |
|
2016-02-15
| ||
| 19:49 | Added yet another marker (this one in the penultimate place: cwal_unref_from()) for a place which can be removed once we finally decide to get rid of th1ish. file: a53874a4db check-in: [aee732756b] user: stephan branch: trunk, size: 453868 | |
| 19:42 | Added a few markers in places which can be removed once we finally decide to get rid of th1ish. file: 5c9c3c2211 check-in: [555d3732b0] user: stephan branch: trunk, size: 453742 | |
| 19:37 | wrote what turned out to be a novella on plans for/thoughts on improving s2_estack to notably improve s2's internal value ref/unref handling (now that my understanding of the intricacies ref handling in the context of temp values, in particular in conjunction with string interning (or value interning in general), has finally caught up to the code\!). file: 7b407ba869 check-in: [dcf19ee9c8] user: stephan branch: trunk, size: 453512 | |
| 15:37 | added single highest-ever refcount to cwal_engine::metrics to help inform decision-making about hijacking more refcount bits for per-value flags. Currently 260-odd refs on s2's Object prototype in the s2 core unit tests. file: f7790efe5f check-in: [133d7cfdd9] user: stephan branch: trunk, size: 453340 | |
|
2016-02-13
| ||
| 22:54 | added a potential todo. file: 1d4ce4e2be check-in: [1b4862fe9f] user: stephan branch: trunk, size: 452704 | |
| 22:23 | typo/doc/capslock fixes. file: 199bfe9966 check-in: [f6dc886276] user: stephan branch: trunk, size: 452588 | |
| 19:22 | Minor tweaks to get it compiling (again) with CWAL_SIZE_T_BITS=16. file: 54a1e4e3f1 check-in: [6509fa8dd3] user: stephan branch: trunk, size: 452591 | |
| 18:55 | Replaced the remaining relevant cwal_obase::flags with cwal_value:rcflags (did indeed need all 4 bits, but freed up 3 cwal_obase::flags bits for potental later use). Pseudo-containers (namely CWAL_TYPE_UNIQUE) can behave sanely during cleanup. e.g., they now participate in the gc queue and cycle-breaking during cleanup. file: e29217b3a4 check-in: [c391d2ccce] user: stephan branch: value-refcount-flags, size: 452592 | |
| 17:39 | Renamed cwal_value::refcount to rcflags to ensure that there are no stray uses of it. file: acc2bd6cdf check-in: [79d6338ab2] user: stephan branch: value-refcount-flags, size: 450983 | |
| 17:25 | Initial refactoring for encoding a few bits of flags in cwal_value::refcount. Both th1ish and s2 tests pass with these changes, though we're internally encoding the refcount differently now. Initially 4 bits, but that will likely drop to 2. file: 6fd0dda919 check-in: [ac9cf983f2] user: stephan branch: value-refcount-flags, size: 450993 | |
| 16:00 | merged in trunk. file: ddc20f1322 check-in: [12de6a8d35] user: stephan branch: core-prop-interceptors, size: 448461 | |
| 15:59 | Merged in trunk, as it's about to get messy with planned internal refcount refactoring. file: 49bc5426d9 check-in: [da81a83408] user: stephan branch: cwal_value_pair, size: 453803 | |
| 15:53 | Worked around a scope-cleanup crash caused by a Unique-typed value containing cycles (same problem we saw with cwal_value_pair experimentation). This case is a good argument for stealing bits from the refcount for a couple internal cwal_value flags. file: 0e35174460 check-in: [e1076c4252] user: stephan branch: trunk, size: 447204 | |
| 05:32 | Minor metrics dump output addition (total refcount of all interned strings). file: 4ef7fcb439 check-in: [745f3a1f2c] user: stephan branch: trunk, size: 445463 | |
| 04:46 | Fixed an internal misuse of cwal_string::length (failed to strip flag bits) which caused an OOM error (tried to alloc a few gazillion bytes). file: 228fc0aac5 check-in: [93f5e8f467] user: stephan branch: trunk, size: 444729 | |
|
2016-02-12
| ||
| 14:04 | minor change to how cwal_weak_ref is freed/allocated, to make use of the chunk recycler. Minor doc tweaks. file: b7e58f10e6 check-in: [db36c3e32a] user: stephan branch: trunk, size: 444621 | |
| 01:09 | Added cwal_value_pair type, but shortcomings elsewhere make it clean up improperly when there's recursion involved (because it's not a full-fledged container, and is not privy to the cleanup treatment involved). Not sure if this is yet worth the hassle (and it asserts() now in s2 in very simple cyclic cases). They also can't be made explicitly vacuum-safe with the current code. file: b577515e0c check-in: [f505331bdb] user: stephan branch: cwal_value_pair, size: 451369 | |
|
2016-02-11
| ||
| 20:02 | merged in trunk. file: c9c6c4243a check-in: [66ba5effe5] user: stephan branch: core-prop-interceptors, size: 445853 | |
|
2016-02-06
| ||
| 19:07 | More hash experimentation. Found the worst hash ever. file: 7fb08dfbfc check-in: [655faf1704] user: stephan branch: trunk, size: 444596 | |
| 18:53 | More tinkering with the core string hashing algo. Found one which works a tiny tick better than FNV-1a in basic s2 tests. Minor metrics output addition. file: 4db9ad8f0d check-in: [85c4e2a579] user: stephan branch: trunk, size: 443834 | |
| 16:37 | Internal refactoring to how rescoping is handled to allow us to differentiate between is-rescoping and is-visiting. file: 44d9251d40 check-in: [9339197dd9] user: stephan branch: trunk, size: 441955 | |
| 12:51 | minor metrics output addition, enabled memchunk padding. file: ebc37bb086 check-in: [c49259a801] user: stephan branch: trunk, size: 440823 | |
| 12:06 | Refactored cwal_native_rescoper_f() into cwal_value_rescoper_f() and consolidated the cwal_native/cwal_function APIs for those. It was easier than expected. file: 1b782b9c20 check-in: [599e5b4b81] user: stephan branch: trunk, size: 440207 | |
| 11:48 | Added a rescoper to cwal_function's state, analog to cwal_native. Now to consolidate them using the newer interface. file: 34803ed642 check-in: [e2d831d607] user: stephan branch: trunk, size: 440243 | |
| 02:08 | Fixed a param of type char which should have been int (char is unsigned on some platforms). Minor internal commentary and tinkering. file: 7be3fbcbf3 check-in: [4f63014a31] user: stephan branch: trunk, size: 439670 | |
| 01:10 | Added integer values 2..10 to the built-in constants. The malloc difference in s2's unit tests is absolutely negligible (a small handful). Maybe we'll crank it up to 100 someday. file: 632af8e73e check-in: [7745e5b370] user: stephan branch: trunk, size: 439019 | |
|
2016-02-05
| ||
| 23:43 | Some experimentation with a different internal approach to property setting in some case (avoiding a second lookup). file: a5b549ddbe check-in: [09988759e5] user: stephan branch: trunk, size: 437268 | |
| 21:58 | fixed cwal_new_string() to work as expected when its argument starts with a NUL byte but has a positive length. file: 4128fe3265 check-in: [09c1d58eac] user: stephan branch: trunk, size: 435791 | |
| 20:17 | finally added String.replace() in s2. file: 85b5725656 check-in: [9254246116] user: stephan branch: trunk, size: 435728 | |
| 12:40 | Trying out my current understanding of refs vis-a-vis propagating return values. th1ish's ref handling is poor, though, so this breaks it. Maybe time to delete th1ish altogether (i would if it weren't for the demo CGI site). file: efc92e6980 check-in: [6e466bc44c] user: stephan branch: trunk, size: 435585 | |
|
2016-02-03
| ||
| 17:38 | Fixed cwal_hash cleanup to behave like objects/arrays wrt unhand vs unref when cleaning up entries which live in older scopes during the container's scope's finalization. Minor internal refactoring in prep for (potentially) trying (again) to sort cwal_obase-level properties to speed up searches a bit. file: ee886a40ea check-in: [f916a73ed7] user: stephan branch: trunk, size: 434992 | |
|
2016-02-02
| ||
| 19:29 | merged in trunk. file: fa11b4e10c check-in: [7c7c6b1e0f] user: stephan branch: core-prop-interceptors, size: 438663 | |
|
2016-02-01
| ||
| 18:33 | insignificant internal touchups. file: bcac2a6640 check-in: [052b0840a3] user: stephan branch: trunk, size: 437406 | |
| 18:02 | started adding some infrastructure to allow a cwal_engine to be marked as "dead", which basically means "in a debug build, it would have asserted by now, but this is not a debug build." When an engine is dead, it might have leaked memory to avoid manipulating memory which appears (to cwal) to have been corrupted or misused (99.9% of the time, unreferenced too many times). file: 6ac7dca52a check-in: [0ca7f73ed8] user: stephan branch: trunk, size: 437392 | |
| 17:03 | a proactive fix in cwal_unref() for a hypothetical condition involving manipulating/upscoping scope property storage containers from client code (s2 or th1ish). file: 8bf3cc5371 check-in: [b097caff96] user: stephan branch: trunk, size: 437435 | |
| 12:37 | facepalm. lol. good thing this was not an important piece of code. file: c470416bc5 check-in: [90e096d6a9] user: stephan branch: trunk, size: 435144 | |
|
2016-01-26
| ||
| 17:06 | more interning notes/warnings. file: a5115f2fd5 check-in: [48bf6eead2] user: stephan branch: trunk, size: 435144 | |
| 16:54 | found another instance of string interning screwing up client code by wiping values out from under it, added a couple assertions and halfway informative crash messages. file: 09bd91248f check-in: [1c111ca778] user: stephan branch: trunk, size: 434942 | |
|
2016-01-25
| ||
| 20:13 | consolidated some duplicate code. file: 95b17e320f check-in: [5be320aab0] user: stephan branch: trunk, size: 433786 | |
| 18:49 | experimenting with cwal scopes copying const-flagged vars from parent scopes when a local lookup fails, but this can change script semantics, namely typeinfo(islocal...) and declaration of locals with the same name after a higher-up one has been copied in. file: c2a060fbe3 check-in: [cb9e1ef96d] user: stephan branch: scopes-copy-consts-on-lookup, size: 436052 | |
|
2016-01-23
| ||
| 19:29 | disable cwal_prop_set() and friends when finalizing (can theoretically only be seen by clients in the context of a cwal_native/Native circular reference manipulated in the Native half's finalizer. file: ccbf0901a0 check-in: [18143f714e] user: stephan branch: trunk, size: 435239 | |
| 16:48 | added cwal_var_set_with_flags(). file: 47110fa206 check-in: [b3f8ba341e] user: stephan branch: trunk, size: 434814 | |
| 12:01 | minor semantics change in cwal_args_state() and cwal_function_state_get(). file: 3b29b6a0bf check-in: [6bbcd9bcef] user: stephan branch: trunk, size: 434582 | |
|
2016-01-22
| ||
| 15:25 | merged in trunk. file: e3e614e949 check-in: [e75bac64fb] user: stephan branch: core-prop-interceptors, size: 435801 | |
|
2016-01-21
| ||
| 21:41 | fixed a regression in cwal_var_decl() which allowed a variable to be declared more than once without error. Caused by the recent addition of hashes as scope-level property storage. file: 29ceb860d7 check-in: [dae15968d8] user: stephan branch: trunk, size: 434544 | |
| 09:06 | renamed cwal_hash_search_v_kvp() to cwal_hash_search_kvp_v() for consistency with recent similar changes. file: 0245d316c6 check-in: [aae2daf7a3] user: stephan branch: trunk, size: 434629 | |
|
2016-01-13
| ||
| 20:38 | some prep work for property interceptors experimentation. file: 442650ac46 check-in: [5983b9b959] user: stephan branch: core-prop-interceptors, size: 435886 | |
| 17:34 | moved some local vars around. file: 42570727d3 check-in: [69b672efc3] user: stephan branch: trunk, size: 434629 | |
|
2016-01-12
| ||
| 19:52 | tweaked cwal_value_hash_ptr(). file: 26945c68f5 check-in: [e49749bbad] user: stephan branch: trunk, size: 434601 | |
|
2016-01-11
| ||
| 18:29 | Added CWAL_VERSION_STRING config option and populate it from the fossil info if it is available. added --version option to s2sh. file: 0294337375 check-in: [035cefe320] user: stephan branch: trunk, size: 434530 | |
| 17:30 | added some comments about the workaround from the previous commit. re-enabled a chunk of s2 which triggered the problem. file: 9058aed737 check-in: [22b1da9ca8] user: stephan branch: trunk, size: 434243 | |
| 16:53 | added workaround: string interning no longer re-uses an interned string when a copy in the interning table has a refcount of 0. Interned values should now not introduce any weird/hard-to-find differences from other values. Incidentally also undid a recent code tweak which broke the cwal_value_unref() return value expectations. file: 32105cfc5b check-in: [da9d7bdceb] user: stephan branch: trunk, size: 433766 | |
| 16:14 | characterized/documented an inherent incompatibility with string interning and the use of temp values (specifically, strings, with a refcount of 0), in which a downstream call can (_seemingly_ legally) nuke a value created higher-up in the call chain, because string interning confuses the "real" ref count of temp values. Aha... there might be a workaround for this in interning itself (don't use interned copies if their refcount is 0). file: acb1e31cd6 check-in: [970642d496] user: stephan branch: trunk, size: 432996 | |
|
2016-01-10
| ||
| 14:37 | added cwal_memcap_config.forceAllocSizeTracking and the -fst/--fst flags to s2sh to toggle it. file: f4abe09a62 check-in: [d1f8344ad3] user: stephan branch: trunk, size: 432208 | |
| 05:43 | Changed how a ref is managed in cwal_hash_insert_with_flags(). file: 86f287f83c check-in: [be54ad2d8b] user: stephan branch: trunk, size: 431427 | |
|
2016-01-08
| ||
| 17:09 | large batch of tweaks, largely related to the hash-vs-objects work, but also an attempt at guaranteeing under/overflow behaviour on integer ops. file: b5464315b2 check-in: [4d688d1ffc] user: stephan branch: s2-scope-hashes, size: 431383 | |
| 14:55 | large batch of tweaks, largely related to the hash-vs-objects work, but also an attempt at guaranteeing under/overflow behaviour on integer ops. file: 4044c05986 check-in: [b79462d915] user: stephan branch: s2-scope-hashes, size: 430706 | |
| 01:59 | scopes seems to work with both hash and property storage. still doc cleanups to make and valgrind output to compare. bed time. file: f945c1524a check-in: [97b6c34301] user: stephan branch: s2-scope-hashes, size: 431000 | |
| 00:40 | most/much of the groundwork for making scopes be capable of using either objects or hashtables for property storage. file: 54ff2f7f29 check-in: [99e0b10067] user: stephan branch: s2-scope-hashes, size: 428355 | |
|
2016-01-07
| ||
| 19:19 | minor internal refactoring to facilitate scopes which can optionally use hashes instead of objects for property lookup. Also imposed string length limits, as too-big strings would overwrite the 2 bits of encoded data in cwal_string::size. Removed cwal_new_number(). file: 8b5872cc52 check-in: [bedc1cdb2a] user: stephan branch: trunk, size: 426366 | |
| 17:41 | minor internal commenting. file: f76cd124eb check-in: [1a452f999b] user: stephan branch: trunk, size: 426019 | |
| 14:56 | merged enum-with-value branch to trunk and extended cwal_array_index_of() to take a flag to control type strict/non-strict comparison. file: b3578d1f37 check-in: [1f2e988254] user: stephan branch: trunk, size: 424731 | |
|
2016-01-06
| ||
| 15:58 | expanded the cwal_next_prime() list a bit. file: c90bc93e0a check-in: [24483b6c83] user: stephan branch: enum-with-value, size: 424494 | |
| 15:15 | port cwal_hash_grow_if_loaded() and cwal_next_prime() from s2 into the core. file: b44659900b check-in: [cb58cd5a46] user: stephan branch: enum-with-value, size: 424447 | |
|
2014-12-20
| ||
| 10:44 | minor heuristic tweak in cwal_malloc2(). file: 22799607d4 check-in: [50fbcf8cc5] user: stephan branch: trunk, size: 422719 | |
|
2014-12-19
| ||
| 02:24 | added cwal_malloc2(), which first checks the chunk recycler, to enable a recycling optimization in Native implementations. file: 0939c48df5 check-in: [e58b15dc3f] user: stephan branch: trunk, size: 422189 | |
|
2014-12-17
| ||
| 22:12 | Minor const-related refactoring related to, and notes regarding, property accessor interceptors, which i would like to explore once the hand allows it. file: bea1f67823 check-in: [063462ebcd] user: stephan branch: trunk, size: 422098 | |
| 04:32 | core: internal refactoring to make Buffer Values containers, so they may now hold properties and be prototypes. It was much easier than expected to implement and the cost increase is negligible (48 bytes) in the amalgamated s2 unit tests. file: 13648a7025 check-in: [73df044fc1] user: stephan branch: trunk, size: 420119 | |
|
2014-12-16
| ||
| 20:19 | refactored cwal_value_native_part() to take an optional type ID, and (if not 0) return only on a match. Fingers have stopped working again, so this is it for a while :/. file: 48a71c396e check-in: [a4ab970b93] user: stephan branch: trunk, size: 420598 | |
| 19:22 | added missing total memory use constraint checks. file: 22960c9ec4 check-in: [33d4a0dd78] user: stephan branch: trunk, size: 420473 | |
| 17:40 | Added metrics for "slack" bytes recovered by the chunk recycler. file: 97461c082b check-in: [dc4ebce93d] user: stephan branch: trunk, size: 420043 | |
| 16:14 | more metrics dump prettification. file: cc6f9b1d2d check-in: [e0149376a0] user: stephan branch: trunk, size: 419586 | |
| 15:04 | core: when memory size tracking is on, make use of it in the chunk recycler to reclaim bytes which get sometimes get "truncated" during recycling of oversized chunks. file: d3ade57491 check-in: [9c7e086e74] user: stephan branch: trunk, size: 418792 | |
|
2014-12-15
| ||
| 18:43 | When running in over-allocating mode, disallow allocations >32 bits on 64-bit builds b/c the size counter is internally uint32_t for the time being (for the sake of 32-bit builds). file: 54dfd97875 check-in: [cc38a84bf8] user: stephan branch: trunk, size: 416891 | |
|
2014-12-14
| ||
| 20:57 | minor metrics fix. file: 59ca6dcd64 check-in: [8fcec39269] user: stephan branch: trunk, size: 416561 | |
| 15:12 | core: added optional allocation count/amount capping, in support of Caleb's site. Refactored the Unique type to act like a wrapper for a single value. My hand has had it - enough hacking for a good while :(. file: b5104b1af1 check-in: [8cb797fc88] user: stephan branch: trunk, size: 416560 | |
| 01:14 | minor refactoring of/additions to the hash API in prep for eventual additions in s2. file: f5f559d58a check-in: [e6829b71af] user: stephan branch: trunk, size: 411474 | |
|
2014-12-13
| ||
| 23:14 | Minor hash code calc change in the core, removed the comma from typeinfo(TAG EXPR), added unit tests for typeinfo. file: a83c88ebf4 check-in: [663f4dff66] user: stephan branch: trunk, size: 411052 | |
| 22:20 | After a 3.5-day Typing-Verbot, i exercised my hand implementing some low-hanging fruit in the s2 typeinfo keyword. Fixed a return type inconsistency in cwal_value_exception_part(). Some minor efficiency hacks in the cwal_value_XXX_part() routines. Added the missing cwal_value_object_part(). Now back to the Typing-Verbot. file: ae4d8a3835 check-in: [339cea5e4d] user: stephan branch: trunk, size: 411025 | |
|
2014-12-09
| ||
| 18:42 | Reverted the buffer realloc part of [8a4bd944bdca], as it causes +50-60 allocs in the s2 amalgamated unit tests. Once again, a hard lesson in over-optimization. file: b3f9eed84b check-in: [38f581b85a] user: stephan branch: trunk, size: 410762 | |
|
2014-12-08
| ||
| 20:40 | moved s2_refunref() to the core cwal_refunref() and reimplemented it there to be notably more efficient (since it has direct access to the internals). s2: caught another formerly stray temporary value in the short-circuiting logical/ternary ops. Allocs in the s2 amalgamated unit tests are up notably since yesterday (but still lower than last week) but my fingers are killing me so investigating why will have to wait. file: be09b68336 check-in: [5ebcca7477] user: stephan branch: trunk, size: 410570 | |
|
2014-12-07
| ||
| 09:35 | core: accounted for a NUL byte in z-string recycling, cwal_buffer_to_zstring() now shrinks its memory if it is "too big" (buffer recycling could give us a 20k chunk for what turns out to be a 50-byte z-string). file: bf474cf25c check-in: [8a4bd944bd] user: stephan branch: trunk, size: 410377 | |
| 04:29 | Migrated from using the result code CWAL_RC_ACCESS to CWAL_RC_IS_VISITING in many cases to avoid ambiguities in their interpretation in higher-level code. Cached a few more commonly-used strings. file: a56f26f632 check-in: [52824f4adc] user: stephan branch: trunk, size: 409884 | |
| 00:24 | cwal_props_clear() now honors CWAL_CONTAINER_DISALLOW_PROP_SET. Started marking places where CWAL_RC_ACCESS needs to be replaced with CWAL_RC_CONCURRENT_VISITS. file: de800d07a0 check-in: [aabeccc821] user: stephan branch: trunk, size: 410045 | |
|
2014-12-06
| ||
| 22:58 | metrics-related tweaks. file: 926732eecd check-in: [780d6a11c1] user: stephan branch: trunk, size: 409898 | |
| 20:33 | core: went ahead and added a numeric value to "unique" values, but its value is unspecified (except that it will be unique amongst all live unqique-type values). Change how uniques are compared (using their numeric value). file: 279e747fae check-in: [8d5f65f33a] user: stephan branch: trunk, size: 409943 | |
| 18:46 | Refactored cwal_printf_cstr() to use the cwal_engine allocator. file: 211f3b980c check-in: [9f0c85b080] user: stephan branch: trunk, size: 409230 | |
| 16:30 | core: more work on the various container flags, s2: more work on the enum keyword, other minor cleanups. file: dd78189b4a check-in: [8c61a703a0] user: stephan branch: trunk, size: 406894 | |
| 00:55 | minor chunk recycler optimization experiment. file: 804a904540 check-in: [42701dac86] user: stephan branch: trunk, size: 406404 | |
|
2014-12-05
| ||
| 22:44 | more work on the container flags, added a couple missing cwal_value_is_XXX() variants, minor API renamings. file: 155d604028 check-in: [38060dc5e9] user: stephan branch: trunk, size: 406132 | |
| 22:22 | core: removed obsolete/duplicated function, doc updates. file: 41b45798e7 check-in: [104ffccfd9] user: stephan branch: trunk, size: 406203 | |
| 21:47 | core: added an internal flag to cap single max alloc size. file: 2699691b8d check-in: [d850e44911] user: stephan branch: trunk, size: 406302 | |
| 19:49 | core: reimplemented cwal_value_upscope() with new semantics. Added the seemingly missing upscoping of prototype pointers. file: 2aa61e3a27 check-in: [3b90d0a7c8] user: stephan branch: trunk, size: 406373 | |
| 18:38 | compile fixes for non-debug builds. file: 9c2bd0de2d check-in: [6b170364c7] user: stephan branch: trunk, size: 405681 | |
| 18:11 | minor tweak to the chunk allocator (now allows chunks of one byte smaller). file: c9572cf7d6 check-in: [a0e3a37b18] user: stephan branch: trunk, size: 405390 | |
| 17:33 | Changes in semantics how cwal_prop_set() and friends report various cases, so that we can move some constraint checks into cwal, so that s2 does not have to do duplicate lookups to get the same feature. file: f91c5fb0e1 check-in: [6dbf89b73c] user: stephan branch: trunk, size: 405391 | |
| 13:05 | core: refactored the chunk allocator to remove all dynamic memory overhead plus all overhead related to the tracking of each chunk (it is now stored in the chunk itself). This means we can only recycle stuff larger than (sizeof(void*)+sizeof(cwal_size_t)), but we were doing that, anyway, except perhaps in some tiny buffer cases. file: 6a9b20c674 check-in: [435ccd17b7] user: stephan branch: trunk, size: 404253 | |
| 11:22 | metrics dump header fix for recycling bins. file: 44e782aa93 check-in: [6c301265d9] user: stephan branch: trunk, size: 409013 | |
| 01:31 | core: metrics tweaks. Fixed mis-recycling of cwal_weak_ref. Added new "unique" type for use as opaque sentry values and a sort of enum type. file: e535975c01 check-in: [d23084f162] user: stephan branch: trunk, size: 408979 | |
|
2014-12-04
| ||
| 21:55 | core: platform workaround for my ARM, which is bus-faulting on a particular deref of a static/const pointer. Accessing the same pointer via anoether route does not bus-fault it. file: 27874eafc2 check-in: [319b16b847] user: stephan branch: trunk, size: 407669 | |
| 19:31 | removed two now-redundant calls to the chunk recycler. file: 0b9d182bfd check-in: [ccab3e2a09] user: stephan branch: trunk, size: 407323 | |
| 17:47 | Minor internal cwal_array_set() optimization. file: 6cba82e0df check-in: [5d80eb7a5f] user: stephan branch: trunk, size: 407380 | |
| 15:42 | core: added a couple new memchunk metrics, disabled the memchunk recycler as the string recycling fallback because it is triggering a valgrind warning via memset() via cwal_value_new() - to be investigated later. file: c224374adb check-in: [0687ce7bc3] user: stephan branch: trunk, size: 407298 | |
|
2014-12-03
| ||
| 16:59 | Added cwal_hash_take_props() and s2.Hash.takeProperties(). s2.Hash.new(N) no longer modifies N to ensure it is prime. Fixed a redundant call to the chunk allocator. file: f7ceaaea0b check-in: [15810833d0] user: stephan branch: trunk, size: 406299 | |
|
2014-12-02
| ||
| 21:21 | core: added a todo. file: 857e64d001 check-in: [c4c02a716f] user: stephan branch: trunk, size: 402558 | |
| 18:36 | Added cwal_container_flags_set(), cwal_container_flags_get(), made some experimental tweaks to when containers use cwal_unref_from() during cleanup (only when their owning scope is being finalized). file: 098c7f8a12 check-in: [71b228faa9] user: stephan branch: trunk, size: 402129 | |
|
2014-12-01
| ||
| 21:48 | core: string allocation will now fall back to the memory chunk handler in some cases. file: 0e8714d522 check-in: [e87f73283e] user: stephan branch: trunk, size: 401217 | |
| 18:42 | checking in an experiment in sizeof(cwal_obase) to see how it affects ARM. file: e104adde3a check-in: [9e3cef307f] user: stephan branch: trunk, size: 399677 | |
|
2014-11-30
| ||
| 15:54 | Added cwal_free2() to potentially send memory to the recycler. file: 986f52cc9b check-in: [058951d311] user: stephan branch: trunk, size: 399448 | |
| 11:31 | added type information to the recycle bin metrics output, s/cwal_value_type_id_name/cwal_type_id_name/g file: 8bc7336f3e check-in: [5411fd86ba] user: stephan branch: trunk, size: 399243 | |
|
2014-11-29
| ||
| 20:59 | Factored out cwal_memchunk::left. 90% of the code was either setting it or just asserting that it was set. file: e162139af5 check-in: [3fc1976b1d] user: stephan branch: trunk, size: 396911 | |
| 20:31 | Moved cwal_engine::eWeak into cwal_engine::recycler, fixed consolidation of Value- with non-Value types in a single recycler: each recycler must be specific to a certain base type so that we can use the list-linking members to build the lists. file: 16051a4db4 check-in: [8ba45681a0] user: stephan branch: trunk, size: 398245 | |
| 17:17 | Added per-recycling-bin hit/miss counters. file: bb9141233c check-in: [520ed62f5d] user: stephan branch: trunk, size: 396779 | |
| 16:33 | more metrics-related tinkering. file: 8538ca43ee check-in: [624ffc5926] user: stephan branch: trunk, size: 396471 | |
| 15:11 | more work on the metrics, now recording value recycling hits/misses. file: 73811e51ae check-in: [61ab49b29e] user: stephan branch: trunk, size: 395065 | |
| 14:13 | core: Value recycling bins are now allotted by the size of the Value, so like-sized Value types get grouped. i.e. more effective use of the recycler. However, this does not jive with the per-type-based configuration of bin sizes, but is an overall improvement with no losers, so we'll find a different configuration mechanism. file: 8d1428f372 check-in: [97b8ce3372] user: stephan branch: trunk, size: 393914 | |
|
2014-11-28
| ||
| 20:11 | more minor metrics tweaks. file: f6c93deefe check-in: [03503303ef] user: stephan branch: trunk, size: 389031 | |
| 19:30 | more tweaking related to the new recycler bits. file: d162dffbcf check-in: [06df42034a] user: stephan branch: trunk, size: 388672 | |
| 15:28 | core: improvements in the chunk recycler, and more memory gets recycled. file: 26be69ed4f check-in: [a9a7aa2637] user: stephan branch: trunk, size: 387905 | |
| 01:07 | core: consolidated array/buffer memory recycling and made it usable for other purposes. Some types (hashes, z-strings) contribute to the recycling pool but do not yet draw from it. This cuts mallocs by just over 60 in the amalgamated unit tests, while costing minimal mangement memory (1-2k, allocated once). There is tweaking to be done and more stuff which can be recycled this way, but it's a promising start. Valgrind is happy. file: 3b9c035494 check-in: [94bd6ae976] user: stephan branch: trunk, size: 380348 | |
|
2014-11-25
| ||
| 16:29 | Minor but subtle semantics changes in cwal_function_call() and friends ("self" is now made vacuum-safe) and cwal_exception/propagating_set() (now uses unref instead of unhand when reseting/clearing the value). Accommodated that in s2/th1ish. Added cwal_utf8_char_next() utility function. In s2: started experimentation with the "new" keyword, but it is disabled and incomplete. Yeah, that is more than i wanted in this commit. file: 9b01d648ba check-in: [bd8ecee444] user: stephan branch: trunk, size: 369629 | |
|
2014-11-24
| ||
| 21:32 | core: fixed a bug in waiting in the handling of vacuum-proofing functions for the duration of their call. Cleanups related to the previous commit. file: 3f3edec55b check-in: [fd27a99b8a] user: stephan branch: trunk, size: 368838 | |
| 20:46 | core: minor internal tweaks in prep for some experimentation in s2 which will expose scope variable storage Objects to script code. cwal_function_call() now refs/unhands its result value (currently same effect as before, but to account for potential upcoming experimentation). file: b693662825 check-in: [d9d4be0daa] user: stephan branch: trunk, size: 368788 | |
| 16:33 | minor doc touchups. file: 165ada42b8 check-in: [cace68b3b6] user: stephan branch: trunk, size: 364269 | |
|
2014-11-21
| ||
| 12:36 | hashtable metrics tweaks. file: c7c2c58bca check-in: [a6ccf5847d] user: stephan branch: trunk, size: 364073 | |
|
2014-11-20
| ||
| 20:19 | Added cwal_first_1000_primes(). file: d3c63a084e check-in: [1ff9355f0d] user: stephan branch: trunk, size: 363557 | |
| 19:43 | Added cwal_hash_resize() and s2.Hash.resize(). file: f7b9550470 check-in: [75730700a6] user: stephan branch: trunk, size: 357237 | |
| 18:20 | trivial internal refactoring and docs. file: 890b1b54a4 check-in: [f31a261570] user: stephan branch: trunk, size: 354834 | |
| 18:13 | minor return-path reduction tweak. file: 1b899723f9 check-in: [c0051d3d47] user: stephan branch: trunk, size: 354582 | |
| 18:10 | const correctness tweaks. file: 4378fadf7a check-in: [43b97ba497] user: stephan branch: trunk, size: 354513 | |
| 18:06 | core: refactored cwal_hash so that we can resize hashtables (APIs for that still pending). Negatively affects alloc counts (currently +1 per table) but the Value part of the hash is now recyclable and the hash table memory is currently reusable as array list memory. file: 61d50c2e3c check-in: [310ba44db8] user: stephan branch: trunk, size: 354501 | |
|
2014-11-15
| ||
| 18:47 | core: 2nd half of the prop-search-while-visiting change. file: 9c367cc594 check-in: [1e84023da9] user: stephan branch: trunk, size: 353567 | |
| 18:10 | core: cwal_obase_search() now allows searching on a being-traversed container. Not sure why it was prohibited before. file: 101167de5f check-in: [3402366053] user: stephan branch: trunk, size: 353536 | |
|
2014-11-14
| ||
| 18:13 | added cwal_rc_str2(). file: 313f454032 check-in: [1d4b45a91f] user: stephan branch: trunk, size: 353505 | |
|
2014-11-01
| ||
| 14:36 | minor internal cleanups. file: dcc168c423 check-in: [6c80b0f90c] user: stephan branch: trunk, size: 353399 | |
|
2014-10-31
| ||
| 09:54 | clang warning cleanups. file: 0b572925e3 check-in: [e43eef1211] user: stephan branch: trunk, size: 353072 | |
|
2014-10-28
| ||
| 00:05 | minor internal cleanups and docs. file: 8b96214aa0 check-in: [bfd5737474] user: stephan branch: trunk, size: 353146 | |
|
2014-10-11
| ||
| 14:18 | inor portability fixes for building with CWAL_SIZE_T_BITS=16. file: 67c3731581 check-in: [8aead931ee] user: stephan branch: trunk, size: 352358 | |
| 11:43 | Tweaks to cwal_value_compare() when both values are numeric, so that (3<3.3) and (3!=3.3) are true even in an integer context. Changed a th1ish test broken by this. file: 0d8021325c check-in: [915dfc2d84] user: stephan branch: trunk, size: 351934 | |
| 08:47 | added cwal_engine_adjust_client_mem() so that clients can account (in some minimal way) for memory via cwal metrics. s2 now uses this to report stack token and script function memory. file: 41d040824b check-in: [8a484ca98c] user: stephan branch: trunk, size: 351623 | |
|
2014-08-31
| ||
| 10:56 | core: another string recycling size tweak, gives a tiny (under 1%) alloc reduction in s2 unit tests as well as saving about 600 bytes total mem. file: a268893800 check-in: [e154af2b91] user: stephan branch: trunk, size: 350893 | |
|
2014-08-30
| ||
| 05:28 | cwal_function_call_array() now allows a NULL array. file: 71de732954 check-in: [ea21a5da3e] user: stephan branch: trunk, size: 350834 | |
|
2014-08-29
| ||
| 12:08 | minor tweak to max recyclable string size, gives slightly better results on 64-bit, tiny peak increase, marginal malloc reduction. file: 6541f690bb check-in: [7c13a15c82] user: stephan branch: trunk, size: 350789 | |
|
2014-08-28
| ||
| 21:35 | minor doc and comment tweaks. file: 47f028194d check-in: [9cc9a32d91] user: stephan branch: trunk, size: 350414 | |
|
2014-08-27
| ||
| 07:27 | minor tweak to yesterday's fix, honoring the initial list size minimum (helps the recycler out). file: 540cc3ae1d check-in: [446b495cfc] user: stephan branch: trunk, size: 350399 | |
|
2014-08-26
| ||
| 20:54 | removed an assert added in the last round of bug-chasing. file: f8b7ef03c0 check-in: [e9a5b4f51f] user: stephan branch: trunk, size: 350323 | |
| 20:38 | Fixed an inexplicable brain-burp in cwal_array_set() which triggered a bogus OOM error when setting an array index >= CwalConsts.InitialArrayLength on an empty array, a corner case which was only found via dumb luck after hours of debugging, trial, and error. file: 57966020f0 check-in: [20f7ea2175] user: stephan branch: trunk, size: 350366 | |
|
2014-08-25
| ||
| 16:42 | minor cleanup and semantics change (extension) in cwal_value_prototype_set(). file: 1c3c1d2ca4 check-in: [de3c61a486] user: stephan branch: trunk, size: 350443 | |
| 15:30 | Deprecated cwal_args_callee_state(), as it's a functional dupe of (yet less efficient than) cwal_args_state(). file: 0bd2c5f454 check-in: [26f947ec9d] user: stephan branch: trunk, size: 350380 | |
|
2014-08-24
| ||
| 14:40 | minor informational tweak in cwal_dump_allocation_metrics(). file: 1ed653a971 check-in: [1da45cb231] user: stephan branch: trunk, size: 350287 | |
|
2014-08-23
| ||
| 15:51 | core: consolidate integers and doubles into one recycling bin where there sizeofs are the same. Have to check it in to try it out on the 32-bit box (where they differ). file: ee3e2dd059 check-in: [06a8a0df82] user: stephan branch: trunk, size: 350240 | |
|
2014-08-22
| ||
| 13:09 | typo file: e2f9c93710 check-in: [5972de16f6] user: stephan branch: trunk, size: 349586 | |
| 12:43 | core: tinkering with the buffer recycling algo. file: a8016a93c5 check-in: [3208b69997] user: stephan branch: trunk, size: 349586 | |
|
2014-08-20
| ||
| 21:14 | memory misuse fix for the buffer caching, caught by the libfossil bindings (and pinpointed by gcc's stack-smash protector). file: a254961b7d check-in: [9dba38f602] user: stephan branch: trunk, size: 349258 | |
| 18:08 | Minor touchups to the previous commit. file: c4a6404327 check-in: [35a020bb78] user: stephan branch: trunk, size: 348954 | |
| 16:13 | core: found another optimization, recycling cwal_buffer memory (5 buffers' worth) similar to how cwal_array list memory is recycled. In the s2 unit tests this reduces the aggregate alloc count by 3.5-9%, depending on their buffer usage, with the _potential_ for a higher peak usage of (sizeof recycled buffers), but that depends on how the app uses buffers. file: e1e0ad0d84 check-in: [1648e371e7] user: stephan branch: trunk, size: 348535 | |
|
2014-08-18
| ||
| 20:38 | minor internal tweak to cwal_array_shift(), doc touchups. file: 49ed8e7d46 check-in: [fcd9591170] user: stephan branch: trunk, size: 345164 | |
| 18:16 | core: swapped out string hash algo again. FNV-1a seems to give the best overall results so far, at least on 64-bit. file: 18f2473d5a check-in: [b86d09b1cf] user: stephan branch: trunk, size: 345066 | |
|
2014-08-17
| ||
| 17:09 | typo file: d5681d319f check-in: [f6f070b0e0] user: stephan branch: trunk, size: 344764 | |
| 11:26 | experimental tweak to kvp-set which appears to make no functional difference. file: 2921a22a89 check-in: [3edf547f3a] user: stephan branch: trunk, size: 344767 | |
|
2014-08-16
| ||
| 11:33 | Added cwal_props_count() and cwal_props_has_any(), plus s2 Object.isEmpty() and propertyCount(). file: 313d005334 check-in: [c95efcf86c] user: stephan branch: trunk, size: 344243 | |
|
2014-08-15
| ||
| 13:16 | added cwal_buffer_fill_from_filename2(), patched s2_eval_filename() to use it (to avoid hypothetical corner cases involving non-NUL-terminated X-/Z-strings). file: b1edcda697 check-in: [4c8879eff0] user: stephan branch: trunk, size: 343844 | |
|
2014-08-10
| ||
| 18:53 | Minor cleanups in error propagation in cwal_array_sort_stateful(). More work to do there and it seems to sort incorrectly at times. file: 7974a08be5 check-in: [2df8b807e0] user: stephan branch: trunk, size: 342923 | |
| 11:27 | doc updates. file: 3189eb49ca check-in: [70cfc14407] user: stephan branch: trunk, size: 342477 | |
|
2014-08-06
| ||
| 17:10 | fixed return index in cwal_array_index_of() when value==NULL. file: ce2f11972c check-in: [ee436d7317] user: stephan branch: trunk, size: 342257 | |
|
2014-08-05
| ||
| 17:10 | fixed a missing clearing of cwal_native::rescope_children which (justifiably) triggered an assertion in s2 code when a native was rescoped but it could not find its bound client-side part. file: 3c3f22bff4 check-in: [85b1c7157e] user: stephan branch: trunk, size: 342217 | |
|
2014-07-22
| ||
| 17:57 | minor internal efficiency tweak. file: 6f9bb6e331 check-in: [f541cd4d5e] user: stephan branch: trunk, size: 342113 | |
|
2014-07-18
| ||
| 13:44 | added cwal_buffer_to_zstring_value(), due to popular demand in client code. file: 18ef8ccba2 check-in: [f4705fd709] user: stephan branch: trunk, size: 342069 | |
|
2014-07-16
| ||
| 22:22 | core: popping the top-most scope now properly disconnects cwal_engine::prototypes, and will re-created it as needed. file: da526e97e9 check-in: [30fcf92b1d] user: stephan branch: trunk, size: 341931 | |
|
2014-07-09
| ||
| 15:48 | core: minor cosmetic metrics dump tweak. file: b8ad7111fc check-in: [ea1e56e3c6] user: stephan branch: trunk, size: 341369 | |
|
2014-07-07
| ||
| 21:22 | core: minor metrics dumps tweak. file: d8ca967606 check-in: [aaf8a5df0d] user: stephan branch: trunk, size: 341324 | |
|
2014-07-06
| ||
| 15:53 | core: minor metrics dump tweaks. file: 90f02995f0 check-in: [c913c665d7] user: stephan branch: trunk, size: 341296 | |
|
2014-07-05
| ||
| 10:59 | core: cwal_array_take(): replaced an old ugly refcount abuse the the formal mechanism for such abuse. file: 1989f22645 check-in: [d82ad21d69] user: stephan branch: trunk, size: 341189 | |
|
2014-07-04
| ||
| 20:51 | core: a minor optimization in one of the kvp search routines. file: a881595cd5 check-in: [a8897043c6] user: stephan branch: trunk, size: 341280 | |
| 15:13 | minor assertion improvement after triggering it via an s2 bug. file: c5260ca4eb check-in: [7407fd839c] user: stephan branch: trunk, size: 341196 | |
|
2014-07-02
| ||
| 22:24 | tweaked weak ptr table size again. file: 588d740dfe check-in: [cb2ccce9d9] user: stephan branch: trunk, size: 341170 | |
| 18:06 | core: added missing x/z-string to cwal_engine_recycle_max(). Comsetic metrics output tweaks. file: 96b78297f3 check-in: [464babc10e] user: stephan branch: trunk, size: 341169 | |
| 17:48 | Added cwal_hash_size(). file: 072b32b92d check-in: [3fd4fe9001] user: stephan branch: trunk, size: 340824 | |
|
2014-06-30
| ||
| 15:57 | Added cwal_prop_set_XXX_with_flags(), to support setting hidden properties from s2. Fixed a pointer misuse in cwal_value_may_iterate() which caused it to return unpredictable results. file: 0915092e70 check-in: [4434f6db64] user: stephan branch: trunk, size: 340744 | |
|
2014-06-29
| ||
| 14:14 | Tweaking of cwal_weak_ptr page sizes. Proactive range fix weak ref recycling. file: b58f42db33 check-in: [c12e7f860a] user: stephan branch: trunk, size: 340170 | |
| 13:33 | Appear to have fixed a ptr_table-remove bug caught by an assertion in a mis-cleanup situation. file: 6c6234f30d check-in: [b89eeb0831] user: stephan branch: trunk, size: 340141 | |
|
2014-06-28
| ||
| 15:32 | fixed a test broken by a recent change. Minor internal fix in cwal weak ref cleanup. file: 049fee7a40 check-in: [7f98a79b52] user: stephan branch: trunk, size: 340339 | |
| 13:47 | merged in the s2-semicolons branch. file: 81549c590b check-in: [9af1212295] user: stephan branch: trunk, size: 340312 | |
| 12:31 | minor vacuum tweak. file: af1df9ea21 check-in: [ed74bc8c9f] user: stephan branch: s2-semicolons, size: 340165 | |
| 10:59 | A fix for the two specially-propagating values in the face of a vacuum. file: b7290d74df check-in: [0362c958b3] user: stephan branch: s2-semicolons, size: 340063 | |
| 04:40 | Added cwal_json_output_opt::cyclesAsStrings, which causes cycles to be output as some debugging-only string representation, rather than causing an error. file: c8601b3adf check-in: [640531cd49] user: stephan branch: s2-semicolons, size: 339855 | |
| 02:20 | Fixed a major blunder in cwal_engine_vacuum(), which did not start gc-queuing mode when cleaning up the scope. 7 hours debugging that. Amazing this has not backfired until now, but it requires certain conditions before it trips up. file: a18e5772bd check-in: [e377a0525b] user: stephan branch: s2-semicolons, size: 339854 | |
|
2014-06-27
| ||
| 19:00 | Added cwal_kvp_flags_set(), for use in some upcoming s2 bits. file: 9c8226967a check-in: [14d18baad5] user: stephan branch: trunk, size: 339496 | |
|
2014-06-26
| ||
| 19:56 | improved an assertion triggered by an invalid unref in s2 code. file: 74ec443e13 check-in: [c993c23530] user: stephan branch: trunk, size: 339349 | |
|
2014-06-24
| ||
| 22:16 | re-introduced cwal_propagating_set() and friends, as a place to store a single auto-propagating value (both th1ish and s2 implement this themselves, but that's no longer needed). file: a4c13df62b check-in: [6a720a9358] user: stephan branch: trunk, size: 339231 | |
| 19:55 | minor doc/comment touchups. file: 21d936edf7 check-in: [ae9fdce53a] user: stephan branch: trunk, size: 338954 | |
|
2014-06-23
| ||
| 21:46 | minor cleanups file: 259241b670 check-in: [219ac05917] user: stephan branch: trunk, size: 338851 | |
| 19:53 | minor z-string metrics tweak: now assumes (and counts) a NUL byte (only for metrics purposes). file: a3cbce8d53 check-in: [df4c4776d1] user: stephan branch: trunk, size: 338749 | |
| 19:45 | cwal core: X- and Z-strings now participate in value recycling (in the same pool, b/c they have the same sizeof()). Only their "shells" recycle, not their string bytes. Fixed a char-should-be-int case which had not yet caused a problem. file: b37d96e995 check-in: [ec0d73eba5] user: stephan branch: trunk, size: 338564 | |
|
2014-06-22
| ||
| 08:51 | Added cwal_function_call_array(). file: 5a8e4f5e0a check-in: [519baf9738] user: stephan branch: trunk, size: 337598 | |
|
2014-06-21
| ||
| 21:19 | cwal_buffer_fill_from_FILE/filename() now try to pre-allocate the buffer based on the guessed size of the file (based on seek-probing), falling back to the default strategy. file: d7803f063b check-in: [5085bfa2c5] user: stephan branch: trunk, size: 337095 | |
| 20:05 | Added cwal_scope_search_kvp(). file: ab46c4047d check-in: [76860bb343] user: stephan branch: trunk, size: 336381 | |
| 14:46 | Removed a redundant cannot-happen block. file: 06c86180a7 check-in: [63a980a029] user: stephan branch: trunk, size: 335376 | |
|
2014-06-20
| ||
| 17:39 | Fixed string-request metrics miscounting when string interning is enabled. file: 0765dfbd4d check-in: [33cbbb8fbc] user: stephan branch: trunk, size: 335508 | |
|
2014-06-19
| ||
| 13:51 | Changed how cwal_engine manages its exception handle - it now takes uses ref/unhand, instead of not referencing at all. file: 1c5f7c8ceb check-in: [e801bfc408] user: stephan branch: trunk, size: 335404 | |
| 10:10 | bending around the s2 exception/error infrastructure a bit, in prep for throwing exceptions. file: f476ec7c70 check-in: [d7399dd09b] user: stephan branch: trunk, size: 336098 | |
|
2014-06-18
| ||
| 21:35 | fixed a thinking error in that last commit. file: 5f6a5e3975 check-in: [d9bc552399] user: stephan branch: trunk, size: 336038 | |
| 21:12 | changed semantics of explicit bool/string comparison so that (false==""). Does not seem to break any existing code. file: 832a61d795 check-in: [a3ad2000cf] user: stephan branch: trunk, size: 336005 | |
|
2014-06-15
| ||
| 19:41 | Seem to have gotten sweep-up working how i want it in s2. file: 3e51ccfc07 check-in: [2239164d8f] user: stephan branch: trunk, size: 335902 | |
|
2014-06-14
| ||
| 14:52 | changed the cwal_value_compare() semantics for NULL and UNDEFINED. Surprisingly, this does not break th1ish. file: d88500e40b check-in: [cd2897a4e5] user: stephan branch: trunk, size: 335897 | |
|
2014-06-13
| ||
| 18:59 | added cwal_container_part() file: 6c2d9666ef check-in: [d6def05713] user: stephan branch: trunk, size: 335400 | |
|
2014-06-11
| ||
| 20:27 | added cwal_value_unhand(). file: 9b85873797 check-in: [86085394ee] user: stephan branch: trunk, size: 335210 | |
|
2014-06-05
| ||
| 18:26 | minor internal cleanup. file: 6ce187830d check-in: [99b9b8dd8e] user: stephan branch: trunk, size: 334954 | |
|
2014-06-03
| ||
| 22:32 | Got some basic PoC in place for s2. file: cf41a6a7a7 check-in: [0e11ae0e16] user: stephan branch: trunk, size: 334947 | |
|
2014-05-16
| ||
| 21:22 | cwal_function_call_in_scope() now vaccuum- and sweep-proofs the function for the duration of the call, to avoid that a recursive cleanup potentially nukes an temp function called at its decl point. file: 9eced6b08a check-in: [25ee81e2ed] user: stephan branch: trunk, size: 334834 | |
| 19:00 | Fixed broken cleanup ordering in Natives (which i recently swapped), as this breaks natives which use their own properties in their cleanup (namely linenoiseish's auto-save-at-finalize). file: 8657a3c712 check-in: [242ab76d5d] user: stephan branch: trunk, size: 332677 | |
|
2014-05-14
| ||
| 20:41 | A round of cleanups, tweaks, and API renamings. Improvements in the ++/-- operators. file: d045851350 check-in: [6fca161343] user: stephan branch: trunk, size: 332303 | |
|
2014-05-12
| ||
| 21:00 | Minor semantics change for cwal_value_get_cstr() when value is a completely empty (no memory) buffer - now returns 0 instead of an empty string. file: cb5b730024 check-in: [1db9511921] user: stephan branch: trunk, size: 329922 | |
|
2014-05-11
| ||
| 15:22 | Minor internal touchups. file: 26c77941a0 check-in: [fb42f4b960] user: stephan branch: trunk, size: 329937 | |
| 12:05 | minor cleanups in the vacuum code. file: 2ae9c9fc77 check-in: [d37e7de872] user: stephan branch: trunk, size: 329868 | |
|
2014-05-10
| ||
| 19:24 | A round of doc additions and minor API renaming. file: cc4ba6877b check-in: [d4a56b1fb6] user: stephan branch: trunk, size: 329845 | |
| 19:07 | Added getter/setter for cwal_engine client data. Found, quite by accident, the 'dangling native' which was breaking vacuuming in th1ish (cwal_engine::prototypes). Vacuum now works in th1ish's global scope :-D. Valgrind agrees. file: 96146116a6 check-in: [961ce26847] user: stephan branch: trunk, size: 329841 | |
| 17:05 | And now the lower-level bits for Buffer.resize(). file: 7f29563b17 check-in: [a698f5f7b6] user: stephan branch: trunk, size: 329221 | |
|
2014-05-09
| ||
| 18:24 | Minor cleanups. Increased StringPadSize to 8, as this gives us a big boost in efficiency on large scripts. Once again removed the 'phantom ref' on interned strings. Improved api.ob API a bit by returning api.ob from the void-returning methods. file: 77b52d12dc check-in: [2c2187749f] user: stephan branch: trunk, size: 328569 | |
| 15:09 | reenabled an old assertion. file: 845b590af6 check-in: [05885cd8d9] user: stephan branch: trunk, size: 328187 | |
| 15:04 | minor internal tinkering. file: 28d6f2cbdf check-in: [98dee75be2] user: stephan branch: trunk, size: 328193 | |
| 11:31 | Found the hashing (int range) culprit which broke interning lookups. Other tweaking with vacuuming and interning. Added a kludge ++refcount on interned strings upon insertion to save them from vacuuming. i don't like that, but it does save memory. Switched string hash algos again. file: 702f22aa50 check-in: [a6668115e9] user: stephan branch: trunk, size: 327928 | |
| 10:38 | More work on vacuuming and related code. Discovered in the process that string interning is not hitting anywhere nearly as often as i really expect it to. file: 79e49019bc check-in: [a24cf62be2] user: stephan branch: trunk, size: 327734 | |
|
2014-05-08
| ||
| 23:41 | Refactored cwal_engine_vacuum() to... drum roll, please... no longer copy anything. It now only rescopes stuff, so no allocation needed, which means no error cases unless it detects memory corruption (assertion). file: 3c53218b22 check-in: [ae032f2d59] user: stephan branch: trunk, size: 328360 | |
| 23:13 | minor cleanups before larger changes. file: 5c6115eac4 check-in: [65535570a0] user: stephan branch: trunk, size: 329551 | |
| 23:04 | Started adding (untested, except that existing code/tests still work) infrastructure for making individual values, and those they reference, safe from vacuuming up. Intention: a way to make non-script-visible values safe from vacuum. file: 315f1a0050 check-in: [f5ae60cad0] user: stephan branch: trunk, size: 329580 | |
|
2014-05-07
| ||
| 19:29 | metrics output is now less cramped. file: ff1f0abada check-in: [2a5a4c7ff8] user: stephan branch: trunk, size: 326586 | |
| 19:01 | cwal_dump_allocation_metrics() now counts scopes differently (only allocated ones) because they skew the stats unduly (and unfairly ;). file: 44269054e7 check-in: [e4e693eb9f] user: stephan branch: trunk, size: 326574 | |
|
2014-05-06
| ||
| 20:54 | minor cleanups. removed some dead code. added some comments. file: 43cdf2badc check-in: [571cccbd37] user: stephan branch: trunk, size: 326089 | |
|
2014-05-05
| ||
| 22:23 | minor tracing message tweak. file: 3f02ae6eba check-in: [f97d4ed9e2] user: stephan branch: trunk, size: 325982 | |
| 19:38 | Vacuum now works as a drop-in replacement for sweep in th1ish :-D meaning that, in principle, it is (with proper script structuring) possible to create a leak-free, really-long-running scope, regardless of cycles. :-D! Interestingly, vacuum does not often catch more values than sweep, so it will be optimized to normally sweep, and replace every Nth sweep-up with a vacuum. file: 771bd0a749 check-in: [4ce80bab79] user: stephan branch: trunk, size: 325981 | |
| 18:06 | this variant of cwal_engine_vacuum() works for the first 3 th1ish unit test scripts, then falls apart somewhere, but is certainly better than the previous iteration. file: 07759d8973 check-in: [7a0a0b3e7a] user: stephan branch: trunk, size: 325350 | |
|
2014-05-04
| ||
| 12:36 | minor internal cleanups. file: 46787b7173 check-in: [4123cb68de] user: stephan branch: trunk, size: 325354 | |
| 11:07 | Added long-overdue cwal_buffer_clear() convenience function file: 192b593caf check-in: [4dd397b5b4] user: stephan branch: trunk, size: 325140 | |
|
2014-05-03
| ||
| 23:51 | more tinkering with cwal_engine_vacuum(). file: 12ca405d45 check-in: [0cad6273e0] user: stephan branch: trunk, size: 325037 | |
| 20:07 | Added cwal_prop_flags_v(), admittedly a quick-hack measure for th1ish which needs to be improved upon at some point. file: 3c1c567878 check-in: [73df633530] user: stephan branch: trunk, size: 325058 | |
| 19:35 | Added cwal_prop_take_v(), though it has kinda funny semantics for the key part. Was necessary for postfix obj.prop++/-- operators. file: b8c65e0614 check-in: [01628d5381] user: stephan branch: trunk, size: 324692 | |
| 16:28 | More tinkering with vacuum. It does horrible things to th1ish. file: 26a8da30c9 check-in: [93310a20c0] user: stephan branch: trunk, size: 323145 | |
| 15:35 | more work on vacuum. Seems it cannot be dropped right in to th1ish for reasons as yet determined but very possibly incompatibilities with vacuuming assumptions. file: c17ae319f8 check-in: [e276ed0f1d] user: stephan branch: trunk, size: 324073 | |
| 14:33 | Introducing cwal_engine_vacuum(), an experimental algo which cleans up all non-variable values which are themselves not reachable via variable refs/containers. Fixed two bogus assertions while doing so. file: 8f72c11b15 check-in: [8f455e260b] user: stephan branch: trunk, size: 323324 | |
|
2014-05-02
| ||
| 20:55 | minor change to cwal_array_index_of() semantics. file: 15799f9582 check-in: [761fa1bdb2] user: stephan branch: trunk, size: 320417 | |
| 17:41 | minor tweaks to the cwal_native bindings. file: 52240b6680 check-in: [7411d5518f] user: stephan branch: trunk, size: 320314 | |
| 13:21 | Added cwal_buffer_to_zstring(). Minor string hash tinkering. file: 8b1a401aff check-in: [88d8f96564] user: stephan branch: trunk, size: 320264 | |
| 09:38 | Added array list peak memory to the allocation metrics. Removed an old/arguable assertion which, for reasons completely inexplicable, is trigged only with this change. file: b298b12c90 check-in: [bc61ad3eb4] user: stephan branch: trunk, size: 318934 | |
|
2014-05-01
| ||
| 16:49 | Switched to FNV-1a hash for string hashing. file: 43c1cb19c5 check-in: [e3fa91abaf] user: stephan branch: trunk, size: 318169 | |
| 16:33 | minor metrics-related tweaks. Now count scope_push() as a scope alloction request. file: fce8315f74 check-in: [1d9683743e] user: stephan branch: trunk, size: 317492 | |
| 14:21 | Now tracks cwal_buffer_reserve()d memory via the metrics counter, recording only the peak capacity of any given buffer. file: 4d1d8b93a1 check-in: [7349e44714] user: stephan branch: trunk, size: 315799 | |
| 14:05 | minor internal cleanups. file: 67393b3b07 check-in: [b869fcd158] user: stephan branch: trunk, size: 315735 | |
|
2014-04-30
| ||
| 20:51 | improved the allocation metrics dump output a bit, adding percentages. file: 4fee6c1ae3 check-in: [cedeb7b5b1] user: stephan branch: trunk, size: 315666 | |
| 20:06 | Tweaked string interning table size. Does not affect memory usage of the th1ish unit tests in 64-bit mode and is now the same value on both 32/64-bit platforms. file: f484f8851b check-in: [880482bdb9] user: stephan branch: trunk, size: 314644 | |
|
2014-04-27
| ||
| 10:40 | Expanded the allocation metrics dump to include interned string and weak ref tables. file: 4ce4a8b950 check-in: [0b3097482a] user: stephan branch: trunk, size: 314539 | |
|
2014-04-26
| ||
| 20:23 | minor tweaks to allocation report output. file: e1312d104b check-in: [6309f987ed] user: stephan branch: trunk, size: 313580 | |
| 19:42 | improved allocation metrics a bit. file: d906ff7e9f check-in: [36fb4ce9a3] user: stephan branch: trunk, size: 313267 | |
|
2014-04-25
| ||
| 23:12 | added some internal comments. file: 4a4fc5519a check-in: [bced5153b5] user: stephan branch: trunk, size: 310240 | |
| 19:57 | A fix for the Array.sort(Function) two-entry array case. file: d64fb64a86 check-in: [c1024efd40] user: stephan branch: trunk, size: 310016 | |
|
2014-04-20
| ||
| 18:59 | okay, this branch has broken th1ish in ways i cannot explain and i am too tired to fight with it. Shelving this for the time being. file: bf9759b72a check-in: [aacb2e833c] user: stephan branch: new-string-length, size: 310850 | |
| 13:50 | Started re-doing the semantics for the length param to cwal_new_string() and friends, to something easier to use downstream. Breaks semantics in lots of th1ish code. file: 6f4a03c8d5 check-in: [b0dee8928f] user: stephan branch: new-string-length, size: 310492 | |
| 13:05 | A big around of minor tinkering and cleanups. file: c8a31b4e06 check-in: [41d834342c] user: stephan branch: trunk, size: 309740 | |
|
2014-04-19
| ||
| 12:39 | added long-missing cwal_strlen(). file: 9b9546bd2e check-in: [0222186bbf] user: stephan branch: trunk, size: 310460 | |
|
2014-04-17
| ||
| 19:09 | Added allocation metrics tracking cwal_engine. Added -metrics flag to the th1ish shell to dump them out. They do not tell 100% of the story but are interesting nonetheless. file: c707fa49e1 check-in: [65cbcfd22a] user: stephan branch: trunk, size: 310364 | |
| 16:56 | Another round of minor cleanups and doc improvements. file: 69060c79b2 check-in: [66b65cb7ff] user: stephan branch: trunk, size: 308381 | |
|
2014-04-13
| ||
| 15:31 | minor internal cleanups. file: 76022b9234 check-in: [54972639a8] user: stephan branch: trunk, size: 306067 | |
|
2014-04-10
| ||
| 16:23 | Changed cwal_engine_init() semantics to require client to call cwal_engine_destroy() regardless of success or failure so errors info can be propagated. Another round of minor cleanups, docs, and commenting. file: 10fc08415d check-in: [4f0da73e06] user: stephan branch: trunk, size: 305453 | |
|
2014-04-04
| ||
| 10:34 | Fixed signed/unsigned comparison warnings, which apparently do not show up without -Wsign-compare. file: f581caf450 check-in: [c256618440] user: stephan branch: trunk, size: 304309 | |
|
2014-03-07
| ||
| 18:56 | Changed hashes again. file: aa4d44568f check-in: [e421f08ab1] user: stephan branch: trunk, size: 304294 | |
| 18:13 | Changed hash routine used for string interning. file: 77942908dd check-in: [0801afff42] user: stephan branch: trunk, size: 304149 | |
| 16:59 | Removed some dead code. Added some more. file: eee181adf4 check-in: [44bd21d624] user: stephan branch: trunk, size: 304149 | |
| 15:57 | Another tweak to the refcounting (or not) of interned strings. Moved determination of whether a given string is internalizable to a predicate function the cwal_engine_vtab interface. The default impl behaves as before. th1ish adds its own impl which basically limits interning to very short strings an arbitrary identifiers. file: 803e881182 check-in: [7588890cb3] user: stephan branch: trunk, size: 303907 | |
|
2014-03-04
| ||
| 13:51 | Added cwal_array_index_of() and Array.indexOf(). file: e7c8482027 check-in: [54039517f2] user: stephan branch: trunk, size: 302967 | |
|
2014-03-02
| ||
| 10:16 | minor internal cleanups. file: c406a1b616 check-in: [8d9f762d8f] user: stephan branch: trunk, size: 302459 | |
|
2014-02-28
| ||
| 20:41 | minor optimizations and tweaks. print() and api.io.output() now outputs Buffers as their content instead of a type@ptr string. file: 6d84083b81 check-in: [9cc51aba6e] user: stephan branch: trunk, size: 302455 | |
|
2014-02-27
| ||
| 21:22 | fixed an unused var for non-tracing builds. file: 2c1841ac7e check-in: [5dfd7a164d] user: stephan branch: trunk, size: 302416 | |
| 20:40 | minor internal cleanups and one optimization which cut 5.thish's mallocs down by almost two order of magnitude :-D. Happy accident, actually, but the reason for it is clear - mallocs are down notably across the board for all test scripts. file: a69000a4d3 check-in: [6321c72aba] user: stephan branch: trunk, size: 302305 | |
| 18:35 | Added cwal_callback_hook and friends, and refactored th1ish to inject its argv/this vars from there. This generically fixes the problem of this/argv/argv.callee resolving to one from a higher-up callback. Removed the workaround added for this yesterday. file: 5e7d0d356e check-in: [4ea181bb5d] user: stephan branch: trunk, size: 302257 | |
|
2014-02-26
| ||
| 23:07 | fixed a slightly wrong assertion. file: 7f9f30f8e8 check-in: [db8d1e8273] user: stephan branch: trunk, size: 301486 | |
| 22:45 | moved th1ish_inject_callback_argv() into public th1ish API (will need it elsewhere), some const correctness fixes in the core API. file: 8b39fd2d1e check-in: [f71379525b] user: stephan branch: trunk, size: 301465 | |
|
2014-02-25
| ||
| 18:10 | Fixed a problem in cwal_array_take() which caused it to not take built-in values. Doc update. file: a0f0c3f794 check-in: [c59879843c] user: stephan branch: trunk, size: 301451 | |
| 15:58 | Added cwal_props_sort() and Object.sortProperties() binding. file: 35731ca641 check-in: [bc29f58ba4] user: stephan branch: trunk, size: 301119 | |
|
2014-02-24
| ||
| 22:20 | fixed an off-by-one in the cwal_array_copy_range() fix. file: d428c81415 check-in: [41b5535a45] user: stephan branch: trunk, size: 299553 | |
| 20:59 | Fixed cwal_array_copy_range() (and thus Array.slice()) to work as advertized. Fixed a wrong assumption (assertion) in Array.shift() binding. file: 051e95dae0 check-in: [02490653cf] user: stephan branch: trunk, size: 299556 | |
| 20:00 | Added cwal_array_take() and changed cwal_object_take() to reprobate (instead of transfer reference ownership) if needed because that's the only way to provide the client with sane return mechanism. Added Array.pop() binding. file: 18ce6225e6 check-in: [d1ed6fc7da] user: stephan branch: trunk, size: 299447 | |
|
2014-02-19
| ||
| 18:31 | Removed an extraneous rescoping of a re-used interened strings. Added yet more comments to the interned strings notes. file: 1653582f70 check-in: [a98e648aaf] user: stephan branch: trunk, size: 298591 | |
|
2014-02-15
| ||
| 18:37 | cwal_new_zstring() now no longer clones empty strings. file: b30716df72 check-in: [2a469fd15d] user: stephan branch: trunk, size: 298135 | |
|
2013-09-09
| ||
| 17:12 | minor doc update file: 29d0c0c18c check-in: [db4ff0d9fb] user: stephan branch: trunk, size: 297952 | |
|
2013-09-03
| ||
| 09:08 | cwal_value_compare() for two buffers now uses memcmp() semantics. file: dd11fe4cb7 check-in: [825c349517] user: stephan branch: trunk, size: 298182 | |
|
2013-08-07
| ||
| 22:20 | another round of warnings which refuse to show up in this tree. file: 44a4eeb7ba check-in: [1f300807c9] user: stephan branch: trunk, size: 297346 | |
| 22:14 | Fixed compile warnings which for some reason do not show up when i compile in this tree, but do in another. Weird. file: 7e60a7e2b3 check-in: [591d051369] user: stephan branch: trunk, size: 297339 | |
|
2013-07-27
| ||
| 15:06 | cwal_value_clone2() now deeply clones Buffers. file: b80e86a6ec check-in: [e201868761] user: stephan branch: trunk, size: 297328 | |
|
2013-07-22
| ||
| 21:15 | fix an endless loop case in cwal_value_derives_from(). file: 1174fd7f75 check-in: [d9008c02a7] user: stephan branch: trunk, size: 296953 | |
|
2013-07-21
| ||
| 18:26 | Added Object.toJSONString(). Still missing overridable toJSON() support. Moved th1ish_value_XXX_part() to cwal_value_XXX_part(). Added String.applyFormat(). file: 6cd1479eb6 check-in: [77d1757a8b] user: stephan branch: trunk, size: 296782 | |
|
2013-07-20
| ||
| 14:36 | Optimized string recycling to re-use strings based on a first-close-fit algorithm (was exact-fit). This cuts mallocs in the th1ish test scripts anywhere from a few percept, up to 36%. file: 5b6d890ef3 check-in: [9ee156625d] user: stephan branch: trunk, size: 294345 | |
| 12:42 | Minor refactoring of cwal_value_prototype_get() and friends. file: 9efa1ce3ae check-in: [8bf2f71a4e] user: stephan branch: trunk, size: 291992 | |
| 11:04 | cwal_value_get_cstr() now also treats buffers as strings. file: 2784b63e3d check-in: [89039d20a7] user: stephan branch: trunk, size: 291272 | |
|
2013-07-19
| ||
| 11:41 | Added cwal_engine_type_name_proxy() and friends and tweaked th1ish to use it. file: 2615c349eb check-in: [aa092439d4] user: stephan branch: trunk, size: 290956 | |
| 11:09 | More work on buffer formatting. cwal_prop_xxx() and friends now have a const-correct container parameter. file: f486c1a1c5 check-in: [9557396db3] user: stephan branch: trunk, size: 290308 | |
|
2013-07-14
| ||
| 01:29 | Ported in some utility code from cson (namely cwal_prop_get_sub() and friends). file: 7fbb5b15f0 check-in: [ee67dca8e2] user: stephan branch: trunk, size: 290191 | |
|
2013-07-12
| ||
| 18:42 | Ported in basic JSON parsing functionality from libcson. Added th1ish api.json.parse(). file: db41caa530 check-in: [5b1b80dda0] user: stephan branch: trunk, size: 287294 | |
|
2013-07-11
| ||
| 15:51 | Added very primitive recycling of the lists which back Array values. This cuts alloc count anywhere from about 1 to 7 percent in the current th1ish test scripts. file: 8b94e389a8 check-in: [491ad36c59] user: stephan branch: trunk, size: 286895 | |
|
2013-07-07
| ||
| 16:22 | Changed signature of cwal_buffer_fill(). file: a43db64a24 check-in: [6bd4212d3f] user: stephan branch: trunk, size: 285550 | |
|
2013-07-05
| ||
| 23:23 | Much tinkering with the weak references support. Refcounted them and share all instances pointing to the same memory. Most of this is untested, though (no use case yet :/). Added APIs for (un)registering client-side memory for weak referencing. file: dbfb68b9d4 check-in: [e0e531af6d] user: stephan branch: trunk, size: 285541 | |
| 18:50 | Fixed a potential orphaning corner case in cwal_array_shift(). file: 492a0a81d1 check-in: [34cd72d7e5] user: stephan branch: trunk, size: 283213 | |
| 17:43 | Truly pedantic cleanup. file: f031657138 check-in: [191b50dc48] user: stephan branch: trunk, size: 282695 | |
| 16:29 | Added cwal_new_number(). file: 0bd40b3447 check-in: [270172fac8] user: stephan branch: trunk, size: 282641 | |
|
2013-07-04
| ||
| 18:30 | Experimenting with accessor interceptors, but this is not quite the way there. file: b01641a96c check-in: [5299a543a6] user: stephan branch: accessor-interceptors, size: 284323 | |
|
2013-07-03
| ||
| 19:30 | added experimental/broken cwal_engine_sweep_non_vars(). Does not work right but want to play with it later. file: af063a804f check-in: [cdec608b94] user: stephan branch: trunk, size: 282393 | |
|
2013-07-02
| ||
| 17:06 | doc/assertion additions. file: a8af4350f9 check-in: [6963074e47] user: stephan branch: trunk, size: 280679 | |
| 16:38 | Implemented recycling of cwal_weak_ref. file: 0d6fef6a75 check-in: [51dff05fca] user: stephan branch: trunk, size: 279976 | |
| 15:14 | Tweaking the weak ref support. file: 7599b8c18b check-in: [6c85df8cb2] user: stephan branch: trunk, size: 278478 | |
| 14:04 | Added weak value reference support. This allows, e.g., N bound natives with mutual relationships to safely figure out if the other endpoint has been destroyed. file: 8e26f22498 check-in: [fab8ad55e3] user: stephan branch: trunk, size: 276070 | |
|
2013-07-01
| ||
| 22:11 | Introducing z-strings (similar to x-strings except that cwal owns their memory). This cuts the cost of th1ish's slurpFile() function by half because it removes an extra copy. Increased cwal_buffer_fill_from() buffer to 4kb to reduce the number of reallocs(). file: a909e307ad check-in: [8c04f5388e] user: stephan branch: trunk, size: 270043 | |
| 17:31 | Added (several prototypes).compare(). Added shell_extend.c as an easy way for clients to install their own script-side functionality into the default shell app. file: 163aca8282 check-in: [91250213b2] user: stephan branch: trunk, size: 268882 | |
| 16:24 | Expanded the function/args-state APIs a bit. Used them to implement Function.sourceInfo() type-safely. file: 7e70bc005c check-in: [5f7fe4b6bc] user: stephan branch: trunk, size: 268833 | |
| 15:37 | Revamped cwal_new_function() and friends to take a type ID tag for the state parameter, to safify some of the current casting, enable 'multiple-context' callbacks, and a couple other minor things i would like to try out. file: 524e1a8d18 check-in: [cb4072639e] user: stephan branch: trunk, size: 268391 | |
|
2013-06-30
| ||
| 16:05 | Minor code reorg. file: 2448913634 check-in: [aa478564b2] user: stephan branch: trunk, size: 267917 | |
| 15:45 | Scope property objects now get their prototype removed so that they do not resolve members of the prototype via variable resolution. file: 2c4c22e188 check-in: [56974219ac] user: stephan branch: trunk, size: 267876 | |
| 12:24 | Changed return type of cwal_scope_properties(). file: e3add04dcf check-in: [fcdf9c23b7] user: stephan branch: trunk, size: 267187 | |
|
2013-06-29
| ||
| 14:19 | Added cwal_outputer::flush() and cwal_output_flush(). file: 4f68b89dc9 check-in: [ece45b44c4] user: stephan branch: trunk, size: 267218 | |
| 11:34 | Added cwal_parse_argv_flags(). file: 331b45b592 check-in: [882dfc6d7c] user: stephan branch: trunk, size: 266789 | |
|
2013-06-28
| ||
| 23:48 | moved an assert. file: c6374be9f1 check-in: [66c27e2e54] user: stephan branch: trunk, size: 263479 | |
|
2013-06-27
| ||
| 17:56 | Added cwal_prototype_base_set/get() and started rewiring th1ish to use it. file: c3cd4972aa check-in: [1771a58344] user: stephan branch: trunk, size: 263479 | |
|
2013-06-24
| ||
| 10:35 | Moved the generated cwal_list code into the main API so i can re-use it in th1ish. file: 8fe5988919 check-in: [fb3224f152] user: stephan branch: trunk, size: 260980 | |
|
2013-06-22
| ||
| 23:16 | Added cwal_native_clear(). file: 2e5f551fdc check-in: [8333211602] user: stephan branch: trunk, size: 258552 | |
|
2013-06-21
| ||
| 20:31 | fixed c99ism. file: 1cdb40ae17 check-in: [7c4fbde061] user: stephan branch: trunk, size: 258166 | |
| 18:51 | insignificant internal cleanups. file: 8873e01061 check-in: [66a69588a5] user: stephan branch: trunk, size: 258155 | |
|
2013-06-20
| ||
| 16:21 | More of the container functions now fail with CWAL_RC_ACCESS when called during traversal of the container. file: 4383a1fad4 check-in: [801932bb85] user: stephan branch: trunk, size: 257979 | |
| 15:21 | const-declared scope vars now ignore an assignment-to-self to simplify some client-side code. file: ea327d9d7a check-in: [f4f9b57191] user: stephan branch: trunk, size: 257630 | |
|
2013-06-19
| ||
| 16:38 | Fixed an argument-handling-related memory corruption case caused by a well-intentioned optimization (which was just removed). This also fixes the bug that returning argv from a function lead to unexpected results (empty array). file: 2717721d93 check-in: [90aad2442f] user: stephan branch: trunk, size: 257062 | |
|
2013-06-18
| ||
| 15:38 | cwal_value_prototype_set() no longer allows (what it can recognize as) cycles between the child and its prototype. file: e176ebf1a5 check-in: [69ab011467] user: stephan branch: trunk, size: 256933 | |
| 11:43 | More re-working of cwal_value_clone() and friends. file: 1d89ccbeb3 check-in: [9fd33ca240] user: stephan branch: trunk, size: 256677 | |
|
2013-06-17
| ||
| 20:27 | Minor internal defensive hack. file: 5ef7f5deda check-in: [29aac3c628] user: stephan branch: trunk, size: 256422 | |
| 16:42 | Started work on adding an option to disable doubles in cwal. It basically just changes cwal_double_t to be cwal_int_t. file: 97fa6e14df check-in: [264317163d] user: stephan branch: trunk, size: 256387 | |
|
2013-06-16
| ||
| 12:53 | Added cwal_hash_clear(). file: a0b90b1ef6 check-in: [b1cc0ee1ce] user: stephan branch: trunk, size: 255632 | |
| 11:57 | Fixed: buffers now also evaluate to true in a boolean context. file: 22f6beb886 check-in: [00d2d3851b] user: stephan branch: trunk, size: 255142 | |
| 11:39 | Fixed: the newer container now evaluate to boolean true. file: 1bd80876c0 check-in: [278f121614] user: stephan branch: trunk, size: 255067 | |
| 06:18 | Added cwal_array_copy_range() (a.k.a. slice). file: 1fb046c06f check-in: [071c1cef8d] user: stephan branch: trunk, size: 255257 | |
| 04:15 | Added cwal_array_shift(). file: 91ffa7176b check-in: [8e4d80789d] user: stephan branch: trunk, size: 254359 | |
| 02:32 | Fixed an inconsistency of cwal_scope_properties() vs cwal_scope_init_props(). Minor doc tweaks. file: d6a4ae3ba1 check-in: [63caeada6c] user: stephan branch: trunk, size: 252684 | |
|
2013-06-15
| ||
| 15:25 | minor cleanups file: ae69872c9d check-in: [6465552570] user: stephan branch: scope-hash, size: 255327 | |
| 15:18 | Switched cwal_scope::props from object to hash. Not sure i am willing to pay the memory cost, though. file: 88818a0d97 check-in: [931fbcca46] user: stephan branch: scope-hash, size: 255172 | |
| 12:41 | cwal_hash_insert/remove() now fail with CWAL_RC_ACCESS if called while iterating over the table. file: 8a07d2b48c check-in: [9e0415bcd6] user: stephan branch: trunk, size: 253131 | |
| 11:58 | Fixed bugs in cwal_hash search which caused it to not communicate left-hand chain member, which lead to broken linking on hash collisions. file: 94b840447f check-in: [7374119631] user: stephan branch: trunk, size: 252709 | |
|
2013-06-14
| ||
| 17:21 | added cwal_value_may_iterate(). file: 792dd4c884 check-in: [292db68d9a] user: stephan branch: trunk, size: 253041 | |
| 14:27 | And more tinkering with hashes. file: 0627687e82 check-in: [f7e6535b53] user: stephan branch: trunk, size: 252756 | |
| 13:35 | More work onthe hashtable. file: d65ede6cf1 check-in: [77a8222358] user: stephan branch: trunk, size: 252617 | |
| 12:09 | More tinkering with the hash table. file: a3889c1491 check-in: [fc25158582] user: stephan branch: trunk, size: 248687 | |
|
2013-06-13
| ||
| 23:54 | Added prototype/experimental hashtable support to th1ish. Had to uplift some static cwal funcs into cwal_internal.h to do it. Finally tested ability for Natives to rescope their children (and discovered the problems involved). Hashtables still triggering at least one outstanding re-parenting/lifetime-related assertion in some script constructs. file: 2a3ddfe6d7 check-in: [670a0ad9c5] user: stephan branch: trunk, size: 240828 | |
|
2013-06-12
| ||
| 16:04 | Added cwal_array_sort_stateful() and friends. file: 66af6ebdb8 check-in: [3927173367] user: stephan branch: trunk, size: 241242 | |
|
2013-06-11
| ||
| 12:38 | Sometimes i hate printf. 32/64-bit compatibility fix. file: 60cb0d0e31 check-in: [7d9b4f2ee4] user: stephan branch: trunk, size: 237389 | |
|
2013-06-10
| ||
| 21:24 | Added integer -1 and double -1.0 to the list of built-in constant values because they appear so often in script code. file: 45e7d2e146 check-in: [54989ac4fa] user: stephan branch: trunk, size: 237396 | |
| 20:46 | Removed some old comments and a stray debug message. Tweaked size of string interning table size again. Cleaned up the main test app a bit. file: eb6a4baf0b check-in: [0c0a865f24] user: stephan branch: trunk, size: 237004 | |
| 20:03 | Fixed inconsistent orderings in cross-type value comparisons. Fixed a huge bug in the new cwal_ptr_table linked list which caused several megabytes of tables to be allocated (one per string). file: 85e51f5047 check-in: [f4773da793] user: stephan branch: trunk, size: 237265 | |
| 17:25 | Fixed a bug in the ptr_table remove-entry op which traversed tables unnecessarily. Renamed cwal_interned_search_v() to cwal_interned_search_val() file: 8ec4e2df6d check-in: [11ea684831] user: stephan branch: trunk, size: 236296 | |
| 17:14 | Refactored cwal_ptr_page to a linked list and replaced cwal_ptr_table::pages (type=cwal_list) with that linked list. Saves a small tick of memory when interning strings, removes several potential malloc error cases (on OOM), and has the same performance characteristics as before. file: 46bebcdf9a check-in: [823220ffed] user: stephan branch: trunk, size: 236326 | |
| 15:24 | Added cwal_array_reverse(). cwal_array_sort() now fails if called while the array is being visited/traversed. Doc additions. file: 03190aa81f check-in: [8079c5b03d] user: stephan branch: trunk, size: 238197 | |
|
2013-06-09
| ||
| 19:48 | th1ish: minor tinkering. Removed the limit that 'importSymbols' only works for the calling scope (too onerous given th1ish's tendency to create scopes whenever it can get away with it, and a function call's scope starts while the parameters are being processed, as a memory-saving measure). file: 66f6d10df5 check-in: [32806d9602] user: stephan branch: trunk, size: 237778 | |
| 17:45 | Fixed: prototype values are now re-scoped when child properties are re-scoped, and are unref'd using cwal_unref_from() instead of cwal_value_unref() (so they get re-probated if needed). Fixes a problem in th1ish with returning a new prototype value from a sub-scope. file: b5b327911f check-in: [3f002b6bc3] user: stephan branch: trunk, size: 237581 | |
| 13:00 | Added cwal_engine_recycle_max_get(). file: f7093e5d1f check-in: [1c28677e5b] user: stephan branch: trunk, size: 237140 | |
| 11:24 | Fixed (it seems) cwal_value_clone(). file: f63ca5a94c check-in: [c430cfad6c] user: stephan branch: trunk, size: 236779 | |
| 08:54 | th1ish: minor overhauling of the internal exception-throwing bits. file: 652a663041 check-in: [a7bf69df61] user: stephan branch: trunk, size: 234977 | |
| 03:46 | Documented an unsightly kludge. file: b78836c57c check-in: [47f9c9b09e] user: stephan branch: trunk, size: 234702 | |
|
2013-06-08
| ||
| 04:31 | Changed an assertion to a proper return value in cwal_prop_set(), and removed its requirement that its key be non-empty (for consistency). file: b9896b611b check-in: [9083d938ec] user: stephan branch: pcre, size: 233994 | |
| 01:33 | Seem to have found a decent heuristic for working around the obj.prop-gets-upscoped-and-cleaned problem by moving values _back_ into probationary state _if_ they would be cleaned up by a container which lives in a lower scope than the value. Allows removal of the 'extra ref' th1ish had to add before this. file: 74f7323454 check-in: [8f9e77f3ea] user: stephan branch: pcre, size: 233965 | |
|
2013-06-06
| ||
| 19:36 | Some rough (completely garbage) cycle-counting code i may want to revisit someday. file: 68e323765f check-in: [429a1a3dad] user: stephan branch: cycle-counting-revisited, size: 233148 | |
| 17:28 | Removed an ambiguity in the handling of empty string keys in cwal_var_set() vs cwal_var_set_s() and cwal_var_set_v(). file: ff3b06491f check-in: [957ae67c59] user: stephan branch: trunk, size: 229969 | |
|
2013-06-04
| ||
| 19:55 | cwal_prototype_set() now ensures that the prototype's scope is at least as old as the child's. file: 84a2cb4d70 check-in: [6cc44d3e3d] user: stephan branch: th1ish_script, size: 229988 | |
| 18:22 | Added a missing return value check in cwal_array_length_set(). file: 419e1b631e check-in: [b07032081c] user: stephan branch: th1ish_script, size: 229933 | |
| 17:54 | Removed some debuggering output. file: 5a45d3144c check-in: [8711c79b82] user: stephan branch: th1ish_script, size: 229898 | |
| 16:48 | moved a #define. file: e9b95c83ae check-in: [ef558ed5c8] user: stephan branch: th1ish_script, size: 229890 | |
| 15:24 | Fixed a property lookup bug caused by recent sorting changes. file: 3728170eed check-in: [ff0e48671c] user: stephan branch: th1ish_script, size: 229858 | |
|
2013-06-03
| ||
| 22:58 | Minor internal tinkering of the buffer size in cwal_buffer_fill_from(). file: 747367960c check-in: [14158c119e] user: stephan branch: th1ish_script, size: 229823 | |
|
2013-06-02
| ||
| 17:58 | Added cwal_array_sort(). file: 79e6acc98c check-in: [d114a07e93] user: stephan branch: trunk, size: 229523 | |
| 14:23 | Fixed switch-fall-through bug in the new string-to-number code. file: b7ec830309 check-in: [f4a355ef3a] user: stephan branch: trunk, size: 228800 | |
| 13:45 | added cwal_cstr_to_int/double(). Documented CWAL_INT_T_MIN/MAX. file: 439d7010d3 check-in: [4b8d1e0a45] user: stephan branch: trunk, size: 228772 | |
| 11:32 | Added cwal_props_copy() and more docs. file: 8da9cf065f check-in: [8d5d4a5040] user: stephan branch: trunk, size: 226088 | |
|
2013-06-01
| ||
| 15:43 | Fixed a potential buffer overflow in the previous cwal_int_to_cstr() fix. file: a7e7ca187e check-in: [dfac0b681b] user: stephan branch: trunk, size: 225520 | |
| 15:13 | Fixed a bug in cwal_int_to_cstr() - corner case involving INT_MIN. Added CWAL_INT_T_MIN/MAX macros. file: 069650a66b check-in: [29e01f5d63] user: stephan branch: trunk, size: 225476 | |
| 06:09 | Added new json formating option (addSpaceAfterComma). Added experimental code to insert object properties in sorted order. Searching is not optimized based on it, though. file: 5b9b7dd8fe check-in: [76df00ac93] user: stephan branch: trunk, size: 224928 | |
|
2013-05-31
| ||
| 23:56 | removed an old ugly hack. file: 62929d1798 check-in: [15506c1773] user: stephan branch: trunk, size: 223350 | |
| 21:50 | Extended cwal_scope_push() to accept an externally-allocated scope instance (malloc optimization). file: f65918c43c check-in: [9c1398a9c1] user: stephan branch: trunk, size: 223344 | |
| 20:06 | Changed how cwal_scope::mine::r0 is cleaned up. cwal_exception_set() no longer ref/unref's the exception (causes problems downstream). Forced a single refcount increase on shared interned strings the first time they are re-used to work around a lifetime problem. It's not a 100% solution but it's close. file: 86828d9f01 check-in: [63ade6e28a] user: stephan branch: trunk, size: 223213 | |
| 17:09 | Changes signatures of cwal_new_function() and friends. Started adding toString support to th1ish.. file: 2cdaa3fa82 check-in: [0ac710027a] user: stephan branch: trunk, size: 222356 | |
| 15:57 | Simplified the func_call() signatures a bit. file: 1e54339c72 check-in: [dc614cb0ac] user: stephan branch: trunk, size: 222268 | |
| 14:56 | Fixed swapped undef/null value definitions (broken in last round of refctoring). file: 6ab66e7414 check-in: [8f0b505002] user: stephan branch: trunk, size: 222123 | |
| 14:53 | factored out cwal_value::value ptr, saving sizeof(void ptr) bytes per value instance. This has broken something in th1ish, though. file: 09105e3d13 check-in: [e7cf5db3b5] user: stephan branch: no-value, size: 222123 | |
| 12:32 | tinkinger, trying to find the cause of the errant recycled exception... file: 987a50663c check-in: [ffecd3a6f0] user: stephan branch: trunk, size: 223752 | |
|
2013-05-30
| ||
| 12:38 | Added an assertion to help catch a bug triggered by certain piece of th1ish code. file: 4962e66e5e check-in: [39ab96b342] user: stephan branch: trunk, size: 223679 | |
|
2013-05-29
| ||
| 21:57 | Minor refactoring for... Added an amalgamation build to the makefile. file: 58b60f86ef check-in: [f0740b8f7d] user: stephan branch: trunk, size: 223386 | |
| 20:54 | Fixed cwal_value_prototype_set() to return CWAL_RC_MISUSE if the given prototype is-not-a obase. file: fc22d9c4d7 check-in: [b4b8e2115d] user: stephan branch: trunk, size: 223471 | |
| 20:06 | Fixed a serious referencing error in cwal_prototype_set(). Make cwal_compare_cstr() NULL-safe. file: 96b1cba1db check-in: [1049202a82] user: stephan branch: trunk, size: 223448 | |
| 17:57 | started adding facilities to allow cwal_native types to rescope non-property children. Simplified cwal_value_rescope() signature. file: 2aa3a4108a check-in: [c2ab18c056] user: stephan branch: trunk, size: 223377 | |
| 16:29 | potential fix for a slight potential va_start/va_end misuse. file: 6909a02da1 check-in: [559635875a] user: stephan branch: trunk, size: 222674 | |
| 14:46 | more x-string-related fixes and some prep for z-strings (like x-strings, but the cwal_string owns and deallocates the (char*)). file: f1710e2a14 check-in: [0edafb49ef] user: stephan branch: trunk, size: 222668 | |
| 13:23 | fixes related to x-string handling. file: b0bd3dcb10 check-in: [93debd3607] user: stephan branch: trunk, size: 221484 | |
|
2013-05-28
| ||
| 19:10 | comment/doc changes only. file: 113e142f96 check-in: [8d31254298] user: stephan branch: trunk, size: 219984 | |
| 19:04 | Added initial support for x-strings (external strings, not allocated by cwal). file: 97fa374c93 check-in: [76b841bfbd] user: stephan branch: trunk, size: 219950 | |
|
2013-05-25
| ||
| 17:16 | minor pedantic corner-case fix for a not-really-a-problem. file: d7dd88f5b4 check-in: [d0d89d47b2] user: stephan branch: trunk, size: 216971 | |
| 14:36 | added some (unused) code which keeps insertion order (instead of reverse) for object properties. file: 1f682671dd check-in: [3c4c0c4ddc] user: stephan branch: trunk, size: 216966 | |
| 12:04 | Fixed cwal_array_set() to accept NULL values. file: 54acfb21ea check-in: [1b3c313c6b] user: stephan branch: trunk, size: 216579 | |
| 02:46 | added a TODO note. file: 1e29f3c1e4 check-in: [a5107abac3] user: stephan branch: trunk, size: 216524 | |
| 01:00 | changed cwal_kvp_key() to return a cwal_value instead of cwal_string (old behaviour). file: 66d31bb365 check-in: [7f67301752] user: stephan branch: trunk, size: 216413 | |
|
2013-05-24
| ||
| 21:15 | experimenting with object/array access. file: fd3f9804fa check-in: [ad33b01201] user: stephan branch: trunk, size: 216437 | |
| 18:12 | cwal_new_string() and friends now no longer ref() a string which came from the internalizer. It _seems_ we don't really need to. file: 275490bcd2 check-in: [f67d411781] user: stephan branch: trunk, size: 215634 | |
| 15:09 | #if'd out a var which is only used in big-void-ptr mode. file: 932482cd56 check-in: [074279f425] user: stephan branch: trunk, size: 214436 | |
| 15:02 | pulled in [refcount0] branch, which changes how refcounting working (starts from 0 instead of 1, with 0 having a special "probationary" status). file: b9432a6579 check-in: [f518911f69] user: stephan branch: trunk, size: 214408 | |
| 14:59 | internal doc changes - nothing functional. file: e698cede28 check-in: [a457e7fb69] user: stephan branch: refcount0, size: 214407 | |
| 14:56 | Disabled the special value 1 when the big-void-ptr optimization is on because i cannot seem to get dereferencing of the int pointer working for that case. file: 1e566ff58c check-in: [6987fd404a] user: stephan branch: refcount0, size: 214336 | |
| 11:58 | Weird - i made these changes in [bae0623b6c] and now they are gone. (Edit: DUH - wrong branch, Einstein!) file: dcfb4860c7 check-in: [bd0c6073a0] user: stephan branch: trunk, size: 208122 | |
|
2013-05-23
| ||
| 13:03 | minor efficiency hack in cwal_new_integer(). file: f1021ecef4 check-in: [d999a437fe] user: stephan branch: refcount0, size: 213825 | |
| 12:58 | Added integer 1 and double 1.0 to the list of built-in values. file: ea1591945e check-in: [925e2bc847] user: stephan branch: refcount0, size: 213779 | |
| 12:22 | started adding searchPrototype option to functions which can use it. file: a5e77eecef check-in: [6e23ecc726] user: stephan branch: refcount0, size: 213161 | |
|
2013-05-22
| ||
| 19:28 | Fixed an old null pointer deref bug in the cwal_value compare impl for INT/DBL when the LHS was the special value 0 (or 0.0). file: cd2a077e6d check-in: [bae0623b6c] user: stephan branch: refcount0, size: 212746 | |
| 18:09 | removed some debug code, doc updates. file: bdb4ea0e48 check-in: [f036d8a611] user: stephan branch: refcount0, size: 212151 | |
| 17:47 | Tweaking of interned string refcount mechanics, but just cannot seem to get what i need here. Might need to special-case string destruction for this. file: c3e0eaecec check-in: [2cbe4802e5] user: stephan branch: refcount0, size: 211788 | |
| 17:11 | Added cwal_scope::mine::r0 list to keep extra track refcount==0 values. sweep-scope is now much faster and safer. file: cbf72050c4 check-in: [ef4c8f9e67] user: stephan branch: refcount0, size: 210735 | |
|
2013-05-21
| ||
| 22:53 | minor tinkering before bed. Seems to work so far. file: d03de23e08 check-in: [6be90896fc] user: stephan branch: refcount0, size: 210022 | |
| 22:30 | changed value refcount to start at 0, meaning no my ref held by the scope. This _might_ give me semantics off of which i can vastly improve the memory usage in th1ish, by proving a "purgatory" state where a value has not yet gotten an explicit reference. Previously we had start refcount==1, with the 1 being justified as the holding scope, but that causes us grief in script implementations (orphaned values held too long) and an adds ambiguity between "purgatory" and "refcount was _reduced_ to 1". file: 4ea2ceb93e check-in: [7ca566b740] user: stephan branch: refcount0, size: 210003 | |
|
2013-05-20
| ||
| 05:58 | Changed string tail-chopping algo to chop off the oldest 25%. Removed some dead comments. Extended cwal_recycler_get() to support the string recycler. file: 6166a61594 check-in: [88ba6547de] user: stephan branch: trunk, size: 208050 | |
| 04:14 | debug message changes only. file: 382fa8f3f4 check-in: [97e65d9d22] user: stephan branch: trunk, size: 206253 | |
| 04:06 | Added basic string value recycling. file: 3ae68ac328 check-in: [32a78562b9] user: stephan branch: trunk, size: 206229 | |
| 00:15 | Added the long-missing cwal_array_length_set(). file: 4e1b74e5c6 check-in: [cde01729a4] user: stephan branch: trunk, size: 202631 | |
|
2013-05-19
| ||
| 21:21 | Missing file from previous commit. file: b4677a1fcb check-in: [47140c2f78] user: stephan branch: trunk, size: 202094 | |
| 19:33 | Some disabled code saved for future consideration. file: 9f97ecb1c5 check-in: [03a2e937be] user: stephan branch: trunk, size: 201702 | |
| 18:22 | minor internal tweaking. file: 1811f4e6b0 check-in: [cb592daeae] user: stephan branch: trunk, size: 201283 | |
| 15:13 | Changed how cwal_function_call() manages the lifetime of the result value. Removed cwal_result_xxx() family of APIs. file: 4cad3185a8 check-in: [d7b822f53b] user: stephan branch: trunk, size: 201161 | |
| 14:28 | Added a new cwal_scope_prop_XXX() API to supplement or replace the cwal_var...() bits. Changed how Function call()s return their value, to make cwal_result_{s,g}et() unnecessary and handle result value lifetime better from the client. file: 74429ffaf1 check-in: [0e89645697] user: stephan branch: trunk, size: 203956 | |
|
2013-05-18
| ||
| 12:10 | Added miss types to cwal_value_type_id_name(). file: 8fe84623ca check-in: [f8f041d801] user: stephan branch: trunk, size: 200058 | |
| 11:29 | added cwal_value_type_id_name() plus some notes about value interning. file: 6f72485be4 check-in: [325709de43] user: stephan branch: trunk, size: 199873 | |
| 04:03 | Simplified cwal_unref_string() signature. file: 87e95dc7b7 check-in: [8d3223b9b2] user: stephan branch: trunk, size: 198762 | |
|
2013-05-17
| ||
| 17:44 | started, the commented out, beginnings of cwal_output_buffer(). file: 279edad41f check-in: [82c4d5df43] user: stephan branch: trunk, size: 198702 | |
|
2013-05-15
| ||
| 19:49 | more tinkering with th1ish. Can now evaluate basic math. file: 988d46bd81 check-in: [2c33797d53] user: stephan branch: trunk, size: 198153 | |
|
2013-05-11
| ||
| 03:57 | too tired to diff. file: 791db89377 check-in: [fdaaf81724] user: stephan branch: trunk, size: 198441 | |
| 02:16 | fixed var-set(NULL) return value. Changed semantics of sweep() return value. Other minor tweaking. file: b218e19a85 check-in: [1eab8d6ab8] user: stephan branch: trunk, size: 198351 | |
|
2013-05-10
| ||
| 21:18 | Fixed a buffer appending problem. Added CWAL_RC_ASSERT. file: 3f3d55aa9f check-in: [6782d563eb] user: stephan branch: trunk, size: 195729 | |
| 20:02 | Added string concat ops. file: 6994c2ac80 check-in: [ae73cb0299] user: stephan branch: trunk, size: 195674 | |
| 17:15 | more code consolidation. Changed some internal hash values. file: e9dfee4de4 check-in: [a8307e7444] user: stephan branch: trunk, size: 194028 | |
| 16:31 | Consolidated some code. Added "catch" support to s1. file: cf62a124a9 check-in: [7ee91d6574] user: stephan branch: trunk, size: 195737 | |
| 15:01 | fixes in the exception bubbling. file: 56ac859c63 check-in: [a324911a06] user: stephan branch: trunk, size: 193570 | |
| 10:52 | Added cwal_var_get_v(). Updated s1 to compile against recent changes. file: f7a1090df2 check-in: [bcdc8f9f8f] user: stephan branch: trunk, size: 193215 | |
| 09:48 | Simplified more of the public API by removing more extraneous cwal_engine parameters. file: 6d26c13d6c check-in: [17395f36ae] user: stephan branch: trunk, size: 191973 | |
| 09:02 | more tinkering. Added a missing s1 test script. file: 019a8f51f6 check-in: [3386bd8e93] user: stephan branch: trunk, size: 190933 | |
|
2013-05-09
| ||
| 14:47 | more minor tinkering. file: e21355af13 check-in: [6522247bd2] user: stephan branch: basic-prototypes, size: 191472 | |
| 10:17 | minor internal tweaking and refactoring. file: 11aaa6927a check-in: [4ba195c6b8] user: stephan branch: basic-prototypes, size: 190151 | |
| 09:39 | more object parameter simplifications file: c528f64153 check-in: [57af8b5b6a] user: stephan branch: basic-prototypes, size: 189703 | |
| 03:30 | more removal of extraneous cwal_engine parameters. file: 0bafe777a5 check-in: [977eb9cd6e] user: stephan branch: basic-prototypes, size: 189011 | |
| 03:08 | Fixed the unset leak. Was an old, old bug which i am surprised i have no triggered yet. file: f0718cfda6 check-in: [6fc95ba5ab] user: stephan branch: basic-prototypes, size: 189084 | |
| 02:58 | more work on values-as-keys. Found unset-prop cases for non-strings which cause leaks, though. file: 4ca333b5ce check-in: [51fddf67c7] user: stephan branch: basic-prototypes, size: 189085 | |
| 01:29 | obase cleanup now unrefs the object's prototype. file: 21abf7b64b check-in: [4d13c51957] user: stephan branch: basic-prototypes, size: 187522 | |
| 01:14 | more work on getting non-string key infrastructure in place. file: 52f5fae1b5 check-in: [630cba347c] user: stephan branch: basic-prototypes, size: 187199 | |
| 00:02 | Started adding experimental "prototypes" support (similar to JavaScript). More work on making key/value pairs able to use non-string keys. file: 7de39c7234 check-in: [743b712cda] user: stephan branch: basic-prototypes, size: 185493 | |
|
2012-08-20
| ||
| 22:28 | Added cwal_value_clear_mutable_state(). file: dbb328644c check-in: [01481544c5] user: stephan branch: trunk, size: 182207 | |
| 20:47 | Fixed a bug in kvp recycling (counter was wrong). Added scope recycling, which shaves a significant number of mallocs off of my test code and in s1. file: 4e6955a791 check-in: [24a0e9a8f2] user: stephan branch: trunk, size: 181031 | |
| 17:28 | Added an id field to cwal_recycler to tag the type associated with the recycler, and some additional sanity-checking to use it. file: 1a36426ebc check-in: [d06acf53ad] user: stephan branch: trunk, size: 175151 | |
| 17:16 | moved the main rescope-children operation into cwal_value_vtab to make it easier to re-use that code for new classes without touching the core for it. file: 3071ad0968 check-in: [47e431d767] user: stephan branch: trunk, size: 174123 | |
|
2012-08-19
| ||
| 16:14 | A number of fixes to the interpreter and incidental tweaks to the core to support them. s1 scope unit tests fail but scoping from a script file works fine, so i will chase that later. file: 49b44dad10 check-in: [f2a666d73e] user: stephan branch: trunk, size: 173999 | |
| 14:14 | Function values now compare equal if they have the same callback and state data pointers. file: c7e2b65245 check-in: [cef477d430] user: stephan branch: trunk, size: 173949 | |
| 05:11 | Changed cwal_exception_setXXX() to treat a NULL format string as an empty one. file: 7bc5109e19 check-in: [ba78c2784e] user: stephan branch: trunk, size: 173178 | |
| 03:23 | Tweaked s1 test code to read input from a file. Seem to have gotten the func decl-vs-call ambiguities beaten (finally!). Added var/const decl support. file: f796f241a7 check-in: [558d586769] user: stephan branch: trunk, size: 173177 | |
|
2012-08-18
| ||
| 22:46 | removed a dead line. file: cae776201f check-in: [2f2a687550] user: stephan branch: trunk, size: 172052 | |
| 05:07 | Got execution of custom script-side functions working, but still missing keywords to allow one to declare such a thing. Minor API renamings. file: 312acc0b2c check-in: [e744cdc31e] user: stephan branch: trunk, size: 172129 | |
| 01:20 | got first scripted function call working. file: 61b9437bb2 check-in: [6eec35f8e9] user: stephan branch: trunk, size: 171718 | |
|
2012-08-17
| ||
| 23:23 | Fixed var_set behaviour to set the var in the scope it is found in. Need to optimize this, though (currently 2 lookups). file: bd918596a9 check-in: [baa62c845c] user: stephan branch: trunk, size: 171685 | |
| 20:45 | more touch-ups and testing of the exception handling. file: 125de84335 check-in: [668442941e] user: stephan branch: trunk, size: 170676 | |
| 19:36 | renamed cwal_error to cwal_exception. Fixed lifetime/ownership problems in exception message handling by moving into a normal property. file: e6c6cf31a0 check-in: [6d6374aa15] user: stephan branch: trunk, size: 169289 | |
| 15:48 | Internal optimization to cwal_value_is_builtin() which shaves a percent or so of the runtime from my test app. file: a76d66ce66 check-in: [a54b88187c] user: stephan branch: trunk, size: 161089 | |
| 15:27 | Added missing cwal_value_get_native() impl. file: 1ac1b7c35e check-in: [b73394c788] user: stephan branch: trunk, size: 160162 | |
| 15:13 | Some cleanups to the property consolidation. Removed some duplicate code. Added cwal_value_can_have_properties() (but do not like the name much!). file: 8e6a217e73 check-in: [9cd5ecdaba] user: stephan branch: trunk, size: 160008 | |
| 14:48 | oops - fixed memleaks caused by Function/Native/Array cleanup routines which did not honor their (new) property state. file: 78844d7a1a check-in: [6f3110ea33] user: stephan branch: trunk, size: 160345 | |
| 14:34 | Refactored the key/value pair support to work with any cwal_obase type (object, array, function, native). Functions and Natives may now contribute to cycles. file: 616f871090 check-in: [c111db9842] user: stephan branch: trunk, size: 160119 | |
|
2012-08-15
| ||
| 14:22 | Finally pulled in the good old printf() implementation. Added cwal_outputf(), cwal_new_stringf(), cwal_buffer_printf(), and a few others. file: c5ba82dde7 check-in: [07c25cf985] user: stephan branch: trunk, size: 157240 | |
| 03:32 | too many changes to remember. Started work on ternary if, but am having token-skipping-without-executing related problems. file: c4d62652e0 check-in: [92c2a21a66] user: stephan branch: trunk, size: 153959 | |
|
2012-08-14
| ||
| 21:49 | more work on the kvp-related internal refactoring (to consolidate key/value pairs support for higher-level types). file: 68ddd22f56 check-in: [15a61ebbf2] user: stephan branch: trunk, size: 153906 | |
|
2012-08-12
| ||
| 11:14 | Removed braindeaded auto-set-from-parent in cwal_var_set(). file: da2c4c3527 check-in: [37ea7e0876] user: stephan branch: trunk, size: 150902 | |
|
2012-08-11
| ||
| 22:17 | cwal_value_is_number() now also returns true for booleans. file: 26ea2e861d check-in: [98559140e8] user: stephan branch: trunk, size: 150740 | |
| 19:57 | Got first assignment working in interpreter. file: 489e61bf26 check-in: [35c7283fc3] user: stephan branch: trunk, size: 150569 | |
| 18:07 | Added cwal_array_clear(). Tinkering with the interpreter. file: 9853b1652c check-in: [d7a2ab0fa8] user: stephan branch: trunk, size: 150533 | |
| 15:21 | More work on the script interpreter. file: 785173c061 check-in: [ed917d6e49] user: stephan branch: trunk, size: 150186 | |
| 13:47 | Fixed a bug which causes cwal_value_undefined() to not be recognized as a builtin value. file: ede073d2cf check-in: [d46319a52a] user: stephan branch: trunk, size: 149888 | |
| 12:45 | Removed cwal_engine::resultScope b/c it causes new lifetime issues. Result value is now simply moved into the parent scope for ownership purposes (nothing an occassional cwal_scope_sweep() won't take care of). file: bbdcfb93b1 check-in: [e99d61e441] user: stephan branch: trunk, size: 149848 | |
| 11:27 | Got first prototype script token eval working. file: 298c2c9876 check-in: [c74131e774] user: stephan branch: trunk, size: 151036 | |
| 09:30 | removed resultScope.level adjustment from call-in-scope op. file: f303c2a56b check-in: [f1d704b33e] user: stephan branch: trunk, size: 149871 | |
| 05:36 | Minor fixes(?) to the resultScope handling. Started some refactoring to consolidate property handling of Object and friends. file: 433803b981 check-in: [a9ff58bb0e] user: stephan branch: trunk, size: 149754 | |
| 04:07 | Seem to have gotten a reasonable return-value mechanism in place. The JSON output API now fails gracefully when faced with cycles. file: 9c8fff7948 check-in: [027070161a] user: stephan branch: trunk, size: 148597 | |
| 00:37 | minor internal cleanups file: 89b1c51eab check-in: [74e03b3df5] user: stephan branch: trunk, size: 145389 | |
|
2012-08-10
| ||
| 21:51 | Had to add a second link to cwal_value. i cannot believe it even worked this far with one link. file: 5b49db070f check-in: [ede1cffe1b] user: stephan branch: trunk, size: 144904 | |
| 17:10 | oops - moved cwal_list.h to where it belongs. file: eaa1044c06 check-in: [432f1c4b11] user: stephan branch: trunk, size: 143557 | |
| 14:56 | "var" API seems to work. file: f3a5b88301 check-in: [bc65ff9434] user: stephan branch: trunk, size: 143662 | |
|
2012-08-09
| ||
| 20:59 | Added the cwal_var_xxx() API, but it is completely untested (and will remain so until at least tomorrow ;). file: 0b408933b5 check-in: [00060a9b01] user: stephan branch: trunk, size: 143027 | |
| 17:38 | Added cwal_scope_sweep(). Reworked the trace masking (b/c 31 bits really is too few). file: a572d7675f check-in: [40e15d31ab] user: stephan branch: trunk, size: 136778 | |
| 16:05 | s/api/vtab/g for cwal_engine and cwal_value. file: 172c140354 check-in: [922c26c199] user: stephan branch: trunk, size: 135079 | |
| 15:37 | Fixed memory corruption in the kvp recycling code. Added cwal_engine_vtab::init_engine(). file: d17c3e1481 check-in: [28ea4d13f9] user: stephan branch: trunk, size: 135026 | |
| 14:39 | Added basics for the Function type. file: b5c4dd47d2 check-in: [2506f0d91a] user: stephan branch: trunk, size: 134547 | |
| 12:31 | Moved cwal_obase::list into cwal_array. Fixed json code to use cwal_object::kvp. Removed the cycle-counting code, since the current API doesn't use it. (We might need it later, though.) file: fd39af08b2 check-in: [77b2583370] user: stephan branch: obj-kvp-list, size: 129240 | |
| 12:07 | Ah, it was just the child xscoping :). file: 8f64d09059 check-in: [ee9a15f061] user: stephan branch: obj-kvp-list, size: 134812 | |
| 11:52 | initial porting of cwal_object properties to a cwal_kvp linked list. Compiles but segfaults predictibly on some test code. file: 1b9c0517a4 check-in: [7c2b40e63a] user: stephan branch: obj-kvp-list, size: 134870 | |
| 10:30 | started adding hash/compare infrastructure to allow some downstream features like arbitrary keys for object properties and interning of arbitrary POD values. file: 66730832c5 check-in: [03c22e0473] user: stephan branch: trunk, size: 136254 | |
|
2012-08-06
| ||
| 22:05 | disabled auto-interning by default, minor tinkering with the VOID_PTR_IS_BIG bits (hope it still builds on x64). file: ff385a06e8 check-in: [b53e520cfc] user: stephan branch: trunk, size: 129155 | |
| 20:57 | Minor config-level tweaking. Fixed some signed/unsigned screwyiness (thank you, clang). file: 03fbc9c540 check-in: [51fc55ddf7] user: stephan branch: trunk, size: 128956 | |
| 20:20 | Tinkering with interned string table size, other minor cleanups. file: 7407e2f067 check-in: [8e6142c151] user: stephan branch: trunk, size: 128757 | |
| 19:25 | Fixed some bugs in the scope cleanup code triggered by interned strings, and incidentally ended up trimming the algo from about 40 lines and two nested loops to only 1 functional line (and several tracing/checking lines) in a single loop. file: 4eba6f7b1c check-in: [02af50b668] user: stephan branch: trunk, size: 127692 | |
| 17:22 | removed a fixme note (fixed!) file: 7917056c62 check-in: [73c853583a] user: stephan branch: trunk, size: 128611 | |
| 17:02 | added Value binding for cwal_buffer class. file: 246983101c check-in: [f378d18817] user: stephan branch: trunk, size: 128679 | |
| 16:22 | fixed up/down-scope terminology use. file: 01edcaabbb check-in: [782b3781ad] user: stephan branch: trunk, size: 126411 | |
| 13:47 | dammit, i am simply not going to be able to get that to compile in both 32- and 64-bit modes, am i? file: 66e7dcf161 check-in: [44f5d6f109] user: stephan branch: trunk, size: 126412 | |
|
2012-08-05
| ||
| 19:27 | final (i think) tinkering for the night. file: 4216d6a377 check-in: [ee81b02749] user: stephan branch: trunk, size: 126412 | |
| 19:09 | Tracing tweaks. Fixed a bitmasking range error in the tracing flags. file: 9218bc4f90 check-in: [8414ccbc5b] user: stephan branch: trunk, size: 126230 | |
| 17:51 | valgrind likes it. time to walk Baako. file: 5b187f0e49 check-in: [0def871fe5] user: stephan branch: trunk, size: 125463 | |
| 15:59 | minor cleanups, nothing notable. file: e57b9e9198 check-in: [6295b36c28] user: stephan branch: trunk, size: 124176 | |
| 13:21 | auto-interning of strings can now be toggled on/off at runtime. file: fab222ad43 check-in: [3244397263] user: stephan branch: trunk, size: 127394 | |
| 12:45 | Turned the value linked list from doubly- to singly-linked. Shaves off 4-8 bytes/value (32/64-bit). file: 0b691e08ce check-in: [0b4ebfbc5b] user: stephan branch: trunk, size: 126550 | |
| 12:07 | Refactored recycling list to use value linked lists, removing the 5 mallocs needed for the lists and cutting the cost of the recycler a bit. file: abdbb14249 check-in: [1489228c0d] user: stephan branch: trunk, size: 127022 | |
| 11:13 | Refactored delayed GC to use the new linked list, cutting its memory cost to a single pointer, removing any allocation it used to do, speeding GC-push up to O(1), and removing some unrecoverable error cases caused by OOM conditions. :-D file: d049fb1f1f check-in: [c29b48dd13] user: stephan branch: trunk, size: 128081 | |
| 10:43 | Refactored scope/value parenting to use a linked list. Costs 2 pointers per value but ends up costing fewer mallocs and less memory overall because some (large) scope-level overhead goes away. This also makes some ops O(1) which were previously O(N). file: a1eb6b1337 check-in: [1f8844853b] user: stephan branch: trunk, size: 127569 | |
|
2012-08-04
| ||
| 20:57 | minor tinkering before bed. nothing functional. file: fcee0e206c check-in: [911afc1584] user: stephan branch: trunk, size: 128373 | |
| 20:21 | Renamed cwal_value_pop() to cwal_value_take(). file: 05be13c31a check-in: [3e93418fa1] user: stephan branch: trunk, size: 128383 | |
| 14:18 | minor tinkering. file: 1fea21820b check-in: [1a9442de79] user: stephan branch: trunk, size: 128320 | |
| 13:28 | more work on the tracing API. Added an engine param to cwal_value_ref(). file: 7e6df8f6c9 check-in: [4a5609991f] user: stephan branch: trunk, size: 128248 | |
| 00:23 | Fixed a string-re-use bug in cwal_trace(). file: fe6ae8bcd4 check-in: [b28f3a9106] user: stephan branch: trunk, size: 125632 | |
|
2012-08-03
| ||
| 16:12 | First draft of tracing calls. file: 3df4976231 check-in: [ea25245906] user: stephan branch: trunk, size: 125527 | |
| 00:13 | Started adding more tracing infrastructure to replace most of the debug output. file: d6658a7034 check-in: [536bb58c0b] user: stephan branch: scope-parenting, size: 122326 | |
|
2012-08-02
| ||
| 21:57 | Had to add auto-down-scoping of container children when a container is moved down, to avoid an up/down cross-scope cleanup problem. Seems to work. file: c055ed2c3f check-in: [3b1fc938cf] user: stephan branch: scope-parenting, size: 121419 | |
| 19:43 | valgrind seems to like this construct. file: b5ea205768 check-in: [f3b2b88b06] user: stephan branch: scope-parenting, size: 118770 | |
| 17:43 | still more refactoring and docs. file: 619da76045 check-in: [0fbe8fb142] user: stephan branch: scope-parenting, size: 118310 | |
| 16:54 | more refactoring and docs. file: 81d795b0cf check-in: [1053654f66] user: stephan branch: scope-parenting, size: 116853 | |
|
2012-08-01
| ||
| 23:28 | started adding infrastructure for tracing engine activity via a callback. file: e584ae6af4 check-in: [7334a03423] user: stephan branch: scope-parenting, size: 116125 | |
| 22:08 | Demonstrates a client-supplied native living amongst the cycle gang :). file: 081556f338 check-in: [60d147bb16] user: stephan branch: scope-parenting, size: 115987 | |
| 21:27 | This one shows a well-knotted array/object graph going down the drain (in a good way). file: cc51a2263a check-in: [3cbd9d5079] user: stephan branch: scope-parenting, size: 115862 | |
| 17:49 | array cycling appears to work after scope-wandering refactoring. file: 8bd1f29ad5 check-in: [fb7610aa39] user: stephan branch: scope-parenting, size: 114891 | |
| 16:20 | fixed a counting error in value-list-removal. file: 71f3d4e605 check-in: [7c58c67231] user: stephan branch: scope-parenting, size: 113048 | |
|
2012-07-31
| ||
| 23:12 | added a todo. file: f556aea884 check-in: [2de038aa43] user: stephan branch: scope-parenting, size: 112962 | |
| 22:29 | time for bed before i get carried away with getting the containers in order. file: ec60a92814 check-in: [be2c482a7f] user: stephan branch: scope-parenting, size: 112839 | |
| 22:02 | i broke down and added a scope ptr to the values. This costs me but it greatly simplifies some problems and code paths until i can find a way to do it safely without the ptr. file: ad80ec8c74 check-in: [11a0bb37af] user: stephan branch: scope-parenting, size: 112106 | |
| 20:21 | Tweaking of the string-interning table size and hash function (found a combination i like better). Initial POD destruction looks good except i am going to run into a problem with lower-level scopes when they get refs to strings from higher-level scopes. i think i can only fix this by adding a scope ptr to each value :/. file: 1930b5fe80 check-in: [f0b3dff0a7] user: stephan branch: scope-parenting, size: 111151 | |
| 18:29 | Started rewriting test code in baby steps to ensure new tracking/cleanup mechanism is working as desired. Lots not working right now, but the path looks clear :-D. file: a5392d0ab3 check-in: [7fd3dcf630] user: stephan branch: scope-parenting, size: 109979 | |
| 14:39 | leaking atoms in some cases, but need to move to another machine... file: 9a9c762341 check-in: [a0ae26ab7c] user: stephan branch: scope-parenting, size: 111105 | |
| 03:26 | still leaking atoms, but debuggering will have to wait another 13 hours or so... file: 1157cefd30 check-in: [92cd1cd63f] user: stephan branch: scope-parenting, size: 110990 | |
| 02:34 | ALMOST got scope-parenting-based cleanup working. Leaking primitives now but not composites, it seems. file: c3646fa10e check-in: [0da5da5d1a] user: stephan branch: scope-parenting, size: 109045 | |
|
2012-07-30
| ||
| 22:51 | More tinkering with the string interning (to find a decent memory balance) and started add cycle-clearing/counting, but it is not working and i am too tired to debugger it. file: c3615beb39 check-in: [e45735c13d] user: stephan branch: trunk, size: 107016 | |
| 19:32 | Minor tinkering with the scope cleanup and debug output. file: f23894ce4f check-in: [5c4e2e8c47] user: stephan branch: trunk, size: 100364 | |
| 18:24 | Added cwal_dump_interned_strings_table(), revealing what _appears_ to be a bug in the string de-internalization. Todo... file: a8ce9d66ad check-in: [f343473f84] user: stephan branch: trunk, size: 98874 | |
| 17:37 | Increased default string internalization table size to approx. 2kb/table (exact value depends on sizeof(void*) and a nearby prime number). file: 002152a56b check-in: [c7ae7457d0] user: stephan branch: trunk, size: 97170 | |
| 17:13 | Refactored cwal_scope::allocs into two lists, one for containers and one for atomics, to help optimize some operations. file: e88bbe5c9c check-in: [de3b8113d7] user: stephan branch: trunk, size: 97149 | |
| 16:24 | Changed return semantics of cwal_value_unref() to provide precise info about what is does/does not do. file: dc3bf2f910 check-in: [7319c8feb0] user: stephan branch: trunk, size: 96215 | |
|
2012-07-29
| ||
| 20:58 | more internal tinkering, added cwal_engine_recycle_max(). file: 1c9bac64a3 check-in: [bd79d5e6d8] user: stephan branch: trunk, size: 96153 | |
| 18:34 | Added string-interning support. Now all new strings with the same bytes get auto-interned/re-used. There might be a cross-scope ownership problem here, but only (i think) if we leave the "strict scope ordering" realm (e.g. for closures, which are not a high-prio feature). file: 4eb5b19e73 check-in: [32a0ade6f0] user: stephan branch: trunk, size: 94738 | |
| 16:10 | Started adding support for interning strings (so we share _all_ strings which have the same content), but it has a serious Denkfehler in how i am using the hashtable and needs to be fixed. file: ea0cadb4c4 check-in: [19759dcf7b] user: stephan branch: trunk, size: 89823 | |
| 03:40 | Added initial 'native' (a.k.a. Host Object) binding support. file: c6e31a9b67 check-in: [c5d9755013] user: stephan branch: trunk, size: 85492 | |
| 02:07 | more minor refactoring. file: 2595b3e638 check-in: [c0912871aa] user: stephan branch: trunk, size: 83683 | |
|
2012-07-28
| ||
| 23:52 | Ported in most of the missing cson docs. Minor refactoring. file: 60efcb8bdf check-in: [0e4f895e99] user: stephan branch: trunk, size: 80398 | |
| 21:14 | added cwal_json_output() and friends, ported from libcson. Changed the signature for cwal_output_f as part of that. file: c89da1b103 check-in: [d16e8ab46a] user: stephan branch: trunk, size: 87153 | |
| 20:20 | An assertion fix in cwal_value_push(). cwal_value_pop() now manipulates the scope alloc list to avoid endless expansion of it. file: 3fd473f803 check-in: [48fd00e698] user: stephan branch: trunk, size: 86918 | |
| 18:49 | More private/internal refactoring. Seeing a weird bug in e_such_much_recycling(), but am too tired to chase it down. file: c94f8e075c check-in: [fc32638cd1] user: stephan branch: trunk, size: 86849 | |
| 17:19 | removed cwal_engine::scopes, subsumed by the cwal_engine::current linked list we already had. file: 37c16c95f3 check-in: [0062bd8ecf] user: stephan branch: trunk, size: 87640 | |
| 16:46 | started refactoring into two headers (public+internal). file: daa01f2bb7 check-in: [fc05f69b2c] user: stephan branch: trunk, size: 88771 | |
| 14:12 | merged in cycle-counting branch. Works at least as well as it did before and has basic support for graph destruction for "relatively little" cost. file: 2515356da5 check-in: [e58a47936d] user: stephan branch: trunk, size: 88384 | |
| 13:51 | Added initial value allocation recyler. Lots of other tweaks, improvements, and debug output. file: 26a86ed437 check-in: [02ab3dc56e] user: stephan branch: cycle-counting, size: 88473 | |
| 04:56 | too... tired... file: 9f839da2ac check-in: [73a2e1b526] user: stephan branch: cycle-counting, size: 84234 | |
| 02:21 | minor tinkering. Fixed, i think, a future bug when cycle counting more than once. file: 8f0109aba0 check-in: [92dd48c7c1] user: stephan branch: cycle-counting, size: 82535 | |
| 01:17 | more docs and minor refactoring/cleanups. file: 5de7282e11 check-in: [31d896646e] user: stephan branch: cycle-counting, size: 79652 | |
|
2012-07-27
| ||
| 23:35 | Added boatloads of API docs. Still far from finished (many still to be copied from cson). file: 57d4e38ab6 check-in: [6c4c514f74] user: stephan branch: cycle-counting, size: 77835 | |
| 20:18 | this is a beautiful thing when seen through the eyes of valgrind... file: 0beff61a14 check-in: [354aa42b4e] user: stephan branch: cycle-counting, size: 74729 | |
| 20:13 | this one looks a bit better. Fixed a REALLY dumb flags bitset bug which caused a mis-diagnosed is-destructing check. file: 87f0ae737b check-in: [aed1986bae] user: stephan branch: cycle-counting, size: 74729 | |
| 17:42 | minor cleanups before the jackhammering begins. file: 1b9cf7dd6b check-in: [50037bf0e2] user: stephan branch: cycle-counting, size: 72445 | |
| 16:54 | Improved the [f9924f2539] workaround (i think). file: a04be01d44 check-in: [5a0e3b69cf] user: stephan branch: cycle-counting, size: 72100 | |
| 16:49 | merged in [f9924f2539] compile fix. file: 5d024c8cec check-in: [e29713f468] user: stephan branch: cycle-counting, size: 72001 | |
| 16:49 | backed up a bit to remove some dysfunctional complexity. file: c68e76916f check-in: [a5ba13ffc8] user: stephan branch: cycle-counting, size: 71979 | |
| 13:26 | Temporary(?) hack for 32/64-bit compatibility. file: 2072dc7ddd check-in: [f9924f2539] user: stephan branch: trunk, size: 68479 | |
| 02:06 | Auto-cycle-count/clean is now done at scope-pop, but this is not a complete solution because values can outlive a scope. file: df7218aeec check-in: [303510704d] user: stephan branch: cycle-counting, size: 74136 | |
| 00:35 | First cyclic free-up demonstrated when the parent scope expired :-D, but requires that one run the cycle-counter first :/. Making that transparent is on the TODO list for the weekend :D. Reminder to self: we might be able to put that in the Scope cleanup. file: 544e547565 check-in: [5b1208c9f8] user: stephan branch: cycle-counting, size: 70855 | |
|
2012-07-26
| ||
| 22:51 | Contains an intentional memleak due to incomplete refactoring, but it is time for bed and do not want to risk losing this. file: b07a73602b check-in: [d73fbf518a] user: stephan branch: cycle-counting, size: 70010 | |
|
2012-07-25
| ||
| 17:33 | Added engine::current scope convenience ptr. file: ff40907dc2 check-in: [9f145a967c] user: stephan branch: trunk, size: 68457 | |
| 14:53 | Tinkering with value-scope parenting, but the built-in values just threw a wrench in it. file: 25c2022877 check-in: [c8298bc6d1] user: stephan branch: trunk, size: 68259 | |
| 13:05 | a number of API tweaks. file: d2c4d2774a check-in: [56ac8240e7] user: stephan branch: trunk, size: 66780 | |
| 10:33 | more minor refactoring. file: 5970577cf1 check-in: [7d83b4f0e9] user: stephan branch: trunk, size: 64446 | |
| 10:01 | more refactoring and tinkering. file: c27d0677ad check-in: [348267e3b3] user: stephan branch: trunk, size: 64817 | |
| 08:05 | ported in the object API. file: 5dc2b22456 check-in: [e77bdf86b5] user: stephan branch: trunk, size: 58105 | |
| 06:37 | switched to stdint fixed-size ints throughout. Added cwal_size_t and renamed a few things. file: 7e0e480a50 check-in: [bb5b0db794] user: stephan branch: trunk, size: 51045 | |
| 05:39 | more refactoring. file: 42407d5c7a check-in: [89909b7eac] user: stephan branch: trunk, size: 49255 | |
| 05:05 | got the object skeleton in place but it is missing any useful features. file: 755c438a36 check-in: [84f2fc8b27] user: stephan branch: trunk, size: 49232 | |
| 04:14 | minor refactoring. file: 321ce52b3d check-in: [1868791179] user: stephan branch: trunk, size: 47043 | |
| 03:14 | Tinkering with various loads for the ptr table. 90% only causes 2 tables under the right circumstances, the second one only lightly loaded. file: 289d6d4f5a check-in: [91da9fef15] user: stephan branch: trunk, size: 46423 | |
| 02:02 | Got an array containing a self-cycle to free without upsetting valgrind. :) file: 005a3c2310 check-in: [4dcb87c117] user: stephan branch: trunk, size: 44640 | |
| 01:47 | ptr table is looking good. file: b13f13170e check-in: [d88a5fa845] user: stephan branch: trunk, size: 44691 | |
|
2012-07-24
| ||
| 21:45 | ptr table almost works right, but page->entryCount seems to be off by one sometimes? To check tomorrow... file: f20b867f5d check-in: [0c98670772] user: stephan branch: trunk, size: 43449 | |
| 20:31 | got arrays ported in. file: a5a5217a9e check-in: [c1e7d24d89] user: stephan branch: trunk, size: 41544 | |
| 19:43 | new "key table" seems to work. Now i am not sure i need it :/. file: 39af67b50f check-in: [0c7c5ce695] user: stephan branch: trunk, size: 35514 | |
| 19:19 | insert/search seem to work on the ptr table. file: 48b299747a check-in: [69c3ef00e5] user: stephan branch: trunk, size: 34242 | |
| 17:03 | refactored page list to use a cwal_list (simplifies the code notably). file: b7389b7495 check-in: [fb89dc98ad] user: stephan branch: trunk, size: 32579 | |
| 16:47 | some more work on the weird hashtable. file: b7398bcc28 check-in: [33c220873c] user: stephan branch: trunk, size: 32633 | |
| 00:03 | Started adding special-case ptr-hashtable for tracking cycles and is-var-in-this-scope checks. file: 57de6b423d check-in: [de91c24c1c] user: stephan branch: trunk, size: 30542 | |
|
2012-07-23
| ||
| 21:58 | We can now allocate vars, but scoping is not far enough to add the allocations there. file: 60d3f2cfa2 check-in: [d0cc64e478] user: stephan branch: trunk, size: 28127 | |
| 20:14 | We can now free values but not allocate them. Object/Array will be missing for a while. file: 6c76bfd0e5 check-in: [13ccbfc670] user: stephan branch: trunk, size: 14136 | |
| 19:49 | More infrastructure... file: 40c0085bb6 check-in: [25b7b37575] user: stephan branch: trunk, size: 6034 | |
| 19:26 | More infrastructure added. Still a long way to go. file: 56cbf063f7 check-in: [bff484cc73] user: stephan branch: trunk, size: 5768 | |
| 18:47 | Added: egg file: 55b5ba2ae3 check-in: [a71b168320] user: stephan branch: trunk, size: 4757 | |