Tcl Library Source Code

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

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

Integrated work on a first C parser for JSON. json 1.3, tcllibc 0.3.11. See ticket [6efa4f571a]. check-in: df814df3ab user: andreask tags: trunk
Finalized integration. Bumped to version 1.3. Closed-Leaf check-in: 0b57c2407c user: andreask tags: ak-bug-6efa4f571af052-jsonc
Switched validation from the C parser back to a shared Tcl implementation, regexp based. It is consistently faster. No overhead creating irrelevant data structures is main suspected cause. check-in: 5a645be338 user: andreask tags: ak-bug-6efa4f571af052-jsonc
Added synthetic benchmarks constructing larger json structures. check-in: f8b84da1d4 user: andreask tags: ak-bug-6efa4f571af052-jsonc
Fixed bug in json::dict2json. Nobody seems to have used this before. check-in: 05d128bcc8 user: andreask tags: ak-bug-6efa4f571af052-jsonc
Sort tests by name in the data arrays check-in: 9b736e1cfc user: andreask tags: ak-bug-6efa4f571af052-jsonc
Small test simplification check-in: 942a650535 user: andreask tags: ak-bug-6efa4f571af052-jsonc
Fixed buglets which slipped through in previous commit. check-in: 1c1271bd98 user: andreask tags: ak-bug-6efa4f571af052-jsonc
Moved the larger test cases and data into separate files, less quoting that way. Added test case for the escape-able characters. Added test cases for invalid json. Shifted the json generating procedures to the common file, making them shared between Tcl and C implementations. Added a benchmark suite, using the test cases in the files as input. check-in: af6919a548 user: andreask tags: ak-bug-6efa4f571af052-jsonc
Implemented many-json2dict and validate over json-c. Test cases for many-json2dict reactivated, passing. New cases for validate, passing. Should add test cases for invalid json input. check-in: 08ac1421ee user: andreask tags: ak-bug-6efa4f571af052-jsonc
Integrated additional MI work on a Tcl_ObjType for lazier construction of the Tcl structures from the json C structures. Notes - Modified the Tcl parser to return 0|1 for boolean values, to match the new C parser. Updated testsuite. - Supplied my own definition of assert to fit in with Tcl (Tcl_Panic). - Modified the C conversion of json null to match the Tcl parser, is now 'null', not the empty string. - Changed Tcl_Dict* uses to equivalent Tcl_List* to keep the code usable for Tcl 8.4 - Moved the code handling the deferral/laziness into lazy_value2obj and applied it to array elements as well, not just object fields. - Moved the variables in value2obj into the switch branches. - Changed the Tcl_ObjType structure initialization to regular C. Code as provided (see ticket attachment json2.c) looked like some GCC-ism. Open question - Why does the json2string function not just generate the string rep, but takes the int.rep as well, shimmering the Tcl_Obj*. Seems to presume that the string generation is immediately followed by Tcl code forcing a shimmer anyway ?! Reduced testsuite passes. check-in: 8fc03c91fd user: andreask tags: ak-bug-6efa4f571af052-jsonc
Initial work on a critcl json parser based on json-c. Issues: many-json2dict has no C equivalent, nor the *2dict commands. Boolean is 0/1 vs true/false in C vs. Tcl, this should be fixable in the testsuite. Basics are working. check-in: c51875a02a user: andreask tags: ak-bug-6efa4f571af052-jsonc
Fixed doc typo. check-in: c3973cc954 user: andreask tags: trunk