0
I Use This!
Inactive

Commits : Listings

Analyzed about 5 hours ago. based on code collected about 6 hours ago.
Aug 07, 2024 — Aug 07, 2025
Commit Message Contributor Files Modified Lines Added Lines Removed Code Location Date
* docs/contents.html: * docs/TJC/example1.html: * docs/TJC/example2.html: * docs/TJC/future.html: * docs/TJC/index.html: * docs/TJC/jdkcfg.html: * docs/TJC/tjcpkg.html: Update docs, replace CRLF with LF. * src/tjc/tcl/lang/TJC.java: Fixup comment. * src/tjc/tjc/library/main.tcl: Unset vars. * tests/tclbench/append.bench: * tests/tclbench/expr.bench: * tests/tclbench/libbench.tcl: * tests/tclbench/runbench.tcl: * tests/tclbench/switch.bench: Add a few more tclbench tests and update impl to detect when something goes wrong with the compile step. * tests/tjc/compileproc_7.test: Add test. * tests/tjc/jdkutils.tcl: Change CRLF to LF. More... over 19 years ago
* src/tjc/tjc/library/compileproc.tcl: * src/tjc/tjc/library/emitter.tcl: When passing multiple arguments to the append command, take care to pass constant strings and variables in seperate arguments. This will append directly to the StringBuffer inside the TclString class instead of creating a temp StringBuffer and then wrapping it in a TclString. This change will result in the TJC compiler implementation creating far fewer tmp StringBuffer objects. More... over 19 years ago
* src/tjc/tjc/library/compileproc.tcl: Optimize compileproc_command_cache_lookup, compileproc_argument_printable, and compileproc_emit_invoke. * src/tjc/tjc/library/emitter.tcl: Optimize emitter methods that invoked emitter_statement, it is better to call emitter_indent and append the constant strings in the method. More... over 19 years ago
* src/jacl/tcl/lang/TclObject.java (toString): Remove workaround for Janino bug since this problem is now fixed. * src/janino/README.TXT: Import Janino 2.3.18. This is really ugly since all files were changed because all CRLF were changed to LF. * src/janino/org/codehaus/janino/*.java: * src/tcljava/tcl/lang/TclObjectBase.java (toString): Make toString() final. More... over 19 years ago
* src/jacl/tcl/lang/Interp.java (eval): Make maxNestingDepth a constant int. Update caller of Parser.grabObjv() and Parser.releaseObjv(). * src/jacl/tcl/lang/InterpSlaveCmd.java: Don't set maxNestingDepth since it is constant. * src/jacl/tcl/lang/Parser.java (evalObjv, eval2, init, grabObjv, releaseObjv): Reimplement TclObject[] grab and release logic so that the array is always set to null values when returned to the pool. * src/tjc/tcl/lang/TJC.java (grabObjv, releaseObjv, invoke): Update caller of grabObjv() and releaseObjv() since we no longer need to set the array elements to null before using and releasing the array. * src/tjc/tjc/library/main.tcl: When the -nocompile flag is passed, don't write out generated Java files. This avoids a huge amount of slow IO calls. More... over 19 years ago
* src/jacl/tcl/lang/Expression.java (ExprParseObject, ExprParseString, evalUnaryOperator, evalBinaryOperator, ExprLex): Make ExprParseObject and ExprParseString static methods. Pass ExprValue into the ExprParseObject and ExprParseString methods and update callers. Use String.equals() instead of String.compareTo() since equals will directly compare object refrences which should be faster when dealing with the same String. Check for the more common TclInteger before TclBoolean and TclList in the ExprParseObject method. Make evalUnaryOperator and evalBinaryOperator methods static. Use ExprValue.setIntValue(boolean) method when a boolean result is being set. * src/tests/tjc/TestTJC.java: Update caller of exprEqualsEmptyString(). * src/tjc/tcl/lang/TJC.java (getBoolean, exprEqualsEmptyString, exprGetValue): Check for TclInteger before TclBoolean and TclList. Update ExprParseObject(), evalUnaryOperator(), and evalBinaryOperator() calls. Do pointer compare for empty string "" in exprEqualsEmptyString and pass in negate flag instead of negating in caller code. Add a exprGetValue() helper that accepts a boolean value. * src/tjc/tjc/library/compileproc.tcl: Rework compileproc_expr_evaluate_emit_binary_operator so that calls to TJC.exprEqualsEmptyString() accept a boolean negate flag. Use String.equals() instead of String.compareTo() when comparing a TclObject to a constant string value. * tests/tjc/compileproc_2.test: Update tests. More... over 19 years ago
* Makefile.in: * jtclsh.in: * tcljava.m4: * src/aolserver/src/nsjava.c: * src/jacl/tcl/lang/TclObject.java: * src/tclblend/tcl/lang/TclObject.java: * src/tcljava/tcl/lang/TclObjectBase.java: * src/tjc/tcl/lang/TJCThread.java: * src/tjc/tjc/library/reload.tcl: * tests/tjc/compileproc_0.test: * tests/tjc/compileproc_1.test: Fixup poor spelling. More... over 19 years ago
Add new tests and update existing tests so that they have unique names. Rework the tclbench module so that it runs tests until times converge. This is needed so that the hotspot compiler will fully compile code before tests results are used. Add support for runtime compilation using the TJC::compile command. More... over 19 years ago
* tests/tclbench/jacl132.out: * tests/tclbench/lappend.bench: * tests/tclbench/libbench.tcl: * tests/tclbench/list.test: * tests/tclbench/string.bench: * tests/tclbench/tclsh8411.out: * tests/tcljava/javaInterp.test: Add test and bench files. More... over 19 years ago
* jaclsh.bat.in: * jaclsh.in: Add janino.jar and janinosrc.jar to debug classpath when debug is enabled. Make sure Mingw test is only run under Win32. * jtclsh.in: Make sure Mingw test is only run under Win32. * src/jacl/tcl/lang/Interp.java (Interp): Use StringBuffer instead of Character.toString() since it exists only in JDK 1.4. * src/jacl/tcl/lang/Procedure.java: Typo. * src/tjc/tjc/library/jdk.tcl: Use ':' as path seperator unless running under Win32. * src/tjc/tjc/library/tjcthread.tcl: Look for janino.jar based on location of tcljava.jar on the CLASSPATH. * tests/tjc/jdk.test: Make tests work under Unix and Win32. More... over 19 years ago
Check in SimpleCompiler modifications to support compilation of code contained in a Java String. More... over 19 years ago
Revert local changes to janino so that tree state can be tagged before local mods. More... over 19 years ago
Add TJC::compile command to support runtime compilation of Tcl procs. Compilation is implemented using the TJC compiler and an embedded Java compiler called Janino. More... over 19 years ago
Add TJC::compile command to support runtime compilation of Tcl procs. Compilation is implemented using the TJC compiler and an embedded Java compiler called Janino. More... over 19 years ago
* docs/TJC/future.html: Note string inline functions that have been implemented. * src/jacl/tcl/lang/Interp.java (checkCommonCharacter): Implement common cache of TclString objects that represent a single ASCII character. * src/jacl/tcl/lang/StringCmd.java (cmdProc): * src/tjc/tcl/lang/TJC.java (stringIndex): Use common char cache for results of string index. More... over 19 years ago
* Makefile.in: Remove previously created originals dir so that rebuild is done with the correct source code. * src/jacl/tcl/lang/ExprValue.java: Make class and all methods final so that methods can be more easily inlined. * src/jacl/tcl/lang/Expression.java: Simplify a couple of if statements so that only one method invocation is used. Simplify operator check so that lots of compares are skipped in the common case. * src/jacl/tcl/lang/Var.java: Check the last character in a variable name string that might be an array var before searching from the front. * src/tjc/tjc/library/parseproc.tcl: Typo. More... over 19 years ago
Revert var pool changes, this change actually caused regressions in TJC compiled code because the variables in the pool were still being used in compiled code. More... over 19 years ago
Reimplement TclClassLoader using the class loader delagation model from JDK 1.2. The interp class now supports a public method called getClassLoader() that returns the ClassLoader instance used by the interp. The interp class loader will now delagate to the thread context loader, this should fix class loading problems when Jacl is used in environments that depend on the context class loader for classes and resources. More... over 19 years ago
Condense multiple append and lappend commands into one invocation with multiple arguments. This takes advantage of inlined command optimizations when compiled with TJC. Comment out debug code in methods that take up a lot of time or are invoked often. Optimize methods that are invoked often as seen with a method profiler. More... over 19 years ago
* src/jacl/tcl/lang/StringCmd.java: Optimize "string first" and "string last" subcommands for case where the string is a single character. * src/tjc/tcl/lang/TJC.java (stringIndex, stringRange, stringFirst, stringLast): Add inlined string command code. * src/tjc/tjc/library/compileproc.tcl: Add inlined string command. The following subcommands are inlined. string compare string equal string first string last string index string length string range * tests/tjc/compileproc_7.test: Add compiler output tests for inlined string commands. More... over 19 years ago
* docs/TclJava/JavaDefineClassCmd.html: * src/tcljava/tcl/lang/JavaDefineClassCmd.java: * src/tcljava/tcl/lang/TclClassLoader.java: * src/tests/tcljava/javaload/Test3Cmd.java: * src/tests/tcljava/javaload/Test4Cmd.java: * tests/tcljava/JavaDefineClassCmd.test: Add ability to directly pass byte[] object to the java::defineclass command. More... over 19 years ago
* src/jacl/tcl/lang/Expression.java (grabExprValue, releaseExprValue): Reimplement expr value cache so that only a single array access is needed to get or release a cached value. * src/jacl/tcl/lang/Interp.java: Init var pool. * src/jacl/tcl/lang/LappendCmd.java: Use optimized TclList.append(). * src/jacl/tcl/lang/TclList.java (append): Add optimized TclList.append() method that accepts multiple TclObjects in an array. This will speed up lappend operations that have multiple arguments since the type checks are only done once. * src/jacl/tcl/lang/Var.java: Set the NO_CACHE flag when a trace is added to a variable. This makes the cache valid check faster since only the isVarCacheInvalid needs to be invoked. Add Var object cache with 50 entries. * src/tcljava/tcl/lang/TclString.java (append): Add optimized TclString.append() that accepts multiple TclObject arguments in an array. This is used with the TJC compiled lappend for scalar variables. * src/tests/tjc/TestTJC.java: * src/tests/tjc/tcl/lang/TestTcl.java: Move test code into TestTcl since the old TJC access methods are no gone. * src/tjc/tcl/lang/TJC.java: Use var.isVarCacheInvalid() instead of TJC.isVarScalarValid(var). Use optimized TclList.append() and TclString.append() operations with compiled scalar commands. Remove unused TJC.isVarScalarValid() and TJC.getVarScalar() methods. * tests/tjc/testtjc.test: Update tests since class they are defined in has changed. More... over 19 years ago
Replace use of synchronized Vector and Hashtable classes with unsynchronized ArrayList and HashMap classes delivered with JDK 1.2.X. Use of Enumeration replaced with Iterator. Fix a couple of destroy time iteration bugs in Itcl to make it match the C impl. More... over 19 years ago
* src/itcl/itcl/lang/Class.java: * src/jacl/tcl/lang/CallFrame.java: Don't invoke Hashtable.dispose() since Var.deleteVars() does that already. * src/jacl/tcl/lang/TclObject.java: Fixup whitespace issues. * src/tclblend/tcl/lang/TclObject.java: Replace disposedCheck with inlined impl. Fixup whitespace issues. * src/tcljava/tcl/lang/TclObjectBase.java: Remove disposedCheck() calls, replace with inlined versions in methods. Remove the check from getInternalRep(), toString(), and isShared() unless a special flag is set so that commands can be easily inlined. * src/tcljava/tcl/lang/TclString.java: Remove FIXME and fixup whitespace. More... over 19 years ago
* varcache/varcache.tcl: * varcache/varcache.test: Add recursive method invocations tests to check that cached vars are flushed. More... over 19 years ago
* Makefile.in: Add "tjc2" make target that will recompile the Tcl code in tjc.jar into Java code. * src/tjc/tcl/lang/TJCShell.java: Require TJC package so that a compiled tjc.jar will work like an uncompiled one. * tests/all.tcl: Set TJC_LIBRARY to a resource path inside tjc.jar. Define test_tjc_init command that should be invoked at the top of a TJC test script. * tests/tjc/compileproc.test: * tests/tjc/compileproc_1.test: * tests/tjc/compileproc_2.test: * tests/tjc/compileproc_3.test: * tests/tjc/compileproc_4.test: * tests/tjc/compileproc_5.test: * tests/tjc/compileproc_6.test: * tests/tjc/compileproc_7.test: * tests/tjc/descend.test: * tests/tjc/emitter.test: Invoke test_tjc_init at the start of the test script. * tests/tjc/tjc.test: Don't try to run "file normalize" in Jacl since it is not implemented. More... over 19 years ago
Reimplement variable cache so that the cache is flushed on method entry and exit. This is needed so that recursive methods don't write over each other's cache variables. More... over 19 years ago
Refactor TclObject class so that Jacl and TclBlend specific code appears in different classes. A common base class named TclObjectBase now exists, it contains common TclObject code. TclBlend depends on a specific preserve() and release() implementation and make use of the CObject class. The Jacl implementation of TclObject avoids this logic in preserve() and release(), so these methods will execute more quickly and be easier to inline. More... over 19 years ago
* inlinecmds/inlinecmds.tcl: * inlinecmds/inlinecmds.test: Add lappend and append inline tests. More... over 19 years ago
* docs/TJC/future.html: * docs/TJC/module.html: * docs/TJC/optcode.html: Document compiled lappend and append commands. * src/jacl/tcl/lang/LappendCmd.java (lappendVar): Move lappend logic into static method so that it can be invoked via TJC.lappendVar(). * src/jacl/tcl/lang/Var.java (isArrayVarname): Add helper method to examine static variable name. * src/tjc/tcl/lang/TJC.java (lappendVarScalar, appendVarScalar, lappendVar, appendVar): Add runtime implementations for append and lappend as well as optimized versions that work with cached variables. * src/tjc/tjc/library/compileproc.tcl: Refactor object argument array assignment into compileproc_emit_objv_assignment, this is now used for regular method invocations as well as append and lappend methods. Add inlined append and lappend generators. Also add interp.resetResult() call to incr code. * tests/tjc/compileproc_7.test: Test incr, lappend, and append output. More... over 19 years ago