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