Add void* userdata support for gobjects
[gnome.seed] / NEWS
1 == Seed 2.31.1, "The Black Album" (2010.03.29) ==
2
3 * Support for returning arrays of GTypes
4
5 * Support for GError types in various places
6
7 * Rework out arguments - old style still works, also returns
8   dictionary with keys named after parameters
9
10 * Support initialization using an existing JSGlobalContext
11
12 == Seed 2.30.0, "Piano Man" (2010.03.29) ==
13
14 * Second stable release!
15
16 == Seed 2.29.91, "Greatest Hits" (2010.02.23) ==
17
18 * Support void * arguments
19
20 * Support connecting to notify:: signals everywhere
21
22 == Seed 2.29.90, "Fort Nightly" (2010.02.08) ==
23
24 * To avoid potential filename collisions, the imports system now supports:
25   imports['somedir/somefile.js'] (Alan Knowles)
26
27 * Fix crash involving gtk_tree_model_get_value (Alan Knowles)
28
29 * Fix subtle crash in DBus bindings (Rob Taylor)
30
31 == Seed 2.29.5.3, "Twist and Shout" (2010.01.11) ==
32
33 * Pass null structs through as "null" instead of empty seed_structs
34
35 * Revert one of the 64-bit type safety commits from 2.29.5.2 until someone
36   can take a closer look at it; it broke enum typing on Linux
37
38 * Fix potential segfault in various modules (missing null sentinels)
39
40 == Seed 2.29.5.2, "Third Stage" (2010.01.07) ==
41
42 * Move tests to automake-style 'make check', away from the previous,
43   Python-based 'make test' tool; all tests are now assertion-based, instead of
44   the previous output-based style
45
46 * Fix various segfaults on Mac OS X (and possibly *BSD) related to 64-bit type
47   safety problems
48
49 * Fix functionality of out arguments
50
51 * Interpreter now returns non-zero status code if it exits with an exception
52
53 == Seed 2.29.5.1, "Achtung Baby" (2010.01.01) ==
54
55 * Fix "duplicate symbol" errors on non-Linux platforms
56
57 == Seed 2.29.5, "Icky Thump" (2009.01.01) ==
58
59 * Fix build on non-GNU platforms (primarily Mac OS X)
60
61 * Distribute the REPL snippet with Seed again; the built-in REPL will work now
62
63 * Fix segfault when accidentally protecting already-garbage-collected values
64
65 * Fix segfault when accidentally unreffing nonexistant GIBaseInfos
66
67 == Seed 2.29.4, "( )" (2009.12.17) ==
68
69 * Improve type conversion portability; add seed_value_(to|from)_(s)size
70   functions.
71
72 * Small random cleanup of unused arguments.
73
74 == Seed 2.29.3 (2009.11.30) ==
75
76 No changes.
77
78 == Seed 2.29.2, "Never Mind the Bollocks" (2009.11.16) ==
79
80 * Change semantics of seed_value_from_string and _from_filename; they 
81   now return JavaScript null if passed a null input value.
82
83 * Seed interpreter adds --version argument
84
85 * libseed adds --seed-version argument
86
87 * Clutter extension wrapper for animate_with_alpha
88
89 == Seed 2.28.0, "The Rise and Fall of Ziggy Stardust and the Spiders
90    from Mars" (2009.09.21) ==
91
92 * First official stable release!
93
94 == Seed 2.27.92, "Metal Machine Music" (2009.09.07) ==
95
96 * Fix a bug in module building; modules are now versionless
97
98 * The instanceof operator now works for GTypes
99
100 * Add global support for G_TYPE_STRV
101
102 == Seed 2.27.91, "Yellow Submarine" (2009.08.21) ==
103
104 * Added seed_context_collect, to provide an interface for forcing
105   garbage collection manually
106
107 == Seed 2.27.90, "London Calling" (2009.08.10) ==
108
109 * Expanded and updated documentation; also available at:
110            http://library.gnome.org/devel/seed/unstable/
111
112 * All JavaScript contexts now have a __script_path__ property, which
113   exposes the absolute, canonical path to the evaluated script
114
115 * Add __init__.js functionality; if an imported folder contains __init__.js,
116   it will be evaluated with the imported context as the 'this' object
117
118 * Fix bug which caused inheritance from a GType created in Seed to fail
119
120 * Add "pretty" property installation, see:
121            tests/javascript/gtypes/gtype-property-nice.js
122
123 * New FFI module, provides an interface for calling non-introspected
124   native C functions from JavaScript
125
126 == Seed 0.8.5, "Self Portrait" (2009.07.10) ==
127
128 * Significant reorganization and expansion of the reference documentation
129
130 * New native modules:
131         * gettext
132         * MPFR (partially complete)
133
134 * Same Seed has moved to the gsoc-seed-games branch of Gnome Games
135   (and will eventually move to master)
136
137 * Add seed-module.h, which includes a handful of macros to make writing modules
138   slightly more attractive. Look at gettext or the reference docs for examples.
139
140 * Prefix native modules with seed_ (libseed_readline.so, etc.); this fixes the
141   need to incessantly 'make clean' seed and cuts down on ambiguity in naming.
142
143 * Add 'seed_value_is_string', 'seed_value_is_number', and
144   'seed_value_is_object_of_class' to libseed
145
146 * Update examples to latest (now frozen) Clutter API changes.
147
148 * Fixes a bug with the importer search path which resulted in the search path
149   being overwritten each time something was imported
150  
151 * The importer now also searches the directory in which the script being
152   executed is located by default.
153
154 == Seed 0.8, "Bringing It All Back Home" (2009.05.27) ==
155
156 * Importer now supports constructing directory objects, to avoid manipulation
157   of search path. Importer directory objects now support property enumeration.
158
159 * Fix small leak in GObject wrapper initialization. (and also simplify
160   the process).
161
162 * GtkBuilder module to handle GtkBuilder automatic signal connection.
163
164 * *_init methods now take normal arrays (by value) in addition to the special
165   Seed.argv array.
166
167 * GObject constructors (init methods) now take "self" as a parameter.
168
169 * Passing non gobject-properties to a GObject constructor will set the
170   properties on the GObject wrapper.
171   
172 * Module documentation rewritten in docbook, and builds one nice manual.
173
174 * New Cairo module, supports most of the cairo API, with automatic memory
175   management and everything you would expect.
176
177 * Fix a reference count leak introduced in the last few releases.
178   in some cases with non INITIALLY_UNOWNED objects.
179
180 * Some work on ClutterPad examples, and writing examples which live inside of it
181   (lots of fun to play with!, cairo example...fun spring example...ClutterBox2D)
182
183 * Working around a WebKit bug (which is actually fixed in SVN now), should
184   prevent a crash that happened sometimes with C modules.
185
186 * Clutter animatev wrapper looks up property type wrapper now, so as to avoid
187   having to pass [GObject.TYPE_FOO, bar]
188
189 * Implement some varargs functions which can be implemented on top of non-vararg
190   variants in JavaScript extensions.
191
192 * JSON stuff (stringify,parse) is now in gnome-js-common.
193
194 * Add seed_value_to_format to API, for converting an Array of SeedValue based
195   on a format string.
196   
197 * Install seed-debug.h so modules can make use of it.
198
199 * Search path now works in nonstandard prefix, default search path includes
200   gnome-js-common moduledir (from pkgconfig).
201   
202 * Support to/from Date objects to time_t.
203
204 == Seed 0.7, "Another Side of Bob Dylan" (2009.05.13) ==
205
206 * Support for library init methods.
207
208 * The REPL now supports multi-line entry.
209
210 * Signal disconnection.
211
212 * Significant Gtk-Doc reorganization.
213
214 * New C modules:
215         * sandbox - provides sandboxed JavaScriptCore contexts.
216         * DBus - Client side DBus bindings.
217         * libxml - XML parsing, XPath, etc.
218
219 * Examples:
220         * New: ClutterPad (initially by Johan Euphrosine).
221         * New: dbus-banshee, dbus-consolekit, dbus-networkmanager
222         * New: xml-dom.js xml-tree.js, xml-xpath.js.
223         * Pango examples have returned.
224         * Same Seed performance is increased significantly.
225         * Many examples now use "recent" style; some were completely rewritten
226         
227 * Improvements to test system, and quite a few more tests.
228
229 * Improvements to error checking/handling in signal code.
230
231 * Reorganization of API related to GClosure handling, much cleaner and easier.
232
233 * Several new API methods.
234
235 * GC related crash fixes.
236
237 * Improvements to seed_value_to_string (mostly formatting improvements).
238
239 * Void methods now properly return undefined instead of null.
240
241 * seed_make_exception takes format strings now.
242
243 == Seed 0.6, "Beatles for Sale" (2009.04.29) ==
244
245 * Significant build fixes and cleanups. Should build on more distros
246   with weird libffis now.
247
248 * Depend on GObject-introspection from GIT.
249
250 * Some API additions.
251
252 * Reimplement Seed.import_namespace in terms of the new imports system,
253   will be entirely deprecated for 0.6.
254
255 * Improve memory management in signals and closures.
256
257 * Rewrite the GType subclassing to avoid using FFI, 
258   saves memory and improves performance.
259
260 * GType "init" now means "constructor" and not "instance init".
261
262 * Signal installation, is now handled by an array on the type definition
263   rather than in class_init (which was clunky and C-like).
264
265 * Lots of new documentation, including a documentation index, a description
266   of the mapping from C to JavaScript, an example index, and updates to
267   the rest of the documentation.
268
269 * Significant cleanup of all of the examples, a lot of them had bit
270   rotted a bit, being written months ago.
271  
272 == Seed 0.5, "Transformer" (2009.04.16) ==
273
274 * Many, many crash fixes.
275
276 * Significantly better base memory usage (on the order of MB) for some apps.
277
278 * Enums use Gtk.WindowType.NORMAL instead of Gtk.WindowType.Normal.
279   This may break existing code in subtle ways (as Gtk.WindowType.Normal
280   will now be JavaScript null).
281
282 * instance_init is now just init when creating new GTypes. This will require 
283   changes in any code using subclassing.
284
285 * Enum types are validated when passed in to functions now.
286
287 * Complete rewrite of import system, spanning GObject Introspection namespaces, 
288   native modules, and JavaScript files, which is compatible with Gjs.
289
290 * Along with above, deprecate Seed.import_namespace.
291
292 * New 'os' module, similar to that of Python. Provides access to a significant
293   quantity of low-level system features unavailable from GLib.
294
295 * Significant updates to Canvas module - most features are compatible with the
296   Mozilla/WebKit implementations at this point.
297
298 * Clutter 0.9 animation API wrappers.
299
300 * Add seed_repl_expose; gives the ability to drop to a JavaScript REPL from
301   within C, and magically expose JSValueRefs to JS in a simple way.
302
303 * Seed.readline history persists between sessions (stored in ~/.seed_history)
304
305 * Support for several more array types.
306
307 * Added Seed.breakpoint(), which inserts a breakpoint instruction.
308
309 * API additions: Lots of API additions. Including a significant amount 
310 of API documentation.
311
312 * New examples:
313     * opengl-glib examples (teapot, gears, triangle)
314     * Gtk Twitter client (from the Ars Technica article)
315     * Same Seed (Clutter 0.9 rewrite of Same Gnome)
316     * Clutter-COGL example
317     * Reddit client (Gio and JSON)
318     * Library of Clutter "slide transitions"
319     * Rewrote clutter example for 0.9
320
321 * The Lights Off example now lives in Gnome Games.
322
323 == Seed 0.3, "Wednesday Morning 3AM" (2008.12.31) ==
324
325 * Lots of memory changes. Memory usage isn't bad anymore, 
326   reference counting actually works (no big leaks or anything anymore
327   ...there are still a few very small ones you can trigger). 
328   Memory usage of most of the examples after they've loaded,
329   has about halved (or more in cases like the browser) since 0.1, 
330   and now compares very favorably to other
331   dynamic languages. Lots of g_slice_alloc, which comes off
332   quite nicely when creating bunches of small structs like ClutterColor.
333
334 * Innumerable bug fixes.
335
336 * Structs work now! Things like GdkRectangle: you can allocate them,
337   get at their members, etc.
338     * Including struct "literals, i.e." stage.set_color({red: 255, alpha: 220}).
339
340 * GObject subclassing, which was rushed in to a 0.1 point release,
341   is reliable now! signal installation too.
342
343 * Multiple context support, rather than the silly global context.
344
345 * Support for string array argument conversion.
346
347 * C extension Modules
348     * readline
349     * Multiprocessing -- Simple IPC pipes. Just an example, really.
350     * sqlite
351     * canvas -- A little, toy, mostly functional but incomplete HTML Canvas
352                 implementation. May be useful until we have cairo bindings.
353                 Supports SVG/PDF output.
354
355 * Signals use userdata now. The 'this' argument was removed,
356   as it really just lead to organizational issues.
357
358 * object.signal.connect is defined for connecting by strings
359   (allows for connecting to detailed signals, like property notifications)
360
361 * 'out' arguments of methods work, granted in a rather poor fashion,
362   not sure of the best way to do this yet.
363
364 * Enums use Gtk.WindowType.Normal instead of Gtk.WindowType.normal,
365   may break existing code in subtle ways (as Gtk.WindowType.normal
366   will now be JavaScript null).
367
368 * Licensing update - libseed is LGPL. The trivial examples are BSD,
369   the more complete ones are GPL.
370
371 * Lots of leaks fixed, and also some reference bugs that lead to crashing.
372
373 * External API is pretty usable now.
374
375 * External API example (Turtle Graphics)
376
377 * Threading sort of works now. It's rather unpredictable,
378   but async callbacks and stuff are fine.
379
380 * Many more Seed examples. Ranging from Gnio Server, to threading. The
381   browser example is pretty neat now, and has sqlite bookmarks, WebInspector,
382   and a few other tidbits. lightsoff and browser are the two highlight examples
383   to play with.
384
385 * Skeleton GTK-Doc for API 
386
387 * New builtins: Seed.spawn, Seed.repl/glib_repl/thread_repl.
388   Kind of useful for debugging. 
389
390 * Removed builtins: Seed.prototype: Now use Gtk.Window.prototype 
391                     Seed.closure, Automatically handled now.
392                     Seed.closure_native, automagic.
393                     Seed.readline, moved in to module.