File: ChangeLog

package info (click to toggle)
ifile 1.3.9-1
  • links: PTS, VCS
  • area: main
  • in suites: squeeze
  • size: 1,096 kB
  • ctags: 1,025
  • sloc: ansic: 7,409; makefile: 421; sh: 269
file content (1126 lines) | stat: -rw-r--r-- 38,412 bytes parent folder | download | duplicates (6)
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
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
2009-12-04  Jason Rennie

	* release 1.3.9
	* opts.c: set argp_program_bug_address to NULL
	* argp/pargp-fs-xinl.c: comment-out __OPTIMIZE__ redef
	* argp/argp-xinl.c: comment-out __OPTIMIZE__ redef
	* ifile.1: incorporate Debian fixes to man page

2006-09-12  Jason Rennie

	* README: remove mailing list URL, update web page

2006-05-17  Jason Rennie

	* release 1.3.8
	* debian: delete directory; don't want to step on Jens Peter
	Secher toes (official Debian ifile maintainer); wait for guidance
	* opts.c (parse_opt): allow use of concise option with loocv_folder

2006-05-17  Paolo

	* util.c, ifile.c: fix LOOCV query (as I got it): if folder's not
	  already there, don't create it really, not even temp for next
	  query.
	* Makefile.in: add STRIP

2006-05-16  Paolo

	* release 1.3.7
	* Makefile.in: add DESTDIR
	* argp/Makefile.in: add DESTDIR
	* debian: new directory w/ Debian-related files

2006-05-14  Paolo

	* release 1.3.6
	* util.c (ifile_print_ratings, ifile_concise_ratings): fix segv if
	no folders in DB or #folders less than 2 and -T is set

2004-12-12  Jason Rennie

	* release 1.3.5

2004-12-11  Derek Peschel

	* configure.ac: Check type of ssize_t which database.c uses.

2004-05-01  Jason Rennie

	* update 1.3.4

2004-05-01  Paolo

	* ifile.1: update for threshold option
	* opts.c (-T): update --help documentation

2004-04-30  Jason Rennie

	* release 1.3.4

2004-04-30  Paolo

	* ifile.c: add args.thresh to ratings calls
	* include/ifile.h: add int thresh to arguments
	* opts.c (options, parse_opt): add threshold option
	* util.c (ifile_print_ratings, ifile_concise_ratings): print
	threshold info
	
2003-07-28  Jason Rennie

	* release 1.3.3

2003-07-25  Jason Rennie

	* BUGS: removed
	* configure: recompile (Re: Lubomir's patch)
	* argp/configure: recompile (Re: Lubomir's patch)

2003-07-25  Lubomir Sedlacik

	* configure.ac: don't use __attributes__ for non-GCC compilers
	* argp/configure.in: don't use __attributes__ for non-GCC compilers

2003-06-10  Jason Rennie

	* release 1.3.2

2003-05-26  Michael Hohmuth

	* ifile.c: add setlocale command; fixes bug 1500.

2003-05-22  Jason Rennie

	* opts.c: Change // comment to /**/ (use C style comments)

2003-04-16  Jason Rennie

	* release 1.3.1

	* opts.c: update mailing list address

2003-04-11  Jason Rennie

	* database.c: make error messages refer to temp_data_file; free
	temp_data_file

2003-03-30  Jason Rennie

	* database.c (ifile_write_db): check for errors while writing
	database.  Fixes bug 2955.

2003-02-13  Dave Marquardt

	* Fixed problems in configure and autoconf scripts for the case of
	selecting non-gcc C compiler.  Fixes bug 2535.

2003-02-07  Jason Rennie

	* release 1.3.0

	* configure.ac: new file (rename from "configure.in")

	* Makefile.in (DIST_FILES): remove configure.in

2003-02-11  Dave Marquardt

	* include/extendable_array.h:  Fixed bug in EXT_ARRAY_INIT_N_SET()
	macro.  Fixes bug 2516, where new folders caused the database to
	be garbled.

2003-01-29  Dave Marquardt

	* Performance improvements:  On a Sun SPARC-based system running
	Solaris 10, with a database of about 16500 words, got a 40%
	improvement in words processed per second when reading the
	database, using the changes listed here.

	* include/ifile.h:  Changed prototypes for readline(),
	ifile_read_header() and ifile_read_word_frequencies() to reflect
	new calling conventions.

	* include/extendable_array.h:  New macro EXT_ARRAY_INIT_N_SET()
	combines the effects of EXT_ARRAY_INIT() and multiple calls to
	EXT_ARRAY_SET() in a smarter way, saving many realloc() calls and
	many manipulations of the array metadata.

	* utils.c:  Rewrote readline to take a char** bufp and use the
	data within *bufp to parse a line, and update *bufp to point
	beyond the first line.  This avoids at least one copy of the
	data.

	* primes.c:  Cast values returned by ifile_realloc() correctly.

	* int4str.c:  Cast argument to free() to void * in
	ifile_int4str_free_contents(), to fix compiler complaints.

	* hash.c:  Added an include of <string.h> to fix compiler
	complaints.

	* database.c:  Made ifile_read_db() read the whole database in one
	fell swoop and modified callers of readline() to just pass in a
	pointer to the buffered database.

	Also made ifile_read_word_entry() call a new macro
	EXT_ARRAY_INIT_N_SET() in place of EXT_ARRAY_INIT() and multiple
	calls to EXT_ARRAY_SET(), saving many calls to realloc() and many
	manipulations of the extendable array metadata.

2002-11-25  Jason Rennie

	* release 1.2.1

	* ifile.c: don't dump core if database doesn't exist and user
	gives one of these options: -q, -Q, -l, -u

	* Makefile.in: make "dist" upload to Savannah file area

2002-10-31  Jason Rennie

	* release 1.2.0

	* ifile.tcl, user.tcl, ifilter.mh.pl, irefile.mh.pl,
	knowledge_base.mh.pl, news2mail.pl: removed (added to new mh-ifile
	package)

	* FAQ: removed (converted to html, posted on web page)

	* various: update mailing list web page & e-mail address

	* Makefile.in: remove all references to removed files

	* INSTALL: delete mh-specific instructions (moved to mh-ifile)

	* experiment.mh.pl: removed (unnecessary)
	
2002-10-26  Jason Rennie

	* ifile.c: error if -u folder doesn't exist
	
2002-10-16  Jason Rennie
	
	* release 1.1.5

2002-09-27  Jason Rennie
	
	* release 1.1.4

	* ifile.1: add reference to FAQ file for database format

2002-09-26  Andreas Piesk

	* ifile.c (main): check that message isn't NULL before freeing it
	
2002-09-19  Camillo Srs

	* Makefile.in (install): mode 0755 for MAIN_EXECUTABLES and
	PERL_RUNNABLE_FILES

	* Makefile.in (include/ifile.h): add "-f" to mv; make target
	$(srcdir)/include/ifile.h (instead of $@)

2002-09-11  Jason Rennie

	* release 1.1.3

	* INSTALL: update

	* argp: add ldmalloc stuff

2002-09-10  Jason Rennie

	* release 1.1.2

	* opts.c: remove -h from --concise option

	* ifile.c (main): move ifile_age_words out of message reading
	loops; make individual message print ifile_verbose; time reading
	all messages rather than individual messages

	* Makefile.in (DIST_FILES): add configure.in
	
2002-09-10  Aaron M. Ucko

	* configure.in: add --with-dmalloc option
	
2002-09-10  Nathan

	* Makefile.in: use $(srcdir) to specify location of man pages
	
2002-09-10  Jason Rennie

	* release 1.1.1

	* opts.c: remove -h from --concise option
	
2002-09-09  Jeremy Brown

	* release 1.1.0
	
	* util.c: htable_put calls should no longer use strdup
	(ifile_free):  does this function do anything useful?
	
	* stoplist.c (ifile_stoplist_free): free the stoplist data
	structure on exit (used only when debugging memory leaks.)
	
	* int4str.c (ifile_int4str_free_contents):  free contained
	strings too.
	
	* ifile.c: Completely restructured main loop: read one message,
	process it, free the memory it consumed; iterate.  Save database
	only after all messages processed.  If using dmalloc debugging
	malloc library, free main datastructures at the end, otherwise
	just exit fast and dirty.
	
	* hash_table.c: hash tables create their own internal copies of
	key strings (except when resizing, of course); htable_put calls
	should never bother to strdup the key.   TODO: hashtables are
	currently hardwired to use strings as keys/indices, but there are
	partial facilities for generalization; make it all general.
	(htable_free_guts): free key, value, etc. of a hashtable with
	user-provided functions.
	(htable_free): use htable_free_guts, then free the actual
	structure too.

	* include/hash_table.h: added/modified prototypes

	* database.c: copy a string for each data structure it's stored in
	to avoid having to reference-count for strings.  Don't use strdup
	when calling htable_put.
	(wentry_free, ifile_db_free, ifile_free_categories): new functions
	that free major data-structures.  TODO: name these things
	consistently.
	
	* include/ifile.h: added/modified prototypes.  Also added
	dmalloc.h hook for use with the dmalloc debugging malloc library.

2002-09-03  Jeremy Brown

	* release 1.0.11
	* istext.c: make NUM_TEST_CHARS more constant

2002-09-03  Steve Price

	* ifile.c: in loocv, skip message if NULL

2002-08-28  Matt Kraai

	* release 1.0.10
	* database.c (ifile_read_header, ifile_read_word_frequencies):
	make ifile die more reasonably when given a bad .idata file to
	read
	* util.c (readline): return NULL if read fails	
	* release 1.0.9
	* util.c (readline): make work properly if fgets returns an error

2002-08-28  Jason Rennie

	* release 1.0.8
	* Makefile.in: clean up, install man page; make install
	directories work like they should
	* ifile.1: new file
	* test.sh: new file

2002-08-19  Jason Rennie

	* release 1.0.7
	* opts.c (argp_program_bug_address): Change to mailing list
	* opts.c (parse_opt): eliminate query flags from case 'c'; error
	if -c option not used with -q or -Q

2002-07-24  Karl Vogel

	* release 1.0.6
	* ifile.c, include/ifile.h, util.c: print file names for new '-c'
	option

2002-07-15  Jason Rennie

	* configure.in: new file
	* configure: generate with autoconf

2002-07-15  Jason Rennie

	* release 1.0.5
	* Makefile.in: Don't install libifile.a

2002-07-15  Karl Vogel

	* ifile.c (main): use args.concise, ifile_concise_ratings
	* opts.c: new option, "concise"
	* util.c: abort() if malloc returns null
	* util.c (ifile_concise_ratings): new function
	
2002-01-20  Jason Rennie

	* ifile v1.0.4 released
	* ifile.c (main): check for MSG != NULL (fixes segfault)

2001-11-22  Jason Rennie

	* ifile v1.0.3 released
	* database.c (ifile_add_db): add 'create' parameter; use it
	* ifile.c (main): update uses of ifile_add_db
	* opts.c (update): add new option	
	* opts.c (ifile_init_args): set default value of create_folder
	* ifile.h (arguments): add create_folder
	* ifile.h (ifile_add_db): add 'create' parameter

2001-02-09  Caleb Crome

	* news2mail.pl: Change #! line to /usr/bin/perl

2000-03-14  William O. Ferry

	* irefile.mh.pl: use `pick' to expand message
	wildcards (e.g. 100-200, cur)

2000-01-18  Jason Rennie

	* COPYING: Latest GPL formatting (http://www.gnu.org/copyleft/gpl.txt)
	* README, INSTALL: minor changes
	* Makefile.in (DIST_FILES): add COPYING

1999-10-27  Jason Rennie

	* NOTES: update for 1.0.0

	* INSTALL: updates for ifile.tcl->user.tcl/ifile.tcl code split;
	other minor changes

	* ifile.tcl: move User_* functions to user.tcl

	* README: removed text that was copied in other text files;
	updated version

	* FAQ: move "does ifile actually work" to FAQ
	* FAQ: update FAQ to reflect CMU->MIT/AI Lab move

Fri Apr 23 17:55:47 1999  Jason Daniel Rennie

	* INSTALL: update EXMH install to reflect ifile.tcl fix; mention
 	EXMH "custom" inc method

	* ifile.tcl: Recent fix to EXMH makes it possible to redefine
 	Mh_Refile without any tricks--any function that runs via the
 	background process must be defined in User_Layout

Thu Apr 22 22:48:16 1999  Jason Daniel Rennie

	* INSTALL: automatic filter when EXMH incorporates mail is no
 	longer an option (without an external filter such as slocal);
 	update text to indicate so

	* ifile.tcl: remove most incorporate code; keep Inc_Init, but make
 	it the same as EXMH 2.0.2

Thu Feb 19 12:07:38 EST 1998  Jason Daniel Rennie

	consider making optional argument to --log-file
	consider having ~/.ifile directory store idata, accuracy,
	log files

Thu Dec  3 12:55:51 EST 1998  Jason Daniel Rennie

	* ifilter.mh.pl: Add X-filter: header at end of header section;
	rename old x-filter headers

	ifile-981203 released

Wed Dec  2 18:20:36 EST 1998  Jason Daniel Rennie

	* README, Version: bump version number to v0.7.3
	* database.c (ifile_write_db): clean up tmp file name code
	* ifile.c, opts.c: add print-tokens option
	* lex-simple.c, opts.c: add max-length option
	* util.c (ifile_print_message): fix
	* include/ifile.h: add max_length and print_tokens to argument type
	* Makefile.in: make snapshot work

	ifile-981202 released

Tue Apr  7 20:43:11 EDT 1998  "Harry G. McGavran Jr."

	* database.c: ifile_write_db(): Fix for a pointer bug which would
	cause a segfault on many occasions.

Mon Apr  6 17:18:00 EDT 1998  Jason Daniel Rennie

	ifile v0.7.1 released

Mon Apr  6 12:57:53 EDT 1998  Jason Daniel Rennie

	* database.c: Modified ifile_write_db() so that database is first
	written to a file which is user/host specific.  Once database writing
	is done, file is renamed to real file name.

Fri Apr  3 12:36:02 EST 1998  Jason Daniel Rennie

	* ifilter.mh.pl: changed removal of temporary file to use unlink()
	(previously used "system \"rm $tmp_file\"")
	Made temporary file read/writable only to user.

Tue Mar 31 13:38:56 EST 1998  Jason Daniel Rennie

	* Makefile.in: added $(srcdir) in copy of argp.h to include dir.

Tue Mar 31 02:21:00 EST 1998  Jason Daniel Rennie

	ifile v0.7.0 released

Tue Mar 31 00:15:17 EST 1998  Jason Daniel Rennie

	* error.c, opts.c: debugging/log information now stored in
	~/.ifile.log (previously /tmp/ifile.log.[userid])a
	* ifilter.mh.pl: debugging/log info now stored in ~/.ifilter.log
	* irefile.mh.pl: debugging/log info now stored in ~/.irefile.log

Mon Mar 30 03:16:29 EST 1998  Jason Daniel Rennie

	* ifilter.mh.pl: check to make sure we have write permissions
	before deciding on the folder to filter to.
	* experiment.mh.pl/knowldege_base.mh.pl: only accumuate info
	on mailboxes which we have write permissions to.

Mon Mar 30 01:33:22 EST 1998  "Harry G. McGavran Jr."

	* ifile.c: semaphore code to keep two ifile processes from messing
	with the data file at the same time.

Thu Mar  5 03:15:00 EST 1998  Jason Daniel Rennie

	* ifile.c: changed cmp() function so that it returns 0 when given
	two floats which are equal.  Previously, would return 1 - this
	seems to have caused mass hysteria when passed to qsort.

Thu Mar  5 01:13:35 EST 1998  Jason Daniel Rennie

	* knowledge_base.mh.pl: No longer uses wildcard when choosing files
	from a directory.  Now only takes files with names completely
	composed of digits.  Changed file names which are passed to ifile
	binary - now uses relative (instead of absolute) path names.
	* experiment.mh.pl: Changed file names which are passed to ifile
	binary - now uses relative (instead of absolute) path names.
	This reduces the length of the command line call.

Wed Feb 25 13:05:40 EST 1998  Jason Daniel Rennie

	* Makefile.in: added $(srcdir)/ to ifile.h locations in
	include/ifile.h make

Sun Feb 22 11:25:07 EST 1998  Jason Daniel Rennie

	* experiment.mh.pl: changed $data_file to absolute path

Thu Feb 19 01:40:37 EST 1998  Jason Daniel Rennie

	ifile v0.6.6 released

Thu Feb 19 00:46:09 EST 1998  Jason Daniel Rennie

	* hash_table.c, scan.c, istext.c: accounted for minor C library
        inconsistencies on SunOS 4.1.3_U1

Wed Feb 18 17:10:27 EST 1998  Valdis Kletnieks

	* Makefile.in: removed "-include Makefile" from bottom of file.
	* istext.c: AIX compiler doesn't like const static int <blah> =
	declaration.  Inserted #defines instead.
	* lex-email.c, primes.c: AIX needs "#pragma alloca" to be able
	to properly use alloca()

Wed Feb 18 01:50:51 EST 1998  Jason Daniel Rennie

	* Makefile.in: removed dependencies on configure (in both main and
	argp directories), removed configure from maintainer-clean build
	* configure.in: removed file from distribution
	* ifilter.mh.pl: added '-g' option to output
	/tmp/<exe_name>.log.<userid> with 0600 permissions.
	* irefile.mh.pl: added '-g' option to output
	/tmp/<exe_name>.log.<userid> with 0600 permissions.
	* irefile.mh.pl: do not pass '-g' option to refile executable
	* ifile.c, error.c: added '-g' option to output
	/tmp/<exe_name>.log.<userid> file.  Added chmod() in error.c
	to set permissions of file to 0600.
	* include/ifile.h, opts.c: added -g option, added tmp_file to
	arguments struct.
	* error.c: fixed ifile_strip_path() - previously was putting
	extra '/' at beginning of returned string.
	* opts.c: added cases to parse_opt() so that it will only
	return error when it is supposed to.
	* FAQ: added info about configure --srcdir option

Thu Feb 12 23:24:39 EST 1998  Jason Daniel Rennie

	* Makefile: removed experiment.mh.pl from list of PERL_FILES
	ifile v0.6.5 released

Thu Feb 12 04:02:30 EST 1998  Jason Daniel Rennie

	ifile v0.6.4 released

Thu Feb 12 03:32:21 EST 1998  Jason Daniel Rennie

	* ifile.c: previously checked for word aging only in the case
	of --insert without --delete.  With new --query-insert option,
	this old style of --insert w/o --delete is never used.  Changed
	condition so that it checks for --query-insert option.

Tue Feb 10 10:53:53 EST 1998  Jason Daniel Rennie

	* opts.c: Added db-file command line option.
	* ifile.c: Changed all instances of IFILE_DATA so that it
	would use arg.db_file for location of db storage

Mon Feb  2 22:35:00 EST 1998  Jason Daniel Rennie

	ifile v0.6.3 released

Mon Feb  2 21:32:45 EST 1998  Jason Daniel Rennie

	* error.c: changed ifile_open_log so that it will overwrite the
	old log file.  changed ifile_strip_path so that it doesn't skip
	first character in executable name.

Mon Feb  2 00:28:06 EST 1998  Jason Daniel Rennie

	* ifilter.mh, irefile.mh: added checks for executability of MH
	programs

Fri Jan 30 03:07:19 EST 1998  Jason Daniel Rennie

	* UPGRADE, INSTALL: Added information about the necessity to
	have MH binaries in a directory which is part of the user's path.
	* ifilter.mh, irefile.mh: Added code which will cause each to
	die miserably if MH binaries are not runnable (either because full
	path is not specified or because PATH does not include MH dirs)

Thu Jan 29 03:04:00 EST 1998  Jason Daniel Rennie

	ifile v0.6.2 released

Thu Jan 29 00:47:50 EST 1998  Jason Daniel Rennie

	* database.c, hash_table.c: changed a number of (int) casts to
	(long int) casts.  On Alphas and other 64-bit machines, casting
	from a pointer to int would cause a compiler warning.  Casting to
	(long int) eliminates those warnings.

Thu Jan 22 01:32:29 EST 1998  Jason Daniel Rennie

	* ifile.tcl: Added. Created a new Mh_Refile function to cause EXMH
	to call irefile.mh when it would normally call MH refile.
	* irefile.mh.pl: Fixed some bugs, caused it to output debugging
	information to /tmp/irefile.info.  Bugs included .mh_profile parsing
	and variable name misstypings.

Thu Jan 15 00:08:22 EST 1998  Jason Daniel Rennie

	* changed all instances of "ifile.h" to <ifile.h>
	* Makefile.in: modified installation section so that files are
	passed to installation program one at a time (some installation
	programs cannot handle multiple files).

Wed Dec 24 23:23:00 EST 1997  Jason Daniel Rennie

	* irefile.mh.pl: various minor changes to eliminate bugs & to get it
	to work properly

Wed Dec 24 13:19:41 EST 1997  Jason Daniel Rennie

	* ifile.c, ifile.h, opts.c: minor modifications to the way
	query-insert option is dealt with.

Wed Dec 24 04:46:46 EST 1997  Jason Daniel Rennie

	* database.c, ifile.c: modified aging calling so that it is called
	from ifile.c and only called if there is insertion without deletion.

Wed Dec 24 03:49:28 EST 1997  Jason Daniel Rennie

	* ifilter.mh.pl, irefile.mh.pl: added usage information
	* irefile.mh.pl: added code to find out current folder if no
	source folder is given.  Also, if irefile.mh is given absolute
	folder names, it will attempt to extract the folder names by
	searching for and removing the mail path ($mail_path).

Tue Dec 23 20:10:51 EST 1997  Jason Daniel Rennie

	* irefile.mh.pl: modified building of ifile command line to check
	for .skip_me files in source and destination folders
	* opts.c, ifile.c: added "--query-insert" option

Tue Dec 23 16:56:48 EST 1997  Jason Daniel Rennie

	* ifile.c: any newly created .idata file will now have 0600
	permissions

Tue Dec 23 16:36:56 EST 1997  Jason Daniel Rennie

	* lex-email.c: ifile_lexer_email_prelex_header(): modified code
	so that it would not seg fault if a give e-mail message does not
	contain a body.

Tue Dec 23 15:57:22 EST 1997  Jason Daniel Rennie

	* Makefile.in: Minor modifications to file names
	* news2mail.pl: Minor modifications
	* extendable_array.h: EXT_ARRAY_SET() now sets all new values of
	array to 0.

Mon Dec 22 20:29:41 EST 1997  Jason Daniel Rennie

	* database.c: ifile_write_db(): fixed process by which infrequent
	words are tossed.  Folder frequencies are now properly updated.

Mon Dec 22 17:23:19 EST 1997  Jason Daniel Rennie

	* extendable_array.h: EXT_ARRAY_GET() now returns 0 when asked for
	a value which is out of the range of the currently allocated array.

Mon Dec 22 14:36:21 EST 1997  Jason Daniel Rennie

	* database.c: ifile_del_db() was broken.  Now it's fixed.

	Need to create a function for removing infrequent words.  Currently,
	the folder frequencies are not being updated (not a good thing).
	
Mon Dec 22 14:15:06 EST 1997  Jason Daniel Rennie

	* ifile.c, util.c: fixed message reading timing output.

Mon Dec 22 05:54:34 EST 1997  Jason Daniel Rennie

	* util.c: added an fclose() call to ifile_read_message()
	* knowledge_base.pl: completely rewritten in order to make use of ifile
	* opts.c, ifile.h, ifile.c: added a new command line option, one to
	reset the database (currently implemented by removing .idata)
	* opts.c, ifile.h, ifile.c: added state variables to indicate whether
	messages should be read, database should be read/written

Mon Dec 22 04:49:06 EST 1997  Jason Daniel Rennie

	* util.c: modified ifile_read_message to check the return value
	of the opening of the message.  Opening an empty message results
	in a (ifile_lex *) NULL return value.

Mon Dec 22 02:55:17 EST 1997  Jason Daniel Rennie

	* lex-email.c: apparently works, does a nice job of dicing up
	the headers when requested to do so.

Sun Dec 21 17:26:19 EST 1997  Jason Daniel Rennie

	* lex-define.c, ifile.h: integrated the gram lexer into the email
	lexer so that ifile_email_lexer is the only non-simple lexer.
	* lex-email.c: rewritten using lex-gram.c as a base.
	* ifile.h, lex-simple.c, lex-email.c: to this point,
	ifile_lexer.sizeof_lex has been used as though it should be the size of
	the lexer.  After some inspection, it appears that it should be the
	size of the lex.  Changes have been made accordingly.
	* lex-gram.c: removed from the distribution.
	
Thu Dec 18 19:44:56 EST 1997  Jason Daniel Rennie

	* lex-define.c, ifile.h: added a layer between the e-mail lexer
	and an indirect lexer.  Also created a specialized LEX for email.
	* lex-email.c: very broken at this point.  Needs to be fixed.

Thu Dec 18 16:53:20 EST 1997  Jason Daniel Rennie

	* lex-define.c: fixed lexer initialization code.
	* lex-email.c: fixed header checking code so that it mostly works.
	It still needs fixing, though.  Currently, it dumps core on an
	empty input file.
	
Tue Dec  9 08:03:35 EST 1997  Jason Daniel Rennie

	* ifile crashes on ifile_read_message.  My guess is that the
	lexer code is broken.

Mon Dec  8 23:40:16 EST 1997  Jason Daniel Rennie

	* Added hack to irefile.mh.pl to allow refiles of the form
	"irefile # +src +dest" (sometimes used by xmh)
	* Finished writing irefile.mh.pl

Sat Nov  1 02:24:16 EST 1997  Jason Daniel Rennie

	* Began writing irefile.mh

Sat Oct 18 01:54:39 EDT 1997  Jason Daniel Rennie

	* Makefile: modified snapshot, diff to use "cp" instead of "ln".
	Consumes more diskspace, but is more likely to work on AFS.

Sat Oct 18 01:43:47 EDT 1997  Jason Daniel Rennie

	* opts.c: fixed argument parsing so that it properly parses
	file names
	* database.c: fixed writing so that it would only write folder-word
	frequency entries which are non-zero

Tue Oct 14 16:50:20 EDT 1997  Jason Daniel Rennie

	* ifilter.mh: changed to use a temp file so that it doesn't have
	to load libraries to do 2-way piping.  Also, changed to print
	folder to which message is filtered (this should NOT be printed
	to STDERR)

Sun Oct 12 09:22:13 EDT 1997  Jason Daniel Rennie

	* temporary happiness achieved :)  it looks like the C code for
	the 72nd <g> "complete & total rewrite of ifile" is complete.

Sun Oct 12 09:19:27 EDT 1997  Jason Daniel Rennie

	* database.c: changed "args.folder_calcs" to "folder", fixing
	a segmentation violation bug

Sun Oct 12 04:52:25 EDT 1997  Jason Daniel Rennie

	* database.c: fixed some technical proclems with the ifile_add_db
	function.  Made minor revisions to reading/writing functions

Fri Oct 10 22:25:48 EDT 1997  Jason Daniel Rennie

	* opts.c: added all sorts of neat command line options.
	* lex-default.c: set up lexing options so that effects take place
	in the correct order
	* ifile.c: added capabilities for updating DB, writing it to disk.
	* database.c: wrote functions for updating DB, writing it to disk.

Fri Oct 10 05:44:47 EDT 1997  Jason Daniel Rennie

	* ifile.c: converted querying, verbosity to work with new style
	of command line parsing

Fri Oct 10 04:47:10 EDT 1997  Jason Daniel Rennie

	* Makefile.in: configured to work with ifile
	* ifile.c: now the main exectuable file
	* util.c: new file - some utility functions from ifile.c
	* database.c: new file - database opteration functions

Fri Oct 10 02:37:02 EDT 1997  Jason Daniel Rennie

	* ifile_query.c: fixed minor bugs, added GNU command line argument
	system
	* argp/*: GNU command-line argument handling system - added to
	main executable(s)
	* hash_table.c: fixed final bugs (hopefully :)
	* ifile.c: fixed final bugs in db reading functions, rating functions.
	* Makefile.in: new file
	* configure.in: new file
	* configure: new file
	* Version: new file
	* opts.c: new file - configuration of argp

Thu Oct  9 02:06:49 EDT 1997  Jason Daniel Rennie

	* ifile_query.c: complete rewrite.  Stripped out all unnecessary
	functions - make code totally reliant on new data structures.
	* hash_table.c: eliminted syntax errors, minor bugs.  Improved
	prime-finding algorithm
	* ifile.c: eliminated syntax errors, minor bugs

Wed Oct  8 10:17:54 EDT 1997  Jason Daniel Rennie

	* ifile.c: ripped out any functions which were MH-specific.
	Modified remaining functions to use new ifile_db and hash_table
	types.  Still have to fix write_db functions.
	* ifile.h: added ifile_db, db_word_entry, removed anything
	MH-specific.
	* ifile_db.c: began to remove MH-specific functions

Wed Oct  8 07:16:01 EDT 1997  Jason Daniel Rennie

	* hash_table.c: new file - implements general array-based (no linked
	lists) autoextendable hash table
	* hash_table.h: new file

Wed Oct  8 04:05:44 EDT 1997  Jason Daniel Rennie

	* ifile.c: fixed minor bug in idata writing code.  Previously,
	blank lines would be added to .idata file.

Sat Oct  4 02:48:43 EDT 1997  Carl Staelin
	
	* ifile.c: rewrote ifile_write_word_frequencies() in order
	to speed things up a bit.
	* assoc_array_int: rewrote some of the structures, wrote a slicker
	hash() function, changed hash table sizes

Sat Sep 13 03:35:17 EDT 1997  Jason Daniel Rennie

	* ifilter.c: renamed to ifile_query.c
	* irefile.c: renamed to ifile_db.c
	* ifilter.c: made code MH-independant.  No longer filters mail
	to a folder, but rather prints out folder names and cooresponding
	metric values.
	* ifile.c: added ifile_print_ratings, modified ifile_rate_categories
	so that it would return an array of category names and ratings

Sat Sep 13 02:27:54 EDT 1997  Jason Daniel Rennie

	* Makefile: rewritten to allow more compact representation
	* lex-define.c: new file - defines and initializes default lexers
	* deflexer.c: removed (replaced with lex-define.c)
	* ifilter.c: added lexer initialization call
	* irefile.c: added lexer initialization call

Sat Sep 13 00:32:35 EDT 1997  Jason Daniel Rennie

	ifile 0.4.5 released

Mon Sep  8 00:46:40 EDT 1997  Jason Daniel Rennie

	* ifile_read_profile: fixed possibility of blank line in
	.mh_profile causing executables to dump core.  Changed tokenizing
	to allow for ':' as a token separator.

Sun Aug 31 22:50:51 EDT 1997  Jason Daniel Rennie

	ifile v0.4.4 released	

Tue Aug 26 00:02:25 EDT 1997  Ben Byer

	* irefile.c/main: fixed the location to check for .skip_me file.
	irefile previously checked in improper location.

Wed Aug 13 01:15:35 EDT 1997  Jason Daniel Rennie

	* ifile_verbosify: removed commands which allowed indenting of
	  messages according to priority level.  ifile_free() call was
	  somehow being called ad infinitum and causing a seg fault.
	* ifile.h: "#define ifile_free(x) free(x)" statement was causing
	  neverending recursion of free() calls. #define removed.
	*** these changes not included in 0.4.x releases

Wed Aug 13 00:44:44 EDT 1997  Jason Daniel Rennie

	* ifile_rate_categories: no longer use document frequencies in
	  best category calculations
	* deflexer.c: new file - defines and sets the default lexer
	* ifile.h: now contains all header file information for all
	  ifile C files (except for assoc_array_int.c and extendable_array.c)
	* int4str.c: implementation of 1-1 string->int and int->string
	  mapping
	* istext.c: new file - determines whether a file is text or binary
	* lex-email.c: new file - lexes e-mail, removing certain headers
	* lex-gram.c: new file - lexes words into groups (multi-word tokens)
	* lex-html.c: new file - html lexer
	* lex-indirect.c: new file - lexer stuff
	* lex-simple.c: new file - simple lexers
	* primes.c: new file - prime number generation functions
	* scan.c: new file - file scanning functions
	* stem.c: new file - implementation of Porter stemming algorithm
	* stoplist.c: new file - implementation of stoplist function
	* stopwords.c: new file - default stoplist
	* stuff.c: new file - file for testing new lexing code
	*** these changes not included in 0.4.x releases

	NOTE: deflexer.c, int4str.c, istext.c, lex-*.c, scan.c, stoplist.c
	      and stopwords.c were originally part of the libbow package
	      and were originally written by Andrew McCallum.
	      stem.c was originally part of the libbow package and was
	      written by various authors (see code for credits).

Fri Aug  8 22:30:18 EDT 1997  Jason Daniel Rennie

	ifile v0.4.3 released

Tue Jul 22 00:28:13 EDT 1997  Jason Daniel Rennie

	* ifile_rate_categories: if list of categories is empty, sets first
	  category as "inbox" and selects inbox (1) as best category.
	  Eliminates seg faults in ifile_verbosify() call.

v0.4.3

- knowledge_base.perl: keep separate nuking counts for entire run and
  each aging call
- .idata file is now explicitly closed - fclose() call did not exist
  in earlier versions
- minor changes to extendable array code
- ifile_rate_categories now adds "inbox" to the mailbox listing of the
  mailbox listing is empty (leaving it empty would cause a seg fault in
  some cases)
- Makefile now contains explicit linking commands (some 'make' programs
  will not link executables without explicit commands)
- added to distribution descriptions of how to better integrate ifile into
  EXMH (see exmh_integration, exmh_integration2 and filter_button)

v0.4.2

- minor changes to install.perl script
- news2mail.perl added to distribution (search for 'news2mail' in README file
  for some explaination)
- .idata file locking introduced into system.  ifile programs are synched
  via lock files so that none will ever read or write a corrupted .idata file
  (not implemented in all executables yet)
- new version of "knowledge_base.perl".  Does age updates periodically
  to lessen processor overhead.  Includes commented out lines for attaching
  associative arrays to disk (primarily useful if you have a very large
  corpus of e-mail and a large number of mailbox folders).
- irefile no longer learns on messages which are refiled to folders which
  contain a .skip_me file (synchronizes behavior with knowledge_base.perl)
- primitive code aiming toward alternate style refile included in
  distribution.  Search for 'irefile queue' in README file for more info.
- cutoff frequency for eliminating words from .idata now done using a log
  scale (previously used a constant).
[- modularized idata writing]

v0.4.1

- moved opening of log file to top of ifilter.c to prevent seg fault when
  argc > 1
- previouslly while reading a message, ifile would reset as_nk value of
  any word/category it came across (essentially drilling holes in the
  .idata file).  This has been fixed.
- to allow a smoother transition between lexing styles, each Subject:, From:
  word is now lexed into two words, one with the prefix and one without.
  (the duplication will be eliminated in the near future)

v0.4.0

- removed 'make clean' command from install.perl so that the user can make
  his/her own executables and then use install.perl to install them
- fixed problem with opening of log file.  Program previously tried to use
  entire argv[0] as part of the log file path.  Now uses only executable
  name.
- because a portion of argv[0] is used to name the .info files, the irefile
  .info file will most likely appear as "/tmp/refile.info"
- renaming of some variables
- main ifilter program modularized. <cbbrowne>
- corresponding parts of irefile modularized.
- ifilter now only reads sections of .idata which it needs to classify the
  message it is given (greatly increases efficiency) <cbbrowne>
  ^^^ Good stuff - ifilter is quite a bit faster and less of a memory hog :)
- invariants removed from "category rating" loop to promote efficiency
  <cbbrowne>
- the UPGRADE file has been removed from distribution (due to lack of utility)
- the convert.perl file has been removed from the distribution (you should
  instead use knowledge_base.perl to recreate your .idata file)
- message headers, "From:" and "Subject:", are now treated specially during
  lexing.
[- machine names and e-mail addresses are now lexed as one word and are no
   longer broken to pieces.]

v0.3.3

- loop variable initialization bugfixes
- rewrite of mh_refile function (hopefully eliminating strange string
  bugs/random seg faults) --> thanks to Colin McCormack for the suggestion!
- fixed logical AND (&&) to bitwise AND (&) in refile_exe function (doh!)
- some clean-up of code - code is more modular
- added ifile_sprintf() and ifile_cats() to aid in string handling
  Any programmers who have deal with strings in C should love these :)
- added error.c for message printing and error handling
- modularized printing of progress and error messages
- added ifile.c to hold library of ifile functions
- converted readline() to a function (from a #define) and in doing so
  introduced (but shortly thereafter fixed) a bug
- ifile now adds a header to filtered messages "X-filter: ifile v0.3.3"

v0.3.2

- included errno.h in irefile.c (required by SunOS v5.5.1/gcc-2.7.2)
- eliminated strerror() function from code.  Function is unnecessary
  and SunOS 4.1.3/gcc-2.7.2 produces undefined references to 'strerror'
  during compilation.  This seemed to be the only easy fix.
- eliminated problem with 'make' putting -lm (math library) option at the
  beginning of the line

v0.3.1

- install.perl links to 'irefile' instead of 'refile', like it should

v0.3.0

- C implementation of ifilter.  Incredible speed improvements (see chart below)
- C implementation of irefile.  Significant increase in speed (see chart
  below).  Not quite as extreme as ifilter.  irefile heavily depends on (slow)
  associative arrays for writing the .idata file
- Both programs are much more memory conscious (see chart below).
- Full support for all MH refile options.  I think I finally have full
  support for all the options.  Please tell me if I don't!
- irefile will use 'cur' message and current folder if no message/source
  folder is given
- message headers (subject, from) NOT given extra weight (this will probably be
  reversed in the future)
- install program does not affect location of ifilter entry in .maildelivery
  filter, simply changes ifilter path

My own experiences on my i586 100Mhz Linux box (48 megs ram)
202k .idata file, 39 folders, 5061 words

time/memory comsumption to filter/refile a single 2k message

                processor time   memory usage
perl irefile        20 sec         5.1 Meg
C    irefile       7.5 sec         2.2 Meg
perl ifilter        10 sec         4.7 Meg
C    ifilter       1.5 sec         2.0 Meg

v0.2.5

- ifile now properly addresses the '-file' option [mostly]
- knowledge_base.perl is more memory conscious
- resets .idata_accuracy file if accuracy goes negative
- irefile would previously refile all messages after it read in the first of
  any batch.  It now waits to refile after all messages are read in.
- uses context file to get the current-folder when no source file
  is indicated in the calling of irefile [this is actually incorrect]
- ifilter will not filter messages into a folder with a .skip_me file
- finding PWD was made slightly more robust

v0.2.4

- irefile no longer mistakes MH refile options for file names
- allows for more flexibility in reading of .mh_profile
- passing '-help' to ifilter or irefile will print usage

v0.2.3

- script included to create knowledge database according to where mail is
  currently located (knowledge_base.perl).
- message headers (subject, from) given extra weight

v0.2.2

- if original MH refile program is available as refile.bak, ifile will use MH
  refile program to move the message (increases compatibility)
- keeps track of number of filters and number of refilings for approximate
- /tmp/ifilter.info now contains lots of info about ifile's filtering decisions
  
v0.2.1

- handling of multi-level folders (sub-folders)
- refiled messages no longer appear as new messages
- refiling to folder which message comes from does not destroy message
- protections set up to restore original message if refile is not performed
  correctly

v0.2.0

- fixes problems concerning strange folder names
- more concise data file - provides quicker filtering and refiling
- keeps track of number of messages filtered and number of messages refiled
- looks at .folders to determine folder names, rather than directory structure
- keeps data file streamlined by eliminating infrequent words
- records 'words' of length 3 (previously required length of 4 or greater)

v0.1.2

- Fixed problem of not allowing user to indicate directory of the rmm binary
- Installation program changed to search for binaries in common directories
  before asking user (provides easier installation)

v0.1.1

- Coordinated naming of main data file - '.idata'
- Installation program allows customization of binary directories (previously,
  program made assumptions as to locations of mh binaries)

$Id: ChangeLog,v 1.24 2004/12/12 19:10:46 jrennie Exp $