Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
History for s2/s2.h
2022-01-21
| ||
06:35 | Renamed to include/wh/cwal/s2.h. Got s2sh and s2sh2 building. Moved public s2 headers into include/wh/cwal. check-in: [4eca93fd0b] user: stephan branch: build-reorg, size: 0 | |
2021-10-22
| ||
03:12 | Ported in recent cwal_printf() additions from libfossil. Updated doxygen config to enable markdown. Patched several doc complaints from doxygen. file: [2f5e7bd780] check-in: [26f500e220] user: stephan branch: trunk, size: 221685 | |
2021-07-26
| ||
05:30 | Added s2 pragma(rc IDENTIFIER). file: [8029077d8c] check-in: [2da6fedf35] user: stephan branch: trunk, size: 221775 | |
2021-07-24
| ||
04:27 | Changed cwal_size_t to cwal_midsize_t in s2_strftime() signature. file: [b513f15eba] check-in: [52105c3d0f] user: stephan branch: trunk, size: 221787 | |
2021-07-12
| ||
14:22 | Removed part of s2_config.h.in which had no effect in the amalgamation build. Updated a reference to C89/C99 compatibility. file: [e08a1ca037] check-in: [c8a55be2fc] user: stephan branch: trunk, size: 221757 | |
2021-07-11
| ||
22:27 | Minor doc tweak to previous commit. file: [089451de3b] check-in: [2825316e10] user: stephan branch: obase-isa-hash2, size: 221951 | |
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: [93c35d43c4] check-in: [273b214789] user: stephan branch: obase-isa-hash2, size: 221911 | |
2021-06-26
| ||
11:27 | Renamed s2/*.c to remove the extraneous s2_ prefix. Unrelated touchups in t10n/*. file: [691b7893f1] check-in: [3311efa964] user: stephan branch: trunk, size: 221820 | |
11:09 | s2 internals: one tiny step towards eventually switching to a different token impl. file: [a3788e1848] check-in: [c6541e0c36] user: stephan branch: trunk, size: 221823 | |
09:30 | Removed s2_rc_cstr() and s2_rc_cstr2(), now that we have cwal_rc_cstr_fallback(). file: [f5c5971ce3] check-in: [9bb5de51f2] user: stephan branch: trunk, size: 221823 | |
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: [ba6ebf54bf] check-in: [e679463d26] user: stephan branch: trunk, size: 222326 | |
2021-06-25
| ||
22:30 | Initial go at removing s2_error class, now that that's been moved over to cwal_error. Seems to work but needs more testing to ensure that script location information is still correct when reporting errors. Also (only remotely related) removed the c9n-related bits from s2/ since that work is now going on over in t10n/. file: [1eb0fa20f0] check-in: [d69c75ff2a] user: stephan branch: s2-remove-err-obj, size: 221663 | |
2021-06-24
| ||
07:47 | More work on the standalone t10n/c9n subsystem. file: [dc8dd3ce0c] check-in: [24029cb1d9] user: stephan branch: trunk, size: 226728 | |
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: [965f023a28] check-in: [3d41e2d40f] user: stephan branch: trunk, size: 226728 | |
04:30 | Initial work as splitting s2's tokenization bits into a standalone sub-lib which depends only on cwal, not s2. file: [a95efd0fab] check-in: [241d125806] user: stephan branch: trunk, size: 226727 | |
2021-03-25
| ||
00:41 | Doc typo fix. file: [6bdcc63670] check-in: [1a3480115a] user: stephan branch: trunk, size: 226725 | |
2020-08-29
| ||
07:27 | Removed nameLen member from the s2 tokenizer classes (over-engineering). More tweaking of the c9n bits but a path to consolidating them with t10n in s2_eval is no clearer now than it was a month ago. It might be time to fork off s2.5 or some such and port s2_eval.c over to c9n. Or maybe we could use a higher-level tokenizer/token abstraction to consolidate the two, rather than trying to hide c9n behind t10n. file: [711378420e] check-in: [711c9c3123] user: stephan branch: trunk, size: 226723 | |
2020-08-27
| ||
10:43 | Split S2_T_Heredoc (new) from the previously dual-nature S2_T_SquigglyBlock, which previously represented both {...} and heredocs, for historical tokenizer-level reasons. file: [d5ab4a1abf] check-in: [a0266ba0e4] user: stephan branch: s2-c9n-baby-steps, size: 226584 | |
2020-04-24
| ||
07:04 | Added s2_is_dir(), s2_mkdir(), s2_mkdir_p(), s2.fs.mkdir(), and s2.fs.dirIsAccessible(). file: [335e64f365] check-in: [6e75e23d9d] user: stephan branch: trunk, size: 226434 | |
2020-02-27
| ||
23:05 | Added s2.json.clone(). file: [15fe519713] check-in: [bfc518b40b] user: stephan branch: trunk, size: 223379 | |
2020-02-21
| ||
04:21 | s2 enums are now always hashes, instead of schizophrenic hashes/objects. This required a few minor changes, e.g. typeinfo(ishash/hashash) no longer eval to true for enumcs, and anEnum.# now works. Testing uncovered an unrelated assertion failure caused by a stale s2_engine::opErrPos pointer (fixed). file: [78aa1535a0] check-in: [c46a39fd75] user: stephan branch: trunk, size: 223071 | |
2020-02-18
| ||
10:10 | Added s2.ob.capture(). Should have done that years ago. Incidental internal cleanups in the OB layer. file: [523d2283dd] check-in: [6df4b9a581] user: stephan branch: trunk, size: 222722 | |
2020-02-10
| ||
12:07 | Cleanups in the define()-related API docs and error reporting. file: [4182d920fb] check-in: [ca44adceef] user: stephan branch: trunk, size: 221162 | |
2020-02-08
| ||
17:20 | Replaced s2's clampdown mode with a flags-based approach (see s2.h's s2_disabled_flags enum). Added --s2-disable=flag,names,list to s2sh/s2sh2. file: [08c9ac232b] check-in: [7dbb093d4e] user: stephan branch: trunk, size: 220992 | |
2020-02-03
| ||
17:15 | s2_cstr_to_rc(), which drives the string-to-exception-code mechanism, e.g. exception(CWAL_RC_ERROR,...) is now O(1) instead of O(N), by applying the same hash function we use for keyword/typeinfo/pragma entries. file: [f2630817fe] check-in: [d244e00a8e] user: stephan branch: trunk, size: 218297 | |
2020-02-02
| ||
09:00 | s2: introducing "User Keywords" (UKWDs). Clients may now install constant symbols which resolve during the keyword lookup phase, so they're faster than var/const lookups, but they cost some memory and should be used judiciously to avoid a slight performance hit. Also added the define() keyword function to create them from script-space. file: [1e7c990130] check-in: [226dd49cad] user: stephan branch: trunk, size: 218365 | |
2020-01-30
| ||
17:25 | An effort at extending s2's constructor support to allow Functions to act as their own JS-style ctors. It basically works but cannot, due to a new level of indirection, be made to work inuitively with the inherits keyword, so the effort is being sidelined for now. file: [2fb900ecef] check-in: [54451bdf90] user: stephan branch: s2-instance-prototype, size: 215947 | |
2020-01-20
| ||
10:45 | Added enum s2_pf_search_policy to provide symbolic names for the 3 policies. Related cleanups in code using s2_pf_search(). Added s2_home_get(). file: [c60a1ddd98] check-in: [42783dfc69] user: stephan branch: trunk, size: 215706 | |
00:01 | Added s2_tokenize_path_to_array(). PathFinder constructor now accepts its arguments as arrays (old behaviour) or PATH-style strings (new behaviour). file: [8f88d4a83f] check-in: [cfdeaaef9d] user: stephan branch: trunk, size: 214371 | |
2020-01-18
| ||
19:16 | Reimplemented the s2 import() function in C (was script code, so it went from 6 lines to more than 70), and added new ways to call it. file: [6d012b41fa] check-in: [7af9cb2fe1] user: stephan branch: trunk, size: 212334 | |
10:54 | Finally added the import keyword, implemented similarly to s2out. While testing, discovered that typename/typeinfo(name) unnecessarily duplicate their strings sometimes, and patched that. file: [47e5d62d4f] check-in: [56bcb9fae7] user: stephan branch: trunk, size: 211219 | |
04:52 | Added s2.PathFinder.tokenizePath() and related C-level APIs. file: [fc391240a2] check-in: [ce2c6857e9] user: stephan branch: trunk, size: 210833 | |
2020-01-16
| ||
05:24 | Renamed confusingly-named S2_PRINT_OPT_RETURN_SELF flag to S2_PRINT_OPT_RETURN_CALLEE and added S2_PRINT_OPT_RETURN_THIS flag. Reordered s2_cb_print_helper() params and fixed the handling of its 3rd (formerly its 2nd) parameter to not emit a space before the first value when that argument is >0 (found by accident - that case has never actually been used). file: [c3cedf8fe4] check-in: [4b6b9f39db] user: stephan branch: trunk, size: 210239 | |
04:47 | cwal_printf() %p now uses lower-case hex (was upper case). Efficiency hack in s2out impl: bypassed an unneeded function proxy call in s2.operator<<(). Added s2_engine::stash stats to s2sh metrics output. s2.io.output() and friends now prepend a 0x prefix when outputing a native address via the %p cwal_printf() format option. file: [6e045e05da] check-in: [38c02a3714] user: stephan branch: trunk, size: 209028 | |
2020-01-06
| ||
15:19 | More work crawling towards compiled token chains. It's looking less and less as though it will gain us more than about 6-8% of execution speed, though, at least for the unit tests. We'll see (if the compiled version can be adequately hidden behind s2_ptoker, that is, but that's as yet uncertain). file: [0326ad24ae] check-in: [a071956dca] user: stephan branch: trunk, size: 209017 | |
08:49 | Doc fix. Heredoc slurping now counts lines/cols as it goes. Removed a seemingly extraneous call to s2_check_interrupted(). file: [ff53beccab] check-in: [252ce60c8b] user: stephan branch: trunk, size: 208729 | |
2019-12-31
| ||
06:26 | The morning documentation rounds. file: [17c38cf3e8] check-in: [8b905c16a9] user: stephan branch: trunk, size: 208677 | |
2019-12-30
| ||
16:35 | Added trace-assert and trace-token-stack pragmas. Related minor refactoring, symbol renaming, and docs. file: [b4c8632218] check-in: [6d39f4ad9f] user: stephan branch: trunk, size: 208314 | |
07:43 | Enabled s2 pragma() and added docs for it. The tokenizer now has a flag which tells it to permit '-' as a legal identifier character so that longer pragma (and, eventually, typeinfo) tags can be written like a-b-c instead of abc. (Hmmm... It might be interesting to allow those as keys in object/hash literals.) file: [d3939d5c70] check-in: [439f5c71ce] user: stephan branch: trunk, size: 208537 | |
2019-12-28
| ||
09:19 | Found a decent way to implement custom exception types in s2. That uncovered a minor fix in s2_throw_value() and led so a bout of documentation. file: [5882f8bd64] check-in: [330a937990] user: stephan branch: trunk, size: 207840 | |
2019-12-20
| ||
17:35 | s2: improved error reporting for invalid \Uxxxxxxxx sequence in a string literal, which previously fatally killed scripts with no error location info. It now triggers a syntax error, which catch{} is capable of downgrading to an exception, but that behaviour is arguable because this same error is, due to the shape of the API, indistinguishable from other invalid UTF8. file: [c5c5d5ba2a] check-in: [e458b2a5fd] user: stephan branch: trunk, size: 206384 | |
2019-12-17
| ||
02:38 | Style change: globally removed commas after 'i.e.,'. file: [e93670d2d8] check-in: [6100e95be2] user: stephan branch: trunk, size: 205727 | |
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: [219829ffc7] check-in: [040a1c6ac4] user: stephan branch: trunk, size: 205728 | |
2019-12-12
| ||
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: [0f358badff] check-in: [db9f4b10f3] user: stephan branch: multi-iteration, size: 205732 | |
2019-12-10
| ||
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: [262a8efa1b] check-in: [9484a7e93e] user: stephan branch: trunk, size: 205815 | |
11:11 | Added s2out keyword, which operates the same way that s2.io.output historically has. Minor tweaks in s2.tmpl() related to handling of the output function. Added s2_eval_cstr_with_var() and s2_seal_container(), both minor restructurings related to the s2out changes. This unfortunately revealed (again) a potential shortcoming in the handling of the CWAL_CONTAINER_DISALLOW_PROP_SET flag, in that it's still possible (but probably(?) should not be) to replace s2out's prototype. file: [0bcedd8efa] check-in: [394c5bbfa4] user: stephan branch: trunk, size: 205901 | |
2019-12-09
| ||
09:09 | Experimentally added the __using() function-like s2 keyword. file: [3a17c542bc] check-in: [a009b47e67] user: stephan branch: trunk, size: 203446 | |
2019-12-07
| ||
08:43 | s2: Added placeholder for the potential future ?. operator. Shaved 2k memory by shrinking the default size of the function script file name hash and added a metric to count how much reuse we get from that hash. file: [9c91105f88] check-in: [8cfe21fd57] user: stephan branch: trunk, size: 203310 | |
2019-09-11
| ||
20:31 | Incidental internal doc touchups and removal of one unnecessary #if block. No functional changes. file: [877d91faa8] check-in: [e15d5c7b72] user: stephan branch: trunk, size: 203128 | |
2019-08-03
| ||
21:33 | Added array.operator+=(), which behaves like array.push() except that it returns 'this'. file: [c8ff1a0cbf] check-in: [332549317a] user: stephan branch: trunk, size: 202663 | |
20:09 | Minor internal optimization for mult./div./mod. operators. file: [f90db981e3] check-in: [2265446732] user: stephan branch: trunk, size: 202549 | |
2019-07-19
| ||
05:51 | s2_cb_seal_object() now returns the last value passed to it. file: [1fb42e61c2] check-in: [4ae60c8413] user: stephan branch: trunk, size: 202447 | |
05:47 | Added s2_cb_seal_object(). Correct the setting of s2sh's history file name from the S2SH_HISTORY_FILE environment variable. file: [e296aed40a] check-in: [450a903bf4] user: stephan branch: trunk, size: 202379 | |
2019-07-02
| ||
17:55 | Minor FILE module cleanups and additions. Edit: plus unrelated s2.h doc tweaks which slipped in because their own commit failed due to a locked repo db and i didn't notice. file: [9f2ecc685c] check-in: [a7e7f4ef80] user: stephan branch: trunk, size: 201761 | |
17:46 | Updated s2_module_load() docs to remove all obsolete references to the v1 module init interface. s2_module_init() now explicitly performs the init in a new cwal scope, so that module init routines may be willfully sloppy in their cwal_value cleanup (the script binding of loadModule() already implicitly did this, but now the C-level API explicitly does). file: [81de01e9ae] check-in: [505b752863] user: stephan branch: trunk, size: 201763 | |
2018-12-18
| ||
19:27 | Improved configuration checks related to stat(), chdir(), getcwd(). cwal_config.h now honors HAVE_CONFIG_H to include config.h for "pre-configuration" (to potentially simplify amalgamation configuration). file: [607d22c98d] check-in: [9a995d51a3] user: stephan branch: trunk, size: 201306 | |
2018-11-27
| ||
14:00 | More docs. Removed unnecessary s2_engine::cache::keyEnum. file: [0f3a32e326] check-in: [23b38f294a] user: stephan branch: trunk, size: 201307 | |
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: [a5b9765250] check-in: [73251240a6] user: stephan branch: trunk, size: 200705 | |
2018-11-26
| ||
16:42 | Added s2/mod/tmpl, and other minor refactoring/tinkering in support of that. file: [6a323dde6c] check-in: [75e05db982] user: stephan branch: trunk, size: 200662 | |
15:27 | Refactoring of the print() and s2.io.output() functions to support upcoming experiments. file: [2294c73136] check-in: [aede375051] user: stephan branch: trunk, size: 199986 | |
14:39 | Tinkering with recursive vacuum. TL;DR: it can work in _very limited_ circumstances, but often not enough to run it periodically (it's expensive). file: [bb7a4e1185] check-in: [7010376835] user: stephan branch: trunk, size: 197977 | |
12:04 | Tinkering with recursive vacuuming (which breaks horribly, so it's turned off, of course). file: [2178a47c4c] check-in: [151a9db261] user: stephan branch: trunk, size: 197772 | |
10:40 | Removed an invalid TODO. Minor formatting tweaks. The previous commit really should have been part of _this_ commit, not its own previous commit :/. file: [20fe0d3ddf] check-in: [25d87ee8d3] user: stephan branch: trunk, size: 197127 | |
10:24 | Minor cost-correctness improvements. file: [9d6634fa73] check-in: [dea8b92b24] user: stephan branch: trunk, size: 197345 | |
09:59 | Improvements in various compile-time configuration checks. Added a couple s2 functions in prep for some module-related changes. file: [74ddf72e7e] check-in: [bd5c8fc100] user: stephan branch: trunk, size: 197004 | |
2018-11-25
| ||
14:14 | s2_eval_filename() now stat()s the target and fails if it's a directory, as trying to s2.import('some-dir') leads to confusing CWAL_RC_OOM errors. file: [e1e48d26ae] check-in: [a9eb7376cd] user: stephan branch: trunk, size: 197449 | |
2018-11-24
| ||
13:48 | Added some missing API docs. file: [56ec4a0439] check-in: [aaa930bc8f] user: stephan branch: trunk, size: 197365 | |
10:41 | minor doc updates. file: [e1086d70cb] check-in: [3f54d5d346] user: stephan branch: trunk, size: 197205 | |
04:43 | doc updates. file: [9dfadd56fb] check-in: [256023d328] user: stephan branch: trunk, size: 197050 | |
2018-11-23
| ||
17:44 | More docs, removed an unused struct member. file: [8733df08dd] check-in: [700a499fd6] user: stephan branch: trunk, size: 197049 | |
15:50 | doc typo file: [84f5f435ef] check-in: [e9f27c08d5] user: stephan branch: trunk, size: 194342 | |
15:09 | More minor cleanups and docs for the scope push/pop changes. It's ready to be merged into the trunk :). file: [b15a75fe7f] check-in: [92565f3d07] user: stephan branch: scope-push-pop-hooks, size: 194343 | |
14:43 | Snapshot. Lots of cleanup of the new s2_scope mechanism. Removed some now-obsolete s2 scope-handling functions. file: [e8769d4289] check-in: [b7de2a8e38] user: stephan branch: scope-push-pop-hooks, size: 193777 | |
12:26 | Snapshot. The new scope push/pop mechanism is in place and working (it was tedious but surprisingly painless to do). Valgrind is happy, but there's still lots of API docs to fix, functions to rename, and memory cost comparisons with the trunk version to do. file: [6c61cb1a74] check-in: [e07567160b] user: stephan branch: scope-push-pop-hooks, size: 195473 | |
09:55 | Snapshot - seem to have gotten the new s2_scope infrastructure in place and working, but now comes the real work: swapping out the existing bits with this. file: [ada224406f] check-in: [166008b65a] user: stephan branch: scope-push-pop-hooks, size: 196804 | |
00:55 | doc updates, removed one dead declaration. file: [faa125b55a] check-in: [3d6c258964] user: stephan branch: trunk, size: 195013 | |
2018-11-22
| ||
16:40 | s2_install_functions() can now optionally install into the current scope, instead of just into a target container. file: [4d8e2e1b7c] check-in: [bb5859d8ce] user: stephan branch: trunk, size: 193912 | |
2018-11-20
| ||
10:17 | Added autosetup to implement a configure script, as the module-level configuration is getting to be problematic/annoying without this level of infrastructure. There are still some integration left to clean up, but it essentially works. file: [48508bc392] check-in: [76af91a08c] user: stephan branch: trunk, size: 193814 | |
03:15 | Added s2.time.mstime(), doc updates, removed a small bit of dead code. file: [ca74a24081] check-in: [76183e9b6d] user: stephan branch: trunk, size: 193789 | |
2018-11-19
| ||
06:50 | doc updates. file: [f04efa78db] check-in: [a200836e00] user: stephan branch: trunk, size: 191877 | |
2018-10-28
| ||
10:55 | Minor internal/doc touchups to s2_strftime(). file: [81463fa9af] check-in: [79fe4e7ebd] user: stephan branch: trunk, size: 191735 | |
2018-09-24
| ||
09:16 | Added a 'time' module test. Minor internal time module modernization. file: [f74c937ee2] check-in: [54bf5dbf9d] user: stephan branch: trunk, size: 191716 | |
2018-09-21
| ||
11:14 | Minor comment/doc tweaks. file: [98e2105c4f] check-in: [b3aa740c22] user: stephan branch: trunk, size: 191339 | |
2018-09-19
| ||
17:38 | minor doc/comment tweaks. file: [39561bc993] check-in: [fd8df9dc5d] user: stephan branch: trunk, size: 191205 | |
2018-08-16
| ||
13:02 | minor doc updates. file: [bc63be8b89] check-in: [3a53d544b7] user: stephan branch: trunk, size: 191205 | |
2018-05-09
| ||
14:40 | Build tweaks to more easily support modules which simply compile in an s2 script. Added the s2.iterate module. file: [20efd826e5] check-in: [0a93b0e69f] user: stephan branch: trunk, size: 191011 | |
2018-05-08
| ||
16:50 | Minor generic cleanups. file: [9439778907] check-in: [c72ba83cbe] user: stephan branch: trunk, size: 190855 | |
2018-05-07
| ||
23:31 | minor internal tinkering. file: [dd631bd3da] check-in: [9211afe535] user: stephan branch: trunk, size: 189882 | |
11:22 | minor doc tweaks. file: [2486094fbd] check-in: [456322605f] user: stephan branch: trunk, size: 189037 | |
2018-05-06
| ||
17:10 | minor doc tweaks, removed some unneeded code. file: [cc00b27a41] check-in: [360c4740b6] user: stephan branch: trunk, size: 188930 | |
16:34 | minor doc touchups. file: [da1e59bb15] check-in: [9a5e7c45ea] user: stephan branch: trunk, size: 188846 | |
2018-01-03
| ||
21:03 | minor cleanups. file: [d55adccfc2] check-in: [66a86a81d1] user: stephan branch: trunk, size: 188271 | |
15:05 | Removed the v1 s2 plugin init interface. file: [6d02df6283] check-in: [fa16637e69] user: stephan branch: trunk, size: 188675 | |
14:06 | removed some unused code. file: [39f873f5c7] check-in: [31bad6f93c] user: stephan branch: trunk, size: 193270 | |
2018-01-02
| ||
04:28 | generic tinkering. file: [889a248a47] check-in: [bbba146715] user: stephan branch: trunk, size: 193642 | |
2018-01-01
| ||
22:05 | Minor tweaks and hacks. Accidentally discovered a new category of parse errors involving certain keywords within a ternary expression, and partially "resolved" them. file: [50d5a27bb2] check-in: [972ed85e26] user: stephan branch: trunk, size: 193482 | |
16:02 | Far too much tweaking in the s2 loadable module bits. file: [dc02cb23e1] check-in: [d9164fb176] user: stephan branch: trunk, size: 194179 | |
12:54 | s2 loadable module macro additions (previous commit requires this). file: [137fcf3b7c] check-in: [be491bf9f5] user: stephan branch: trunk, size: 192353 | |
10:51 | doc tweaks. file: [19a6769d79] check-in: [12765f3bd5] user: stephan branch: trunk, size: 191909 | |
2017-12-31
| ||
23:01 | Spontaneously invented a 'v2' init interface for s2 loadable modules, to help consolidate how their result values are used. Still need to port most of the plugins to it, though. file: [513ff090da] check-in: [ebacbcb3d6] user: stephan branch: trunk, size: 191858 | |
17:46 | Modularized the s2-to-C module build bits. Fixed broken static plugins (a macro resolution problem). file: [47d99b7177] check-in: [b99c040786] user: stephan branch: trunk, size: 185751 | |
2017-12-28
| ||
23:39 | minor internal cleanups, fixed a broken assert. file: [7ad953e985] check-in: [0e7ea6ac92] user: stephan branch: trunk, size: 185600 | |
22:04 | minor internal cleanups. file: [3127ab895d] check-in: [15ac630931] user: stephan branch: trunk, size: 185948 | |
04:43 | random tinkering in the cwal_convert C++ bits. file: [a3c385dc44] check-in: [9a2c2cdbf6] user: stephan branch: trunk, size: 185889 | |
02:12 | Added s2_set_from_script_v(). file: [614c673b52] check-in: [f784922b14] user: stephan branch: trunk, size: 185809 | |
2017-12-27
| ||
19:46 | Added s2_ptoker::nextToken to allow lookaheads to communicate their findings back to the s2_ptoker_next_token(), which now uses those results to skip tokenization in many cases (approx 10041 of them in the current amalgamated UNIT.s2). file: [de69a310f6] check-in: [e8d43a070d] user: stephan branch: trunk, size: 185387 | |
2017-12-26
| ||
17:26 | more interceptor tinkering. file: [8a1b5782e0] check-in: [c468ab9e14] user: stephan branch: trunk, size: 185388 | |
16:28 | Cleanups and preliminary work for adding property interceptors to the core via alternative getter/setter APIs. file: [741b549b04] check-in: [ed485b7b8b] user: stephan branch: trunk, size: 185291 | |
2017-12-25
| ||
12:05 | insignificant internal cleanups. file: [5cf3da1d4e] check-in: [3481b1494e] user: stephan branch: trunk, size: 185282 | |
2017-12-12
| ||
18:12 | Disabled s2 property interceptors for the time being (will likely try moving this into the cwal core at some point). file: [9a475d98e2] check-in: [7c0211d829] user: stephan branch: s2-interceptors, size: 185256 | |
2017-12-07
| ||
01:40 | Seem to have gotten s2 property interceptors working, but there is much, much testing and experimentation to be done (opportunities for side-effects abound). file: [ac9aedfd66] check-in: [8d58c40828] user: stephan branch: s2-interceptors, size: 185254 | |
2017-12-06
| ||
10:32 | Refactored typeinfo(isnewing) to be able to work intuitively in subscopes within the ctor call and extended it to optionally take an expression. file: [cf071864ee] check-in: [d26a553167] user: stephan branch: trunk, size: 184384 | |
2017-12-05
| ||
14:11 | moved some functionality around. file: [3067c7736e] check-in: [f52f15779b] user: stephan branch: trunk, size: 184282 | |
10:11 | tiny internal cleanups/typos. file: [84bf82d3ab] check-in: [e5464b6a7e] user: stephan branch: trunk, size: 183642 | |
2017-12-02
| ||
09:25 | Added s2_trigger_exit(). file: [d5d8d6fc82] check-in: [b1eae4252b] user: stephan branch: trunk, size: 183643 | |
2017-12-01
| ||
15:36 | Moved s2's sweep ticker from the engine to the scope, making sweep/vacuum more predictable when multiple script-side scopes are involved. file: [ca0832f09b] check-in: [67ba813e28] user: stephan branch: trunk, size: 182103 | |
2017-11-27
| ||
15:47 | Added s2_ob_reserve(). Fixed a cwal_buffer::self misuse. file: [461f838452] check-in: [dc093206a2] user: stephan branch: trunk, size: 182148 | |
2017-11-24
| ||
23:23 | minor s2 module tinkering. file: [14790db146] check-in: [1b0ba8a488] user: stephan branch: trunk, size: 181123 | |
2017-11-16
| ||
06:52 | Got basic infrastructure in place for building s2 the loadable modules as static modules which get linked directly in to s2sh. file: [d07c9da10e] check-in: [21be566a6f] user: stephan branch: trunk, size: 180980 | |
02:38 | Minor cleanups to s2's interruption handling, in prep for future changes where the signal handler sets a flag outside of s2_engine, rather than touching a specific s2_engine instance. file: [67eaf76cd9] check-in: [d739e68e06] user: stephan branch: trunk, size: 179281 | |
02:00 | minor notes and API renaming in prep for other changes. file: [c4d2284441] check-in: [869e66b530] user: stephan branch: trunk, size: 179274 | |
2017-11-15
| ||
12:32 | s2 strings now support integer-key property access to access individual characters (functionally equivalent to string.charAt()). However, testing that revealed a hole in the eval-holder handling which had to be patched. file: [eef400b6cf] check-in: [d2dd4ed8bc] user: stephan branch: trunk, size: 178967 | |
2017-11-13
| ||
20:25 | typo fix file: [5c570e1b2d] check-in: [46dbe59026] user: stephan branch: trunk, size: 177845 | |
12:26 | minor utility API renaming and additions. file: [d2ae16c7bf] check-in: [d8df88227b] user: stephan branch: trunk, size: 177849 | |
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: [b22f56e2a5] check-in: [61f4780ed8] user: stephan branch: trunk, size: 176335 | |
08:39 | Refactored s2's incr/decr operators for better ref/unref handling and readability (that's the last of them). Unrelated minor s2_engine struct refactoring. Valgrind is happy - ship it\! file: [3f7b00e99a] check-in: [19787f3a50] user: stephan branch: trunk, size: 175617 | |
2017-11-12
| ||
16:42 | Re-enabled the "eval value holder" to work around an "interesting" value lifetime conflict until a better (less memory-costly) solution can be found (if one can - it is a tricky situation: see notes around EVAL_USE_HOLDER in s2_eval.c). file: [3dee3b4e17] check-in: [e5adf161e4] user: stephan branch: trunk, size: 175592 | |
10:49 | Discovered and applied gcc's -Wextra warning level, plus patched up violations it caught (mostly missing struct member initializers). file: [180b31ab81] check-in: [f13f6c3c4b] user: stephan branch: trunk, size: 175527 | |
2017-11-11
| ||
18:33 | minor doc additions. file: [2bd3cb804d] check-in: [f0a5e26dc2] user: stephan branch: trunk, size: 174921 | |
2017-11-10
| ||
20:52 | Added s2.fs.fileIsAccessible() (same func as s2.PathFinder.fileIsAccessible). Doc additions for fsl_fstat() and friends. file: [a4fea67331] check-in: [2b7393cc8b] user: stephan branch: trunk, size: 174814 | |
2017-11-08
| ||
16:35 | Added s2.shell.tokenizeLine() for potential use in upcoming(?) script code. file: [fd0c59694b] check-in: [f0051dbf0d] user: stephan branch: trunk, size: 174247 | |
10:40 | Added s2_enum_builder API to enable creation of s2 enums from C code. file: [90b4ee230a] check-in: [4ea3759581] user: stephan branch: trunk, size: 172466 | |
08:37 | Moved filesystem-related APIs from s2.io to s2.fs. file: [59ce2c731e] check-in: [474633d583] user: stephan branch: trunk, size: 168150 | |
2017-11-07
| ||
13:17 | doc typo fix. file: [2c7c0d4828] check-in: [d81f8f44be] user: stephan branch: trunk, size: 167731 | |
13:06 | imported GLOB/LIKE pattern matching from sqlite3. Added s2.glob(glob,haystack[,globStyle]). file: [d43d1ca1c6] check-in: [4eac2f17a9] user: stephan branch: trunk, size: 167730 | |
2017-11-03
| ||
15:16 | minor doc update file: [30e21ea136] check-in: [218f657ca4] user: stephan branch: trunk, size: 165409 | |
15:12 | Added s2.io.chdir(). file: [af6d193dc0] check-in: [bc5c9cc25c] user: stephan branch: trunk, size: 165354 | |
12:01 | Consolidated duplicated functionality of s2_cb_toss() and s2_cb_throw() into the latter function. file: [d10efd6277] check-in: [f9ebe4a8ed] user: stephan branch: trunk, size: 164763 | |
01:39 | Tinkering with the module loader to try to bend things such that we can choose to link (or not) certain modules into s2sh statically. That doesn't yet work because the build process for each module can be arbitrarily complex, and hooking those in to s2sh's build would be more difficult than i'm ready/willing to futz with right now. file: [84e754747a] check-in: [0ea9d180a5] user: stephan branch: trunk, size: 164647 | |
2017-11-02
| ||
22:49 | Added s2.io.stat() (stat(2)/lstat(2) wrapper). file: [6a231b48f7] check-in: [9166d087df] user: stephan branch: trunk, size: 163204 | |
19:40 | Added s2.io.getcwd() (getcwd(2) wrapper) and some beginnings of infrastructure for an eventual wrapper for stat(2)/lstat(2). file: [b3162ced3e] check-in: [c653066de5] user: stephan branch: trunk, size: 160816 | |
2017-10-13
| ||
09:47 | Added Array.filter(), imported from an old test script. file: [3902107b16] check-in: [94278945cb] user: stephan branch: trunk, size: 158752 | |
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: [03220ea019] check-in: [ef477c5d1e] user: stephan branch: trunk, size: 158710 | |
2017-03-23
| ||
16:15 | Fixed a broken assertion, a parse error for prefix --/++, added Function.bind(), and minor tokenization reductions. file: [51bb3357e2] check-in: [09b7fbcab5] user: stephan branch: trunk, size: 158815 | |
2017-03-13
| ||
01:13 | incomplete and ill-thought-out tinkering for "compiling" a token chain. file: [3e5c84ccfe] check-in: [a279ed9183] user: stephan branch: mistake, size: 158197 | |
2016-09-11
| ||
17:53 | More features and bug fixes. Made notes about known memleaks. Started preliminary tests with valgrind. file: [1ea1f5d1be] check-in: [15edc81e11] user: calebg branch: s2_ffi, size: 157669 | |
2016-09-02
| ||
16:16 | Using the avcall lib to replicate stack frames. Works like a charm. Most primitive types aralready supported. file: [1b0d57e5a3] check-in: [133ca72aeb] user: calebg branch: s2_ffi, size: 157669 | |
2016-09-01
| ||
18:15 | A (VERY ALPHA) Foreign Function Interface implementation that allows calling system functions (like setenv, mount, fopen, etc) directly from s2sh. file: [ceada9f9f9] check-in: [20a4347076] user: calebg branch: s2_ffi, size: 157619 | |
2016-08-19
| ||
20:22 | merged in s2-op-dotdot for new :: overloadable operator. file: [087feae559] check-in: [2567a4c1b8] user: stephan branch: trunk, size: 156962 | |
15:46 | minor API additions needed by [4ece7a7f47], minor doc tweaks. file: [740e954d95] check-in: [16d2a20ab1] user: stephan branch: trunk, size: 156850 | |
2016-08-18
| ||
17:41 | switched from enum..entry to enum::entry. file: [1f355c99b2] check-in: [03131fd977] user: stephan branch: s2-op-dotdot, size: 155837 | |
15:20 | Experimentally recycled the unused .. op to provide semantics which are a cross between the "." and "->" ops, and implemented it for enums so that (enum.entry.value) shortens to (enum..entry). file: [ae260ecdb1] check-in: [68630ad3ca] user: stephan branch: s2-op-dotdot, size: 155804 | |
2016-05-27
| ||
12:59 | Defining _DEFAULT_SOURCE per the recommendation on this page: http://man7.org/linux/man-pages/man7/feature_test_macros.7.html "Since glibc 2.20, this macro is deprecated. It now has the same effect as defining _DEFAULT_SOURCE, but generates a compile-time warning (unless _DEFAULT_SOURCE is also defined). Use _DEFAULT_SOURCE instead. To allow code that requires _BSD_SOURCE in glibc 2.19 and earlier and _DEFAULT_SOURCE in glibc 2.20 and later to compile without warnings, define both _BSD_SOURCE and _DEFAULT_SOURCE. file: [79ddef5088] check-in: [69ae13ab2a] user: calebg branch: trunk, size: 155725 | |
2016-03-12
| ||
11:05 | Initial impl of function() using(...) {...}. file: [775b73cb35] check-in: [09e0fc4005] user: stephan branch: trunk, size: 155662 | |
2016-03-05
| ||
19:28 | Added UDF support to the sqlite3 module. file: [d22f39d411] check-in: [41fc75d22f] user: stephan branch: trunk, size: 155666 | |
15:07 | A couple s2 API additions to ease porting in the sqlite3 module from libfossil. file: [e04bdb36e0] check-in: [1683be45a0] user: stephan branch: trunk, size: 155624 | |
2016-02-28
| ||
11:06 | merged in trunk, resolved conflicts (i hope - one of them was ugly). file: [cfdfb4461e] check-in: [b15b89624b] user: stephan branch: s2-array-of-int-op, size: 155187 | |
2016-02-25
| ||
21:42 | refactored pairs as tuples (fixed-length arrays). Still need to add foreach() support. file: [e0f9950f60] check-in: [5cc361ae64] user: stephan branch: cwal_value_pair, size: 154547 | |
19:25 | merged in trunk. file: [9333d13b8a] check-in: [ec839ef681] user: stephan branch: cwal_value_pair, size: 154546 | |
2016-02-17
| ||
20:36 | Minor doc addition. file: [f3f8374841] check-in: [da37e32731] user: stephan branch: trunk, size: 154441 | |
2016-02-16
| ||
14:29 | merged in trunk file: [1c90a8615a] check-in: [7658116a71] user: stephan branch: cwal_value_pair, size: 154300 | |
2016-02-15
| ||
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: [26d823296f] check-in: [dcf19ee9c8] user: stephan branch: trunk, size: 154195 | |
2016-02-14
| ||
16:46 | Experimentation with having s2 figure out that if an object implements operator+, then s2 can use that to synthesize operator+= if that's not already overridden. It only works if operator+ returns 'this', which isn't always feasible for that operator. It's disabled, but the code is in place for later tinkering. file: [ce0784c331] check-in: [420eae38e8] user: stephan branch: trunk, size: 146019 | |
13:28 | Added experimental foreach keyword to s2. file: [7b343808ed] check-in: [d68eaaaf18] user: stephan branch: trunk, size: 146003 | |
2016-02-13
| ||
15:59 | merged in trunk. file: [2e9c94eaa0] check-in: [e3fccff59e] user: stephan branch: s2-array-of-int-op, size: 146464 | |
15:59 | Merged in trunk, as it's about to get messy with planned internal refcount refactoring. file: [477826daab] check-in: [da81a83408] user: stephan branch: cwal_value_pair, size: 145930 | |
03:34 | Fixed an error location info bug where a 'catch' translating a syntax error to an exception muddled up the location. file: [c94bd68f9b] check-in: [ca0f52e27a] user: stephan branch: trunk, size: 145825 | |
2016-02-12
| ||
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: [2fd097ac38] check-in: [f505331bdb] user: stephan branch: cwal_value_pair, size: 145897 | |
2016-02-10
| ||
19:39 | Changed .. op precedence (now same as unary ops), added some unit tests. file: [4dd2afda66] check-in: [1914628491] user: stephan branch: s2-array-of-int-op, size: 146431 | |
18:46 | Added experimental X..Y op, which resolves to an array of integers in the inclusive range X..Y. There's some thinking left to do on its real utility and operator precedence. file: [ed0bfbd5ae] check-in: [667f998399] user: stephan branch: s2-array-of-int-op, size: 146321 | |
18:15 | Had to move s2_prototype_shash(ed)() back to the public API because libfossil uses it. file: [3c047760a4] check-in: [23634ad42d] user: stephan branch: trunk, size: 145792 | |
2016-02-06
| ||
17:06 | Refactored how s2 functions keep their imported symbols. Requires 1 fewer KVP and they are no longer subject to being erased by Object.clearProperties(). PS: this makes it feasible for us to swap out their source code at runtime. Not necessarily sane (think: changing it during recursion), but technically feasible. file: [7c479c7480] check-in: [e5e31d9f83] user: stephan branch: trunk, size: 144871 | |
02:10 | insignificant internal tinkering. good night. file: [9894d2d3c9] check-in: [acb850a4e1] user: stephan branch: trunk, size: 145450 | |
2016-02-05
| ||
19:38 | a number of doc updates, internally restructured how keywords determine whether an EOL is an alias for EOX, and limited it to certain keywords (due to a buggy interpretation found while testing unrelated stuff). Added s2.Buffer.slice() to copy byte ranges. A bit of further s2 internal-vs-public code-moving and minor cleanups. file: [102f4ff7a0] check-in: [bd2fa6618f] user: stephan branch: trunk, size: 145122 | |
16:27 | Added infrastructure for s2 ternary ops to handle the ':' part when it is inside a newer implicit scope than the '?' part. This is currently only done/allowed for eval-family keywords which have a non-block RHS. file: [1cc51925e6] check-in: [67f02a58d5] user: stephan branch: trunk, size: 149226 | |
11:14 | split up the s2 APIs into internal/public parts. file: [60f6ec26f4] check-in: [efa2b6c8b8] user: stephan branch: trunk, size: 148585 | |
09:48 | Went ahead and renamed 's2::new' to __new. The former was just me being anal. i'm over it. file: [76f4f99bdd] check-in: [88fa8f60e0] user: stephan branch: trunk, size: 167585 | |
2016-02-03
| ||
15:31 | Refactored s2_minify_script() to take its input from a cwal_input_f() and send it to a cwal_output_f(), instead of explicitly using cwal_buffer. Fixed a case in the s2_get() family of funcs which caused properties to be skipped over in cases involving prototypes which are of Hash type and have the dot-op-hash-lookups flag. Experimentally tried deriving s2.Buffer from hash and setting that flag: the unit tests work but it is disabled because the implications on the prototype chain/methods bug me. file: [38f1567cf3] check-in: [199c722a3e] user: stephan branch: trunk, size: 167593 | |
2016-02-02
| ||
19:25 | Added miniz and (theoretically, but untested and too tired) zlib support. Added s2.Buffer.compress/uncompress/isCompressed/uncompressedSize() and the Buffer.compression flag to determine if un/compress() are functional. The new unit tests demonstrate the API. file: [eeaa149f92] check-in: [fc568b29ce] user: stephan branch: trunk, size: 166715 | |
2016-01-31
| ||
12:58 | minor s2-internal cleanups in prep for some internal ref/unref handling experimentation. file: [59842c77e5] check-in: [4a11a6b32e] user: stephan branch: trunk, size: 162067 | |
2016-01-30
| ||
03:58 | enhanced typeinfo(isnewing) to remove the 2nd (now internally derived) parameter. file: [080e2bc32b] check-in: [b81dac8243] user: stephan branch: trunk, size: 161454 | |
2016-01-29
| ||
21:54 | mostly touchups in the C++ layer, plus a small bit of API renaming. file: [67574914ab] check-in: [e4ade7f536] user: stephan branch: cpp-placement-new, size: 161429 | |
2016-01-26
| ||
19:36 | An overhaul of the internals of the 'new' keyword to move some of that functionality in the public API and reduce some code duplication. Still works the same. Added typeinfo(isnewing EXPR) which evals to true if EXPR is current in the process of being new'd (i.e. if it is the 'this' object created by the 'new' keyword for the ctor call). Might look for a better name/place for that operation. file: [d6d728756c] check-in: [4d2069388b] user: stephan branch: trunk, size: 161429 | |
2016-01-25
| ||
20:38 | some internal cleanups of value ref/unref handling and save an allocation of a yet another array for argv of the new() op. file: [aa8eece674] check-in: [d7e57497a7] user: stephan branch: trunk, size: 157679 | |
2016-01-24
| ||
17:01 | s2 new X() now pushes an entry to the call stack, else the errors are hard to follow when the ctor throws. Fixed a corner case in s2_throw_value() which caused the error location props to be set on the wrong container when inheriting from the Exception type. Other minor tinkering. file: [bc3c614fc1] check-in: [09a407c621] user: stephan branch: trunk, size: 157228 | |
01:57 | added a param to s2.Object.toJSONString() to specify how cycles are handled (error or strings). file: [76ea66c215] check-in: [502f8f5f59] user: stephan branch: trunk, size: 157209 | |
01:27 | added a "volatile" specifier to s2_engine::flags::interrupted. file: [9b4a4ea028] check-in: [ccf28ea9c4] user: stephan branch: trunk, size: 156727 | |
2016-01-23
| ||
12:09 | renamed s2_new_function2() to s2_new_callback(). file: [c2256f5468] check-in: [89a724ee0f] user: stephan branch: trunk, size: 156718 | |
11:36 | added s2_add_ctor_method() and s2_add_ctor_callback() to simplify constructor injection. file: [a61455eea5] check-in: [1ea6373c3f] user: stephan branch: trunk, size: 156391 | |
2016-01-22
| ||
01:45 | added s2_minify_script() and friends. Discovered that ctrl-c interruption is not working, for unknown reasons - possibly a recent regression, but i don't remember touching those bits recently. file: [fabd30a513] check-in: [afdabee3e3] user: stephan branch: trunk, size: 154659 | |
2016-01-21
| ||
20:40 | changed the key used by Function.importSymbols() to store the imported symbols (it's now an internal/shared Unique-type value). file: [c99579561d] check-in: [f6e20f650f] user: stephan branch: trunk, size: 153701 | |
09:04 | Minor restructuring of how s2_ptoken_create_value() works, sharing values from s2_engine::stash. Saves a handful of allocs and allocations across the board. Renamed the "__new" magic method to "s2::new", despite its unsightliness. file: [d79d6b0525] check-in: [3d2f02e3ef] user: stephan branch: trunk, size: 153075 | |
2016-01-15
| ||
11:12 | insignificant comment/test tweaks. file: [7673fa4ee8] check-in: [6a05fd60f4] user: stephan branch: trunk, size: 151550 | |
2016-01-10
| ||
05:45 | minor tinkering with interrupt flag handling, doc additions. file: [6e2037b3b6] check-in: [c0bcb77c9e] user: stephan branch: trunk, size: 151528 | |
2016-01-09
| ||
18:08 | merged in s2-scope-hashes branches - thought it had already been done :/. file: [a91533e76b] check-in: [1526166a76] user: stephan branch: trunk, size: 151516 | |
17:14 | fixed missing source location info for the 'fatal' keyword. Improved interrupt checking, added source location info (if known) to the interrupt message. Made elvis a separate operator (not alias of |||) so that error messages show the proper operator symbol. file: [520dd0eb0f] check-in: [ff5029f230] user: stephan branch: trunk, size: 150836 | |
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: [48aca5d400] check-in: [4d688d1ffc] user: stephan branch: s2-scope-hashes, size: 151471 | |
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: [5c6f94d34d] check-in: [b79462d915] user: stephan branch: s2-scope-hashes, size: 150885 | |
2016-01-07
| ||
16:17 | improved s2_cb_value_compare(). a bit. file: [bad5cdbcf8] check-in: [607d7966e3] user: stephan branch: trunk, size: 150791 | |
15:24 | added s2.compare(value1,value2). file: [c8fb42cb89] check-in: [5772449a00] user: stephan branch: trunk, size: 150174 | |
2016-01-06
| ||
17:51 | some extra parenthesizing and docs. file: [3b0ade5508] check-in: [40a1c45dde] user: stephan branch: enum-with-value, size: 150158 | |
17:15 | a batch of minor tinkering and cleanups. file: [cb880a8cd7] check-in: [8cbea14422] user: stephan branch: enum-with-value, size: 150003 | |
2016-01-05
| ||
23:30 | minor internal tweaking/cleanups. file: [a70f8cdb5c] check-in: [a5d85d398a] user: stephan branch: enum-with-value, size: 149968 | |
14:07 | minor doc tweaks and fixes. file: [2d965cd57f] check-in: [d53c6a40e7] user: stephan branch: enum-with-value, size: 149980 | |
2015-08-14
| ||
15:08 | enum enries with value pseudoproperty seems to work. Let's think on it a while before integrating it. file: [7ab0c33378] check-in: [3aa469f15c] user: stephan branch: enum-with-value, size: 149492 | |
14:09 | enums with values, but accessing that value requires more special-casing than i would like. file: [03d5633071] check-in: [f88c7a2382] user: stephan branch: enum-with-value, size: 149171 | |
2014-12-19
| ||
10:36 | swapped offset/flags arg order in mod_porex.exec(). And accidentally committed a bunch of stuff i wanted to trash. Dammit. file: [215dc96fba] check-in: [e15cd4ba72] user: stephan branch: trunk, size: 149122 | |
2014-12-17
| ||
22:09 | added a couple missing struct member inits. file: [294ea451ed] check-in: [b6ca87c4a5] user: stephan branch: trunk, size: 148949 | |
2014-12-13
| ||
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: [d4aa6c6730] check-in: [339cea5e4d] user: stephan branch: trunk, size: 148862 | |
2014-12-09
| ||
18:58 | s2: s2_cb_file_accessible (a.k.a. s2.PathFinder.isAccessible()) now fails on clampdown level 2 or higher. file: [617ec30316] check-in: [cfa3996381] user: stephan branch: trunk, size: 148885 | |
17:34 | s2: more tweaking of refunref calls. Fixed an endless loop when given this invalid construct: 1 ? eval {2 : 3}. It is now aware that the colon in the subexpr cannot belong to the ? on the left, and errors out. Improved ternary op error reporting for certain errors. file: [a59ba97a68] check-in: [c4f5620926] user: stephan branch: trunk, size: 148744 | |
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: [312000d1c5] check-in: [5ebcca7477] user: stephan branch: trunk, size: 147683 | |
2014-12-07
| ||
16:20 | minor refactoring and cleanups related to the new container flags/behaviours. file: [acf16f27ed] check-in: [8335982e35] user: stephan branch: trunk, size: 148101 | |
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: [53f85460a8] check-in: [52824f4adc] user: stephan branch: trunk, size: 146742 | |
00:24 | s2: API renaming. file: [e4fa3f7a15] check-in: [8f7e99dc95] user: stephan branch: trunk, size: 146534 | |
2014-12-06
| ||
23:49 | More enum work. Added s2_hash_grow_if_loaded() and s2.Hash.growIfLoaded(). Refactored object/hash literal parser to not require an intermediate Object when in hash mode. file: [ad988b056f] check-in: [8385ea0f08] user: stephan branch: trunk, size: 146421 | |
20:34 | s2: more on enums. file: [6447166b5a] check-in: [32d3c8ca65] user: stephan branch: trunk, size: 146027 | |
16:30 | core: more work on the various container flags, s2: more work on the enum keyword, other minor cleanups. file: [501ce1bce4] check-in: [8c61a703a0] user: stephan branch: trunk, size: 143570 | |
01:40 | s2: API renaming, more work on the 'new' keyword. file: [a877275294] check-in: [874963ab8e] user: stephan branch: trunk, size: 142663 | |
2014-12-05
| ||
22:44 | more work on the container flags, added a couple missing cwal_value_is_XXX() variants, minor API renamings. file: [53fa659ea9] check-in: [38060dc5e9] user: stephan branch: trunk, size: 142078 | |
19:50 | s2: removed the s2_scope::refHolder experiment (the last round of ref/unref magic made it obsolete), fixed a lifetime bug in the "new" keyword when the ctor returned one of its arguments. file: [e57f19edd5] check-in: [d10f915466] user: stephan branch: trunk, size: 141788 | |
18:39 | s2: added experimental support for two styles of hash literals using the object literal modifier {# ...} and {## ...}. file: [84f03c413b] check-in: [7f2fbe0dbd] user: stephan branch: trunk, size: 141979 | |
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: [999d893899] check-in: [6dbf89b73c] user: stephan branch: trunk, size: 141627 | |
14:07 | s2: added the long-overdue s2_install_functions(), refactored some places to use it instead of macros. file: [e89e418af9] check-in: [23308bbea9] user: stephan branch: trunk, size: 140548 | |
11:37 | s2: more work on integrating the 'unique' type, added s2sh -safemode flag to s2sh to disable file i/o APIs (for use in Caleb's demo page). file: [50e60311f8] check-in: [29f4657ea7] user: stephan branch: trunk, size: 138785 | |
11:25 | s2: more work on integrating the 'unique' type, added s2sh -safemode flag to s2sh to disable file i/o APIs (for use in Caleb's demo page). file: [8781ea7191] check-in: [1977b92f84] user: stephan branch: trunk, size: 138769 | |
00:09 | s2: minor tinkering, added a todo. file: [7d26fbaf31] check-in: [dbd84d317a] user: stephan branch: trunk, size: 138156 | |
2014-12-04
| ||
16:50 | s2: applied ref/unref-combo hack to operator operands where feasible. This resolves (x++) stranding a value in a higher scope in _some_ (common) contexts (such contexts can now clean up such a newly-reprobated value immediately). This does not save any memory in the unit tests because i am careful about value upscoping there, but in s2sh-based tests with sweep logging enbled this seems to have resolved the x++ problem for some cases. file: [b1d798c96e] check-in: [a6753f3afa] user: stephan branch: trunk, size: 137892 | |
2014-12-02
| ||
20:48 | s2: making experimental use of the cwal container-type flags to tell the dot operator to resolve Hash entries instead of Object properties for hashes flagged with this. Experimental, but seems to work provided one uses the s2-level get/set abstractions instead of direct cwal-level access. Removed the tableSize property from Hash instances b/c it is broken since resizing was added. file: [126c7b86f9] check-in: [05d22320c1] user: stephan branch: trunk, size: 137474 | |
17:11 | s2: some experimentation with holding more refs so that we have to do less ref-babysitting elsewhere. It works but causes a 20x increase in integer value allocations, and a 2+x overall value allocation count (basis: s2 amalgamated unit tests). It's disabled, but the code is left as food for thought later on. file: [f1fabc1dff] check-in: [2b2d10d588] user: stephan branch: trunk, size: 136695 | |
07:31 | typo fix in as-yet-unused enum. file: [cc82939a1f] check-in: [b9c9b44e8e] user: stephan branch: trunk, size: 136450 | |
2014-12-01
| ||
21:51 | s2: sketching out some uses for per-container flags, more experimentation with the "new" keyword. file: [027ccac51e] check-in: [662fa2bbb3] user: stephan branch: trunk, size: 136452 | |
19:11 | s2: improved script-side error reporting for (non-exception) errors triggered via s2_set() and s2_set_v(), in that get converted to exceptions so they have file/line/column info. file: [108e5b49b2] check-in: [7913df9593] user: stephan branch: trunk, size: 133475 | |
2014-11-30
| ||
12:46 | added s2_scope_pop2(). file: [881a2760b4] check-in: [08ea6ffd40] user: stephan branch: trunk, size: 133350 | |
2014-11-29
| ||
16:33 | more metrics-related tinkering. file: [e63ead0315] check-in: [624ffc5926] user: stephan branch: trunk, size: 133019 | |
2014-11-26
| ||
20:50 | s2: minor cleanups, renamed new==>constructor to new==>__new for symmetry with the typename==>__typename. file: [e15af0db84] check-in: [d9bea6b0b4] user: stephan branch: trunk, size: 133019 | |
2014-11-21
| ||
21:09 | minor doc update file: [828e807b3a] check-in: [dc2389df97] user: stephan branch: trunk, size: 130730 | |
13:06 | s2: op && now has the same precedence as || (it was previously one higher). file: [970490e245] check-in: [0a6a94e708] user: stephan branch: trunk, size: 130321 | |
2014-11-20
| ||
21:14 | s2: Number.toString() now supports a Buffer.appendf()-compatible formatting flag. file: [733be81a7b] check-in: [ec8a14af48] user: stephan branch: trunk, size: 130325 | |
2014-11-19
| ||
20:07 | s2: minor refactoring to get at the string-to-rc bits from other places, then extended exception(CODE,MESSAGE) to accept an enum entry name (string) as the first argument. file: [59e27a52f5] check-in: [a73b96a6c5] user: stephan branch: trunk, size: 129792 | |
18:40 | s2: squeezed a bit more reuse out of the cached "prototype" string, in the form of using it in a couple more contexts instead of allocating new strings. file: [e34a843a18] check-in: [e688e4238d] user: stephan branch: trunk, size: 129239 | |
2014-11-16
| ||
15:54 | s2: optimizations in the new Exception.codeString() bits, and fixed a missing break. file: [8b50d81c86] check-in: [cb9cebd131] user: stephan branch: trunk, size: 129253 | |
13:48 | s2: added s2.getResultCodeHash(), a map of CWAL_RC_xxx and S2_RC_xxx for script space. Other minor tinkering. file: [3c3f0b70df] check-in: [e40a358147] user: stephan branch: trunk, size: 129256 | |
2014-11-15
| ||
13:57 | fixed some missing docs, cleaned up cycle detection error reporting. file: [c4ae1a7d28] check-in: [9a10bc4c84] user: stephan branch: trunk, size: 128251 | |
12:09 | Added s2.json.stringify(). file: [7d85a68454] check-in: [592a9be1bf] user: stephan branch: trunk, size: 128248 | |
2014-11-14
| ||
18:36 | s2: minor tinkering, extended Exception.codeString() a bit. s/isDereffable/isDerefable/g. file: [339f150ff1] check-in: [12afba3491] user: stephan branch: trunk, size: 128036 | |
16:17 | s2: implemented the exception keyword: exception(message) or exception(code,message) creates (does not throw) an exception object, with the former creating an exception equivalent to what throw normally does. file: [abbe438e85] check-in: [fec3c2c90e] user: stephan branch: trunk, size: 127897 | |
13:29 | Added s2.isDereffable(). file: [56cb6e8ab2] check-in: [48a15eb8ea] user: stephan branch: trunk, size: 127511 | |
13:15 | s2: made "exception" a reserved keyword. file: [00b701492a] check-in: [051c424f83] user: stephan branch: trunk, size: 127114 | |
10:32 | s2: minor refactoring, moved fork() binding out of the shell, into the public binding API. file: [da3bb82b9b] check-in: [4f17506ec4] user: stephan branch: trunk, size: 127095 | |
00:01 | s2: minor cleanups and test code improvements. file: [809c794233] check-in: [fb98fd8a1b] user: stephan branch: trunk, size: 125700 | |
2014-11-13
| ||
22:11 | s2: fixed descrepancy between (eval -> return 1; 2) vs (eval -> 'return 1'; 2) by adding a flags param (and accompanying enum) to s2_eval_ptoker(). file: [7f9d32522a] check-in: [7fcae16c57] user: stephan branch: trunk, size: 125776 | |
16:21 | s2: got .. operator working. file: [9d4afd555c] check-in: [72e68223c5] user: stephan branch: s2-dotdot-op, size: 124820 | |
2014-11-07
| ||
16:27 | s2: alternate .. op impl. ALMOST works, except that the incr/decr ops have some as yet unknown problem with it. file: [d57b45ceb6] check-in: [0caec2dbb6] user: stephan branch: s2-dotdot-op, size: 124818 | |
2014-11-06
| ||
17:34 | Added experimental X.. op, a unary postfix op which is short for X.prototype. Not yet sure how i feel about it. file: [a8eb8221c0] check-in: [93e4b68884] user: stephan branch: s2-dotdot-op, size: 124714 | |
2014-11-04
| ||
13:11 | minor comment tinkering. file: [4c637623a1] check-in: [e4d4ebbee2] user: stephan branch: trunk, size: 124542 | |
2014-10-31
| ||
08:44 | s2: fixed Function.call() to accept a non-object "this", other minor cleanups. file: [cac1f2e817] check-in: [0519af4688] user: stephan branch: trunk, size: 124495 | |
2014-10-29
| ||
16:23 | s2: improved handling of the colon in ternary-if, improved the is-interrupted checking a bit. file: [2a7c0962f8] check-in: [ee070c6ec2] user: stephan branch: trunk, size: 124290 | |
2014-10-13
| ||
20:15 | s2: reverted [ee718b4feb] (turns out it added an inconsistency), minor internal tweak to where s2 remembers the 'current script' (s2_ptoker), minor doc updates. file: [294bf2da78] check-in: [657cdfa9fc] user: stephan branch: trunk, size: 123274 | |
2014-10-11
| ||
18:25 | s2: Added directory handling policy option to s2_pf_search(), but does not work on non-Unix due to missing is-this-a-directory() bits. Fixed a pair of broken is-dir checks (wrong argument passed). file: [962806096e] check-in: [1e657aed8e] user: stephan branch: trunk, size: 123254 | |
2014-10-06
| ||
18:44 | s2: added an experimental approach to cap script-side call depth, in order (mainly) to catch what appears to be infinite recursion and thereby avoid a segfault. An error is triggered if the cap is exceeded (unless the environment segfaults before then for lack of stack space). file: [1683889178] check-in: [ed747de194] user: stephan branch: trunk, size: 122646 | |
2014-10-05
| ||
06:16 | s2: refactoring of some string-to-number code. Made String.operator+ and += const, to avoid clients changing the physics via redefining them. file: [b56f830b49] check-in: [8a9ce07b7d] user: stephan branch: trunk, size: 121546 | |
2014-09-03
| ||
21:52 | minor docs before bed. file: [ad4fdd5db0] check-in: [a4524d1331] user: stephan branch: trunk, size: 120984 | |
2014-09-01
| ||
17:40 | s2: added rand(3) workalike, but have no real good place to bind it, so it's in the Integer prototype, i.e. called like 0.rand(). file: [2c778d39c9] check-in: [8b2916e0ec] user: stephan branch: trunk, size: 119840 | |
2014-08-30
| ||
04:22 | more work on the s2 interruption. file: [abc817de1c] check-in: [0d4158e5f6] user: stephan branch: trunk, size: 119616 | |
2014-08-29
| ||
12:12 | s2: experimenting with the ability to interrupt a running script, e.g. via Ctrl-C handler. Results look fairly promising but not perfect. Added Buffer|String.evalContents() and minor API changes to accommodate them. file: [aac3a3530a] check-in: [cdf401e000] user: stephan branch: trunk, size: 117501 | |
2014-08-27
| ||
21:21 | a round of commenting/docs. file: [46d85b1860] check-in: [90dc687e12] user: stephan branch: trunk, size: 116370 | |
2014-08-25
| ||
17:43 | s2: added s2_cb_is_callable() and s2.isCallable() to simplify some script code. file: [b17c1d8522] check-in: [91bc0544fa] user: stephan branch: trunk, size: 112541 | |
2014-08-23
| ||
13:00 | s2: array.integer access no longer binds the array as "this" for calls resulting from that access. Added infrastructure to allow us different between "this-binding" and "non-this-binding" operations better. file: [602c3e0bbb] check-in: [1801b84e11] user: stephan branch: trunk, size: 112314 | |
2014-08-22
| ||
12:10 | s2: empty functions (no params and empty body) no longer store their source, nor do they get the various call-local variables (argv, this, imported symbols), and they otherwise do less work when called. Params list is no longer parsed when it is empty, nor is the body (but because params lists can have side effects, we cannot completely optimize out a func with params but no body). file: [98ac9fccbb] check-in: [ce97684b46] user: stephan branch: trunk, size: 111903 | |
2014-08-16
| ||
17:25 | s2: minor restructuring to allow some of the currently core functionality to be loaded via DLLs instead (or in addition to). file: [1f091e2621] check-in: [a77fb28977] user: stephan branch: trunk, size: 111864 | |
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: [0970795ae1] check-in: [4c8879eff0] user: stephan branch: trunk, size: 111763 | |
11:32 | s2: more work on the # operator and the internal conventions around dot-like operators. file: [1364861d8a] check-in: [c3372f8f72] user: stephan branch: trunk, size: 111547 | |
2014-08-14
| ||
17:32 | s2: Added the experimental H#K (hash search) operator. Only usable in read contexts, not assignments. file: [82bd87fc3c] check-in: [79d7152597] user: stephan branch: trunk, size: 111352 | |
2014-08-10
| ||
12:42 | (failed) experimentation with taking more refs during the main s2 eval loop. file: [cdd27ab556] check-in: [216eb214b2] user: stephan branch: trunk, size: 110905 | |
2014-08-09
| ||
11:07 | s2: refactored int/double shared funcs into a shared prototype, added parseInt(), parseDouble(), parseNumber(). file: [a7ded7579e] check-in: [91c40a7e41] user: stephan branch: trunk, size: 110441 | |
08:47 | added s2.io.realpath(), patched require.s2 to use it. file: [393c42577f] check-in: [f54dba503e] user: stephan branch: trunk, size: 110442 | |
2014-08-01
| ||
19:47 | s2_engine now dlcloses modules, though i really know better than to do so so. Build tweaks. file: [a28d912578] check-in: [e66d37216a] user: stephan branch: trunk, size: 109791 | |
2014-07-26
| ||
18:52 | s2: added script file name to s2_error class, and got it working in more contexts. file: [6b98fc9c84] check-in: [2285eb16ea] user: stephan branch: trunk, size: 109631 | |
2014-07-20
| ||
13:41 | s2: added s2.io.flush(). file: [6669c5c4bc] check-in: [2315509a76] user: stephan branch: trunk, size: 109212 | |
2014-07-18
| ||
14:40 | s2: ported in strftime() impl from th1ish. file: [3d552b64b1] check-in: [066ab7f7a2] user: stephan branch: trunk, size: 108978 | |
10:35 | s2: doc updates. file: [0caf0fdd07] check-in: [1ce6b1f02b] user: stephan branch: trunk, size: 107162 | |
2014-07-16
| ||
23:34 | s2: Added Function.sourceCode(). file: [1c5fefa612] check-in: [02e3aa3a10] user: stephan branch: trunk, size: 107061 | |
22:55 | s2 now takes over cwal's top-most scope. file: [09edd9ca3a] check-in: [640daaf522] user: stephan branch: trunk, size: 106923 | |
2014-07-14
| ||
20:31 | s2: minor touchups in the tmpl code. file: [0f688fe364] check-in: [194f36f84b] user: stephan branch: trunk, size: 105963 | |
20:16 | s2: ported in tmplish (s2.tmpl()), with minor mods, added s2.io.output/print(). file: [d6e71854c6] check-in: [e66a6f2525] user: stephan branch: trunk, size: 105963 | |
2014-07-11
| ||
21:59 | s2: added =~ and !~ overload-only ops, improved (but not perfected) error reporting for second-pass eval errors, improved the shell extension demo a bit. file: [485c942eae] check-in: [d24921a38c] user: stephan branch: trunk, size: 97301 | |
20:03 | s2: mostly build-related stuff, getting s2sh client-extensible. file: [3efb15610c] check-in: [cc53da0c53] user: stephan branch: trunk, size: 96627 | |
17:28 | s2: (failed) experimentation with hijacking the cwal top scope (breaks e->prototypes). Added some test script code. file: [773874941c] check-in: [ab2a7477d1] user: stephan branch: trunk, size: 98182 | |
15:32 | s2: ported in sleep() and mssleep(), installed as s2.time.ms/sleep(). Other minor cleanups along the way. file: [0581deb964] check-in: [03c1247d01] user: stephan branch: trunk, size: 97943 | |
2014-07-10
| ||
19:32 | s2: changed -> precedence to equal the dot-op, as this is the closest symbol we have to the dot-op available for generic overloading. file: [d8567180b6] check-in: [ffc6274c2a] user: stephan branch: trunk, size: 96576 | |
19:07 | s2: overhauled the scope subsystem, adding the s2_scope abstraction layer. Moved the sweep/vacuum guard levels, which are always scope-specific anyway, into that. Ooops - and i now see that the overloadable -> operator (which i thought was checked in last night) is also here. Wanted that done separately :/. file: [ed047653fe] check-in: [f18c8ff4ed] user: stephan branch: trunk, size: 96611 | |
2014-07-08
| ||
20:58 | s2: ported the "ob" API. file: [ae887b69b0] check-in: [f7f7e7dff7] user: stephan branch: trunk, size: 97109 | |
19:36 | Tiny cleanups. file: [5ee8f621af] check-in: [a968b498fa] user: stephan branch: trunk, size: 88454 | |
2014-07-07
| ||
20:29 | s2: added a getenv(3) script binding. file: [2c736c9b12] check-in: [2f4e931872] user: stephan branch: trunk, size: 87663 | |
19:01 | s2: ported in module loader and sample module. file: [158caddfb1] check-in: [460a4cf3ef] user: stephan branch: trunk, size: 87413 | |
17:56 | s2: ported in PathFinder class from th1ish, plus some related infrastructure. file: [5faa64d342] check-in: [a609daa8f4] user: stephan branch: trunk, size: 80363 | |
16:30 | s2: minor internal cleanups, ported in the JSON parsing API from th1ish. file: [0030be7825] check-in: [683900d70d] user: stephan branch: trunk, size: 75253 | |
2014-07-06
| ||
20:21 | s2: Minor return type changes in Buffer.append/appendf/fill(). file: [77f61a1593] check-in: [9aadb8679d] user: stephan branch: trunk, size: 74071 | |
14:47 | s2: stack traces :). file: [0860db69cd] check-in: [ef50df7221] user: stephan branch: trunk, size: 74517 | |
12:16 | s2: got line/column counting in funcs working, but it is not yet caught by exceptions. __FLC works, though. file: [43ddeec348] check-in: [a43400f6da] user: stephan branch: trunk, size: 74200 | |
10:17 | s2: alternative impl of script func storage which uses a central hashtable to hold the body bytes. Not yet sure about mem costs. file: [4e4fb2dbb7] check-in: [6ce7937b3a] user: stephan branch: s2-funcs, size: 74042 | |
09:10 | s2: a different impl of script func state, using c-strings. no lifetime issues, but the alloc costs are a mixed bag - bit savings in small scripts and big costs in large ones. Gonna try a hash-based entry next... file: [f34577b359] check-in: [d39faa10ac] user: stephan branch: s2-funcs, size: 74019 | |
2014-07-05
| ||
16:01 | s2: minor internal cleanups, added interactive-by-default if isatty(stdin) to the shell. file: [0fa972ea3f] check-in: [21addb0266] user: stephan branch: trunk, size: 74089 | |
2014-07-04
| ||
23:56 | s2: chasing (have not found) an inexplicable bug which causes an overridden unary (not binary) op in a local object causes op overloading of binary + to fail for strings afterwards. No theories yet. Some work on re-doing some overloading semantics. file: [e044fcd700] check-in: [8ebbff72f4] user: stephan branch: trunk, size: 73995 | |
18:22 | s2: added ++/-- for obj.property. Added s2_engine::metrics::nextTokenCalls. file: [832eb8b1f1] check-in: [e5558631f0] user: stephan branch: trunk, size: 73818 | |
15:14 | s2: got ++prefix, postfix++ working for plain identifiers. ++obj.prop and obj.prop++ are pending. file: [bd0fe41fec] check-in: [3562112748] user: stephan branch: trunk, size: 72986 | |
2014-07-03
| ||
21:52 | s2: started work on an interactive shell mode using linenoise for input. file: [3808669240] check-in: [04c0d82c9d] user: stephan branch: trunk, size: 72953 | |
18:46 | s2: added the "combo" assignment operators for simple identifiers (X+=Y and friends). X.Y+=Z and friends coming up. file: [100264306d] check-in: [06089df159] user: stephan branch: trunk, size: 72444 | |
2014-07-02
| ||
22:07 | s2: minor tinkering, mostly with how to adjust error location info for script function bodies. file: [8221d1dd4c] check-in: [25aebe67d6] user: stephan branch: trunk, size: 72009 | |
18:18 | s2: ported in the Hash class, other minor cleanups. file: [6e9a7ef949] check-in: [62a274945f] user: stephan branch: trunk, size: 70357 | |
2014-07-01
| ||
21:26 | s2: ported in the Buffer class, a number of other tweaks. TODO: finish buffer unit tests. file: [17f5f4a13c] check-in: [5f6b5a8f85] user: stephan branch: trunk, size: 69465 | |
17:33 | s2: ported in the Integer and Double prototypes. file: [3fa0ba86f2] check-in: [073c88573c] user: stephan branch: trunk, size: 69413 | |
2014-06-30
| ||
15:23 | s2: finally got emacs to stop indenting for the extern "C" blocks, so reformatted. file: [6c9fcf57b8] check-in: [f5c8a0fdfc] user: stephan branch: trunk, size: 69308 | |
2014-06-29
| ||
21:41 | s2: started porting in some of the stack trace infrastructure and improving s2_ptoker a bit. file: [ad27734fb9] check-in: [54ea5fa5e9] user: stephan branch: trunk, size: 71726 | |
13:57 | s2: improved func call support (lifetimes invalidated prematurely), fixed a stale pointer usage, added function NAME(){...} option, recycle s2_func_state, added some metrics for func state. file: [9788a4ef1d] check-in: [479f623b39] user: stephan branch: trunk, size: 71230 | |
2014-06-28
| ||
18:24 | s2: calling script-created funcs seems to be working working. Error location info is wrong (it's relative to the function), but we'll eventually find a way around that. file: [a09fafda0b] check-in: [ef7556dbf5] user: stephan branch: trunk, size: 70402 | |
13:16 | minor doc addition. file: [80c7622da6] check-in: [e6b2caf3b3] user: stephan branch: s2-semicolons, size: 69721 | |
02:44 | side effects of tonight's gc debugging session. Fixed return/refcount keyword ordering. file: [b57dfcada3] check-in: [5800e99ab7] user: stephan branch: s2-semicolons, size: 69573 | |
2014-06-27
| ||
18:59 | s2: more work on the semicolon changes, added 'continue' keyword, keywords are now looked up via bsearch(). file: [5d13b8eacd] check-in: [4b2b66692b] user: stephan branch: s2-semicolons, size: 69610 | |
14:32 | minor comment/doc changes. file: [6343505bb9] check-in: [4f8c55b008] user: stephan branch: trunk, size: 69050 | |
2014-06-25
| ||
22:12 | minor commenting and test code before bed. file: [46c5f669ec] check-in: [0987507659] user: stephan branch: trunk, size: 68830 | |
21:44 | s2: added if/else. Turned off string interning by default in the shell. file: [9142316848] check-in: [5c27b8123d] user: stephan branch: trunk, size: 68830 | |
19:20 | s2: added break keyword, fixed sweepup in eval-file subscopes, added global s2 object and s2.import(), several minor cleanups and fixes. file: [338119114e] check-in: [cb6ce80c0b] user: stephan branch: trunk, size: 67559 | |
2014-06-24
| ||
22:33 | removed some dead code. file: [a5ad04d51f] check-in: [e1d9a313f8] user: stephan branch: trunk, size: 67107 | |
22:32 | Moved auto-propagation of return/break/etc values (back) into the cwal core. s2: added refcount keyword. Fixed EOL handling for keyword RHS parsing (most require that the RHS start on the same line, or optionally treat EOL as an empty/undefined result, e.g. return/exit). file: [d9421193be] check-in: [7cc1a0c00c] user: stephan branch: trunk, size: 67203 | |
19:55 | s2: added return/throw/fatal/exit keywords, all specializations of eval/scope. file: [05ef0ffb6e] check-in: [e33a2d68a3] user: stephan branch: trunk, size: 68769 | |
2014-06-23
| ||
21:47 | s2: more prototype infrastructure and minor cleanups. file: [23b087c65d] check-in: [b55395df97] user: stephan branch: trunk, size: 68258 | |
2014-06-22
| ||
17:11 | s2: added the catch keyword, fixed the typename keyword evaluating past a neighboring comma. file: [85f053aeaf] check-in: [b44ac6f822] user: stephan branch: trunk, size: 64639 | |
15:51 | s2: improvements in error location reporting. Ported in remaining Object prototype bytes from th1ish. file: [ead3cde5c1] check-in: [af591152f3] user: stephan branch: trunk, size: 64639 | |
12:26 | more work on the s2 prototype-level infrastructure. file: [6d98051027] check-in: [37d1fb55b4] user: stephan branch: trunk, size: 62163 | |
09:42 | s2: added func/method call() support. This breaks obj.(prop) access, but that was arguable fluff, anyway, so it's been removed. file: [7d9c71f8fd] check-in: [4c045a135e] user: stephan branch: trunk, size: 61123 | |
2014-06-21
| ||
21:20 | Minor op precedence tweaks (conformance) and uninitialized var fix (thanks, valgrind). file: [aae18ec40e] check-in: [b0f2e2f99c] user: stephan branch: trunk, size: 61103 | |
20:14 | s2: added unset keyword to remove vars and properties. file: [686d9376e8] check-in: [7789635439] user: stephan branch: trunk, size: 61091 | |
18:15 | Added object literals (JS/JSON-like). {SquigglyStrings} are now always object literals unless context/a keyword changes that. file: [8684b1394a] check-in: [4f6e3866a8] user: stephan branch: trunk, size: 60718 | |
14:50 | s2: added PHP-style array-append operator, imported a bit more prototypes infrastructure, improved valgrind testing a bit. Added inherits operator. Keep forgetting to check in. file: [f5fa113dfb] check-in: [6e0c316928] user: stephan branch: trunk, size: 60951 | |
01:16 | Got s2's basic assignment op working. file: [a3d425a786] check-in: [5a29248cf9] user: stephan branch: trunk, size: 60037 | |
2014-06-20
| ||
22:32 | cleanups in s2 error reporting/handling. file: [b69b3acd9e] check-in: [336caed0e0] user: stephan branch: trunk, size: 59997 | |
18:48 | s2: fixed a newline-slurping bug which caused expressions to bleed together. Added infrastructure for propagating return/exit/break values. file: [3c7ff642b5] check-in: [edd8c19dfc] user: stephan branch: trunk, size: 58282 | |
2014-06-19
| ||
16:29 | converted more tokenization errors to syntax errors. file: [49e0dbfabe] check-in: [ebeaa3c5c6] user: stephan branch: trunk, size: 55525 | |
15:45 | More exception-vs-fatal error distinctions. Lots of tinkering with sweep-up, fixing some cleanup timings. file: [725d4ac773] check-in: [f3e77e10f9] user: stephan branch: trunk, size: 55472 | |
10:10 | bending around the s2 exception/error infrastructure a bit, in prep for throwing exceptions. file: [496f437d60] check-in: [d7399dd09b] user: stephan branch: trunk, size: 54801 | |
00:20 | added var/const decl to s2. file: [a7cbccf80d] check-in: [5e6e89ac41] user: stephan branch: trunk, size: 52423 | |
2014-06-16
| ||
21:47 | minor cleanups before bed. file: [294083bfcc] check-in: [d8ff1745bb] user: stephan branch: trunk, size: 51860 | |
20:17 | More work on operator overloading, +/- ops, got unary +/- on strings doing the right thing. file: [461037a721] check-in: [8bee802f30] user: stephan branch: trunk, size: 51860 | |
18:54 | Added more prototypes infrastructure. Implemented string+string op via operator overloading. Lots of minor tinkering. file: [ce609cf118] check-in: [fba5a0c999] user: stephan branch: trunk, size: 51533 | |
2014-06-15
| ||
21:13 | Added the 'typename' keyword to s2 - works like in th1ish. Made the dollar sign a legal identifier character. file: [4ed0f5259a] check-in: [14eb0459bf] user: stephan branch: trunk, size: 48825 | |
19:41 | Seem to have gotten sweep-up working how i want it in s2. file: [40e4faf365] check-in: [2239164d8f] user: stephan branch: trunk, size: 48703 | |
15:12 | Error reporting cleanups. {squigglies} may now contain only script-legal tokens, leaving heredocs as the generic catch-all string type. May want to re-think this limitation later. file: [42ca572ac7] check-in: [41ebd75fbd] user: stephan branch: trunk, size: 47065 | |
12:50 | added very basic s2 shell (stdin only). Discovered some EOL-related problems along the way. file: [d371337c50] check-in: [948fb7e49e] user: stephan branch: trunk, size: 46826 | |
11:06 | Started adding script name infrastructure to the error reporting. Fixed assert() to honor skip mode. file: [947267dd22] check-in: [c3edf01eca] user: stephan branch: trunk, size: 46826 | |
09:28 | More s2 refactoring/code moving, added assert keyword. Finally broke the 2kb RAM barrier with 67 allocs across 201 test scripts. file: [6c31316485] check-in: [9b23787767] user: stephan branch: trunk, size: 46864 | |
07:50 | ported in more prototypes stuff, but need to restructure for testing. file: [18a05f42ca] check-in: [5fe65e8b2a] user: stephan branch: trunk, size: 40587 | |
2014-06-14
| ||
21:46 | changed some API semantics which had been bugging me. file: [b7c415702b] check-in: [d46589d735] user: stephan branch: trunk, size: 40534 | |
21:35 | s2 ternary if seems to work. file: [c66b62184d] check-in: [9bfa64c94b] user: stephan branch: trunk, size: 40517 | |
17:10 | added ||| ("Or3") operator (with JS || semantics) and changed || to use bool-only results (like most languages). file: [f582b94aef] check-in: [30af8e98c8] user: stephan branch: trunk, size: 40512 | |
15:17 | added null/undefined/true/false keywords to s2. file: [6e1e33ac36] check-in: [423d1709df] user: stephan branch: trunk, size: 40429 | |
11:32 | more internal s2 refactoring. file: [4849a48173] check-in: [4e270a462d] user: stephan branch: trunk, size: 40343 | |
2014-06-13
| ||
19:10 | ported in the major var/property APIs and some more infrastructure. Found a nice solution to the identifier-vs-string resolution problem, so OBJ.PROP works now. Fixed {squiggly} support i broke when fixing (parens|braces). file: [21f78c1134] check-in: [6b75da09a6] user: stephan branch: trunk, size: 40157 | |
2014-06-12
| ||
22:35 | More s2 (surprise!). Added initial OBJ.PROP support, but it currently just resolves to its RHS. file: [29b7c7bfb0] check-in: [1ef73de222] user: stephan branch: trunk, size: 35216 | |
16:54 | refactored the eval-related code a bit to take a set of flags. Cleaned up test script output a bit. file: [21fe525f88] check-in: [bbaf777cdd] user: stephan branch: trunk, size: 34820 | |
2014-06-11
| ||
21:37 | more s2 cleanups, mostly in syntax error detection. file: [af0c12b273] check-in: [f0ceba8432] user: stephan branch: trunk, size: 33968 | |
17:06 | more st==>ptoker renaming. file: [a8e22f9105] check-in: [ebffa08159] user: stephan branch: trunk, size: 33473 | |
17:00 | Make S2_T_EOF non-0, S2_T_INVALID==0 (and make that an API guaranty). Fixed related breakage which assumed NUL==EOF. file: [aef39eb6d3] check-in: [33a842fe9d] user: stephan branch: trunk, size: 33465 | |
16:47 | minor s2 tweaks before trying more invasive changes. file: [c08729b20d] check-in: [767e218c1a] user: stephan branch: trunk, size: 33068 | |
2014-06-10
| ||
22:41 | good night, s2. file: [3cff77d949] check-in: [a54e62f03c] user: stephan branch: trunk, size: 33035 | |
21:49 | Lots more s2 cleanups, touchups, pull-ups, and other forms of ups. Well, okay, no pull-ups. Chuck Norris already did all of those. Twice. Valgrind clocks in at 46 mallocs using 1240 bytes of RAM for 82 test scripts totaling 1737 bytes of script code on the ODroid (32-bit ARM). file: [df6c024a06] check-in: [e9d18ebc18] user: stephan branch: trunk, size: 31365 | |
19:24 | Finally got the multi-semicolons behaviour i wanted wrt s2 eval. file: [9a4b6bc85b] check-in: [f0aa01005f] user: stephan branch: trunk, size: 29799 | |
2014-06-09
| ||
17:15 | more s2. added comparison ops. file: [16b37d5072] check-in: [cc3e8acbe2] user: stephan branch: trunk, size: 29799 | |
12:52 | more work on s2. added heredocs. cleaned up test code basis. file: [3e48782e86] check-in: [11be7e573e] user: stephan branch: trunk, size: 29673 | |
09:53 | Added a mechanism for s2 to support th1ish-like 'adjusted' tokens, to support squiggly strings and heredocs. file: [0408148660] check-in: [22641e8a72] user: stephan branch: trunk, size: 29298 | |
2014-06-08
| ||
23:49 | more work on s2... file: [c168740a37] check-in: [0f0c7757be] user: stephan branch: trunk, size: 29299 | |
15:22 | more s2 refactoring towards the ability to tokenize single expressions at a time. file: [3c11d1abc8] check-in: [f1ccf9ad92] user: stephan branch: trunk, size: 29705 | |
11:15 | more s2 refactoring, working towards expression-level parsing and short-circuit skipping. file: [9d8febfc3a] check-in: [704cceeb3e] user: stephan branch: trunk, size: 29407 | |
2014-06-07
| ||
18:34 | Seem to have gotten the precedences working. For now. file: [4ddb3fa3f2] check-in: [74863c58b7] user: stephan branch: trunk, size: 26726 | |
15:47 | more tinkering with s2. file: [df52bbd250] check-in: [245717259d] user: stephan branch: trunk, size: 26026 | |
10:28 | more work on the error propagation bits. file: [1cfab71d44] check-in: [e8a6f25b60] user: stephan branch: trunk, size: 25966 | |
08:52 | started adding some infrastructure for non-exception error reporting in s2. file: [b41b893a7b] check-in: [12a26287ab] user: stephan branch: trunk, size: 23768 | |
2014-06-06
| ||
23:20 | more cleanups in the calculator. file: [0dc8d0d677] check-in: [982d16c897] user: stephan branch: trunk, size: 22627 | |
22:17 | s2 calculator is coming along. file: [562d2936de] check-in: [6382ebced0] user: stephan branch: trunk, size: 22585 | |
20:19 | Got the most basic of calculator running in s2. file: [b999c4f4f1] check-in: [86a3a5181a] user: stephan branch: trunk, size: 22165 | |
18:39 | s2: got basic tokenizer in place. file: [c0d59482e5] check-in: [43c1df5ce8] user: stephan branch: trunk, size: 21264 | |
2014-06-05
| ||
21:40 | more s2 tinkering. bed time again. file: [800a5aa940] check-in: [8078407025] user: stephan branch: trunk, size: 20697 | |
20:46 | more s2 refactoring. bed time. file: [237d34e630] check-in: [41818e5b28] user: stephan branch: trunk, size: 20502 | |
20:30 | Added more s2 operators, fixed token recycling to actually recycle. file: [a0b83f4ff6] check-in: [0e2d36e2c3] user: stephan branch: trunk, size: 19356 | |
18:26 | Cleanups in s2, implemented multiply/divide/modulo ops. file: [e57439b3bc] check-in: [b0e033e337] user: stephan branch: trunk, size: 18512 | |
2014-06-04
| ||
22:09 | implemented PoC unary/binary add/subtract ops in s2. file: [f1d1fb8cd1] check-in: [e929071170] user: stephan branch: trunk, size: 12007 | |
2014-06-03
| ||
22:32 | Got some basic PoC in place for s2. file: [f1f5c4445d] check-in: [0e11ae0e16] user: stephan branch: trunk, size: 8129 | |
20:53 | Added: tinkering with some ideas for a stack-machine-based interpreter. nothing useful yet. file: [619f31622a] check-in: [f4eb30ae39] user: stephan branch: trunk, size: 7684 | |