v4.13
[language-befunge.git] / Changes
blobb4d10777e6750ab8cbf65d73dcb2aa9dadcc6074
1 Revision history for Language::Befunge.
3 High-level changelog
4 ====================
6 4.0x    LB:LS split in LBS/LBW, extensions
7 3.0x    multidims, multiops possibilities
8 2.0x    optimizing + test coverage
9 1.2x    real LaheySpace support
10 1.1x    support for Build.PL
11 1.0x    official release + mailing-list
12 0.3x    oo interface
13 0.2x    libraries semantics
14 0.0x    initial work, with basic capabilities
17 Low-level changelog
18 ===================
20 4.13 Sat May 22 18:20:27 2010
21  - fix #57721: test suite fails with test::simple 0.95
23 4.12 Tue Jul  7 16:41:51 2009
24  - fix #47642: missing prereqs
26 4.11 Thu Jun  4 20:24:49 CEST 2009
27  - new fingerprint: CPLI - complex numbers extension
28  - new fingerprint: DIRF - directory operations
29  - new fingerprint: FILE - file i/o operations
30  - new fingerprint: FIXP - fixed point operations
31  - new fingerprint: STRN - string operations
32  - new fingerprint: SUBR - subroutines extension
33  - new fingerprint: TIME - date/time operations
34  - debug() now a plain sub in Language::Befunge::Debug, for a ~20% speedup
35  - tests sanitized (ported to test::more, test::output and test::exception)
37 4.10 Sun Apr  5 15:44:57 CEST 2009
38  - new infinite loop detection (mark)
40 4.09 Sat Jan 17 14:34:08 CET 2009
41  - using class::xsaccessor internally, for a 10% speedup
43 4.08 Sun Nov 16 11:23:13 CET 2008
44  - change libs semantics when unloading under stack
45  - fix on some extensions
47 4.07 Sat Nov 15 19:44:27 CET 2008
48  - fix month in y instruction
49  - new fingerprint: BASE - non-standard math bases extension
50  - new fingerprint: BOOL - boolean operations extension
51  - new fingerprint: EVAR - environment variables extention
52  - new fingerprint: HRTI - high-resolution timer extension
53  - new fingerprint: MODU - modulo arithmetic extension
55 4.06 Tue Nov 11 17:50:47 CET 2008
56  - new fingerprint: NULL - extension to opacify loaded extensions
57  - new fingerprint: ORTH - orthogonal easement extension
58  - new fingerprint: PERL - extension to embed perl within bBefunge
59  - new fingerprint: REFC - referenced cells extension
60  - new fingerprint: ROMA - roman numerals extension
62 4.05 Mon Nov 10 15:46:00 CET 2008
63  - handprint changed to JQBF
64  - mycology compliance. this comes with some changes in unclear semantics:
65         . spaces and comments are now slurped in 0 tick
66         . k interprets the instructions at its position
68 4.04 Mon Jul 28 18:54:02 CEST 2008
69  - speeding LBS->store by 55+% (mark)
70  - input not cached per ip, but per interpreter (mark)
71  - bringing test coverage up to 100% (mark, jq)
73 4.03 Fri Jul  4 12:14:45 CEST 2008
74  - adding 'm' opcode (z if) (mark)
75  - completing code coverage up to 97.5% (mark, jq)
76  - adding optional module for TEST lib (jq)
78 4.02 Thu Jul  3 20:44:11 CEST 2008
79  - completing list of required modules, even if a corelist one
80  - providing empty base class LBW
82 4.01 Mon Jun  9 17:33:48 CEST 2008
83  - Test::Exception now a hard prereq of the module
85 4.00 Sun Jun  8 17:08:22 CEST 2008
86  - split LB::LaheySpace in LB::Storage and LB::Wrapping (jq, mark)
87  - first storage implementations:
88     . LBS:2D:Sparse      2-dims, sparse hash (jq)
89     . LBS:Generic:AoA    n-dims, array of arrays (jq, mark)
90     . LBS:Generic:Vec    n-dims, vec-based, supporting lbsgvxs (mark)
91     . LBS:Generic:Sparse n-dims, sparse hash (mark)
92  - first wrapping implementations:
93     . LBW:LaheySpace    funge98 wrapping (jq)
94  - LBI->new:
95     . stricter params checking (jq)
96     . easier to expand with syntaxes (jq)
97     . new alternative syntaxes (mark)
98  - requiring perl 5.10 (jq, mark)
99  - API changes:
100     . LBV has additional rasterize method (moved and expanded from LBGSGA) (mark)
101     . LBV supports accelerated rasterize method in LBVXS > 1.0.0 (mark)
102     . labels_lookup should return Vector objects (mark)
103     . expand() should exist for all Storage modules (mark)
104     . add get_dims() to the Storage API (mark)
105  - new befunge lib: TEST (book)
109 3.05 Tue Jan 22 17:52:27 CET 2008
110  - LBV now uses an array internally for more efficiency
111  - LBV tries to load transparently LBVXS for even more speed
112  - LB:LaheySpace.pm now also understand \r\n and \r terminated programs
113  - some tests cleaning
115 3.04 Wed Jan  9 17:50:58 CET 2008
116  - more robust way of skipping tests when Test::Exception isn't present
117    . fix t/1-classes/vector.t and t/3-lahey/generic.t
118    . fix RT ticket #32164
120 3.03 Sun Jan  6 19:05:09 CET 2008
121  - tests reorganized
123 3.02 Mon Nov 26 13:02:20 CET 2007
124  - kwalitee/cpants release
126 3.01 Wed Oct 24 14:22:24 CEST 2007
127  - fixing stricture
129 3.00 Fri Sep 28 17:41:27 CEST 2007
130  - new LB::Vector class for abstracting dimension (mark)
131  - new LB::LaheySpace::Generic, a n-dims laheyspace (mark)
132  - support for n-dims
133  - ops now belong to their own modules, with one test per op
134  - new LB::Interpreter class to create the combination dims / ops
135  - possibility to choose the set of ops: unefunge, befunge, generic-funge
136  - move to lib/ layout
140 2.08 Mon May 28 19:36:11 CEST 2007
141  - skipping a failing exec test on windows
143 2.07 Sat May 26 15:05:46 CEST 2007
144  - kwalitee release: LICENSE, pod tests, etc.
146 2.06 Tue May  2 18:02:12 CEST 2006
147  - corrected input error introduced during accessor split
148  - migrated 02befunge.t, 10stdio.t and 22lib.t to Test::More
149  - added tests for generic Befunge.pm test
150  - added tests for output errors
151  - added tests for library semantics
153 2.05 Mon May  1 18:34:18 CEST 2006
154  - migrated 03ip.t to Test::More
155  - updated 03ip.t to 100% cover L::B::IP
156  - updated 04lahey.t to 100% cover L::B::LaheySpace
157  - test-suite coverage is now 95.7%
159 2.04 Sun Apr 30 15:47:16 CEST 2006
160  - removed cargo-cult proto in constructors
161  - removed OO indirect notations
162  - renamed private methods to begin with _
163  - migrated 04lahey.t to Test::More
164  - ran coverage on the test-suite: 93.6%
166 2.03 Fri Feb 17 17:04:49 CET 2006
167  - use-ing integer for faster computations
169 2.02 Fri Feb 17 15:36:08 CET 2006
170  - rewritten accessors for L::B::IP, using same technik as L::B
171  - doc updated
173 2.01 Fri Feb 17 15:15:43 CET 2006
174  - rewritten accessors generation, for another speedup
175  - adapted the documentation
177 2.00 Fri Feb 17 14:48:54 CET 2006
178  - splitted accessors for L::B in get_* and set_*, for a small speedup. note:
179    this will break your code if you're running your own inner-loop!
180  - beginning of L::B 2.x, an optimization serie
184 1.20 Mon Feb 13 18:08:28 CET 2006
185  - fixed wrapping in L::B::LaheySpace::move_ip_forward to comply with
186    LaheySpace specs (mark)
188 1.11 Tue Feb  7 18:07:03 CET 2006
189  - fixed L::B::IP->svalue returning undef on non-existent stack depth (mark)
191 1.10 Tue Feb  7 15:05:13 CET 2006
192  - included a Module::Builder mechanism (old scheme with Makefile.PL is preserved)
196 1.06 Mon Feb  6 21:04:04 CET 2006
197  - reworked Makefile.PL (now more light-weight)
198  - added a TODO file
200 1.05 Mon Feb  6 19:01:37 CET 2006
201  - fixing wrapping when ip delta is greater than lahey space width or height (mark)
203 1.04 Wed Feb  1 17:38:49 CET 2006
204  - detecting infinite loop on bogus funges in move_curip (mark)
206 1.03 Mon Jan  2 21:20:07 CET 2006
207  - fixing failed test on 64bits platforms (mark)
209 1.02 Fri Dec  2 21:44:48 CET 2005
210  - enhanced input checking, dealing correctly with non-ascii characters
211    (with the help of Mark Glines)
213 1.01 Sat Nov 26 16:22:23 CET 2005
214  - unrolling k instruction to avoid deep recursion warning (mark)
216 1.00 Thu Oct 28 19:13:59 CEST 2004
217  - i instruction support binary flag (book)
218  - mailing-list available: language-befunge@mongueurs.net
219  - stable for now 2 years, -98 fully implemented: sane basis for further work
220    on the module
224 0.38 Fri May  3 14:47:09 CEST 2002
225  - Removed a (silly) debug message.
226  - Fool-proof for ascii input.
227  - Numeric input works with LB::IP::input() (just as ascii input).
228  - Numeric input asks for input until it gets a valid input.
230 0.37 Wed Apr 24 08:54:00 CEST 2002
231  - New mechanism of libraries loading: loading instances of extension instead
232    of a plain module.
233  - doc/library.pod modified to reflect this.
235 0.36 Mon Apr 22 20:44:10 CEST 2002
236  - jqbf98 now understands the -v flag (verbose)
237  - New examples tpr00.bf, palin.bf
238  - IP.pm now has two methods spush_vec and spop_vec. Befunge.pm modified to
239    take advantage of those methods.
240  - IP.pm now has a method spush_args to push (and convert) arguments on the stack.
241  - IP.pm comes with a storage facility to allow library to fetch and store
242    whatever data they want. This is highly experimental and the interface may
243    change in future releases.
245 0.35 Tue Apr 16 17:20:29 CEST 2002
246  - LaheySpace::labels_lookup() now also returns the velocity that found the label.
247  - Minor pod update.
249 0.34 Tue Apr 16 15:00:27 CEST 2002
250  - Minor bug fix in LaheySpace.pm. I discovered it by chance, since it's
251    a tiny little bug that did not seem to break anything.
252  - LaheySpace now has a labels_lookup() method, that allow to search for
253    labels inside comments. This will be used in Inline::Befunge and maybe
254    some extensions will use this non-standard mechanism.
255  - Minor update to doc/library.pod
257 0.33 Mon Apr 15 17:21:23 CEST 2002
258  - Fancy stuff added in order to support Inline::Befunge (does not change
259    the default behavior)
260  - One more debug message
262 0.32 Mon Apr 15 12:01:53 CEST 2002
263  - POD fixing in doc/library.pod
265 0.31 Mon Apr 15 09:41:21 CEST 2002
266  - Smarter way of handling parameters.
267  - jqbf98 interpreter now handles parameters.
269 0.30 Sun Apr 14 15:53:19 CEST 2002
270  - Befunge.pm now has an Object Oriented interface.
271  - rewriting tests to take the new interface into account.
275 0.20 Sat Apr 13 13:08:17 CEST 2002
276  - Befunge.pm modified to understand libraries semantics:
277    parens (to load/unload) and capital letters.
278  - IP modified in order to accept the libraries semantics.
279  - New directory lib/ where to put libraries.
280  - New libraries FOO and HELO
281  - New test 22lib -> test libraries semantics.
282  - Pod completed in Befunge.pm
283  - Tutorial (doc/library.pod) on how to build new extensions.
284  - all instructions implemented in instr.txt
288 0.12 Fri Apr 12 18:51:04 CEST 2002
289  - Shipped with some examples.
290  - Shipped with the Funge-98 specs.
292 0.11 Fri Apr 12 18:33:09 CEST 2002
293  - Bug fix in the way spaces are handled in strings.
294  - Bug fix in numeric input.
295  - Bug fix in ascii input.
296  - New script jqbf98, a standalone interpreter.
297  - Rewrite of Makefile.PL to install this file.
299 0.10 Fri Apr 12 15:04:10 CEST 2002
300  - More POD documentation.
301  - Bug fix in instruction t.
302  - More debug messages.
303  - New test 21concur.t -> tests concurrent Funge.
305 0.09 Fri Apr 12 12:05:03 CEST 2002
306  - Bug fix in y instruction (flags).
307  - Bug fix in y instruction (size of TOSS).
308  - 20th field of y instruction returns ENV sorted by keys.
309  - More debug messages in Befunge.pm
310  - New test 20system.t -> tests exec and info retrieval
312 0.08 Thu Apr 11 19:34:38 CEST 2002
313  - Fixed some bad API calls in Befunge.pm
314  - Bug fix in LaheySpace.pm
315  - More debug messages in Befunge.pm
316  - Minor bug fix in output file for text flag.
317  - New test 19storg.t -> tests storage
318  - 10stdio.t extended to test input and output file.
320 0.07 Thu Apr 11 17:49:03 CEST 2002
321  - Fixed a bug in IP.pm and 03ip.pm
322  - Fixed some bad API calls in Befunge.pm
323  - More debug messages.
324  - New test 18sos.t -> tests stack stack manipulation
325  - instr.txt rewritten.
327 0.06 Thu Apr 11 15:06:50 CEST 2002
328  - Pod cleaning in LaheySpace.pm.
329  - Some bug fixes in Befunge.pm
330  - New test 16string.t -> tests string thingies
331  - New test 17stack.t  -> tests stack stuff
333 0.05 Thu Apr 11 14:25:10 CEST 2002
334  - Completed 14flow.t
335  - New test 15decis.t -> tests decision making
337 0.04 Thu Apr 11 12:04:30 CEST 2002
338  - store_code includes magic to display the correct filename in error msgs.
339  - instr.txt explained.
340  - Bug fixes for control flow instructions.
341  - New test 13dir.t  -> tests direction changing
342  - New test 14flow.t -> tests flow control
344 0.03  Thu Apr 11 09:59:28 CEST 2002
345  - Bug fix with string-mode.
346  - Debug facilities.
347  - New test 02befunge.t -> tests the exported functions
348  - New test 10stdio.t   -> tests ,. and space
349  - New test 11nums.t    -> tests 0-9a-f
350  - New test 12maths.t   -> tests +-*/%
351  - New file inst.txt with the instruction and their current
352    status (tested with a X).
354 0.02  Wed Apr 10 14:22:31 CEST 2002
355  - New function store_code.
356  - Language::Befunge synopsis extended.
358 0.01  Wed Apr 10 14:01:20 CEST 2002
359  - Original version.
360  - Every instruction is implemented, but _not_ tested.
361  - Module LaheySpace written and tested.
362  - Module IP written and tested.