433
433
* hash-fch.c: hash_search improved
434
434
* GSList automatic free
435
435
* ffi2lua fix for enum**, lua2ffi fix for enum
436
* update INSTALL documentation, and label this package as BETA now.
437
* src/include_types.txt: to force inclusion of certain types (structures)
438
441
* support the bdz algorithm of cmph version wads07, which is still unreleased.
439
Library sizes: simple hash: 275 kB, fch: 252 kB, bdz: 252 kB. bdz builds
442
Library sizes: simple hash: 275 kB, fch: 268 kB, bdz: 268 kB. bdz builds
440
443
faster, needs a little bit less data but a bit more core.
446
* make-link.lua: evaluate optional conditions in the function list (to support
450
* tables can be a vararg argument; currently they can only contain strings.
451
* new gtk.NIL which can be used instead of nil to pass NULL to a C function;
452
useful in tables that are used as vararg argument.
453
* reduced code size by replacement of bdz_lookup_table by some code.
454
* hash-cmph.c: should now be endian neutral
457
* try how to use ffi callbacks and use the method that works
458
* better error message on failure to convert a closure's return value
461
* call.c: don't try to tread "void*" as an output parameter
462
* callback.c: more efficient error handling in conversion of a callback's
464
* new function gtk.void_ptr to wrap a Lua value as a void*, which can be
465
passed to callback etc. The wrappers can be freed explicitely.
466
* override for g_tree_destroy to avoid calling g_Free on the tree twice
469
* split types.c into mulitple files (enum.c, voidptr.c)
470
* API change for void* wrappers
473
* discontinue the use of the global environment; store data only in the global
474
table "gtk". This change makes lua-gtk work properly within SciTE, and
475
probably other embedded situations.
478
* include X specific functions - #include <gdk/gdkx.h>
479
* select functions by pathname components instead of function names
480
* include all libxml2 functions
481
* update to support cmph 0.8
482
* new examples/xid.lua to demonstrate how to get the XID of a window
485
* examples/xid.lua enhanced
486
* bugfix when a non-function is stored in a widget's metatable.
489
* new examples/raedic.lua which is modeled after grae, to fetch definitions of
490
spanish words from the Real Academia Espa�ola.
493
* don't automatically call gtk_init when the user does it himself
494
* override for gtk_icon_theme_get_search_path
495
* fix for a SEGV due to an uninitialized variable in lua2ffi_ptr
496
* warn if glade.lua is used with Gtk runtime version >= 2.12
497
* provide read-only access to all global Gtk variables
500
* allow NIL to be passed instead of a function pointer to Gtk functions
501
* handle multiple return values from Lua callbacks for output arguments
502
* new examples/menu.lua to show how to use a popup menu, and callbacks with
504
* enum.c: make sure gtk.init has been called before looking up an enum type
505
* handle the type boolean*
506
* support for callback output arguments of type int*
509
* removal of the automatic type conversion string to long for GValue setting
510
* glade: convert value for set_property to integer if required
511
* gtk2: try the _utf8 suffix for Windows platforms when looking for functions
514
* examples/tree.lua: demonstrate how to fetch the selection
515
* gvalue.c: don't automatically convert a string to a number
516
* glade.lua: convert value for set_property to number if required, no
517
automatic conversion (removed)
518
* hash-cmph.c: bugfix for Win32
521
* include glib/gstdio.h and force all functions to be defined (g_stat etc.)
522
* g_dir_close override added (it frees the structure)
523
* luagtk_invalidate_widget added - to avoid reusing freed widgets
526
* try _utf8 suffix when looking for class methods on Win32
529
* support everything in the gio library
530
* override for g_list_free to avoid hard-to-debug double-free errors
531
* update of ChangeLog
534
* support for boxed Lua values, e.g. for ListStore.
537
* support long long int, signed long long int.
540
* support added for GtkSourceView, including an example
543
* new configuration scheme with one file per library in libs/
544
* configure script modified to use library config files
545
* make-xml.lua script modified for new config files
546
* Makefile.common modified for new config files
547
* Makefile.common modified for new config files
548
* parse-xml.lua modified for new config files
549
* configure script rewritten in Lua
552
* src/data.c gets the list of libraries to open from configure.lua
553
* fix build process for Win32
554
* boxed values with explicit type can be created with gtk.cast
555
* first coverage analysis with gcov
556
* removed the arbitrary limit on number of arguments to a library function.
557
This limit could be exceeded with vararg functions.
558
* removal of the g_object_%s lookup for methods of objects in widget_meta.c
559
* fixed a refcount problem in gvalue.c
560
* inclusion of following types (see src/include_types.txt): GtkHPaned,
561
GtkVPaned, GtkVSeparator, GtkHSeparator, GtkCellRendererPixbuf, AtkNoOpObject,
563
* parse-xml: add some GdkAtom #defines
567
* fix for tests/018-enumptr.lua
568
* dump_struct: follow pointers to other structures
569
* boxedvalue: metatable with __tostring and __index, via that "value" to
570
access the value; do a typecast if so requested
571
* closures: code moved to own file (closure.c)
572
* closures: new Lua value for closures. The user has to create closures
573
explicitely now via gtk.closure(func), which allows for correct memory
575
* new debug flag "closure" to debug closure allocation and freeing.
578
* automatically create closures (again)
579
* prevent automatic closures where they can't be used
580
* documentation of closures
581
* GtkBuilder: connect_objects are now supported
582
* removal of the arbitrary limit of number of dynamic libraries
583
* new function new_array to allocate an array of items
584
* access array elements with object[i]
585
* read/write fields of a boxed value directly.
588
* refactoring to allow for multiple modules (WIP)
591
* core library stripped from module specific data and code. With
592
optimizations, size is about 71 kB, and without around 95 kB.
595
* core library (now "gnome") works, separately so far is glib (with gobject),
599
* ongoing remodeling of the library for better modularity, including the
600
build system. All tests now work again, all libraries are supported again.
601
Changes up to now (undated):
603
* channel.c belongs to a module for glib
604
* gdk_color_copy (gtk.new for GdkColor) should be in a module
605
* configure.lua split to allow usage for modules
606
* link core lib only to required libraries (gobject, glib)
607
* core only uses glib, gobject - not gtk (one exception)
608
* char_ptr_handling.txt, include_types.txt split up into modules
609
* GTK_IS_OBJECT used in src/widget_types.c!
610
* configure "gtk" module
611
* Makefiles reorganized to support "make -f src/MODULE/Makefile"
612
* link.h mechanism works for modules
613
* build for "gtk" module mostly complete
614
* API structure defined for modules
615
* loading of modules via require works
616
* rename ffi_type_names to $(prefix)_type_names
617
* only compile in ffi_type_map for the core module.
618
* rename gtk to gnome
619
* include glib, gobject functions in gnome module.
620
* core module compiles in all types listed in src/fundamental.lua.
621
* parse-xml reads extra include files again (libs/*.lua: headers)
622
* widget_meta.c:260 - switching to the module that handles the type works. see
624
* gmodule now included in core module (glib)
625
* put glib/gobject bindings into a separate module. gnome will not contain
626
any functions/structures/constants/overrides.
627
* examples/window.lua works again
628
* store elements of structures only when "is_native" is set.
629
* examples/calculator.lua works again
630
* order of inclusion of libraries doesn't matter anymore
631
* calling of closures now possible
632
* pretty printing of closures
633
* gtk automatcally loads glib
634
* examples/clock.lua works
635
* tests/027-closure.lua works
637
* enumlist pruned to current module
638
* tests/022-gslist.lua works
639
* examples/editor.lua works
640
* most examples work again
641
* src/call.c:_call_return_values now works better (ar.ts.module_idx modified)
642
* gdk_pango_layout_get_clip_region: provide alias pango_layout_get_clip_region
643
* gdk_pango_layout_line_get_clip_region: similar
644
* examples/pixmap.lua: works again
645
* tests/005.lua - works
646
* documentation html_in/voidptr.html updated
647
* diagram voidptr1.dot created
650
* examples up to 030 working
651
* documentation of debugging tools: html_in/debug.html
652
* GdkAtom: must not free() it, force a special widget_type handler
653
* generic argument flags; specify values in libs/*.lua; e.g. for
655
* Makefile for modules simplified
656
* hash lookup code now in gnome.so, not in each module
657
* configure.lua for modules simplified
658
* init.c for modules simplified (just a little)
659
* src/include with file(s) that modules can use (*.h, configure.lua)
660
* src/gnome with core library code and private includes
661
* gtkdata.funcs.txt renamed to functions.txt
662
* gtkdata.enums.txt renamed to constants.txt
663
* all tests functioning again
668
* fixed detection of fundamental types
669
* implementation of hash-based type conversion
670
* support for arrays (in struct type_info)
671
* hash-based lookup of types; no sorted type list anymore.
672
* hash algorithms and functions now have a single API, multiple of them can be
674
* total size reduced from about 400 kB to 390 kB.
677
* removed synthetic fundamental type "const char*" in favor of a regular const
679
* include_types.txt config files removed, replaced with a variable in the
680
library's Lua config file.
681
* removed ffi_type_map_t.flags, also from include/fundamental.lua and the
682
corresponding code in script/xml-types.lua, script/xml-output.lua.
683
* script/xml-types.lua: fixup_types now copies the is_native setting of the
685
* off-by-one error fixed in src/gnome/data.c: _update_typemap_hash didn't add
686
the last type to the typemap.
687
* include only globals from "good" include files.
688
* simplification of modules' init.c code.
689
* size reduction by storing only the hash value of the fundamental names in
690
the modules, instead of the complete names.
693
* documentation of the architecture
694
* attempts to reduce data size (structure sizes of type_info, struct_elem; not
696
* struct type_info remodeled to union type_info; room for module name for
698
* libs/MODULE.lua moved to src/MODULE/spec.lua
699
* better error message when a module uses a cmph method that's not supported
701
* automatically load the responsible module when a type is not found.
702
* string offsets in gtkdata.structs.c are now starting at 1; 0 is unused.
703
this makes offset 0 mean "unset".
706
* bugfix in src/glib/callback.c: missing call to g_value_unset()
707
* bugfix for SEGV when using GtkTooltip, reported by Lucas Hermann Negri
708
* widget_handler "gobject" moved into src/glib/init.c
711
* script/xml-parser.lua: comment update regarding "File" entries
712
* reorganization of html documentation (html_in -> doc/en, Makefiles)
713
* replace almost all lua_topointer with lua_touserdata
714
* boxed: lg_make_boxed_value uses a boxed value as-is if possible
715
* boxed: memory leaks fixed
716
* boxed: count currently allocated objects; return with gnome.box_debug()
717
* binary and source release from current CVS code.
718
* created a branch "rel-0-9" to continue maintenance of the old release.
719
* removal of api.find_func_in_module
720
* override for gtk_tree_model_get_value reinstated in a simpler version
721
* fundamental type "float": ffi2lua function added
722
* mechanism to add function aliases in spec.lua - aliases
723
* aliases for gdk_drawable_draw_xxx to gdk_draw_xxx
724
* mechanism to omit functions: spec.lua - ignore_functions
725
* struct ffi_type_map_t: removed lua2ffi_idx, ffi2lua_idx, lua2struct_idx,
726
struct2lua_idx; added just conv_idx and structconv_idx. The structure is
727
currently 34 bit long, which is padded to 64 bit again. Added code complexity
728
to check for NULL values in the jump tables -- not such a good idea after all?
729
* debug.function_sig: output the correct number of "*" for indirections
730
* layout improvements for documentation
731
* new example in the documentation: raedic
732
* colorization for example code
733
* renamed gtkdata.structs.c to types.c, and gtkdata.types.c to fundamentals.c
736
* fix for arg_count confusion (retval now included) in call.c
737
* porting of weather example and cms-admin to API 1.0
738
* int_ptr: if the user gives nil, no output is returned
739
* struct_ptr_ptr, char_ptr_ptr: if the user gives nil, nil is passed. use
740
"true" to pass a pointer to a NULL pointer and treat it as output argument.
741
* fix to freeing of char_ptr_ptr (was broken)
744
* replaced lghash.so with gnomedev.so
745
* only build dependency for modules is gnomedev.so
746
* make doesn't print "Nothing to be done for `all'" anymore.
747
* build process doesn't require the cmph binary anymore.
750
* src/hash/hash-generate-simple.c redesigned, compiles again
753
* simple hash reworked some more
754
* all three hash methods (simple, fch, bdz) work properly
757
* new script/show-sizes.lua to inform about .so sizes (linux only)
760
* looked at glui, an older Lua/Gtk binding from late 2004 written by Steve
761
Donovan. It offers a set of hand-coded bindings for a few widgets of Gtk 1.2
762
and is only known to work on Linux.
763
* simple hash: save space by not storing duplicate values
764
* cmph: use fixed 32 bit per bucket, and also combine duplicate values.
767
* change in type_info_t.nn - instead of module_name_ofs have a flag
768
name_is_module: saves space (now 13 bit padding), remove struct
769
module_info.auto_depends.
770
* functions are now considered native types
771
* read func* from structures - create a closure to call the function
774
* glib.object_get_class now works
775
* can call function pointers in structures
776
* conversion of remaining char_ptr_handling.txt into spec.lua:function_flags
777
* simplification of script/configure.lua (removal of use_only_cflags,
779
* all linklist.txt files are now converted into a section in spec.lua.
780
* most configure.lua files deleted, as they did exactly the same simple calls. Only the core module (gnome) still has a (large) configure.lua.
781
* changed the TYPE_xxx constants to GENUS_xxx (in include/common.h). After all
782
they are stored in the field "union type_info.nn.genus" etc.
783
* doc/en: documentation menu is now multi-level. More documentation.
784
* gnome: rename widget*.c to object*.c
785
* gnome: rename luagtk_get_object to lg_get_object
786
* gnome: refactoring of all luagtk_ prefixed functions and types to lg_, as
787
this system is not limited to gtk anymore.
790
* script/check-linklist.lua to aid weeding out unused entries in linklists
791
* struct module_info is automatically generated by parse-xml.lua now.
792
* can now access functions with their full name (i.e., without a prefix).
793
required for gtkhtml.
795
* attempts to check into CVS; difficulties with branches and new/deleted files.
798
* support "double*" input argument
799
* error when other types than number or userdata are given for an enum
802
* fix GValue related bugs exposed by test 021-gvalue.lua
803
* more documentation on function calling
804
* use gnome.NIL instead of a boolean value as placeholder argument for ptr_ptr
809
* gnome.function_sig now accepts a closure (in addition to module/funcname)
810
* some more files checked into CVS
813
* more files checked into CVS
814
* glib: lots of function_flags added
817
* fix to gnome.destroy() - now works properly
818
* new documentation on errors with unique IDs in doc/en/errors.html
819
* all *Iface structures are now included as "struct*" without the _ prefix
820
* can now use library functions directly to set function pointers in structures in addition to closures.
823
* script/extract-messages.lua finds all usages of message IDs, and generates the html.in files (per module)
824
* existing messages converted to this input format
825
* src/gnome/object_meta.c: use lg_push_closure to create closures for functions instead of l_call_func.
826
* macros LG_ERROR and LG_ARGERROR, LG_MESSAGE with translatable messages
827
* new source file src/gnome/lang.c that translates messages using a Lua data file
828
* a few messages marked for translation, descriptions entered
829
* new module "lgtranslate" for my Lua web framework, with sql tables for messages, descriptions, translations, reviews, locations.
830
* 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.
834
* some types added to the include_types array various spec files, mainly glib.
835
* 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.
836
* all of the files now checked into CVS.
840
* lua-bit library replaced by bitop from luajit
843
* arg_flag handling starting to be modularized
847
* script/gen-html.lua Windows safe, and generates a sorted index of keywords
848
* bug fixed in the lookup of globals
849
* upload of all documentation files to CVS
850
* upload of current documentation to lua-gtk.luaforge.net
853
* script/gen-html.lua now supports cross references and anchors
856
* new module gtkspell to support this library.
859
* parse-xml.lua: now works with Gtk 2.14, too.
862
* write to char* fields of structures. probable memory leak...
865
* added support for the clutter library as suggested and implemented by Michal Kolodziejczyk
868
* handling of reference counting for a few clutter functions
869
* gnome: reading/writing structure elements of type uchar now works
872
* clutter: some more overrides and demo programs
873
* gnome: fixed the message that recommends the use of gtk.closure (now in gnome)
874
* clutter: more tests added in src/clutter
875
* clutter: various improvements
876
* glib: implementation of g_object_get
879
* configure: detect module names and configure only those modules
882
* gnome: arguments of type "double*" can now be an output argument
883
* remove special refcounting for GtkObject, instead do this for GInitiallyUnowned. This fixes refcounting problems for Clutter.
884
* more documentation on void ptr
885
* documentation on objects
886
* replace gtk_box_pack_start_defaults with calls to gtk_box_pack_start, as the former method is deprecated in Gtk 2.14.
887
* clutter: removal of the superfluous overrides with INCREF
888
* clutter: demo test002.lua that shows rotating hands
889
* method obj:get_type() added
892
* glib: override for g_object_set - correctly convert datatypes, omit last nil
893
* gnome: use library functions as closures directly
894
* clutter: examples moved to tests/clutter
895
* clutter: new example 006-carousel
896
* gnome: load libraries with RTLD_GLOBAL (required by clutter)
897
* gnome: when not using dynlink, determine the module's handle