forked from openalea/lpy
-
Notifications
You must be signed in to change notification settings - Fork 13
/
ChangeLog.txt
374 lines (282 loc) · 16.1 KB
/
ChangeLog.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
*July 24th 2009:* version 1.4.0 (rev 6689):
-------------------------------------------
* Introduce ``Lsystem::Debugger``
* Introduce first ui of a Lsystem Debugger.
* fix bug with animation when resuming (avoid reloading text)
*July 17th 2009:* version 1.3.0 (rev 6635):
-------------------------------------------
* Introduce static rules
* introduce structures PatternModule and PatternString
* add parametric production (to avoid use of python list)
* add optimization level option
* add not named variable to avoid useless arg value retrieval
* add heuristic to find static rule and not named variable
* add ``RuleMap`` to avoid useless test
* Introduce compilation with ``Cython``
* Introduce compilation with ``python -OO``
* add possibility to store arg into a vector instead of creating a python list when retrieving arg.
* enable switching order of simulation in tab
* fix bug with first view computation in animation
* fix bug with query module value assignment
* allow lazy copy of parameters
* add examples/tutorial/models
* Regular Expression in strict predecessor
* introduce ``or`` module to alternative matching
* add possibility to retrieve directly module
* add possibility to name parameters of module and access them as member of the module
* make particular test for matching with module any (or \*)
* improve iterator
* check index when accessing module parameter. Throw exception if required.
* allow produce None to produce empty string
* fix bug with selection
* fix bug updateNamespace function of LsysContext.
* fix bug with PyQt/Qt4.5
*May 30th 2009:* version 1.2.0 (rev 6470):
-------------------------------------------
* Introduce option ``early return when no matching``
* raise error/warning when detecting ``#`` smb
* fix bug with alias
* Introduce ``filtering`` on parameter value
* Introduce ``Repeated Expression``
* ``getVarNb`` function added
* Introduce Category of Module
* Introduce ``Tropism``
* Introduce ``SetContour`` of GeneralizedCylinder
* Introduce production of ``new(name)`` and produce of ``A(*arg)``
* Introduce ``GetIterator`` on some part of the structure
*March 17th 2009:* version 1.1.0 (rev 6096):
--------------------------------------------
* Compatibility with PlantGL : RefCountPtr/pgl_hash_map/...
* Compatibility with OpenAlea : update nodes
* Introduce ``MatchingEngine``
* add ``StringMatchingMethod``
* Introduce multiscale matching with ``MScaleAxialTree`` and ``MLevelAxialTree``
* use template method for matching
* Introduce ``ModuleVTable`` to add property to module class
* Introduce ``scale`` property
* simplify some wrapping code
* fix bug with context activation
*October 8th 2008:* version 1.0.0 (rev 5581):
---------------------------------------------
* small bug fix mainly on MacOSX
* improve packaging
*September 11th 2008:* version 1.0.0 release candidate 3 (rev 5529):
--------------------------------------------------------------------
* split tool bar into 2.
* add ``Save All`` feature.
* fix small bug with ``Lsystem`` initialisation.
* fix bug with text encoding and ``SyntaxHighlighter``.
* fix bug with path on compile_ui rc generation.
* fix bug with ``SyntaxError``. Treat them as special case.
* add arguments to ``EndEach``.
* correct bugs with ``str`` and ``repr`` on ``AxialTree``.
* make ``saveImage`` re definable.
* simplify ``plot`` redefinition api. A ``plotter`` object can be pass.
*September 4th 2008:* version 1.0.0 release candidate 2 (rev 5469):
-------------------------------------------------------------------
* fix bug with signal ``valueChanged()`` of material editor.
* fix bug with import of local python file.
* compatibility with ``py2exe``.
*August 13th 2008:* version 1.0.0 release candidate 1 (rev 5408):
-----------------------------------------------------------------
* fix small text encoding bugs.
* release candidate version.
*August 12th 2008:* version 0.20.2 (rev 5401):
----------------------------------------------
* introduce ``LpyParsing`` namespace.
* introduce set of function and member of ``LpyParsing`` to check format version compatibility and support.
* format version test in parsing.
* simple test of gui.
* gui stream redirection improvement.
* change variable ``tree`` to ``lstring`` into python shell of gui.
* update documentation.
* add ``documentation.getWikiSpecification``.
*August 11th 2008:* version 0.20.1 (rev 5397):
----------------------------------------------
* now load initialisation code before lpy code in ``Lsystem.set``. Add a test for this.
* fix bugs with add/remove tab and comment in code editor. add icons to the buttons.
* add possibility to enable/disable view of tab in code editor.
* add option to see text below button of tool bar.
* add automatic test of examples of ``share/``.
*August 8th 2008:* version 0.20.0 (rev 5394):
---------------------------------------------
* text editor improvement:
* add text zooming capability.
* font and size selection.
* tab space replacement and tab size control.
* file monitoring.
* tool bar style selection.
* preference dialog.
*August 7th 2008:* version 0.19.2 (rev 5390):
---------------------------------------------
* automatic reload of last opened document.
* add new rule to syntax highlighting:
* function names are in magenta.
* strings are in grey.
* tabs and spaces of the begining of a line are marked in different greys to prevent mixing.
* operators and delimiters are in dark blue.
* number are in red.
* make smaller border in the gui.
* fix bug with closing application and saving documents.
* set simulation in modified state when changing options.
*August 6th 2008:* version 0.19.1 (rev 5388):
---------------------------------------------
* add module undeclaration and query module declaration features.
* fix bug with parsing and comments.
* improve lines correspondence in lpy translation.
* syntax error highlight in editor.
* fix bug with project code mess up when several project are opened in Gui.
*August 5th 2008:* version 0.19.0 (rev 5385):
---------------------------------------------
* change GUI interface to have dock widgets and multiple documents editing.
* remove modules ``G`` and ``g``.
* remove ``None`` module from doc.
*July 28th 2008:* version 0.18.1 (rev 5351):
--------------------------------------------
* replace ``PYLSYS`` prefix by ``LPY``.
* remove ``StringInterpreter`` class.
* add documentation to predefined modules.
*July 24th 2008:* version 0.18.0 (rev 5338):
--------------------------------------------
* Rename project as ``lpy``. Change file and dir names accordingly.
* fix bug with ``produce *``
* separate matching from application in ``LsysRule`` (now has ``match`` and ``applyTo`` functions).
* fix bug with ``LsysOption.isToDefault``.
* clean examples of ``share/``.
*July 21th 2008:* version 0.17.2 (rev 5278):
--------------------------------------------
* Fix bug with ``GlobalContext``. Add a ``__local_namespace`` to contain ``LsysRule`` code.
* Add memory tracker (``TRACKER_ENABLED`` to activate) with memory report on stderr at the end.
* ``LsysRule`` :
* change interface to avoid exception raise inside constructor.
* function ``set`` from python automatically call compile by default.
* create predefined modules into a separate cpp file.
* Update code files header.
*July 18th 2008:* version 0.17.1 (rev 5269):
--------------------------------------------
* remove intermediate structure for turtle interpretation. Each predefined modules has a custom ``ModuleClass`` class.
*July 10th 2008:* version 0.17.0 (rev 5224):
--------------------------------------------
* add turtle interpretation as a function of each module class. for now, use intermediate structure.
* fix bug with module matching mode.
* add lineno to rules for error display.
* improve parsing.
* add simple tests on geometry of interpretation.
*July 7th 2008:* version 0.16.0 (rev 5200):
-------------------------------------------
* fix bugs:
* in argument parsing of query module.
* with ``*args`` variable name in ``LsysRule`` generated code.
* with use of ``*`` module: first arg is always matched module name.
* with left matching of rule in backward mode.
* remove ``LsysContext`` from stack when deleted.
* Lsystem object:
* possibility to enabled or disabled (``makeCurrent`` or ``done``) its context.
* print declared modules when print.
* report query module and axialtree parsing code in lpy_parser.
* ``ModuleClass`` are augmented with an active state. Allow to use always the same ``ModuleClass`` in different namespaces.
* matching tests are a lot augmented.
*July 2nd 2008:* version 0.15.1 (rev 5178):
-------------------------------------------
* use declared module in rule predecessors.
*July 2nd 2008:* version 0.15.0 (rev 5171):
-------------------------------------------
* add module declaration:
* introduce ``ModuleClass`` and ``ModuleClassTable``.
* look for longest name when parsing Lstring.
* ``LsysContext`` has their own moduleclass namespace.
* add ``sceneInterpretation`` in ``Lsystem`` to get homomorphism resulting ``Scene``.
* process line starting by ``#`` as comment line in production blocks of lpy code.
*June 17th 2008:* version 0.14.1 (rev 5119):
--------------------------------------------
* Fix bug with space in Lsystem string.
* Fix bug with window specific end line in Lsystem code.
* Fix bug with ``nproduce`` in Lsystem rules.
* Add tests normalized with ``nosetests`` convention.
* Fix bugs with LsysOption template and gcc
* Redefined ``len`` cpp function in ``lsysrule.cpp`` now compatible with all ``boost.python`` version.
*June 12th 2008:* version 0.14.0 (rev 5086):
--------------------------------------------
* Define ``LsysOptions`` class and mechanism to simply add an option, its possible value and corresponding slots.
* Add an ``LsysOptions`` to ``LsysContext``.
* Graphic edition of the options of ``LsysContext``.
* Avoid copying of ``LsysRule`` when iterating in ``Lsystem``.
* Add function ``getIterationNb``.
* Add control on module matching : Simple, with ``*`` module or with also ``*args`` parameters.
*June 4th 2008:* version 0.13.1 (rev 4996):
-------------------------------------------
* fix bug with ``animate`` number of iterations.
* fix bugs with multi-threading and visual shell. Introduce for this sources for new ``Shell`` classes copied from visualea and modified them thus that text writing is protected from concurrent access.
*May 30th 2008:* version 0.13.0 (rev 4983):
-------------------------------------------
* ``Lsystem`` interface update:
* function ``run`` disappear.
* function ``iterate`` has an extra argument starting iteration number.
* function ``interpret`` is available and take as arg a Turtle.
* function ``plot`` do an ``interpret`` and a ``plot`` of the resulting pgl scene.
* Fix bug with ``homomorphism``.
* Interpretation before iteration :
* can be avoid with an extra arg to iterate.
* done with ``interpret``.
* ``LsysRule.apply`` is now ``const``. python code should be compile before. Else an exception is raised.
* ``LsysContext`` updated:
* ``readAxiom`` disappear.
* parsing :
* Related functions regrouped into a new file named lpy_``parser``.
* ``l2py`` function renamed ``lstring2py``.
* ``StringInterpreter`` has now possibility to change of ``Turtle``.
* GUI:
* First call of ``Step`` produces now the axiom.
*May 23th 2008:* version 0.12.2 (rev 4924):
-------------------------------------------
* change error for homomorphism rule with context as warning
* add possibility to give a function to retrieve selection (similarly to plot)
*May 22th 2008:* version 0.12.1 (rev 4920):
-------------------------------------------
* add recursive application of rules for homomorphism and turtle interpretation.
* add selection and insertion by a ``X`` module
* correct bug in parsing with line starting by 'e'
*May 21th 2008:* version 0.12.0 (rev 4919):
-------------------------------------------
* ``StringMatching`` structure to keep id matching after rule application
*May 15th 2008:* version 0.11.0 (rev 4902):
-------------------------------------------
* add groups of rules in lsystems.
* small bug fix in post_install script
*May 15th 2008:* version 0.10.1 (rev 4895):
-------------------------------------------
* prevent multiple access of lsystem even from same thread. Resolve warning from //April 29th 2008//.
*May 15th 2008:* version 0.10.0 (rev 4893):
-------------------------------------------
* ``animation_timestep`` is a property of ``context`` that can be changed during animation and is taken into account.
* ``animation_timestep`` is now saved into lpy file.
* add the module ``@g`` in string interpreter to plot custom plantgl geometric symbol.
* add the module ``_`` in string interpreter to change width. Will replace module ``#`` in the future.
* add a parameter to ``endBracket`` and ``beginBracket`` of AxialTree to define if current pos is [ and ] respectively if search should start before or after.
* fix matching bug for ``A[B[C]D]D`` with ``A > [B]D``.
*May 14th 2008:* version 0.9.0 (rev 4892):
-------------------------------------------
* process lpy file into one py file to have exact correspondence of lines for exceptions.
* axiom, maximum depths and derivation length are now converted as python variables which are imported after.
* introduce ``nproduce`` statement.
* error are improved to allow syntax error, warning and syntax warning- when parsing lpy file, explicit exceptions for lpy special command error.
* code editor highlight line in case of error at execution.
* ``filename``, ``decompositionMaxDepth`` and ``homomorphismMaxDepth`` are now properties of a Lsystem.
*May 13th 2008:* version 0.8.0 (rev 4889):
-------------------------------------------
* Merge ``kernel`` and ``gui``. Gui is now a submodule of kernel.
*May 13th 2008:* develop version 0.5.2 of Gui (rev 4885):
-------------------------------------------------------------
* add ``case sensitivity`` and ``whole word`` options into ``find`` feature
* add ``replace`` and ``replaceAll`` feature
* add ``automatic tabulation`` when enter is pressed (take into account if previous line ends by a semicolon)
* tabulation is done with ``LsysCodeEditor.indentation`` which can be set to ``'\t'`` or ``' '*n``
*April 29th 2008:* develop version:
-------------------------------------------
* A mutex now protect access to Lsystem object from multiple thread. Add ``isRunning`` function to test whether it currently perform any action. **Warning:** It does not prevent multiple access from same thread (to allow embedded call of protected action e.g. ``run`` calling ``iterate``, ...).
*April 29th 2008:* develop version:
-------------------------------------------
* Create default lsystem execution context containing ``__builtins__`` and ``openalea.pylsystems.*`` . Accessible from ``LsysContext.defaultContext()``. Have ``_main_`` context accessible using ``LsysContext.globalContext()``.
*April 29th 2008:* release version:
-------------------------------------------
* Now version is controlled by the hexadecimal number __version__ in pylsystem.__version__. Some variables such as ``LPY_VERSION_[STR|MAJOR|MINOR]`` are created. Similar things for ``LPYGUI_VERSION_*``. This number is directly imported into setup.py to create egg. The rev is added in the ``*_VERSION_STR``. **Warning:** the ``__version__`` file has to be committed to obtain the last revision version value.