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