Home

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

169 check-ins using file quadcode/widen.tcl version a0dbb47a35

2017-10-25
06:59
Convert the weird global USE_TCL_STUBS into a proper configurable. check-in: 1a763ecebc user: dkf tags: package-compiler
2017-10-22
23:48
Make the package compiler Work On My Machine. This messy machine dependency probably belongs in llvmtcl, not quadcode, and should be autoconf'ed. check-in: a14a39d933 user: kbk tags: package-compiler
00:28
Better code for determining where system binaries are installed. check-in: a3f19f9060 user: dkf tags: package-compiler
2017-10-21
12:31
Tweakery in the demo showed at Tcl 2017. check-in: 9f3aba25fe user: dkf tags: minor change, package-compiler
2017-10-20
19:07
Host triple determination is now under Tcl control and we have a sensible default. check-in: e5a0287829 user: dkf tags: package-compiler
2017-10-19
11:42
merge trunk check-in: 09b391365c user: dkf tags: package-compiler
11:41
Shore up the package construction. check-in: fe14f5fccb user: dkf tags: package-compiler
11:27
Added test case for a (currently) uncompileable package. Clean up some errors. check-in: 239195f2e2 user: dkf tags: package-compiler
2017-10-17
23:54
Do the object file generation directly, and try to fix the linking to be more useful when working with non-stubbed code. check-in: 1aafd67d2f user: dkf tags: package-compiler
2017-10-16
23:00
Tidy slides for conference check-in: e4e63af603 user: kennykb tags: trunk
22:15
Add Tcl2017 conference materials check-in: 974ec096f4 user: kbk tags: trunk
21:16
Make a working (on my machine) demo of compiling a package. check-in: ca247f6b41 user: dkf tags: package-compiler
20:45
Use llc for converting bitcode to object code. check-in: 295551afde user: dkf tags: package-compiler
2017-10-14
11:49
Fix silly mistakes in the code to compile to a DLL check-in: 9793ce721b user: dkf tags: package-compiler
11:29
Merge trunk check-in: 129c63dbe1 user: dkf tags: package-compiler
2017-10-10
12:02
Mark more parameters in the Tcl API as OUT. check-in: a84ef0b8e1 user: dkf tags: trunk
2017-10-09
10:40
Allow the empty string to be used for NULL in more function calls. check-in: 273c85cd9c user: dkf tags: trunk
2017-09-30
17:10
Experimental package-oriented compiler. check-in: 113af7c111 user: dkf tags: package-compiler
11:25
merge trunk Leaf check-in: 040132931b user: dkf tags: dkf-optimization-experiment
2017-09-24
06:59
Fast-path code can share some bits. check-in: 98fffb2a69 user: dkf tags: trunk
2017-09-23
11:33
A more efficient way to store numeric values in a Tcl_Var. check-in: e550f13c8c user: dkf tags: trunk
2017-09-22
07:18
Ensure that all discovered local variables get an LVT entry. check-in: c85b37c213 user: dkf tags: trunk
2017-09-19
02:12
Correct oversight: direct variable access must adjust 'readsGlobal', 'writesGlobal' and the 'pure' and 'killable' flags. check-in: 114a1a01b4 user: kbk tags: trunk
2017-09-17
23:10
Initial implementation: direct variable access check-in: 53eb49f304 user: kbk tags: trunk
23:08
Initial implementation of direct variable access. Closed-Leaf check-in: 3ade2b58f3 user: kbk tags: namespace-variables
22:14
Direct variable access: merge in dkf-direct-variables, make varframe.tcl not crash. Need code and test cases for spoliation of local may-alias vars when direct vars are updated. check-in: 1b5ad48130 user: kbk tags: namespace-variables
2017-09-16
14:03
merge trunk Leaf check-in: 63c5af8e72 user: dkf tags: errorline-fixing
2017-09-15
04:19
merge namespace-variables: fix bug that prevented optimization of 'moveToCallFrame' check-in: e1519285ca user: kbk tags: trunk
04:15
Fix bug that prevented optimization of 'moveToCallFrame' check-in: f019722399 user: kbk tags: namespace-variables
03:38
Merge namespace-variables: make sure that variables created with pass-by-name are listed in the initial callframe check-in: 2570e4a684 user: kbk tags: trunk
03:36
Make sure that variables that are created in pass-by-name have callframe slots in advance check-in: 46dd653d5e user: kbk tags: namespace-variables
03:12
Merge namespace-variables: more aggressive detection that a proc doesn't touch the callframe at all. check-in: 7a6695ff7e user: kbk tags: trunk
03:10
Add cleanup optimization, the lack of which was causing 'eliminateCallFrame' not to find a fair number of opportunities. check-in: caf952b7b6 user: kbk tags: namespace-variables
02:18
Make sure that 'errorCode' and 'errorInfo' are available when errors are caught. check-in: fbb0672c61 user: kbk tags: trunk
01:59
merge trunk check-in: edbdde5e70 user: kbk tags: namespace-variables
01:56
Make sure that errorCode and errorInfo are available after a caught errror check-in: edd073a183 user: kbk tags: namespace-variables
2017-09-14
12:33
merge trunk check-in: 6d79c2c2f1 user: dkf tags: errorline-fixing
12:33
Generate correct errorinfo traces on error. Has a negative performance impact. check-in: e03627d13b user: dkf tags: trunk
12:27
Added some information about the support pseudo-instructions that I use. check-in: cd53fc1345 user: dkf tags: errorline-fixing
10:48
Update documentation comments. check-in: 9902f56df4 user: dkf tags: errorline-fixing
01:47
Merge in a rudimentary implementation of [upvar], [namespace upvar], global check-in: 9bb4742561 user: kbk tags: trunk
01:44
Conservatively model frame effects of calling a proc that uses namespace variables. check-in: 3b6c5ae00b user: kbk tags: namespace-variables
2017-09-13
21:13
Fix the error line generation. Makes error handling quite a bit slower, but that's inevitable for perfection right now. check-in: 4d2c3566df user: dkf tags: errorline-fixing
02:46
Refactor the methods 'variablesUsedBy', 'variablesProducedBy', 'canEliminateCallFrame' into quadcode::transformer out of quadcode::specializer. check-in: e950773b33 user: kbk tags: namespace-variables
02:31
Remove code that was obviated by the last few refactorings check-in: 96e9b9f12f user: kbk tags: namespace-variables
02:25
Calculate frame effects of the three builtins that have to be parsed to determine them check-in: 0756376dee user: kbk tags: namespace-variables
01:57
Refactor varsUsedBy and varsProducedBy to use the frameEffect method rather than reaching into the data structures directly. check-in: c142f038a8 user: kbk tags: namespace-variables
01:44
Refactor the 'frameEffect' method to take the quadcode instruction that invokes the command check-in: 1756e035ff user: kbk tags: namespace-variables
01:39
Return to building builtins.tcl from builtins.{txt,tcl.in} check-in: 97987fdae2 user: kbk tags: namespace-variables
2017-09-12
02:07
Remove redundant tests of upvar; start adding tracking of whether procs manipulate globals; correct 'varsReadBy and 'varsWrittenBy' to return variable lists as documented. check-in: 4e884fd992 user: kbk tags: namespace-variables
2017-09-10
02:16
More debugging of support for procedure side effects. Performance now equals trunk, and upvattest::test2 and test4 now pass. check-in: 1e812f9282 user: kbk tags: namespace-variables
2017-09-09
20:29
Make demos work again:: (1) Fix typos in 'frame.release'. (2) Add missing 'addReference(FAIL DICTITER)'. (3) Don't analyze or generate code for procs with NOTHING args - they're always in unreachable code, or code that will be re-analyzed. (4) Remove console dribble. (5) Make sure that procs that use caller variables force the caller to have a callframe, and ones that write variables are not killable. check-in: ed5d20535c user: kbk tags: namespace-variables
14:52
Change specializer API to pass param types along with procedures when inquiring about callframe effects check-in: 8df6d12af0 user: kbk tags: namespace-variables
14:46
Fix bugs in upvar tests so that demos don't crash. check-in: f310c12a4b user: kbk tags: trunk
14:15
Development checkpoint - beginnings of code needed to calculate frame effects of procs on their callers. check-in: e01460f477 user: kbk tags: namespace-variables
2017-09-08
14:41
Getting better; now generate correct trace except for an error line number. check-in: f17a341138 user: dkf tags: errorline-fixing
2017-09-07
10:18
Getting better. Still not getting traces really right. check-in: ee3e63a7b1 user: dkf tags: errorline-fixing
2017-09-04
21:18
Improving the testing. Fix a crash case. check-in: 06912b9738 user: dkf tags: errorline-fixing
18:49
Development checkpoint - partial implementation of a better analysis of [upvar]. check-in: 35305bdca1 user: kbk tags: namespace-variables
2017-09-03
12:27
Seems to be generating the right error lines now. Looks like there's a bug in Tcl in this area too. check-in: 764f4d2608 user: dkf tags: errorline-fixing
11:26
merge trunk check-in: 8e8b56738a user: dkf tags: errorline-fixing
2017-08-29
00:18
Oops: remove console dribble. check-in: 8775c6ae91 user: kbk tags: namespace-variables
2017-08-27
20:51
Add quick-and-dirty approximation to [upvar]'s callframe effect, enough to get something working, but known to be incorrect in significant corner cases. check-in: 0e3ab8a2bd user: kbk tags: namespace-variables
18:51
Merge trunk: return to autogenerating builtins.tcl check-in: e797987631 user: kbk tags: namespace-variables
18:50
Return to auto-generating builtins.txt, to allow for evolution of the builtin dictionary check-in: f98b1a6985 user: kbk tags: trunk
2017-08-26
20:13
Merge trunk: do not emit spurious labels in tcl.*.var.ptr check-in: 241fb9fa72 user: kbk tags: namespace-variables
20:11
[dabd7e27c7]: Do not emit extraneous labels in tcl.{read,write,unset}.var.ptr. Also, correct type signature of Tcl_ObjectContextObject. check-in: 73ed5e7b93 user: kbk tags: trunk
15:22
Tinkering for clarity Leaf check-in: 364ac98f7c user: dkf tags: minor change, dkf-enhanced-output-diff
2017-08-21
23:56
Working towards fixing the errorline info. check-in: 10a6ce570f user: dkf tags: errorline-fixing
00:16
Better highlight of differences of outputs when before/after results vary check-in: 728a7a9fe0 user: dkf tags: dkf-enhanced-output-diff
00:14
Better result dictionary comparisons; exclude more irrelevant bits. check-in: ffaba6143f user: dkf tags: trunk
2017-08-17
23:05
Fix problems with incorrect return codes greater than 1. check-in: d0352a75a3 user: dkf tags: trunk
23:02
Fix memory corruption issue Closed-Leaf check-in: fb58adf162 user: dkf tags: minor change, returncode-bug
22:36
Made the handling of return codes follow standard rules for procedures much more correctly. check-in: 3f15f0ff00 user: dkf tags: returncode-bug
2017-08-06
10:32
Start of branch hunting problems with non-error [return] calls. check-in: 4401285e32 user: dkf tags: returncode-bug, broken
2017-07-29
15:20
Add documentation comments. Closed-Leaf check-in: 775cd5d9f1 user: dkf tags: minor change, dkf-direct-variables
14:46
Provide direct access to fully-qualified variables. Needs work to be safe for other types of qualification or unqualified. Also, Tcl's hiding away of [incr] guts is highly annoying. check-in: d294b80062 user: dkf tags: dkf-direct-variables
11:27
merge trunk check-in: 683bc2014e user: dkf tags: namespace-variables
11:27
Better use of API. Extend to support changes in int-api. check-in: 3c5bafd097 user: dkf tags: trunk
2017-07-23
21:17
Split things up a bit more internally to keep method size down. check-in: 76da08214e user: dkf tags: trunk, minor change
12:14
Move the variable and callframe implementations out to their own file. check-in: b2242736f9 user: dkf tags: trunk
11:55
merge trunk check-in: 039332be89 user: dkf tags: namespace-variables
11:54
Minor tweaks. check-in: 0915d690aa user: dkf tags: trunk
10:56
Changes from namspace-variables branch that are reasonably meaningful elsewhere. check-in: 3bfaafe6a7 user: dkf tags: trunk
06:38
Defining a few more non-null assumptions/assertions. check-in: 3849083e94 user: dkf tags: minor change, namespace-variables
05:42
Tame TclObjGetFrame more thoroughly. check-in: e64a80df2d user: dkf tags: namespace-variables
2017-07-22
11:14
Fix the empty-error problems. TclObjGetFrame has a strange result encoding. check-in: dccd96edb7 user: dkf tags: namespace-variables
2017-07-13
22:36
Commit temporary 'upvar0' test just to try to debug resolution check-in: 7308d80f26 user: kbk tags: namespace-variables
2017-07-08
20:40
Add simple tests (comented out) for upvar. Correct an issue where 'moveFromCallFrame' referenced a FAIL EMPTY CALLFRAME, rather than a CALLFRAME. check-in: e297479fb6 user: kbk tags: namespace-variables
16:09
merge trunk - new string hashing tests. check-in: 00f0d5601b user: kbk tags: namespace-variables
2017-07-07
12:52
Added tests for string hashing. Key test features: callframes, namespace variables, math, [scan %c] and [binary scan]. check-in: 57baf130c3 user: dkf tags: trunk
2017-07-04
21:05
Add some working notes on 'upvar' handling check-in: 6860ba5f08 user: kbk tags: namespace-variables
2017-07-03
10:14
Basic support for [global], [variable] and [namespace upvar] commands. check-in: d1dbb6df59 user: dkf tags: trunk
2017-07-02
23:06
Finished code issuer for upvar. Not yet generated by quadcode engine. check-in: 4ddcd68805 user: dkf tags: namespace-variables
16:11
Add descriptive comments for more builder methods. check-in: e32cbf5f43 user: dkf tags: namespace-variables
15:37
Need to follow variable links when reading or writing. check-in: 9cf6622f71 user: dkf tags: namespace-variables
2017-07-01
19:47
Add code to allow variable binding to fail check-in: f58eccaca7 user: kbk tags: namespace-variables
08:05
Variable binding implementation function done. Something not working. check-in: 2dd141efab user: dkf tags: namespace-variables
2017-06-28
23:01
Most of the error handling machinery on the implementation side. check-in: 4e68c6df02 user: dkf tags: namespace-variables
22:36
Define the variable lookup functions. check-in: a824df10bf user: dkf tags: namespace-variables
18:51
Basic type signatures of implementation functions. check-in: 3cb89fef73 user: dkf tags: namespace-variables
09:34
Machinery for code issue. Still needs implementations. (Can varname lookup fail?) check-in: d817e69c7a user: dkf tags: namespace-variables
08:45
Work around bug in older release of 8.6 check-in: c7a2aa057f user: dkf tags: namespace-variables
2017-06-27
23:49
Resolve inadvertent fork check-in: a82c0275b3 user: kbk tags: namespace-variables
22:33
OOPS: Forgot to add aliases.tcl. check-in: 5e6b1a7c87 user: kbk tags: namespace-variables
18:46
merge trunk check-in: 6968dde9a9 user: dkf tags: namespace-variables
18:46
Fix a spot that wasn't using the namespace path right. check-in: 2d672d3dca user: dkf tags: trunk
02:18
Add demos for 'namespace upvar' and make a bunch of niggling changes in support of namespace variable testing. check-in: 801e909810 user: kbk tags: namespace-variables
01:08
Merge trunk and correct 'infant mortality' typos in analysis of namespace variables (and other proc effects) Closed-Leaf check-in: de509d61a1 user: kbk tags: kbk-namespace-variables
00:51
Oops - correct misspelt -errorinfo check-in: 5d4e019513 user: kbk tags: trunk
00:45
Add the failed procedure to the backtrace from specializer operations check-in: ed477e79d4 user: kbk tags: trunk
2017-06-25
15:15
Defining a general 'write this module to a file' capability. Leaf check-in: aced25cd25 user: dkf tags: dkf-write-to-file
2017-06-24
15:29
merge trunk Leaf check-in: 981e7c27f2 user: dkf tags: tcl-api
15:28
Since we require llvmtcl 3.7, we can assume its set of commands. Leaf check-in: af458d10dc user: dkf tags: dkf-remove-unused-functions
15:26
merge trunk check-in: 1e4c76ade5 user: dkf tags: dkf-remove-unused-functions
15:25
merge trunk check-in: 229d383856 user: dkf tags: dkf-optimization-experiment
15:24
merge trunk Leaf check-in: c1a920e91c user: dkf tags: dkf-colored-output
15:23
merge trunk Leaf check-in: cca323cf88 user: dkf tags: dkf-callframe-debug
10:57
Implementation of synthetic Tcl callframes, allowing compiled code to call many more standard Tcl commands. check-in: 972e702bf1 user: dkf tags: trunk
10:54
An actual working argument synthesis scheme that doesn't overuse reference counting and doesn't misuse the C stack frame. Closed-Leaf check-in: adaedf59a8 user: dkf tags: callframe-impl
2017-06-23
23:16
Working towards completing the basic callframe support. check-in: e06a820668 user: dkf tags: callframe-impl
03:35
Code works again for procs that do not use nonlocal variables - ready to start debugging the ones that do. check-in: 9893a019b4 user: kbk tags: kbk-namespace-variables
03:04
Merge callframe-impl and start on some of the FIXME's. NOT WORKING check-in: 4d8021b2c3 user: kbk tags: kbk-namespace-variables, not-working
2017-06-12
00:58
Remove use/def of the callframe from 'invoke' instructions when the invoked code cannot access the caller's frame at all. check-in: b569ee9109 user: kbk tags: callframe-impl
2017-06-11
10:10
merge callframe-impl check-in: 46a0f7c302 user: dkf tags: dkf-callframe-debug
05:06
merge trunk check-in: 2e6d84f46a user: dkf tags: callframe-impl
2017-06-06
19:22
Generate local Tcl variables in a true on-stack LVT rather than in a ckalloc()ed hash table. check-in: e27adddd5f user: dkf tags: callframe-impl
19:16
Add comment about key feature of one procedure; it is *NOT* to be compiled. Closed-Leaf check-in: 3abcf6b767 user: dkf tags: dkf-improved-proc-metadata
19:14
Remove a bit of the debugging machinery that was unnecessary. check-in: 5f0d2b9a5b user: dkf tags: dkf-improved-proc-metadata
19:12
Force creation of debugging delegate for type in internal function signature. check-in: a4369d511d user: dkf tags: dkf-improved-proc-metadata
19:08
Strip some unnecessary code. check-in: 17f2b1e74a user: dkf tags: minor change, dkf-improved-proc-metadata
19:01
LocalCache structures are refcounted; remember to increment on use! check-in: 351c3f697a user: dkf tags: dkf-improved-proc-metadata
01:09
Rationalize the callframe-elimination code a little bit. check-in: 15b0db31bb user: kbk tags: callframe-impl
00:33
Eliminate callframe allocation/deallocation from procs that are known not to use the callframe at all. check-in: c7f3940a8f user: kbk tags: callframe-impl
2017-06-05
01:10
Update to the current callframe implementation check-in: ffb94761a7 user: kbk tags: kbk-namespace-variables, not working
01:08
Merge in the refactoring of callframe data motion. check-in: 352c2285f9 user: kbk tags: kbk-namespace-variables, not working
00:11
Begin merging incrementally up to current callframe implementation. check-in: f187bb549f user: kbk tags: kbk-namespace-variables, not working
2017-06-04
17:10
Working towards better metadata generation check-in: 34cc0dd981 user: dkf tags: not working, dkf-improved-proc-metadata
11:11
Tweaks that will report where there are problems once we clean up the callframe handling. check-in: da4845de02 user: dkf tags: dkf-callframe-debug
11:08
merge trunk check-in: 3258ec1305 user: dkf tags: callframe-impl
02:59
Correct specializer logging to silence it when it's not turned on check-in: 7a7195c5f5 user: kbk tags: callframe-impl
02:55
merge trunk: attempt at more disciplined node splitting check-in: f77f4de1f4 user: kbk tags: callframe-impl
2017-06-03
10:31
Corral the slowest compilation off in the name of getting a little speed during normal testing. check-in: dd976d6de3 user: dkf tags: minor change, callframe-impl
2017-06-02
20:06
Working towards not needing callframes in all cases. check-in: 1183b74b93 user: dkf tags: callframe-impl
2017-05-31
20:37
Work around for bug in slightly older Tcl 8.6. check-in: 5a1002d67a user: dkf tags: minor change, callframe-impl
2017-05-30
13:29
merge trunk check-in: 998eabdc54 user: dkf tags: callframe-impl
02:49
Merge in some significant optimizations to data motion to and from callframes. check-in: 43425a5758 user: kbk tags: callframe-impl
02:40
Refactor control of data motion to and from the callframe. All tests now pass with the exception of four changed error dictionaries. Closed-Leaf check-in: f7f046450c user: kbk tags: kbk-callframe-motion
2017-05-29
19:38
Merge fixes to code generation for unconditional failures. check-in: 0fdcff1361 user: kbk tags: kbk-callframe-motion
19:35
Repair infinite loop in compilation of 'mrtest', caused by promotion of FAIL to FAIL STRING in procedure return types. Added code to optimize 'jumpMaybe' when a FAIL reaches it, because the unreachable code starts having NOTHING types for values, which cannot be compiled. Added some instrumentation to the specializer. Closed-Leaf check-in: 7f968bed5e user: kbk tags: kbk-callframe-fixes
14:47
Instrumentation used to detect possible infinite loops in the specializer. Closed-Leaf check-in: 2e3f00cdc4 user: dkf tags: dkf-specializer-instrumentation
08:42
merge trunk check-in: 0797bc8f18 user: dkf tags: callframe-impl
02:06
Merge kbk-callframe-motion: repair 'varargs' to work with callframes. check-in: 053faeabbd user: kbk tags: kbk-namespace-variables
02:02
merge dkf-callframe-impl: repair 'varags' pass check-in: cd31f6b8c0 user: kbk tags: kbk-callframe-motion
01:57
Correct varargs to examime the 'invoke' quadcode taking into account the callframe args - and do a major drive-by refactoring. Now passes the 'cos' and 'xsum' tests. Fix for ticket [2fb4388b96]. check-in: 1facb9b83c user: kbk tags: callframe-impl
2017-05-27
17:11
Make the cos-related commands all compile again by applying critical fix for default handling. check-in: 1d6cb9af0a user: dkf tags: callframe-impl
16:40
merge trunk check-in: a5a49b87eb user: dkf tags: callframe-impl
2017-05-22
04:18
Start working on support for 'variable', 'namespace upvar', 'global', and 'upvar #0'. Code is not working as yet. Next steps toward making it work are to rework the FIXME's in callframe.tcl, and eliminate 'callframeNop' once it's done its job. Then comes implementation of 'nsupvar', 'upvar', 'variable' quadcodes, and implementation of the 'loadStk' and friends in translate.tcl check-in: 7199a45325 user: kbk tags: kbk-namespace-variables, not working
2017-05-21
22:55
merge trunk: remove use of other passes from copyprop check-in: 60da56484d user: kbk tags: kbk-callframe-motion
22:54
merge trunk: remove use of other passes from copyprop check-in: 77e043898f user: kbk tags: callframe-impl
21:37
merge trunk - pick up Tcl API additions check-in: abd70c7494 user: kbk tags: kbk-callframe-motion
21:34
merge trunk - pick up new Tcl API defs check-in: 5bb434eda6 user: kbk tags: callframe-impl
2017-05-20
19:35
merge dkf-callframe-impl; fix for [e1f697c808] check-in: dce3d345c1 user: kbk tags: kbk-callframe-motion
19:33
merge trunk; fix for [e1f697c808] check-in: f05421f9df user: kbk tags: callframe-impl
19:16
merge code from dkf-callframe-impl, including the simplification of 'extractCallFrame'. Update 'cfProducer' to handle the additional dereference required to locate the operation that actually produced the frame. check-in: 4d2382ff32 user: kbk tags: kbk-callframe-motion
19:08
accept the changes from dkf-simplify-callframe check-in: 0fa06190a8 user: kbk tags: callframe-impl
13:39
merge dkf-callframe-impl check-in: 6126b0c7f6 user: dkf tags: kbk-callframe-motion
13:37
An alternate approach to CALLFRAME handling that untuples the CALLFRAME type as soon as possible. Closed-Leaf check-in: a44383f5f2 user: dkf tags: dkf-callframe-impl
08:18
merge trunk check-in: f2e7834438 user: dkf tags: dkf-callframe-impl