-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathChangeLog
463 lines (311 loc) · 15.3 KB
/
ChangeLog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
** not updated, see git log **
2014-05-08 Cyrus Harmon <cyrus@bobobeach.com>
Add ABCL support.
2009-11-27 Paul Foley <paul@mises.com>
* bibtex-runtime.lisp (setf bib-entry-ref): If SORT.KEY$ is
changed, remove the cached sort key.
* icu.lisp: Add ICU sort-key comparisons, avoiding the need to
define CMP between vectors.
* cmp.lisp: Define hash table tests on SBCL, CLISP.
2009-11-25 Paul Foley <paul@mises.com>
Add support for Unicode collation on CMUCL, using libicu.
* icu.lisp: New file, Unicode collation support.
* packages.lisp: New exports bib-entry-ref, bib-entry-sort-key.
New dependency on package cmp.
* bibtex.asd, bibtex.system: New file, cmp.
* bst-functions.lisp: Use bib-entry-ref instead of gethash.
* bst-reader.lisp: Use comparison generics for sorting bib entries.
* cmp.lisp: New file, comparison generics.
* bibtex-runtime.lisp (bib-entry):
New struct. Make bib-entries be a struct rather than a
hash table, and move the "special" entries for type and cite-key (and
sort-key) out into slots.
(bib-entry-ref): New function, use instead of gethash on bib entries.
(*generate-sort-key*): New variable, for pluggable Unicode support.
(bib-entry-sort-key): New.
(cmp, hash): New methods for comparison generics, calling
bib-entry-sort-key.
2009-11-22 Matthias Koeppe <mkoeppe@math.ucdavis.edu>
* bibtex-runtime.lisp: Fix erroneous "splitting initials warning"
in names such as "Chandler, Jr., Alfred D."
Reported by Paul Foley.
2009-11-22 Paul Foley <paul@mises.com>
* bibtex-program.lisp (emulate-bibtex):
Bind *gc-verbose* in the right package.
* bibtex.lisp (compile-bst-file):
Bind *print-length* to avoid truncation.
2009-11-20 Matthias Koeppe <mkoeppe@math.ucdavis.edu>
Version 1.0.1
* bibtex.asd, bibtex.lisp, Makefile: Bump version number
* bibtex.lisp: Use keyword in in-package
2009-07-29 Matthias Koeppe <mkoeppe@math.ucdavis.edu>
* bibtex-program.lisp: Don't bind *gc-verbose* on sbcl.
* bibtex-program.lisp (emulate-bibtex):
Bind *gc-verbose* only on lisps that have it.
* packages.lisp (make-bib-entry): Export.
Patch by Cyrus Harmon.
2008-09-03 Matthias Koeppe <mkoeppe@math.ucdavis.edu>
* bibtex.asd: Fix ASDF system version.
Reported by Cyrus Harmon.
2008-09-03 Cyrus Harmon <cyrus@cyrusharmon.org>
* bibtex.lisp, bibtex-runtime.lisp: Fix warnings by SBCL.
* bibtex-program.lisp: Remove dependency on PORT.
2007-12-17 Matthias Koeppe <mkoeppe@mail.math.uni-magdeburg.de>
Use symbols +cite-key+ (rather than the string "KEY") and +entry-type+
(rather than the string "ENTRY-TYPE") as keys for the cite key and
the entry types in the hash table representing a bibliographic entry.
This removes the confusion with the bibliography-defined attribute "KEY".
* packages.lisp, bst-builtins.lisp,
bibtex-runtime.lisp (bib-entry-cite-key, bib-entry-type): New
accessor macros. Use them throughout.
2007-12-17 Matthias Koeppe <mkoeppe@mail.math.uni-magdeburg.de>
* bibtex-runtime.lisp (von-token-p): Implement precise BibTeX
behavior with regard to special characters.
2007-12-13 Matthias Koeppe <mkoeppe@mail.math.uni-magdeburg.de>
* bibtex-program.lisp: Change the defaults to
*bibtex-split-initials* = true; use the command-line option
-no-split-initials to change it.
* bibtex-runtime.lisp (tokenize-bibtex-name):
Warn when initials are split.
* bibtex-runtime.lisp (process-bib-entry-command):
Signal a bib-error on repeated entries.
* bibtex-program.lisp (emulate-bibtex):
Report number and type of errors.
* bibtex.lisp, bibtex-runtime.lisp:
Be more verbose, like the original BibTeX
2007-12-12 Matthias Koeppe <mkoeppe@mail.math.uni-magdeburg.de>
* bibtex-runtime.lisp: Attempt to fix some excessive consing.
(format-bibtex-name-component): Properly handle abbreviating names that start
with special characters. Example: "Matiyasevich, {\relax{Yu}}ri V."
(parse-equivalent-entries-string, compute-bib-equivalence-classes,
check-multiple-cited-equivalent-entries): New.
(read-all-bib-files-and-compute-bib-entries): Use it here.
* bibtex.lisp: Fix pathname cases on Allegro CL.
(bibtex): Return error history and error count.
* bibtex: Fix according to new packaging.
* bibtex-program.lisp: Put definitions in the package :bibtex-program.
(emulate-bibtex): Signal an exit code according to the value of
*history* at the end of the bibtex run.
* bibtex.asd: Fix some dependencies to remove compiler warnings.
Add bibtex-program as a source file.
* kpathsea.lisp: Remove use of cl:require.
Add a specialized implementation for Allegro CL, where the
implementation of PORT:pipe-input is too slow.
* packages.lisp (:bibtex-program): New package.
2007-08-24 Matthias Koeppe <mkoeppe@mail.math.uni-magdeburg.de>
Version 1.0
Released under the GNU LGPL 2.1 or later with Franz-style Lisp
clarification.
* README: Declare CL-BibTeX stable.
2007-08-24 Matthias Koeppe <mkoeppe@mail.math.uni-magdeburg.de>
* packages.lisp (packages bibtex-runtime, bibtex-compiler): Always
shadow #:variable, as it is a standard CL symbol.
* bibtex.asd: Hans Halvorson approved same license conditions for
asd file - updating copyright. Thanks to Cliff Yapp for updating
the file.
* bibtex.system: Get source path from *load-truename*.
2007-08-22 Matthias Koeppe <mkoeppe@mail.math.uni-magdeburg.de>
Re-release CL-BibTeX under the GNU LGPL 2.1 or later
with Franz-style Lisp clarification.
Thanks to Cliff Yapp for updating the files.
* COPYING-preamble.txt: Add preamble file.
* COPYING, bibtex-compiler.lisp, bibtex-program.lisp,
bibtex-runtime.lisp, bibtex.lisp, bibtex.system,
bst-builtins.lisp, bst-functions.lisp, bst-reader.lisp,
debian/copyright, interpreter.lisp, kpathsea.lisp,
lisp-form-builder.lisp, packages.lisp: Change license to LGPLv2.1
or later with Lisp clarification.
* README: Change license to LGPLv2.1 or later with Lisp
clarification, update with current URLs.
2006-12-29 Hans Halvorson <hhalvors@princeton.edu>
* bibtex.asd: New file.
2003-03-31 Matthias Koeppe <mkoeppe@mail.math.uni-magdeburg.de>
Version 0.4
* bst-builtins.lisp (CHR.TO.INT$): Fix warning in interpreted mode.
* bibtex.lisp (*registered-bibtex-style*): New.
(register-bibtex-style): Set it here.
(interpreted-bibtex-style, lisp-bibtex-style): New.
(find-bibtex-style): Use it here.
* bibtex-runtime.lisp (*foreign-character-purifications*): Removed.
(defstruct foreign-character, *foreign-characters*,
define-foreign-character, find-foreign-character): New.
(bibtex-string-purify): Use it here.
(bibtex-string-upcase, bibtex-string-downcase,
bibtex-string-titledowncase): Handle special characters.
2003-02-06 Matthias Koeppe <mkoeppe@mail.math.uni-magdeburg.de>
* bibtex-runtime.lisp (+bib-whitespace-character-list+): Add #\Tab.
2003-01-28 Matthias Koeppe <mkoeppe@mail.math.uni-magdeburg.de>
* bibtex-runtime.lisp (format-bibtex-name-component,
format-bibtex-name): Go for bug-for-bug compatibility with BibTeX
in the domain of tieing short name components.
(write-tex-group): New optional argument NO-TERMINATE-P; use it to
suppress unneeded whitespace after control words. (This gets rid of
the extraneous whitespace after control words, which was introduced by
bibtex-string-upcase and bibtex-string-downcase.)
(bibtex-string-purify): Don't remove whitespace, turn it into a space
instead. (This fixes problems with the sort order for some styles.)
2003-01-16 Matthias Koeppe <mkoeppe@mail.math.uni-magdeburg.de>
* bibtex-compiler.lisp (bst-compiler-warning): Add report function.
(compile-bst-function): Resignal errors.
* bst-builtins.lisp (newline$, write$): Use BBL-TERPRI and BBL-PRINT.
* bibtex.lisp (bibtex): Use WITH-BBL-OUTPUT.
* bibtex-runtime.lisp (bib-warn): Print "Warning".
(read-bib-field-token): Call BIB-WARN, rather than BIB-ERROR, for
undefined macros.
(get-merged-bib-entry): New.
(cited-bib-entries): Resolve crossrefs also if all entries are cited.
Always merge crossrefed data into entry.
(*bbl-min-print-line*, *bbl-max-print-line*, *bbl-line-buffer*): New.
(bbl-print, bbl-terpri, bbl-flush, with-bbl-output): New.
(read-all-bib-files-and-compute-bib-entries): Fix the case of
unreadable database files.
2003-01-03 Matthias Koeppe <mkoeppe@mail.math.uni-magdeburg.de>
* bibtex-compiler.lisp (coerce-form): New.
(pop-form): Use it here.
(type-union*): New.
("IF$"): Fix handling of *relaxed-compilation*. Handle the case
of THEN function returning BOOLEAN and ELSE function returning
INTEGER.
(package-as-body): New keyword arg, expected-result-types.
(package-as-form, package-as-procedure): Pass args to package-as-body.
(":="): Catch assignments to non-variables. Request the type of the
assigned-to variable when popping the new value.
(compile-literal): New.
(bst-compile-literal): Use it here. Pass remaining args to
package-as-form.
(*silent-compilation*): New variable.
(bst-compile-warning): Don't signal a condition if *silent-compilation*.
("IF$"): Bind *silent-compilation* to true during the first pass.
(assign-loop-variables): New.
(bst-compile-literal-as-while-body): Use it here.
(bst-compile-literal-as-while-predicate): New.
(current-stack-as-values-list): New.
("WHILE$"): Handle the case of loops with complicated data flow.
(compile-funcall): Pass the pop-form-args of a function to pop-form
when popping the arguments.
* bst-builtins.lisp ("+"): Use build-associative-form.
("change.case$", "chr.to.int$"): Use the pop-form args
:NEED-VARIABLE T. Get rid of LET.
* bst-functions.lisp (bst-function): New field, pop-form-args.
* bst-reader.lisp (*bst-readtable*):
Intern :-symbols into the current package.
* lisp-form-builder.lisp (build-values-body, build-progn-form): New.
* packages.lisp (bibtex-runtime, bibtex-compiler):
Shadow VARIABLE also in CLISP.
2002-12-25 Matthias Koeppe <mkoeppe@mail.math.uni-magdeburg.de>
* bibtex.lisp (make-macro-set-form): Don't emit a SETF form if
nothing is to be set.
(compile-bst-file): Make some variables constant. Sort shadowed
symbols.
* bibtex-compiler.lisp (*bst-function-call-sequence*): New.
(*relaxed-compilation*): New.
(bst-compiler-warning, bst-compile-warning): New.
(pop-form): Even if NEED-VARIABLE is :IF-SIDE-EFFECTS, we need to
make sure we pop single-value forms only! (This caused a bug when
compiling a custombib-generated style file.)
(pop-form): Return a fourth value that disambiguates between a Lisp
form NIL and the exhausted-stack situation when :WHEN-EMPTY is NIL.
(pop-single-value-form): Handle this.
(":="): Do nothing for constant variables. Otherwise, count
assignments.
(get-bst-function): Signal an error if a function is referenced that
could not be compiled.
("IF$"): Handle *RELAXED-COMPILATION*.
(compile-bst-function): HANDLER-BIND for condition
BST-COMPILER-WARNING.
(make-some-variables-lexical): Don't try to make constants lexical.
(make-some-variables-constant): New.
* bst-reader.lisp: Record BST function calls in
*BST-FUNCTION-CALL-SEQUENCE*.
* bst-functions.lisp (bst-function): New fields.
(register-bst-global-var): New keyword arg.
(bst-name-to-lisp-name): Handle :constant variables.
* bst-builtins.lisp (FALSE, TRUE): New pseudo-primitive BST functions.
(ENTRY.MAX$, GLOBAL.MAX$): Declare constant.
2002-12-15 Matthias Koeppe <mkoeppe@mail.math.uni-magdeburg.de>
Version 0.3.1
* bst-reader.lisp: Fix the interpreter to not compute Lisp
symbols for the BST identifiers, which would fail.
2002-12-15 Matthias Koeppe <mkoeppe@mail.math.uni-magdeburg.de>
Version 0.3
* bst-builtins.lisp (CALL.TYPE$): Use bst-intern rather than intern.
* bibtex.system (*bibtex-source-pathname*, *bibtex-binary-pathname*):
New variables.
(mk:defsystem "BIBTEX"): Use them here.
* bibtex.lisp (*bibtex-pprint-dispatch*): Moved here.
(compile-bst-file): Make two compiler passes.
(bibtex): Make *bib-macros* an equalp hash.
* bibtex-compiler.lisp (*lisp-stream*, lisp-write): Removed.
(*bibtex-pprint-dispatch*): Moved to bibtex.lisp.
(max-side-effectss, remove-variables-from-side-effects,
package-as-body, IF$, compile-funcall): Handle the new side
effects "variables-used-before-assigned" and
"unconditionally-assigned-variables".
(bst-gentemp): Use bst-intern rather than intern.
(print-bst-function-info): New.
(compile-bst-function): Changed interface; modify the passed
bst-function structure.
(make-some-variables-lexical): New.
* bst-functions.lisp (side-effects, bst-function): New fields.
(*bst-package*): New variable.
(bst-intern): New function.
(bst-name-to-lisp-name): Use bst-intern rather than intern.
* bst-reader.lisp (get-bst-commands-and-process, INTEGERS,
STRINGS): Store into *bst-definition-sequence*, rather than
writing to *lisp-stream*.
(FUNCTION): Changed call to compile-bst-function.
2002-12-11 Matthias Koeppe <mkoeppe@mail.math.uni-magdeburg.de>
* bibtex-runtime.lisp (bibtex-string-upcase): Really upcase (not
downcase) the string. Reported by Solofo Ramangalahy.
* packages.lisp: Allegro portability fix. Thanks to Drew McDermott.
* interpreter.lisp (bst-execute-body, bst-execute-stack-literal,
bst-pop/coerce, bst-coerce/push): Handle the case of the empty
BST function body {}.
* bibtex-compiler.lisp (mvform): Use an extra field to
disambiguate between the Lisp form () and the empty BST function
body {}. Change uses throughout.
Reported by Drew McDermott.
2002-11-25 Matthias Koeppe <mkoeppe@mail.math.uni-magdeburg.de>
Version 0.2
* bibtex: New shell script.
* bibtex-compiler.lisp (lisp-write): Use pprint dispatch function
for DEFINE-BIBTEX-STYLE.
(IF$, compile-bst-function): Change call to bst-name-to-lisp-name.
* run-lisp: Added from CLOCC.
* kpathsea.lisp (find-file): Implement for SBCL; implement for all
other platforms using CLOCC PORT.
* bst-reader.lisp (*bst-readtable*): Portability fix for CLISP in
macro-character function of #\:.
(INTEGERS, STRINGS): Changed use of BST-NAME.
(ITERATE, READ, REVERSE, SORT): Fix for target package.
* bst-functions.lisp (bst-name-to-lisp-name): Use *SPECIAL* naming
convention for special variables.
* bst-builtins.lisp (CALL.TYPE$): Fixes for the target package.
* bibtex.lisp (compile-bst-file): Write out defpackage, in-package, and
define-bibtex-style forms.
(*bibtex-styles*, register-bibtex-style, define-bibtex-style,
find-bibtex-style): New.
(bibtex, cl-bibtex): Unified functionality into the BIBTEX function;
removed CL-BIBTEX. Use FIND-BIBTEX-STYLE.
* bibtex-runtime.lisp (mark-history): Set *err-count* to 1 if new
level of error reached.
(process-bib-preamble-command): Fix to handle extra level of
quoting around preamble strings.
(make-bib-entry, merge-bib-entries): New.
(*min-crossref*): New variable.
(cited-bib-entries): Implement the crossref feature.
(for-all-tex-tokens, do-tex-tokens): New.
(bibtex-string-width): Handle special chars.
(tex-alpha-char-p): New.
(read-tex-control-sequence): New keyword argument :AT-IS-LETTER.
(get-aux-command-and-process): Handle the \@input command to deal
with nested .aux files.
(*foreign-character-purifications*): New.
(bibtex-string-purify): Do the purification.
2002-03-18 Matthias Koeppe <mkoeppe@mail.math.uni-magdeburg.de>
* kpathsea.lisp (find-file): Take pathname designators, not strings.
* bibtex.lisp (bibtex, cl-bibtex): Likewise.
Suggested by Paul Foley.
* packages.lisp, bibtex-runtime.lisp (write-bib-entry): New function.
2002-03-14 Matthias Koeppe <mkoeppe@mail.math.uni-magdeburg.de>
Version 0.1