Learn how easy it is to sync an existing GitHub or Google Code repo to a SourceForge project! See Demo

Close

Diff of /RELEASE_NOTES-pre1.0.txt [000000] .. [73803c] Maximize Restore

  Switch to unified view

a b/RELEASE_NOTES-pre1.0.txt
1
0.7 RELEASE NOTES Jan 17, 2009
2
==============================
3
4
This fixes a reported bug in Pyke and also changes the way that Pyke searches
5
for Pyke source files during initialization so that it depends on the standard
6
Python Path rather than the program's Current Working Directory.
7
8
Please report bugs to http://sourceforge.net/projects/pyke at either:
9
10
    forum => help
11
 or tracker => bugs
12
13
14
INCOMPATIBILITIES WITH 0.6 RELEASE:
15
16
    - The parameters to knowledge_engine.engine.__init__ have changed.  Pyke
17
      no longer searchs the current working directory for your Pyke source
18
      files.  Your Pyke source files must now be located (either directly or
19
      indirectly) under a Python package directory that is on the standard
20
      Python Path.  You must now specify the package name containing your Pyke
21
      source files as a parameter to knowledge_engine.engine.__init__.
22
23
      If you pass any of the load_fc, load_bc, load_fb, or load_qb parameters
24
      to knowledge_engine.engine.__init__, you must now pass these as keyword
25
      parameters.
26
27
28
FEATURE ENHANCEMENTS:
29
30
Added the following features:
31
32
    - Pyke's initialization logic no longer depends on the program's current
33
      working directory, making it easier to run on Windows.
34
    - Pyke can now load its compiled files from a Python .egg file.
35
36
37
BUGS FIXED:
38
39
The following bugs have been fixed:
40
41
    - Fixed bug 2496575: "duplicate knowledge base names" bug
42
43
44
0.6 RELEASE NOTES Dec 30, 2008
45
==============================
46
47
This fixes a reported bug in Pyke and also sets up the examples to be easier
48
to run by not requiring that they be run from a certain directory.  This makes
49
them easier to run from Windows.  The sqlgen and web_framework examples were
50
also changed to use the Sqlite3 database rather than MySQL, again, to make the
51
examples easier to run.
52
53
Pyke's use of the PLY lex and yacc modules has been changed to avoid compiling
54
the scanner and parsers each time Pyke is run.  These changes should also help
55
when running Pyke on IronPython as PLY has some incompatibilities with
56
IronPython.
57
58
Finally, Pyke has been upgraded to run on Python 2.6 without any Deprecation
59
Warnings.  (And Pyke still runs fine on Python 2.5).  But to run Pyke on
60
Python 2.6 you will need the development version of PLY (from subversion)
61
until PLY comes out with it's release 2.6.
62
63
Please report bugs to http://sourceforge.net/projects/pyke at either:
64
65
    forum => help
66
 or tracker => bugs
67
68
69
INCOMPATIBILITIES WITH 0.5 RELEASE:
70
71
    - You must upgrade to PLY version 2.5.  This can be done with:
72
        - easy_install --upgrade ply
73
74
    - If you want to run the web_framework example, you need to upgrade the
75
      HTMLTemplate package to the 1.5 release.  You can use easy_install to
76
      install the 1.5 release, but may need to unintall the older release
77
      manually (I don't remember the prior release of HTMLTemplate being set
78
      up for easy_install). 
79
80
    - The meaning of the generated_root_dir parameter to
81
      knowledge_engine.engine.__init__ has been changed (as well as its name).
82
      The default value produces the same result, so you only need to make
83
      source changes here if you specified a value for this parameter.
84
85
FEATURE ENHANCEMENTS:
86
87
Added the following features:
88
89
    - The examples no longer depend on the program's current working
90
      directory, making them easier to run from Windows.
91
    - The sqlgen and web_framework examples no longer require MySQL.  They
92
      have been converted to Sqlite3 and the Sqlite3 database is included in
93
      the examples directory.  So these examples no longer require setting up
94
      the database first.
95
    - Pyke runs on Python 2.6 without any Deprecation Warnings.
96
        - But you need the development version of PLY until PLY comes out with
97
          its release 2.6.
98
    - Changed Pyke's use of PLY to save the compiled scanner and parser tables
99
      rather than regenerating them each time Pyke is run.  These changes
100
      should also avoid incompatibilities between IronPython and PLY.
101
102
103
BUGS FIXED:
104
105
The following bugs have been fixed:
106
107
    - Fixed bug 2339448: BC rules with nonexistent dependencies
108
    - Fixed bug 2062109: Pyke does not run on IronPython 2.0B3 and Jython 2.5a1
109
        - This fix has now been tested and runs OK on Jython.
110
        - The test on IronPython exposed a bug in IronPython that has been
111
          reported to the IronPython project (as item# 20143 on their bug
112
          tracking list).
113
114
115
0.5 RELEASE NOTES Nov 9, 2008
116
=============================
117
118
This is the first beta release of Pyke.
119
120
Please report bugs to http://sourceforge.net/projects/pyke at either:
121
122
    forum => help
123
 or tracker => bugs
124
125
126
INCOMPATIBILITIES WITH 0.4 RELEASE:
127
128
    - The following functions now return a context manager rather than a
129
      generator.  Note that the parameters to these functions have _not_
130
      changed:
131
        - engine.prove_n
132
        - engine.prove
133
        - engine.lookup
134
        - NOTE: engine.prove_1 is not affected by this change.
135
136
        - YOU NEED TO CHANGE ALL CALLS TO THESE FUNCTIONS FROM:
137
138
            def your_function():
139
                for vars, plan in engine.prove_n(...):
140
                    <for loop body>
141
                <code after for loop>
142
          
143
          TO:
144
145
            from __future__ import with_statement
146
147
            def your_function():
148
                with engine.prove_n(...) as it:
149
                    for vars, plan in it:
150
                        <for loop body>
151
                <code after for loop>
152
153
    - Pyke no longer replicates the source code directory structure under the
154
      compiled_krb directory.  So the compiled_krb directory now has no
155
      subdirectories.
156
        - YOU SHOULD DELETE ALL compiled_krb DIRECTORIES PRIOR TO RUNNING PYKE
157
          0.5.
158
    - The two parameters, gen_root_location and gen_root_pkg, to
159
      knowledge_engine.engine.__init__ have been merged into one parameter.
160
      The default values produce the same result, so you only need to make
161
      source changes here if you specified values for either of the old
162
      parameters.
163
        - generated_root_dir = 'compiled_krb'
164
165
FEATURE ENHANCEMENTS:
166
167
Added the following features:
168
169
    - Changed "Page Last Modified" date to be last svn commit date in html
170
      documentation.
171
    - Added sitemap.xml to doc/html
172
173
174
BUGS FIXED:
175
176
The following bugs have been fixed:
177
178
    - Fixed bug 2062109: Pyke does not run on IronPython 2.0B3 and Jython 2.5a1
179
        - But this fix can not be tested until new releases of IronPython and
180
          Jython are produced.
181
182
183
0.4 RELEASE NOTES Aug 30, 2008
184
==============================
185
186
I expect to move Pyke to beta status soon.
187
188
Please report bugs to http://sourceforge.net/projects/pyke at either:
189
190
    forum => help
191
 or tracker => bugs
192
193
194
INCOMPATIBILITIES WITH 0.3 RELEASE:
195
196
    - Two parameters to knowledge_engine.engine have changed name (but not
197
      meaning):
198
        - gen_dir      is now gen_root_location
199
        - gen_root_dir is now gen_root_pkg
200
201
FEATURE ENHANCEMENTS:
202
203
Added the following features:
204
205
    - Added 'special' commands to be able to run programs from rules and examine
206
      their results:
207
        - special.check_command -- runs program and checks exit status
208
        - special.command -- runs program and returns stdout as tuple of lines
209
        - special.general_command -- runs program and returns (exit_status,
210
                                     stdout, stderr)
211
    - Added .kfb files to make universal facts easier.
212
    - Added question bases and .kqb files so that rules can ask an end user
213
      questions.
214
    - Added a database trace_cursor to examples/web_framework/wsgi_app.py
215
      which is enabled by setting the TRACE_SQL env variable to anything other
216
      than 'False'.
217
    - Added performance testing and profiling harnesses to
218
      examples/web_framework.
219
    - Added default parameter values to engine.prove_1 and engine.prove_n for
220
      fixed_args and num_returns parameters.
221
222
Added the following web pages:
223
224
    - The web pages have been extensively revised with many new pages to help
225
      the person new to logic programming.
226
227
Added the following examples:
228
229
    - learn_pyke as unfinished Computer Based Training example using the new
230
      queston bases.
231
    - towers_of_hanoi as a brute force solution to the Towers of Hanoi puzzle.
232
      This generates multiple solutions (though only one is optimal).
233
234
BUGS FIXED:
235
236
The following bugs have been fixed:
237
238
    - Fixed bug 2041883: installation error "Sorry: IndentationError"
239
    - Fixed: the web_framework example does not do database commits.
240
    - Fixed: small bug in examples/sqlgen/test.py cursor.execute parameters.
241
    - Fixed: examples/web_framework not placing the returned document into a
242
      singleton tuple as per WSGI spec.
243
244
245
0.3 RELEASE NOTES Jun 8, 2008
246
=============================
247
248
I expect only minor feature enhancements at this point and am focusing now
249
on testing.  Often the sources under subversion are more stable than the
250
release.
251
252
Please report bugs to http://sourceforge.net/projects/pyke at either:
253
254
    forum => help
255
 or tracker => bugs
256
257
258
INCOMPATIBILITIES WITH 0.2 RELEASE:
259
260
    - Made use of ':' after rule names in .krb files deprecated.
261
    - Also eliminated use of ':' after 'python' in fc_assertions so that ':' is
262
      no longer used to introduce indented lines in .krb files.
263
    - Changed the url format in the web_framework example from "/1/movie.html"
264
      to "/movie/1/movie.html".
265
266
FEATURE ENHANCEMENTS:
267
268
Added the following features:
269
270
    - Added 'forall'/'require', 'notany', 'first', and 'python' premises to both
271
      fc and bc rules.
272
    - The web_framework example now caches plans.  It should be extremely fast
273
      now!
274
    - Anonymous pattern variables are now any identifier starting with an
275
      underscore.  This allows you to document the variable.
276
    - Allow the 'taking' clause to be indented on the next line after the 'use'
277
      clause without requiring a \ continuation.
278
    - Changed 'python' syntax to allow either a single python statement on the
279
      same line as 'python', or multiple python statements indented under
280
      'python'.
281
    - All .krb files are now automatically recompiled whenever the pyke version
282
      changes.
283
    - Top-level testall script.
284
285
Added the following web pages:
286
287
    - KRB Syntax => Compound Premise
288
    - Examples
289
    - PyCon 2008 Paper
290
291
Added the following examples:
292
293
    - knapsack example.  This is a small example that came up at the PyCon 2008
294
      conference.
295
    - findall example.  This is mostly for testing the new forall premise
296
      combined with the new 'python' premise.
297
    - forall example.  This is mostly for testing the new forall premise.
298
    - notany example.  This is mostly for testing the new notany premise.
299
300
BUGS FIXED:
301
302
The following bugs have been fixed:
303
304
    The 'python' assertion in fc rules didn't work.
305
306
307
0.2 RELEASE NOTES Mar 05, 2008
308
==============================
309
310
I expect only minor feature enhancements at this point and am focusing now
311
on testing.  Often the sources under subversion are more stable than the
312
alpha release.
313
314
Please report bugs to http://sourceforge.net/projects/pyke at either:
315
316
    forum => help
317
 or tracker => bugs
318
319
320
INCOMPATIBILITIES WITH 0.1.alpha2 RELEASE:
321
322
The top-level pyke package code has been moved into a standard module called
323
knowledge_engine.py.  Therefore, you need to:
324
325
    1.  Change all "import pyke" lines to "from pyke import knowledge_engine".
326
    2.  Change all "pyke.engine(...)" calls to "knowledge_engine.engine(...)".
327
328
329
FEATURE ENHANCEMENTS:
330
331
Added the following web pages:
332
333
    Logic Tricks
334
335
Added the following features:
336
337
    - engine.print_stats()
338
    - engine.trace and engine.untrace functions to trace backward-chaining
339
      rules.
340
    - added "allow_vars" parameter to "as_data" methods.
341
    - added test.py module to pyke package.  This lets you type in goals and
342
      run them interactively to help debug your rules.  Also allows you to
343
      test the plan functions returned from goals.
344
345
Added the following examples:
346
347
    - To family_relations:
348
349
        fc_example.krb
350
        bc_example.krb
351
        bc2_example.krb (a few rule optimizations make it 100 times faster
352
                         than bc_example.krb)
353
        
354
        Many enhancements to test.py, including a "general" function to show
355
        how to create your own patterns to prove fully general goals with
356
        pattern variables anywhere in the arguments.
357
358
    - Added sqlgen example.  This automatically generates sql statements,
359
      figuring out how to join tables together to get needed data.  This runs
360
      against MySQL and introspects the schema automatically.
361
362
    - Added web_framework example.  This uses the HTMLTemplate facility as its
363
      templating engine.  It automatically builds the program to render the
364
      templates, including using the sqlgen rule base to automatically build
365
      the sql statements to retrieve the data needed by the template.
366
367
BUGS FIXED:
368
369
The following bugs have been fixed:
370
371
#1908852 unpickling a plan causes most of pyke to be imported.
372
#1908855 a comment on same line as "check" premise causes syntax errors in
373
         generated .py files.
374
#1908856 tuple patterns treat strings as tuples
375
#1908862 *_plans.py files not reloaded
376
#1908867 engine.reset wasn't reseting forward-chaining rules.
377
#1908870 variable binding loops were possible.
378
#1908875 rest_var in pattern tuple not checked properly.
379
#1908877 debug messages are being printed when .krb syntax errors are
380
         encountered.
381
#1908880 prove_n and prove_1 were not converting prototype plans stored in
382
         pattern variables into plan functions.
383
384
385
0.1.alpha2 RELEASE NOTES Feb 12, 2008
386
=====================================
387
388
I expect only minor feature enhancements at this point and am focusing now
389
on testing.  Often the sources under subversion are more stable than the
390
alpha release.
391
392
Please report bugs to http://sourceforge.net/projects/pyke at either:
393
394
    forum => help
395
 or tracker => bugs
396
397
398
INCOMPATIBILITIES WITH PRIOR RELEASE:
399
400
The pyke inference engine was converted into an object so that multiple
401
instances can be used simultaniously running different rule bases.  This
402
changed the top-level interfaces into pyke.  The "load" function is now
403
the constructor on the pyke.engine class.  There have been some new
404
arguments added to it since the alpha1 release.  See the new "Using Pyke"
405
web page.
406
407
All other top-level pyke.X functions are now <engine_obj>.X methods.
408
The function names and arguments remain the same.
409
410
The .krb syntax has not changed, but the compiled python modules have.  If
411
you are upgrading from the alpha1 release, the compiled python modules are
412
now placed into a ./compiled_krb directory which is created automatically.
413
(You can change the location and/or name of this directory through the new
414
arguments to the pyke.engine constructor).  You'll need to delete the
415
generated *_fc.py, *_bc.py, and *_plans.py files and their corresponding
416
.pyc and .pyo files.
417
418
If you are upgrading from a subversion release and already have generated
419
python modules in a "compiled_krb" directory, you will need to either delete
420
the generated *_fc.py, *_bc.py, and *_plans.py files or "touch" your *.krb
421
files to cause them to be recompiled by the new system.
422
423
FEATURE ENHANCEMENTS:
424
425
The following Feature Requests have been implemented:
426
427
#1865574: Create top-level pyke class
428
    See INCOMPATIBILITIES, above.
429
430
A krb_traceback module has been added to translate filename, line,
431
linenumber and function name information from the generated python modules
432
into equivalent information for the source .krb files.
433
See the new "Using Pyke" web page.
434
435
Substantial changes to the following web pages:
436
437
    Using Pyke
438
    Overview -> Plans
439
    Overview -> Knowledge Bases -> Rule Bases
440
    KRB Syntax -> Bc_rule
441
442
BUGS FIXED:
443
444
The following Bugs have been fixed:
445
446
#1864966: PYTHONPATH ignored for compiler invocation 
447
#1861999: update clause plan documentation
448
#1861997: sys.path must match pyke.load()
449
#1861993: extending mismatch between activate and prove
450
#1861992: plan enumeration is broken
451
#1861988: prove_1 exception error
452
#1843445: KeyError in _unbind
453
#1843408: facts are not matched in the correct order
454
#1843395: "%(rule_name)s" in error text
455
#1830762: "'python2.5' is not recognized" on windows
456
457
458
0.1.alpha1 RELEASE NOTES Nov 9, 2007
459
====================================
460
461
0.1.alpha1 is the first alpha release of pyke.
462
463
I expect only minor feature enhancements at this point and am focusing now
464
on testing.
465
466
Please report bugs to http://sourceforge.net/projects/pyke at either:
467
468
    forum => help
469
 or tracker => bugs