+------- | Author: bobg Date: 1999-10-25 17:33 | File: | closure.cxx Patch line that gives gcc 2.95 heartburn. +------- | Author: bobg Date: 1999-10-22 23:49 | Files: | Makefile.am definitions.cxx standard.latte Add another item to the pre-distribution checklist (to wit: "Notify latte mailing list subscribers"). Restore the compiled form of \while, comment-out the version in standard.latte. Define \defmacro and \foreach in standard.latte. +------- | Author: bobg Date: 1999-10-22 05:43 | File: | NEWS Insert release date. +------- | Author: bobg Date: 1999-10-22 04:27 | File: | latte.spec.in In the RPM, place html-latte.pl in /usr/doc/latte. +------- | Author: bobg Date: 1999-10-22 04:25 | File: | configure.in Update LIBLATTE_VERSION. +------- | Author: bobg Date: 1999-10-22 04:05 | Files: | Makefile.am NEWS TODO assignment.cxx boolean.cxx closure.cxx | configure.in definitions.cxx grammar.y group.cxx latte-deque.h | latte-fstream.h latte-html.cxx latte-html.h latte-log.h latte-stack.h | latte-string.h latte-vector.h latte.el list.cxx load.cxx mutable.h | nested.cxx operator.cxx param.cxx quote.cxx refcount.h restorer.h | shstring.h str.cxx syntax.lxx varref.cxx visitor.cxx wsnode.cxx Update copyright notices. Distribute html-latte.pl. +------- | Author: bobg Date: 1999-10-22 03:46 | Files: | Makefile.am NEWS grammar.y latte.h latte.spec.in syntax.lxx text.latte Improve syntax-error reporting from new lexer and parser. Add i686-RPM rule. Update text.latte for Latte 2.0. +------- | Author: bobg Date: 1999-10-22 03:46 | File: | doc/latte.texi Mention latte-text. +------- | Author: bobg Date: 1999-10-21 19:37 | Files: | Makefile.am grammar.y latte.spec.in syntax.lxx Update RPM-creating code for RPM version 3 (per Bart) and automake 1.4. Fix bug that left a spurious trailing quotation mark in quoted strings in lexer. +------- | Author: bobg Date: 1999-10-20 20:12 | File: | doc/latte.texi Remove a cross-reference that breaks texi2dvi (and hence "make distcheck"). +------- | Author: bobg Date: 1999-10-20 20:12 | File: | grammar.y Add missing file, and include more files in the distribution. +------- | Author: bobg Date: 1999-10-20 20:11 | File: | Makefile.am Add missing file, and include more files in the distribution. +------- | Author: bobg Date: 1999-10-20 18:44 | Files: | website/buildnotes.latte website/correspond.latte | website/download.latte website/upgrade.latte Update. Point at mailman-managed Latte mailing list page. +------- | Author: bobg Date: 1999-10-20 18:43 | File: | doc/liblatte.texi Remove obsolete information from (still skeletal) liblatte.texi. +------- | Author: bobg Date: 1999-10-20 18:43 | Files: | ChangeLog NEWS closure.cxx latte-html-cli.cxx latte-log.h latte.spec.in | operator.cxx Update ChangeLog and NEWS. Get rid of -dapply. Change "Source" in latte-spec.in to point to our web server. +------- | Author: bobg Date: 1999-10-18 19:21 | Files: | latte-text.h latte.el latte.h list.cxx load.cxx nested.cxx operator.cxx | param.cxx quote.cxx reader.cxx str.cxx syntax.lxx varref.cxx | visitor.cxx wsnode.cxx Stuff I've been working on for the past N months. I plan to do a Latte 2.0 release on Friday as a birthday gift to myself (it's also Latte's 1st anniversary). Revert to using flex for lexing, since eliminating flex didn't speed anything up, and using flex is a lot more expressive. At the same time, switch to bison for parsing instead of maintaining a parse stack "by hand." This was for expressiveness and also to simplify the evaluation rules: previously, expressions were evaluated as soon as they were parsed (meaning inner, nested expressions would eval before outer ones), which caused some ambiguities that made using Latte for conventional programming difficult. (The idea was to prevent the parse/eval stack from growing too large, but it didn't work out that way.) The new rules are just what you'd expect in an interpreted language: parse a top-level form, then evaluate it top-down. Eliminate \varref; it just wasn't doing what it should, and couldn't easily be made to. Add quoted expressions of four types: quote, quasiquote, unquote, and unquote-splicing. Also add macros. It's now possible to write new special forms; e.g., \let in terms of \lambda. The four kinds of quoted expression look like this: \'expr \`expr \,expr \,@expr which looks perfectly normal if you're familiar with Lisp/Scheme. Remove from the visitor classes responsibility for evaling the expressions they visit. Remove from closures and builtins the responsibility for evaling their args. Evaling is now completely encapsulated in the parser, thank God, rather than performed all over the freakin' place. No longer return a list of subexpression values when evaling a closure. Instead, return the value of the last subexpression, like any sane Lisp-like language. This eliminates the ambiguity of not being able to distinguish a function that wants to return a single object that's a list from a function that wants to return a bunch of objects. The new exception Latte_Closure::Useless alerts the user to closure subexpressions that have no side effects and don't participate in the result. Rewrite Bart's StrcmpOp to use string::compare(). Add \funcall as a variant of \apply. Wrap some function bodies in a new set of braces as dictated by the new closure-eval rules. Add -dapply to latte-html. It's less verbose but not as useful as -deval. Slightly update latte.el. Fix a bug in lexer column counting. Fix a bug that caused quoted strings to appear in the output preceded by no whitespace! Bump version number to 2.0 (although a little remains to be done). Update some copyright notices. +------- | Author: bobg Date: 1999-10-18 19:20 | Files: | Makefile.am assignment.cxx boolean.cxx closure.cxx configure.in | definitions.cxx group.cxx latte-html-cli.cxx latte-html.cxx | latte-html.h latte-log.h latte-text-cli.cxx latte-text.cxx Stuff I've been working on for the past N months. I plan to do a Latte 2.0 release on Friday as a birthday gift to myself (it's also Latte's 1st anniversary). Revert to using flex for lexing, since eliminating flex didn't speed anything up, and using flex is a lot more expressive. At the same time, switch to bison for parsing instead of maintaining a parse stack "by hand." This was for expressiveness and also to simplify the evaluation rules: previously, expressions were evaluated as soon as they were parsed (meaning inner, nested expressions would eval before outer ones), which caused some ambiguities that made using Latte for conventional programming difficult. (The idea was to prevent the parse/eval stack from growing too large, but it didn't work out that way.) The new rules are just what you'd expect in an interpreted language: parse a top-level form, then evaluate it top-down. Eliminate \varref; it just wasn't doing what it should, and couldn't easily be made to. Add quoted expressions of four types: quote, quasiquote, unquote, and unquote-splicing. Also add macros. It's now possible to write new special forms; e.g., \let in terms of \lambda. The four kinds of quoted expression look like this: \'expr \`expr \,expr \,@expr which looks perfectly normal if you're familiar with Lisp/Scheme. Remove from the visitor classes responsibility for evaling the expressions they visit. Remove from closures and builtins the responsibility for evaling their args. Evaling is now completely encapsulated in the parser, thank God, rather than performed all over the freakin' place. No longer return a list of subexpression values when evaling a closure. Instead, return the value of the last subexpression, like any sane Lisp-like language. This eliminates the ambiguity of not being able to distinguish a function that wants to return a single object that's a list from a function that wants to return a bunch of objects. The new exception Latte_Closure::Useless alerts the user to closure subexpressions that have no side effects and don't participate in the result. Rewrite Bart's StrcmpOp to use string::compare(). Add \funcall as a variant of \apply. Wrap some function bodies in a new set of braces as dictated by the new closure-eval rules. Add -dapply to latte-html. It's less verbose but not as useful as -deval. Slightly update latte.el. Fix a bug in lexer column counting. Fix a bug that caused quoted strings to appear in the output preceded by no whitespace! Bump version number to 2.0 (although a little remains to be done). Update some copyright notices. +------- | Author: schaefer Date: 1999-09-09 23:16 | Files: | configure.in definitions.cxx Add string versions of the \ge? \gt? \le? \lt? functions. Bump RPM minor number. +------- | Author: bobg Date: 1999-07-01 20:21 | File: | definitions.cxx Conditionally compile ugly unwrapping hack. +------- | Author: schaefer Date: 1999-06-02 00:06 | File: | Makefile.am Add text.latte to EXTRA_DIST. +------- | Author: schaefer Date: 1999-06-02 00:01 | File: | Makefile.am Mention latte-text.h so it will go into the dist tar. +------- | Author: bobg Date: 1999-04-08 19:15 | File: | str.cxx Use %.f, not %g. +------- | Author: bobg Date: 1999-04-06 00:22 | File: | latte-text.cxx Eliminate compiler warning when --enable-floating-point. +------- | Author: bobg Date: 1999-03-10 18:15 | Files: | Makefile.am closure.cxx configure.in definitions.cxx latte-html-cli.cxx | latte-text-cli.cxx latte-text.cxx latte-text.h latte.el latte.h | reader.cxx Beginnings of latte-text translator. Beginnings of a macro facility for Latte. Bugfixes in latte.el indentation function and lexer whitespace tracking. +------- | Author: bobg Date: 1999-02-18 16:53 | File: | memo.cxx New file. +------- | Author: bobg Date: 1999-02-18 16:52 | Files: | Makefile.am memo.h reader.cxx Fix `\\' bug in new lexer, discovered at Amazon. Don't use a static template data member in memo.h; it breaks Latte under the alpha OSF/1 4.0 linker (and the GNU linker isn't available for that platform!). +------- | Author: schaefer Date: 1999-02-06 22:07 | File: | configure.in Bob forgot to reset RPM_REV. +------- | Author: bobg Date: 1999-02-06 21:24 | Files: | Makefile.am configure.in latte-deque.h latte-fstream.h | latte-html-cli.cxx latte-html.cxx latte-html.h latte-stack.h | latte-string.h latte-vector.h latte.h mutable.h reader.cxx refcount.h | restorer.h shstring.h syntax.lxx Hand-code a new lexer, eliminating the dependency on flex. Remove flex-related files from the distribution. Bump version number to 1.2. Don't try to include not-yet-created latte-conf.h when doing test compiles while configure is running. New option, `-p' (`--closepar') dictates whether to include
at the ends of paragraphs. Warning, placement is imprecise w.r.t. the HTML standard. New SyntaxError subclasses thrown and caught: Latte_Reader::NotIdentifier and Latte_Reader::IncompleteString. Fix column-counting bug in deprecated syntax.lxx. +------- | Author: bobg Date: 1999-01-26 23:35 | Files: | latte-html-cli.cxx memo.h operator.cxx Add copyright notice to html-latte.pl. Make `-o' work as advertised. Reimplement `memo' class, adding a reset_all() function. +------- | Author: schaefer Date: 1998-12-03 17:09 | File: | configure.in Bump RPM_REV, because Bob has made changes without bumping the version number. +------- | Author: bobg Date: 1998-12-03 00:35 | File: | load.cxx Make it an error to try to load a library that doesn't exist. When loading library FOO, check for FOO and FOO.latte after checking (and failing to find) DIR/FOO and DIR/FOO.latte for each element DIR of the load path. +------- | Author: bobg Date: 1998-12-02 22:54 | Files: | closure.cxx definitions.cxx fileloc.cxx group.cxx latte-html.cxx | latte-string.cxx latte.h refcount.h shdeque.h shstring.cxx varref.cxx | wsnode.cxx wstate.cxx Code-factoring (into Latte_WsNode::wrap()). Speed up operator== implementations by first testing (this == &other). Use `mutate' where needed in Refcounted. +------- | Author: bobg Date: 1998-12-02 02:19 | Files: | acconfig.h configure.in latte.h Configure-time test for whether to use shdeque. +------- | Author: bobg Date: 1998-12-02 01:55 | Files: | Makefile.am definitions.cxx group.cxx latte.h list.cxx memo.h | nested.cxx operator.cxx shdeque.h varref.cxx A number of optimizations, speeding up latte-html by about 35%. shdeque<> is a "shared deque" analogous to shstring (which is a shared string). It's now the base class of Latte_List. memo<> is a memoizing object that calls a function to supply a value, then caches the value. It's used to save time in calls to self_evaluating() and get_operator(). Some redundant calls to eval() are gone. +------- | Author: bobg Date: 1998-11-30 18:57 | Files: | Makefile.am definitions.cxx latte.h list.cxx shdeque.h Shared deque implementation. +------- | Author: bobg Date: 1998-11-11 06:56 | File: | Makefile.am D'oh! A horrible typo. +------- | Author: schaefer Date: 1998-11-11 06:54 | Files: | Makefile.am latte.spec.in Add two new make variables, LDCONFIG_REQ and LDCONFIG_RUN, which get set in the BUILD_SHARED conditional to require and run ldconfig only when building a shared object RPM. Substitute these into the spec file. Use #LDCONFIG_REQ# and #LDCONFIG_RUN# in latte.spec.in. Drop the gzip of the info files from the install section as it leads to verification and uninstall warnings about the info files being missing. +------- | Author: bobg Date: 1998-11-11 03:55 | File: | README Tweak wording. +------- | Author: bobg Date: 1998-11-10 22:55 | File: | Makefile.am More win-dist tweaking. +------- | Author: bobg Date: 1998-11-10 22:48 | Files: | ChangeLog Makefile.am NEWS configure.in Tweak the way Windows distributions are made. Update LIBLATTE_VERSION. +------- | Author: bobg Date: 1998-11-10 21:22 | Files: | Makefile.am NEWS Add win-dist and latte.zip rules to Makefile.am. They depend on a hand-built latte executable named latte-$(VERSION).exe being present in the top-level source dir. +------- | Author: schaefer Date: 1998-11-10 03:26 | File: | Makefile.am Add an "if BUILD_SHARED" block (already supported by an AM_CONDITIONAL in configure.in) that set a variable to some code that tests for -static in LDFLAGS whenver configure was run with --enable-shared. Use this variable as the first command under the $(PACKAGE).spec target so that the build fails early if the configuration is incompatible with LDFLAGS. Rearannge dependencies for the .src.rpm target so that the .spec is last. This prevents the failure output of the test above from being lost in the voluminous recursive output gerated by the "dist" dependency; otherwise the reason for the "error 1" is very mysterious. cvs diff: Diffing . +------- | Author: schaefer Date: 1998-11-10 02:20 | Files: | Makefile.am latte.spec.in Back out the previous LIBLATTE_LA change and instead move #LLIBLATTE_LA# to the latte-devel section of the spec file, as further discussion with Bob indicates it is probably useful only to developers. Substitute #libdir# by $(libdir) when building latte.spec. Since we're now removing the RPM build subtrees, mkdir failures to recreate them should not be ignored. Add a comment to the spec file to explain why "libtool --finish" is not run, even though "make install" warns us to run it. +------- | Author: bobg Date: 1998-11-10 00:58 | File: | Makefile.am Fix bugs in the mac-src and win-src make targets. In the .src.rpm rule, make sure to rm -rf the several directories before creating them, to ensure they're empty. Also, use more portable calling sequence for `ln'. +------- | Author: schaefer Date: 1998-11-10 00:49 | Files: | Makefile.am latte.spec.in Install liblatte.la along with the shared libraries, but not by itself. Add the "build root is in /tmp" sanity check to %clean, just for paranoia. +------- | Author: schaefer Date: 1998-11-10 00:29 | File: | latte.spec.in Move installation of liblatte.info to the latte-devel package. +------- | Author: bobg Date: 1998-11-09 21:19 | Files: | FlexLexer.h Makefile.am README TODO activation.cxx assignment.cxx | boolean.cxx closure.cxx configure.in definitions.cxx env.cxx | fileloc.cxx group.cxx html.latte latte-deque.h latte-fstream.h | latte-html-cli.cxx latte-html.cxx latte-html.h latte-iosfwd.h | latte-log.cxx latte-log.h latte-stack.h latte-string.cxx latte-string.h | latte-vector.h latte.cxx latte.el latte.h list.cxx load.cxx mutable.h | nested.cxx operator.cxx param.cxx reader.cxx refcount.h restorer.h | shstring.cxx shstring.h standard.latte str.cxx syntax.lxx tangible.cxx | varref.cxx visitor.cxx wsnode.cxx wstate.cxx Add FlexLexer.h to the distribution, so casual builders of Latte don't need flex. Add trailing slash to Zanshin URL. Use real filename, not a temp filename, for flex output. This makes the #line directives refer to the right thing. Remove "list:{...}" from Latte_List::render(). Define {\ch ...} and {\chx ...} for HTML character-entity generation. Redefine the \c-* functions in terms of \ch. Eliminate duplicates. Change --debug=eval output format to be more useful (but just as overwhelmingly voluminous). Use flex's "prefix" option to avoid possible name clashes with flex-generated symbols in other code that someone may want to link Latte with. +------- | Author: schaefer Date: 1998-11-07 02:04 | File: | latte.spec.in Split the binary RPM into two packages, latte-devel and latte, the latte(r) of which contains the latte-html executable and its supporting files (with the shared libraries if not built statically), and the former of which has the include files, liblatte.info, and static library. +------- | Author: schaefer Date: 1998-11-06 23:56 | Files: | Makefile.am configure.in latte.spec.in Use @PACKAGE@, $(PACKAGE) and #PACKAGE# in place of "latte". Set RPM_REV to 0. +------- | Author: schaefer Date: 1998-11-06 23:16 | File: | latte.spec.in Use the %clean section to remove the DESTDIR after building the binary RPM. +------- | Author: schaefer Date: 1998-11-06 23:15 | File: | Makefile.am Drop the command that removes the BuildRoot after constructing the binary RPM. +------- | Author: bobg Date: 1998-11-06 05:34 | Files: | Makefile.am configure.in definitions.cxx latte-iosfwd.h latte.h | load.cxx Add latte-iosfwd.h, for portably forward-declaring iostream stuff. Run flex with -B to generate a non-interactive scanner (and also possibly work around an iostream bug under CodeWarrior). Begin defining win-src and mac-src make targets that create copies of the source code tweaked for their respective platforms. Bump version number to 1.1. Only include the definition of \process-output and related code if HAVE_WAIT_H is true. Make file-related stuff in load.cxx more portable. The directory separator string is now defined by platform. The Latte filename extension is .lat (yecch) under Windows. The default Latte path is empty on non-Unix platforms. An empty path means \load-library should simply look for the named file in the current directory. +------- | Author: bobg Date: 1998-11-06 04:43 | File: | latte-html-cli.cxx Use unistd.h, not cunistd. +------- | Author: bobg Date: 1998-11-06 04:37 | File: | latte-html-cli.cxx Include cunistd for unlink(). +------- | Author: schaefer Date: 1998-11-05 23:26 | File: | Makefile.am Look for liblatte.la in top_builddir, not top_srcdir. +------- | Author: bobg Date: 1998-11-05 20:27 | Files: | Makefile.am configure.in latte.spec.in Merge changes from latte-rpm branch. +------- | Author: schaefer Date: 1998-11-05 20:15 | File: | Makefile.am Final (I hope) tweaks: Send warning and error echoes to stderr. Issue a warning if the RPM is not being built by root (otherwise installing the binary RPM may issue "unknown user" warnings). I hope `id -u` is OK on any platform that has "rpm", but in any case it's only a warning. Sleep 5 seconds after printing a warning to give the user time to hit ctrl-C and to keep the warning output from being lost in the tar flood that follows. +------- | Author: schaefer Date: 1998-11-05 19:00 | File: | latte.spec.in Add Vendor: Zanshin, substitute the LATTE_URL in Distribution:, substitute RPM_REV in Release:, and use the LATTE_FTP substitution prefix in Source:. +------- | Author: schaefer Date: 1998-11-05 18:56 | File: | configure.in Add some comments (dnl ...) noting where version numbering is and (for RPM) how it should be determined and changed. Add substitution of RPM_REV, the "release number" that gets tacked on to the end of the version number when computing the file name of the .rpm files. It's 3 right now for purposes of test installs on zagzig. Add substitution of LATTE_FTP, the head of the FTP URL for the latte source. +------- | Author: schaefer Date: 1998-11-05 18:50 | File: | Makefile.am Move dist-hook up above all the RPM stuff. Mention updating RPM_REV in the dist-hook output, since making the RPMs depends on dist. Add some comments about what's going on in the RPM section. Substitute RPM_REV, LATTE_URL, and LATTE_FTP when processing latte.spec.in. Rearrange dependencies so that "make latte-rpm" builds the .src.rpm file, rather than the other way around. Add dependencies of all the possible architecture binary RPMs on the .src.rpm. Add "ppc" to the "supported" architectures in the .src.rpm build rules. Issue a warning if -all-static doesn't appear in LDFLAGS when building RPMs, but build anyway. Remove @ from a few commands so they'll echo. Don't fail make of the .src.rpm when unable to find the corresponding binary RPM; instead test for that in the rule for making the binary RPM. (That last isn't ideal, but ...) +------- | Author: schaefer Date: 1998-11-05 05:21 | File: | latte.spec.in Add a %post section which runs ldconfig (not always needed, but safe), runs install-info, and gzip's the installed info files. +------- | Author: schaefer Date: 1998-11-05 01:29 | File: | latte.spec.in Replace all configure-style @FOO@ with #FOO# referenced by new sed script in Makefile.am. Stop passing --prefix to configure and instead specify DESTDIR before make install. Replace gobs of hardwired filenames with #FOO# symbols that get replaced via the new sed script at make time. +------- | Author: schaefer Date: 1998-11-05 01:25 | File: | configure.in Move most of the latte.spec.in stuff to Makefile.am, replacing it with an AM_CONDITIONAL directive here. Don't output latte.spec from configure, it's now built by a make rule. +------- | Author: schaefer Date: 1998-11-05 01:23 | File: | Makefile.am Add a giant sed script that generates latte.spec from latte.spec.in by interpolating both Make-variables and variables from the liblatte.la script generated by libtool. +------- | Author: schaefer Date: 1998-11-04 22:13 | Files: | ChangeLog TODO configure.in definitions.cxx fileloc.cxx | latte-html-cli.cxx latte-html.cxx latte-html.h latte.cxx latte.h | reader.cxx Merge with trunk changes since latte-1.0.1 release. +------- | Author: schaefer Date: 1998-11-04 22:11 | File: | Makefile.am Merge with trunk changes since 1.0.1. Clarify some of the the dist-hook output. +------- | Author: schaefer Date: 1998-11-04 22:10 | File: | latte.spec.in Bump RPM release number to 2 so the .rpm appears newer than latte-1.0.1. This needs to be reset to 0 or 1 before another "official" latte release. Adapt to changed file locations and added files since latte-1.0.1 release. +------- | Author: bobg Date: 1998-11-03 18:33 | File: | latte-html-cli.cxx branches: 1.3.2; Add `-o FILE'. Make filename `-' mean standard input. Check for failure when opening input and output files. Remove Latte_Reader::init() (undoing unnecessary code factoring). +------- | Author: bobg Date: 1998-11-03 18:33 | Files: | TODO latte.h reader.cxx Add `-o FILE'. Make filename `-' mean standard input. Check for failure when opening input and output files. Remove Latte_Reader::init() (undoing unnecessary code factoring). +------- | Author: bobg Date: 1998-10-30 22:49 | Files: | ChangeLog configure.in fileloc.cxx latte-html-cli.cxx latte.cxx latte.h As a Latte_Error exception unwinds the stack, adorn it with the current file location of each stack frame. Then report a backtrace when latte-html dies with an error. This depends on being able to throw a Derived, catch it as a Base&, then re-throw and catch it as a Derived&. Apparently, older gcc can't manage this, but the only effect should be a slightly less useful error message, not total failure. +------- | Author: bobg Date: 1998-10-30 20:05 | Files: | Makefile.am configure.in latte-html-cli.cxx latte-html.cxx latte-html.h | latte.h Separate the latte-html CLI from the rest of the non-liblatte parts of latte-html. This will allow other UIs to be placed on latte-html, and will also allow other HTML-related Latte apps to be written (e.g., an intelligent scanner for URLs in Latte documents). Change LATTE_URL to http://www.latte.org/. +------- | Author: bobg Date: 1998-10-29 05:15 | Files: | ChangeLog Makefile.am TODO definitions.cxx gen-changelog.pl Install include files in pkgincludedir (/usr/local/include/latte), not in includedir (/usr/local/include). Don't use a Latte_Group::const_iterator where a Latte_List::const_iterator is called for. +------- | Author: schaefer Date: 1998-10-28 23:06 | Files: | AUTHORS ChangeLog NEWS configure.in definitions.cxx latte-html.cxx | str.cxx Merge with latte-1_0_1 +------- | Author: bobg Date: 1998-10-27 05:41 | File: | AUTHORS Thank Johnny Tevessen. +------- | Author: bobg Date: 1998-10-27 05:35 | File: | configure.in Libtool version for liblatte -> 3:0:1. +------- | Author: bobg Date: 1998-10-27 04:47 | Files: | definitions.cxx str.cxx Use static_cast when assigning calls to numeric_val() to longs. Coalesce the >, <, >=, and <= operators into a single class, IneqOp. Use %g when sprintf-formatting floating-point numbers. +------- | Author: bobg Date: 1998-10-27 04:25 | Files: | definitions.cxx latte-html.cxx Revisit all the uses of Latte_Number_t and make sure we're not assuming it's integral. In particular, don't try to do (Latte_Number_t % Latte_Number_t). Deques have random-access iterators; don't iterate to find the nth position! Make \nth understand a negative number the same way \subseq and \substr do. Be more rigorous about checking argument ranges in several places. When reporting operator errors, add 1 to any argument numbers for human consumption. Fixes latte/189, latte/201, and latte/203. +------- | Author: schaefer Date: 1998-10-27 03:07 | File: | definitions.cxx Merge changes from HEAD revision +------- | Author: bobg Date: 1998-10-27 02:12 | File: | definitions.cxx Fix \while so that it doesn't build up useless implicit lists of values. Fixes latte/191. +------- | Author: schaefer Date: 1998-10-26 19:43 | Files: | Makefile.am acconfig.h configure.in latte-deque.h latte-html.cxx | latte-string.h latte-vector.h latte.h list.cxx Merge changes from HEAD revision +------- | Author: bobg Date: 1998-10-26 18:57 | Files: | Makefile.am acconfig.h configure.in latte-deque.h latte-html.cxx | latte-string.cxx latte-string.h latte-vector.h latte.h list.cxx Add latte-string.cxx to the build, defining operators <, <<, and == for latte_strings. USE_VECTOR_RESERVE -> HAVE_VECTOR_RESIZE Version -> 1.0.1 Add -lintl. In latte_deque ctor, use deque<>() form for initializing superclass. Include cstdlib in latte-html.cxx for srandom declaration. Redefine latte_vector::resize() in terms of insert() and erase(), not reserve(). latte_deque< Refcountertags from \html; too many problems arise otherwise. +------- | Author: bobg Date: 1998-10-07 18:47 | Files: | conf.cxx configure.in html.latte latte-conf.h latte-html.cxx Bump version number to 0.18. Introduce \_pre, which suppresses auto-generation of
tags. Use it in the definition of \pre. Also use \_pre's internal mechanism in the definition of \html, so
isn't automatically generated within {\html ...} either. +------- | Author: bobg Date: 1998-10-07 18:27 | Files: | TODO conf.cxx configure.in latte-conf.h latte-html.cxx latte.h Bump version number to 0.17. Output
tags at the beginnings of paragraphs rather than at the ends of paragraphs. Further improve the HTML preamble. The DOCTYPE declaration now claims "DTD HTML 4.0" when --strict is given, and "DTD HTML 4.0 Transitional" when --strict is not given. The DTD url is similarly variable. Do better at reporting "processing incomplete" errors; latte-html will now report the location of the beginning of the innermost incomplete form. Note that this is usually only roughly correct in the case of unbalanced braces. Eliminate unused t_ELLIPSIS lexer token value. +------- | Author: bobg Date: 1998-10-05 22:42 | File: | closure.cxx Never assign positional arguments to named parameters when invoking closures, even when there are excess positional args. Instead, evaluate (for side effects) and then silently drop the excess positional args. +------- | Author: bobg Date: 1998-10-05 22:20 | File: | html.latte Make sure all boolean HTML attributes are treated as such. +------- | Author: bobg Date: 1998-10-05 22:11 | File: | html.latte Add named parameter `nonstandard' to every HTML tag function. +------- | Author: bobg Date: 1998-10-05 21:46 | File: | latte-html.cxx Add --fragment, for producing HTML fragments. (Eliminates the HTML preamble and postamble from the output.) +------- | Author: bobg Date: 1998-10-05 21:16 | File: | html.latte Emit a
at the beginning of a
. Fixes latte/172. +------- | Author: bobg Date: 1998-10-05 18:13 | Files: | Makefile.am conf.cxx configure.in latte-conf.h latte-conf.h.in latte.el | syntax.cxx Add some generated files to CVS. Add a "Automatically generated" comment to the top of conf.cxx. Add more caveats to "make disthook". Bump version number to 0.16. Use AC_CACHE_CHECK, not AC_CACHE_VAL, and use AC_CHECK_FUNC, not AC_CHECK_FUNCS, when looking for getopt_long. This allows us to print a "checking for..." message and to avoid defining HAVE_GETOPT_LONG. Rewrite the latte-mode line indenter and un-uncomment it. +------- | Author: bobg Date: 1998-09-28 21:53 | Files: | acconfig.h configure.in definitions.cxx latte-conf.h.in latte-html.cxx | latte-string.h shstring.h Apply Bart's patch after some editorial changes. It adds a test for string::remove() when string::erase() isn't present (as in the older GNU libstdc++). In the process, I made a pass over the source to ensure that latte_string, not string, is used everywhere. +------- | Author: bobg Date: 1998-09-28 21:21 | Files: | TODO configure.in New post-beta TODO item, new mail address for configure failure. +------- | Author: bobg Date: 1998-09-27 18:19 | Files: | ChangeLog TODO latte-html.cxx latte-log.h latte.cxx latte.el latte.h | param.cxx reader.cxx syntax.lxx varref.cxx Don't emit the lang= HTML attribute unless --lang= was given on the command line. Add --debug=mem, which reports the number of extant and ever-allocated Latte_Objs, every hundredth ctor-or-dtor call. Add \"...\" syntax for encapsulating literal strings. These work exactly like unquoted words, but may contain whitespace and other things a single unquoted word may not contain. (This was a post-beta task, but it was gnawing at me.) Fix broken Latte_Param::render(). Remove Latte_VarRef::render() dead code. Adapt Latte_Reader string processing to handle both kinds of string syntax. Add new syntax to syntax.lxx. NOTE TO GREG: you'll need to regenerate syntax.cxx. +------- | Author: bobg Date: 1998-09-26 00:42 | Files: | TODO closure.cxx definitions.cxx html.latte latte-log.cxx More TODO management. In \append and \cons, do a special dance to preserve whitespace at beginning-of-group boundaries. In \apply, eval all the args before invoking the given operator. From a long comment in ApplyOp: args are now eval'd before invoking the operator. this means that operators that want some arguments uneval'd can't be called with apply (perhaps we will need an apply-quoting), and that most operators will redundantly re-eval their args when called with apply. But without evaling first, we can't pass the last arg's individual elements as individual args to the operator when the last arg eval's to a list, and that's essential. Make \downcase and \upcase take any number of arguments, and return a singleton or a list as in Latte_Closure::apply(). Don't use (unsigned) size_t to hold the arguments to \substr. Fix a usage of string::substr() therein. Don't make divide a synonym for multiply. Rename all the HTML character-entity Latte functions from foo to c-foo to avoid collisions like \not and \divide. Streamline latte-log a bit. +------- | Author: fox Date: 1998-09-25 21:45 | File: | latte-log.cxx lose, at least temporarily, Lawndart-derived log code in favor of unix-style logging -- cerr should work for a console app, and we'll revisit log output in the context of the appropriate plug-in. +------- | Author: fox Date: 1998-09-25 21:36 | File: | closure.cxx work around another conditional expression type conflict in CW 4 +------- | Author: fox Date: 1998-09-25 21:34 | File: | definitions.cxx lose InsertOutputOp for Mac +------- | Author: bobg Date: 1998-09-25 04:08 | Files: | Makefile.am QA README TODO definitions.cxx Include standard.latte in distributions. Don't claim html.latte is BUILT_SOURCE. Shuffle around TODO items after some discussion with Herr President. Also create the beginnings of a QA plan. Fix \varref to require a string argument (not to try to stringify whatever its argument may be). +------- | Author: bobg Date: 1998-09-25 03:40 | Files: | AUTHORS COPYING ChangeLog Makefile.am README TODO activation.cxx | assignment.cxx boolean.cxx closure.cxx configure.in definitions.cxx | env.cxx fileloc.cxx group.cxx html.latte latte-deque.h latte-fstream.h | latte-html.cxx latte-log.cxx latte-log.h latte-stack.h latte-string.h | latte-vector.h latte.cxx latte.el latte.h list.cxx load.cxx mutable.h | nested.cxx operator.cxx param.cxx reader.cxx refcount.h restorer.h | shstring.cxx shstring.h standard.latte str.cxx syntax.lxx tangible.cxx | varref.cxx visitor.cxx wsnode.cxx wstate.cxx Add license boilerplate everywhere. Define all remaining pre-beta operators, including: ceil, divide, explode, floor, modulo, multiply, operator?, subtract. Automatically load standard.latte before html.latte. Both are now suppressed with -n. Install standard.latte along with html.latte. Avoid some calls to LatteLog when the relevant latte_log_flags bit isn't set. +------- | Author: bobg Date: 1998-09-24 23:23 | File: | definitions.cxx Get the names right in ConsOp and WarnOp when the instance is actually a push-back or an error operator, respectively. +------- | Author: bobg Date: 1998-09-24 23:20 | Files: | TODO assignment.cxx boolean.cxx closure.cxx definitions.cxx group.cxx | latte-html.cxx latte-log.cxx latte.cxx latte.h list.cxx nested.cxx | operator.cxx param.cxx standard.latte str.cxx varref.cxx wsnode.cxx Remove done TODO items. Give every Latte_Obj class a render(), not just the Latte_Tangible subtree. Note, render() no longer tries to preserve the appearance of the input; it's now exclusively used for debugging. Adjust the few existing calls to LatteLog to be truly useful. Solve a trivial Mac portability problem in latte-log.cxx. When a closure evals to a single object, return just that object, not a list containing the one object. Solves numerous bugs, mainly in recursion. Note, "false" values do not count for purposes of determining the length of the list generated by a closure application. Add push-back (a.k.a. snoc), error, subseq and substr operators. Begin to define standard.latte, a library of non-intrinsics such as member?. Change all eval's to do_eval's, and create a new front-end call, Latte_Obj::eval(). The front end is responsible for outputting useful debugging info around calls to do_eval(). Fix bugs in Latte_Nested; now all Latte_Obj subtypes are correctly detected inside a Latte_Nested. +------- | Author: bobg Date: 1998-09-22 23:55 | Files: | TODO closure.cxx configure.in definitions.cxx group.cxx latte-html.cxx | latte.h list.cxx operator.cxx Remove more done TODO items. Get rid of the Latte_Objs type. Latte_List takes its place as a non-Latte_Tangible list of Latte_Obj's. Latte_Group now inherits form Latte_List and Latte_Tangible. Everything derived from Latte_Obj now inherits virtually. Bump Latte version number to 0.14. +------- | Author: bobg Date: 1998-09-22 23:21 | Files: | TODO definitions.cxx latte-string.h Remove more done TODO items. Don't misuse Latte_Group in WhileOp. Add string-append (a.k.a. concat), string?, upcase, downcase, and equal? operators. +------- | Author: srw Date: 1998-09-22 22:47 | File: | COPYING remove date stamp +------- | Author: srw Date: 1998-09-22 22:33 | File: | COPYING Sonoma -> Marin +------- | Author: srw Date: 1998-09-22 22:18 | File: | COPYING Zanshinify the NPL: change occurences of Netscape, move arbitration venue to Sonoma County, and don't require the use of "JAMS/EndDispute" for arbitration. +------- | Author: bobg Date: 1998-09-22 21:08 | Files: | TODO definitions.cxx latte-html.cxx latte.h Remove done TODO items. Define append, group, group?, and nth operators. (Many more to come.) Define new operator error OutOfRange, and report such errors. +------- | Author: bobg Date: 1998-09-21 20:40 | File: | Makefile.am Require automake 1.3. +------- | Author: bobg Date: 1998-09-21 18:14 | Files: | ChangeLog TODO html.latte latte-html.cxx visitor.cxx Remove one TODO item, add another. Add "--strict" option to latte-html. It defines the latte variable `\strict-html4' Without it, html.latte won't warn about using deprecated forms. Improve whitespace handling even more. Now" tag generation. +------- | Author: bobg Date: 1998-01-19 03:47 | Files: | closure.cxx group.cxx latte-html.cxx latte.h reader.cxx varref.cxx Create evalnodes in some places. Override all the as_* routines in Latte_EvalNode to operate on the nested object (except for as_evalnode(), which returns true). Flesh out Latte_EvalNode. Fix a whitespace problem. Crudely catch errors. Use Latte_Activation::define() in Latte_Reader::define_global(). +------- | Author: bobg Date: 1998-01-19 02:45 | File: | definitions.cxx Do not return value from DefOp::apply(). +------- | Author: bobg Date: 1998-01-19 02:29 | Files: | closure.cxx definitions.cxx latte-html.cxx latte.h Fill in various clone() and visit() ops. Create Latte_Reader::install_standard_definitions(). Make empty Latte_Lists be "false". +------- | Author: bobg Date: 1998-01-19 02:06 | Files: | activation.cxx closure.cxx definitions.cxx env.cxx latte.h Flesh out activations and environments some more. Finish (?) defining closures, including rest params and named params. Finish (?) DefOp. Add some Latte_Operator exception types. +------- | Author: bobg Date: 1998-01-19 01:10 | Files: | TODO closure.cxx definitions.cxx group.cxx latte.h param.cxx reader.cxx | str.cxx Write the closure ctor (which still needs a little work). Write Latte_Param, the type of "named" and "rest" (but not positional) formal params. Make Latte_Tangible::render virtual. Flesh out reader. +------- | Author: bobg Date: 1998-01-18 23:48 | Files: | Makefile.am activation.cxx assignment.cxx closure.cxx definitions.cxx | latte.h param.cxx reader.cxx wstate.cxx Rename Latte_Param (\foo=bar) to Latte_Assignment in preparation for defining a Latte_Param that covers param declarations in lambda forms. +------- | Author: bobg Date: 1998-01-18 02:23 | Files: | Makefile.am TODO activation.cxx closure.cxx definitions.cxx group.cxx | latte-html.cxx latte.cxx latte.h list.cxx reader.cxx str.cxx varref.cxx | visitor.cxx Start fleshing out closures. Don't pass Latte_BindingEnv's when a companion Latte_Activation is being passed. Use "mutate" in Latte_Activation::lookup(). +------- | Author: bobg Date: 1998-01-17 18:47 | Files: | Makefile.am activation.cxx definitions.cxx env.cxx group.cxx | latte-html.cxx latte.h reader.cxx visitor.cxx Make Latte_Activation::lookup() return a non-const reference, so values in an activation can be changed. Define Latte_Activation::extend(). Pass the surrounding group's wstate and fileloc to apply(). Flesh out html stuff. Flesh out closures (incompletely). Begin defining standard definitions. Add Latte_Reader::define_global(). Add smart whitespace behavior to Latte_Visitor. +------- | Author: bobg Date: 1998-01-17 08:12 | Files: | TODO tangible.cxx Forgot to add tangible.cxx. +------- | Author: bobg Date: 1998-01-17 07:58 | Files: | Makefile.am activation.cxx group.cxx latte-html.cxx latte.cxx latte.h | list.cxx mutable.h param.cxx reader.cxx refcount.h restorer.h str.cxx | varref.cxx Create Latte_Tangible, which is the Latte_Obj subtype that holds wstate and fileloc info. Change Latte_List to Latte_Group, and add a new Latte_Objs subtype, Latte_List, that's simply a list of objs without the tangibility or fancy eval semantics. Add Latte_Null, and a singleton object of that type. +------- | Author: bobg Date: 1998-01-17 06:31 | Files: | Makefile.am TODO latte-html.cxx latte.h Add restorer.h to the install. Flesh out Latte_HtmlObj (which now contains an arbitrary subobj). Add Latte_Str::str(). +------- | Author: bobg Date: 1998-01-16 09:21 | Files: | AUTHORS ChangeLog Makefile.am NEWS README TODO activation.cxx | configure.in env.cxx fileloc.cxx html.latte latte-html.cxx latte.cxx | latte.el latte.h latte.texi list.cxx mutable.h param.cxx reader.cxx | refcount.h restorer.h shstring.cxx shstring.h str.cxx syntax.lxx | varref.cxx wstate.cxx initial