-
Notifications
You must be signed in to change notification settings - Fork 34
/
RELEASE_NOTES-pre1.0.txt
469 lines (328 loc) · 16.3 KB
/
RELEASE_NOTES-pre1.0.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
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
0.7 RELEASE NOTES Jan 17, 2009
==============================
This fixes a reported bug in Pyke and also changes the way that Pyke searches
for Pyke source files during initialization so that it depends on the standard
Python Path rather than the program's Current Working Directory.
Please report bugs to http://sourceforge.net/projects/pyke at either:
forum => help
or tracker => bugs
INCOMPATIBILITIES WITH 0.6 RELEASE:
- The parameters to knowledge_engine.engine.__init__ have changed. Pyke
no longer searchs the current working directory for your Pyke source
files. Your Pyke source files must now be located (either directly or
indirectly) under a Python package directory that is on the standard
Python Path. You must now specify the package name containing your Pyke
source files as a parameter to knowledge_engine.engine.__init__.
If you pass any of the load_fc, load_bc, load_fb, or load_qb parameters
to knowledge_engine.engine.__init__, you must now pass these as keyword
parameters.
FEATURE ENHANCEMENTS:
Added the following features:
- Pyke's initialization logic no longer depends on the program's current
working directory, making it easier to run on Windows.
- Pyke can now load its compiled files from a Python .egg file.
BUGS FIXED:
The following bugs have been fixed:
- Fixed bug 2496575: "duplicate knowledge base names" bug
0.6 RELEASE NOTES Dec 30, 2008
==============================
This fixes a reported bug in Pyke and also sets up the examples to be easier
to run by not requiring that they be run from a certain directory. This makes
them easier to run from Windows. The sqlgen and web_framework examples were
also changed to use the Sqlite3 database rather than MySQL, again, to make the
examples easier to run.
Pyke's use of the PLY lex and yacc modules has been changed to avoid compiling
the scanner and parsers each time Pyke is run. These changes should also help
when running Pyke on IronPython as PLY has some incompatibilities with
IronPython.
Finally, Pyke has been upgraded to run on Python 2.6 without any Deprecation
Warnings. (And Pyke still runs fine on Python 2.5). But to run Pyke on
Python 2.6 you will need the development version of PLY (from subversion)
until PLY comes out with it's release 2.6.
Please report bugs to http://sourceforge.net/projects/pyke at either:
forum => help
or tracker => bugs
INCOMPATIBILITIES WITH 0.5 RELEASE:
- You must upgrade to PLY version 2.5. This can be done with:
- easy_install --upgrade ply
- If you want to run the web_framework example, you need to upgrade the
HTMLTemplate package to the 1.5 release. You can use easy_install to
install the 1.5 release, but may need to unintall the older release
manually (I don't remember the prior release of HTMLTemplate being set
up for easy_install).
- The meaning of the generated_root_dir parameter to
knowledge_engine.engine.__init__ has been changed (as well as its name).
The default value produces the same result, so you only need to make
source changes here if you specified a value for this parameter.
FEATURE ENHANCEMENTS:
Added the following features:
- The examples no longer depend on the program's current working
directory, making them easier to run from Windows.
- The sqlgen and web_framework examples no longer require MySQL. They
have been converted to Sqlite3 and the Sqlite3 database is included in
the examples directory. So these examples no longer require setting up
the database first.
- Pyke runs on Python 2.6 without any Deprecation Warnings.
- But you need the development version of PLY until PLY comes out with
its release 2.6.
- Changed Pyke's use of PLY to save the compiled scanner and parser tables
rather than regenerating them each time Pyke is run. These changes
should also avoid incompatibilities between IronPython and PLY.
BUGS FIXED:
The following bugs have been fixed:
- Fixed bug 2339448: BC rules with nonexistent dependencies
- Fixed bug 2062109: Pyke does not run on IronPython 2.0B3 and Jython 2.5a1
- This fix has now been tested and runs OK on Jython.
- The test on IronPython exposed a bug in IronPython that has been
reported to the IronPython project (as item# 20143 on their bug
tracking list).
0.5 RELEASE NOTES Nov 9, 2008
=============================
This is the first beta release of Pyke.
Please report bugs to http://sourceforge.net/projects/pyke at either:
forum => help
or tracker => bugs
INCOMPATIBILITIES WITH 0.4 RELEASE:
- The following functions now return a context manager rather than a
generator. Note that the parameters to these functions have _not_
changed:
- engine.prove_n
- engine.prove
- engine.lookup
- NOTE: engine.prove_1 is not affected by this change.
- YOU NEED TO CHANGE ALL CALLS TO THESE FUNCTIONS FROM:
def your_function():
for vars, plan in engine.prove_n(...):
<for loop body>
<code after for loop>
TO:
from __future__ import with_statement
def your_function():
with engine.prove_n(...) as it:
for vars, plan in it:
<for loop body>
<code after for loop>
- Pyke no longer replicates the source code directory structure under the
compiled_krb directory. So the compiled_krb directory now has no
subdirectories.
- YOU SHOULD DELETE ALL compiled_krb DIRECTORIES PRIOR TO RUNNING PYKE
0.5.
- The two parameters, gen_root_location and gen_root_pkg, to
knowledge_engine.engine.__init__ have been merged into one parameter.
The default values produce the same result, so you only need to make
source changes here if you specified values for either of the old
parameters.
- generated_root_dir = 'compiled_krb'
FEATURE ENHANCEMENTS:
Added the following features:
- Changed "Page Last Modified" date to be last svn commit date in html
documentation.
- Added sitemap.xml to doc/html
BUGS FIXED:
The following bugs have been fixed:
- Fixed bug 2062109: Pyke does not run on IronPython 2.0B3 and Jython 2.5a1
- But this fix can not be tested until new releases of IronPython and
Jython are produced.
0.4 RELEASE NOTES Aug 30, 2008
==============================
I expect to move Pyke to beta status soon.
Please report bugs to http://sourceforge.net/projects/pyke at either:
forum => help
or tracker => bugs
INCOMPATIBILITIES WITH 0.3 RELEASE:
- Two parameters to knowledge_engine.engine have changed name (but not
meaning):
- gen_dir is now gen_root_location
- gen_root_dir is now gen_root_pkg
FEATURE ENHANCEMENTS:
Added the following features:
- Added 'special' commands to be able to run programs from rules and examine
their results:
- special.check_command -- runs program and checks exit status
- special.command -- runs program and returns stdout as tuple of lines
- special.general_command -- runs program and returns (exit_status,
stdout, stderr)
- Added .kfb files to make universal facts easier.
- Added question bases and .kqb files so that rules can ask an end user
questions.
- Added a database trace_cursor to examples/web_framework/wsgi_app.py
which is enabled by setting the TRACE_SQL env variable to anything other
than 'False'.
- Added performance testing and profiling harnesses to
examples/web_framework.
- Added default parameter values to engine.prove_1 and engine.prove_n for
fixed_args and num_returns parameters.
Added the following web pages:
- The web pages have been extensively revised with many new pages to help
the person new to logic programming.
Added the following examples:
- learn_pyke as unfinished Computer Based Training example using the new
queston bases.
- towers_of_hanoi as a brute force solution to the Towers of Hanoi puzzle.
This generates multiple solutions (though only one is optimal).
BUGS FIXED:
The following bugs have been fixed:
- Fixed bug 2041883: installation error "Sorry: IndentationError"
- Fixed: the web_framework example does not do database commits.
- Fixed: small bug in examples/sqlgen/test.py cursor.execute parameters.
- Fixed: examples/web_framework not placing the returned document into a
singleton tuple as per WSGI spec.
0.3 RELEASE NOTES Jun 8, 2008
=============================
I expect only minor feature enhancements at this point and am focusing now
on testing. Often the sources under subversion are more stable than the
release.
Please report bugs to http://sourceforge.net/projects/pyke at either:
forum => help
or tracker => bugs
INCOMPATIBILITIES WITH 0.2 RELEASE:
- Made use of ':' after rule names in .krb files deprecated.
- Also eliminated use of ':' after 'python' in fc_assertions so that ':' is
no longer used to introduce indented lines in .krb files.
- Changed the url format in the web_framework example from "/1/movie.html"
to "/movie/1/movie.html".
FEATURE ENHANCEMENTS:
Added the following features:
- Added 'forall'/'require', 'notany', 'first', and 'python' premises to both
fc and bc rules.
- The web_framework example now caches plans. It should be extremely fast
now!
- Anonymous pattern variables are now any identifier starting with an
underscore. This allows you to document the variable.
- Allow the 'taking' clause to be indented on the next line after the 'use'
clause without requiring a \ continuation.
- Changed 'python' syntax to allow either a single python statement on the
same line as 'python', or multiple python statements indented under
'python'.
- All .krb files are now automatically recompiled whenever the pyke version
changes.
- Top-level testall script.
Added the following web pages:
- KRB Syntax => Compound Premise
- Examples
- PyCon 2008 Paper
Added the following examples:
- knapsack example. This is a small example that came up at the PyCon 2008
conference.
- findall example. This is mostly for testing the new forall premise
combined with the new 'python' premise.
- forall example. This is mostly for testing the new forall premise.
- notany example. This is mostly for testing the new notany premise.
BUGS FIXED:
The following bugs have been fixed:
The 'python' assertion in fc rules didn't work.
0.2 RELEASE NOTES Mar 05, 2008
==============================
I expect only minor feature enhancements at this point and am focusing now
on testing. Often the sources under subversion are more stable than the
alpha release.
Please report bugs to http://sourceforge.net/projects/pyke at either:
forum => help
or tracker => bugs
INCOMPATIBILITIES WITH 0.1.alpha2 RELEASE:
The top-level pyke package code has been moved into a standard module called
knowledge_engine.py. Therefore, you need to:
1. Change all "import pyke" lines to "from pyke import knowledge_engine".
2. Change all "pyke.engine(...)" calls to "knowledge_engine.engine(...)".
FEATURE ENHANCEMENTS:
Added the following web pages:
Logic Tricks
Added the following features:
- engine.print_stats()
- engine.trace and engine.untrace functions to trace backward-chaining
rules.
- added "allow_vars" parameter to "as_data" methods.
- added test.py module to pyke package. This lets you type in goals and
run them interactively to help debug your rules. Also allows you to
test the plan functions returned from goals.
Added the following examples:
- To family_relations:
fc_example.krb
bc_example.krb
bc2_example.krb (a few rule optimizations make it 100 times faster
than bc_example.krb)
Many enhancements to test.py, including a "general" function to show
how to create your own patterns to prove fully general goals with
pattern variables anywhere in the arguments.
- Added sqlgen example. This automatically generates sql statements,
figuring out how to join tables together to get needed data. This runs
against MySQL and introspects the schema automatically.
- Added web_framework example. This uses the HTMLTemplate facility as its
templating engine. It automatically builds the program to render the
templates, including using the sqlgen rule base to automatically build
the sql statements to retrieve the data needed by the template.
BUGS FIXED:
The following bugs have been fixed:
#1908852 unpickling a plan causes most of pyke to be imported.
#1908855 a comment on same line as "check" premise causes syntax errors in
generated .py files.
#1908856 tuple patterns treat strings as tuples
#1908862 *_plans.py files not reloaded
#1908867 engine.reset wasn't reseting forward-chaining rules.
#1908870 variable binding loops were possible.
#1908875 rest_var in pattern tuple not checked properly.
#1908877 debug messages are being printed when .krb syntax errors are
encountered.
#1908880 prove_n and prove_1 were not converting prototype plans stored in
pattern variables into plan functions.
0.1.alpha2 RELEASE NOTES Feb 12, 2008
=====================================
I expect only minor feature enhancements at this point and am focusing now
on testing. Often the sources under subversion are more stable than the
alpha release.
Please report bugs to http://sourceforge.net/projects/pyke at either:
forum => help
or tracker => bugs
INCOMPATIBILITIES WITH PRIOR RELEASE:
The pyke inference engine was converted into an object so that multiple
instances can be used simultaniously running different rule bases. This
changed the top-level interfaces into pyke. The "load" function is now
the constructor on the pyke.engine class. There have been some new
arguments added to it since the alpha1 release. See the new "Using Pyke"
web page.
All other top-level pyke.X functions are now <engine_obj>.X methods.
The function names and arguments remain the same.
The .krb syntax has not changed, but the compiled python modules have. If
you are upgrading from the alpha1 release, the compiled python modules are
now placed into a ./compiled_krb directory which is created automatically.
(You can change the location and/or name of this directory through the new
arguments to the pyke.engine constructor). You'll need to delete the
generated *_fc.py, *_bc.py, and *_plans.py files and their corresponding
.pyc and .pyo files.
If you are upgrading from a subversion release and already have generated
python modules in a "compiled_krb" directory, you will need to either delete
the generated *_fc.py, *_bc.py, and *_plans.py files or "touch" your *.krb
files to cause them to be recompiled by the new system.
FEATURE ENHANCEMENTS:
The following Feature Requests have been implemented:
#1865574: Create top-level pyke class
See INCOMPATIBILITIES, above.
A krb_traceback module has been added to translate filename, line,
linenumber and function name information from the generated python modules
into equivalent information for the source .krb files.
See the new "Using Pyke" web page.
Substantial changes to the following web pages:
Using Pyke
Overview -> Plans
Overview -> Knowledge Bases -> Rule Bases
KRB Syntax -> Bc_rule
BUGS FIXED:
The following Bugs have been fixed:
#1864966: PYTHONPATH ignored for compiler invocation
#1861999: update clause plan documentation
#1861997: sys.path must match pyke.load()
#1861993: extending mismatch between activate and prove
#1861992: plan enumeration is broken
#1861988: prove_1 exception error
#1843445: KeyError in _unbind
#1843408: facts are not matched in the correct order
#1843395: "%(rule_name)s" in error text
#1830762: "'python2.5' is not recognized" on windows
0.1.alpha1 RELEASE NOTES Nov 9, 2007
====================================
0.1.alpha1 is the first alpha release of pyke.
I expect only minor feature enhancements at this point and am focusing now
on testing.
Please report bugs to http://sourceforge.net/projects/pyke at either:
forum => help
or tracker => bugs