12008-05-01  Andy Wingo  <wingo@pobox.com>
2
3	* gnome/gw/support/defs.scm (load-defs): Remove the
4	bad-method-name tracking code, as we no longer write logs.
5
62008-04-27  Andy Wingo  <wingo@pobox.com>
7
8	* gnome/gw/support/defs.scm: Flesh out docs, from the tutorial.
9	(load-defs): Remove logfile-writing foo.
10
11	* gnome/gobject/generics.scm: Fix docs.
12
13	* gnome/gobject.scm: Add tutorial-style docs to the module
14	commentary, taken from the tutorial.
15
16	* gnome.scm.in: Add the API_VERSION docs from the tutorial into
17	the gnome-N module commentary, so they will end up in the
18	reference documentation.
19
20	* doc/gobject/guile-gnome-gobject.scm: Add a type index. Add
21	(gnome-2) and (gnome gobject).
22
232008-04-25  Andy Wingo  <wingo@pobox.com>
24
25	* == Released guile-gnome-platform version 2.15.98 ==
26
272008-04-25  Andy Wingo  <wingo@pobox.com>
28
29	* VERSION: Bumped to 2.15.98.
30
312008-04-25  Andy Wingo  <wingo@pobox.com>
32
33	* test-suite/wrapset.api: Regenerate.
34	* test-suite/gobject.api: Regenerate.
35
36	* examples/main-loop.scm:
37	* examples/example-1.scm: Update examples to gnome-2.
38
39	* gnome/gw/support/gtk-doc.scm (zap-whitespace)
40	(docbook->sdocbook): Zap any whitespace-only strings coming out of
41	xml->sxml.
42	(class-signal-stexi-docs): Only doc the class' own signals.
43	(gobject-class-stexi-docs): Reword.
44
45	* gnome/gobject/gsignal.c (gtype-class-get-signals): Only query
46	instantiatable types.
47
48	* gnome/gobject/gparameter.scm (<gparam-value-array>): Allow #f
49	for the element-spec.
50	(<gparam-unichar>):
51	* gnome/gobject/gparameter.c (scm_c_gparam_initialize_scm)
52	(scm_c_gparam_construct): Re-add unichar param support.
53
54	* gnome/gobject/gobject.scm (compute-slots): A bit of a hack to
55	make sure that the direct-slots slot mentions the GObject
56	properties.
57	(<gparam-object>): Change to accept <ginterface> as well.
58
59	* doc/gobject/guile-gnome-gobject.texi: Update version.
60
61	* doc/gobject/guile-gnome-gobject.scm (*updated*, *version*)
62	(*years*); Updated.
63
64	* doc/glib/defuns-*.texi: Regenerated. Lost the whitespace due to
65	change in gtk-doc.scm.
66
672008-04-25  Andy Wingo  <wingo@pobox.com>
68
69	* gnome/gw/support/gtk-doc.scm (gobject-class-stexi-docs): Cope
70	with gw:wct, which is not a <class>. Sigh.
71
72	* gnome/gobject/gtype.h: Remove unimplemented foo
73
74	* gnome/gobject/gtype.c (gtype-instance-destroy!): Renamed from
75	%gtype-instance-destroy!, because really it's not that private;
76	its semantics are necessary.
77	(especify-metaclass!): Removed, as the only user --
78	<gtk-message-dialog> -- was fixed. yay1
79
80	* gnome/gw/support/gtk-doc.scm:
81	* gnome/gobject/gvalue.scm:
82	(<gboxed>):
83	* gnome/gobject/gvalue.c (genum-register-static)
84	(gflags-register-static):
85	* gnome/gobject/gtype.scm:
86	* gnome/gobject/gtype.c (gtype-name->class):
87	* gnome/gobject/gsignal.scm:
88	(gtype-class-create-signal):
89	* gnome/gobject/gparameter.scm:
90	* gnome/gobject/gobject.scm (<gobject>)
91	(gobject-class-find-property):
92	* gnome/gobject/gclosure.scm: Updated docs.
93
94	* doc/glib/defuns-*.texi: Regenerated. Lots of extra crap
95	whitespace because SSAX changed to not ignore whitespace-only
96	strings.
97
982008-04-24  Andy Wingo  <wingo@pobox.com>
99
100	* test-suite/gobject.test ("gflags values"): Add test for
101	scm_c_scm_to_flags_value fix.
102
103	* gnome/gobject/gvalue.c (scm_c_gvalue_ref): Whoops, handle the
104	string-is-null case.
105	(scm_c_scm_to_flags_value): Accept single 'foo or "foo" to mean
106	'(foo) or '("foo"), respectively. Thanks to Gregory Benison for
107	the report.
108
109	* gnome/gobject/guile-support.h:
110	* gnome/gobject/guile-support.c (scm_symbol_chars)
111	(scm_symbol_chars_dynwind, scm_keyword_chars)
112	(scm_keyword_chars_dynwind): New functions.
113
114	* gnome/gobject/gvalue.c (scm_c_gvalue_ref, scm_c_gvalue_set)
115	(scm_c_scm_to_enum_value, scm_c_scm_to_flags_value)
116	(unwrap_gvalue_array, genum-register-static)
117	(genum-class->value-table, gflags-register-static)
118	(gflags-class->value-table):
119	* gnome/gobject/gsignal.c (gsignal-query, gsignal-create)
120	(gtype-instance-signal-emit)
121	(gtype-instance-signal-connect-closure):
122	* gnome/gobject/gparameter.c (SCM_ERROR_NOT_YET_IMPLEMENTED):
123	Fix deprecation warnings.
124
125	* gnome/gobject/gobject.c (gobject-get-data, gobject-set-data!):
126	Remove unused functions.
127	(scm_c_gobject_construct)
128	(scm_with_c_gtype_instance_instance_init, gobject-get-property)
129	(gobject-set-property)
130	(SCM_DEFINE): Fix deprecation warnings. Untabify the file.
131
1322008-04-10  Andy Wingo  <wingo@unquote>
133
134	* == Released guile-gnome-platform version 2.15.97 ==
135
1362008-04-10  Andy Wingo  <wingo@unquote>
137
138	* VERSION: Bumped to 2.15.97.
139
1402008-04-10  Andy Wingo  <wingo@unquote>
141
142	* NEWS: Update NEWS.
143
1442008-04-10  Andy Wingo  <wingo@pobox.com>
145
146	* gnome/gobject/gvalue.c:
147	* gnome/gobject/gtype.c:
148	* gnome/gobject/gsignal.c (scm_c_gsignal_query):
149	* gnome/gobject/gparameter.c:
150	* gnome/gobject/gobject.c: Disable debugging printouts.
151
152	* gnome/gobject/gtype.c (scm_c_gtype_class_to_gtype)
153	(scm_c_scm_to_gtype_instance): Avoid scm_slot_ref on 'u' slots on
154	broken versions of Guile.
155
156	* gnome/gobject/gparameter.scm (compute-get-n-set): Use our new
157	%hacky-* struct accessors. (The accessors are not exported.)
158
159	* gnome/gobject/gparameter.c (scm_sys_hacky_struct_ref)
160	(scm_sys_hacky_struct_set_x): New functions, equivalent to
161	struct-ref and struct-set! from guile, except that they don't
162	check permissions or allocation, because we know them, and, more
163	crucially, they understand how to calculate n_fields for the
164	so-called "light structs". Should be unnecessary once the patches
165	submitted to guile-devel on 10 April 2008 are accepted.
166
167	Reminiscent of %get-struct-slot and %set-struct-slot! from gtype.c
168	before my rewrite, which were probably written in part to
169	compensate for this problem, under the haze of ignorance.
170
1712008-04-09  Andy Wingo  <wingo@pobox.com>
172
173	* gnome/gobject/gtype.c (%gtype-class-bind)
174	(%gtype-class-inherit-magic)
175	* gnome/gobject/gtype.scm (initialize on <gtype-class>): We do
176	need to bind the gtype to the class before calling next-method,
177	but also we have to munge the class' free function after the
178	next-method. Therefore split %gtype-class-inherit-magic out of
179	%gtype-class-bind. Fixes things not being freed because the base
180	%inherit-magic overwrite our struct free function.
181
182	* test-suite/gobject.test ("genum values", "gflags values"): Add
183	some tests.
184
185	* gnome/gobject/gvalue.scm: (gflags->element-list, genum->enum):
186	Use the ->value functions defined in C.
187
188	* gnome/gobject/gvalue.c (scm_c_gvalue_ref): Don't turn <genum>
189	and <gflags> values into ints, leave them as gvalues.
190	(genum->value, gflags->value): Implemented in C. The latter
191	function is new.
192
193	* gnome/gobject/private.h:
194	* gnome/gobject/gtype.c (scm_sys_gtype_instance_construct): Export
195	scm_c_gtype_instance_bind_to_object instead. Allow for the
196	possibility that construct() bound the instance.
197
198	* gnome/gobject/gobject.c
199	(scm_with_c_gtype_instance_instance_init): Use bind_to_object; the
200	incomplete set_cached() is insufficient if e.g. the
201	gobject:set-property calls API on the object.
202
203	* test-suite/gobject.test ("defining custom gobject type"): Add a
204	test for the construct arg behaviour.
205
206	* gnome/gobject/private.h:
207	* gnome/gobject/gtype.c (scm_c_gtype_instance_set_cached): Expose
208	this internal piece to gobject.c.
209
210	* gnome/gobject/gobject.c (push_in_construction_from_scheme)
211	(pop_in_construction_from_scheme, in_construction_from_scheme):
212	Keep a stack of SCM objects under construction.
213	(scm_with_c_gtype_instance_instance_init): If there is an object
214	under construction, associate it with the GTypeInstance*, so that
215	gobject:set-property calls for construct properties see the same
216	SCM as the one under construction.
217
218	* gnome/gobject/gvalue.scm (<gboxed-scm>, <gvalue-array>):
219	* gnome/gobject/gclosure.scm (<gclosure>): Inherit from <gboxed>,
220	because that's how they roll.
221
2222008-04-08  Andy Wingo  <wingo@pobox.com>
223
224	* gnome/gobject/gtype.h:
225	* gnome/gobject/gtype.c: Rewrite to never expose GTypes on the
226	Scheme side, rather wrapping GTypes directly as <gtype-class>
227	instances. The GType is stored in a <read-only-slot>, which stores
228	a raw (untagged) word -- the perfect size for a GType. Hence much
229	gtype<->class API has been removed.
230
231	Because a GType is isomorphic to GTypeClass*, the <%gtype-class>
232	smob is also gone.
233
234	On the instance side, I also removed the need for
235	<%gtype-instance> smobs as well, through interesting trickery: the
236	GOOPS objects directly store the GTypeInstance* pointer in a
237	<read-only-slot>, as with the <gtype-class> instances. The
238	trickery is that we can be notified when the struct is collected,
239	via monkeypatching the <gtype-class> objects to free via a custom
240	function, scm_gtype_instance_struct_free. This allows us to unref
241	the object.
242
243	This low-level trickery happens as part of the object allocation
244	and initialization protocol.
245
246	(scm_c_gtype_get_direct_supers): C function to determine the
247	superclasses of a given GType: the union of the type's parents and
248	the type's interfaces.
249	(scm_c_gtype_to_class): Dispatch down to `make-class' with the
250	right #:gtype-name.
251	(%gtype_to_class): New function corresponding to the old
252	gtype->class, but for such things as g-wrap's latent class
253	binding. Not really public.
254	(scm_gtype_name_to_class): Replaces the old gtype->class. In the
255	new world order gtypes can be summoned by name only.
256	(gtype_struct_offset): Helper to compute the offset within the
257	class struct in which to store the gtype.
258	(scm_sys_gtype_bind): Deep magic to shove a GType into a
259	<gtype-class>, called during <gtype-class>'s `initialize'
260	function. Also sets the struct free functions in the classes with
261	a sketchy heuristic.
262	(scm_c_gtype_class_to_gtype): New function for C.
263	(scm_c_gtype_class_is_a_p): New function for C.
264	(scm_c_gtype_instance_get_cached): Remove the smob/goops glue
265	code: there is just one cache for an instance.
266
267	(scm_t_gtype_instance_funcs): Add construct() and initialize_scm()
268	methods.
269
270	(scm_c_gtype_instance_construct): New function, called as the
271	first thing that <gtype-instance>'s `initialize' does.
272	(scm_c_gtype_instance_bind_to_object):
273	(scm_gtype_instance_unbind):
274	(scm_gtype_instance_struct_free): Corresponding trickery to bind
275	<gtype-instance> values to refcounted C pointers.
276
277	(%gtype-instance-construct): <gtype-instance>'s `initialize'
278	bottoms out here, normally resulting in the construction of the
279	instance, e.g. via g_object_newv(). There is another codepath to
280	initialize a SCM instead of the pointer, but I think the idea is a
281	bit flaky. See e.g. gparameter.c.
282	(%gtype-instance-destroy!): Forcibly drop the GOOPS object's
283	reference on the type instance.
284	(scm_c_scm_to_gtype_instance): No longer takes two arguments. The
285	two-arg version is...
286	(scm_c_scm_to_gtype_instance_typed): ...here.
287	(%get-struct-slot, %set-struct-slot!): Removed, no longer
288	necessary.
289
290	* gnome/gobject/gtype.scm: A rewrite corresponding to that
291	described in gtype.[ch].
292	(initialize <gtype-class>): Base mechanics to bind a class to a
293	GType, looked up by name.
294	(initialize <gtype-instance>): Base mechanics to construct a
295	GTypeInstance, if the instance is not yet bound.
296
297	* gnome/gobject/gvalue.c: Rewrite to represent GValue objects as
298	instances of GOOPS classes, bound to C GValue* values in the same
299	way as <gtype-instance> objects are bound to GTypeInstance*
300	values. (They used to be SMOBs.)
301
302	(scm_gvalue_struct_free): A <gvalue> free function, like
303	scm_gtype_instance_struct_free.
304	(scm_sys_bless_gvalue_class): Magic like %gtype-class-bind.
305	(scm_sys_allocate_gvalue): <gvalue>'s `allocate-instance' bottoms
306	out here, which allocates the C GValue* object.
307	(scm_c_make_gvalue): Redone on top of GOOPS allocation protocol.
308	The case in which the <gtype-class> is not a <gvalue-class> is a
309	bit hacky, unfortunately.
310	(scm_c_gvalue_peek_value): New function.
311	(scm_c_gvalue_ref): New function, factored out of
312	scm_gvalue_primitive_get, but operating on GValue*.
313	(scm_c_gvalue_set): New function, factored out of
314	scm_gvalue_primitive_set, but operating on GValue*.
315	(scm_c_scm_to_enum_value, scm_c_scm_to_flags_value): New
316	functions, factored out gvalue.scm.
317	(%gvalue-set!): New hackiness, for <gvalue>'s `initialize'.
318	(scm_c_gvalue_to_scm, scm_c_scm_to_gvalue): Implemented on top of
319	ref() and set().
320	(
321	(scm_genum_class_to_value_table, scm_gflags_class_to_value_table):
322	Rename from foo-type-get-values, remove the old SCM wrappers.
323	(scm_c_gvalue_holds, scm_c_gvalue_new_from_boxed)
324	(scm_c_gvalue_new_take_boxed, scm_c_gvalue_peek_boxed)
325	(scm_c_gvalue_dup_boxed, scm_c_gvalue_dup_value)
326	(scm_c_gvalue_from_value, scm_c_gvalue_take_value): New C helper
327	functions.
328	(scm_init_gnome_gobject_values): Register SCM-gvalue wrappers for
329	boxeds and value arrays just like other non-core boxed types.
330
331	* gnome/gobject/gvalue.scm (gnome): Also export <gvalue>. Remove
332	{genum,gflags}-type-get-value, use the foo-class->value-table
333	functions instead. Define all <gvalue> subclasses (<gchar>,
334	<gfloat>, etc.) using normal subclassing foo.
335	(<genum>, <gflags>): Rework to be more like other <gtype-class>
336	instances. Don't store a value table on the class object, that's
337	not necessary.
338
339	* gnome/gobject/utils.scm (unless): New macro.
340	(with-accessors): New macro, defines procedures-with-setters in
341	its body that map to particular slot accessors. Very interesting;
342	needs more docs.
343
344	* gnome/gobject/gclosure.scm:
345	* gnome/gobject/gclosure.h:
346	* gnome/gobject/gclosure.c (scm_gclosure_marshal_with_guile):
347	Perform the C<->GValue conversions here, not in a Scheme wrapper.
348	(struct _GuileGClosure, %gclosure-construct): Store the closure
349	metadata in the C closure instead of in the SCM, which is just a
350	boxed value anyway. Perhaps avoid a leaked ref -- there was a very
351	crufty-looking comment that might need checking up on in the
352	future.
353	(scm_gclosure_invoke): Renamed from gclosure-primitive-invoke.
354	Require typed <gvalue> instances, because otherwise we don't know
355	what GValues to use to invoke the closure.
356	(<gclosure>): Derive from <gvalue>, yay. Don't store
357	things (return type, etc) on the SCM object, because if we get a
358	closure from C, we have no way of knowing those things.
359	(initialize): Don't chain up, because we do our own construction.
360	Hacky, but it gets the job done.
361
362	* gnome/gobject/gparameter.scm:
363	* gnome/gobject/gparameter.h:
364	* gnome/gobject/gparameter.c: Parameters are now GOOPS objects
365	only, not GOOPS objects augmented by strange structs.
366	(scm_c_gparam_initialize_scm): New function, called when wrapping
367	an existing parameter as a SCM to initialize the SCM's slots. It's
368	pretty silly though to actually allocate slots, it would be better
369	to use accessors instead. Oh well, perhaps in the future.
370	(scm_c_gparam_construct): New function to create a GParamSpec via
371	e.g.
372	(make <gparam-char> #:name ...)
373	(<gparam>): Define slots for each attribute: name, nick, etc...
374	(<gparam-char>, etc): Define manually.
375
376	* gnome/gobject/gsignal.scm:
377	* gnome/gobject/gsignal.h:
378	* gnome/gobject/gsignal.c: Signals are now GOOPS objects, not
379	structs.
380	(scm_c_gsignal_query, scm_gsignal_query): Make a <gsignal> out of
381	an integer signal ID.
382	(scm_gtype_class_get_signals): Change from gtype-get-signals;
383	return a list of <gsignal> objects.
384	(scm_gsignal_create): Change from gsignal-primitive-create;
385	otherwise basically the same.
386	(scm_gtype_instance_signal_emit): Change from
387	gtype-instance-primitive-signal-emit.
388	(scm_gtype_instance_signal_connect_closure): Renamed from
389	gtype-instance-primitive-signal-connect.
390	(scm_gsignal_handler_block, scm_gsignal_handler_unblock)
391	(scm_gsignal_handler_disconnect, scm_gsignal_handler_connected_p):
392	De-primitivize.
393
394	* gnome/gobject/gobject.scm:
395	* gnome/gobject/gobject.h:
396	* gnome/gobject/gobject.c: Adapt to <gtype-class>/<gtype-instance>
397	changes.
398	(scm_c_gobject_construct): Move construction logic into C; this
399	function is called by <gtype-instance>'s `initialize'. Some
400	trickery to know whether construction was initialized by Scheme)
401	(and thus the initialization protocol is in progress, or whether
402	we need to allocate and initialize a new SCM object.
403	(scm_with_c_gtype_instance_instance_init): Second part of the
404	trickery.
405	(scm_gtype_register_static): Return the type name instead of a
406	GType object.
407	(scm_gobject_class_get_properties): Rename and rework from
408	gobject-type-get-properties.
409	(scm_gobject_class_get_property_names): Crackily duplicated code)
410	(but allows slots to be computed during class initialization
411	without forcing initialization cycles, e.g. <gtk-container> <->
412	<gtk-widget>.
413	(scm_gobject_class_install_property): No need to update a
414	#:properties slot.
415	(scm_gobject_get_property, scm_gobject_set_property):
416	Deprimitivize.
417
418	* gnome/gobject/gobject.scm (compute-slots on <gobject-class>):
419	Excellent cleverness to declare, but not allocate, slots for each
420	GObject property, even for C types.
421	(compute-get-n-set): Use gobject-{get,set}-property for the slot
422	accessors.
423	(initialize on <gobject-class>): Adapt to gtype.scm protocols.
424	(<gobject>): No more #:gsignals and #:gobject-properties slots;
425	use getter functions instead.
426	(<gparam-object>): Define here, because <gobject> is only defined
427	here.
428
429	* examples/example-1.scm: Update to the new <gclosure> API, and to
430	avoid gtypes.
431
432	* gnome/glib.scm:
433	* examples/main-loop.scm: Avoid gtypes.
434
435	* gnome/gw/support/defs.scm (load-defs):
436	s/wrap-object!/wrap-instance!/.
437
438	* gnome/gw/support/gobject.scm:
439	* gnome/gw/gobject-spec.scm: Wrap <gtype> as <gtype-class>. Remove
440	wrappers for primitive <gtype-instance> objects. Use two-arg
441	scm_c_scm_to_gtype_instance_typed when needed. Remove redundant
442	casts. Use new GValue* helpers. Rename wrap-object! to
443	wrap-instance!, as it works on all GTypeInstance* types that we
444	know about.
445	(initializations-cg on <gobject-classed-type>): Perform the latent
446	binding via (%gtype->class gtype-as-int), instead of on gtype
447	objects. Be more clever about avoiding GValue allocation.
448
449	* gnome/gw/support/gtk-doc.scm (signal-stexi-args)
450	(class-signal-stexi-docs, gobject-class-stexi-docs): Cursory
451	changes that might work; needs more testing. Looks much nicer)
452	(though.
453
454	* test-suite/gobject.api: Update for new API. Yay!
455
456	* test-suite/gobject.test: Remove some GType tests. Adapt others
457	to new API.
458
459	* test-suite/gw-gobject.test: Adapt to new API.
460
461	* test-suite/test-gobject.c (test_obj_class_init): Properly
462	declare the value array parameter.
463
4642008-04-04  Andy Wingo  <wingo@pobox.com>
465
466	* gnome/gobject/gc.c: Gcc started throwing warnings about the
467	locking foo, at which point I realized that we never actually
468	initialized gthreads, or linked to it. Fix to use normal mutexen
469	and initialize threads. Perhaps in the future we will do something
470	clever with gdk_thread_funcs.
471
472	* package.ac: Check for gthreads.
473
474	* gnome/gobject/Makefile.am (C_FILES): Reorder to reflect correct
475	dependency ordering.
476	(libguile_gnome_gobject_@API_VERSION@_la_CFLAGS):
477	(libguile_gnome_gobject_@API_VERSION@_la_LIBADD): Link to
478	gthreads.
479	(DOT_DOC_FILES): Remove gparameter.doc from the list, as soon it
480	will have nothing to say.
481
4822007-12-14  Andy Wingo  <wingo@pobox.com>
483
484	* gnome/gobject/gtype.h:
485	* gnome/gobject/gtype.c:
486	* gnome/gobject/gobject.c (gobject-primitive-create-instance):
487	(scm_c_gtype_instance_get_cached_goops)
488	(scm_c_gtype_instance_set_cached_goops)
489	(scm_c_gtype_instance_to_scm_typed)
490	(scm_init_gnome_gobject_types): Because we don't really have any
491	guarantee on the order that the SMOB and the GOOPS object are
492	collected, change from caching the GOOPS object on the instance to
493	caching it on a weak hash table, keyed on the SMOB itself.
494
495	* gnome/gobject/gtype.c (scm_c_gtype_instance_get_cached_smob)
496	(scm_c_gtype_instance_get_cached_goops): Crazily, with Guile 1.8
497	there is a window between mark and sweep in which a value has not
498	been collected, but is marked for collecting. If we try to get a
499	cached SCM value in this window, re-mark it so that when lazy
500	sweeping happens, we don't get the newly-alive value freed out
501	from under us. Quite a tough bug!
502	(scm_c_scm_to_gtype_instance): More debugging if we have a bad
503	%gtype-instance.
504
5052007-12-13  Andy Wingo  <wingo@pobox.com>
506
507	* gnome/gobject/gtype.c (scm_gtype_instance_free): Add debug.
508
509	* gnome/gobject/gvalue.c (free_gboxed_scm):
510	* gnome/gobject/gparameter.c (gparam->param-struct):
511	* gnome/gobject/gobject.c (scm_with_c_gtype_instance_class_init):
512	* gnome/gobject/gclosure.c (free_closure, gclosure-primitive-new):
513	Update for gc_protect_object changes.
514
515	* gnome/gobject/gc.h:
516	* gnome/gobject/gc.c (scm_glib_gc_protect_object)
517	(scm_glib_gc_unprotect_object): Change prototypes to reflect these
518	functions' nature as a bridge between C and scheme. Note that
519	unprotect_object looks mightily dodgy.
520
5212007-12-12  Andy Wingo  <wingo@pobox.com>
522
523	* gnome/gobject/gobject.c (scm_c_gtype_instance_class_init): Enter
524	guile mode.
525	(scm_c_gtype_instance_class_init): Enter guile mode.
526
527	* gnome/gobject/guile-support.h:
528	* gnome/gobject/guile-support.c (scm_dynwind_guile_v__p_u_c_p)
529	(scm_dynwind_guile_v__p_u_p_p, scm_dynwind_guile_v__p_p): Factor
530	some common scm_with_guile/scm_without_guile code into a separate
531	file. Ick.
532
533	* gnome/gobject/gobject.c (scm_c_gobject_set_property)
534	(scm_c_gobject_get_property): Enter guile mode. Icky icky ick.
535
536	* gnome/gobject/gclosure.c
537	(scm_closure_primitive_invoke_without_guile)
538	(scm_closure_primitive_invoke): Leave Guile mode when invoking
539	closures.
540
5412007-12-10  Andy Wingo  <wingo@pobox.com>
542
543	* == Released guile-gnome-platform version 2.15.96 ==
544
5452007-12-10  Andy Wingo  <wingo@pobox.com>
546
547	* VERSION: Bumped to 2.15.96.
548
5492007-12-10  Andy Wingo  <wingo@pobox.com>
550
551	* gnome/overrides/glib.defs (g_io_channel_read_line):
552	* gnome/gw/glib-support.h:
553	* gnome/gw/glib-support.c (_wrap_g_io_channel_read_line): Restore
554	this wrapper.
555
556	* gnome/gw/glib-support.c (g_io_add_watch): Enter guile mode in
557	the callback. What a pain in the ass.
558
559	* gnome/gobject/guile-support.h:
560	* gnome/gobject/guile-support.c (scm_to_locale_string_dynwind):
561	New helper, allocates a string to be freed within the current
562	dynwind.
563
564	* gnome/gobject/gvalue.c (scm_gvalue_primitive_set)
565	(scm_genum_register_static, scm_gflags_register_static):
566	* gnome/gobject/gtype.c (scm_gtype_from_name)
567	(scm_c_define_and_export_gtype_x):
568	* gnome/gobject/gparameter.c (SCM_GPARAM_STRUCT_BLURB)
569	(SCM_GPARAM_STRUCT_NICK, scm_gparam_primitive_create):
570	* gnome/gobject/gobject.c (scm_gtype_register_static): Use the
571	scm_to_locale_string_dynwind instead of SCM_STRING_CHARS.
572
573	* examples/fifo.scm (fifo-callback): Update for new
574	io-channel-read-line behavior.
575	(main): primitive-exit from the subthread. Adapt to
576	io-channel-new-file argument change.
577
5782007-12-08  Andy Wingo  <wingo@pobox.com>
579
580	* gnome/overrides/glib.defs (run):
581	* gnome/gw/glib-support.c (_wrap_g_main_loop_run): Don't leave
582	guile mode before calling main_loop_run, because we still have to
583	do some SCM-calling things. Instead leave guile mode from inside
584	the wrapper. Fixes some lockups.
585
5862007-12-06  Andy Wingo  <wingo@pobox.com>
587
588	* test-suite/wrapset.api:
589	* test-suite/gobject.api: Regenerate.
590
591	* gnome/gw/support/gtk-doc.scm (generate-undocumented-texi): New
592	exported function, generates undocumented.texi.
593
594	* doc/glib/undocumented.texi:
595	* doc/glib/guile-gnome-glib.texi (Top): Add undocumented
596	functions.
597
598	* doc/glib/defuns-unicode.xml.texi: Regenerated docs removed some
599	functions.
600
6012007-11-30  Andy Wingo  <wingo@pobox.com>
602
603	* gnome/gw/support/defs.scm (type-lookup): Ignore functions that
604	would force opaque types to be wrapped.
605
6062007-11-25  Andy Wingo  <wingo@pobox.com>
607
608	* gnome/gw/support/defs.scm (type-lookup)
609	(construct-argument-list): Add another arg, #:for-proc, that will
610	be used when we warn about making opaque types.
611	(load-defs): Set #:for-proc on lookup-type.
612
613	* doc/glib/defuns-main.xml.texi:
614	* doc/glib/defuns-iochannels.xml.texi:
615	* doc/glib/defuns-bookmarkfile.xml.texi: Regenerated, adds entries
616	for the opaque types.
617
618	* gnome/gw/support/gtk-doc.scm (superclasses)
619	(gobject-class-stexi-docs): Document superclasses.
620	(check-documentation-coverage): Print out "spurious" symbols,
621	those that we think are documented but are not in the wrapper.
622
623	* gnome/gw/support/gobject.scm (initializations-cg)
624	(wrap-opaque-pointer!): Do define and export the wct variable, as
625	other wrapsets that use this type need to get at the wct. Doh.
626
627	* doc/gobject/guile-gnome-gobject.texi (Top):
628	* doc/glib/guile-gnome-glib.texi (Top): Remove the concept index,
629	and add a type index.
630
631	* gnome/gw/support/gtk-doc.scm (gobject-class-stexi-docs): Don't
632	error if the class is not defined in the module.
633
634	* gnome/gw/support/gobject.scm (wrap-freeable-pointer!)
635	(wrap-refcounted-pointer!): Accept the ctype as the name of the
636	type without a star, so that the type name becomes e.g.
637	<g-main-loop> instead of <g-main-loop*>. This means that only
638	truly opaque pointers will have a * in their names.
639
640	* gnome/gw/gobject-spec.scm (initialize): Specialize on
641	<g-source>, not <g-source*> -- fallout from the changes to
642	gobject.scm.
643
644	* gnome/gw/glib-spec.scm (initialize): Adapt to changes in
645	wrap-freeable-pointer and wrap-refcounted-pointer.
646
647	* doc/glib/defuns-*.xml.texi: Regenerated.
648
6492007-11-24  Andy Wingo  <wingo@pobox.com>
650
651	* gnome/gw/support/gobject.scm (unwrap-value-cg): Fix a typo, my
652	bads yo.
653	(<gobject-structure-type>, check-typespec-options, c-type-name)
654	(make-typespec, unwrap-value-cg, call-arg-cg, wrap-value-cg)
655	(wrap-structure!): New public function, wrap-structure!, which
656	wraps a C structure as a Scheme value. Parameters of the form
657	"StructName*" are interpreted as "out" parameters, while
658	"const-StructName*" are treated as "in" parameters.
659
6602007-11-23  Andy Wingo  <wingo@pobox.com>
661
662	* test-suite/wrapset.api: Update for the changes resulting from
663	the API review. Neat!
664
665	* bin/Makefile.am: Rework; in the future perhaps we will not make
666	a local guile-gnome binary.
667
668	* gnome/overrides/glib.defs: Add lots of custom function wrapper
669	definitions, backed by code in glib-support. Ignore a number of
670	other functions of dubious utility, or that cannot be wrapped
671	safely in scheme.
672
673	* gnome/gw/support/gobject.scm (<gobject-opaque-pointer>): Pull in
674	Guile's wct implementation, as it is not public, and does some
675	things that we don't want to do (e.g. defining the wct classes as
676	variables, that is useless.)
677	(wrap-opaque-pointer!): Use <gobject-opaque-pointer>.
678	(<gobject-freeable-pointer>): New class, a pointer that has a free
679	function.
680	(wrap-freeable-pointer!): New public function.
681	(<gobject-ref-pointer>): New class, a pointer that can be reffed
682	or unreffed.
683	(wrap-refcounted-pointer!): New function.
684
685	* gnome/gw/glib-support.h:
686	* gnome/gw/glib-support.c: Expand, providing better scheme
687	wrappers for a number of functions.
688
689	* gnome/gw/glib-spec.scm (initialize): Wrap a number of types as
690	freeable or refcounted pointers.
691
692	* doc/glib/section-strings.xml.texi (Strings): Add docs for
693	g-string-get-str.
694
695	* doc/glib/overrides.texi: Added some overrides.
696
697	* doc/glib/defuns-unicode.xml.texi:
698	* doc/glib/defuns-misc_utils.xml.texi:
699	* doc/glib/defuns-main.xml.texi:
700	* doc/glib/defuns-iochannels.xml.texi:
701	* doc/glib/defuns-fileutils.xml.texi:
702	* doc/glib/defuns-conversions.xml.texi:
703	* doc/glib/defuns-bookmarkfile.xml.texi: Regenerated with all of
704	the wrapset changes.
705
706	* doc/gobject/Makefile.am:
707	* doc/gobject/guile-gnome-gobject.texi: Added to bzr, because I
708	can't figure out how to get automake to deal with it otherwise.
709	Not such a bad idea though to have this in VC.
710
711	* doc/glib/Makefile.am (docbook_xml):
712	* doc/glib/guile-gnome-glib.texi (Base64 Encoding):
713	* doc/glib/defuns-base64.xml.texi:
714	* doc/glib/section-base64.xml.texi: Removed, the base64 functions
715	were removed.
716
7172007-11-15  Andy Wingo  <wingo@pobox.com>
718
719	* gnome/gw/support/gtk-doc.scm (lambda): Fix some texi because the
720	upstream xml is bad.
721	(make-type-docs?, gtk-doc-sdocbook->class-list/g-wrap): Don't
722	generate docs for types that g-wrap does not define, fixes e.g.
723	<gst-element-class>.
724
7252007-11-10  Andy Wingo  <wingo@pobox.com>
726
727	* == Released guile-gnome-platform version 2.15.95 ==
728
7292007-11-10  Andy Wingo  <wingo@pobox.com>
730
731	* VERSION: Bumped to 2.15.95.
732
7332007-11-10  Andy Wingo  <wingo@pobox.com>
734
735	* test-suite/Makefile.am: Add makefile foo for the wrapset api
736	check.
737
738	* test-suite/wrapset.scm: New check for api stability in the
739	g-wrap-generated glib wrapset.
740
741	* test-suite/wrapset.api: New file, defines the glib API.
742
743	* gnome/gw/support/gtk-doc.scm (extract-defs)
744	(check-documentation-coverage): New export,
745	check-documentation-coverage, which looks at a texinfo file and a
746	set of modules to determine which exports of the modules are
747	undocumented.
748	(check-documentation-coverage): Sort the undocumented symbol list.
749	(check-documentation-coverage): Don't error out if a module cannot
750	be resolved.
751
7522007-11-01  Andy Wingo  <wingo@pobox.com>
753
754	* gnome/gw/support/gtk-doc.scm (gobject-class-stexi-docs): Put
755	prop descriptions in a para.
756
7572007-09-25  Andy Wingo  <wingo@pobox.com>
758
759	* == Released guile-gnome-platform version 2.15.94 ==
760
7612007-09-25  Andy Wingo  <wingo@pobox.com>
762
763	* VERSION: Bumped to 2.15.94.
764
7652007-09-25  Andy Wingo  <wingo@pobox.com>
766
767	* NEWS: Updated.
768
7692007-09-24  Andy Wingo  <wingo@pobox.com>
770
771	* test-suite/Makefile.am: Update for gobject docs moving.
772
773	* doc/gobject/docs.mk: Update a bit.
774
775	* test-suite/gobject.api: Regenerate for gtk-doc.scm changes, an
776	incompatible change but not in any released version.
777
778	* gnome/gw/support/gtk-doc.scm: Document the module, and reduce
779	the number of exports to just two. Move around some definitions.
780	(gtk-doc->texi-defuns): Rework to handle either the heuristics
781	mode or g-wrap, and document.
782	(gtk-doc->texi-stubs): Document.
783
784	* doc/gobject/make-texinfo.scm: Add spaces between args to deal
785	with fixed guile-lib serialization.
786
787	* doc/glib/:
788	* doc/gobject/: GLib and GObject docs moved to separate
789	directories.
790
7912007-09-07  Andy Wingo  <wingo@pobox.com>
792
793	* gnome/gw/support/gtk-doc.scm: Import gobject and goops so that
794	we can do some runtime introspection of classes.
795	(sdocbook-fold-structs): New function, folds over struct
796	definitions.
797	(signal-doc-name, signal-doc-docs, signal-refsect2-list)
798	(signal-docs-alist, signal-stexi-args, class-signal-stexi-docs)
799	(gobject-class-stexi-docs, gtk-doc-sdocbook->class-list/g-wrap):
800	New functions to document classes, with their properties and
801	signals.
802	(gtk-doc->texi-defuns): Put class documentation before functions.
803
804	* doc/section-*.texi:
805	* doc/defuns-*.texi: Regenerated.
806
807	* gnome/gw/support/gtk-doc.scm (c-arguments->scheme-arguments)
808	(function-stexi-arguments): Use @tie{} instead of a space where
809	appropriate.
810	(*gtk-doc-sdocbook->stexi-rules*): Translate FALSE and TRUE.
811	(gtk-doc->texi-stubs): Put the subtitle in a subparagraph, not the
812	title.
813	(function-stexi-arguments): Don't wrap the var in @var, that makes
814	it to be @tt font, which we don't want or need.
815	(make-defs/g-wrap): Doc generics using @deffnx, not @deffn.
816
817	* doc/Makefile.am: Factor out automatic g-wrap docs stuff into
818	common makefile routines.
819
8202007-09-02  Andy Wingo  <wingo@pobox.com>
821
822	* doc/guile-gnome-glib.texi: New file, includes all the rest to
823	make glib docs.
824
825	* doc/Makefile.am: Add rules to regenerate guile-gnome-glib.texi's
826	dependencies. Add guile-gnome-glib manual.
827
828	* gnome/gw/support/gtk-doc.scm: Add a couple of public methods and
829	hacks to get GLib docbook to work. Will document more later.
830
831	* doc/defuns-*.texi:
832	* doc/section-*.texi: Add generated documentation.
833
8342007-09-01  Andy Wingo  <wingo@pobox.com>
835
836	* test-suite/Makefile.am: Add some hairyness for the api check
837	test.
838
839	* gnome/gw/support/gobject.scm: Don't export wrap-enum!; we just
840	add a method on the wrap-enum! from (g-wrap enumeration).
841
842	* test-suite/gobject.api: An apicheck description of the gobject
843	api.
844
845	* test-suite/api.scm: New test, tests that our API has not
846	regressed.
847
848	* gnome/gobject/gobject.scm (make-gobject-instance): Fix bug
849	introduced by doc (define placement).
850
851	* gnome/gw/generics.scm: Document, and re-export (gnome gobject
852	generics).
853
854	* doc/guile-gnome-gobject.scm (*modules*): Add the (gnome gw
855	generics) module to the list.
856
857	* gnome/gw/support/modules.scm:
858	* gnome/gw/support/defs.scm: Document.
859
860	* doc/guile-gnome-gobject.scm: Remove the concept index; we
861	defined no concepts.
862
863	* gnome/gw/support/gobject.scm: Document. Removed the undefined
864	construct-argument-list.
865
866	* gnome/gobject/utils.scm: Document.
867
868	* gnome/gobject/gobject.scm: Move around some docs, looks better
869	with newer guile-lib.
870
871	* gnome/gobject/generics.scm: Write a bunch about the place of
872	generics in guile-gnome. Redefine docs as being on methods; needs
873	latest guile-lib to understand, thouh.
874
8752007-08-28  Andy Wingo  <wingo@pobox.com>
876
877	* gnome/gobject/generics.scm: Rewrite to export the generics
878	normally instead of molesting the root module.
879
8802007-08-26  Andy Wingo  <wingo@pobox.com>
881
882	* gnome/gobject/gtype.scm: Fix a URL.
883
884	* gnome/gobject/gsignal.c:
885	* gnome/gobject/gsignal.scm:
886	* gnome/gobject/gobject.c:
887	* gnome/gobject/gobject.scm: Document.
888
889	* gnome/gobject/gvalue.scm:
890	* gnome/gobject/gvalue.c: Document.
891
892	* gnome/gobject/gclosure.scm: Document. Change gclosure-invoke to
893	be a procedure rather than a method/generic.
894
895	* gnome/gobject/gparameter.scm:
896	* gnome/gobject/gparameter.c: Document. Remove
897	gparam-struct-arg-info from the exports list.
898
899	* doc/guile-gnome-gobject.scm (*modules*): Reorder the modules so
900	gvalue is before gparameter.
901
902	* gnome/gobject/utils.scm (define-class-with-docs): New exported
903	macro.
904
905	* gnome/gobject/gtype.scm: Add a commentary, lots of doc fixups.
906
907	* gnome/gobject/gtype.c: Lots of doc fixups.
908
909	* doc/Makefile.am (doc): Define DOT_DOC_FILES so that we actually
910	pick up the .doc files.
911
912	* gnome/gobject/gtype.scm:
913	* gnome/gobject/gtype.c (%function->method-public): Removed, this
914	hack is no longer necessary (or used).
915
9162007-08-25  Andy Wingo  <wingo@pobox.com>
917
918	* doc/make-texinfo.scm (main): Don't search the load path for the
919	file, we know where it is.
920
921	* doc/docs.mk ($(doc).texi): Use the right environments.
922
923	* doc/Makefile.am (nodist_info_TEXINFOS): Make automake happy.
924
925	* doc/guile-gnome-gobject.texi: Remove, I found the trick to make
926	automake happy.
927
928	* gnome/gobject/Makefile.am: Add .doc files to the makefile, so
929	they get built
930
931	* TODO: Add something of a TODO
932
933	* Makefile.am: Recurse into doc/.
934
935	* doc/guile-gnome-gobject.texi: Add this file so that automake is
936	happy.
937
938	* doc/make-texinfo.scm:
939	* doc/guile-gnome-gobject.scm:
940	* doc/docs.mk:
941	* doc/Makefile.am: Added doc infrastructure. make-texinfo.scm has
942	been augmented with Ludovic's code to parse out docs snarfed from
943	C files.
944
945	* gnome/gw/support/modules.scm (export-all-lazy!): Export all
946	non-lazy variables explicitly so that things like module frisking
947	and tab completion work.
948
949	* gnome/gobject/gsignal.c (scm_init_gnome_gobject_signals): Define
950	<gsignal> as the struct vtable. It was always exported but never
951	defined.
952
9532007-08-15  Andreas Rottmann  <a.rottmann@gmx.at>
954
955	* gnome/gw/support/gobject.scm (<gobject-object-type>)
956	(<gobject-boxed-type>, <gobject-interface-type>): Properly set
957	allowed-options via class declaration keyword instead of explicit
958	slot access.
959
9602007-08-13  Andy Wingo  <wingo@pobox.com>
961
962	* gnome/gw/support/gobject.scm (generate-wrapset): Make generated
963	SCM wrappers use the (gnome gobject) library, which in the change
964	to generics.scm is no longer unintentionally exported. Use the
965	generics' public interface, not its private interface.
966
967	* gnome/gw/support/modules.scm (export-all-lazy!):
968	* gnome/gw/generics.scm: Instead of making the public interface
969	use the module, which unintentionally re-exports imported
970	bindings in addition to the local bindings, install a module
971	binder proc on the public interface to export only local
972	variables.
973
9742007-07-28  Andy Wingo  <wingo@pobox.com>
975
976	* gnome/gw/support/gtk-doc.scm: Expand and document, depending on
977	the latest in guile-lib. I believe the interface is sufficient
978	now, at least for guile-cairo's purposes.
979
9802007-07-17  Andy Wingo  <wingo@pobox.com>
981
982	* gnome/gw/support/gtk-doc.scm: Checkpoint some new developments.
983
9842007-07-01  Andy Wingo  <wingo@pobox.com>
985
986	* gnome/gw/support/Makefile.am:
987	* gnome/gw/support/gtk-doc.scm: New module, useful for generating
988	docs from gtk-doc-generated docbook. Currently used in
989	guile-cairo.
990
9912007-06-15  Andy Wingo  <wingo@pobox.com>
992
993	* == Released guile-gnome-platform version 2.15.93 ==
994
9952007-06-15  Andy Wingo  <wingo@pobox.com>
996
997	* VERSION: Bumped to 2.15.93.
998
9992007-06-15  Andy Wingo  <wingo@pobox.com>
1000
1001	* gnome/gw/support/defs.scm (construct-argument-list): Fix parsing
1002	of argument options like (callee-owned), broken on 2007-05-05.
1003
10042007-05-26  Andy Wingo  <wingo@pobox.com>
1005
1006	* gnome/overrides/glib.defs (g_string_get_str): Fix generated
1007	wrapper name.
1008
1009	* gnome/gw/support/modules.scm: New function. If we have a fixed
1010	guile, exports everything to the public interface, with the effect
1011	that the module binder proc will be active on the public
1012	interface. However, this causes huge slowdowns on most guile 1.8
1013	versions; if we detect an old version, export all symbols
1014	explicitly, forcing the lazy bindings to be constructed. Otherwise
1015	it takes much more time than the baseline 16 seconds.
1016
1017	* gnome/gw/support/gobject.scm (generate-wrapset): Fix bug in our
1018	SCM generator: wrap generic functions that are not backed by RTI.
1019	(generate-wrapset): Instead of unconditionally exporting
1020	everything, go export-all-lazy!.
1021
1022	* gnome/overrides/glib.defs: Recover some default values lost when
1023	glib.defs was regenerated.
1024
1025	* gnome/gw/support/gobject.scm (generate-wrapset): Override
1026	g-wrap's creation of the SCM module, so that we just export
1027	"everything" instead of enumerating the exports. Allows lazy
1028	binding to work, dropping (gnome gtk) load time down to a
1029	manageable 2 seconds.
1030
10312007-05-24  Andy Wingo  <wingo@pobox.com>
1032
1033	* == Released guile-gnome-platform version 2.15.92 ==
1034
10352007-05-24  Andy Wingo  <wingo@pobox.com>
1036
1037	* VERSION: Bumped to 2.15.92.
1038
10392007-05-19  Andy Wingo  <wingo@pobox.com>
1040
1041	* gnome/gobject/guile-support.h:
1042	* gnome/gobject/guile-support.c (scm_with_guile): Add a guile 1.6
1043	shim of dubious correctness.
1044
10452007-05-13  Andy Wingo  <wingo@pobox.com>
1046
1047	* gnome/overrides/glib.defs-type-ignores:
1048	* gnome/overrides/Makefile.am: Add type ignores for GLib.
1049
1050	* package.ac: Update GLib requirement to 2.10, corresponding to
1051	the 2.16 release of the Gnome Developer Platform.
1052
1053	* gnome/overrides/glib.defs: Update ignores for new autogenerated
1054	glib.defs in the defs module. I have mostly ignored everything;
1055	the notable addition is GBookmarkFile. I also didn't ignore the
1056	unicode functions, figuring they will be useful while Guile
1057	doesn't have any of its own.
1058
1059	* gnome/gw/glib-spec.scm (initialize): Add alias for time_t as
1060	long.
1061
10622007-05-10  Andy Wingo  <wingo@pobox.com>
1063
1064	* gnome/gw/glib-support.c (_wrap_g_main_loop_run): Rework signal
1065	handling code to use a special gsource. The source is woken when
1066	SIGINT is delivered, via writing a byte on an fd, which is what
1067	g_main_context_wakeup does; however it also does some locking.
1068	Unsure about the safety of all of this, we'll see how it works
1069	out.
1070
1071	* == Released guile-gnome-platform version 2.15.91 ==
1072
10732007-05-10  Andy Wingo  <wingo@pobox.com>
1074
1075	* VERSION: Bumped to 2.15.91.
1076
10772007-05-06  Andy Wingo  <wingo@pobox.com>
1078
1079	* examples/example-1.scm: Put in a modeline.
1080
1081	* gnome/gw/support/gobject.scm (find-type-rule): Look up type
1082	rules recursively, fixes a very old bug in which out parameters
1083	are only recognized automatically within the same wrapset that
1084	defines the rule.
1085
1086	* gnome/gw/glib-spec.scm (initialize): Fix char* being marked for
1087	automatic 'out aliasing.
1088
10892007-05-05  Andy Wingo  <wingo@pobox.com>
1090
1091	* gnome/gw/support/gobject.scm: New export, lookup-type-by-alias.
1092	(add-type-alias!): Simplify.
1093	(lookup-type-by-alias): Renamed from lookup-type, which was a name
1094	collision with g-wrap.scm, which confused me for quite some time.
1095	(add-type-rule!, find-type-rule): Simplify so that a type rule is
1096	simply a string, which maps to a g-wrap typespec as a list of
1097	symbols.
1098
1099	* gnome/gw/support/defs.scm (type-lookup): Always return a list;
1100	lists are always valid as typespecs on the g-wrap side.
1101	(construct-argument-list): Simplify (?), assuming that type-lookup
1102	gives us a list, and for the update in type rules. Removes
1103	theoretical ability for multiple C arguments to be given from one
1104	Scheme object, but that wasn't used, and if it goes in again some
1105	documentation would be good. (This capability still exists via
1106	custom wrappers.)
1107	(load-defs): lookup-type-by-alias, not lookup-type.
1108
1109	* gnome/gw/glib-spec.scm (initialize): Add "out" type aliases for
1110	all scalar types for which it makes sense. gunichar is a guint32.
1111
11122007-05-04  Andy Wingo  <wingo@pobox.com>
1113
1114	* gnome/gobject/gvalue.h: New public function,
1115	scm_c_register_gtype_instance_gvalue_wrappers. Long name!
1116
1117	* gnome/gobject/gvalue.c
1118	(scm_c_register_gtype_instance_gvalue_wrappers)
1119	(scm_gvalue_to_scm, scm_gvalue_primitive_set, scm_c_gvalue_to_scm)
1120	(scm_scm_to_gvalue): Handle GTypeInstances in GValues via a
1121	generic wrapper mechanism; allows GStreamer's miniobjects to hook
1122	into this system.
1123
1124	* gnome/gobject/private.h:
1125	* gnome/gobject/gtype.c (scm_c_gtype_instance_to_scm_typed): New
1126	function, made to solve the `initialize' bug of gobject.c,
1127	described below. Private.
1128
1129	* gnome/gobject/gparameter.c (scm_init_gnome_gobject_parameters):
1130	Register GValue wrappers for GParamSpec.
1131
1132	* gnome/gobject/gobject.c (scm_c_gtype_instance_instance_init):
1133	Fix a longstanding bug (3.5 years) whereby double-derived scheme
1134	classes were always had `initialize' called with an instance of
1135	the most specific class.
1136	(scm_init_gnome_gobject): Register GValue wrappers for GObject.
1137
1138	* gnome/overrides/glib.defs (g_io_add_watch, string): Don't leave
1139	guile mode for functions that deal in SCM.
1140
11412007-02-02  Andy Wingo  <wingo@pobox.com>
1142
1143	* gnome/gw/support/gobject.scm (wrap-gobject-class!): Add a type
1144	alias for classes; fixes class parameters to wrapped functions.
1145
1146	* gnome/gw/support/defs.scm (load-defs): Support new parameter,
1147	`leave-guile-mode'. Takes one boolean argument, defaults to #t. If
1148	#t, g-wrap will leave guile mode when the function is called.
1149	Requires new g-wrap.
1150
1151	* gnome/gobject/gvalue.scm (initialize): Untabify.
1152	(gtype-instance:write): Untabify. Use gflags->symbol-list to write
1153	flags.
1154	(find-enum, genum->symbol, genum->name, genum->value): Untabify.
1155	(gflags->element-list): Untabify; fix a bug so that 0x3 does not
1156	match 0x1.
1157	(gflags->symbol-list, gflags->name-list, gflags->value-list):
1158	Untabify.
1159
1160	* gnome/gobject/gtype.c (scm_init_gnome_gobject_types): Don't
1161	install a log handler; not only does the scm_throw corrupt
1162	libraries' internal state, it is dangerous because now it is
1163	likely that we are not in guile mode.
1164
11652006-12-17  Andy Wingo  <wingo@pobox.com>
1166
1167	* gnome/gobject/gclosure.c ("%scm-gclosure-marshal"): Enter guile
1168	via scm_with_guile when invoking a closure; along with a patch I'm
1169	mailing to the g-wrap list this makes callbacks from other threads
1170	work.
1171
11722006-12-15  Andy Wingo  <wingo@pobox.com>
1173
1174	* == Released guile-gnome-platform version 2.15.90 ==
1175
11762006-12-15  Andy Wingo  <wingo@pobox.com>
1177
1178	* VERSION: Bumped to 2.15.90.
1179
11802006-12-15  Andy Wingo  <wingo@pobox.com>
1181
1182	* test-suite/gw-test-gobject-spec.scm (gw-test-gobject-spec):
1183	* test-suite/gw-test-glib-spec.scm (gw-test-glib-spec): Fix up
1184	includes.
1185
1186	* test-suite/gobject.test ("basic values"): Fix the check for
1187	out-of-range errors, using the "value out of range" variant
1188	instead of "argument N out of range".
1189
1190	* test-suite/Makefile.am (libgw_guile_test_glib_la_LIBADD): Link
1191	to GLib.
1192
1193	* gnome/gw/support/gobject.scm (wrap-value-cg): Use the
1194	scm_c_gtype_instance_unref generic function instead of
1195	g_object_unref, so that we can support other classed objects.
1196
1197	* gnome/gobject/gtype.c:
1198	(get_gtype_instance_instance_funcs)
1199	(scm_register_gtype_instance_funcs, scm_c_gtype_instance_ref)
1200	(scm_c_gtype_instance_unref)
1201	(scm_c_gtype_instance_get_cached_smob)
1202	(scm_c_gtype_instance_set_cached_smob)
1203	(scm_c_gtype_instance_get_cached_goops)
1204	(scm_c_gtype_instance_set_cached_goops): Keep a registry of
1205	fundamental classed gtypes that we know how to deal with, with
1206	function pointers on how to ref, unref, get qdata, and set qdata
1207	on them. This gets g_object_* code out of gtype.c, and allows for
1208	external modules to define wrappers for new fundamental classed
1209	types, like GStreamer's miniobjects.
1210	(scm_gtype_instance_free, scm_c_gtype_instance_to_scm)
1211	(scm_c_make_gtype_instance): Use the generic functions instead of
1212	type-specific switch blocks.
1213
1214	* gnome/gobject/gparameter.c (scm_init_gnome_gobject_parameters):
1215	Register the paramspec ref/sink/qdata functions with gtype.c.
1216
1217	* gnome/gobject/gobject.c (scm_init_gnome_gobject): Register the
1218	gobject ref/sink/qdata functions with gtype.c.
1219	(s_scm_gobject_primitive_create_instance): use
1220	scm_c_gtype_instance_set_cached_goops instead of mucking about
1221	with qdata ourselves.
1222
12232006-12-09  Andy Wingo  <wingo@pobox.com>
1224
1225	* gnome/gw/support/gobject.scm (wrap-value-cg): If a boxed value
1226	is caller-owned, then use g_value_take_boxed instead of
1227	g_value_set_boxed.
1228
1229	* gnome/gobject/gvalue.c (s_scm_scm_to_gvalue): If a custom
1230	unwrapper fails to set the gvalue, signal a wrong-type-arg
1231	exception.
1232
12332006-12-08  Andy Wingo  <wingo@pobox.com>
1234
1235	* gnome/gw/support/gobject.scm (wrap-custom-gvalue!): New public
1236	macro, allows new fundamental GTypes to be represented as native
1237	scheme values. For example, GstIntRange as a pair of ints.
1238
1239	* gnome/gobject/guile-gnome-gobject.h: Add gc.h so people using
1240	this header get everything.
1241
1242	* gnome/gobject/gvalue.c (scm_init_gnome_gobject_values): Don't
1243	export enum and flags gtypes here, that's already done by gtype.c.
1244	I'm not sure if this is the right change though; it seems that all
1245	of the gtype:foo exports should be done in the same file. Dunno.
1246
12472006-11-05  Andy Wingo  <wingo@pobox.com>
1248
1249	* gnome/gw/gobject-spec.scm: Use (gnome gw support g-wrap), the
1250	g-wrap compatibility wrapper.
1251
1252	* gnome/gw/glib-spec.scm: Use (gnome gw support g-wrap), the
1253	g-wrap compatibility wrapper.
1254
1255	* gnome/gw/support/Makefile.am (support_DATA):
1256	* gnome/gw/support/g-wrap.scm: New module, (gnome gw support
1257	g-wrap), added to the dist. The idea is for wrapsets to have
1258	access to all g-wrap generics from one module.
1259
12602006-10-30  Andy Wingo  <wingo@pobox.com>
1261
1262	* gnome/gobject/gc.h:
1263	* gnome/gobject/gc.c (scm_glib_gc_protect_object)
1264	(scm_glib_gc_unprotect_object): New functions, like
1265	scm_gc_[un]protect_object, but can be called from inside the gc's
1266	sweep phase.
1267
1268	* gnome/gobject/gparameter.c (s_scm_gparam_to_param_struct):
1269	* gnome/gobject/gvalue.c (copy_gboxed_scm, free_gboxed_scm):
1270	* gnome/gobject/gobject.c (s_scm_gobject_set_data_x)
1271	(scm_c_gtype_instance_class_init):
1272	* gnome/gobject/gclosure.c (free_closure)
1273	(s_scm_gclosure_primitive_new): Use scm_glib_gc_protect_object
1274	instead of guile's scm_gc_protect_object.
1275
1276	* gnome/gobject/Makefile.am (C_FILES): Add gc.c.
1277
12782006-10-27  Andy Wingo  <wingo@pobox.com>
1279
1280	* gnome/gw/support/defs.scm (construct-argument-list): Don't throw
1281	away typespec options, like 'null-ok, when there are extras
1282	arguments. Fixes cases like this:
1283	'("GMainContext*" "context" (null-ok) (default "NULL")).
1284
12852006-10-26  Andy Wingo  <wingo@pobox.com>
1286
1287	* gnome/gw/support/gobject.scm (add-type!): Only export classes
1288	that are actually defined. Fixes guile-gnome on guile 1.8.
1289
1290	* gnome/gw/generics.scm (gnome): Use (gnome gobject), so that any
1291	methods we define hang off the same generics as the base gobject
1292	library.
1293
12942006-10-20  Andy Wingo  <wingo@pobox.com>
1295
1296	* gnome/gw/support/gobject.scm (initializations-cg): Tell g-wrap
1297	to work with generic functions in the (gnome gw generics) module.
1298	Makes it so that we don't pollute the root namespace.
1299
1300	* gnome/gw/Makefile.am (guilegwmodule_DATA): Autotoolage.
1301
1302	* gnome/gw/generics.scm: New file, created to hold guile-gnome's
1303	generic functions.
1304
13052005-12-22  Andy Wingo  <wingo@pobox.com>
1306
1307	* AUTHORS: Updated.
1308
1309	* gnome/gw/support/Makefile.am (support_DATA): Updated
1310	accordingly.
1311
1312	* gnome/gw/support/slib.scm: New module, provides printf and
1313	glob:make-matcher. This removes the build dependency on slib.
1314
1315	* gnome/gw/support/printf.scm:
1316	* gnome/gw/support/glob.scm:
1317	* gnome/gw/support/genwrite.scm: Pulled in from SLIB. Without
1318	modifications.
1319
13202005-10-13  Andy Wingo  <wingo@pobox.com>
1321
1322	* gnome/gobject/gtype.c (scm_gtype_interfaces): Signedness fix.
1323
13242005-09-17  Andreas Rottmann  <a.rottmann@gmx.at>
1325
1326	* gnome/gobject/gtype.c (s_scm_gtype_interfaces): Fix GCC 4.0
1327	warnings.
1328
13292005-04-20  Andreas Rottmann  <a.rottmann@gmx.at>
1330
1331	* gnome/glib.scm (g-error-domain, g-error-code, g-error-message):
1332	New public functions.
1333
13342005-04-10  Andreas Rottmann  <a.rottmann@gmx.at>
1335
1336	* gnome/gobject/gobject.c, gnome/gobject/gvalue.c,
1337	* gnome/gw/glib-support.c: Use the new macros.
1338	* gnome/gobject/gutil.h (GPOINTER_TO_SCM, SCM_TO_GPOINTER): New
1339	macros.
1340
13412005-04-09  Andreas Rottmann  <a.rottmann@gmx.at>
1342
1343	* gnome/gw/glib-spec.scm (initialize): Fix gsize, gssize in- and
1344	out-arguments.
1345
1346	* gnome/gw/glib-spec.scm (post-call-arg-cg): Use newly-added function
1347	scm_c_raise_gerror.
1348	* gnome/gobject/Makefile.am (C_FILES): Added gutil.c
1349	* gnome/gobject/gobject.h: #include gutil.h
1350	* gnome/gobject/gutil.c, gnome/gobject/gutil.h: New files.
1351
13522005-04-07  Andreas Rottmann  <a.rottmann@gmx.at>
1353
1354	* test-suite/gw-gobject.test, test-suite/gobject.test: Added a few
1355	tests relevant to the gvalue fixes.
1356
1357	* gnome/gw/support/defs.scm (load-defs): Improve error handling a
1358	bit by re-raising stacked conditions where appropriate.
1359
1360	* gnome/gobject/gvalue.c (scm_gvalue_primitive_get): Return a full
1361	goops instance when the gvalue contains an object.
1362
1363	* gnome/gobject/gvalue.c (scm_gvalue_primitive_set): Fix
1364	scm_list_p() check, needs to wrapped with SCM_BOOL().
1365	(scm_gvalue_primitive_set): Also handle goops gobject instances.
1366
13672005-03-17  Andreas Rottmann  <a.rottmann@gmx.at>
1368
1369	* gnome/gobject/gvalue.c (scm_gvalue_primitive_set): Fix memleak
1370	when setting a string value.
1371
13722005-03-01  Andreas Rottmann  <a.rottmann@gmx.at>
1373
1374	* gnome/overrides/glib.defs: Added g_io_add_watch_full to ignore
1375	list.
1376
1377	* examples/fifo.scm: Polished a bit.
1378
1379	* gnome/gw/support/defs.scm (load-defs): Re-enable logging of
1380	opaque types.
1381
13822005-03-06  Andy Wingo  <wingo@pobox.com>
1383
1384	* == Released guile-gnome-platform version 2.7.99 ==
1385
13862005-03-06  Andy Wingo  <wingo@pobox.com>
1387
1388	* VERSION: Bumped to 2.7.99.
1389
13902005-03-06  Andy Wingo  <wingo@pobox.com>
1391
1392	* gnome/gw/support/defs.scm: Don't make generics if the of-object
1393	is an enum, flags, boxed, or custom boxed. This is a nasty nasty
1394	hack to make sure generics aren't created with unspecialized args,
1395	to prevent e.g. (foo-append <top> <top>) -> (append <top> <top>).
1396
13972005-01-29  Andreas Rottmann  <a.rottmann@gmx.at>
1398
1399	* gnome/gw/support/gobject.scm (make-typespec): Make the methods
1400	specialized on <gobject-enum-type>, <gobject-boxed-type> and
1401	<gobject-custom-boxed-type> add the 'unspecialized option to the
1402	created typespec (needed for G-Wrap 1.9.4).
1403
14042005-01-11  Andy Wingo  <wingo@pobox.com>
1405
1406	* == Released platform version 2.7.98 ==
1407
14082005-01-11  Andy Wingo  <wingo@pobox.com>
1409
1410	* VERSION: Bumped to 2.7.98.
1411
14122004-12-06  Andy Wingo  <wingo@pobox.com>
1413
1414	* VERSION: Bumped.
1415
1416	* == Released platform version 2.7.97 ==
1417
1418	* gnome/gobject/gvalue.c (scm_c_register_gvalue_wrappers):
1419	DAMMMIT, g_int_hash doesn't do what you think it does!
1420
14212004-12-05  Andy Wingo  <wingo@pobox.com>
1422
1423	* gnome/gw/support/gobject.scm (wrap-custom-boxed!): New exported
1424	macro, replaces wrap-custom-pointer! and custom-wrapper-decls.
1425	(<gobject-custom-boxed-type>, gen-c-tmp, global-definitions-cg)
1426	(global-declarations-cg, initializations-cg, make-custom-wrapper)
1427	(make-custom-unwrapper, unwrap-value-cg, wrap-value-cg): Support
1428	for the new custom wrapper. Will create GValue wrapper functions,
1429	use them from the wrap/unwrap procedures, and registers them with
1430	gvalue.c.
1431
1432	* gnome/gobject/gvalue.c (s_scm_gvalue_primitive_get)
1433	(scm_c_gvalue_to_scm, s_scm_gvalue_to_scm): Remove casts to
1434	GTypeInstance.
1435
1436	* gnome/gobject/gtype.c (scm_c_make_gtype_instance)
1437	(scm_gtype_instance_free, scm_gtype_instance_print)
1438	(sink_type_instance, scm_register_gtype_instance_sinkfunc)
1439	(scm_c_gtype_instance_to_scm, scm_c_make_gtype_instance)
1440	(guile_gobject_log_handler)
1441	(scm_c_scm_to_gtype_instance, scm_c_gtype_instance_to_scm): Use
1442	gpointer instead of GTypeInstance* as the type declaration, since
1443	we never actually deal with GTypeInstance, only their subclasses.
1444	Eliminates the need for many casts, because we have to check at
1445	runtime anyway.
1446
14472004-12-02  Andy Wingo  <wingo@pobox.com>
1448
1449	* gnome/gobject/utils.scm (gnome): Export GStudlyCapsExpand so
1450	that (gnome gw support gobject) can use it.
1451
1452	* gnome/gobject/gvalue.c (s_scm_scm_to_gvalue)
1453	(s_scm_gvalue_to_scm): Use the new gvalue wrappers as appropriate.
1454	(scm_c_register_gvalue_wrappers): New procedure, registers a pair
1455	of procedures to make a custom mapping between scheme values and
1456	gvalues.
1457
14582004-11-29  Andy Wingo  <wingo@pobox.com>
1459
1460	* gnome.scm.in (gnome): Define the module before resolving it, so
1461	as to avoid guile 1.6 trying to load a binary module. Thanks to
1462	David Pirotte for the bug report. Define the version as
1463	`gnome-version' because the core already exports `version'.
1464	(add-to-load-path!): New proc, tries to order environment-variable
1465	load paths first so that hacking the load path during compilation
1466	works.
1467
14682004-11-21  Andy Wingo  <wingo@pobox.com>
1469
1470	* examples/Makefile.am (EXTRA_DIST): Dist all scm files.
1471
14722004-11-16  Andy Wingo  <wingo@pobox.com>
1473
1474	* gnome/gw/glib-support.c: Indentation, only get iochannel_type
1475	when the func is first called.
1476
14772004-11-15  Andy Wingo  <wingo@pobox.com>
1478
1479	* gnome/gw/glib-support.c: Fix includes.
1480	(scm_init_glib): Lookup the iochannel type when glib is
1481	initialized.
1482	(g_io_func): Don't lookup the type all the time.
1483
14842004-10-30  Jan Nieuwenhuizen  <janneke@gnu.org>
1485
1486	* examples/fifo.scm: Update.
1487
1488	* gnome/gw/glib-support.scm: Add return parameter overrides (Rotty).
1489
1490	* gnome/gw/glib-support.c: Remove _wrap_g_io_channel_read_line wrapper.
1491
14922004-10-22  Jan Nieuwenhuizen  <janneke@gnu.org>
1493
1494	* examples/fifo.scm: New file.
1495
14962004-10-21  Jan Nieuwenhuizen  <janneke@gnu.org>
1497
1498	* gnome/gw/glib-support.c (_wrap_g_io_add_watch): New wrapper.
1499
1500	* gnome/overrides/glib.defs (g_io_add_watch): New override.
1501
15022004-11-15  Andy Wingo  <wingo@pobox.com>
1503
1504	* Makefile.am: Don't install into guile's path, just use $prefix.
1505
1506	* gnome.scm.in: Don't hack /usr/local. Add some comments.
1507
1508	* package.ac: Add record_check.
1509
15102004-11-13  Andy Wingo  <wingo@pobox.com>
1511
1512	* Makefile.am (EXTRA_DIST): Dist VERSION.
1513	* VERSION: New file.
1514
15152004-11-11  Andy Wingo  <wingo@pobox.com>
1516
1517	* gnome.scm.in (usr-local-hack): Fix..
1518
1519	* Makefile.am (guilesite): Argh, get the inst dir right.
1520
1521	* package.ac: Avoid readlink -f, be more portable.
1522
1523	* gnome.scm.in: New file, basically does what guile-gnome-0 does,
1524	but from within scheme.
1525
1526	* Makefile.am: Add rules so that gnome-$version.scm looks right
1527	both installed and uninstalled. Install to the system guile path,
1528	regardless of the $prefix of guile-gnome. Build . before subdirs.
1529
1530	* gnome/gw/glib-spec.scm (unwrap-value-cg): Whoops, fix parens.
1531
1532	* gnome/gw/support/defs.scm (type-lookup): Assume that the caller
1533	owns generated container types (i.e. GList) if 'const isn't set.
1534	Prevents some invalid frees, hanks to Patrick Bernaud for the
1535	report.
1536
1537	* gnome/gw/glib-spec.scm (unwrap-value-cg): Use destroy-value-cg
1538	to free the list after unwrapping.
1539
15402004-11-09  Andy Wingo  <wingo@pobox.com>
1541
1542	* gnome/gw/support/gobject.scm (custom-wrap-decls)
1543	(wrap-custom-pointer!): New exported macros, designed to simplify
1544	wrappings of c types represented by native scheme values.
1545
15462004-10-28  Andy Wingo  <wingo@pobox.com>
1547
1548	* defs-checks.ac: Versioned pkg-config check.
1549
1550	* Makefile.am (all-local): Versioned pkg-config files.
1551
1552	* examples/main-loop.scm:
1553	* examples/example-1.scm: Use guile-gnome-0.
1554
1555	* bin/guile-gnome.in (localpath): Add /usr/local include dirs to
1556	the guile loadpath, so that users aren't surprised when they have
1557	g-wrap installed in /usr/local/guile/site. A hack for guile 1.6.
1558
15592004-10-26  Andy Wingo  <wingo@pobox.com>
1560
1561	* package.ac (GUILE_GLIB_LIBS): Link to the versioned lib.
1562
1563	* guile-gnome-glib-uninstalled.pc.in, guile-gnome-glib.pc.in: Link
1564	to the versioned lib.
1565
1566	* gnome/gobject/config.scm.in: New file, exports
1567	*guile-gnome-gobject-lib-path*.
1568
1569	* gnome/gobject/gobject.scm, gtype.scm, gvalue.scm,
1570	gparameter.scm, gsignal.scm, gclosure.scm: dynamic-link the path
1571	from (gnome gobject config).
1572
1573	* gnome/gobject/Makefile.am: Version the libguile-gnome-gobject
1574	lib. Make config.scm work in the source tree and in the
1575	installdir. Define GUILE_GOBJECT_DIR to be $guilegnomedir.
1576
1577	* bin/Makefile.am: New file. Will install a versioned
1578	guile-gnome-$apiversion into $bindir.
1579
1580	* bin/guile-gnome.in: New script, wraps guile with a munged load
1581	path for modules and libraries.
1582
1583	* Makefile.am (SUBDIRS): Add bin/.
1584
1585	* gnome/gw/Makefile.am (guilegnomelib_LTLIBRARIES): Install to
1586	versioned directory.
1587
15882004-10-12  Andreas Rottmann  <a.rottmann@gmx.at>
1589
1590	* shlib-dirs.ac: New file, to be used by dev-environ.
1591
15922004-10-14  Andy Wingo  <wingo@pobox.com>
1593
1594	* gnome/gobject/gvalue.c (s_scm_gvalue_primitive_set): For
1595	objects, interpret a #f value as NULL.
1596	(s_scm_gvalue_primitive_set): Bugfix: convert SCM return value of
1597	scm_list_p into a C boolean.
1598
1599	* gnome/gobject/gtype.c (scm_c_make_gtype_instance): Return #f if
1600	the instance argument is NULL.
1601
16022004-10-13  Andy Wingo  <wingo@pobox.com>
1603
1604	* gnome/gobject/gvalue.c (s_scm_gvalue_primitive_set): For
1605	objects, assert that the type is compatible with the GValue type.
1606
16072004-10-11  Andy Wingo  <wingo@pobox.com>
1608
1609	* gnome/gobject/gobject.scm (make-gobject-instance): Set the fluid
1610	%gobject_initargs to the init-keyword kwargs for the duration of
1611	the gobject-primitive-create-instance. This allows the call back
1612	into scheme for `initialize' to pass the kwargs. However, if (not
1613	 (scheme-gclass? class), call `initialize' manually. Also, in the
1614	error message, "No such s/property/property or init-keyword/ ...".
1615
1616	* gnome/gobject/gtype.scm (initialize): For <gtype-instance>, no
1617	need to provide a method that does nothing, and no need to avoid
1618	the <gobject> initialize method. Removed.
1619
1620	* gnome/gobject/gobject.h:
1621	* gnome/gobject/gobject.c (s_scm_scheme_gclass_p): New predicate,
1622	returns #t iff `class' is derived from within scheme. Normally it
1623	doesn't matter, but we want to avoid calling `initialize' twice on
1624	the instance.
1625	(scm_init_gnome_gobject): Initialize the _gobject_initargs_fluid
1626	to '(), define it for scheme.
1627	(scm_c_gtype_instance_instance_init): Call initialize with the
1628	proper initargs.
1629
16302004-10-10  Andy Wingo  <wingo@pobox.com>
1631
1632	* gnome/gobject/gtype.c (scm_c_gtype_instance_to_scm): Don't error
1633	out if ginstance is NULL, we're probably going to scheme anyway.
1634	Better to just return #f and stay quiet.
1635
1636	* gnome/gw/support/defs.scm (load-defs): Better error when a
1637	symbolic include isn't file isn't found.
1638
1639	* gnome/gobject/gsignal.scm (gtype-class-get-signal-names): Copy
1640	vector-map from gobject.scm.
1641
1642	* gnome/gw/glib-spec.scm (initialize): GTime -> int32.
1643
1644	* gnome/gobject/gvalue.[ch] (scm_c_gboxed_to_scm)
1645	(scm_c_dup_gboxed_to_scm): New helper functions. Take a pointer to
1646	an object along with its GType and return a SCM gvalue.
1647
16482004-10-09  Andy Wingo  <wingo@pobox.com>
1649
1650	* gnome/gw/support/gobject.scm (unwrap-value-cg, wrap-value-cg):
1651	Define c-var, scm-var, and gtype-id within the body of the
1652	wrap-pointer! value wrappers.
1653
16542004-10-07  Andy Wingo  <wingo@pobox.com>
1655
1656	* gnome/gw/support/defs.scm (construct-argument-list): Fail
1657	correctly if there is an unknown rest arg, but warn.
1658	(load-defs:scan-type!): Catch a throw to 'ignored. Get the ctype
1659	as a string, not a list of one element. Throw to 'ignored if the
1660	ctype is in the ignored-types list.
1661	(load-defs:ignore-types): New procedure, adds all of its arguments
1662	to the ignored types list.
1663	(load-defs): Add a hook to interpret ignore-types. Also interpret
1664	the form (include SYMBOL) to mean (include
1665	"gnome/overrides/BASENAME-SYMBOL").
1666
16672004-09-27  Andy Wingo  <wingo@pobox.com>
1668
1669	* test-suite/exceptions.scm, gnome/gw/Makefile.am
1670	* test-suite/test-gobject.c, examples/example-1.scm
1671	* test-suite/gw-glib.test, test-suite/gw-gobject.test
1672	* test-suite/gobject.test, test-suite/gw-test-gobject-spec.scm
1673	* test-suite/guile-gobject-test, test-suite/gw-test-glib-spec.scm
1674	* test-suite/test-glib.defs, test-suite/test-gobject.h: Added
1675	license blocks.
1676
16772004-09-19  Andy Wingo  <wingo@pobox.com>
1678
1679	* gnome/gw/Makefile.am (libgw_guile_gnome_glib_la_LIBADD): Not
1680	G_WRAP_LINK_ARGS, it's G_WRAP_LIBS.
1681
1682	* gnome/gobject/Makefile.am (libguile_gnome_gobject_la_LIBADD):
1683	Don't link to g-wrap.
1684
1685	* gnome/gobject/guile-support.h: Don't include
1686	g-wrap/guile-compatibility.h -- no reason to depend on g-wrap.
1687
1688	* guile-gnome-glib.pc.in (includedir): Point to the versioned
1689	directory.
1690
1691	* gnome/gobject/Makefile.am: Install headers to a versioned
1692	directory.
1693
16942004-09-16  Andy Wingo  <wingo@pobox.com>
1695
1696	* Makefile.am (SUBDIRS): Dist fixes.
1697
1698	* README: Added.
1699
1700	* NEWS: All pre-guile-gnome stuff elided.
1701
1702	* NEWS.guile-gobject: Added the old news here.
1703
17042004-09-15  Andy Wingo  <wingo@pobox.com>
1705
1706	* gnome/gw/support/defs.scm (load-defs): Ignore varargs functions,
1707	like we used to before the rewrite.
1708
17092004-09-12  Andy Wingo  <wingo@pobox.com>
1710
1711	* gnome/gobject.scm: Real keywords, avoid deprecated modules.
1712
1713	* gnome/glib.scm: Real keywords, avoid deprecated modules.
1714
1715	* gnome/gw/gobject-spec.scm (gnome, gnome): Adapt to new module
1716	names.
1717
1718	* package.ac (GUILE_GLIB_LIBS): Use readlink, not realpath, for
1719	portability.
1720
17212004-09-08  Andy Wingo  <wingo@pobox.com>
1722
1723	* AUTHORS: Updated.
1724
1725	* NEWS: Updated, and put in a more Guile-like format.
1726
1727	* TODO: Removed many items.
1728
17292004-09-07  Andy Wingo  <wingo@pobox.com>
1730
1731	* gnome/gw/support/defs.scm (load-defs): Change out a `cond' with
1732	a series of and=> statements. Fixes some problems.
1733
17342004-09-06  Andy Wingo  <wingo@pobox.com>
1735
1736	* Makefile.am: Er, it's not in this module. I'm stupid.
1737
1738	* Makefile.am: Install the -defs pkg-config file.
1739
17402004-09-05  Andy Wingo  <wingo@pobox.com>
1741
1742	* gnome/gobject/Makefile.am (CLEANFILES): Clean the .x files.
1743
1744	* package.ac (GUILE_GLIB_CFLAGS): Include the builddir's gobject
1745	dir as well.
1746
1747	* gnome/gw/Makefile.am (libgw_guile_gnome_gobject_la_CFLAGS): Add
1748	the builddir to the CFLAGS as well: the link is placed in the
1749	builddir.
1750
1751	* package.ac: Fix the link creation for non-srcdir builds.
1752
1753	* gnome/overrides/Makefile.am, gnome/Makefile.am: Add the
1754	overrides to the dist.
1755
1756	* package.ac: Create the gnome/gobject/guile-gnome-gobject link
1757	when config.status is created.
1758
1759	* guile-gnome-glib.pc.in, guile-gnome-glib-uninstalled.pc.in:
1760	Moved from guile-gobject*.pc.in.
1761
1762	* gnome/overrides/glib.defs: Moved from glib-overrides in the defs
1763	module. Otherwise unchanged.
1764
1765	* defs-checks.ac: New file. We depend on the defs module.
1766
1767	* For each of the files below, deprecated versions were left in
1768	the original locations.
1769
1770	* gnome/gw/support/modules.scm: Moved from (gnome gobject
1771	gw-utils). Otherwise unchanged.
1772
1773	* gnome/gw/support/gobject.scm: Moved from (gnome gobject
1774	gw-spec-utils). Otherwise unchanged.
1775
1776	* gnome/gw/support/defs.scm: Moved from (gnome gobject
1777	defs-support). The parser was rewritten as an interpreter, rather
1778	than using guile as the interpreter.
1779	(load-defs): Take an optional argument, overrides, which should be
1780	the path within %load-path of the overrides file. Handle (ignore
1781	overrides).
1782	(load-defs-with-overrides): New procedure, wraps load-defs.
1783
17842004-07-28  Andreas Rottmann  <a.rottmann@gmx.at>
1785
1786	* gnome/gw/glib-spec.scm (make-typespec): Use raise instead of throw.
1787
1788	* gnome/gw/glib-spec.scm: Adapt for destruct-value-cg ->
1789	destroy-value-cg G-Wrap API change.
1790
17912004-08-29  Andy Wingo  <wingo@pobox.com>
1792
1793	* gnome/gobject/gclosure.c (%scm-gclosure-marshal): A non-NULL
1794	return_value of type G_TYPE_NONE or G_TYPE_INVALID does not need
1795	to be filled.
1796
17972004-09-14  Andy Wingo  <wingo@pobox.com>
1798
1799	* gnome/gw/glib-spec.scm: Wrap unsigned-char.
1800
18012004-07-28  Andreas Rottmann  <a.rottmann@gmx.at>
1802
1803	* gnome/gw/glib-spec.scm (make-typespec): Use raise instead of throw.
1804
1805	* gnome/gw/glib-spec.scm: Adapt for destruct-value-cg ->
1806	destroy-value-cg G-Wrap API change.
1807
18082004-08-29  Andy Wingo  <wingo@pobox.com>
1809
1810	* gnome/gobject/gclosure.c (%scm-gclosure-marshal): A non-NULL
1811	return_value of type G_TYPE_NONE or G_TYPE_INVALID does not need
1812	to be filled.
1813
18142004-07-18  Andy Wingo  <wingo@pobox.com>
1815
1816	* gnome/gw/glib-spec.scm (<glist-of-type>): Added #:type-cname and
1817	#:func prefix slots, so that <glist-of-type> can be used for
1818	slists as well. The wrap/destruct methods were changed
1819	accordingly, and "GSList*" now maps to the gslist-of type.
1820
18212004-07-11  Andy Wingo  <wingo@pobox.com>
1822
1823	* gnome/gobject/gvalue.scm (gtype-instance:write): Use logand, not
1824	logior for flags.
1825
18262004-07-07  Andy Wingo  <wingo@pobox.com>
1827
1828	* gnome/gw/gobject-spec.scm (unwrap-value-cg): Whoops, call
1829	wrapped-var on the right thing.
1830
1831	* gnome/gobject/gw-spec-utils.scm (unwrap-value-cg): For enums and
1832	flags, use scm_scm_to_gvalue() instead of rolling our own
1833	conversion. Also fixes problems when the current module doesn't
1834	import GOOPS.
1835
18362004-07-06  Andy Wingo  <wingo@pobox.com>
1837
1838	* gnome/gw/gobject-spec.scm: Same.
1839
1840	* gnome/gobject/gw-spec-utils.scm: Make sure that gw:error is
1841	passed the wrapped var, not the scm var -- they are of different
1842	types.
1843
18442004-07-01  Andreas Rottmann  <a.rottmann@gmx.at>
1845
1846	* gnome/glib.scm: Include #:use-module (gnome gobject) before the
1847	generated wrapsets (fixes segfault).
1848
1849	* gnome/gobject/gw-spec-utils.scm (unwrap-null-check): Bugfix;
1850	conversion code was always executed, even when null-ok and the
1851	pointer actually was NULL. This is now named unwrap-null-checked
1852	and takes the actual unwrap code as extra parameter.
1853
18542004-06-30  Andy Wingo  <wingo@pobox.com>
1855
1856	* gnome/gobject/gtype.c (scm_gtype_instance_print): Same bug.
1857
1858	* gnome/gobject/gvalue.c (scm_gvalue_print): I got bit by !SCM.
1859	Use SCM_FALSEP instead.
1860
1861	* gnome/gobject/gtype.c: Yikes, somehow Martin's copyright notice
1862	got lost in the file split! Put back on all files.
1863
1864	* gnome/gobject/gvalue.c (scm_gvalue_print): Indentation fix.
1865
18662004-06-24  Andreas Rottmann  <a.rottmann@gmx.at>
1867
1868	* test-suite/guile-gobject-test: Include (gnome gobject) in
1869	use-modules before the generated wrapset (fixes segfault).
1870
1871	* gnome/gw/glib-spec.scm, gnome/gw/gobject-spec.scm,
1872	* test-suite/gw-test-gobject-spec.scm,
1873	* test-suite/gw-test-glib-spec.scm: Adapted for G-Wrap "depends-on!"
1874	API change.
1875
18762004-05-19  Andy Wingo  <wingo@pobox.com>
1877
1878	* ChangeLog: All changelogs have been merged, and the entries that
1879	don't deal with the GLib/GObject wrapper have been elided. Some
1880	directories were corrected.
1881
1882	* gnome/gobject/gparameter.scm (gnome): Export gparameter: limits.
1883
1884	* gnome/gobject/gparameter.c (scm_init_gnome_gobject_parameters):
1885	Changed gruntime:int-max and friends to be gparameter:int-max,
1886	etc.
1887
1888	* Makefile.am, files.ac, guile-gobject-uninstalled.pc.in: Revive
1889	this pkg-config file. See pkg-config(1) for more info.
1890
1891	* gnome/gobject/gw-spec-utils.scm: Wrap GObjectClass. This is used
1892	in GStreamer, at least, and should be used in GTK.
1893
1894	* gnome/gw/Makefile.am: Don't link the glib wrapper to the gobject
1895	runtime, there's no need.
1896
18972004-05-15  Andy Wingo  <wingo@pobox.com>
1898
1899	* gnome/gobject/gtype.c (scm_c_gtype_to_class): Try to prevent a
1900	rount-trip to SCM by calling scm_c_lookup_class first.
1901
1902	* gnome/gobject/gw-spec-utils.scm (unwrap-value-cg for enums and
1903	flags): Use scm_c_gtype_to_class instead of lookup_class, because
1904	with latent bindings the class might not exist yet.
1905
19062004-05-14  Andy Wingo  <wingo@pobox.com>
1907
1908	* gnome/gobject/gtype.c (scm_gtype_to_class): Now exported as part
1909	of the C API (formerly static SCM _gtype_to_class).
1910
19112004-05-10  Andy Wingo  <wingo@pobox.com>
1912
1913	* test-suite/gobject-primitives.test: Removed, this interface is
1914	no longer exported. Yay!
1915
19162004-05-09  Andy Wingo  <wingo@pobox.com>
1917
1918	* gnome/gobject/gw-gobject-spec.scm (ws): Don't wrap gtype
1919	functions. I'm trying to move away from unnecessary g-wrap usage.
1920
1921	* gnome/gobject/gtype.c (s_scm_gtype_to_class_name,
1922	s_scm_gtype_to_method_name): Implemented in scheme now.
1923
1924	* gnome/gobject/gw-spec-utils.scm: removed the type name mangling
1925	code, going to put it in types.scm.
1926
1927	* gnome/gobject/gtype.c (s_scm_gtype_children): Changed to return
1928	a list instead of a vector.
1929
1930	* gnome/gobject/gparameter.c (s_scm_gparam_spec_p): Removed, it
1931	wasn't used anywhere. (s_scm_gparam_primitive_create): Doesn't
1932	pre-cache the param struct any more -- should be constructed on
1933	demand, i.e. when gparam->param-struct is called.
1934
19352004-05-04  Andreas Rottmann  <a.rottmann@gmx.at>
1936
1937	* gnome/gw/glib-support.c, glib-support.c
1938	(_wrap_g_string_get_str): New function.
1939
19402004-04-30  Andreas Rottmann  <a.rottmann@gmx.at>
1941
1942	* package.ac: Depend on glib-2.0 >= 2.4.0.
1943
19442004-04-27  Andreas Rottmann  <a.rottmann@gmx.at>
1945
1946	* gnome/gw/Makefile.am: Also distribute and install glib.scm.
1947
1948	* gnome/gw/glib-spec.scm (initialize): Added a few type aliases
1949	for basic C types. Fixed for changed defs directory.
1950
19512004-04-12  Andreas Rottmann  <a.rottmann@gmx.at>
1952
1953	* h2def.py: Quick hack to fix G_*_DECLS misparsing.
1954
19552004-04-11  Andy Wingo  <wingo@pobox.com>
1956
1957	* gnome/gobject/defs-support.scm (load-defs): Cope with slib 3
1958	(and hopefully 2 as well) by changing the glob:match?? call to
1959	glob:make-matcher.
1960
19612004-04-03  Andreas Rottmann  <a.rottmann@gmx.at>
1962
1963	* gnome/gobject/defs-support.scm (type-lookup): Recognize "[]" in
1964	type strings and treat it like a pointer.
1965
19662004-04-03  Andreas Rottmann  <a.rottmann@gmx.at>
1967
1968	* configure.in: Depend on libgnomeui >= 2.6.0 and gtk+ >= 2.4.0.
1969
19702004-04-02  Andreas Rottmann  <a.rottmann@gmx.at>
1971
1972	* gnome/gobject.scm (gtype-instance:write): Typo fix: logor ->
1973	logior.
1974
19752004-03-29  Andreas Rottmann  <a.rottmann@gmx.at>
1976
1977	* test-suite/Makefile.am (libgw_test_gobject_la_LIBADD): Link
1978	against core instead of wrapset.
1979
19802004-03-29  Andreas Rottmann  <a.rottmann@gmx.at>
1981
1982	* guile-gobject.pc.in, guile-gobject-uninstalled.pc.in: Moved to
1983	gnome/gobject, where they belong. Makefiles adapted.
1984
1985	* guile-gobject.pc.in (Libs): Link against against the core
1986	support code, not a wrapset. Remove have_gtk= line and FIXME
1987	comment, since these do not fall in the realm of pkg-config (no
1988	headers or regular shared libs installed). *
1989	guile-gobject-uninstalled.pc.in: Ditto.
1990
19912004-03-28  Andreas Rottmann  <a.rottmann@gmx.at>
1992
1993	* gnome/gobject/defs-support.scm (load-defs): The glob:* functions
1994	are not existant anymore in SLIB3, and were aliased to filename:*
1995	anyway.
1996
19972004-03-26  Andreas Rottmann  <a.rottmann@gmx.at>
1998
1999	* gnome/gobject.scm (gtype-class-define-signal): Use
2000	procedure->memoizing-macro instead of procedure->macro, which is
2001	deprecated.
2002
20032004-02-22  Andy Wingo  <wingo@pobox.com>
2004
2005	* gnome/gobject/guile-gnome-gobject.c (s_scm_gobject_get_data)
2006	(s_scm_gobject_set_data_x): Use SCM_UNBOUND to indicate an unbound
2007	slot.
2008
20092004-02-22  Andy Wingo  <wingo@pobox.com>
2010
2011	* gnome/gobject.scm (make-gparam-instance): Make params (read
2012	write) by default. (make-gobject-instance): Allow keyword initargs
2013	that are defined via :init-keyword. Call the <object> initializer
2014	directly to set these. Somewhat hacky, but doesn't really break
2015	any rules. (scm->gvalue): Work with closures.
2016
20172004-02-21  Andy Wingo  <wingo@pobox.com>
2018
2019	* gnome/gobject.scm (gtype-instance:write): If we get a GValue
2020	from somewhere else, the "primitive" code doesn't know how to make
2021	the class. So we have a new hacky method to accept a gtype as the
2022	arg and do the gtype->class in gobject.scm now.
2023
20242004-02-12  Andy Wingo  <wingo@pobox.com>
2025
2026	* gnome/gobject/guile-gnome-gobject-primitives.c
2027	(guile_gobject_log_handler): Handle a NULL for log_domain.
2028
2029	* gnome/gobject/primitives.scm (gparam-spec-type-args): Add a pair for
2030	GParamValueArray, but there's probably more work to do before you
2031	can make the param in scheme.
2032
2033	* gnome/gobject/guile-gnome-gobject-primitives.h: GuileGClosure
2034	struct moved to the .c file to make it private.
2035
2036	* gnome/gobject/guile-gnome-gobject-primitives.c
2037	(scm_c_debug_print): Removed. (scm_c_get_enum): Removed.
2038	(scm_c_make_genum): Removed.
2039
2040	* gnome/gobject/guile-gnome-gobject-primitives.h: No more
2041	exporting (as C api) gparam-primitive-create-pspec-struct.
2042
2043	* gnome/gobject/guile-gnome-gobject-primitives.c
2044	(s_scm_gvalue_primitive_set): Accept object and interface types as
2045	well. (s_scm_gtype_instance_primitive_to_value): Replaced by
2046	gvalue-primitive-new then gvalue-primitive-set.
2047	(s_scm_gvalue_primitive_set): Also handle gboxed-scm.
2048	(s_scm_gvalue_primitive_get): Handle gboxed-scm.
2049	(s_scm_gboxed_scm_primitive_new): Removed, now redundant.
2050	(s_scm_gboxed_scm_primitive_to_scm): Same.
2051	(s_scm_gtype_is_basic_p): Changed name to include -is and remove
2052	-primitive, like the standard GLib functions. Documented what a
2053	basic type is. (s_scm_gtype_is_basic_p): Boxed SCM is a basic
2054	type. (s_scm_gtype_is_valued_p): New function. Predicate that's
2055	true when you can make a GValue with (make class :value val).
2056	(scm_gvalue_array_primitive_new): Remove, just use
2057	gvalue-primitive-new. (scm_gvalue_array_primitive_append):
2058	Removed. There are no value array manipulation procedures any
2059	more. Use gvalue-primitive-set with a list as the argument.
2060
2061	* gnome/gobject/primitives.scm (gflags->element-list): Replace
2062	gflags-primitive-bit-set?.
2063
2064	* gnome/gobject/guile-gnome-gobject-primitives.c
2065	(s_scm_gvalue_primitive_set_enum): Functionality moved to
2066	gvalue-primitive-set. (s_scm_gvalue_primitive_set): Accept enum
2067	and flags types. (s_scm_gvalue_primitive_set_flags): Removed, like
2068	set-enum. (s_scm_gflags_primitive_bit_set_p): Removed, it's the
2069	same as (positive? (logand value bit)).
2070
2071	* gnome/gobject/guile-gnome-gobject-primitives.h
2072	(scm_gtype_instance_primitive): Undefined function, somehow in the
2073	API? Removed. (scm_sys_gtype_instance_primitive_destroy_x): Since
2074	we export it to scheme, we can export it to C.
2075
2076	* gnome/gobject/guile-gnome-gobject-primitives.c
2077	(genum_type_get_values): Changed name, from
2078	genum_primitive_get_values. (s_scm_gflags_type_get_values): Same.
2079	(scm_init_gnome_gobject_primitives): Organized and documented
2080	export list. The source file could also use such a reorganization.
2081	(s_scm_gtype_primitive_create_basic_instance): Removed, it does
2082	the same thing as gvalue-primitive-new.
2083
2084	* gnome/gobject/guile-gnome-gobject-primitives.h
2085	(scm_tc16_gvalue_array): Gone.
2086
2087	* gnome/gobject/guile-gnome-gobject-primitives.c
2088	(scm_gvalue_array_primitive_new): Just allocate GValueArray as a
2089	standard boxed type. (scm_gvalue_array_print): Removed, use just
2090	normal GValue printing. (scm_gvalue_array_free): Removed, no more
2091	tc16_gvalue_array.
2092
20932004-02-12  Andy Wingo  <wingo@pobox.com>
2094
2095	* gnome/gobject.scm (scm->gvalue): Add a case for setting flags.
2096	(allocate-instance): Use gvalue-primitive-new for basic types.
2097	(gvalue->scm, scm->gvalue): Simplifications based on basic types.
2098	All over: adapt to primitives changes.
2099
21002004-02-08  Andy Wingo  <wingo@pobox.com>
2101
2102	* gnome/gobject/primitives.scm (genum->value): New public function.
2103	(genum->value-table): Removed. Use genum-class->value-table from
2104	gobject.scm.
2105
2106	* gnome/gobject/guile-gnome-gobject-primitives.c
2107	(scm_c_make_gvalue): Add some more debugging.
2108
2109	* gnome/gw/glib-support.h: Add copyright notice. Still need to
2110	change all these to FSF.
2111
21122004-02-08  Andy Wingo  <wingo@pobox.com>
2113
2114	* gnome/gobject.scm: Removed most of the commentary. Instead,
2115	refer to the tutorial.
2116
2117	(exports): No more genum->value-table. New functions
2118	genum-class->value-table, gflags-class->value-table. New function
2119	genum->value. (initialize for <gtype-class>): Allow subclassing of
2120	<genum> and <gflags> to create new GTypes. You must pass #:vtable
2121	as an initarg. (gtype-instance-primitive): New helper (private).
2122	(initialize for <gclosure>): Allow either parameters and return
2123	val to be either <gtype> or <gtype-class> instances. If no return
2124	type is specified, set the slot to gtype:void, not #f.
2125	(make-pspec-args): Accept <gtype-class> when gtype? is the
2126	predicate. (gtype-class-create-signal): Accept <gtype-class>
2127	instances in the param types.
2128
21292004-01-29  Andy Wingo  <wingo@pobox.com>
2130
2131	* gnome/gobject/defs-support.scm (load-defs): Parse a (callee-owned)
2132	option in parameter definitions.
2133
2134	* gnome/gw/gw-gobject-spec.scm (GValue wrapping): Support
2135	'callee-owned values.
2136
2137	* gnome/gobject/gw-spec-utils.scm (gobject:gwrap-boxed): Support
2138	'callee-owned arguments (call g_value_dup_boxed instead of
2139	_get_boxed).
2140
21412004-01-28  Andy Wingo  <wingo@pobox.com>
2142
2143	* gnome/gw/gw-gobject-spec.scm (ws): Check for a NULL return for
2144	GValues.
2145
21462004-01-22  Andreas Rottmann  <a.rottmann@gmx.at>
2147
2148	* gnome/gobject/guile-gnome-gobject-primitives.c
2149	(s_scm_gvalue_array_primitive_new)
2150	(s_scm_gvalue_array_primitive_append): Don't wrap SCM_DEFINE
2151	invocation too much, since it seems to confuse older snarfers.
2152
21532004-01-22  Andreas Rottmann  <a.rottmann@gmx.at>
2154
2155	* configure.in: Check for GLib >= 2.2.0, since 2.1.X has no
2156	g_{set,get}_application_name.
2157
2158	* configure.in: Use pkg-config to check for g-wrap.
2159
21602004-01-20  Andreas Rottmann  <a.rottmann@gmx.at>
2161
2162	* guile-gobject.pc.in: Require g-wrap and drop @GUILE_LIBS@.
2163
2164	* autogen.sh: Require automake 1.7.
2165
21662004-01-20  Andreas Rottmann  <a.rottmann@gmx.at>
2167
2168	* gnome/gobject/defs-support.scm (load-defs): The glob:* functions are
2169	not existant anymore in SLIB3, and were aliased to filename:*
2170	anyway.
2171
21722004-01-14  Andy Wingo  <wingo@pobox.com>
2173
2174	* gnome/gobject/primitives.scm (<gtype-instance-class>): There's no
2175	special get-n-set here any more, that's done with qdata. See
2176	gobject.scm for more details.
2177
2178	* gnome/gobject/gw-spec-utils.scm (gobject:gwrap-object): Don't ref
2179	returned objects here, only unref them if we own them. This
2180	complements the change in make_gtype_instance.
2181	(gobject:gwrap-interface): Same.
2182
2183	* gnome/gobject/guile-gnome-gobject.c (s_scm_gobject_set_data_x,
2184	s_scm_gobject_get_data): New functions implementing object
2185	properties using qdata so the state persists for all wrappers.
2186	(scm_c_gobject_get_property): Use scm_c_gtype_instance_to_scm to
2187	get the object -- will retrieve a cached object.
2188	(scm_c_gobject_set_property): Same. (remove_object_quark,
2189	free_object_quark): Removed.
2190	(s_scm_sys_function_to_method_public): Set the generic's name. A
2191	bit slower, but necessary for debugging.
2192
2193	* gnome/gobject/guile-gnome-gobject-primitives.c
2194	(s_scm_gclosure_primitive_new): Make free_closure the invalidate
2195	notifier, not the finalize notifier.
2196	(s_scm_gclosure_primitive_new): Don't actually hold a ref on the
2197	closure by using g_value_set_static_boxed. This is to compensate
2198	for an over-conservative GC. (everywhere): Add some more debugging
2199	printouts (not enabled by default). (scm_gtype_instance_free):
2200	Remove vestigial finalize_func code, set the SMOB's data to NULL,
2201	and remove cached wrapper info. Can be called multiple times.
2202	(s_scm_sys_gtype_instance_primitive_destroy_x): New function,
2203	analogous to gtk_object_destroy, called by gtk.scm in response to
2204	the ::destroy signal. (line 710): A couple of pages of comment on
2205	the design of the GObject wrapper. (scm_c_make_gtype_instance):
2206	Check for a cached wrapper before sinking object. Cache the
2207	primitive wrapper separately from the GOOPS wrapper. Actually ref
2208	the object, in accordance with the design doc. Ref params too.
2209	(s_scm_gobject_primitive_get_properties): Don't ref the param
2210	here, it's done in make_gtype_instance.
2211	(s_scm_gparam_primitive_create): Remove floating reference, still
2212	holding the one from make_gtype_instance.
2213	(s_scm_gobject_primitive_create_instance): Remove extra ref on
2214	object, as we own the one given by g_object_new. Cache the
2215	wrapper. (s_scm_gvalue_primitive_get): Don't ref the objects or
2216	params here, it's done in make_gtype_instance.
2217
22182004-01-14  Andy Wingo  <wingo@pobox.com>
2219
2220	* gnome/gobject.scm (make-gobject-instance): Now a method so that
2221	<gtk-object> can implement explicit destruction. Exported.
2222	(<gobject-class>): New class whose get-n-set uses gobject-get-data
2223	and gobject-set-data! to implement instance-allocated slots.
2224	(gvalue->scm): Use %gtype-instance-value->scm to convert GObject
2225	GValues into GOOPS objects. An optimization to prevent excessive
2226	allocation and reffing.
2227
22282004-01-14  Andy Wingo  <wingo@pobox.com>
2229
2230	* WARTS: You've been able to subclass with define-class for a
2231	while now...
2232
22332004-01-13  Andy Wingo  <wingo@pobox.com>
2234
2235	* gnome/gobject/guile-gnome-gobject.c
2236	(scm_c_scm_to_gtype_instance): Error if the SMOB's data is NULL
2237	(meaning the object has been destroyed).
2238	(scm_c_gtype_instance_to_scm): Cache return values as qdata on the
2239	objects. The qdata is removed when the SMOB is freed.
2240	(s_scm_sys_gtype_instance_value_to_scm): New function. An
2241	optimization so that callbacks can use existing object wrappers.
2242
2243	* gnome/gobject/gw-utils.scm: Remove re-export-bindings in favor of
2244	re-export-module. Add a copyright notice.
2245
22462003-12-30  Andreas Rottmann  <a.rottmann@gmx.at>
2247
2248	* gnome/gobject/guile-gnome-gobject-primitives.c
2249	(scm_c_make_gtype_name) (s_scm_gtype_primitive_get_signals):
2250	Plugged memory leaks.
2251
22522003-12-17  Andreas Rottmann  <a.rottmann@gmx.at>
2253
2254	* TODO: Added entry on procedure->macro usage.
2255
22562003-12-13  Andreas Rottmann  <a.rottmann@gmx.at>
2257
2258	* gnome/gw/gw-glib-spec.scm (GSList): Initialize the c-var in the
2259	scm->c-ccg with NULL.
2260
22612003-12-13  Andreas Rottmann  <a.rottmann@gmx.at>
2262
2263	* gnome/gw/guile-support.h: Build upon g-wrap-compatibilty.h.
2264
22652003-12-09  Andy Wingo  <wingo@pobox.com>
2266
2267	* gnome/gobject/guile-gnome-gobject.c
2268	(scm_c_gtype_instance_instance_init): Switch on the type from the
2269	class, not the instance, as the instance's type changes in
2270	different phases of initialization. Check to see if we have a
2271	servant already before making another one. Fixes some bugs in
2272	doubly-derived gobject classes.
2273
2274	* gnome/gobject/guile-gnome-gobject-primitives.c
2275	(scm_c_make_gtype_instance): Sink objects after checking to see if
2276	we have a wrapper.
2277
22782003-12-07  Andreas Rottmann  <a.rottmann@gmx.at>
2279
2280	* gnome/gobject/guile-gnome-gobject-primitives.h
2281	(scm_init_gnome_gobject_helper): Added declaration.
2282
22832003-12-06  Andreas Rottmann  <a.rottmann@gmx.at>
2284
2285	* gnome/gobject/guile-gnome-gobject-primitives.c
2286	(guile_gobject_log_handler): Always issue error, even with NULL
2287	domain/message.
2288
22892003-12-03  Andy Wingo  <wingo@pobox.com>
2290
2291	* gnome/gw/gw-glib-spec.scm: Fixed some longstanding bugs,
2292	embarassingly enough related to the size of fundamental types.
2293	Also added gshort and gushort as types.
2294
22952003-12-03  Andreas Rottmann  <a.rottmann@gmx.at>
2296
2297	* gnome/gobject/guile-gnome-gobject-primitives.c
2298	(guile_gobject_log_handler): Protect against NULL arguments.
2299
23002003-12-02  Andreas Rottmann  <a.rottmann@gmx.at>
2301
2302	* gnome/gw/gw-glib-spec.scm (GError): Ignore null-ok typespec
2303	option (we always pass a pointer).
2304
23052003-11-30  Andreas Rottmann  <a.rottmann@gmx.at>
2306
2307	* gnome/gw/gw-glib-spec.scm: Register gshort and gushort type
2308	aliases.
2309
23102003-11-22  Andreas Rottmann  <a.rottmann@gmx.at>
2311
2312	* gnome/gw/Makefile.am: Use $(G_WRAP_LIBS) and $(G_WRAP_CFLAGS).
2313
2314	* gnome/gw/gw-glib-spec.scm: Adapted for new g-wrap. Implemented
2315	transparent GError handling (throw expection and hide argument).
2316
2317	* gnome/gobject/gw-spec-utils.scm, gw-gobject-spec.scm: Reworked for
2318	new g-wrap.
2319
2320	* gnome/gw/Makefile.am: Removed gw-standard sections. *
2321	gnome/gw/gw-standard-spec.scm: Removed, since g-wrap now has an
2322	up-to-date copy. All uses changed back to "(g-wrap
2323	gw-standard-spec)".
2324
2325	* gnome/gobject/guile-gnome-gobject.c, guile-gnome-gobject.h
2326	(scm_sys_function_to_method_public): Removed, functionality is now
2327	in g-wrap.
2328
2329	* gnome/gobject/guile-gnome-gobject.c, guile-gnome-gobject.h
2330	(g_type_from_instance, g_type_is_instantiatable)
2331	(g_type_is_classed): New macro-workalike functions.
2332
2333	* gnome/gw/glib-support.h: Added #include guards. *
2334	gnome/gw/glib-support.c: Quick-fixed to work with Guile 1.7.
2335
2336	* gnome/gw/guile-support.h (scm_gc_free): Fixed parameter list. *
2337	gnome/gobject/guile-gnome-gobject-primitives.c (scm_gvalue_free):
2338	Fix scm_gc_free() invocation.
2339
23402003-11-18  Andy Wingo  <wingo@pobox.com>
2341
2342	* gnome/gobject/guile-gnome-gobject-primitives.c
2343	(s_scm_gboxed_scm_primitive_to_scm): If the boxed value is NULL,
2344	we return SCM_UNSPECIFIED to prevent a segfault when the value is
2345	printed. (s_scm_gvalue_primitive_set): If we don't know how to
2346	handle the GValue, signal a wrong type arg on the GValue, not the
2347	value we are trying to set.
2348
23492003-11-09  Andy Wingo  <wingo@pobox.com>
2350
2351	* gnome/gobject/guile-gnome-gobject-primitives.c
2352	(s_scm_especify_metaclass_x): New function. Makes the metaclass of
2353	an existing GTypeClass more specific, hence the novel new word
2354	`especify'. Exists to hack around GOOPS' lack of class methods.
2355
23562003-11-08  Andy Wingo  <wingo@pobox.com>
2357
2358	* gnome/gobject.scm (make-instance): New implementation for
2359	gtype-instances. `initialize' for gobjects is now called by the
2360	gobject system, not by goops. For params and interfaces, it is the
2361	same as before. (gtype-instance:initialize): Gone, replaced by the
2362	normal `initialize'.
2363
23642003-11-06  Andy Wingo  <wingo@pobox.com>
2365
2366	* gnome/gobject/guile-gnome-gobject.c
2367	(s_scm_sys_function_to_method_public): Don't set the name keyword
2368	when making the generic, it's faster according to Andreas.
2369
23702003-11-01  Andy Wingo  <wingo@pobox.com>
2371
2372	* gnome/gobject/guile-gnome-gobject.[ch] (scm_c_gvalue_to_scm):
2373	This one is const now.
2374
2375	* gnome/gobject/guile-gnome-gobject-primitives.c
2376	(%scm-gclosure-marshal): Add some hacky prototypes to allow us to
2377	use scm_c_gvalue_to_scm in the marshaller.
2378
23792003-10-31  Andreas Rottmann  <a.rottmann@gmx.at>
2380
2381	* test-suite/guile-test-env: Drop support of Guile 1.3 and fix
2382	left-over g-wrap reference.
2383
2384	* test-suite/exceptions.scm: Renamed gruntime-wrong-number-of-args
2385	to wrong-number-of args again, since the exception in lib.scm is
2386	called wrong-num-args, so there is no conflict. Users adapted
2387	accordingly.
2388
2389	* test-suite/exceptions.scm: Get rid of out-of-range, as this is
2390	already in lib.scm.
2391
2392	* test-suite/gw-test-gobject-spec.scm: Depend on "gw-standard". *
2393	test-suite/test-gobject.h, test-gobject.c, test-gobject.defs,
2394	gw-gobject.test: Added method invocation testcase.
2395
23962003-10-29  Andy Wingo  <wingo@pobox.com>
2397
2398	* gnome/gobject.scm (initialize): Allow a single symbol again as a
2399	flags #:value.
2400
24012003-10-27  Andy Wingo  <wingo@pobox.com>
2402
2403	* gnome/gobject.scm (initialize): For <gflags>, if the #:value is
2404	an integer, process it correctly.
2405
24062003-10-26  Andy Wingo  <wingo@pobox.com>
2407
2408	* gnome/gw/gw-glib-spec.scm (gslist-of): Fix some const pointer
2409	warnings.
2410
2411	* gnome/gobject/gw-spec-utils.scm (gobject:gwrap-class): Use slot-ref,
2412	not slot-ref-using-class.
2413
2414	* gnome/gobject/guile-gnome-gobject-primitives.c
2415	(slot_definition_using_name): Removed.
2416
2417	* gnome/gobject/primitives.scm (define-with-docs): Renamed from
2418	define-public-with-docs, doesn't export the binding any more
2419	(let's just use the :export option when defining the module).
2420	(gruntime-debug): Removed. (%gruntime-debug): Removed.
2421
2422	* gnome/gobject/guile-gnome-gobject.c (scm_gobject_register_type):
2423	Removed. Just use (define foo (gtype-from-name name)).
2424	(scm_c_gtype_instance_class_init): Don't call the
2425	gobject:class-init, just initialize after you define your class.
2426	This prevents custom initialization of scheme classes further
2427	subclassed in C, but that's a corner case that is maybe better
2428	left out. (scm_sys_gobject_get_refcount): Only define if
2429	DEBUG_REFCOUNTING is defined.
2430	(scm_c_gtype_instance_instance_init): Only call
2431	gtype-instance:initialize (was :instance-init), not a specific one
2432	for gobject.
2433
24342003-10-26  Andy Wingo  <wingo@pobox.com>
2435
2436	* gnome/gobject.scm There were a lot of general cleanups and
2437	reorganizations here. The file should be more readable now.
2438
2439	(gobject-get-property): Not a method anymore. We don't want people
2440	mistakenly overriding this function (override gobject:get-property
2441	instead). (gobject-set-property): Same. (gobject:set-property):
2442	Added docstring. (gobject:get-property): Same. (<gobject>): No
2443	more servant properties. (gobject:instance-init): Gone, use
2444	gtype-instance:instance-init. (gobject:class-init): Gone,
2445	initialize after you make the class.
2446	(gobject-class:install-property): Gone, the C code does The Right
2447	Thing now. (gtype-instance:class-init): Gone, like
2448	gobject:class-init. (class-is-a?): Gone.
2449	(gobject-type-register-static): Gone. Use gtype-register-static if
2450	you want to, but subclassing should be good enough. (initialize):
2451	For <gvalue>, we never see closures, so we remove that piece of
2452	code.
2453
24542003-10-26  Andy Wingo  <wingo@pobox.com>
2455
2456	* examples/gobject/example-1.scm: Updated to the new
2457	property/signal/subclassing API.
2458
24592003-10-25  Andy Wingo  <wingo@pobox.com>
2460
2461	* gnome/gobject/primitives.scm (<gtype-instance-class>): A new
2462	metaclass descending from <gtype-class>. <gtype-instance> is now
2463	an instance of this class. (compute-get-n-set): For
2464	<gtype-instance-class>, overrides #:instance allocation to set
2465	properties on the <%gtype-instance> smob.
2466
2467	* gnome/gobject/guile-gnome-gobject.c (scm_gtype_eq_p): Removed.
2468	Just use eq?.
2469
24702003-10-25  Andy Wingo  <wingo@pobox.com>
2471
2472	* gnome/gobject.scm (get-direct-supers): Only add <gtype-instance>
2473	to the hierarchy if the type is instantiatable, not classed.
2474	(gobject-class-set-properties!): New function, split out of
2475	init-gobject class. (init-gobject-class): Expose slots described
2476	with #:param-spec options as gobject properties. (let-params):
2477	Removed, you can do all of this with GOOPS now.
2478	(make-gobject-property): Removed, GOOPS handles this now.
2479	(define-gobject-class): Removed, just use define-class.
2480	(initialize): For <gtype-class>, do most of the things we did in
2481	gtype->class here. If no #:gtype argument is passed, subclass the
2482	parent type. (gtype->class): Just make the class, no more voodoo
2483	here. (write): for <gparam>, don't try to write the pspec struct
2484	if it isn't set yet. (gtype-class-create-signal): Take a list of
2485	param types instead of a vector.
2486
24872003-10-25  Andreas Rottmann  <a.rottmann@gmx.at>
2488
2489	* test-suite/gobject.test: Fixed for recent API changes.
2490
24912003-10-25  Andreas Rottmann  <a.rottmann@gmx.at>
2492
2493	* gnome/gobject/guile-gnome-gobject-primitives.c
2494	(s_scm_gparam_primitive_create_pspec_struct,
2495	s_scm_gparam_primitive_create): GValue support for param specs. *
2496	gnome/gobject/guile-gnome-gobject-primitives.h
2497	(SCM_G_IS_PARAM_SPEC_VALUE_ARRAY): New macro.
2498
24992003-10-25  Andreas Rottmann  <a.rottmann@gmx.at>
2500
2501	* gnome/gobject.scm (scm->gvalue): Fixed wrt gvalue-array (recent
2502	changes broke this).
2503
25042003-10-24  Andreas Rottmann  <a.rottmann@gmx.at>
2505
2506	* test-suite/gobject.test: Comment out tests failing due to API
2507	regression.
2508
2509	* test-suite/Makefile.am: 'make distcheck' fixes.
2510
2511	* test-suite/test-gobject.c, test-gobject.h, test-gobject.defs,
2512	gw-test-gobject-spec.scm, gw-gobject.test: Testcase framework for
2513	wrapping, including test for GValue arrays.
2514
2515	* test-suite/guile-test-env: New shell script - runs guile with
2516	the right environment for the tests.
2517
2518	* test-suite/Makefile.am: New - we want to run the test-suite with
2519	'make check'.
2520
2521	* test-suite/guile-gobject-test: Also stolen from Guile CVS
2522	(guile-test) and adapted. * test-suite/lib.scm: Stolen from Guile
2523	CVS, as this is not installed.
2524
2525	* test-suite/exceptions.scm: New module, defines common
2526	exceptions.
2527
2528	* test-suite/gobject.test, gobject-primitives.test: Brought on par
2529	with the current API and molded into modules.
2530
25312003-10-24  Andreas Rottmann  <a.rottmann@gmx.at>
2532
2533	* gnome/gobject.scm (gclosure-invoke): Fixed for closures without
2534	return type.
2535
25362003-10-23  Andy Wingo  <wingo@pobox.com>
2537
2538	* gnome/gobject/guile-gnome-gobject.c (%gobject-get-property): Use
2539	scm->gvalue to process the return from gobject:get-property.
2540
25412003-10-23  Andy Wingo  <wingo@pobox.com>
2542
2543	* gnome/gobject.scm (gobject-get-property): Use gvalue->scm.
2544	(allocate-instance): Allocate GBoxedSCM instances in the
2545	<gtype-class> allocate-instance method. (let-params): #:name, not
2546	:name.
2547
25482003-10-22  Andy Wingo  <wingo@pobox.com>
2549
2550	* gnome/gobject/primitives.scm: The big changes! There's no more
2551	<gtype-class-meta>. (<set-once-class>): New metaclass implementing
2552	set-once slots. (<gtype-class>): Now a metaclass. Its metaclass is
2553	<set-once-class>, so it has set-once slots for gtype and
2554	gtype-class. All gtype classes are now instances of this
2555	metaclass. (<gtype-instance>): New class, has a set-once slot for
2556	the gtype-instance. Instance of <gtype-class>. Parent class of all
2557	instantiatable types (like <gobject>).
2558
2559	* gnome/gw/gw-gobject-spec.scm: New wrappers for gtype-is-classed?
2560	and gtype-is-instantiatable?.
2561
2562	* gnome/gobject/guile-gnome-gobject.h (SCM_GOBJECTP): Use new
2563	SUBCLASSP macro. (SCM_GOBJECT_CLASSP): Use SUBCLASSP macro.
2564	(SCM_VALIDATE_GOBJECT_CLASS_GET_TYPE): Get the gtype by a
2565	slot-ref, not a class-slot-ref.
2566
2567	* gnome/gobject/guile-gnome-gobject-primitives.h
2568	(SCM_GPARAM_SPEC_P): Allow SCM_BOOL_F for owner-type.
2569	(SCM_GTYPE_CLASS_SUBCLASSP): New macro.
2570
2571	* gnome/gobject/guile-gnome-gobject-primitives.c
2572	(s_scm_sys_gtype_bind_to_class): Re-set the 'signals slot on
2573	implemented interfaces after g_type_class_ref()ing an implementor.
2574	Hackery, but that's the GObject system for you!
2575	(scm_gtype_class_print): Print gtype-class smobs with a %.
2576	(s_scm_sys_gtype_bind_to_class): Set the gtype and gtype-class
2577	slots using slot-set!, in accordance with the new hierarchy. Also
2578	loop through the implemented interfaces to re-set 'gsignals,
2579	because they aren't there until after a g_type_class_ref () on an
2580	implementor. (s_scm_sys_get_struct_slot): Work on any instance.
2581	(s_scm_sys_set_struct_slot): Same.
2582	(s_scm_gtype_primitive_get_signals): Rename from
2583	gobject-primitive-get-signals, because it works on interfaces too.
2584	(s_scm_gtype_instance_primitive_signal_emit): Renamed.
2585	(s_scm_gtype_instance_primitive_signal_connect): Renamed.
2586
2587	* gnome/gobject/generics.scm (all functions): Updated to the new
2588	class hierarchy.
2589
2590	* gnome/gobject/guile-gnome-gobject.h
2591	(SCM_VALIDATE_GOBJECT_CLASS_COPY): Renamed to
2592	SCM_VALIDATE_GOBJECT_CLASS_GET_GTYPE, since that's what it
2593	actually does.
2594
25952003-10-22  Andy Wingo  <wingo@pobox.com>
2596
2597	* gnome/gobject.scm: (get-metaclass): Removed, we always use
2598	<gtype-class> as a metaclass. (gtype->class): Always use
2599	<gtype-class> as a metaclass. Add some initialization for
2600	interfaces, but this can't be completed until an implementor has
2601	been initialized as well. So the job is finished in
2602	%gtype-bind-to-class for implementors. (gtype-instance:write):
2603	Work on <%gtype-instance>. This will probably move somewhere else
2604	in the future. (gtype-instance:write): Why we have implementations
2605	for <gtype>s is unknown to me. These will likely be removed.
2606	(gtype-class-get-vector-slot): Robustified to deal with strange
2607	objects in the CPL (like interfaces).
2608	(gtype-instance-signal-emit): Name changed from
2609	gobject-signal-emit, because it can operate on any gtype-instance.
2610	(gtype-instance-signal-connect-data): Same.
2611	(gtype-instance-signal-connect): Same.
2612	(gtype-instance-signal-connect-after): Same.
2613	(gtype-class-create-signal): Same.
2614
26152003-10-22  Andreas Rottmann  <a.rottmann@gmx.at>
2616
2617	* gnome/gobject/guile-gnome-gobject-primitives.c,
2618	guile-gnome-gobject-primitives.h, guile-gnome-gobject.c: Implement
2619	GValue array support.
2620
2621	* gnome/gobject/guile-gnome-gobject-primitives.c
2622	(scm_c_make_gvalue) (scm_gvalue_free): Replaced deprecated
2623	scm_must_malloc/free invokations with scm_gc_malloc/free.
2624
2625	* gnome/gw/guile-support.h (SCM_VECTOR_REF, SCM_VECTOR_SET): New
2626	compat macros, to be used instead of SCM_VELTS(). (scm_gc_malloc,
2627	scm_gc_free): New compat macros, to be used instead of
2628	scm_must_malloc/free. (scm_gc_unregister_collectable_memory)
2629	(scm_gc_register_collectable_memory): New compat macros.
2630
26312003-10-21  Andy Wingo  <wingo@pobox.com>
2632
2633	* gnome/gobject/guile-gnome-gobject-primitives.c
2634	(scm_pre_init_gnome_gobject_primitives): Make the smob for
2635	GTypeClass called "%gtype-class" to avoid conflicts between the
2636	GOOPS smob class and the real wrapper class.
2637
2638	* gnome/gw/gw-gobject-spec.scm: New wrapped function:
2639	gtype-is-classed?.
2640
2641	* gnome/gobject/guile-gnome-gobject-primitives.c
2642	(scm_gtype_interfaces): New function, returns the interfaces
2643	implemented by a type. (scm_gtype_primitive_get_signals): Renamed
2644	from gobject-primitive-get-signals, although no code change is
2645	required.
2646
26472003-10-21  Andy Wingo  <wingo@pobox.com>
2648
2649	* gnome/gobject.scm: General reorganizations. (get-parent-types):
2650	Removed, we only have one direct parent now (as well as interfaces
2651	if they're not already there). (gtype-class-ancestry): Removed,
2652	all this information is already encapsulated in the class
2653	precedence list. (make-class-slots): Change the name of
2654	gobject-signals to gsignals, and add it to all classed GTypes.
2655	(gtype-ancestry): Removed, either get this from the class
2656	precedence list or loop on gtype-parent yourself.
2657	(init-gobject-class): Only store signals from the class itself in
2658	the gsignals slot. (gtype-class-get-signal-names): New function.
2659	(get-direct-supers): New function, replaces get-parent-types. I'm
2660	schizophrenic ;) (gtype->class): Also initialize GObject (dunno
2661	why this wasn't done).
2662
26632003-10-21  Andreas Rottmann  <a.rottmann@gmx.at>
2664
2665	* configure.in: Disable ORBit check, since the code needs internal
2666	API headers that are not installed by default.
2667
26682003-10-16  Andy Wingo  <wingo@pobox.com>
2669
2670	* gnome/gobject/gw-spec-utils.scm: Export
2671	gobject:gwrap-helper-with-class.
2672
26732003-10-15  Andy Wingo  <wingo@pobox.com>
2674
2675	* gnome/gobject/guile-gnome-gobject.c
2676	(scm_c_gtype_instance_instance_init): Only call the instance-inits
2677	with one argument, the object.
2678
26792003-10-15  Andy Wingo  <wingo@pobox.com>
2680
2681	* gnome/gobject.scm (gobject:instance-init): Remove class
2682	argument. (gtype-instance:instance-init): Remove class argument.
2683
26842003-10-13  Andy Wingo  <wingo@pobox.com>
2685
2686	* gnome/gobject/guile-gnome-gobject.c (scm_c_gvalue_to_scm): Copy
2687	the incoming GValue so that we have our own.
2688
26892003-10-13  Andy Wingo  <wingo@pobox.com>
2690
2691	* configure.in: -Wall always. -Werror unless you pass
2692	--disable-Werror. --disable-Wall is gone. Put in debugging symbols
2693	unless --disable-debug is passed.
2694
26952003-10-12  Andy Wingo  <wingo@pobox.com>
2696
2697	* gnome/gobject/guile-gnome-gobject.c (scm_c_scm_to_gvalue): New
2698	function, calls scm->gvalue. (scm_c_gvalue_to_scm): New function,
2699	calls gvalue->scm.
2700
2701	* gnome/gobject/gw-spec-utils.scm (gobject:gwrap-interface): Wrap
2702	interfaces properly, now that we use them.
2703
27042003-10-12  Andy Wingo  <wingo@pobox.com>
2705
2706	* gnome/gobject.scm (scm->gvalue): renamed from
2707	make-value-from-scm. Also deals with interfaces.
2708	(make-ginterface): Wrap interfaces using the standard
2709	goops<->GTypeInstance SMOB pairing. (exports): Export classes for
2710	<ginterface>, <gint64>, and <guint64>.
2711
27122003-10-12  Andy Wingo  <wingo@pobox.com>
2713
2714	* configure.in: We do -Wall by default (--disable-Wall to disable)
2715
27162003-10-11  Andy Wingo  <wingo@pobox.com>
2717
2718	* gnome/gobject/defs-support.scm (load-defs): Ignore .defs entries
2719	where there is a (varargs ...) line.
2720
2721	* gnome/gobject/guile-gnome-gobject.c
2722	(s_scm_sys_function_to_method_public): Some cleanups. Use the same
2723	coding style as the rest of the file. Use static variables to
2724	reference the-root-module and module-add!. Don't check to see if
2725	objects are actually classes, that's done by g-wrap now. We still
2726	have to make a new closure for the procedure, due to a bug in
2727	Guile 1.6.4.
2728
27292003-10-07  Kevin Ryde  <user42@zip.com.au>
2730
2731	* gnome/gobject/guile-gnome-gobject.c
2732	(scm_sys_function_to_method_public): Don't put variable
2733	declarations in the middle of the function, that's a c99-ism.
2734
27352003-10-01  Andy Wingo  <wingo@pobox.com>
2736
2737	* gnome/gobject/gw-spec-utils.scm: General cleanups all around...
2738	(GStudlyCapsExpand): New function, based on StudlyCapsExpand from
2739	slib's strcase.scm (public domain). Given a C type name, returns
2740	the appropriate scheme type name. Normally a lower case letter
2741	preceded by one capital letter forces a hyphenation before the
2742	capital letter: GSource => g-source, GtkIMContext =>
2743	gtk-im-context. However, a lower case letter preceded by exactly
2744	two capital letters that is not at the beginning of the string is
2745	treated specially: GtkHBox => gtk-hbox (like the C api).
2746	(glib:type-cname->symbol-alist): New alist of overrides for
2747	converting C type names to scheme names.
2748	(glib:type-cname->symbol): uses GStudlyCapsExpand, mapping
2749	underscores to hyphens. GSource* => <g-source*>. (print-info):
2750	Gives more feedback when the bindings are being created. This uses
2751	slib's printf. (gwrap-helper): New argument HOW-WRAPPED. If not
2752	false, will cause gwrap-helper to call print-info for the type.
2753	(gwrap-helper-with-class): New argument HOW-WRAPPED, passed on to
2754	gwrap-helper. Cleanups. (gobject:gwrap-*): Pass appropriate values
2755	for HOW-WRAPPED.
2756
2757	* gnome/gw/gw-gobject-spec.scm: use the new
2758	glib:type-cname->symbol-alist to override scheme names for
2759	<gobject>, <gvalue>, <gclosure>, and <gparam>. When wrapping
2760	g-source-set-closure, use the new name for GSource (<g-source*>).
2761
2762	* gnome/gobject/defs-support.scm (register-type): Removed last argument
2763	relating to information printing -- that's done in gw-spec-utils
2764	now. (load-defs): When checking to see if a method has a bad name,
2765	don't ignore asterisks at the end of the type name. Thus we avoid
2766	creating methods for opaque pointers.
2767
27682003-10-01  Andy Wingo  <wingo@pobox.com>
2769
2770	* configure.in: Check to see if glade is installed.
2771
27722003-09-22  Andy Wingo  <wingo@pobox.com>
2773
2774	* autogen.sh: remove build-dependency on gnome2-dev by using
2775	gstreamer's build system * autogen-support.sh: gstreamer's build
2776	system (new file)
2777
27782003-08-26  Andreas Rottmann  <a.rottmann@gmx.at>
2779
2780	* gnome/gobject/gw-utils.scm (function->method-public)
2781	(functions->methods-public): Unecessary now, removed.
2782
2783	* gnome/gobject/defs-support.scm (load-defs): Make sym_of_object and
2784	sym_generic_name static. (load-defs): Create generic functions
2785	immediatly instead of setting the of-object procedure property.
2786
2787	* gnome/gobject/guile-gnome-gobject.c, guile-gnome-gobject.h
2788	(scm_sys_function_to_method_public): New function.
2789
2790	* gnome/gobject/defs-support.scm (recursive-type-find): Fixed behavior
2791	for empty type-hashes.
2792
2793	* gnome/gobject/defs-support.scm, gw-spec-utils.scm: Support for
2794	enums/flags without gtype-id.
2795
2796	* gnome/gw/Makefile.am (GUILE_FLAGS): New variable.
2797
27982003-07-27  Andy Wingo  <wingo@pobox.com>
2799
2800	* gnome/gobject/guile-gnome-gobject-primitives.[ch]
2801	(G_TYPE_BOXED_SCM): renamed from G_TYPE_GBOXED_SCM. There have
2802	been other changes recently that I haven't been putting in the
2803	changelogs...
2804
28052003-07-27  Andy Wingo  <wingo@pobox.com>
2806
2807	* gnome/gobject.scm (make-value-from-scm): Make gboxed-scms when
2808	needed.
2809
28102003-06-21  Andy Wingo  <wingo@pobox.com>
2811
2812	* gnome/gobject/gw-spec-utils.scm (gobject:gwrap-class): New function.
2813
28142003-06-19  Andy Wingo  <wingo@pobox.com>
2815
2816	* gnome/gobject/guile-gnome-gobject.c
2817	(scm_c_gtype_instance_instance_init): Call
2818	scm_c_make_gtype_instance to get the primitive GTypeInstance
2819	wrapper for the servant. That way we really only have one
2820	primitive wrapper, however many high level wrappers there are.
2821	Seems to fix some flaky bugs as well, as a side effect.
2822
28232003-06-18  Andy Wingo  <wingo@pobox.com>
2824
2825	* gnome/gobject.scm (make-gparam-instance): Fix typo (name->nick).
2826	(make-gparam-instance): Make the pspec->flags actually set, with a
2827	#:flags initarg -- also required some changes in -primitives.c.
2828
28292003-06-14  Andy Wingo  <wingo@pobox.com>
2830
2831	* gnome/gobject/guile-gnome-gobject-primitives.c
2832	(scm_c_make_gtype_instance): Cache the primitive gtype instance
2833	smob.
2834
28352003-06-07  Andy Wingo  <wingo@pobox.com>
2836
2837	* gnome/gobject/primitives.scm (gparam-spec:args): Fix to actually
2838	return the full list of args. Zip up the returned list with
2839	descriptive keywords.
2840
28412003-06-07  Andy Wingo  <wingo@pobox.com>
2842
2843	* gnome/gobject.scm: Made the commentary retrievable with
2844	file-commentary, see (ice-9 documentation) for more details.
2845
2846	* gnome/glib.scm (g-timeout-add, g-idle-add): As it turns out,
2847	g-idle-source-new creates an idle source, but with priority
2848	G_PRIORITY_DEFAULT instead of G_PRIORITY_DEFAULT_IDLE. This means
2849	that after g-idle-add is called, no Gtk events get processed (Bad
2850	Thing (tm)). Now we set the priority manually to DEFAULT_IDLE.
2851	Thanks to Owen Taylor for pointers on this one.
2852
28532003-05-30  Andy Wingo  <wingo@pobox.com>
2854
2855	* gw-standard-spec.scm (<gw:long-long>, <gw:unsigned-long-long>):
2856	Add LL to the end of the max/min 64 bit constants to appease gcc
2857	3.3. However, gcc-3.3 fails to compile the gtk bindings, at least
2858	on my machine. gcc 3.2 does work.
2859
28602003-05-30  Andy Wingo  <wingo@pobox.com>
2861
2862	* gnome/gobject/defs-support.scm (type-lookup): Without an explicit
2863	value for ownership, we only assume that we own non-const strings.
2864	Other things represented by pointers are treated conservatively.
2865	This is so that a function returning a GObject* has its return
2866	g_object_ref'd; non-const is not the same as caller-owned.
2867
28682003-05-26  Andy Wingo  <wingo@pobox.com>
2869
2870	* gnome/gobject/defs-support.scm (load-defs): Add support for null-ok
2871	in defs files, e.g. '("GdkWindow*" "window" (null-ok)).
2872
2873	* gnome/gobject/gw-spec-utils.scm: Only allow NULL values for objects,
2874	pointers, boxeds, and interfaces if 'null-ok appears in the
2875	typespec.
2876
2877	* gnome/gw/gw-gobject-spec.scm: Added input checks for generic
2878	GValue type wrapper. Only allow NULL for closures if 'null-ok
2879	appears in the typespec.
2880
28812003-05-08  Andy Wingo  <wingo@pobox.com>
2882
2883	* gnome/gobject/guile-gnome-gobject-primitives.[ch]: Added and
2884	exported log handler for g_logv messages. I don't thing it
2885	returns, however, which can cause recursion... dunno what to do
2886	about that.
2887
2888	* gnome/gw/gw-gobject-spec.scm: wrap closures and
2889	g-source-set-closure.
2890
2891	* gnome/gw/gw-glib-spec.scm: wrap main loops and some things from
2892	gutils.h. Steal GList/GSList wrapper from g-wrap.
2893
2894	* gnome/gobject/defs-support.scm: prettify output, log opaque types and
2895	bad methods to a file. We now wrap opaque types as <gw:wct>. Add
2896	support for GList*-of-GtkWindow*. Support new commands "ignore",
2897	"ignore-glob", and function attribute "overrides".
2898
28992003-05-08  Andy Wingo  <wingo@pobox.com>
2900
2901	* gnome/glib.scm: new file. Imports gobject/gw-glib and defines
2902	g-idle-add and g-timeout-add (in scheme).
2903
29042003-05-03  Andy Wingo  <wingo@pobox.com>
2905
2906	* gnome/gw/gobject.scm: Cleanups. Also changed a few
2907	gtype-instance-primitive function calls with (slot-ref obj
2908	'gtype-instance). With the new directory structure, gobject.scm
2909	moves into gnome/.
2910
2911	* gnome/gobject/primitives.scm: Don't hold extra data in the
2912	slot-definition, it's needed by the latest guile 1.6. Change the
2913	old slot allocation for gtype and gtype-instance to rely on a new
2914	kind of allocation, #:set-once. Adapt to the new method of library
2915	initialization with g-wrap.
2916
2917	* gnome/gobject/gw-utils.scm: New file. Provides utility syntax
2918	re-export-bindings and functions->methods-public.
2919
2920	* gnome/gobject/gw-spec-utils.scm: New file. Provides utility functions
2921	for spec files, such as gobject:wrap-object, gobject:wrap-enum,
2922	and the like.
2923
2924	* gnome/gobject/defs-support.scm: New file. Provides support for
2925	natively loading .defs-style api definitions into g-wrap wrapsets.
2926
2927	* gnome/gw/gw-glib-spec.scm: New file. Will eventually wrap glib
2928	functions, but for now just provides type wrappings for other
2929	wrapsets.
2930
2931	* gnome/gw/gnome-gobject.gwp: Deleted. Functionality moved to
2932	gw-gobject-spec.scm.
2933
2934	* gnome/gw/gw-gobject-spec.scm: New file. Wraps functions to
2935	initialize gnome-gobject, as well as wrapping some fundamental
2936	types for g-wrap.
2937
2938	* gnome/gw/generics.scm: New file. Provides generic functions for
2939	gobject.scm.
2940
2941	* gnome/gobject/guile-gnome-gobject.c: Added diagnostic macros to
2942	debug allocation problems. Adapted to new slot allocation for
2943	'gtype and 'gtype-instance. Return a a goops object of class
2944	(gtype->class [type of gtypeinstance]) in
2945	scm_c_gtype_instance_to_scm. Exported (to C)
2946	scm_sym_gtype_to_class, the symbol for gtype->class. Adapted to
2947	new initialization via g-wrap.
2948
2949	* gnome/gobject/guile-gnome-gobject-primitives.c: Muck about with
2950	refcounting. Provide guile_gobject_register_sinkfunc(), much like
2951	what pygtk does, to deal with GTK_OBJECT_FLOATING. Provide getters
2952	and setters for #:set-once allocation and adapt accordingly for
2953	'gtype and 'gtype-instance. Refcounting is still not in a coherent
2954	state, needs a bit of work.
2955
29562002-11-08  Ariel Rios <ariel@gnu.org>
2957
2958	* gnome/gobject/guile-gnome-gobject-primitives.c
2959	(s_scm_gobject_primitive_signal_emit): Rewrite the function being
2960	more clever, more readable and hey! it works.
2961
2962	* gnome/gobject.scm (gobject-signal-emit): Do some cleanup.
2963
2964
29652002-08-01  Ariel Rios  <ariel@gnu.org>
2966
2967	* gnome/gobject/guile-gnome-gobject-primitives.c
2968	(s_scm_gparam_primitive_create_pspec_struct): Some cleanup
2969
29702002-08-01  Ariel Rios  <ariel@gnu.org>
2971
2972	* gnome/gobject/guile-gnome-gobject-primitives.c
2973	(s_scm_gparam_primitive_create): Use the new macros thus doing the
2974	right thing (TM)
2975
2976	* gnome/gobject/guile-gnome-gobject-primitives.h
2977	(SCM_G_IS_PARAM_SPEC_BOOLEAN) (SCM_G_IS_PARAM_SPEC_STRING,
2978	SCM_G_IS_PARAM_SPEC_OBJECT) (SCM_G_IS_PARAM_SPEC_BOXED,
2979	SCM_G_IS_PARAM_SPEC_CHAR) (SCM_G_IS_PARAM_SPEC_UCHAR,
2980	SCM_G_IS_PARAM_SPEC_INT) (SCM_G_IS_PARAM_SPEC_UINT,
2981	SCM_G_IS_PARAM_SPEC_LONG) (SCM_G_IS_PARAM_SPEC_ULONG,
2982	SCM_G_IS_PARAM_SPEC_FLOAT) (SCM_G_IS_PARAM_SPEC_DOUBLE,
2983	SCM_G_IS_PARAM_SPEC_POINTER) (SCM_G_IS_PARAM_SPEC_ENUM,
2984	SCM_G_IS_PARAM_SPEC_FLAGS): New macros
2985
29862002-07-30  Ariel Rios  <ariel@gnu.org>
2987
2988        * guile-gnome-gobject.c : Add string.h to make compiler happy
2989
2990	* gnome/gobject/guile-gnome-gobject-primitives.c: Ditto
2991
2992	* gnome/gw/guile-support.c: Ditto
2993
29942002-07-30  Ariel Rios  <ariel@gnu.org>
2995
2996	* gnome/gobject/guile-gnome-gobject.c (scm_init_gnome_gobject):
2997	Some cleanup of unused code.
2998
29992002-07-30  Ariel Rios  <ariel@gnu.org>
3000
3001	* gnome/gobject/guile-gnome-gobject.c (scm_init_gnome_gobject): Do
3002	the right thing.
3003
30042002-04-13  Ariel Rios  <ariel@gnu.org>
3005
3006	* gnome/gobject/guile-gnome-gobject-primitives.c
3007	(s_scm_gparam_primitive_create_pspec_struct):
3008	s/g_param_get_*/g_param_spec_get.
3009
30102002-01-28  Ariel Rios  <ariel@gnu.org>
3011
3012	* configure.in: Bump version number to 0.3.0
3013
3014	* NEWS: What's new =)
3015
30162002-01-23  Ariel Rios  <ariel@gnu.org>
3017
3018        * guile-gnome-gobject-primitives.c: glib-object.h
3019
3020	* gnome/gobject/guile-gnome-gobject-primitives.h: Ditto.
3021
3022	* gnome/gobject/guile-gnome-gobject.c (scm_init_gnome_gobject): Do
3023	not use G_TYPE_FUNDAMENTAL_LAST and other deprecated stuff, this
3024	hack is a workaround and it is not guaranteed to work yet. We now
3025	only include glib-object.h
3026
30272002-01-23  Ariel Rios  <ariel@gnu.org>
3028
3029	* gnome/gobject/guile-gnome-gobject-primitives.c
3030	(s_scm_gparam_primitive_create_pspec_struct): Functions now
3031	compiles. Still some work to do in some functions ahead.
3032
3033
30342002-01-23  Ariel Rios  <ariel@gnu.org>
3035
3036	* gnome/gobject/guile-gnome-gobject-primitives.c
3037	(s_scm_gparam_primitive_create): More clean ups. Almost done.
3038
30392002-01-23  Ariel Rios  <ariel@gnu.org>
3040
3041	* gnome/gobject/guile-gnome-gobject-primitives.c
3042	(s_scm_gparam_primitive_create): All fixes done. It compiles
3043	again. Need to check the fundamental stuff.
3044
30452001-09-21  Ariel Rios  <ariel@gnu.org>
3046
3047	* gnome/gobject/guile-gnome-gobject-primitives.c
3048	(gboxed_scm_get_type): Use correct of arguments required by recent
3049	glib changes. (s_scm_gparam_primitive_create_pspec_struct): Do not
3050	access GParamSpec fields directly.
3051	(s_scm_gparam_primitive_create): Correct number of arguments
3052	passed to SCM_ASSERT
3053
30542001-09-10  Martin Baulig  <baulig@suse.de>
3055
3056	Released guile-gobject 0.2.0 "The Great Barrier Reef".
3057
3058	* configure.in: Bump version number to 0.2.0.
3059
3060	* RELEASE-NOTES-0.2.0.txt: Preparing the release ...
3061
30622001-09-09  Martin Baulig  <baulig@suse.de>
3063
3064	* gnome/gw/gobject.scm (vector-map): New private utility function.
3065	(<gparam>): Removed the `pspec-struct' slot. (<gparam-pointer>
3066	<gparam-string> <gparam-object> <gparam-boxed>): Added.
3067	(<gparam-enum> <gparam-flags>): Added. (gparam->pspec-struct): New
3068	public function. (allocate-instance <gtype-class>): Moved <gparam>
3069	and <gobject> initialization into (initialize <gtype-class>), only
3070	do the actual allocating here.
3071
3072	* gnome/gobject/guile-gnome-gobject-primitives.c
3073	(scm_c_debug_print): New utility function. (SCM_DEBUG_PRINT): New
3074	utility macro. (gparam-primitive->pspec-struct): Moved the
3075	functionality of this function into
3076	`gparam-primitive-create-pspec-struct' (not exported), store the
3077	pspec-struct as qdata in the param and return it.
3078	(SCM_ERROR_NOT_YET_IMPLEMENTED): Added `what' argument.
3079
3080	* gnome/gobject/guile-gnome-gobject.c (gtype?): New function.
3081	(gparam->value-type): New function.
3082
30832001-09-09  Martin Baulig  <baulig@suse.de>
3084
3085	* gnome/gw/gobject.scm (gobject-class-find-property): New public
3086	function.
3087
30882001-09-08  Martin Baulig  <baulig@suse.de>
3089
3090	* gnome/gw/gobject.scm (gtype-instance:class-init,
3091	gtype-instance:instance-init gobject:class-init
3092	gobject:instance-init gobject-class:install-property
3093	gobject:set-property gobject:get-property): Moved here from
3094	primitives.scm. (<gparam>): Added `pspec-struct' slot.
3095	(<gobject>): The `gobject-properties' vector now contains <gparam>
3096	objects. (make-gparam-instance): Added #:pspec-struct keyword to
3097	create a <gparam> object from a pspec-struct.
3098	(gobject:get-property, gobject:set-property): This now gets a
3099	<gparam> object as argument, not a pspec-struct.
3100	(gobject-class-install-property): Removed, implemented in C.
3101
3102	* gnome/gobject/guile-gnome-gobject-primitives.c
3103	(scm_c_gtype_lookup_class): New function.
3104	(scm_c_gtype_instance_bind_to_instance): New function.
3105	(gtype-primitive-register-static): Moved to guile-gnome-gobject.c
3106	and renamed to gtype-register-static.
3107	(gobject-class-primitive-install-property): Moved to
3108	guile-gnome-gobject.c and renamed to
3109	gobject-class-install-property. (scm_gparam_spec_vtable): Added
3110	"param-type" field.
3111
3112	* gnome/gobject/guile-gnome-gobject.c (gtype-register-static):
3113	Moved here. (gobject-class-install-property): Moved here.
3114
31152001-09-08  Martin Baulig  <baulig@suse.de>
3116
3117	* gnome/gw/foo.[ch]: Removed.
3118
31192001-09-07  Martin Baulig  <baulig@suse.de>
3120
3121	* gnome/gw/guile-support.[ch]: New files. This stuff may be moved
3122	into guile at a future time.
3123
31242001-09-07  Martin Baulig  <baulig@suse.de>
3125
3126	* gnome/gobject/guile-gnome-gobject-primitives.c
3127	(scm_add_slot_closure): Removed.
3128
31292001-09-06  Martin Baulig  <baulig@suse.de>
3130
3131	* gnome/gw/gobject.scm (<gparam-char> <gparam-uchar>
3132	<gparam-boolean> <gparam-int> <gparam-uint> <gparam-long>
3133	<gparam-ulong> <gparam-float> <gparam-double>): New classes.
3134	(gobject-class-install-property): New public function.
3135	(allocate-instance (<gtype-class>)): Added support for <gparam>
3136	subclasses.
3137
3138	* gnome/gobject/guile-gnome-gobject-primitives.c
3139	(gparam-primitive-create): This now takes 4 args like
3140	(gobject-primitive-create-instance).
3141
31422001-09-05  Martin Baulig  <baulig@suse.de>
3143
3144	* gnome/gobject/primitives.scm (gparam-spec:name gparam-spec:nick
3145	gparam-spec:blurb gparam-spec:flags gparam-spec:value-type
3146	gparam-spec:owner-type gparam-spec:args): New accessor functions.
3147
3148	* gnome/gobject/guile-gnome-gobject-primitives.c
3149	(gobject-primitive-get-properties): Only return direct properties,
3150	not the ones from our parent types.
3151
3152	* gnome/gw/gobject.scm (gtype->class): Register parent classes if
3153	necessary. gsignal:id gsignal:name gsignal:interface-type
3154	gsignal:return-type gsignal:param-types gparam-spec:name
3155	gparam-spec:nick gparam-spec:blurb gparam-spec:flags
3156	gparam-spec:value-type gparam-spec:owner-type gparam-spec:args):
3157	Re-export them (from (gnome gobject primitives)).
3158	(gobject-class-get-property-names): New convenience function.
3159
3160	* gnome/gobject/guile-gnome-gobject.c
3161	(scm_c_gtype_instance_is_a_p): New function.
3162	(scm_c_scm_to_gtype_instance, scm_c_gtype_instance_to_scm): New
3163	functions.
3164
31652001-09-05  Martin Baulig  <baulig@suse.de>
3166
3167	* gnome/gobject/guile-gnome-gobject-primitives.c (gparam-spec?):
3168	New func. (gobject-class-primitive-install-property): New
3169	function. Added support for properties. (scm_gtype_instance_free):
3170	Don't free the instance if we have a finalize func.
3171
3172	* gnome/gobject/primitives.scm (gobject:set-property
3173	gobject:get-property): New generic functions.
3174
3175	* gnome/gw/gobject.scm (gobject:set-property
3176	gobject:get-property): Provide default implementation.
3177
31782001-09-05  Martin Baulig  <baulig@suse.de>
3179
3180	* configure.in: Bump version number to 0.1.0.
3181
31822001-09-03  Martin Baulig  <baulig@suse.de>
3183
3184	Another batch of larger changes:
3185
3186	- improved gsignal support. - we can now derive GObject's in
3187	scheme.
3188
3189	More detailed, but a bit uncomplete list:
3190
3191	* gnome/gw/gobject.scm (gtype->class): For each class we create,
3192	use its parent class as metaclass. (<gboxed-scm>): New type. This
3193	is a GBoxed type to hold a scheme value. (gvalue->scm): Moved here
3194	from primitives.scm and export it. (gtype-instance:class-init):
3195	New generic function. (gtype-instance:instance-init): New generic
3196	function. (gobject-class-define-signal): New public macro.
3197
3198	* gnome/gobject/guile-gnome-gobject-primitives.[ch]
3199	(gvalue-primitive-get-basic): Renamed to gvalue-primitive-get.
3200	(gvalue-primitive-set-basic): Renamed to gvalue-primitive-set.
3201	(gtype-instance-primitive-type): Renamed to
3202	gtype-instance-primitive->type.
3203	(gtype-instance-primitive-to-value): New function.
3204	(scm_init_gnome_gobject_primitives): Don't export the "gsignal-*"
3205	symbols, except "gsignal-struct-vtable". (G_TYPE_GBOXED_SCM): New
3206	GBoxed type to hold a scheme value. (gboxed-scm-primitive-new):
3207	New function. (gboxed-scm-primitive->scm): New function.
3208	(gsignal-primitive-create): New function. (gtype-class->type):
3209	Removed. This is now implemented in scheme and correctly handles
3210	the case if you create a GOOPS subclass of a class.
3211
3212	* gnome/gobject/guile-gnome-gobject.[ch] (gtype->method-name): New
3213	function.
3214
3215	* gnome/gobject/primitives.scm (gsignal:id, gsignal:name,
3216	gsignal:return-type, gsignal:instance-type,
3217	gsignal:parameter-types): New accessor functions.
3218
32192001-09-03  Martin Baulig  <baulig@suse.de>
3220
3221	* gnome/gobject/guile-gnome-gobject-primitives.c
3222	(gobject:class-init, gobject:instance-init): When deriving
3223	GObject's, use `gobject:class-init' and `gobject-instance-init'
3224	instead of `gtype-instance:class-init' and
3225	`gtype-instance:instance-init'.
3226
3227	* gnome/gobject/guile-gnome-gobject.c (gtype-fundamental?): New
3228	function. This isn't really necessary, but it's faster to do this
3229	in C.
3230
3231	* gnome/gobject/primitives.scm (define-public-with-docs): New macro.
3232	(define-generic-with-docs): New macro.
3233
3234	* gnome/gw/gobject.scm: Documentation .....
3235
32362001-09-03  Martin Baulig  <baulig@suse.de>
3237
3238	* gnome/gobject/guile-gnome-gobject-primitives.c
3239	(scm_c_register_gtype): Unmangle the type with
3240	G_TYPE_FLAG_RESERVED_ID_BIT.
3241
32422001-09-03  Martin Baulig  <baulig@suse.de>
3243
3244	* gnome/gobject/guile-gnome-gobject-primitives.c
3245	(gtype-primitive-create-instance): Renamed to
3246	gobject-primitive-create-instance; its last argument is now a
3247	vector containing the properties.
3248
3249	* gnome/gw/gobject.scm: When creating new <gobject> instances,
3250	interpret all arguments as GObject properties.
3251
32522001-09-03  Martin Baulig  <baulig@suse.de>
3253
3254	* gnome/gobject/guile-gnome-gobject-primitives.c
3255	(gsignal-primitive-create): Actually pass the `param-types' vector
3256	to g_signal_newv().
3257
3258	* gnome/gw/gobject.scm (make-value-from-scm): Throw an exception
3259	if we got the unspecified value, but a non-void type.
3260
32612001-09-01  Martin Baulig  <baulig@suse.de>
3262
3263	Added support for GParamSpec.
3264
3265	* gnome/gw/gobject.scm (gobject-get-property,
3266	gobject-set-property): New functions.
3267
3268	* gnome/gobject/guile-gnome-gobject-primitives.c
3269	(scm_gparam_spec_struct_vtable): New struct type.
3270	(scm_gtype_instance_primitive_to_instance): Renamed to
3271	scm_gtype_instance_primitive().
3272	(scm_gtype_instance_primitive_type): New function.
3273	(scm_gobject_primitive_signal_emit,
3274	scm_gobject_primitive_signal_connect): Take a
3275	scm_tc16_gtype_instance smob, not a <gobject> object.
3276	(scm_gparam_primitive_to_pspec_struct): New function.
3277	(scm_gparam_primitive_create): New function.
3278	(s_scm_gobject_primitive_get_properties): New function.
3279	(scm_gobject_primitive_get_property): New function.
3280	(scm_gobject_primitive_set_property): New function.
3281
3282	* gnome/gw/foo.[ch]: Added properties.
3283
32842001-09-01  Martin Baulig  <baulig@suse.de>
3285
3286	* gnome/gobject/primitives.scm (<gtype>): Removed, replaced with a
3287	smob. (gobject-error): Renamed to gruntime-error.
3288
3289	* gnome/gobject/guile-gnome-gobject-primitives.[ch]: Removed the
3290	<gtype> class and added new scm_tc16_gtype smob.
3291
3292	* gnome/gw/gobject.scm (gtype->class): Use <gtype-class> as
3293	metaclass and changed all <gtype-class-meta> to <gtype-class>.
3294
3295	* gnome/gobject/guile-gnome-gobject.c: Call the GType's
3296	"gtype:<type-name>" instead of "gtype-type-<type-name>".
3297
32982001-09-01  Martin Baulig  <baulig@suse.de>
3299
3300	* gnome/gobject/guile-gnome-gobject-primitives.c
3301	(scm_gtype_primitive_register_static): New function.
3302
3303	* gnome/gobject/guile-gnome-gobject-primitives.h
3304	(SCM_VALIDATE_FLOAT_COPY): Make this actually work.
3305
33062001-09-01  Martin Baulig  <baulig@suse.de>
3307
3308	* Makefile.am, configure.in: Don't build libgnome/ and orbit/ for
3309	the moment, nothing interesting in there.
3310
33112001-08-31  Martin Baulig  <baulig@suse.de>
3312
3313	* test-suite/gobject-primitives.test: Added tests for gclosure
3314	primitives.
3315
3316	* test-suite/gobject.test: Added tests for gclosure.
3317
33182001-08-31  Martin Baulig  <baulig@suse.de>
3319
3320	* gnome/gobject/guile-gnome-gobject-primitives.c
3321	(scm_tc16_gclosure_smob): Removed.
3322	(scm_gclosure_primitive_invoke): Correctly GC protect the
3323	GuileGClosure's `func' field.
3324
33252001-08-31  Martin Baulig  <baulig@suse.de>
3326
3327	* gnome/gobject/guile-gnome-gobject-primitives.c
3328	(scm_gvalue_primitive_to_type): Removed, we already have
3329	scm_gvalue_to_type.
3330
33312001-08-31  Martin Baulig  <baulig@suse.de>
3332
3333	* gnome/gw/gobject.scm (gtype-instance-write): Added method for
3334	`(type <gtype>) (obj <gvalue>) file)' - creates the class using
3335	(gtype->class type) and then calls the normal
3336	gtype-instance-write.
3337
3338	* gnome/gobject/guile-gnome-gobject-primitives.c
3339	(scm_gvalue_print): If the class doesn't exist yet, use the type
3340	as first argument of gtype-instance-write.
3341
33422001-08-31  Martin Baulig  <baulig@suse.de>
3343
3344	* gnome/gw/gobject.scm (gobject-signal-connect-data): Use the new
3345	<gclosure> object. (gsignal-handler-block gsignal-handler-unblock
3346	gsignal-handler-disconnect gsignal-handler-connected?): New
3347	functions.
3348
3349	* gnome/gobject/guile-gnome-gobject-primitives.c
3350	(GuileGTypeInstance): Killed, use GTypeInstance directly.
3351	(scm_gtype_instance_primitive_to_instance): New func.
3352	(scm_gsignal_primitive_handler_block): New func.
3353	(scm_gsignal_primitive_handler_unblock): New func.
3354	(scm_gsignal_primitive_handler_disconnect): New func.
3355	(scm_gsignal_primitive_handler_connected_p): New func.
3356
33572001-08-31  Martin Baulig  <baulig@suse.de>
3358
3359	* gnome/gw/gobject.scm (<gclosure>): Implement this as a GOOPS
3360	class, not as a GValue. (gclosure-invoke): New generic function.
3361
3362	* gnome/gobject/guile-gnome-gobject-primitives.c
3363	(scm_tc16_gclosure): Renamed to `scm_tc16_gclosure_smob'.
3364	(scm_gclosure_primitive_invoke): Added return_type argument.
3365	(scm_gvalue_primitive_to_type): New function.
3366
33672001-08-27  Martin Baulig  <baulig@suse.de>
3368
3369	* test-suite/gobject.text: Testcase for `(gnome gobject)' module.
3370
3371	* test-suite/gobject-primitives.test: Testcase for `(gnome gobject
3372	primitives)'.
3373
33742001-08-27  Martin Baulig  <baulig@suse.de>
3375
3376	* test-suite/: New directory.
3377
33782001-08-27  Martin Baulig  <baulig@suse.de>
3379
3380	* gnome/gobject/primitives.scm, guile-gnome-gobject-primitives.[ch]:
3381	Moved some of the internal stuff into a new `(gnome gobject
3382	primitives)' module and exported most of the methods.
3383
33842001-08-27  Martin Baulig  <baulig@suse.de>
3385
3386	* gnome/gobject/primitives.scm (gflags->element-list): New primitive
3387	function. (gflags->symbol-list gflags->name-list
3388	gflags->value-list): New functions.
3389
33902001-08-25  Martin Baulig  <baulig@suse.de>
3391
3392	- added basic support for signals.
3393
33942001-08-23  Martin Baulig  <baulig@suse.de>
3395
3396	- added basic gclosure support.
3397
3398	- added gchararray.
3399
3400	- added support for flags.
3401
3402	- added genum-register-static.
3403
3404	- added gchar, guchar, gint, guint, glong, gulong, gfloat and
3405	gdouble.
3406
3407	- added support for enums.
3408
34092001-08-21  Martin Baulig  <baulig@suse.de>
3410
3411	* gnome/gobject/guile-gnome-gobject.c
3412	(scm_sys_gobject_scheme_dir): New func.
3413	(scm_gobject_register_type): New func.
3414
3415	* gnome/gw/Makefile.am: Create and install documentation.
3416
34172001-08-21  Martin Baulig  <baulig@suse.de>
3418
3419	* gnome/gobject/guile-gnome-gobject.c (scm_gtype_children): New
3420	func. (scm_init_gnome_gobject): Register all fundamental and
3421	derived types.
3422
3423