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