File: ChangeLog

package info (click to toggle)
lua-gtk 0.9%2B20100528-2
  • links: PTS, VCS
  • area: main
  • in suites: squeeze
  • size: 2,176 kB
  • ctags: 1,934
  • sloc: ansic: 9,571; sh: 373; makefile: 241
file content (961 lines) | stat: -rwxr-xr-x 35,424 bytes parent folder | download
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

Tue Jul 12
* first version
* simple calls to a few functions through a static function table

Thu Jul 14
* Perl script to get a list of functions and their parameter types
* this list is read at startup, practically all functions are callable now

Fri Jul 15
* widgets as userdata with metatable
* automatically determine class hierarchy
* methods of widgets are now callable

Sat Jul 16 08:57:00 CEST 2005
* get rid of global variables for the call function (use cclosure)
* callbacks called directly; gtk_main_loop used instead of gtk_main_iteration
* callback parameters have the correct type now
* callbacks can return values
* complete parsing of structure definitions by perl file + dump in funclist


Sun Jul 17 11:54:58 CEST 2005
* parse & dump enum
* complete parsing of structures
* read structure info and enum info into memory
* make enums available
* access to structures!


Fri Jul 22 01:25:54 CEST 2005
* integrate new hashing methods into libluagtk, debug
* generate compileable output for structure information


Sat Jul 23 11:50:45 CEST 2005
* structure information compiled in, works again
* enum information compiled in
* got rid of "funclist", all data now is compiled in.


Sun Jul 24 16:11:12 CEST 2005
* re-read of all the code, cleanup
* LONGPTR parameters can be used as input, too
* allow widget:connect() syntax
* properly works with a minimal function hash table
* G_TYPE_xxx constants in src/extra_enum
* VARARG parameters now work (only a few data types yet)
* gdk.new to create any type of structure



Thu Jul 28 05:59:52 CEST 2005
* handle some GValue conversions (boolean, integer, string)
* first attempts at including a Lua library to simplify some
  calls.


Sun Jul 31 21:40:51 CEST 2005
* override.lua functions used automatically
* use interfaces when searching for a method


Thu Aug  4 00:20:41 CEST 2005
* compile override.lua into the library to avoid a file dependency

Thu Aug  4 18:40:12 CEST 2005
* use gcc-4.0
* fix all new warnings of gcc-4 (almost all related to signedness)


Fri Aug  5 19:52:20 CEST 2005
* _structlist.c: minimize use of dynamic relocation with struct_strings,
  reduces .so size considerably (about 15 kB I guess).

Sun Aug  7 21:28:23 CEST 2005
* _structlist.c: store the size of the structures for easy allocation
* support double parameters to functions

Wed Aug 10 01:29:05 CEST 2005
* leak fixed for find_func - no strdup anymore

Wed Aug 10 23:57:57 CEST 2005
* __gc method in metatable for widgets; call g_object_unref
* g_object_ref/gtk_object_sink in make_widget


Sun Aug 14 11:50:30 CEST 2005
* improved reference counting


Tue Aug 16 18:43:10 CEST 2005
* more examples: toolbar and scrolled text view, notebook
* main.c -- a minimal wrapper to run lua files without the interactive
  cmd interpreter (therefore, without readline or ncurses).  This saves
  about 350 kB of virtual memory and 160 kB of RSS.  Probably not worth
  the effort.
* released version 0.3 to luaforge.net


Thu Aug 18 15:35:52 CEST 2005
* port to Lua 5.1


; -------------- 2006 ----------------

Fre Jun  2 18:58:29 CEST 2006
* License changed from GPL to LGPL


; -------------- 2007 ----------------


Fre Feb  2 12:17:32 CET 2007
* use Lua references to store callback info, as suggested by Thomas Harning
  Jr.  <harningt@gmail.com>
* new function to disconnect signal handlers
* removed the close() call which led to SEGV at the program end.
* free the struct callback_info on signal disconnect


Mon Feb  5 15:08:04 CET 2007
* Glade XML library added over the weekend
* split source into multiple files (over 3500 lines now)
* luaglade-0.5 inspected, used some ideas from it
* argument order for callbacks changed
* tested on win32, some bugs fixed
* script/gen-list.pl now runs separately for linux and win32 (struct padding!)


Mit Feb  7 02:18:50 CET 2007
* FTP upload in the background
* Image upload application now allows selection of file, preview, scaling and
  upload, and entry of titles and descriptions.  Saving of this is missing.


Mit Feb  7 15:55:48 CET 2007
* FTP Upload now properly works with win32, too.
* refcounting fixed; these caused random SEGV in combination with garbage
  collection.


Son Jun 17 13:45:12 CEST 2007
* Glade module update to handle Menus
* Glade example


Sam Jun 23 19:02:25 CEST 2007
* Can now write to Gtk structures (assignment)
* Calculator Demo enhanced a lot


Don Jun 28 20:00:15 CEST 2007
* overrides for callback parameters of type G_TYPE_POINTER studied;
  overriding is not useful.  Code deactivated, but left for possible
  later use.
* notebook example now runs without runtime errors (again).


Son Jul  1 01:38:29 CEST 2007
* Bugfixes
* gen-list.pl: detect typedefs that are effectively declaring a child class
  with unchanged attributes (but possibly other methods, example GdkWindow).
* examples/pixmap.lua mostly working; segfaults after resizing the window
  for a while.


Mon Jul  2 22:21:56 CEST 2007
* use full hash for function hash.  This avoids the problem of finding
  parameters for the wrong function.  Can happen when trying to call a
  deprecated function which exists, but is not in the function hash.
  Example: gtk_entry_set_position vs. gtk_editable_set_position.


Sam Jul 14 14:06:30 CEST 2007
* Updated doc/README.hash
* implement the usage of a minimal perfect hash function (from cmph).
  This makes the library about 3 KiB smaller; older hash is still available.


Son Jul 15 21:48:12 CEST 2007
* debugging, bugfixes, some refactoring
* require "gtk" instead of require "gtk2"
* demo for http_co download (examples/request.lua)
* release 0.5


Son Jul 29 12:53:27 CEST 2007
* simple testing framework in tests/run-test.sh


Mon Jul 30 20:27:47 CEST 2007
* better garbage collection of objects; call g_free() or an appropriate
  free function.


Son Aug 19 20:12:27 CEST 2007
* for latest changes, see the CVS history.  This file will probably not be
  updated anymore.


Fre Okt  5 17:46:13 CEST 2007
* gen-list.pl rewritten in Lua.  Compiles again, but enum/flags handling
  is not yet working.


Mit Okt 10 18:42:34 CEST 2007
* enum/flags handling now working somehow
* most examples working again


Fre Okt 12 00:27:04 CEST 2007
* all examples working again, including pixmap, weather forecast and cms-admin.
* force GtkFileChooserWidget to be available.
* improvement to lib/glade.lua - correct handling of can_default/has_default
* extensive refactoring and code cleanup
* complete CVS commit


Mit Okt 17 10:15:17 CEST 2007
* Added proper attribution and license information for cmph
* some minor improvements of the fch code


Sam Okt 20 23:42:40 CEST 2007
* Aliases for widgets, i.e. can have multiple structures at the same memory
  location.


Die Okt 23 16:20:39 CEST 2007
* various code cleanup and improvements; unchanged features.


Mit Okt 24 20:33:37 CEST 2007
* Bugfix for channels/watches
* widgets, aliases, emptyattr now stored in the environment of gtk
* reuse metatable of widgets and metatables


Don Nov  8 23:27:31 CET 2007
* memory leak fixed - refcounting improved


Sam Nov 10 22:15:36 CET 2007
* documentation of the library using luadoc is progressing.  It required a
  major update to luadoc.
* start of a website to use for lua-gtk.luaforge.net.  Generate using the
  HTML template mechanism of luadoc and the new script/generate.lua.

Son Nov 11 20:55:59 CET 2007
* fiddling with the mingw build - doesn't quite work, some linker problem.
* upload of a minimalist homepage to lua-gtk.luaforge.net, including the
  reference generated by luadoc (at least the part that already exists).


Mit Nov 14 18:23:32 CET 2007
* ENUM values can be negative
* automatically extract #defines from gtkstock.h
* include GtkFileChooserDialog widget


Fre Nov 16 17:01:20 CET 2007
* refactoring in data.c, widget.c
* widget_type for dynamic registration of handlers (now just for refcounting)
* keep a reference to the widget in struct callback_info
* types.c:ffi2lua_struct_ptr - no special case handling
* all channel specific code now in channel.c
* overrides for g_idle_add and g_timeout_add


Son Nov 18 10:43:02 CET 2007
* keep track of Gtk/Gdk objects on the stack, free at return from _callback
* bugfix of luagtk_dump_struct; now recurses.
* bugfix: missing inc_ref_count for new aliases.
* watches: allow coroutines to sleep for a specified time (in ms)
* bugfix: in override.c:l_g_object_set_property


Mon Nov 19 18:00:01 CET 2007
* Support for struct** parameters (as output only)
* ffi2lua_struct_ptr: when derived from GObject (not GtkObject), autodetect
  type
* gtk_tree_view_get_selection: correctly handle refcounting (via override)


Mit Nov 21 16:21:46 CET 2007
* GtkBuilder now finds object types properly.


Son Nov 25 00:37:25 CET 2007
* don't create entries in gtk.widgets or gtk.widget_aliases for stack objects;
  remove struct stack_obj_list and related code.
* fix segfault in _callback on amd64
* fix segfault in weather demo (gtk_text_view_get_buffer refcounting fix)
* automatically generate list of G_TYPE_XXX constants, remove extra_enums.txt
* support string and integer entries in the enum table
* call gtk_init in library init code, so gtk.init() is not required anymore


Son Nov 25 23:36:34 CET 2007
* support signal connection on all GObject derived objects, not just GtkObject
  derived ones
* callbacks from Gtk to Lua now accept almost any parameter type
* fixed a bug that happens when a Lua proxy object is automatically removed,
  but the GC function not called before the Gtk object is accessed again.


Fri Nov 30 12:27:37 CET 2007
* widget.c:_is_on_stack: use volatile
* widget.c:_is_on_stack: works for AMD64 too, now.
* use lua_pushliteral where possible instead of lua_pushstring
* Bugfix in _callback: use G_VALUE_NOCOPY_CONTENTS flag to G_VALUE_COLLECT;
  else the object parameters would have to be freed again.
* channel.c: access GIOChannel.ref_count properly
* lib/strict.lua: nil assignments handled
* widget.c: bugfix for objects on the stack: increase refcount
* widget.c: bugfix - always use g_object_ref_sink, ignore is_new
* lib/watches.lua: fix mixed sleeping and waiting on channels


Sam Dez  1 23:55:41 CET 2007
* Bugfix: entry in widget_aliases automatically removed, but GC function not
  called yet - this case is now handled correctly.
* Bugfix: widget.c: malloc_handler now actually used where appropriate.


Son Dez  2 22:29:02 CET 2007
* luagtk_get_widget: the confusing manage_mem arg replaced by flags.

Mon Dez  3 21:18:55 CET 2007
* bugfix in luagtk_newindex: failed (e.g. via segfault) when trying to write
  to a previously unknown structure element, and maybe in other cases, too.
* new function g_object_get_class_name() to access w->class_name


Son Dez  9 21:28:29 CET 2007
* support char** arguments, which return newly allocated strings.
* support PangoAttrList refcounting.
* Makefile: use $H instead of @ as suggested by Enrico Tassi


Die Dez 11 12:22:08 CET 2007
* gtk.done(): now prevents unloading of dynamically loaded libraries, thereby
  improving valgrind stack traces.
* calculator demo: show error messages in a separate text field
* allocate struct call_info with g_slice_alloc instead of g_malloc
* struct widget now has struct_nr instead of class_name; this is smaller on
  64 bit architectures, and provides additional information, esp. the
  structure size, required for g_slice_free.
* gtk.get_refcount returns the refcounting method (wiget type) as string
* gtk.done removed, its functionality now happens automatically using atexit
* use g_slice_alloc0 (not g_malloc) for manually allocated objects in gtk.new
* automatically call gtk_init
* automatically call g_mem_profile using atexit
* better stack traces with valgrind (no unloading of the dynamic library)
* refcounting fix
* make gtk.init idempotent
* scripts for running valgrind


Mon Dez 17 00:54:03 CET 2007
* gtk_*_get_* functions are assumed not to increase the refcount of the
  existing object they return.  Compensate by increasing the refcount.
* debug function registering and some debug functions moved to debug.c


Don Dez 20 01:02:11 CET 2007
* virtual functions in interfaces can now be assigned to, and thus overridden.


2007-12-20
* some refactoring
* more function comments


; -------------- 2008 ----------------


2008-01-09
* mingw build works again

2008-01-16
* GtkTreeIter free works for Gtk version < 2.10.12
* memory management fixes
* gtk.init renamed to gtk.set_debug_flags and improved
* support void* return type from Gtk functions, treat as widget
* support union* type (same as struct*)

2008-02-10
* keysyms from gtk/gdk/gdkkeysyms.h added

2008-02-13
* Build system improved with configure script (not autoconf)
* Gtk < 2.12 supported without build time changes

# v0.8 released

2008-02-20
* test program to verify ffi function in addition to the vararg test
* support "unsigned char" data type
* 64bit fix for int*, unsigned int*, long unsigned int*

2008-02-22
* support for libgtkhtml
* new example for GtkFileChooserDialog, another for HtmlView
* Example with toggle buttons in tree; pixbuf column for the prev. tree ex.

2008-02-23
* new example for GtkRadioButtons

2008-02-28
* sorted list of type names: consider number of indirections.
* sorted type list only contains type_idx, i.e. 2 bytes per entry; previously
  contained the name offset, too, but this is stored in the type entry anyway.
* find_struct now needs the number of indirections, and returns the correct
  type.
* call return values now finds the correct type (with one level of indirections
  less)

2008-02-29
* cross compilation for various architectures.  described in doc/INSTALL
* fix missing types e.g. GdkVisualType*
* include atk-enum-types.h
* fixed regressions except tests/023-cairo.lua
* fixed dump_struct to recurse properly

2008-03-03
* fixed regressions except tests/023-cairo.lua
* flag to disable runtime linking, to disable cmph; configure improvements
* improvement for cross compiling and general build improvements
* update to win32 build instructions, other doc updates
* improved encoding of enum values - simpler, more space efficient
* funclist.lua: sort output and pad return type
* get-defines.lua merged into parse-xml.lua
* ATK enums available
* parse-xml.lua split into various parts.  encoding for structures and
functions changed.  statistics displayed after generation of data.
* stricter type checking for output parameters
* dynamic (runtime) linking improved
* GdkColor for Gtk <= 2.8.8 fixed
* hash values can be stored with less bytes - space savings
* hash-fch.c: hash_search improved
* GSList automatic free
* ffi2lua fix for enum**, lua2ffi fix for enum
* update INSTALL documentation, and label this package as BETA now.
* src/include_types.txt: to force inclusion of certain types (structures)


2008-03-14
* support the bdz algorithm of cmph version wads07, which is still unreleased.
Library sizes: simple hash: 275 kB, fch: 268 kB, bdz: 268 kB.  bdz builds
faster, needs a little bit less data but a bit more core.

2008-03-26
* make-link.lua: evaluate optional conditions in the function list (to support
more Gtk versions)

2008-04-03
* tables can be a vararg argument; currently they can only contain strings.
* new gtk.NIL which can be used instead of nil to pass NULL to a C function;
useful in tables that are used as vararg argument.
* reduced code size by replacement of bdz_lookup_table by some code.
* hash-cmph.c: should now be endian neutral

2008-04-14
* try how to use ffi callbacks and use the method that works
* better error message on failure to convert a closure's return value

2008-04-23
* call.c: don't try to tread "void*" as an output parameter
* callback.c: more efficient error handling in conversion of a callback's
return values
* new function gtk.void_ptr to wrap a Lua value as a void*, which can be
passed to callback etc.  The wrappers can be freed explicitely.
* override for g_tree_destroy to avoid calling g_Free on the tree twice

2008-05-01
* split types.c into mulitple files (enum.c, voidptr.c)
* API change for void* wrappers

2008-05-08
* discontinue the use of the global environment; store data only in the global
table "gtk".  This change makes lua-gtk work properly within SciTE, and
probably other embedded situations.

2008-05-16
* include X specific functions - #include <gdk/gdkx.h>
* select functions by pathname components instead of function names
* include all libxml2 functions
* update to support cmph 0.8
* new examples/xid.lua to demonstrate how to get the XID of a window

2008-05-20
* examples/xid.lua enhanced
* bugfix when a non-function is stored in a widget's metatable.

2008-06-18
* new examples/raedic.lua which is modeled after grae, to fetch definitions of
spanish words from the Real Academia EspaƱola.

2008-06-19
* don't automatically call gtk_init when the user does it himself
* override for gtk_icon_theme_get_search_path
* fix for a SEGV due to an uninitialized variable in lua2ffi_ptr
* warn if glade.lua is used with Gtk runtime version >= 2.12
* provide read-only access to all global Gtk variables

2008-06-21
* allow NIL to be passed instead of a function pointer to Gtk functions
* handle multiple return values from Lua callbacks for output arguments
* new examples/menu.lua to show how to use a popup menu, and callbacks with
output parameters.
* enum.c: make sure gtk.init has been called before looking up an enum type
* handle the type boolean*
* support for callback output arguments of type int*

2008-06-22
* removal of the automatic type conversion string to long for GValue setting
* glade: convert value for set_property to integer if required
* gtk2: try the _utf8 suffix for Windows platforms when looking for functions

2008-06-23
* examples/tree.lua: demonstrate how to fetch the selection
* gvalue.c: don't automatically convert a string to a number
* glade.lua: convert value for set_property to number if required, no
automatic conversion (removed)
* hash-cmph.c: bugfix for Win32

2008-06-24
* include glib/gstdio.h and force all functions to be defined (g_stat etc.)
* g_dir_close override added (it frees the structure)
* luagtk_invalidate_widget added - to avoid reusing freed widgets

2008-06-25
* try _utf8 suffix when looking for class methods on Win32

2008-06-30
* support everything in the gio library
* override for g_list_free to avoid hard-to-debug double-free errors
* update of ChangeLog

2008-07-09
* support for boxed Lua values, e.g. for ListStore.

2008-07-13
* support long long int, signed long long int.

2008-07-16
* support added for GtkSourceView, including an example

2008-07-18
* new configuration scheme with one file per library in libs/
* configure script modified to use library config files
* make-xml.lua script modified for new config files
* Makefile.common modified for new config files
* Makefile.common modified for new config files
* parse-xml.lua modified for new config files
* configure script rewritten in Lua

2008-07-21
* src/data.c gets the list of libraries to open from configure.lua
* fix build process for Win32
* boxed values with explicit type can be created with gtk.cast
* first coverage analysis with gcov
* removed the arbitrary limit on number of arguments to a library function.
This limit could be exceeded with vararg functions.
* removal of the g_object_%s lookup for methods of objects in widget_meta.c
* fixed a refcount problem in gvalue.c
* inclusion of following types (see src/include_types.txt): GtkHPaned,
GtkVPaned, GtkVSeparator, GtkHSeparator, GtkCellRendererPixbuf, AtkNoOpObject,
AtkNoOpObjectFactory
* parse-xml: add some GdkAtom #defines


2008-07-22
* fix for tests/018-enumptr.lua
* dump_struct: follow pointers to other structures
* boxedvalue: metatable with __tostring and __index, via that "value" to
access the value; do a typecast if so requested
* closures: code moved to own file (closure.c)
* closures: new Lua value for closures.  The user has to create closures
explicitely now via gtk.closure(func), which allows for correct memory
management
* new debug flag "closure" to debug closure allocation and freeing.

2008-07-23
* automatically create closures (again)
* prevent automatic closures where they can't be used
* documentation of closures
* GtkBuilder: connect_objects are now supported
* removal of the arbitrary limit of number of dynamic libraries
* new function new_array to allocate an array of items
* access array elements with object[i]
* read/write fields of a boxed value directly.

2008-07-25
* refactoring to allow for multiple modules (WIP)

2008-07-26
* core library stripped from module specific data and code.  With
optimizations, size is about 71 kB, and without around 95 kB.

2008-08-01
* core library (now "gnome") works, separately so far is glib (with gobject),
gtk (with gdk).  WIP

2008-08-12
* ongoing remodeling of the library for better modularity, including the
build system.  All tests now work again, all libraries are supported again.
Changes up to now (undated):

* channel.c belongs to a module for glib
* gdk_color_copy (gtk.new for GdkColor) should be in a module
* configure.lua split to allow usage for modules
* link core lib only to required libraries (gobject, glib)
* core only uses glib, gobject - not gtk (one exception)
* char_ptr_handling.txt, include_types.txt split up into modules
* GTK_IS_OBJECT used in src/widget_types.c!
* configure "gtk" module
* Makefiles reorganized to support "make -f src/MODULE/Makefile"
* link.h mechanism works for modules
* build for "gtk" module mostly complete
* API structure defined for modules
* loading of modules via require works
* rename ffi_type_names to $(prefix)_type_names
* only compile in ffi_type_map for the core module.
* rename gtk to gnome
* include glib, gobject functions in gnome module.
* core module compiles in all types listed in src/fundamental.lua.
* parse-xml reads extra include files again (libs/*.lua: headers)
* widget_meta.c:260 - switching to the module that handles the type works. see
also data.c:533.
* gmodule now included in core module (glib)
* put glib/gobject bindings into a separate module.  gnome will not contain
any functions/structures/constants/overrides.
* examples/window.lua works again
* store elements of structures only when "is_native" is set.
* examples/calculator.lua works again
* order of inclusion of libraries doesn't matter anymore
* calling of closures now possible
* pretty printing of closures
* gtk automatcally loads glib
* examples/clock.lua works
* tests/027-closure.lua works
* pango module added
* enumlist pruned to current module
* tests/022-gslist.lua works
* examples/editor.lua works
* most examples work again
* src/call.c:_call_return_values now works better (ar.ts.module_idx modified)
* gdk_pango_layout_get_clip_region: provide alias pango_layout_get_clip_region
* gdk_pango_layout_line_get_clip_region: similar
* examples/pixmap.lua: works again
* tests/005.lua - works
* documentation html_in/voidptr.html updated
* diagram voidptr1.dot created
* support atk
* support cairo
* examples up to 030 working
* documentation of debugging tools: html_in/debug.html
* GdkAtom: must not free() it, force a special widget_type handler
* generic argument flags; specify values in libs/*.lua; e.g. for
gtk_get_clipboard
* Makefile for modules simplified
* hash lookup code now in gnome.so, not in each module
* configure.lua for modules simplified
* init.c for modules simplified (just a little)
* src/include with file(s) that modules can use (*.h, configure.lua)
* src/gnome with core library code and private includes
* gtkdata.funcs.txt renamed to functions.txt
* gtkdata.enums.txt renamed to constants.txt
* all tests functioning again
* various bug fixes
* libxml2 works

2008-08-12
* fixed detection of fundamental types
* implementation of hash-based type conversion
* support for arrays (in struct type_info)
* hash-based lookup of types; no sorted type list anymore.
* hash algorithms and functions now have a single API, multiple of them can be
compiled in
* total size reduced from about 400 kB to 390 kB.

2008-08-18
* removed synthetic fundamental type "const char*" in favor of a regular const
char type.
* include_types.txt config files removed, replaced with a variable in the
library's Lua config file.
* removed ffi_type_map_t.flags, also from include/fundamental.lua and the
corresponding code in script/xml-types.lua, script/xml-output.lua.
* script/xml-types.lua: fixup_types now copies the is_native setting of the
parent type.
* off-by-one error fixed in src/gnome/data.c: _update_typemap_hash didn't add
the last type to the typemap.
* include only globals from "good" include files.
* simplification of modules' init.c code.
* size reduction by storing only the hash value of the fundamental names in
the modules, instead of the complete names.

2008-08-20
* documentation of the architecture
* attempts to reduce data size (structure sizes of type_info, struct_elem; not
viable)
* struct type_info remodeled to union type_info; room for module name for
non-native types.
* libs/MODULE.lua moved to src/MODULE/spec.lua
* better error message when a module uses a cmph method that's not supported
by the core module.
* automatically load the responsible module when a type is not found.
* string offsets in gtkdata.structs.c are now starting at 1; 0 is unused.
this makes offset 0 mean "unset".

2008-08-21
* bugfix in src/glib/callback.c: missing call to g_value_unset()
* bugfix for SEGV when using GtkTooltip, reported by Lucas Hermann Negri
* widget_handler "gobject" moved into src/glib/init.c

2008-08-25
* script/xml-parser.lua: comment update regarding "File" entries
* reorganization of html documentation (html_in -> doc/en, Makefiles)
* replace almost all lua_topointer with lua_touserdata
* boxed: lg_make_boxed_value uses a boxed value as-is if possible
* boxed: memory leaks fixed
* boxed: count currently allocated objects; return with gnome.box_debug()
* binary and source release from current CVS code.
* created a branch "rel-0-9" to continue maintenance of the old release.
* removal of api.find_func_in_module
* override for gtk_tree_model_get_value reinstated in a simpler version
* fundamental type "float": ffi2lua function added
* mechanism to add function aliases in spec.lua - aliases
* aliases for gdk_drawable_draw_xxx to gdk_draw_xxx
* mechanism to omit functions: spec.lua - ignore_functions
* struct ffi_type_map_t: removed lua2ffi_idx, ffi2lua_idx, lua2struct_idx,
struct2lua_idx; added just conv_idx and structconv_idx.  The structure is
currently 34 bit long, which is padded to 64 bit again.  Added code complexity
to check for NULL values in the jump tables -- not such a good idea after all?
* debug.function_sig: output the correct number of "*" for indirections
* layout improvements for documentation
* new example in the documentation: raedic
* colorization for example code
* renamed gtkdata.structs.c to types.c, and gtkdata.types.c to fundamentals.c

2008-08-26
* fix for arg_count confusion (retval now included) in call.c
* porting of weather example and cms-admin to API 1.0
* int_ptr: if the user gives nil, no output is returned
* struct_ptr_ptr, char_ptr_ptr: if the user gives nil, nil is passed.  use
"true" to pass a pointer to a NULL pointer and treat it as output argument.
* fix to freeing of char_ptr_ptr (was broken)

2008-08-27
* replaced lghash.so with gnomedev.so
* only build dependency for modules is gnomedev.so
* make doesn't print "Nothing to be done for `all'" anymore.
* build process doesn't require the cmph binary anymore.

2008-08-28
* src/hash/hash-generate-simple.c redesigned, compiles again

2008-09-01
* simple hash reworked some more
* all three hash methods (simple, fch, bdz) work properly

2008-09-11
* new script/show-sizes.lua to inform about .so sizes (linux only)

2008-09-12
* looked at glui, an older Lua/Gtk binding from late 2004 written by Steve
Donovan.  It offers a set of hand-coded bindings for a few widgets of Gtk 1.2
and is only known to work on Linux.
* simple hash: save space by not storing duplicate values
* cmph: use fixed 32 bit per bucket, and also combine duplicate values.

2008-11-05
* change in type_info_t.nn - instead of module_name_ofs have a flag
name_is_module: saves space (now 13 bit padding), remove struct
module_info.auto_depends.
* functions are now considered native types
* read func* from structures - create a closure to call the function

2008-11-06
* glib.object_get_class now works
* can call function pointers in structures
* conversion of remaining char_ptr_handling.txt into spec.lua:function_flags
* simplification of script/configure.lua (removal of use_only_cflags,
setup_library2).
* all linklist.txt files are now converted into a section in spec.lua.
* most configure.lua files deleted, as they did exactly the same simple calls.  Only the core module (gnome) still has a (large) configure.lua.
* changed the TYPE_xxx constants to GENUS_xxx (in include/common.h).  After all
they are stored in the field "union type_info.nn.genus" etc.
* doc/en: documentation menu is now multi-level.  More documentation.
* gnome: rename widget*.c to object*.c
* gnome: rename luagtk_get_object to lg_get_object
* gnome: refactoring of all luagtk_ prefixed functions and types to lg_, as
this system is not limited to gtk anymore.

2008-11-07
* script/check-linklist.lua to aid weeding out unused entries in linklists
* struct module_info is automatically generated by parse-xml.lua now.
* can now access functions with their full name (i.e., without a prefix).
required for gtkhtml.
* more documentation
* attempts to check into CVS; difficulties with branches and new/deleted files.

2008-12-01
* support "double*" input argument
* error when other types than number or userdata are given for an enum

2008-12-02
* fix GValue related bugs exposed by test 021-gvalue.lua
* more documentation on function calling
* use gnome.NIL instead of a boolean value as placeholder argument for ptr_ptr
arguments.

2008-12-14
* more documentation
* gnome.function_sig now accepts a closure (in addition to module/funcname)
* some more files checked into CVS

2008-12-19
* more files checked into CVS
* glib: lots of function_flags added

2008-12-26
* fix to gnome.destroy() - now works properly
* new documentation on errors with unique IDs in doc/en/errors.html
* all *Iface structures are now included as "struct*" without the _ prefix
* can now use library functions directly to set function pointers in structures in addition to closures.

2008-12-28
* script/extract-messages.lua finds all usages of message IDs, and generates the html.in files (per module)
* existing messages converted to this input format
* src/gnome/object_meta.c: use lg_push_closure to create closures for functions instead of l_call_func.
* macros LG_ERROR and LG_ARGERROR, LG_MESSAGE with translatable messages
* new source file src/gnome/lang.c that translates messages using a Lua data file
* a few messages marked for translation, descriptions entered
* new module "lgtranslate" for my Lua web framework, with sql tables for messages, descriptions, translations, reviews, locations.
* script/upload-messages.lua is an adaption of extract-messages.lua to scan the C source and upload new/changed messages to the web server.


2008-12-30
* some types added to the include_types array various spec files, mainly glib.
* some fundamental types added to glib, like FILE, size_t, time_t.  Other modules may still complain during building but these types are now available.
* all of the files now checked into CVS.

; -------------- 2009 ----------------

2009-01-11
* lua-bit library replaced by bitop from luajit

2009-01-12
* arg_flag handling starting to be modularized


2009-01-15
* script/gen-html.lua Windows safe, and generates a sorted index of keywords
* bug fixed in the lookup of globals
* upload of all documentation files to CVS
* upload of current documentation to lua-gtk.luaforge.net

2009-02-02
* script/gen-html.lua now supports cross references and anchors

2009-02-11
* new module gtkspell to support this library.

2009-02-18
* parse-xml.lua: now works with Gtk 2.14, too.

2009-02-22
* write to char* fields of structures.  probable memory leak...

2009-02-24
* added support for the clutter library as suggested and implemented by Michal Kolodziejczyk

2009-02-25
* handling of reference counting for a few clutter functions
* gnome: reading/writing structure elements of type uchar now works

2009-02-26
* clutter: some more overrides and demo programs
* gnome: fixed the message that recommends the use of gtk.closure (now in gnome)
* clutter: more tests added in src/clutter
* clutter: various improvements
* glib: implementation of g_object_get

2009-03-03
* configure: detect module names and configure only those modules

2009-03-05
* gnome: arguments of type "double*" can now be an output argument
* remove special refcounting for GtkObject, instead do this for GInitiallyUnowned. This fixes refcounting problems for Clutter.
* more documentation on void ptr
* documentation on objects
* replace gtk_box_pack_start_defaults with calls to gtk_box_pack_start, as the former method is deprecated in Gtk 2.14.
* clutter: removal of the superfluous overrides with INCREF
* clutter: demo test002.lua that shows rotating hands
* method obj:get_type() added

2009-03-11
* glib: override for g_object_set - correctly convert datatypes, omit last nil
* gnome: use library functions as closures directly
* clutter: examples moved to tests/clutter
* clutter: new example 006-carousel
* gnome: load libraries with RTLD_GLOBAL (required by clutter)
* gnome: when not using dynlink, determine the module's handle

2009-03-27
* gconf: new binding for this library
* new function flag NOINCREF to avoid increasing the reference count

2009-05-20
* gnet: new binding for this library; not yet complete
* gnome: support module specific remapping of class names to function prefixes

2009-07-17
* xml-parser: ignore Destructur and OperatorMethod generated by newer gccxml.
* glib: add g_main_loop_ref/unref to linklist in spec.lua

2009-09-07
* improvements to the configuration
* use clutter-1.0 instead of clutter-0.8

2009-11-30
* use cmph 0.8 or newer and its packing functions.  This simplifies my code.

2009-12-01
* to debug lua programs, I built lua from source and linked it with -lpthread.
This avoids the error gdb halts at when lua loads a dynamic library that links
to the pthread lib.

2009-12-03
* binding for gtkhtml3 now works somewhat.

2009-12-21
* fixed constant encoding, which was broken for constants with a value > 0x3f

; -------------- 2010 ----------------

2010-02-02
* entries in include_types.ARCH_OS are now considered
* fixed mark_type_id_in_use when called from mark_override: types of elements
in structures in include_types are now included

2010-02-19
* cairo: fixed allocation issues for struct cairo


2010-04-13
* Makefile works for the target "clean" for all modules, even unconfigured ones
* script/util.lua: CONST_CHAR_PTR_FORCE and CHAR_PTR_FORCE flags to avoid
gratuitous warnings during build
* some build messages improved
* script/xml-types.lua: fixed a bug that can appear when a certain type
(identified by its full_name) appears more than twice.  Triggered by GLib
version 2.24.0, first argument to function g_bit_lock.

2010-04-16
* settings on the SourceForge site for lua-gnome; homepage migrated there.