Permalink
Browse files

tcl overhaul

  • Loading branch information...
1 parent 42d15da commit 26be25093d4a8550f377a6e38b829730439c4ccc @jcw committed Jun 24, 2007
Showing with 1,698 additions and 708 deletions.
  1. +12 −1 CHANGES
  2. +0 −21 Metakit.html
  3. +21 −31 README
  4. +22 −20 examples/README
  5. +1 −1 license.terms
  6. +25 −173 tcl/Makefile.in
  7. +56 −0 tcl/config.h.in
  8. +248 −155 tcl/configure
  9. +6 −139 tcl/configure.in
  10. +11 −15 tcl/mk4tcl.cpp
  11. +6 −104 tcl/mk4tcl.h
  12. +5 −0 tcl/pkgIndex.tcl.in
  13. +94 −33 tcl/tclconfig/tcl.m4
  14. +6 −0 tcl/tests/all.tcl
  15. +174 −0 tcl/tests/basic.test
  16. +256 −0 tcl/tests/commit.test
  17. +142 −0 tcl/tests/fixed.test
  18. +70 −0 tcl/tests/initests.tcl
  19. +66 −0 tcl/tests/limit.test
  20. +477 −0 tcl/tests/object.test
  21. +0 −15 unix/config.h.in
View
13 CHANGES
@@ -1,6 +1,17 @@
+2007-06-24 Tcl TEA3 overhaul
+
+ Replace configure.in/Makefile.in with new versions, adapted from
+ Tcl's sampleextension. Now generates config.h and pkgIndex.tcl
+ from corresponding *.in files.
+
+ Comnvert all tcl/test/ entries to new ones in tcl/tests/ to use
+ the standard tcltest framework. Just 40 tests in all so far.
+
+ Update to tcl.m4 3.6, with a patch to fix "make test" on macosx.
+
2007-06-24 Cleanup obsolete code
- Remove Lua binding in lua/, it was never completed.
+ Remove Lua binding in lua/ - it was never actually completed.
Remove win/{catfish,kitviewer,msevc3,msvc152} - now unsupported.
Remove mac/, pre-macosx builds are no longer supported.
Removed the MKSQL logic and tcl/mksql.tcl, since it is not used.
View
@@ -1,21 +0,0 @@
-<HTML><HEAD>
-<TITLE>Metakit by Equi4 Software</TITLE>
-</HEAD>
-<BODY BGCOLOR="#FFFFFF"><A NAME="top"></A>
-<IMG SRC="doc/metakit.png" WIDTH="160" HEIGHT="44" BORDER=0 align=left></A>
-<A HREF="http://www.equi4.com/"><IMG SRC="doc/e4s.gif" vspace=3 WIDTH="97" HEIGHT="35" BORDER=0 align=right></A>
-<br>
-<br>
-<br>
-<br>
-<H2>Metakit embedded database library</H2>
-<UL>
-<LI><a href="README">Read me</a>
-<LI><a href="CHANGES">Changes</a>
-<LI><a href="doc/python.html">Python</a>
-<LI><a href="doc/tcl.html">Tcl/Tk</a>
-<LI><a href="doc/format.html">File format</a>
-</UL>
-&copy; 2005 Jean-Claude Wippler &lt;<A HREF="mailto:jcw@equi4.com">jcw@equi4.com</A>&gt;
-</BODY>
-</HTML>
View
52 README
@@ -25,9 +25,9 @@ PYTHON - The binding for Python is called "Mk4py". It uses SCXX by Gordon
TCL/TK - The MK extension for Tcl is called "Mk4tcl". It is being used in a
number of commercial projects. The source is in directory "tcl/".
-LICENSE AND SUPPORT - Metakit is now distributed as open source software (the
- X/MIT-style license is at the end of this document). Commercial support
- is available through an Enterprise License, see the URL mentioned below.
+LICENSE AND SUPPORT - Metakit is distributed as open source software (see the
+ X/MIT-style license at the end of this document). Commercial support is
+ available through an Enterprise License, see the URL mentioned below.
DOCUMENTATION - All documentation uses HTML. The main page is "Metakit.html",
which leads to the rest of the documentation in the "doc/" directory.
@@ -37,8 +37,8 @@ WEBSITE URLS - The main pages on the world wide web, for news and downloads:
Homepage: http://www.equi4.com/metakit.html
Python news: http://www.equi4.com/metakit/python.html
Tcl/Tk news: http://www.equi4.com/metakit/tcl.html
- License info: http://www.equi4.com/mklicense.html
- Contact info: http://www.equi4.com/contact.html
+ License info: http://www.equi4.com/metakit/license.html
+ Contact info: http://www.equi4.com/about/contact.html
ACKNOWLEDGEMENTS - Thanks to everyone who has helped shape and extend Metakit,
including Kyrill Denisenko, Mark Roseman, Gordon McMillan, Matt Newman,
@@ -91,26 +91,24 @@ PYTHON - Nov 2006
the flags don't seem to create proper executables. That's ok though, the
.o files are fat, which is all setup.py needs.
-TCL - Nov 2006
+TCL - Jun 2007
- The unix/configure works better for Tcl than for Python, due to the stubs
- interface. In many cases, adding --with-tcl or --with-tcl=<dir-of-tcl.h>
- will produce a Mk4tcl.so (or a Mk4tcl.dylib on Mac OS X).
-
- Alternately, you could use the TEA3-based tcl/configure script. It needs
- a few preliminary steps to get a proper config.h file in the right spot:
- cd builds
- sh ../unix/configure
- cd ../tcl
- ln -s ../builds/config.h
- sh configure
- make
- There are still some issues, the above generates a lot of warning errors.
- Note that this does not depend on .o files in ../builds, just config.h
+ The Tcl build has been converted to use the TEA3-based configure script
+ in the tcl/ directory. The way to build Mk4tcl is now as follows:
+
+ mkdir tbuild # can be anywhere, really...
+ cd tbuild
+ CC=g++ sh ../tcl/configure
+ make
+ make test
+ make install
+
+ This build configuration has not yet been tested with non-gcc compilers.
+ There are no dependencies on the C++ build process, nor the builds/ dir.
- Note: for Windows CE, the tcl.configure script has been successfully used
- using EVC3. One trick is that in tcl/configure.in, "TEA_ADD_CFLAGS([])"
- has to be changed to "TEA_ADD_CFLAGS([-Dq4_WINCE])".
+ Note: for Windows CE, an older version of the tcl.configure script was
+ successfully used with MS EVC3. One trick is that in tcl/configure.in,
+ "TEA_ADD_CFLAGS([])" has to be changed to "TEA_ADD_CFLAGS([-Dq4_WINCE])".
UNIX (ALSO MAC OS X)
@@ -176,14 +174,6 @@ WINDOWS
efficiency on x86 hardware: "-O2 -m486 -malign-loops=2 -malign-jumps=2".
I have not yet tried this myself, but am passing on the tip.
-MACINTOSH CLASSIC
-
- The Mac version requires Metrowerks CodeWarrior 6. See the info above
- in the Windows section (MWCW is multi-platform). The projects are all
- located in the "mac/" folder, which is also where MWCW will place its own
- "... Data" folders with intermediate results. As with all other setups,
- final results are made to end up in the "builds/" directory.
-
LICENSE AND COPYRIGHT STATEMENT
===============================
View
@@ -1,21 +1,23 @@
-Sample code
+Sample scripts
-aside.py commit extend and commit aside
-case.py case sensitivity can be a bit tricky
-demo.py trivial demo in Python
-demo.tcl trivial demo in Tcl, new OO interface
-demold.tcl trivial demo in Tcl, original API
-derived.py derived views propagate changes
-find.py find, binary search, and hashing performance
-mapped.tcl performance of plain, hashed, ordered, blocked views
-millions.py storing millions of row, using a trick (by Christian Tismer)
-mkhash.cpp hashed / blocked / ordered view performance in C++
-mkmemoio.py treating a memo (binary) property as an I/O stream
-pair.py pairwise view combination
-random.tcl test of 100,000 adds/mods/dels using a bytes property
-remap.py new mapping views (like mapped.tcl), in Python
-selfref.py defining a self-referential (recursive) structure
-selmap.tcl illustrates mapping select results back to a view
-slow.tcl hashed views performance in Tcl
-sort.tcl sorting performance in Tcl
-wrap.py wrapping provides a MK layer around anything
+aside.py commit extend and commit aside
+bigblock.tcl storing 100,000,000 integers
+blockdels.tcl blocked view deletion tests
+case.py case sensitivity can be a bit tricky
+demo.py trivial demo in Python
+demo.tcl trivial demo in Tcl, new OO interface
+demold.tcl trivial demo in Tcl, original API
+derived.py derived views propagate changes
+find.py find, binary search, and hashing performance
+mapped.tcl performance of plain, hashed, ordered, blocked views
+millions.py storing millions of row, using a trick (by Christian Tismer)
+mkhash.cpp hashed / blocked / ordered view performance in C++
+mkmemoio.py treating a memo (binary) property as an I/O stream
+pair.py pairwise view combination
+random.tcl test of 100,000 adds/mods/dels using a bytes property
+remap.py new mapping views (like mapped.tcl), in Python
+selfref.py defining a self-referential (recursive) structure
+selmap.tcl illustrates mapping select results back to a view
+slow.tcl hashed views performance in Tcl
+sort.tcl sorting performance in Tcl
+wrap.py wrapping provides a MK layer around anything
View
@@ -1,4 +1,4 @@
-Copyright (c) 1996-2004 Jean-Claude Wippler
+Copyright (c) 1996-2007 Jean-Claude Wippler
Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the "Software"),
Oops, something went wrong.

0 comments on commit 26be250

Please sign in to comment.