[languages/lisp]
[parrot.git] / ChangeLog
blobf2ec387648ff6806b8844b21a544842abce57113
1 #1 $Id$
3 2007.05.15    chromatic
4         * Released 0.4.12
5         See NEWS for more.
7 2007.04.17    mdiep
8         * Released 0.4.11
9         See NEWS for more.
11 2007.03.20    coke
12         * Released 0.4.10
13         See NEWS for more.
15 2007.3.10     coke
16         * removed parakeet
18 2007.02.22    pmichaud
19         * Released 0.4.9
20         See NEWS for more.
22 2007.01.17    chromatic
23         * changed 'name' method on namespaces to 'get_name' per pdd21
25 2007.01.16    particle
26         * Released 0.4.8
27         See NEWS for more.
29 2006.12.12    particle
30         * added C<isnull> opcode
32 2006.11.14    chip
33         * Released 0.4.7
34         See NEWS for more.
36 2006.11.07      tewk
37         * added :init pragma functionality to subs
39 2006.10.28      jonathan
40         * added :vtable pragma functionality to subs
42 2006.09.18    chromatic
43         * added Parrot::Embed under ext/Parrot-Embed
45 2006.08.18    leo
46         * remove the None PMC - if needed it can trivially be reimplemented
47           in languages from r14189
49 2006.08.16    creiss
50         Merged Software Transactional Memory branch into trunk, adds:
51         * several new opcodes whose names start with stm_
52         * read-only PMC support
53         * several new PMC types (whose names start with STM*)
54         * support for threads (again)
56 2006.08.08    chip
57         * Released 0.4.6
58         See NEWS for more.
60 2006.08.02    chip
61         * opcodes: "in PMC" is no longer a synonym for "invar PMC";
62         there are opcodes now that want the real "in PMC".
63         * namespace and global opcodes now accept name arrays again, as
64         well as keys; the corresponding namespace PMC methods are gone.
66 2006.07.21    leo
67         * Parrot_exit, Parrot_on_exit take now an Interp * argument
69 2006.07.25    chip
70         * add experimental op find_type_i_p
71         * fix longstanding bug that sometimes didn't encode pasm keys as
72         Key PMCs (specifically "[S0]" and "['stringliteral']").
74 2006.07.24    chip
75         further implementation of new pdd21:
76         * new opcodes {get,set}*global
77           (old {find,store}*global will be supported for a short while)
79 2006.07.20    audreyt
80         * --maintainer prerequesites are now bison 2.2+ and flex 2.5.3x
81           (or some such --leo) 
82           (at the moment code is checking for 2.0 -- ambs)
84 2006.07.17    chip
85         partial implementation of new pdd21:
86         * old: "get_namespace KEY".  new: "get_hll_namespace KEY"
87         * get_namespace and find_global opcodes no longer accept arrays
88           of strings.  To use arrays, call namespace object methods.
90 2006.06.19    leo
91         * Released 0.4.5
92         See NEWS for more.
94 2006.06.03    leo
95         * I and N registers are never cleared to 0 / 0.0 on subroutine entry
97 2006.05.14    leo
98         * Released 0.4.4
99         See NEWS for more.
101 2006.04.30    bernhard
102         * Make the Perl PMCs dynamic and move them to src/dynpmc
104 2006.04.02    leo
105         * Released 0.4.3
106         See NEWS for more.
108 2006.03.06    leo
109         * Shifted argument type bits left by 2 according to r11754
110           change of docs/pdds/pdd03_calling_conventions.pod
111         * if you are creating PASM then code needs adjustment  
113 2006.02.22    leo
114         * Released 0.4.2
115         See NEWS for more.
117 2006.01.16    bernhard
118          * rename src/dynclasses to src/dynpmc 
119          * rename src/classes to src/pmc 
121 2006.01.15    leo
123          * find_global and friends returns a .Null PMC instead of .Undef on
124           lookup failure, iff lookup exceptions are off
126 2006.01.08    leo
127         * Released 0.4.1
128         See NEWS for more.
130 2005.12.28    particle
131         * renamed all .imc files to .pir
132         * modified all doc references to .pir as well
134 2005.12.13    particle
135         * moved jit/ directory to src/jit/
137 2005.12.12    particle
138         * moved io/ directory to src/io/
139         * moved classes/ directory to src/classes/
140         * moved dynclasses/ directory to src/dynclasses/
142 2005.12.08    particle
143         * moved types/ directory to src/types/
144         * moved pf/ directory to src/packfile/
145         * moved ops/ directory to src/ops/
147 2005.12.08    particle
148         * moved charset/ directory to src/charset/
149         * moved encodings/ directory to src/encodings/
151 2005.12.07    particle
152         * moved imcc/ directory to compilers/imcc/
154 2005.12.06    particle
155         * moved util/ directory to tools/util/
156         * removed imcc/examples/ directory
157         * moved ast/ directory to compilers/ast/
159 2005.12.05    particle
160         * moved imcc/docs/ directory to docs/imcc/
161         * moved build_tools/ directory to tools/build/
162         * modified MANIFEST, MANIFEST.generated, and MANIFEST.SKIP
164 2005.12.04    leo
165         * Released 0.4.0
166         * See NEWS for changes
168 2005.11.06    leo
169         * Released 0.3.1
170         * See NEWS for changes
172 2005.10.01    leo
173         * Released 0.3.0
174         * See NEWS for changes
176 2005.08.05    leo
177         * Released 0.2.3
178         * See NEWS for changes
180 2005.07.03    leo
181         * Released 0.2.2
182         * See NEWS for changes
184 2005.06.04    leo
185         * Released 0.2.1
186         * allow short names for object attributes
187         * string encoding and charset can now be set independently
188         * experimental mmap IO layer for slurping files
189         * enable compile opcode support for compilers written in PASM/PIR
190         * improved HLL support with .HLL and n_operators pragmas
191         * simplified hash code
192         * more strength reduce optimizations
193         * distinct debug and trace flag settings
194         * glob support in PGE
195         * new character classification opcodes and interfaces
196         * numerous bug fixes and enhancements
198 2005-05-08    leo
199         * Released 0.2.0
200         * parrot repository is now under subversion
201         * MMD (Multi Method Dispatch) enhanced
202         * new unary and infix opcodes that return new result PMCs
203         * dynamic scalar PMCs inherit now almost all from Parrot core PMCs
204         * more unification of PMCs and ParrotObjects
205         * tailcalls for functions and methods
206         * PGE (Parrot Grammar Engine) reworked
207         * Pugs creates Parrot code and Pugs is a registered compiler now
208         * new languages/lisp
209         * the usual bug fixes and improvements
211 2005-03-06    leo
212         * Released 0.1.2
213         * big rewrite of string code, not yet finished but ...
214         * partial implementation of a generational garbage collector
215         * indirect register frame addressing
216         * .return(args) PIR syntax
217         * moved most of the Python code to dynclasses
218         * a lot more Python functionality
219         * precalculate opcodes with all constants
220         * PGE - Parrot Grammar Engine
221         * scalar classes refactoring
222         * much more tests and big test system cleanup
223         * improved documentation
224         * and as always a lot more
226 2004-10-09    leo
227         * Released 0.1.1
228         * Need Perl 5.6 now for building
229         * Basic AST support, PAST file parser, bits of code generation
230         * BigInt PMC using GMP
231         * Complex PMC
232         * Dynamic loading improved including bundles of PMC classes
233         * Experimental support for "make install"
234         * IA64 and hppa JIT support
235         * ICU unicode support
236         * IO layer handling code
237         * IO readline and buffered IO fixes
238         * Incremental GC
239         * Internal pythonic functions: filter, map, reduce, max, min ...
240         * Languages updates for m4, tcl, perl6, regex. New parakeet language.
241         * Library updates, Stream and SDL library
242         * MMD - multi method dispatch for binary vtable methods
243         * Many new array PMCs
244         * Method call syntax in PIR obj."meth"(...)
245         * More OS stuff: stat, exec, system, gmtime, piped read and write
246         * New Python PMCs like Enumerate, None
247         * Non-branching compare opcodes
248         * PIR support for += and friends
249         * Python language subdir
250         * Python types mapped to existing PMCs
251         * Slices and range support
252         * Tons of bug fixes, documentation updates, new tests
253         * Win32 COFF exec support
254         * ... and a lot more
256 2004-02-29    leo
257         * Released 0.1.0
258         * "Ladies and gentlemen, I give you... objects!"
259         * Huge documentation overhaul
260         * More supported platforms, s. PLATFORMS
261         * Basic thread support for pthread based architectures
262         * Basic event handling for timers and signals including:
263         * PASM callbacks for NCI (native C) functions.
264         * Improved platform configuration
265         * COW stacks now working, stacks code redone
266         * Structure handling vastly improved
267         * Random PMC and rand primitives
268         * Better subroutine call syntax in PIR
269         * Make PIR subroutines compliant with pdd03
270         * Improved profiling (DOD, GC timings)
271         * Hash code improvements, incl. random key order support
272         * Experimental freeze/thaw code for some PMC types
273         * IO improvements for buffered layer and Win32
274         * String iterators
275         * String bitwise vtables
276         * Many new opcodes
277         * Support for JIT, where malloced memory isn't executable
278         * Priority DOD scheme for objects that need timely destruction
279         * Improved bytecode loading (e.g. onLoad functions)
280         * Language updates: forth, Perl6/P6C, m4
281         * Libraries: Getopt_Long, SDL, Dumper, Sort
282         * new JAPH examples
283         * Unified imcc and parrot test handling
284         * Many new tests (make test reports 1386 tests)
285         * Numerous bug fixes
288 2003-10-31    leo
289         * Released 0.0.13
290         * Yep thirteen - haunted by the ghost of 0.0.12
291         * Build imcc as parrot
292         * Objects more finished
293         * Delegate vtable methods to byte code
294         * Binary multi-method dispatching
295         * Isa and does methods for PMCs
296         * Call byte code from C
297         * Start of extension interface
298         * Experimental struct handling
299         * Catch access to NULL PMCs
300         * Experimental network socket interface code and opcodes
301         * IO fixes and improvements
302         * Dynamic opcode libraries
303         * Fix-assigned opcode numbers
304         * Argument flattening for function calls
305         * More native call interface (NCI) signatures
306         * Ncurses, postgres, and pcre interface libraries
307         * Forth language is vastly improved
308         * BSD and Win32 build improvements
309         * Many new tests and fixes
311 2003-10-22    melvin
312         * imcc moved from parrot/languages/ to parrot/
314 2003-09-20    sfink
316         * updated the native_pbc test files (from Leo)
317         * built 0.0.11.1 release tarball
319 2003-09-20    sfink
321         * CHANGES BUNDLED INTO 0.0.11:
322         * Executable output
323         * Dynamic PMC registration
324         * Trial exception system
325         * Beginnings of object system
326         * Iterators
327         * Ordered hashes
328         * I/O system improvements
329         * References
330         * Documentation for basic PMC types
331         * IMCC support of Parrot Calling Conventions
332         * Runtime loading of chartypes (and other string improvements)
333         * Conditional breakpoints
334         * Dramatically accelerated sweeps for finalizable objects
335         * Small PMCs (PMCs split into core and extensions)
336         * Loadable bytecode packfiles
337         * Constant PMCs
338         * Sub variants that deal with the stack correctly
339         * Switched runops core
340         * Line numbers in warnings
341         * Environment access
342         * Many documentation cleanups
343         * Conversion to CPS style!
344         * BASIC debugger and many other wacky features
345         * Filename, line number parsing support in IMCC
347 2003-07-21 17:31 chromatic
348         * applied copyright patch from Josh Wilmes
350 2003-06-14 13:50 dan
351         * Moved the registers out of the context structure, since they
352           really aren't context
353         * Changed the register stack frames to hold only 16 registers
354           rather than 32, added half-set push and pop ops, and reworked
355           the full set push/pops to do two half-set push/pops. Should
356           speed up saving register data on calls, since we usually only
357           care about the top half of the registers anyway.
358         * Started committing some of the new class/object framework
359         * Remembered to finally start updating the Changelog
361 2003-03-18 03:50  ask
363         * Various files
364           Update Yet Another copyright statements to reflect the (no longer
365           so) shiny new year.
367 2003-03-11 22:06  chip
369         * Configure.pl: print help on non-option command line args
371 2002-12-18 20:38  sfink: changes since 0.0.8
373         - Allow suppression of cgoto core to save memory during compile
374         * Native function calling interface
375         * Major rewrite of stack and list aggregates
376         - Scalar PMC added
377         * Scratchpads implemented
378         - Win32 libraries
379         - Internal memory subsystem documentation
380         * Preliminary DotGNU support
381         - Packfile fingerprinting
382         * Buffer/PMC unification (into PObjs)
383         * stabs debugging information support
384         * Major Jako overhaul, including:
385           - imcc integration
386           - native function calling
387         - Perl6 string interpolation
388         - languages/regex now targets IMCC
389         * Optional Lea memory allocator
390         * Full sprintf implementation
391         * Many, many new tests
392         * Miniparrot
393         - exchange ops
394         - runtime-controllable gc debugging
395         * PMC properties
396         - Crash info
397         * JIT: various improvements
398           - register usage tracking
399           - block register allocation
400           - optimizations
401           - more jitted ops
402           - restartable
403           - architecture abstraction layer
404           - debugging via GDB
405         * Beginning support for extensible packfiles
406         * Much better key support, generally
407         * splice()
408         * Restructured PMC hierarchy with better functionality inheritance
409         * IMCC: many, many improvements. See imcc/ChangeLog
410         * Perl6: index map grep join reverse defined
411         * Scheme with functions!
414 2002-03-19 22:54  nicholas
416         * docs/running.pod: Patch from Simon Glover <scog@amnh.org>:
418          We can now get usage information for test_parrot without having to
419          grep the source.
421 2002-03-19 22:53  simon
423         * Configure.pl:
424         Parrot is called parrot.
426 2002-03-19 22:53  nicholas
428         * docs/tests.pod: Patch from Simon Glover <scog@amnh.org>:
430          1. There are tests in t/pmc as well as t/op now.
431          2. Adds a comment about Parrot::Test
433 2002-03-19 18:09  dan
435         * Configure.pl, examples/assembly/life.pasm: Toss a prompt that
436         messes up automated builds
438         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
440 2002-03-19 00:33  mrjoltcola
442         * core.ops: Doc cleanup from Simon Glover.
444 2002-03-18 23:52  mrjoltcola
446         * io/io_unix.c: Typo fix for invalid lvalue caught by David Loyd.
448 2002-03-18 22:09  dan
450         * include/parrot/resources.h: Checked in old version
452 2002-03-18 20:17  dan
454         * include/parrot/resources.h: Forgot a prototype
456 2002-03-18 20:15  dan
458         * resources.c: D'oh! Thinko, fixed.
460         Courtesy of "Peter Gibbs" <peter@emkel.co.za>
462 2002-03-18 17:33  josh
464         * Configure.pl: Lowering the bar a bit.
466 2002-03-18 17:33  sfink
468         * languages/regex/: MAINTAINER, Makefile, README, regex.pl,
469         test.pl, lib/Regex.pm, lib/Regex/AsmOps.pm, lib/Regex/CodeGen.pm,
470         lib/Regex/Generate.pm, lib/Regex/Grammar.pm, lib/Regex/Grammar.y,
471         lib/Regex/Optimize.pm, lib/Regex/Parse.pm, lib/Regex/Pasm.pm,
472         lib/Regex/PreOptimize.pm, lib/Regex/RegexOps.pm,
473         lib/Regex/Rewrite.pm, lib/Regex/CodeGen/Re.pm,
474         lib/Regex/CodeGen/Rx.pm, lib/Regex/Rewrite/Re.pm,
475         lib/Regex/Rewrite/Rx.pm, lib/Regex/Rewrite/Stackless.pm,
476         t/example.t: Whoops, wrong time to check this in.
478 2002-03-18 16:42  dan
480         * memory.c, resources.c: Partial fix for GC's memory trouncing. At
481         least we consider the PMC and Buffer free pools worth collecting,
482         and initialize the Buffer pool stuff.  Still not 100% correct,
483         though.
485 2002-03-18 15:35  simon
487         * packfile.c:
488         Fix format arg bug.
490 2002-03-18 07:45  brentdax
492         * Configure.pl: Warn if you're using 64-bit ints on a 32-bit
493         system.
495 2002-03-18 00:09  sfink
497         * languages/regex/: MAINTAINER, Makefile, README, regex.pl,
498         test.pl, lib/Regex.pm, lib/Regex/AsmOps.pm, lib/Regex/CodeGen.pm,
499         lib/Regex/Generate.pm, lib/Regex/Grammar.pm, lib/Regex/Grammar.y,
500         lib/Regex/Optimize.pm, lib/Regex/Parse.pm, lib/Regex/Pasm.pm,
501         lib/Regex/PreOptimize.pm, lib/Regex/RegexOps.pm,
502         lib/Regex/Rewrite.pm, lib/Regex/CodeGen/Re.pm,
503         lib/Regex/CodeGen/Rx.pm, lib/Regex/Rewrite/Re.pm,
504         lib/Regex/Rewrite/Rx.pm, lib/Regex/Rewrite/Stackless.pm,
505         t/example.t: Buggy 1st version of regex compiler implementation.
506         Warning: the test code depends on features of the assembler that do
507         not yet exist.
509 2002-03-17 21:35  ajgough
511         * types/: bignum.c, bignum_atest.pl: Added a couple of quick routes
512         through addition and subtraction.  Also added the ability to run
513         all the tests, including the ones which deal with overflow and
514         underflow.  These fail, but that's expected.  Soon they'll pass.
515         Then I'll show them.  Yesssssss.  Tessssssssts my precioussssss,
516         passsssssssings tesssstsssss.
518 2002-03-17 20:06  ajgough
520         * types/: bignum.c, bignum.h, bignum_test.pl: Modified
521         check_(under|over)flow to test bignumbers, rather than values.
522         context now carries E_limit, from which max and min exp are found.
524         Added a default-context-creating function (although this isn't the
525         same as either of the default contexts defined in the eda).
527 2002-03-17 13:31  ajgough
529         * types/: bignum.c, bignum.h: Made BN_round and BN_iround so that
530         exported version matches prototypes of other public functions.
532 2002-03-17 06:44  josh
534         * chartype.c, encoding.c, memory.c, misc.c, packdump.c, packfile.c,
535         packout.c, resources.c, string.c, include/parrot/encoding.h: Some
536         last-minute re-indenting.
538 2002-03-17 05:07  mrjoltcola
540         * io/io_unix.c: Clear up unsigned compare caught by Solaris GCC.
542 2002-03-16 23:17  nicholas
544         * classes/default.pmc: Patch from Simon Glover <scog@amnh.org> to
545         remove warnings:
547          default.pmc: In function `Parrot_default_get_integer_keyed':
548          default.pmc:50: warning: control reaches end of non-void function
549          default.pmc: In function `Parrot_default_get_number_keyed':
550          default.pmc:58: warning: control reaches end of non-void function
551          default.pmc: In function `Parrot_default_get_string_keyed':
552          default.pmc:67: warning: control reaches end of non-void function
553          default.pmc: In function `Parrot_default_get_pmc_keyed':
554          default.pmc:87: warning: control reaches end of non-void function
556 2002-03-16 18:50  ajgough
558         * types/: bignum.c, bignum.h: Lots of prototypes changed in
559         readiness for nicely telling your caller about any oddness you've
560         caused in the persuit of flow.
562 2002-03-16 17:38  dan
564         * interpreter.c, resources.c, docs/pdds/pdd09_gc.pod,
565         include/parrot/interpreter.h, include/parrot/resources.h: Now we
566         can control the GC and DOD, to stop it when we don't really want
567         it.
569 2002-03-16 16:58  dan
571         * resources.c, vtable.tbl, classes/default.pmc,
572         include/parrot/resources.h: Added the last code to let PMCs control
573         their marking at DOD time
575 2002-03-16 16:57  ajgough
577         * types/bignum.c: Ok, I worked out how to not have lots of tabs.  I
578         feel a little more virtuous now.  Really I do.  You might not
579         believe me, but you should.  perl -pne 's/\t/        /g', if you're
580         curious.
582 2002-03-16 16:57  josh
584         * packfile.c, packout.c: M-x untabify is my new friend.
586 2002-03-16 16:50  josh
588         * trace.c, resources.c: Minor whitespace tweak for the benefit of
589         check_source_standards.pl
591 2002-03-16 16:50  ajgough
593         * types/: bignum.c, bignum.h: More documentation, separate
594         functions into public and private sorts, some initial stuff to cope
595         with over and underflow correctly.
597 2002-03-16 16:49  josh
599         * resources.c: Re-indented (sorry bout the big diff)
601 2002-03-16 16:47  bdwheele
603         * examples/assembly/fact.pasm: This fixes fact.pasm so it will
604         assemble again, both with Simon's new assembler and with the old
605         one.
607 2002-03-16 16:33  mrjoltcola
609         * io/TODO: Get the TODO up-to-date for 0.0.4.
611 2002-03-16 16:11  josh
613         * Configure.pl: Patch from Nicholas Clark <nick@unfortu.net>: stops
614         silly people (such as me) running Configure with
615         /usr/local/bin/perl (which is 5.004_05) and not realising their
616         mistake until the pmc subdirectory, where the first qr// is
617         encountered.
619         Syntax error messages don't tell you what you did wrong. This does:
621         /usr/local/bin/perl Configure.pl Perl 5.00503 required--this is
622         only version 5.00405, stopped at Configure.pl line 10.
624 2002-03-16 14:38  ajgough
626         * Makefile.in: Small fix to Makefile.in to keep Irix make happy
627         with commenting.
629 2002-03-16 11:45  simon
631         * MANIFEST, examples/assembly/xml_parser.pasm:
632         Added Clint Pierce's XML parser.
634 2002-03-15 22:24  simon
636         * packout.c:
637         Don't need that function.
639 2002-03-15 21:56  simon
641         * Makefile.in, include/parrot/packfile.h:
642         Rebuild packout.o, since it'll be used for the Packfile XS module
644 2002-03-15 19:45  dan
646         * include/parrot/: memory.h, pmc.h: Another add-in for GC
648 2002-03-14 19:48  dan
650         * core.ops: No string to int for some reason
652 2002-03-14 18:45  dan
654         * string.c, t/op/string.t: Fix 0-length substr problem
656 2002-03-14 14:46  dan
658         * core.ops, interpreter.c, resources.c, classes/array.pmc,
659         classes/perlarray.pmc, examples/assembly/life.pasm,
660         include/parrot/interpreter.h, include/parrot/resources.h: Added in
661         a counter for copied memory, with a display in life.pasm
663 2002-03-14 03:16  mrjoltcola
665         * MANIFEST: Update MANIFEST courtesy of Simon Glover.
667 2002-03-13 23:43  simon
669         * packfile.c:
670         Oops.
672 2002-03-13 23:43  simon
674         * packfile.c:
675         Hangs head in shame.
677 2002-03-13 21:31  simon
679         * MANIFEST:
680         FAQ moved.
682 2002-03-13 18:06  simon
684         * string.c:
686         Fix string_compare screw-up.
688 2002-03-13 18:02  brentdax
690         * docs/: parrot.pod, ParrotFAQ.htm, faq.pod: Move the FAQ into POD
691         and add a new question/answer pair.
693 2002-03-12 22:53  mrjoltcola
695         * io.ops: Quick and dirty read ops for PIO. No warranty provided.
697 2002-03-12 22:48  mrjoltcola
699         * examples/assembly/io2.pasm: Quick and dirty read ops for PIO. No
700         warranty provided.
702 2002-03-12 22:29  ajgough
704         * docs/pdds/pdd14_bignum.pod: Ooops, it is #14, really.
706 2002-03-12 22:24  ajgough
708         * docs/pdds/pdd14_bignum.pod: Creation of bignumber pdd, update to
709         version 1.1, Don't know if this is the correct number, but I don't
710         want this stuck on my harddrive where it will get lost, so 14 it is
711         :)
713 2002-03-12 11:35  simon
715         * MANIFEST, packdump.c, packout.c:
717         Just so the functionality doesn't disappear.
719 2002-03-12 11:33  simon
721         * Makefile.in, chartype.c, encoding.c, packfile.c,
722         chartypes/unicode.c, chartypes/usascii.c, encodings/singlebyte.c,
723         encodings/utf16.c, encodings/utf32.c, encodings/utf8.c,
724         include/parrot/chartype.h, include/parrot/encoding.h,
725         include/parrot/packfile.h:
727         Packfile axing.
729 2002-03-11 23:06  nicholas
731         * core.ops: Patch from Simon Glover <scog@roe.ac.uk>:
733           Core.ops documentation nits
735 2002-03-11 23:05  nicholas
737         * t/pmc/pmc.t: Patch from Simon Glover <scog@roe.ac.uk>:
739           Most of the PerlUndef tests in pmc.t appear to have been added
740         twice.
741           Enclosed patch removes the duplicates.
743 2002-03-10 23:40  nicholas
745         * t/pmc/perlstring.t: Patch from Simon Glover <scog@amnh.org>:
747          More tests for the PerlString test-suite.
749 2002-03-10 23:40  nicholas
751         * t/op/time.t: Patch from Simon Glover <scog@amnh.org>:
753         test for sleep with negative argument
755 2002-03-10 21:58  nicholas
757         * t/op/rx.t: Patch from Simon Glover <scog@amnh.org>:
759          Enclosed patch fixes up a few more holes in our test coverage.
761 2002-03-10 21:18  mrjoltcola
763         * classes/array.pmc, classes/default.pmc, classes/intqueue.pmc,
764         classes/parrotpointer.pmc, classes/perlarray.pmc,
765         classes/perlhash.pmc, classes/perlint.pmc, classes/perlnum.pmc,
766         classes/perlstring.pmc, classes/perlundef.pmc,
767         include/parrot/pmc.h, core.ops, pmc.c, vtable.tbl: Add size
768         argument to the init() vtable method so PMCs have the option to
769         know how to size themselves at creation. size could be N elements
770         or a byte count, depending on the PMC or it may simply be ignored.
771         Overloaded 'new' opcode for optional arg.
773 2002-03-10 21:15  mrjoltcola
775         * lib/Parrot/Assembler.pm: Minor patch to the assembler for the
776         new_p_ic_ic opcode to work same as new_p_ic (looks up a named
777         class).
779         Also added small hack for .sub directive (which simply translates
780         to a label, however we might eventually want to collect these to
781         validate bsr calls.
783 2002-03-10 15:09  ajgough
785         * types/: bignum.c, bignum.h, bignum_atest.pl, bignum_test.pl:
786         Added round_floor and round_ceiling.  3403 tests pass, none fail.
788 2002-03-10 03:56  ajgough
790         * types/: bignum.c, bignum_atest.pl: Added extended stuff to
791         divide, divide integer and remainder.  All filled in functions now
792         have special values capability.
794         Much remains to be done though, and the pdd needs to catch up.
796 2002-03-10 01:36  ajgough
798         * types/bignum.c: Added extended stuff to _add, _subtract.
800 2002-03-10 00:14  nicholas
802         * t/op/: integer.t, number.t: Patch from Simon Glover
803         <scog@roe.ac.uk>:
805          The enclosed patch fixes a few of the holes in our test coverage
806          uncovered by Josh Wilmes
808 2002-03-09 23:03  ajgough
810         * types/: bignum.c, bignum.h: Modified compare to work with
811         extended values.  Made a couple of changes here and there to allow
812         BN_comp to take a context, so that an is_zero check doesn't clobber
813         negative zeros.
815 2002-03-09 22:19  ajgough
817         * types/: bignum.c, bignum.h, bignum_atest.pl, bignum_test.pl:
818         Unary plus now copes with special values.
820 2002-03-09 04:25  ajgough
822         * types/: bignum.c, bignum_atest.pl, bignum_test.pl: Exception
823         traps and flags are now enabled and tested for all the standard
824         tests for all the functions which are currently implemented.  Test
825         harness faffed with to allow these to be tested.
827 2002-03-09 02:29  josh
829         * encodings/singlebyte.c, encodings/utf16.c, encodings/utf32.c,
830         encodings/utf8.c, chartypes/unicode.c, chartypes/usascii.c:
831         Re-indented
833 2002-03-09 02:22  josh
835         * config_h.in: tab-blastin'
837 2002-03-09 02:21  josh
839         * check_source_standards.pl: Play nicer with M-x compile- don't
840         bother giving line numbers for things you don't want to look at.
842 2002-03-09 02:10  josh
844         * examples/mops/mops.c: re-indented
846 2002-03-09 02:07  josh
848         * classes/pmc2c.pl: Use the usual header so that we can detect the
849         autogeneratedness.
851 2002-03-09 02:05  josh
853         * jit2h.pl: Avoid accidental /* inside a comment, which generates a
854         compiler warning
856 2002-03-09 01:59  josh
858         * io/: io.c, io_stdio.c, io_unix.c, io_win32.c: Another large
859         patch- re-indent io/*.c.
861 2002-03-09 01:52  ajgough
863         * types/: bignum.c, bignum.h, bignum_test.pl: Added handling of
864         special values to the string conversion functions, some other
865         functions now need context (to let -0 pass through really_zero)
866         which have also been added.
868 2002-03-09 01:47  josh
870         * test_main.c: Re-indented.
872 2002-03-09 01:41  josh
874         * rx.c: killed a stray tab
876 2002-03-09 01:38  josh
878         * rx.c: Re-indented.
880 2002-03-09 01:36  josh
882         * misc.c: Oops, some tabs remained- cleaned up.
884 2002-03-09 01:31  josh
886         * misc.c: Re-indented (major patch, sorry)
888 2002-03-09 00:59  josh
890         * embed.c: Re-indented.
892 2002-03-08 23:08  simon
894         * MANIFEST, docs/pdds/pdd10_embedding.pod,
895         docs/pdds/pdd11_extending.pod, docs/pdds/pdd12_assembly.pod,
896         docs/pdds/pdd13_bytecode.pod:
897         Placeholder PDDs.
899 2002-03-08 21:12  ajgough
901         * include/parrot/string.h: Added private flags to string.h, mostly
902         so that other GCed stuff can also have its very own private flags.
904 2002-03-08 19:53  simon
906         * MANIFEST:
907         Great PDD Renaming
909 2002-03-08 19:41  robert
911         * docs/pdds/: pdd0.pod, pdd1.pod, pdd2.pod, pdd4.pod, pdd5.pod,
912         pdd6.pod, pdd7.pod: Renamed...
914 2002-03-08 18:51  simon
916         * MANIFEST, docs/pdds/pdd08_keys.pod:
917         Add keys PDD.
919 2002-03-08 18:20  ajgough
921         * types/: bignum.c, bignum.h, bignum_atest.pl, bignum_test.pl:
922         Introduced exception handlers and exception flags to context, will
923         allow support of extended standard.  Unified exception checking
924         mechanism (sort of) and made minimal changes to bulk of code to use
925         this.  Tests pass, I'm happy, and further changes will happen more
926         gradually.
928 2002-03-08 04:38  josh
930         * interpreter.c, string.c, testparrotsizes_c.in: More indenting
931         tweaks.
933 2002-03-08 04:37  josh
935         * platforms/: generic.c, generic.h, win32.c, win32.h: Re-indented
937 2002-03-08 04:24  josh
939         * embed.c: A bit more re-indenting
941 2002-03-08 04:20  josh
943         * embed.c: Indenting fixes
945 2002-03-08 04:14  josh
947         * jit.c: Re-indented (run_indent.pl)
949 2002-03-08 03:36  josh
951         * ops2c.pl: Fix the line numbers which get reported while compiling
952         core_ops*.c
954 2002-03-08 03:22  josh
956         * packfile.c: -1552 cc: WARNING File = packfile.c, Line = 1537
957         The variable "type" is set but never used.
959               opcode_t type;
961 2002-03-08 03:04  josh
963         * resources.c, stacks.c, string.c, io/io.c, io/io_stdio.c,
964         io/io_unix.c: Clean up unused and set-but-not-referenced variables
965         noticed by the sgi compiler.
967 2002-03-08 03:02  josh
969         * misc.c: Fixes this warning (SGI) cc-1188 cc: WARNING File =
970         misc.c, Line = 417   The indicated type qualifier is meaningless on
971         cast type.
974         (const char) 'f');
975                                                                          ^
977 2002-03-08 02:55  josh
979         * Makefile.in: Clean up one of the object files it was missing
981 2002-03-08 01:15  josh
983         * include/parrot/interpreter.h: Fixes the following error (tcc):
984         "./include/parrot/interpreter.h", line 27: Error:   [Syntax]: Extra
985         comma at end of list.
987 2002-03-06 22:15  simon
989         * stacks.c:
990         Tidy up stack chunk allocation.
992 2002-03-06 21:00  simon
994         * interpreter.c:
995         Create strings only once we've got string register heads set up.
997 2002-03-06 20:31  simon
999         * classes/perlarray.pmc:
1000         malloc(0) considered harmful.
1002 2002-03-06 20:24  simon
1004         * include/parrot/resources.h:
1005         I like it when Parrot compiles.
1007 2002-03-06 17:02  dan
1009         * classes/array.pmc: Changed over to data pointing to a Buffer.
1011 2002-03-06 15:45  dan
1013         * core.ops, embed.c, exceptions.c, interpreter.c, memory.c,
1014         packfile.c, pbc2c.pl, pdump.c, resources.c,
1015         include/parrot/interpreter.h, include/parrot/memory.h,
1016         include/parrot/resources.h, io/io.c: Three quick things: 1) INTVALs
1017         and opcode_t > longs will now be even more suspect than what they
1018         were beforehand.  2) Feel free to bicker with names.  I don't think
1019         we've come to *any* sort of agreement with these, although we
1020         really, really, need to.  3) I forget the third thing.  4) But I
1021         thought of a fourth.  5) I've now remembered the third thing: IIRC,
1022         ANSI C states that enums will fit within the smallest type (int or
1023         greater) that can hold the values. Is that actually correct, and
1024         does it state whether unsigned is preferred to signed for
1025         non-negative enums? 6) Since I'm no longer constrained by "three"
1026         or "quick", I'm going size_t happy for a lot of memory-related
1027         storage.  (That's good.  No sense wasting the size or performance
1028         of an UINTVAL for strange values of UINTVAL.)  I'm also using it in
1029         a couple other internal things (like the GC stat counters, seen
1030         here).  Size and performance, again, and unpromotable to a bigint,
1031         so we know that we (theoretically) will wrap.  However, size_t
1032         isn't the best choice for the type.  (Not that there's anything
1033         wrong with size_t, just that it shouldn't be called size_t.)  Any
1034         thoughts?  I was thinking of just doing unsigned int, because,
1035         IIRC, int is usually the natural word size, and will be most
1036         efficient.  Thoughts? 7) I forgot what the fourth thing I thought
1037         of was while writing down the others.  Sorry.
1039         Courtesy of  "Bryan C. Warnock" <Bryan.Warnock@raba.com>
1041 2002-03-06 15:26  dan
1043         * memory.c, resources.c, string.c, classes/perlarray.pmc,
1044         include/parrot/resources.h: Now we allocate generic Buffers from
1045         arenas too
1047 2002-03-05 21:42  brentdax
1049         * Configure.pl: Minor cleanup and enhancements.
1051 2002-03-05 21:25  dan
1053         * resources.c: non-special GC now works with PMCs
1055 2002-03-05 19:48  brentdax
1057         * Configure.pl, DEVELOPING, MANIFEST, config_h.in, test_main.c:
1058         Parrot now "knows" if it's a development version or a release
1059         version.  See the instructions in the DEVELOPING file.
1061 2002-03-05 18:05  brentdax
1063         * MANIFEST: pasm.vim wasn't in the manifest.
1065 2002-03-05 17:57  simon
1067         * Makefile.in:
1068         Now, through much evilness, make distclean and make cvsclean work
1069         again.
1071 2002-03-05 17:38  dan
1073         * memory.c, resources.c, docs/pdds/pdd09_gc.pod,
1074         include/parrot/interpreter.h, include/parrot/pmc.h,
1075         include/parrot/resources.h: PMC tracing complete
1077 2002-03-05 16:28  gregor
1079         * languages/jako/Makefile.in:
1080         Changed -I ../../ to -I ../../lib when calling the assembler, since
1081         the perl modules have moved.
1083 2002-03-05 05:30  josh
1085         * packfile.c, pdump.c, pmc.c, register.c, rxstacks.c, stacks.c,
1086         string.c: More re-indenting via run_indent.pl.
1088 2002-03-05 05:17  josh
1090         * runops_cores.c, trace.c, warnings.c: Re-indented (via
1091         run_indent.pl)
1093 2002-03-05 04:26  josh
1095         * key.c, memory.c, test_gnuc.c, testparrotfuncptr.c: Re-indented
1096         using run_indent.pl and some minor tweaking.
1098 2002-03-05 04:21  josh
1100         * chartype.c, encoding.c, exceptions.c, global_setup.c,
1101         interpreter.c: Re-indented using run_indent.pl and some minor
1102         tweaking.
1104 2002-03-05 03:30  josh
1106         * include/parrot/trace.h: These functions are no longer used (or
1107         even implemented)
1109 2002-03-04 18:21  josh
1111         * include/parrot/trace.h: Fix a typo in the argument type.
1113         Patch from <daniel.ritz@gmx.ch>
1115 2002-03-04 03:39  josh
1117         * check_source_standards.pl, jit2h.pl: Add the "autogenerated file"
1118         header to jit_struct.h so we don't try to check it for conformance.
1119          (no way will it conform)
1121 2002-03-04 03:38  josh
1123         * include/parrot/: chartype.h, interpreter.h, io.h, rx.h, trace.h,
1124         unicode.h, warnings.h: Remove some remaining tabs and split some of
1125         the remaining long lines.
1127 2002-03-04 03:17  josh
1129         * include/parrot/: chartype.h, embed.h, encoding.h, exceptions.h,
1130         global_setup.h, interpreter.h, io.h, jit.h, key.h, memory.h,
1131         misc.h, op.h, oplib.h, packfile.h, parrot.h, pmc.h, register.h,
1132         resources.h, runops_cores.h, rx.h, rxstacks.h, stacks.h, string.h,
1133         string_funcs.h, trace.h, warnings.h: This is the first batch of
1134         re-indenting.   This patch is the result of running run_indent.pl
1135         on the header files and manually tweaking the results where errors
1136         were noticed.   This should get us closed, but some refinement may
1137         follow.
1139 2002-03-04 03:06  josh
1141         * resources.c: Return without parens, as mentioned in PDD 7
1143 2002-03-04 03:01  josh
1145         * core.ops: POD fixes.
1147 2002-03-04 02:58  josh
1149         * config_h.in, ops2c.pl, classes/pmc2c.pl: More consistent headers
1150         on autogenerated files- used by the check_source_standards.pl
1151         script (for now) to exempt autogenerated files from the checks.
1153 2002-03-04 02:51  josh
1155         * embed.c, key.c, pmc.c, resources.c, rx.c, testparrotfuncptr.c,
1156         warnings.c: Added the editor "boilerplate" footer to a few files
1157         which were missing it.
1159 2002-03-04 02:34  josh
1161         * check_source_standards.pl, interpreter.c, jit.c, test_gnuc.c,
1162         include/parrot/io.h, include/parrot/parrot.h, io/io_win32.c: Fixes
1163         c preprocessor directive indentation to comply with pdd 7.
1165         (also fixes the check for this indentation in
1166         check_source_standards.pl)
1168 2002-03-04 02:32  josh
1170         * lib/Parrot/Test.pm: Fixes this error seen on perl 5.005_02 on
1171         irix.
1173         perl t/harness t/op/basic..........Use of uninitialized value at
1174         lib/Parrot/Test.pm line 81.  #     Failed test (t/op/basic.t at
1175         line 6) #          got: undef #     expected: ''
1177 2002-03-04 02:30  josh
1179         * MANIFEST, run_indent.pl, docs/pdds/pdd07_codingstd.pod,
1180         docs/pdds/pdd7.pod: Added documentation and code to invoke the GNU
1181         "indent" program to enforce some of the code style standards
1182         outlined in PDD 7.
1184         Usage: ./run_indent.pl <file>
1186 2002-03-03 19:04  simon
1188         * examples/mops/mops.c:
1189         Let's make it compile, huh?
1191 2002-03-03 19:04  simon
1193         * examples/mops/mops.cs:
1194         I R AN IDIOT
1196 2002-03-03 18:11  simon
1198         * examples/mops/mops.cs, examples/mops/mops.il, MANIFEST:
1199         Added C# and MS-IL versions of mops tester.
1201 2002-03-03 14:52  simon
1203         * core.ops:
1204         Add a sub() op to make mops_p work.
1206 2002-03-02 18:12  nicholas
1208         * examples/mops/mops.c, include/parrot/embed.h,
1209         include/parrot/interp_guts.h, include/parrot/jit.h,
1210         include/parrot/misc.h, include/parrot/packfile.h,
1211         include/parrot/rx.h, include/parrot/warnings.h,
1212         platforms/generic.c, platforms/generic.h, platforms/win32.c,
1213         platforms/win32.h, types/bignum.c, types/bignum.h: Patch from Josh
1214         Wilmes to add the emacs and vim "ending boilerplate" that sets the
1215         indent variables correctly.
1217 2002-03-02 17:41  nicholas
1219         * resources.c: Patch from Josh Wilmes <josh@hitchhiker.org>: Little
1220         patch to fix a compiler warning.
1222 2002-03-01 22:35  dan
1224         * memory.c, resources.c, include/parrot/pmc.h,
1225         include/parrot/resources.h: PMCs now come out of arenas.
1227 2002-03-01 06:15  dan
1229         * string.c:
1230         A non-existing buffer + a non-existing buffer should be a
1231         non-existing buffer, not "", which is really '\0'.
1233         Courtesy of "Bryan C. Warnock" <Bryan.Warnock@raba.com>
1235 2002-03-01 06:02  dan
1237         * classes/: array.pmc, perlarray.pmc, perlhash.pmc, perlstring.pmc:
1239         TMTOWTDI, but strcmp is probably the worse.
1241         Courtesy of "Bryan C. Warnock" <Bryan.Warnock@raba.com>
1243 2002-03-01 02:32  brentdax
1245         * embed.c: Debug mode now prints out the GC data.
1247 2002-02-28 23:44  dan
1249         * core.ops, resources.c, include/parrot/resources.h: Added collect
1250         and sweep opcodes
1252 2002-02-28 22:58  dan
1254         * docs/pdds/: pdd06_pasm.pod, pdd6.pod: Add docs for interpinfo
1255         opcode
1257 2002-02-28 22:50  dan
1259         * core.ops, interpreter.c, resources.c,
1260         examples/assembly/life.pasm, include/parrot/interpreter.h,
1261         include/parrot/resources.h: Add some stat gathering to the resource
1262         allocation code.
1264         Also add an interpreter info retrieval op, and teach it about the
1265         different things it can retrieve.
1267         Finally, add some stat info to life.pasm as an example
1269 2002-02-28 21:27  dan
1271         * editor/pasm.vim: VIM mode commands for parrot assembly files
1273         Courtesy of Scott Beck <scott@gossamer-threads.com>
1275 2002-02-28 19:20  dan
1277         * examples/assembly/life.pasm: Fix a creeping string length leak.
1279         Courtesy of  "Bryan C. Warnock" <Bryan.Warnock@raba.com>
1281 2002-02-28 18:26  dan
1283         * string.c: When you clone a constant, it ain't constant no mo'.
1285         Cocurtesy of "Bryan C. Warnock" <Bryan.Warnock@raba.com>
1287 2002-02-28 00:51  dan
1289         * MANIFEST: Add missing files
1291         Courtesy of "Bryan C. Warnock" <Bryan.Warnock@raba.com>
1293 2002-02-28 00:49  dan
1295         * docs/pdds/: pdd0.pod, pdd00_pdd.pod: The pod version of PDD 0 in
1296         CVS seems to have several chunks missing out of it, too.  This
1297         patch is simply an administrative patch, with the differences
1298         between my last version, and the one currently in there.  There
1299         will be a forthcoming patch for some minor tweaking to the PDD, but
1300         I wanted a common baseline before I make any (potential) semantic
1301         changes.
1303         There's only one semi-major change, which noone needs to worry
1304         about just yet.  That's a change from PDD Format 1 to PDD Format
1305         6.0 - rationale can be found under 'Standard (Version #)' of the
1306         STANDARDS TRACK infomation.  Don't worry about this yet, because it
1307         should be 6.0.0, and we need to discuss Perl versus Parrot with
1308         PDDs.
1310         Courtesy of "Bryan C. Warnock" <bwarnock@raba.com>
1312 2002-02-28 00:27  dan
1314         * packfile.c, resources.c, examples/assembly/life.pasm,
1315         include/parrot/register.h, include/parrot/resources.h,
1316         include/parrot/string.h: First pass of semi-full GC. (Strings only,
1317         no PMCs yet)
1319         This patch now implements a real copying collector. We trace from
1320         our root set and compact the contents of Buffer structs.
1322         Todo:
1324         *) It's very STRING-centric and doesn't handle memory stuffed in
1325         Buffers.  But, then, we don't have pool allocation for Buffers
1326         either, and we need to have that soonish for this to work.
1328         *) Doesn't trace PMCs, so if you trigger a collection and there's
1329         memory or STRING structs only accessible from PMCs, you'll fail
1330         horribly. That needs fixing too
1332         *) Better algorithms for when to trace or collect vs when to just
1333         go allocate more memory from the system. Should probably be more
1334         cache friendly too.
1336 2002-02-27 21:04  dan
1338         * jit.c, memory.c, resources.c, string.c, docs/pdds/pdd09_gc.pod,
1339         examples/assembly/life.pasm, include/parrot/resources.h,
1340         include/parrot/string.h, include/parrot/string_funcs.h,
1341         jit/i386/core.jit: Start of GC in
1343 2002-02-26 16:41  dan
1345         * jit/i386/string.jit: Fix a typo
1347         Courtesy of Jonathan Stowe <gellyfish@gellyfish.com>
1349 2002-02-26 16:37  dan
1351         * interpreter.c: Fix solaris test failures
1353         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1355 2002-02-26 16:36  dan
1357         * include/parrot/: interp_guts.h, io.h, packfile.h, rx.h,
1358         unicode.h, warnings.h: Fixes various warts in header files, such
1359         as: * macros   -added parens to prevent problems with operator
1360         precedence   -removed ; at end * removed SSIZE_MAX, since ssize_t
1361         is no longer used * added some more INLINE definitions for MSVC and
1362         C99 compilers
1364         Courtesy of Brian Lee Ray <blray@ualr.edu>
1366 2002-02-26 16:20  dan
1368         * Configure.pl: Turns out we were using a warning flag which
1369         doesn't exist on 2.7.  Simple tweak though:
1371         Courtesy of  Josh Wilmes <josh@hitchhiker.org>
1373 2002-02-25 22:58  dan
1375         * MANIFEST, docs/pdds/pdd09_gc.pod: Add docs of GC
1377 2002-02-25 17:36  dan
1379         * include/parrot/pmc.h: Fix the bits
1381 2002-02-23 21:57  dan
1383         * include/parrot/resources.h: Another 1.5% never hurts
1385 2002-02-23 21:44  dan
1387         * global_setup.c, memory.c, resources.c, string.c,
1388         include/parrot/resources.h: Allocate STRING headers from an arena
1389         with freelist rather than with the system malloc. First step in a
1390         good (or even a bad) GC system.
1392 2002-02-23 20:37  brentdax
1394         * misc.c: lint has been doing Evil and Wrong things to misc.c.
1396 2002-02-22 14:59  ajgough
1398         * types/bignum.c: BN_multiply split into BN_multiply and
1399         BN_imultiply, the internal version to be used by idivide so that
1400         rounding isn't performed during intermediate stages of division.
1402         following test scripts now all pass: divide divideint add multiply
1403         subtract remainder compare rounding plus minus (these are all the
1404         operations currently implemented, rescale and power must still be
1405         written, so don't pass right now).
1407 2002-02-22 13:13  ajgough
1409         * types/bignum_atest.pl: Test harness modified to understand
1410         comments better, and be able to run unary (and rounding) tests.
1411         Currently a few rounding tests fail, which are being investigated.
1413 2002-02-22 01:41  dan
1415         * key.c: Although there's more work being done on the key stuff and
1416         this isn't the final fix, applying this patch does get parrot to
1417         build with two more compilers, so it's probably worthwhile.
1419         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1421 2002-02-22 00:53  dan
1423         * config_h.in, misc.c, include/parrot/embed.h,
1424         include/parrot/exceptions.h, include/parrot/interpreter.h,
1425         include/parrot/io.h, include/parrot/parrot.h, include/parrot/pmc.h,
1426         include/parrot/resources.h, include/parrot/rx.h,
1427         include/parrot/string.h, include/parrot/unicode.h,
1428         include/parrot/warnings.h, io/io_stdio.c, io/io_unix.c,
1429         io/io_win32.c: Fixes the following (lcc) warnings:
1431           - interpreter.c:470: warning: expression with no effect elided
1432                (related to the way warnings flags were defined)
1434           - misc.c:352: warning: unreachable code
1435             misc.c:483: warning: unreachable code
1436                (i introduced these with some overzealous de-linting)
1438           - numerous warnings like this:
1439             io/io_unix.c:383: warning: conversion from pointer to void' to
1440         pointer to
1441             pointer to struct _ParrotIO function(pointer to struct
1442         Parrot_Interp,pointer
1443             to struct _ParrotIOLayer,pointer to const char,pointer to const
1444         char,pointer
1445             to pointer to void)' is compiler dependent
1447         Fixes the following nits:    - remove bad indenting (tabs) in the
1448         includes
1450         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1452 2002-02-21 21:12  ajgough
1454         * types/: bignum.c, bignum.h: These might look like massive
1455         changes, but really it's just he imposition of coding standards.
1456         The file still isn't entirely compliant, but is now much more so.
1458         Also changed:
1460          o a few more comments
1461          o BN_compare uses internal BN_comp to compare
1462          o lost_digits behaviour is now correct (test harness modified to
1463         test
1464            this).
1466         All binary functions now pass all the tests in the basic standard.
1467         Unary functions not yet tested, will be soon.
1469 2002-02-21 18:20  dan
1471         * lib/Parrot/OpTrans/CPrederef.pm: The "inline" bit of that patch
1472         was no longer needed, and the ssize_t thing really shouldn't be
1473         needed either.
1475         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1477 2002-02-21 18:15  dan
1479         * Configure.pl, embed.c, pdump.c, hints/mswin32.pl,
1480         include/parrot/parrot.h: this patch adds support for the freely
1481         available borland c++ 5.5.1 compiler
1483         depends on: - josh's patch to remove ssize_t from CPrederef.pm -
1484         working borland compiler (compiler must know where to find headers
1485         and libs) - Perl's Config.pm modified to use cc='bcc32.exe' not of
1486         cc='cl.exe' - a working make utility (borland make doesn't work,
1487         nmake does)
1489         changes: - add bcc in hints/mswin32.pl - clean up for msvc++ in
1490         hints/mswin32.pl - remove a space from Configure.pl (very very
1491         important for bcc) - add a O_BINARY flag to open() in pdump.c,
1492         embed.c (required by bcc) - define O_BINARY 0 when it's not defined
1493         (win32 knows it, linux not)
1495         and the why: - parrot is MUCH faster when compiled with borland c
1496         (make test on p2-450, 320MB):   * msvc++: 313 seconds   * bcc: 251
1497         seconds
1499         Courtesy of "Ritz Daniel" <daniel_ritz@gmx.ch>
1501 2002-02-21 18:09  dan
1503         * jit.c, testparrotfuncptr.c, trace.c, classes/array.pmc, io/io.c,
1504         io/io_stdio.c, io/io_unix.c, io/io_win32.c: This patch removes
1505         cuddled elses, as required by PDD 7.
1507         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1509 2002-02-21 18:04  dan
1511         * MANIFEST, Makefile.in, check_source_standards.pl: This patch adds
1512         a new Makefile target called "check_source".  This target scans all
1513         the .c and .h files in the directory and checks for conformance to
1514         a number of the standards outlined in PDD 7.
1516         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1518 2002-02-21 16:38  ajgough
1520         * types/: bignum.c, bignum.h, bignum_atest.pl: Modifications to
1521         allow arithmetic with numbers with a fixed fractional part, buffer
1522         structures now more ready to be integrated into the parrot memory
1523         allocation game, test harness modified to allow lost_digits
1524         condition to be checked.  Some more comments.
1526 2002-02-21 15:53  simon
1528         * io/io_unix.c:
1529         Fix typo
1531         Courtesy of: "David M. Lloyd" <dmlloyd@tds.net>
1533 2002-02-20 16:41  dan
1535         * MANIFEST, docs/pdds/pdd_template.pod: Added in template PDD
1537 2002-02-18 18:25  dan
1539         * MANIFEST, lib_deps.pl: Added in lib_deps.pl and MANIFEST change.
1541         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1543 2002-02-18 18:21  dan
1545         * lib/Parrot/OpTrans/CPrederef.pm: this is a quick fix for
1546         CPrederef.pm to make to generated code compile with the MS
1547         compiler.
1549         fixes: - ms compiler allows inline only for c++, for c there's
1550         __inline - ms header files knows nothing about ssize_t
1552         Courtesy of "Ritz Daniel" <daniel_ritz@gmx.ch>
1554 2002-02-18 17:49  dan
1556         * MANIFEST: Add the PDDs
1558 2002-02-18 17:47  dan
1560         * docs/pdds/: pdd07_codingstd.pod, pdd7.pod: Added in PDD 7, the
1561         coding standards PDD.
1563 2002-02-18 17:40  dan
1565         * docs/pdds/: pdd06_pasm.pod, pdd6.pod: Updated to latest rev
1567 2002-02-18 12:41  gregor
1569         * test_main.c:
1570         Remove warning about exit() not being declared.
1572 2002-02-18 08:29  simon
1574         * misc.c, warnings.c, include/parrot/misc.h,
1575         include/parrot/warnings.h:
1576         This patch adds some missing const's to silence a number of gcc
1577         warnings.
1579         Courtesy of: Josh Wilmes <josh@hitchhiker.org>
1581 2002-02-18 08:26  simon
1583         * Makefile.in, core.ops, embed.c, interpreter.c, key.c, misc.c,
1584         ops2c.pl, packfile.c, pdump.c, stacks.c, string.c,
1585         classes/array.pmc, classes/perlarray.pmc, classes/perlhash.pmc,
1586         include/parrot/parrot.h, include/parrot/rx.h,
1587         include/parrot/stacks.h, io/io_stdio.c, io/io_unix.c,
1588         lib/Parrot/OpTrans/CPrederef.pm:
1589            - add makefile target and script to test for external libc
1590         dependencies
1591            - fix return values in hash and array PMCs (returning 0 in a
1592         void func)
1593            - remove unnecessary data pointer <=> function pointer
1594         conversions
1595              outside of the JIT code.
1596            - move the definition of the "INLINE" macro out of the rx header
1597         and make
1598              available for general use on C++ compilers and gcc.
1599            - remove a few unused variables
1601         Courtesy of: Josh Wilmes <josh@hitchhiker.org>
1603 2002-02-17 16:29  simon
1605         * docs/pdds/: pdd0.pod, pdd00_pdd.pod, pdd01_overview.pod,
1606         pdd02_vtables.pod, pdd04_datatypes.pod, pdd05_opfunc.pod,
1607         pdd06_pasm.pod, pdd1.pod, pdd2.pod, pdd4.pod, pdd5.pod, pdd6.pod:
1608         We're organised and responsible. Honest.
1610 2002-02-17 02:46  sfink
1612         * Makefile.in: Remove $^ for nmake compatibility.
1614 2002-02-16 09:20  brentdax
1616         * config_h.in, test_main.c, include/parrot/chartype.h,
1617         include/parrot/embed.h, include/parrot/encoding.h,
1618         include/parrot/string.h, include/parrot/string_funcs.h: Better
1619         embedding exposure and hiding, part 1.
1621 2002-02-16 04:38  dan
1623         * Makefile.in, core.ops, interpreter.c, pbc2c.pl, pdump.c,
1624         runops_cores.c, docs/running.pod, lib/Parrot/OpTrans/C.pm,
1625         lib/Parrot/OpTrans/CGoto.pm, lib/Parrot/OpTrans/CPrederef.pm:
1626         Anyway, here's a patch to repair pbc2c.pl, combined with removing
1627         typecasts in various places throughout the code. It probably won't
1628         work for Windows yet. The libparrot.a target might need to be
1629         modified to at least prevent it from confusing make on Windows; I
1630         don't know.
1632         Preliminary instructions for using pbc2c.pl are in
1633         docs/running.pod.  I'll try to do better later.
1635         Courtesy of Steve Fink <steve@fink.com>
1637 2002-02-16 04:15  dan
1639         * exceptions.c, include/parrot/exceptions.h: Warnings cleaned up
1641         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1643 2002-02-16 00:03  simon
1645         * classes/: perlarray.pmc, perlhash.pmc:
1647         pmc is already defined!
1649 2002-02-15 23:20  brentdax
1651         * Configure.pl, config_h.in, exceptions.c, pmc.c,
1652         include/parrot/exceptions.h: Far more informative panic messages.
1654 2002-02-15 03:24  dan
1656         * lib/Parrot/: Op.pm, OpsFile.pm, OpTrans/CPrederef.pm: Here's a
1657         much more extensive patch that fixes it to work properly, and
1658         deletes a bazillion casts as well.  It also points to the question
1659         "can we make the byte_code be an opcode_t* already?"
1661         Oh, and it makes some of the formatting prettier, so it's gotta be
1662         good.
1664         Courtesy of * Steve Fink <steve@fink.com>
1666 2002-02-15 02:30  dan
1668         * Makefile.in, core.ops, embed.c, misc.c, packfile.c, rx.ops,
1669         stacks.c: I've tweaked the "lint" target somewhat and fixed a few
1670         of the things it finds.  Attaching the patch as well as the current
1671         lint output.
1673         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1675 2002-02-15 01:59  dan
1677         * t/pmc/: array.t, perlhash.t: Disable non-functional bits for the
1678         moment.
1680 2002-02-15 01:48  dan
1682         * t/pmc/perlarray.t: Skip tests for features that need twiddling
1684 2002-02-15 01:40  dan
1686         * t/op/rx.t: Skip a test that's waiting for us to rejig some array
1687         things
1689 2002-02-14 23:30  dan
1691         * resources.c: Added comment for buffer tag routine. D'oh!
1693 2002-02-14 23:28  dan
1695         * resources.c, include/parrot/resources.h: Added buffer mark
1696         routine for GC
1698 2002-02-14 23:17  dan
1700         * memory.c, classes/array.pmc, classes/perlarray.pmc,
1701         include/parrot/memory.h, include/parrot/string.h, t/pmc/perlhash.t:
1702         Rejigged memory system a bit. Now should be ready for the horror
1703         that is garbage collection.
1705 2002-02-14 19:33  gregor
1707         * ops2c.pl, include/parrot/oplib.h:
1708         Added code to automatically generate a function within an oplib to
1709         lookup opinfos given the op name. This will come in handy in future
1710         when we want to twiddle opcode tables at run time and possibly at
1711         startup time.
1713 2002-02-14 19:25  gregor
1715         * examples/assembly/queens.pasm:
1716         Regenerated queens.pasm from queens.jako since the clone_* stuff
1717         went away.
1719 2002-02-14 17:12  dan
1721         * resources.c, include/parrot/resources.h: Finished up the
1722         interface for memory and tracked interpreter thingies.
1724 2002-02-14 16:53  dan
1726         * memory.c, include/parrot/memory.h: intercept free and realloc
1728 2002-02-14 05:53  dan
1730         * interpreter.c, runops_cores.c: The type changes in struct
1731         Packfile break the pointer math used in a few places to calculate
1732         the address of the end of the loaded byte code. This causes
1733         segfaults in build_asm in jit.c when using -j. It also breaks the
1734         bounds checking on opcode address in runops_slow_core.
1736         The patch adds the necessary cast to correct the code_end
1737         calculations.
1739         Courtesy of Jason Gloudon <perl@gloudon.com>
1741 2002-02-14 01:01  ajgough
1743         * types/: bignum.c, bignum.h, bignum_test.pl: Added support for
1744         BigInt operations (I think), tests for normal operation continue to
1745         pass.  Also a shed load of comments.
1747 2002-02-13 01:34  ajgough
1749         * types/: bignum.c, bignum.h, bignum_atest.pl, bignum_test.pl: This
1750         is a (mostly) working bignumber library.  There remains much work
1751         to do though, some functions are not yet implemented and headers
1752         need to find their way to the correct place RSN.  Also support for
1753         bigints and a sensible error reporting mechanism are needed.
1755 2002-02-12 18:51  dan
1757         * misc.c: Fix some warnings
1759 2002-02-12 17:10  dan
1761         * misc.c: Run through indent -kr -nce so I can read it
1763 2002-02-12 16:49  dan
1765         * misc.c: Need standard header/footer comments
1767 2002-02-11 20:32  simon
1769         * classes/array.pmc:
1770         get and set pmc methods.
1772 2002-02-11 20:19  simon
1774         * classes/array.pmc:
1775         Maybe the keys aren't integer...
1777 2002-02-11 20:03  simon
1779         * core.ops, vtable.tbl, classes/default.pmc:
1780         {g,s}et_pmc_keyed
1782 2002-02-11 19:07  simon
1784         * vtable.tbl, classes/default.pmc:
1785         Add set_pmc. Usee with caution.
1787 2002-02-11 18:20  dan
1789         * classes/: array.pmc, perlarray.pmc: Patch array classes to
1790         compile
1792 2002-02-11 17:59  simon
1794         * core.ops, embed.c, global_setup.c, key.c, rx.ops,
1795         classes/perlarray.pmc, classes/perlhash.pmc:
1796         Make it compile.
1798 2002-02-11 17:57  simon
1800         * packfile.c, include/parrot/packfile.h:
1801         Reduce warnings
1803         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
1805 2002-02-11 17:55  dan
1807         * docs/parrot_assembly.pod: Document some key ops
1809 2002-02-11 09:20  brentdax
1811         * pmc.c, include/parrot/exceptions.h: Adding a panic ought to be
1812         disgustingly easy.
1814 2002-02-11 00:34  simon
1816         * core.ops, include/parrot/exceptions.h:
1817         This is what keyed set ops look like. Remember, however, that for
1818         keyed functions, all operands must be PMCs. set(PMC, PMC, INT)
1819         means $1 = $2[$3], not $1[$2] = $3. set(PMC,PMC,PMC) is so
1820         obviously ambiguous that you ought to use the 4-arg version
1821         instead.
1823 2002-02-10 23:12  jgoff
1825         * classes/: array.pmc, perlarray.pmc: Properly allocate
1826         SELF->data's array of PMC* data in array and perlarray.pmc.  This
1827         isn't tested yet, but should be fairly straightforward.  PerlHash
1828         needs to be finished before the system will compile again, and that
1829         should be done in the next few days.
1831 2002-02-09 04:46  jgoff
1833         * classes/: array.pmc, default.pmc, intqueue.pmc,
1834         parrotpointer.pmc, perlarray.pmc, perlhash.pmc, perlundef.pmc:
1835         Added basic _keyed member functions.  Unfortunately this still
1836         doesn't fix the problems that are causing the build to break. It's
1837         a start though. I'm not implementing the PMC add functions just
1838         yet.
1840 2002-02-08 15:59  simon
1842         * classes/array.pmc:
1843         Some more work on getting the array stuff up to date.
1845 2002-02-08 12:23  simon
1847         * classes/array.pmc, classes/perlhash.pmc, include/parrot/key.h,
1848         lib/Parrot/Vtable.pm:
1849         Got array->get_integer_keyed doing what I think it ought to. One
1850         down, all the rest to go.
1852 2002-02-08 11:47  simon
1854         * vtable.tbl:
1855         Although I didn't intend it to be quite that broken...
1857 2002-02-08 11:42  simon
1859         * vtable.tbl, include/parrot/parrot.h, lib/Parrot/Vtable.pm:
1860         Completely break Parrot, but at least we get the key stuff right
1861         for now.
1863 2002-02-08 06:25  dan
1865         * hints/darwin.pl: Silences the warning about passing in
1866         -flat_namespace to the compile.  That's a link-only flag.
1868 2002-02-08 04:52  jgoff
1870         * classes/: array.pmc, default.pmc, intqueue.pmc,
1871         parrotpointer.pmc, perlarray.pmc, perlhash.pmc, perlint.pmc,
1872         perlnum.pmc, perlstring.pmc, perlundef.pmc: Filled in missing
1873         return values in *.pmc, added some missing casts to the repeat_foo
1874         members, and deleted the _index members from the perlscalar
1875         classes.  Basic cleanup, and getting ready for _keyed functions.
1877 2002-02-07 04:49  mrjoltcola
1879         * examples/assembly/bsr.pasm: Elaborated on the bsr/ret example,
1880         added a nested subroutine call.
1882 2002-02-07 04:32  jgoff
1884         * vtable.tbl, lib/Parrot/Vtable.pm: vtable.tbl got some minor
1885         changes in order to give the whitespace rules a little workout, and
1886         do a little bit more testing. No actual structural changes were
1887         made.  lib/Parrot/Vtable.pm got an interface change, and more
1888         importantly should be ready to support the new '_keyed' attribute,
1889         which will work roughly thus: PMC* src_value gets remapped to 'PMC*
1890         src_value' followed by 'KEY* src_key'.  This will be how the new
1891         _keyed operators will function, and those should be written within
1892         a few days.
1894 2002-02-06 18:00  doughera
1896         * misc.c: Change C++-style comments to C comments (again).  Remove
1897         unused perl5 code that was in #if 0/#endif.
1899 2002-02-06 17:59  doughera
1901         * warnings.c: Add trailing newline.
1903 2002-02-06 04:14  mrjoltcola
1905         * include/parrot/io.h, io/io.c: Minor cleanup.
1907 2002-02-06 03:11  mrjoltcola
1909         * examples/assembly/io1.pasm, io/io.c, io/io_win32.c: Tied up a
1910         couple of loose end in win32 IO stuff. Open behaves now but needs
1911         more work.
1913 2002-02-05 21:02  brentdax
1915         * classes/pmc2c.pl: Length on whoami init was always 7--a problem
1916         which showed up in Purify builds.
1918 2002-02-05 17:15  simon
1920         * misc.c:
1921         Warning fixes.
1923         Courtesy of: Jonathan Stowe <gellyfish@gellyfish.com>
1925 2002-02-05 17:08  doughera
1927         * misc.c: Avoid C++-style comments.
1929 2002-02-05 17:07  doughera
1931         * lib/Parrot/Jit/sun4Generic.pm: Generated assembly programs were
1932         not valid assembler for Sun's /usr/ccs/bin/as.  Now they are,
1933         thanks to Jason Gloudon <perl@gloudon.com>.
1935 2002-02-05 14:04  simon
1937         * misc.c:
1938         Make the problem different, perhaps even better.
1940 2002-02-05 13:49  simon
1942         * misc.c:
1943         Possibly fix a `short int' is promoted to `int' when passed through
1944         `...' scary error, possibly make things absolutely worse.
1946 2002-02-05 13:15  simon
1948         * Configure.pl:
1949         Placate Tru64.
1951 2002-02-05 13:12  simon
1953         * warnings.c:
1954         Not going to get far without this one...
1956 2002-02-05 11:41  simon
1958         * string.c:
1959         Don't barf when handed null pointers.
1961 2002-02-05 10:04  simon
1963         * misc.c, include/parrot/misc.h:
1964         Fix some trivial bugs in warnings code.
1966 2002-02-05 09:27  simon
1968         * misc.c:
1969         Oops, forgot this one; also added %P support.
1971 2002-02-05 09:20  simon
1973         * MANIFEST, Makefile.in, core.ops, embed.c, interpreter.c,
1974         test_main.c, classes/perlundef.pmc, include/parrot/embed.h,
1975         include/parrot/interpreter.h, include/parrot/misc.h,
1976         include/parrot/parrot.h, include/parrot/warnings.h:
1977         Warnings support.
1979         Courtesy of: Brent Dax <brentdax@cpan.org>
1981 2002-02-05 05:41  jgoff
1983         * vtable.tbl, lib/Parrot/Vtable.pm, t/pmc/perlstring.t: Changed the
1984         format of vtable.tbl to get rid of the tab-dependence.  The format
1985         now looks roughly like this:
1987         init() # 'void' and 'unique' are assumed INTVAL type ( ) # 'unique'
1988         is assumed str void concatenate (PMC* value, PMC* dest) # Nothing
1989         assumed here, but note the C-like prototyping.  Also had to disable
1990         one test that depended upon 'concat_p_p_s', which isn't necessary
1991         anyway.
1993         Vtable.pm will change again when the type '_keyed' is added,
1994         because that requires remapping parameters slightly differently
1995         again.  Also, note that it assumes 'value' is the first parameter
1996         in the list. This assumption will go away at the same time.
1998 2002-02-04 16:57  ajgough
2000         * core.ops, t/pmc/perlstring.t, t/pmc/pmc.t: More tests for pmc
2001         functions.  Thanks to Simon Glover.
2003 2002-02-04 02:47  ajgough
2005         * hints/os2.pl: Removes a flag from the os/2 hints file that isn't
2006         needed.  I suspect that the entire hints file isn't really needed,
2007         but there's no one to actually tell us this.
2009 2002-02-02 15:45  ask
2011         * docs/ParrotFAQ.htm: fix internal links
2013 2002-02-02 04:06  jgoff
2015         * classes/: array.pmc, intqueue.pmc, perlarray.pmc, perlhash.pmc:
2016         Moving the internal KEY structure from the cache.struct_val member,
2017         where it doesn't really belong, to the internal SELF->data member.
2018         This frees up the cache/type members for other usage.
2020         This is the first step in moving PMCs to the point where we can do
2021         multidimensional PMC handles. The next step is to change the
2022         assembler to accept the syntax of 'set P0["foo"],7'.
2024 2002-02-02 00:13  nicholas
2026         * include/parrot/global_setup.h: Patch from Jonathan Stowe to
2027         prototype Parrot_Array_class_init
2029 2002-02-02 00:13  nicholas
2031         * embed.c: Casts to tidy up warnings from Jonathan Stowe Change
2032         time to sum_time to avoid warning on FreeBSD about tracking a
2033         global [No, this warning does not appear on Linux. Yes, it is real
2034         :-)]
2036 2002-02-01 23:02  nicholas
2038         * embed.c: Fix fprintf format warning in Parrot_runcode. From Simon
2039         Glover
2041 2002-02-01 20:20  nicholas
2043         * t/pmc/pmc.t: Add end at end of asm in test (from Simon Glover)
2045 2002-02-01 18:20  nicholas
2047         * lib/Parrot/Test.pm: Env.pm on 5.005_03 doesn't do a use vars for
2048         you
2050 2002-02-01 13:22  nicholas
2052         * MANIFEST: Add docs/embed.pod and t/op/ifunless.t
2054 2002-02-01 12:19  simon
2056         * core.ops, t/op/ifunless.t, t/op/integer.t:
2057         Added "unless" op.
2059 2002-02-01 12:11  simon
2061         * lib/Parrot/Test.pm:
2062         Remove a warning.
2064 2002-02-01 01:38  nicholas
2066         * MANIFEST, MANIFEST.SKIP, Makefile.in: Add a MANIFEST.SKIP file,
2067         and a manitest target to Makefile.in that lets one test the
2068         manifest.
2070 2002-02-01 00:03  dan
2072         * core.ops, global_setup.c, include/parrot/pmc.h: More setup for
2073         PMC dynaloading
2075 2002-01-31 21:46  gregor
2077         * Configure.pl, Makefile.in, hints/mswin32.pl:
2078         A few more things are now configable, so we are closer to win32
2079         shared library builds. Not there yet, but closer.
2081 2002-01-31 21:00  dan
2083         * global_setup.c, classes/pmc2c.pl, include/parrot/global_setup.h,
2084         include/parrot/pmc.h: First step in dynamically loading PMC classes
2086 2002-01-31 19:38  dan
2088         * Makefile.in: Dependencies in the Makefile are currently too broad
2089         brush.  I don't enjoy waiting for everything to recompile every
2090         time I try to tweak the jit. The only file that #includes
2091         jit_struct.h is jit.c, so I feel that the Makefile dependencies
2092         should reflect this, and not cause a gratuitous recompile of
2093         everything.  There are probably other auto-generated header files
2094         that world+dog should not depend on.
2096         Courtesy of  Nicholas Clark <nick@unfortu.net>
2098 2002-01-31 19:03  gregor
2100         * Makefile.in, lib/Parrot/Test.pm, t/harness:
2101         Added two new make targets:
2103           * testp: Like 'make test', but passes -P to t/harness, so you get
2104         to
2105             see how broken predereferencing is.
2107           * testj: Like 'make test', but passes -j to t/harness, so you get
2108         to
2109             see how broken JIT is.
2111         Now, anyone who wants to see how good all three ways of running are
2112         can do so, at the cost of about 3x the time.
2114 2002-01-31 17:09  brentdax
2116         * embed.c, test_main.c: Implement the ARGV-in-P0 thing.
2118 2002-01-31 03:41  grunblatt
2120         * docs/jit.pod: Update jit.pod
2122 2002-01-31 03:20  grunblatt
2124         * jit/i386/core.jit: Hold this until we get an assemble tool,
2125         because of the different objdump problems.
2127 2002-01-31 03:13  grunblatt
2129         * Configure.pl, lib/Parrot/Jit/sun4-solaris.pm,
2130         lib/Parrot/Jit/sun4Generic.pm: Use dis intead of objdump.  Courtesy
2131         of: Jason Gloudon <perl@gloudon.com>
2133 2002-01-31 02:22  grunblatt
2135         * jit/i386/core.jit: Continue if the register is null
2137 2002-01-30 23:50  grunblatt
2139         * lib/Parrot/Jit/: alpha-bsd.pm, alpha-linux.pm, alphaGeneric.pm,
2140         i386-bsd.pm, i386-linux.pm, i386Generic.pm, sun4-solaris.pm,
2141         sun4Generic.pm: Move the AS and OBJDUMP constants to each os
2142         specific file.
2144 2002-01-30 23:35  mrjoltcola
2146         * io/io_win32.c: Change implementation of isatty on win32,
2147         suggested by Hong Zhang.
2149 2002-01-30 23:19  sfink
2151         * jit2h.pl, lib/Parrot/Op.pm, lib/Parrot/OpsFile.pm: Added
2152         Op::may_jump boolean method.
2154         Replaced jit2h's hardcoded pattern match to decide what ops might
2155         change the control flow.
2157 2002-01-30 22:13  dan
2159         * Configure.pl, MANIFEST, testparrotfuncptr.c: This patch allows
2160         parrot to mostly-build with tcc.  It allows one to skip compiling
2161         the JIT stuff (by specifying --define jitcapable=0), and it
2162         introduces a test program which gives a friendlier error in this
2163         case for compilers which are as picky as tcc is about function
2164         pointer conversion.
2166         If anyone figures out the proper way to cast these function
2167         pointers this may not be necessary.
2169         Courtesy of Josh Wilmes <josh@hitchhiker.org>
2171 2002-01-30 20:54  dan
2173         * docs/running.pod, lib/Parrot/Test.pm: I'm being anal again.
2174         Here's an update to docs/running.pod to better reflect the current
2175         state (both the test_parrot and assemble.pl improvements, plus
2176         documentation of a few more things.) And also a speling fiks
2177         s/POST_MORTERM/POST_MORTEM/.
2179         I could also replace some "perl foo" calls with "./foo" if someone
2180         wanted to set the executable flag in CVS on assemble.pl,
2181         optimize.pl, etc.
2183         Courtesy of Steve Fink <steve@fink.com>
2185 2002-01-30 20:43  dan
2187         * core.ops: find_global doesn't work, so stub out the wrong code
2189 2002-01-30 19:08  dan
2191         * lib/Parrot/Assembler.pm:  fixes the POD in Parrot::Assember so
2192         that perldoc
2193          can read it and just tidies it up generally. It also adds
2194         documentation
2195          for the constantize_integer and constantize_number functions.
2197         Courtesy of Simon Glover <scog@roe.ac.uk>
2199 2002-01-30 18:02  dan
2201         * assemble.pl, disassemble.pl, optimizer.pl, pbc2c.pl,
2202         classes/genclass.pl, classes/pmc2c.pl,
2203         languages/scheme/Scheme/Test.pm:  Many of the Perl scripts in the
2204         distribution (including assemble.pl !)
2205          can no longer find the Parrot::* modules. Enclosed patch fixes
2206         (although
2207          it would be nice if there were an easier way to do this).
2209         Courtesy of  Simon Glover <scog@roe.ac.uk>
2211 2002-01-30 16:00  mrjoltcola
2213         * io/io_win32.c: Correct function calls for win32_fdopen and arg
2214         types.
2216 2002-01-30 15:50  mrjoltcola
2218         * io/io_unix.c: Minor bug fix for fdopen flag arg type.
2220 2002-01-30 15:42  grunblatt
2222         * pbc2c.pl, examples/assembly/Makefile: Updates related to moving
2223         files around
2225 2002-01-30 15:38  grunblatt
2227         * MANIFEST: Enclosed patch adds the new SPARC-based JIT files to
2228         the manifest,  and also puts it back into alphabetical order.
2230         Courtesy of: Simon Glover <scog@roe.ac.uk>
2232 2002-01-30 14:41  nicholas
2234         * embed.c: Patch from Simon Glover to clean up warnings where
2235         prototype is () not (void)
2237 2002-01-30 13:54  nicholas
2239         * include/parrot/embed.h, test_main.c: Add void as an explicit
2240         parameter in test_main.c's usage(), version(void) and embed.h's
2241         Parrot_new() Without these gcc moans: include/parrot/embed.h:34:
2242         warning: function declaration isn't a prototype
2244 2002-01-30 12:08  simon
2246         * lib/Parrot/.cvsignore:
2247         Ignore generated Perl modules.
2249 2002-01-30 12:07  simon
2251         * t/harness:
2252         Run the PMC tests as well.
2254 2002-01-30 12:04  simon
2256         * MANIFEST:
2257         Fix MANIFEST after recent t/pmc rejig.
2259 2002-01-30 11:42  simon
2261         * lib/Parrot/Test.pm:
2262         Report non-zero exit codes.
2264         Courtesy of: Michael G Schwern <schwern@pobox.com>
2266 2002-01-30 11:39  simon
2268         * t/op/rx.t:
2269         Skip final test, TODO doesn't work yet.
2271 2002-01-30 09:54  brentdax
2273         * docs/embed.pod: Leon Brocard was kind enough to explain to me how
2274         predereferencing works.
2276 2002-01-30 09:38  brentdax
2278         * docs/: embed.pod, parrot.pod: Document this newfangled embedding
2279         subsystem.
2281 2002-01-30 09:37  brentdax
2283         * include/parrot/embed.h: Fix a mistake, clear up a warning.
2285 2002-01-30 09:37  brentdax
2287         * config_h.in: Expose another flag for embedders.
2289 2002-01-30 05:07  jgoff
2291         * make_vtable_ops.pl, t/harness: Both files didn't know of the new
2292         location for Parrot/, and t/harness wasn't able to run the new
2293         op/pmc tests. Both problems fixed, so I think I'm going to declare
2294         the build suitable for public consumption.
2296 2002-01-30 04:34  robert
2298         * docs/Makefile.in: update for CVS movement
2300 2002-01-30 04:32  robert
2302         * Makefile.in: Adjust for CVS reorganization.  (This time, edit the
2303         .in file, not the real Makefile)
2305 2002-01-30 04:20  robert
2307         * Configure.pl, jit2h.pl, ops2c.pl, ops2pm.pl, pmc_pm.pl,
2308         vtable_h.pl, classes/pmc2c.pl, include/parrot/parrot.h: Updates
2309         related to moving files around
2311 2002-01-30 04:10  robert
2313         * MANIFEST: Update MANIFEST to reflect CVS reorg.
2315 2002-01-30 04:07  robert
2317         * Configure.pl: Add './lib' to our @INC because Parrot/* moved.
2319 2002-01-30 03:56  robert
2321         * Parrot/: .cvsignore, Assembler.pm, BuildUtil.pm, Op.pm,
2322         OpTrans.pm, OpsFile.pm, Optimizer.pm, PackFile.pm, String.pm,
2323         Test.pm, Vtable.pm, Jit/alpha-bsd.pm, Jit/alpha-linux.pm,
2324         Jit/alphaGeneric.pm, Jit/i386-bsd.pm, Jit/i386-linux.pm,
2325         Jit/i386-nojit.pm, Jit/i386Generic.pm, Jit/sun4-solaris.pm,
2326         Jit/sun4Generic.pm, OpLib/.cvsignore, OpTrans/C.pm,
2327         OpTrans/CGoto.pm, OpTrans/CPrederef.pm, PackFile/ConstTable.pm,
2328         PackFile/Constant.pm, PackFile/FixupTable.pm: Moved Parrot/* to
2329         lib/Parrot/
2331 2002-01-30 03:46  robert
2333         * languages/miniperl/miniperlc: renamed to mpc
2335 2002-01-30 03:45  robert
2337         * t/op/: pmc.t, pmc_array.t, pmc_perlarray.t, pmc_perlhash.t,
2338         pmc_perlstring.t: Moved to t/op/pmc/
2340 2002-01-30 03:40  robert
2342         * include/parrot/register_funcs.h: Renamed to regfuncs.h
2344 2002-01-30 03:14  jgoff
2346         * classes/perlarray.pmc, t/op/pmc_perlarray.t, t/pmc/perlarray.t:
2347         Fixed some problems with PerlArray and added tests.  Previously,
2348         only integers could be accessed by negative indices.  After this
2349         change, all basic types can be accessed by negative indices, and
2350         they can also be set at negative indices.
2352 2002-01-29 22:13  brentdax
2354         * TODO: Just look at the stupid diff.
2356 2002-01-29 21:53  simon
2358         * TODO, docs/vtables.pod:
2359         New TODO, and tiny addition to vtables.pod
2361 2002-01-29 21:47  mrjoltcola
2363         * include/parrot/io.h, io/io_unix.c: Minor bug fix in io_unix.
2365 2002-01-29 21:38  mrjoltcola
2367         * Makefile.in: Makefile.in tweak for io depend.
2369 2002-01-29 21:15  brentdax
2371         * embed.c: Fix a segfault and some profiling formatting nits.
2373 2002-01-29 20:54  brentdax
2375         * pmc.c: Oops.
2377 2002-01-29 20:50  brentdax
2379         * pmc.c, include/parrot/exceptions.h: Exceptions are better than
2380         segfaults.
2382 2002-01-29 20:17  mrjoltcola
2384         * interpreter.c, core.ops, io.ops: CVS missed this.
2386 2002-01-29 20:17  mrjoltcola
2388         * io/io.c: These should have gone in Sunday with the rest. CVS is
2389         out to get me.
2391 2002-01-29 18:39  brentdax
2393         * platforms/win32.h: Fix Win32 whoops.
2395 2002-01-29 18:29  brentdax
2397         * embed.c, include/parrot/embed.h: A couple minor embedding fixes.
2399 2002-01-29 17:51  simon
2401         * MANIFEST, Makefile.in, config_h.in, embed.c, test_main.c,
2402         include/parrot/embed.h, include/parrot/parrot.h:
2403         Embedding support. Cool.
2405         Courtesy of: <brentdax@cpan.org>
2407 2002-01-29 15:40  grunblatt
2409         * Configure.pl: Detect if we can use "objdump".  Courtesy of: Jason
2410         Gloudon <perl@gloudon.com>
2412 2002-01-29 14:42  simon
2414         * include/parrot/parrot.h:
2415         Platform stuff has to be included *after* system headers.
2417 2002-01-29 14:05  grunblatt
2419         * interpreter.c, jit.c, Parrot/Jit/sun4-solaris.pm,
2420         Parrot/Jit/sun4Generic.pm, lib/Parrot/Jit/sun4-solaris.pm,
2421         lib/Parrot/Jit/sun4Generic.pm, include/parrot/jit.h,
2422         jit/sun4/core.jit, jit/sun4/lib.jit, jit/sun4/string.jit: Added
2423         support for SPARC.  Courtesy of: Jason Gloudon <perl@gloudon.com>
2425 2002-01-29 10:56  simon
2427         * platforms/generic.h:
2428         If we don't have a S_ISREG, produce something close to it.
2430 2002-01-29 06:01  dan
2432         * MANIFEST, README, LICENSES/Artistic: Finally added licenses
2434 2002-01-29 04:38  jgoff
2436         * classes/array.pmc: Forgot to remove some C++-isms from the
2437         get_{foo}_index routines.
2439 2002-01-29 04:26  jgoff
2441         * MANIFEST, Makefile.in, global_setup.c, classes/Makefile.in,
2442         classes/array.pmc, include/parrot/pmc.h, t/op/pmc_array.t,
2443         t/pmc/array.t: Added array class that languages other than perl can
2444         use for a basis.  It has no features like preextension, and the
2445         array index starts at 0.
2447         MANIFEST - added classes/array.pmc and t/op/pmc_array.t Makefile.in
2448         and classes/Makefile.in - Added array.pmc to the makefile.
2449         (Assuming rules like .pmc.o are portable (or even possible) I might
2450         alter classes/Makefile.in to autobuild the appropriate files.
2452 2002-01-29 02:32  dan
2454         * MANIFEST, Parrot/Test.pm, lib/Parrot/Test.pm,
2455         lib/Test/Builder.pm, lib/Test/More.pm, lib/Test/Simple.pm,
2456         lib/Test/Utils.pm, t/op/interp.t, t/op/macro.t, t/op/pmc.t,
2457         t/op/rx.t, t/op/stacks.t, t/pmc/pmc.t:
2458             Update to Test::More 0.41 which adds Test::Builder
2460             Delete the vestigal Test::Utils
2462             Change Parrot::Test so it uses Test::Builder instead of Evil
2463         Wrappers
2464             around Test::More
2466             output_* now returns whether the test passes or fails
2468             Parrot::Test no longer exports Test::More's functions.  Instead
2469         they
2470             can simply be used together.  The few tests which used
2471         Test::More
2472             features (ie. skip) have 'use Test::More' added.
2474             I ditched the export_to_level() crutch.  Do we expect parrot to
2475         work on
2476             5.004?  (literally 5.004, not 5.004_04)
2478         Courtesy of Michael G Schwern <schwern@pobox.com>
2480 2002-01-28 21:04  dan
2482         * docs/overview.pod:  There is no opcodes.pod; I'm assuming the
2483         pointer should actually be to
2484          parrot_assembly.pod, as the canonical documentation.
2486         Courtesy of Simon Glover <scog@roe.ac.uk>
2488 2002-01-28 20:21  dan
2490         * languages/jako/jakoc, t/op/stacks.t: Toss the last traces of
2491         clone[inps]
2493 2002-01-28 19:18  dan
2495         * core.ops, register.c: clone[insp] is dead
2497 2002-01-28 17:46  grunblatt
2499         * Parrot/Jit/i386Generic.pm, lib/Parrot/Jit/i386Generic.pm,
2500         jit/i386/core.jit: Fix to make the jit work in linux yet again.
2502 2002-01-28 16:45  dan
2504         * MANIFEST, README.OS_X: Added Mac OS X specific readme documenting
2505         the requirement for fink at the moment.
2507 2002-01-28 15:59  simon
2509         * test_main.c:
2510         People might try and run a directory file, with spectacular
2511         results.  We don't want that. No.
2513 2002-01-28 14:58  doughera
2515         * core.ops: Avoid C++-style comments.
2517 2002-01-28 14:16  grunblatt
2519         * jit.c, io/io.c: Changed jit.c to fit the way registers are
2520         accessed.  Readded the pio_(stdin|stdout|stderr) to make builds
2521         work again.
2523 2002-01-28 13:47  doughera
2525         * include/parrot/register.h: Avoid C++-style comment.
2527 2002-01-28 06:03  dan
2529         * MANIFEST, core.ops, interpreter.c, key.c, register.c, trace.c,
2530         Parrot/OpTrans/C.pm, Parrot/OpTrans/CGoto.pm,
2531         lib/Parrot/OpTrans/C.pm, lib/Parrot/OpTrans/CGoto.pm,
2532         docs/parrot_assembly.pod, include/parrot/interpreter.h,
2533         include/parrot/parrot.h, include/parrot/regfuncs.h,
2534         include/parrot/register.h, include/parrot/register_funcs.h,
2535         include/parrot/string.h, include/parrot/string_funcs.h: Registers
2536         are now stored in the interpreter structure itself, rather than
2537         just a pointer to the top of the register structure. Pushes and
2538         pops now involve memcpys, but register access has one fewer
2539         dereference.
2541         Fails four of the register stack tests, though, so not perfect.
2542         Needs fixing, but this is a good place to start.
2544 2002-01-28 04:40  mrjoltcola
2546         * test_main.c: cvs commit missed this. ??
2548 2002-01-28 04:27  mrjoltcola
2550         * examples/assembly/io1.pasm, include/parrot/exceptions.h,
2551         include/parrot/interpreter.h, include/parrot/io.h, io/io.c,
2552         io/io_stdio.c, io/io_unix.c, io/io_win32.c: ParrotIO local to each
2553         interpreter now (at least in theory).  IO handle array added.  Misc
2554         bug fixes in layer handling.  Changed any IO_ constants to PIO_ so
2555         we don't conflict         with system libraries.  Still have broken
2556         stuff in win32 and stdio layer.
2558 2002-01-28 04:01  mrjoltcola
2560         * include/parrot/chartype.h: Typo in chartype.h include guard.
2562 2002-01-28 03:41  mrjoltcola
2564         * t/op/interp.t: Fix flag for interp so we don't get "info"
2565         messages which break tests.
2567 2002-01-28 01:54  dan
2569         * include/parrot/string.h: A few more buffer/string flags
2571 2002-01-27 11:33  nicholas
2573         * chartypes/unicode.c: Cast unsigned argument to int in call to
2574         isdigit to silence gcc warning.
2576 2002-01-26 23:18  grunblatt
2578         * Parrot/Jit/i386Generic.pm, lib/Parrot/Jit/i386Generic.pm: Turn
2579         off that flag.
2581 2002-01-26 23:17  grunblatt
2583         * Parrot/Jit/i386Generic.pm, lib/Parrot/Jit/i386Generic.pm,
2584         jit/i386/core.jit: [no log message]
2586 2002-01-26 22:18  simon
2588         * jit/i386/core.jit:
2589         Jumping to 0x0 is a recipe for segfaults.
2591 2002-01-26 18:35  simon
2593         * t/harness:
2594         Allow user to select which tests to harness
2596         Courtesy of: Nicholas Clark <nick@unfortu.net>
2598 2002-01-26 17:20  grunblatt
2600         * Parrot/Jit/i386-linux.pm, Parrot/Jit/i386Generic.pm,
2601         lib/Parrot/Jit/i386-linux.pm, lib/Parrot/Jit/i386Generic.pm: Patch
2602         to make the jit work in linux again.
2604 2002-01-26 16:52  dan
2606         * Configure.pl, hints/darwin.pl: Add -Wno-shadow, as Darwin's
2607         headers can't cope with this. Darwin-only
2609 2002-01-26 16:04  dan
2611         * include/parrot/parrot.h: Quick note to remind folks that this
2612         isn't the file they're looking for if they're writing extensions or
2613         embedding parrot.
2615         Courtesy of Andy Dougherty <doughera@lafayette.edu>
2617 2002-01-26 00:41  mrjoltcola
2619         * MANIFEST: Oopsy.
2621 2002-01-26 00:37  mrjoltcola
2623         * docs/ParrotFAQ.htm: Parrot FAQ : Created and maintained by Adam
2624         Turoff
2626 2002-01-25 01:31  grunblatt
2628         * jit/alpha/core.jit: There is no neg or fneg.
2630 2002-01-25 01:27  grunblatt
2632         * core.ops, Parrot/Jit/alphaGeneric.pm, Parrot/Jit/i386Generic.pm,
2633         lib/Parrot/Jit/alphaGeneric.pm, lib/Parrot/Jit/i386Generic.pm,
2634         jit/alpha/core.jit, jit/i386/core.jit, t/op/integer.t,
2635         t/op/number.t: Added Parrot_neg.  Erase t.s
2637 2002-01-24 23:26  dan
2639         * interpreter.c: Best make sure unused elements are NULL
2641 2002-01-24 23:24  dan
2643         * interpreter.c: Fix stupid thinko
2645 2002-01-24 18:37  doughera
2647         * Makefile.in: Add a few missing dollar signs in the lifetest
2648         section so that ${exe} and the like get properly interpolated.
2650 2002-01-24 18:15  mrjoltcola
2652         * docs/: .cvsignore, Makefile.in, parrot.pod: Fix pod generation
2653         for io.ops file. Add reference to it in parrot.pod.  Courtesy of
2654         Simon Glover <scog@roe.ac.uk>
2656 2002-01-24 06:43  mrjoltcola
2658         * io/io_stdio.c: Oops.
2660 2002-01-24 06:34  mrjoltcola
2662         * include/parrot/io.h, io/TODO, io/io.c, io/io_stdio.c: Did a bit
2663         of work on the buffering layer.  Decided to use shared read/write
2664         buffer (as do most implementations) for now since its the simplest
2665         way to keep everything synced, (flush on seeks, flush read on
2666         writes, etc.)
2668 2002-01-24 03:38  mrjoltcola
2670         * test_main.c: Cleaned up option handling code a bit for main().
2672 2002-01-23 23:22  dan
2674         * interpreter.c, include/parrot/interpreter.h,
2675         include/parrot/resources.h: Now each interpreter gets its own hash
2676         for globals.
2678 2002-01-23 20:45  dan
2680         * Configure.pl: Fix a warning when there's no - in an architecture
2682 2002-01-22 23:57  grunblatt
2684         * docs/running.pod: [no log message]
2686 2002-01-22 20:29  doughera
2688         * KNOWN_ISSUES: long doubles don't work on SPARC either.  It
2689         appears to be a generic problem (if sizeof(long double) >
2690         sizeof(double)), not an x86-specific one.
2692 2002-01-22 16:57  doughera
2694         * runops_cores.c: Change variable name from time to starttime to
2695         avoid gcc warning about variable name shadowing.
2697 2002-01-22 16:55  doughera
2699         * classes/pmc2c.pl: Include class_init prototype too.
2701 2002-01-22 16:01  doughera
2703         * MANIFEST: [no log message]
2705 2002-01-22 01:04  ajgough
2707         * global_setup.c, classes/default.pmc, classes/intqueue.pmc,
2708         classes/parrotpointer.pmc, classes/perlarray.pmc,
2709         classes/perlhash.pmc, classes/perlint.pmc, classes/perlnum.pmc,
2710         classes/perlstring.pmc, classes/perlundef.pmc, classes/pmc2c.pl,
2711         include/parrot/global_setup.h: Patch from Nick Clark to quieten
2712         warnings from pmc files.  Message-ID:
2713         <20020121224719.GE1726@Bagpuss.unfortu.net>
2715 2002-01-22 00:53  ajgough
2717         * test_main.c: Clears up a couple of warnings in test_main.c.
2718         Thanks to Nick Clark.  Message-ID:
2719         <20020121190457.GB1726@Bagpuss.unfortu.net>
2721 2002-01-22 00:47  ajgough
2723         * string.c, chartypes/unicode.c, chartypes/usascii.c,
2724         include/parrot/chartype.h: Cause all codepoints to be treated as
2725         UNITVALS, and get_digit to return INTVAL, just in case. (Thanks to
2726         Nick Clark, see also: Message-ID:
2727         <20020121214137.GC2371@Bagpuss.unfortu.net> )
2729 2002-01-22 00:24  dan
2731         * key.c: We do mandate an ANSI conformant C compiler, don't we?
2733         Appended patch cures these warnings:
2735         key.c: In function `debug_key': key.c:29: warning: int format,
2736         INTVAL arg (arg 3) key.c:33: warning: int format, INTVAL arg (arg
2737         3) key.c:33: warning: int format, INTVAL arg (arg 4) key.c:36:
2738         warning: int format, INTVAL arg (arg 3) key.c:36: warning: int
2739         format, INTVAL arg (arg 4)
2741         Courtesy of Nicholas Clark <nick@unfortu.net>
2743 2002-01-21 12:41  mrjoltcola
2745         * MANIFEST, io.ops: For some reason cvs commit didn't get this, may
2746         be clock skew.
2748 2002-01-21 06:37  mrjoltcola
2750         * io/io.c: Cleanup a warning
2752 2002-01-21 06:28  mrjoltcola
2754         * examples/assembly/io1.pasm, include/parrot/io.h, io/io.c,
2755         io/io_stdio.c, io/io_unix.c, io/io_win32.c: Added 32/64 bit seek
2756         ops. Various other IO twiddlings.
2758 2002-01-21 03:25  grunblatt
2760         * Makefile.in: Use $jitcpuarch instead of $cpuarch.  Thanks to
2761         Melvin Smith for the catch up.
2763 2002-01-20 23:13  sfink
2765         * stacks.c: Fixed logic errors, need tests
2767 2002-01-20 22:17  brentdax
2769         * rx.c, rx.ops, include/parrot/rx.h, t/op/rx.t: Make /m work and
2770         prepare for /i to work.
2772 2002-01-20 20:52  grunblatt
2774         * Configure.pl, MANIFEST, Makefile.in, interpreter.c, jit.c,
2775         jit2h.pl, Parrot/Jit/alpha-bsd.pm, Parrot/Jit/alpha-linux.pm,
2776         Parrot/Jit/alphaGeneric.pm, Parrot/Jit/i386-bsd.pm,
2777         Parrot/Jit/i386-linux.pm, lib/Parrot/Jit/alpha-bsd.pm,
2778         lib/Parrot/Jit/alpha-linux.pm, lib/Parrot/Jit/alphaGeneric.pm,
2779         lib/Parrot/Jit/i386-bsd.pm, lib/Parrot/Jit/i386-linux.pm,
2780         Parrot/Jit/i386Generic.pm, lib/Parrot/Jit/i386Generic.pm,
2781         include/parrot/jit.h, jit/alpha/core.jit, jit/alpha/lib.jit,
2782         jit/alpha/string.jit:
2783         - Added support for ALPHA, by now linux and bsd.
2785         - Reduced jit2h.pl execution time by precompiling the call to the
2786         unimplemented op.
2788         - Reduced the duplicated code in Parrot/Jit/*.pm by adding
2789         Parrot/Jit/${cpuarch}Generic.pm
2791         - Changed the way to detect quads to what is written in "man
2792         perlfunc".
2794 2002-01-20 17:23  brentdax
2796         * rx.ops: There's no such thing as rx_allocateinfo.
2798 2002-01-19 08:26  brentdax
2800         * pbc2c.pl: Stop this stupid "hard-code the new oplib" stuff.
2802 2002-01-19 07:12  mrjoltcola
2804         * MANIFEST, core.ops, io.ops, pbc2c.pl: Separate pure ParrotIO ops
2805         into io.ops, leave the STDIO wrappers        in core.ops until they
2806         disappear.  Added debug op for switching on VM debug flag
2808 2002-01-19 01:55  mrjoltcola
2810         * include/parrot/io.h, io/TODO, io/io.c, io/io_stdio.c,
2811         io/io_unix.c, io/io_win32.c: Added a few more Win32 layer calls
2813 2002-01-19 00:55  brentdax
2815         * Makefile.in, rx.c, rx.ops, rxstacks.c, include/parrot/rx.h,
2816         include/parrot/rxstacks.h: Add regex-specific stacks for
2817         efficiency.
2819 2002-01-18 23:58  dan
2821         * Configure.pl: I think the optimal fix here is simply to remove
2822         -ansi -pedantic.  -ansi may well have some uses, but even the gcc
2823         man pages say "There is no reason to use this option [-pedantic];
2824         it exists only to satisfy pedants."
2826         Courtesy of Andy Dougherty <doughera@lafayette.edu>
2828 2002-01-18 23:23  dan
2830         * MANIFEST, docs/parrot.pod, docs/running.pod: This patch add
2831         docs/running.pod, which lists the various executables Parrot
2832         currently includes, examples of running them, and mentions of where
2833         they fail to work. It's more of a cry for help than a useful
2834         reference. :-) I've been having trouble recently when making
2835         changes in figuring out whether I broke anything, because any
2836         non-default way of running the system seems to be already broken. I
2837         can't tell what brokenness is expected and what isn't.
2839         Courtesy of  Steve Fink <steve@fink.com>
2841 2002-01-15 22:13  brentdax
2843         * include/parrot/rx.h, rx.c, rx.ops: Remove the last vestiges of
2844         substring use and enhance performance.
2846 2002-01-15 21:03  ajgough
2848         * string.c: Fix problem with string_transcode, &dest not being
2849         updated if src was already in desired encoding.
2851 2002-01-15 16:54  brentdax
2853         * rx.c, rx.ops, include/parrot/rx.h: Hunt down and destroy
2854         warnings.  Leaves only one warning, at rx.ops line 409, that I
2855         can't manage to get rid of.
2857 2002-01-15 16:50  dan
2859         * pbc2c.pl: Pointer arithmetic not quite right in the generated
2860         code.  Also patches pbc2c.pl to work with rx.ops.
2862         Courtesy of Jason Gloudon <perl@gloudon.com>
2864 2002-01-15 16:15  dan
2866         * classes/Makefile.in: All the C files in classes/ weren't being
2867         compiled with an of the gcc warnings flags. With this patch they
2868         are, and there are an awful lot of warnings, more than I could hope
2869         to understand and clear up (within any sensible time period before
2870         submitting a rash of patches, by which time everyone else would
2871         have moved the code on)
2873         Courtesy of Nicholas Clark <nick@unfortu.net>
2875 2002-01-15 16:10  dan
2877         * core.ops, ops2c.pl, Parrot/Op.pm, Parrot/OpTrans.pm,
2878         Parrot/OpsFile.pm, lib/Parrot/Op.pm, lib/Parrot/OpTrans.pm,
2879         lib/Parrot/OpsFile.pm, Parrot/OpTrans/C.pm,
2880         Parrot/OpTrans/CGoto.pm, Parrot/OpTrans/CPrederef.pm,
2881         lib/Parrot/OpTrans/C.pm, lib/Parrot/OpTrans/CGoto.pm,
2882         lib/Parrot/OpTrans/CPrederef.pm, chartypes/unicode.c,
2883         chartypes/usascii.c: This patch adds a few more macros for .ops
2884         files to use. In addition to the existing
2886          goto OFFSET(...)
2887          goto ADDRESS(...)
2888          goto POP()
2889          goto NEXT()
2891         it adds
2893          expr OFFSET(...)
2894          expr ADDRESS(...)
2895          expr POP()
2896          expr NEXT()
2898         This is intended mainly for use in helper functions in .ops files,
2899         but also for ops that need to eg push the address of the next
2900         opcode onto a stack. The only place this currently happens (outside
2901         of my private code) is in the bsr opcode, which previously
2902         hardcoded the computation.
2904         This patch also makes ops2c.pl move the CUR_OPCODE #define a bit
2905         higher in the generated file so that it can be used by static
2906         functions in the preamble.
2908         Finally, I ran into a parentheses matching problem -- should goto
2909         OFFSET(...) rewrite    \bgoto\s+OFFSET\((.*)\) or
2910         \bgoto\s+OFFSET\((.*?)\)
2912         It was done inconsistently for the different calculations, and of
2913         course neither are correct because you really want matching
2914         parentheses. But that seems like too much bother. (Currently,
2915         there's only one place that uses anything other than $n in the
2916         parentheses, and that's the enternative() op.) So I made them all
2917         .*? but emulated recent POD by also allowing (( ... )) (that's two
2918         parenthesis with a space padding the body.)
2920         The generated core_ops.c and core_ops_prederef.c files after this
2921         patch are identical except for the CUR_OPCODE and REL_PC macros
2922         getting moved a little higher, and the bsr in the regular path (not
2923         prederef) uses 'CUR_OPCODE' instead of the hardcoded 'cur_opcode'.
2925         In summary, this is a big wad of meaningless changes for the
2926         current code. But it will make adding some opcodes easier in the
2927         future, and cleans up a small nit in the current bsr.
2929         Courtesy of Steve Fink <steve@fink.com>
2931 2002-01-15 08:48  brentdax
2933         * include/parrot/rx.h: Bitmaps can now include chars >255 (well,
2934         sort of).
2936 2002-01-15 08:45  brentdax
2938         * rx.c, rx.ops: Bitmaps can now include chars >255 (well, sort of).
2940 2002-01-15 05:00  brentdax
2942         * rx.ops: Speed up rx_literal--roughly doubles benchmark
2943         performance.
2945 2002-01-14 20:18  dan
2947         * vtable.tbl, vtable_h.pl: Clean up a zillion warnings
2949         Courtesy of Nicholas Clark <nick@unfortu.net>
2951 2002-01-14 20:03  dan
2953         * Configure.pl, MANIFEST, Makefile.in, core.ops, exceptions.c,
2954         global_setup.c, interpreter.c, key.c, ops2c.pl, register.c,
2955         runops_cores.c, rx.ops, stacks.c, string.c, test_main.c, trace.c,
2956         chartypes/unicode.c, chartypes/usascii.c, classes/default.pmc,
2957         classes/parrotpointer.pmc, classes/perlarray.pmc,
2958         classes/perlhash.pmc, classes/perlint.pmc, classes/perlnum.pmc,
2959         classes/perlstring.pmc, classes/perlundef.pmc,
2960         encodings/singlebyte.c, encodings/utf16.c, encodings/utf32.c,
2961         encodings/utf8.c, include/parrot/exceptions.h, include/parrot/io.h,
2962         include/parrot/parrot.h, include/parrot/rx.h, io/io_stdio.c,
2963         io/io_win32.c, platforms/win32.c, platforms/win32.h, t/op/pmc.t,
2964         t/op/pmc_perlhash.t, t/op/rx.t, t/pmc/perlhash.t, t/pmc/pmc.t: This
2965         patch cleans up most of the MSVC-warnings when using warning level
2966         4 (the highest, one above the default level 3). It turns off two
2967         level-4 warnings for 'unreferenced formal parameter' and 'named
2968         type definition in parentheses', the latter of which was turning up
2969         warnings in MS VC headers.  Level 4 warnings also helped me find a
2970         couple of other lurking bugs in the parrot code.
2972         Replaces the various fprintf/exit combos with calls to
2973         internal_exception, which uses var_args to emulate printf. Various
2974         exception types were added as well. These are probably temporary
2975         until a real exception system arrives.
2977         Fixed some places in the IO code where wrong functions were being
2978         called, or put into the vtable.
2980         Courtesy of "Michel Lambert" <mlambert@legendent.com>
2982 2002-01-14 19:00  dan
2984         * MANIFEST: D'oh! Forgot a file.
2986         Courtesy of Andy Dougherty <doughera@lafayette.edu>
2988 2002-01-14 18:44  brentdax
2990         * rx.c, rx.ops, include/parrot/rx.h: Use bitmaps where it makes
2991         sense (and a few other enhancements to regexes).
2993 2002-01-14 07:07  brentdax
2995         * interpreter.c, runops_cores.c, test_main.c,
2996         include/parrot/interpreter.h: Make profiling a little more useful.
2998 2002-01-13 19:44  dan
3000         * Configure.pl: Turn off unsed things warnings for now
3002 2002-01-13 19:39  dan
3004         * key.c, classes/perlarray.pmc: key.c:   intialize KEY.keys
3006         classes/perlarray.c:  * get_string: is casting
3007         SELF->cache.struct_val to a STRING*,    while all other methods are
3008         using it as a KEY*; don't know    what a perlarray stringifies to,
3009         so replacing with NULL  * get_bool: the default behaviour does not
3010         look right to me
3012         Courtesy of "Mattia Barbon" <mbarbon@dsi.unive.it>
3014 2002-01-13 19:37  dan
3016         * Makefile.in, classes/Makefile.in: Makefile.in:   (Re)add ld_debug
3017         flags to LDFLAGS, so that Configure.pl --debugging   works with
3018         MSVC
3020         classes/Makefile.in   make easier to add pmb2c.pl flags to all
3021         pmc2c calls
3023         Courtesy of "Mattia Barbon" <mbarbon@dsi.unive.it>
3025 2002-01-13 19:36  dan
3027         * io/io_win32.c:   according to my MSVC docs, you should use
3028         _tcslen only after
3029           #including tchar.h
3031         Courtesy of  "Mattia Barbon" <mbarbon@dsi.unive.it>
3033 2002-01-13 19:35  dan
3035         * docs/intro.pod: Doc tweak.
3037         Courtesy of Simon Glover <scog@roe.ac.uk>
3039 2002-01-13 19:34  dan
3041         * t/: op/pmc_perlstring.t, pmc/perlstring.t:  Enclosed test checks
3042         that
3044           if Px, ...
3046          works with PerlString PMCs; these should be false if they are "",
3047         0, or
3048          are undefined, and true in every other case.
3050         Courtesy of Simon Glover <scog@roe.ac.uk>
3052 2002-01-13 19:23  dan
3054         * Configure.pl, config_h.in, core.ops, classes/perlnum.pmc: Change
3055         NUMVAL_FMT to FLOATVAL_FMT.
3057         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3059 2002-01-13 17:45  jgoff
3061         * Makefile.in, global_setup.c, classes/Makefile.in,
3062         classes/intqueue.pmc, include/parrot/pmc.h, t/op/pmc.t,
3063         t/pmc/pmc.t: IntQueue is for an upcoming article on perl.com on
3064         designing your own classes.
3066 2002-01-13 08:47  simon
3068         * interpreter.c, Parrot/OpTrans/CPrederef.pm,
3069         lib/Parrot/OpTrans/CPrederef.pm:
3070         Fix bsr in prederef mode.
3072         Courtesy of: Jason Gloudon <perl@gloudon.com>
3074 2002-01-12 15:33  dan
3076         * interpreter.c, key.c, packfile.c, register.c, resources.c,
3077         string.c, encodings/singlebyte.c, encodings/utf32.c,
3078         include/parrot/parrot.h, io/io.c, io/io_stdio.c, io/io_unix.c:
3079         Silence most of the unused variable warnings.
3081         Courtesy of Nicholas Clark <nick@unfortu.net>
3083 2002-01-12 15:18  dan
3085         * rx.ops: This patch fixes a warning and also changes an 'int' to
3086         an 'INTVAL'.  All tests should pass on Solaris.
3088         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3090 2002-01-12 15:13  dan
3092         * interpreter.c, string.c, test_main.c, classes/parrotpointer.pmc,
3093         examples/assembly/life.pasm, include/parrot/interpreter.h,
3094         include/parrot/io.h, io/io.c, io/io_stdio.c, io/io_unix.c,
3095         io/io_win32.c: More IO work. (Plus some misc twiddles)
3097         Courtesy of Melvin Smith <mrjoltcola@mindspring.com>
3099 2002-01-12 01:14  dan
3101         * include/parrot/string.h: fix a missing name
3103 2002-01-12 00:39  grunblatt
3105         * include/parrot/string.h: Few typos.
3107 2002-01-12 00:16  grunblatt
3109         * jit.c, jit2h.pl, jit/i386/core.jit: Added support for opcodes
3110         that change the program control flow.
3112 2002-01-11 23:53  brentdax
3114         * classes/parrotpointer.pmc: Tell the GC to keep its hands out of a
3115         ParrotPointer's guts.
3117 2002-01-11 23:03  dan
3119         * include/parrot/string.h: flags for the buffers, for GC
3121 2002-01-11 22:31  dan
3123         * include/parrot/pmc.h: PMC flag docs. Those'd be good...
3125 2002-01-11 22:21  dan
3127         * include/parrot/pmc.h: Started with PMC flags
3129 2002-01-11 19:33  dan
3131         * config_h.in, memory.c, resources.c, string.c,
3132         include/parrot/resources.h: Beginnings of a memory allocation/gc
3133         system. Without the GC part.
3135 2002-01-11 18:05  dan
3137         * core.ops: Make sure constant pushes are right on mixed 32/64 bit
3138         systems
3140         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3142 2002-01-11 17:50  dan
3144         * core.ops, pbc2c.pl, Parrot/OpTrans/CGoto.pm,
3145         lib/Parrot/OpTrans/CGoto.pm, include/parrot/interpreter.h: Here is
3146         a patch that makes pbc2c generated code work with the bsr opcode.
3147         It creates a new opcode 'enternative', and uses this to support a
3148         mixed model of interpretation and execution of compiled C code.
3150         Courtesy of Jason Gloudon <perl@gloudon.com>
3152 2002-01-11 17:48  dan
3154         * Makefile.in: Add life as a potential .exe target
3156 2002-01-11 17:30  dan
3158         * include/parrot/resources.h: Start of arena stuff for GC
3160 2002-01-11 05:34  brentdax
3162         * rx.ops: Docs modifications.
3164 2002-01-11 04:19  brentdax
3166         * rx.ops, include/parrot/rx.h: Remove unnecessary evilness from
3167         regular expressions.
3169 2002-01-11 03:44  grunblatt
3171         * jit/i386/core.jit: off by one.
3173 2002-01-11 02:25  dan
3175         * Makefile.in, examples/assembly/life.pasm: Tweak to life benchmark
3177         Courtesy of Steve Fink <steve@fink.com>
3179 2002-01-11 00:32  brentdax
3181         * MANIFEST: Forgot to put parrotpointer.pmc in the MANIFEST.
3183 2002-01-10 23:22  ajgough
3185         * string.c, docs/strings.pod: Removed all the nul termination code,
3186         as this is in general a bad idea.  Note added to docs/strings.pod
3187         to warn people away from assuming termination.
3189 2002-01-10 23:14  dan
3191         * core.ops, interpreter.c, jit.c, rx.c, rx.ops, stacks.c,
3192         testparrotsizes_c.in, include/parrot/interpreter.h,
3193         include/parrot/rx.h, include/parrot/stacks.h: Much nicer stack
3194         implementation
3196         Courtesy of Steve Fink <steve@fink.com>
3198 2002-01-10 22:48  dan
3200         * core.ops: Fix 'basic' test 1 for sizeof(opcode_t) !=
3201         sizeof(INTVAL)
3203         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3205 2002-01-10 22:46  dan
3207         * key.c, classes/perlhash.pmc, t/op/pmc_perlhash.t,
3208         t/pmc/perlhash.t:  Well, actually two bugs.
3210          The first is an off-by-one error in key.c than can cause parrot
3211          to segfault if hash % NUM_BUCKETS happens to be zero.
3213          The other is a bug in the PerlHash init() code that causes new
3214         PerlHash
3215          PMCs to start with the wrong size.
3217          Both fixed below; also tests to prevent them recurring.
3219         Courtesy of Simon Glover <scog@roe.ac.uk>
3221 2002-01-10 22:30  dan
3223         * classes/default.pmc, classes/perlarray.pmc, t/op/pmc_perlarray.t,
3224         t/pmc/perlarray.t:  The enclosed patch allows one to use the if op
3225         with a PerlArray,
3227         Courtesy of Simon Glover <scog@roe.ac.uk>
3229 2002-01-10 21:31  dan
3231         * examples/assembly/life.pasm: Tweaked to be a benchmarkable thing
3233 2002-01-10 20:30  grunblatt
3235         * jit.c, jit2h.pl, Parrot/Jit/i386-bsd.pm,
3236         Parrot/Jit/i386-linux.pm, lib/Parrot/Jit/i386-bsd.pm,
3237         lib/Parrot/Jit/i386-linux.pm, jit/i386/core.jit, jit/i386/lib.jit:
3238         All the op codes that doesn't change the program control flow now
3239         work in the JIT by calling the code generated by the compiler when
3240         the op is not in core.jit TODO:     * Make all the ops that change
3241         the program control flow (and are not on core.jit) work.      *
3242         Remove the dispatch payload.
3244 2002-01-10 17:13  dan
3246         * classes/parrotpointer.pmc: This patch fixes parrotpointer.pmc,
3247         which tries to return 0 from a void function.
3249         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3251 2002-01-10 17:12  dan
3253         * t/op/macro.t: Skip tests, don't comment them out.
3255         Courtesy of Simon Glover <scog@roe.ac.uk>
3257 2002-01-10 17:10  dan
3259         * rx.c: This fixes a couple of nits in rx.c:
3261            1. There's no newline at the end, which makes gcc unhappy.
3262            2. We should use NULL, not 0 or "", for creating null pointers.
3264         Courtesy of Simon Glover <scog@roe.ac.uk>
3266 2002-01-10 17:09  dan
3268         * MANIFEST:  Adds rx.t, removes duplicated rx.c and puts everything
3269         back in
3270          alphabetical order.
3272         Courtesy of Simon Glover <scog@roe.ac.uk>
3274 2002-01-10 16:54  ajgough
3276         * resources.c: Made free_string check that there was a string to
3277         free.  In reponse to a bug spotted by Joshua Nye.
3279 2002-01-09 22:44  dan
3281         * global_setup.c: Forgot the setup
3283 2002-01-09 22:35  dan
3285         * rx.ops: Forgot this one
3287 2002-01-09 22:35  dan
3289         * MANIFEST, Makefile.in, rx.c, string.c, include/parrot/pmc.h,
3290         include/parrot/rx.h, t/op/rx.t: Preliminary regex implementation.
3291         Tests don't work, though.
3293         Courtesy of "Brent Dax" <brentdax@cpan.org>
3295 2002-01-09 21:48  dan
3297         * t/: op/pmc_perlarray.t, pmc/perlarray.t: Whoops, forgot that
3299 2002-01-09 21:22  dan
3301         * classes/Makefile.in, classes/parrotpointer.pmc, Makefile.in:
3302         Generic pointer holder class
3304         Courtesy of "Brent Dax" <brentdax@cpan.org>
3306 2002-01-09 21:19  dan
3308         * MANIFEST, classes/perlarray.pmc, t/op/pmc.t, t/pmc/pmc.t: Array
3309         patches.
3311 2002-01-09 19:54  dan
3313         * io/io_unix.c: Whoops. Forgot one
3315 2002-01-09 19:43  dan
3317         * key.c, classes/perlhash.pmc, t/op/pmc_perlhash.t,
3318         t/pmc/perlhash.t: Fix hash crash bugs
3320         Courtesy of Simon Glover <scog@roe.ac.uk>
3322 2002-01-09 19:13  dan
3324         * memory.c: Signedness whoops.
3326         Courtesy of Simon Glover <scog@roe.ac.uk>
3328 2002-01-09 18:23  dan
3330         * MANIFEST, Makefile.in, include/parrot/io.h, io/io.c, io/io_os.c,
3331         io/io_stdio.c, io/io_win32.c: Changes:
3333         -Minor layer cleanups -Win32 layer added (mostly stubs for now) but
3334         will be using the   Win32 API and company rather than the unix-ish
3335         fake ones.  -stdin/stdout/stderr Win32 specific code added. Rather
3336         than use   0,1,2, Microsoft says use GetStdHandle(), etc. so that
3337         stuff is   there. Soon we should be able to start using these
3338         rather than   fprintf(stderr, ...) and remove stdio linkage.
3340         Courtesy of <mrjoltcola@mindspring.com>
3342 2002-01-09 17:26  dan
3344         * test_main.c: Fixes bad code gen on x86.
3346         Courtesy of Josh Wilmes <josh@hitchhiker.org>
3348 2002-01-09 17:24  dan
3350         * Configure.pl, config_h.in, core.ops, key.c, classes/perlint.pmc,
3351         classes/perlnum.pmc: This patch adds macros to the config.h file
3352         for INTVAL and NUMVAL printf formats.
3354         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3356 2002-01-08 22:55  ajgough
3358         * docs/vtables.pod: Clarify what get_string should do.
3360 2002-01-08 20:05  dan
3362         * key.c: Keep comments in sync.
3364         Courtesy of Simon Glover <scog@roe.ac.uk>
3366 2002-01-08 19:50  dan
3368         * memory.c, include/parrot/memory.h: Need a realloc
3370 2002-01-08 17:24  gregor
3372         * .cvsignore, Configure.pl, Makefile.in:
3373         Added 'reconfig' make target and corresponding --reconfig option to
3374         Configure.pl, so its very easy to re-run Configure.pl with the last
3375         (command-line) options you passed it.
3377 2002-01-08 16:33  dan
3379         * core.ops, make_vtable_ops.pl, Parrot/OpsFile.pm,
3380         lib/Parrot/OpsFile.pm: Add in, out, and inout parameters to teh ops
3381         in core.ops. Potential help for optimizers and JITters.
3383         Courtesy of gregor@linux1.kennedytech.com
3385 2002-01-08 16:32  dan
3387         * key.c: Grab key length from the right spot
3389         Courtesy of "Peter Gibbs" <peter@emkel.co.za>
3391 2002-01-08 13:27  ajgough
3393         * test_main.c: Fix slight thinko in realloc usage for reading from
3394         stdin.
3396 2002-01-08 11:34  ajgough
3398         * test_main.c: Allow test_parrot to read bytecode stream from
3399         stdin, adds -f command line option, with "-f -" doing the stdin
3400         stuff.
3402 2002-01-08 06:34  jgoff
3404         * key.c, include/parrot/key.h: key.c - Added simple implementation
3405         of buckets.  include/parrot/key.h - Added enum_key_bucket type
3407 2002-01-08 03:21  jgoff
3409         * include/parrot/key.h: Added an undef type to the key structure,
3410         so we can delete keys without confusion.
3412 2002-01-07 22:09  dan
3414         * key.c, packfile.c, string.c, include/parrot/key.h,
3415         include/parrot/packfile.h, include/parrot/string.h: Fix whines
3416         about index being redefined
3418         Courtesy of Nick Clark
3420 2002-01-07 21:15  dan
3422         * ops2pm.pl: Don't allow the same ops lib to be included twice.
3424         Courtesy of Steve Fink <steve@fink.com>
3426 2002-01-07 20:48  dan
3428         * Parrot/Test.pm, lib/Parrot/Test.pm: Report useful info for test
3429         failures
3431         Courtesy of "Brent Dax" <brentdax@cpan.org>
3433 2002-01-07 20:43  dan
3435         * docs/intro.pod: Missing a comma
3437         Courtesy of "coral" <coral@eekeek.org>
3439 2002-01-07 20:41  dan
3441         * global_setup.c: Quiet a warning
3443         Courtesy of Simon Glover <scog@roe.ac.uk>
3445 2002-01-07 18:58  gregor
3447         * t/op/.cvsignore:
3448         Ignore intermediate test files.
3450 2002-01-07 17:01  gregor
3452         * ops2c.pl:
3453         Print a warning if an .ops file is mentioned more than once on the
3454         command line.
3456 2002-01-07 16:12  ajgough
3458         * t/: op/pmc_perlhash.t, pmc/perlhash.t: A couple more hash tests,
3459         these shouldn't fail.
3461 2002-01-07 15:15  simon
3463         * t/: op/pmc_perlhash.t, pmc/perlhash.t:
3464         Stop segfaults.
3466 2002-01-07 15:11  simon
3468         * key.c:
3469         Fix zero-termination bug in hash function.
3471 2002-01-07 13:37  ajgough
3473         * MANIFEST, t/op/pmc_perlhash.t, t/pmc/perlhash.t: Added
3474         pmc_perlhash.t, one test currently fails, one passes, yin-yang fun.
3476 2002-01-07 11:53  brentdax
3478         * Configure.pl: Fixes the + thing in prompts, plus adds a synonym
3479         (:add{foo}) and a new deleting thing (:rem{foo})
3481 2002-01-07 11:43  simon
3483         * Configure.pl:
3484         Gobble the + before concatenating.
3486 2002-01-07 03:53  dan
3488         * Makefile.in: Dependency fix for new ops setup.
3490 2002-01-07 03:33  jgoff
3492         * classes/perlarray.pmc: Add negative indices, and fix a small
3493         allocation problem.
3495 2002-01-06 23:54  ajgough
3497         * hints/os2.pl: Makes the hints file take account of ldflags and
3498         ccflags being split.  This hints file is still very specific to
3499         builds with gnu tools, but a proper solution can wait.   Thanks to
3500         Nick Burch.
3502 2002-01-06 22:12  dan
3504         * Makefile.in, ops2c.pl, Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm:
3505             -changes Parrot::OpLib::core's dependencies to reflect the new
3506         selectable ops files    -allows some of the special forms of 'goto'
3507         inside the PREAMBLE of an opcode file
3509         Courtesy of "Brent Dax" <brentdax@cpan.org>
3511 2002-01-06 19:59  simon
3513         * Makefile.in:
3514         *cough*
3516 2002-01-06 18:19  dan
3518         * classes/perlhash.pmc: Fix some type issues.
3520         Courtesy of Josh Wilmes <josh@hitchhiker.org>
3522 2002-01-06 18:03  dan
3524         * Configure.pl, Makefile.in: It adds a prompt to Configure asking
3525         for a list of opcode files to use.  The default is everything
3526         available except for obscure.ops.
3528         In addition, it makes it so that if your answer to a question
3529         starts with '+', it will concatenate it to the default.  For
3530         example:
3532         What C compiler do you want to use? [cl] +HAHAHA!!!
3534         will result in $PConfig{cc} eq "cl HAHAHA!!!".  While that example
3535         is not terribly useful, it is quite useful with things like
3536         command-line flags and the like.
3538         Finally, it contains a couple tweaks so that my syntax-highlighting
3539         editor recognizes some heredocs correctly.  :^)
3541         Courtesy of "Brent Dax" <brentdax@cpan.org>
3543 2002-01-06 17:59  dan
3545         * KNOWN_ISSUES, MANIFEST, README: Doc Patches
3547         Courtesy of "Bryan C. Warnock" <bwarnock@raba.com>
3549 2002-01-06 17:58  dan
3551         * MANIFEST:  We're missing a couple of files from the MANIFEST.
3553         Courtesy of Simon Glover <scog@roe.ac.uk>
3555 2002-01-06 17:57  dan
3557         * ops2c.pl, Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm:   1.
3558         Compiler directives, etc. in files other than core.ops will now
3559         work.   2.  Compiler warnings will now display the file and line
3560         number of the  opcode file.
3562         Courtesy of "Brent Dax" <brentdax@cpan.org>
3564 2002-01-06 17:52  dan
3566         * languages/jako/jakoc: Fix breakage caused by iton/ntoi going away
3568         Courtesy of Simon Glover <scog@roe.ac.uk>
3570 2002-01-06 17:36  dan
3572         * docs/intro.pod: Lots of updates
3574         Courtesy of Simon Glover <scog@roe.ac.uk>
3576 2002-01-06 02:34  gregor
3578         * interpreter.c:
3579         Add some internal documentation on the theory of operation of the
3580         prederef code.
3582 2002-01-06 02:17  gregor
3584         * interpreter.c:
3585         Removed unnecessary include.
3587 2002-01-05 12:37  simon
3589         * classes/.cvsignore:
3590         Ignore generated .h files.
3592         Courtesy of: Josh Wilmes <josh@hitchhiker.org>
3594 2002-01-05 12:37  simon
3596         * Configure.pl:
3597         Make lcc happier by adding a dummy structure.
3599         Courtesy of: Josh Wilmes <josh@hitchhiker.org>
3601 2002-01-05 12:35  simon
3603         * global_setup.c, classes/perlundef.pmc, t/op/pmc.t, t/pmc/pmc.t:
3604         Make perlundef work. (And coincidentally stop segfaults in the
3605         tests :)
3607         Courtesy of: Jason Gloudon <perl@gloudon.com>
3609 2002-01-05 04:59  dan
3611         * t/: op/pmc.t, pmc/pmc.t: Undef tests added.
3613 2002-01-05 04:55  jgoff
3615         * classes/perlhash.pmc: Added perlhash class definition
3617 2002-01-05 04:48  dan
3619         * core.ops: Fix on 64 bit platforms with 32-bit opcode_t
3621         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3623 2002-01-05 03:57  jgoff
3625         * MANIFEST, Makefile.in, core.ops, global_setup.c, key.c,
3626         vtable.tbl, classes/Makefile.in, classes/default.pmc,
3627         include/parrot/key.h, include/parrot/pmc.h, t/op/pmc.t,
3628         t/pmc/pmc.t: Initial hash commit.
3630         core.ops - Adding set({i,n,s},p,s) and set(p,{i,n,s},s) operations.
3631          key.h  - Adding NUM_BUCKETS classes/default.pmc - Adding
3632         set_{integer,number,string}_index_s
3634         This does not yet do collision resolution, but will soon.
3636 2002-01-05 02:54  dan
3638         * interpreter.c: More unsigned fixes
3640         Courtesy of "Bryan C. Warnock" <bwarnock@raba.com>
3642 2002-01-04 22:13  dan
3644         * Configure.pl, hints/mswin32.pl: Makes config's building of the
3645         test programs happier.
3647         Courtesy of "Jason Diamond" <jason@injektilo.org>
3649 2002-01-04 19:00  dan
3651         * Configure.pl, Makefile.in, hints/darwin.pl: Add link flags as
3652         separate things
3654 2002-01-04 18:27  dan
3656         * Configure.pl, Makefile.in, classes/Makefile.in, hints/mswin32.pl:
3657         Fixes to get things configuring and building on Win32 Native.
3659         Courtesy of "Jason Diamond" <jason@injektilo.org>
3661 2002-01-04 17:39  dan
3663         * hints/vms.pl: debug cleanup
3665 2002-01-04 16:53  dan
3667         * docs/parrot.pod:  The enclosed patch brings the list of
3668         documentation in parrot.pod
3669          up to date.
3671         Courtesy of Simon Glover <scog@roe.ac.uk>
3673 2002-01-04 16:47  dan
3675         * test_main.c, Parrot/Jit/i386-linux.pm,
3676         lib/Parrot/Jit/i386-linux.pm: In an attempt to just keep knocking
3677         off warnings..
3679         Courtesy of Kevin Falcone <kevin@jibsheet.com>
3681 2002-01-04 16:44  dan
3683         * Configure.pl, Makefile.in: Fixed linking to use linker.
3685         Courtesy of Josh Wilmes <josh@hitchhiker.org>
3687 2002-01-04 16:39  dan
3689         * io/io_stdio.c: Added CVS tag info
3691 2002-01-04 16:35  dan
3693         * hints/cygwin.pl: Time for this. We need a sane linker, and ld2
3694         isn't it
3696 2002-01-04 16:26  dan
3698         * languages/miniperl/Miniperl/Tokenizer.pm: Quiet a warning in the
3699         Tokenizer test
3701         Courtesy of Jonathan Stowe <gellyfish@gellyfish.com>
3703 2002-01-04 16:17  dan
3705         * chartypes/unicode.c: Silence some warnings.
3707         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3709 2002-01-04 16:09  dan
3711         * classes/: genclass.pl, perlarray.pmc, perlint.pmc, perlnum.pmc,
3712         perlstring.pmc, perlundef.pmc:  - genclass.pl attempts to put $Id$
3713         into generated files
3714            but the $Id$ string gets mangled when it's committed.
3715            This patch fixes the existing .pmc files and fixes genclass.pl.
3717          - Makes capitalization in .pmc header match actual filenames
3719          - The command for calling genclass.pl in vtables.pod is incorrect,
3720            since it assumes you're running in classes/ but genclass.pl
3721         assumes
3722            it's being run from the main directory. I changed genclass.pl to
3723         not
3724            care.
3726         Courtesy of Steve Fink <steve@fink.com>
3728 2002-01-04 03:57  dan
3730         * MANIFEST, io/TODO, io/io_stdio.c: No wonder things worked for
3731         me--I *had* the files:wq!
3733 2002-01-04 03:40  dan
3735         * MANIFEST: Whoops--remove files not really there
3737 2002-01-04 03:37  dan
3739         * interpreter.c, stacks.c, include/parrot/stacks.h: The patch below
3740         my sig adds a new_stack() function to take care of the allocation
3741         and setup of "generic" stacks.
3743         Courtesy of "Brent Dax" <brentdax@cpan.org>
3745 2002-01-04 02:36  dan
3747         * core.ops:  The entry in core.ops for puts(s|sc) is missing a =cut
3748         and so
3749          writes a load of junk in core_ops.pod. Applied patch fixes.
3751         Courtesy of Simon Glover <scog@roe.ac.uk>
3753 2002-01-04 02:35  dan
3755         * classes/: perlint.pmc, perlnum.pmc, perlstring.pmc: The PerlInt
3756         logical-or is using get_integer instead of get_bool for logical
3757         operations. This patch corrects that.
3759         Perlnum and perlstring have working get_bool's, so the default
3760         logical_or and logical_and should be sufficient. The empty methods
3761         are pointed to the default logical_or.
3763         Courtesy of Jason Gloudon <perl@gloudon.com>
3765 2002-01-04 02:31  dan
3767         * Makefile.in: docs/Makefile should be removed by realclean, but
3768         isn't
3770         Courtesy of Kevin Falcone <kevin@jibsheet.com>
3772 2002-01-04 02:29  dan
3774         * classes/: Makefile.in, pmc2c.pl: PMC inheritance! Yay!
3776         Courtesy of Steve Fink <steve@fink.com>
3778 2002-01-04 00:51  dan
3780         * docs/vtables.pod: More docs
3782         Courtesy of Steve Fink <steve@fink.com>
3784 2002-01-04 00:47  dan
3786         * Configure.pl: Updated 64-bit patch
3788         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3790 2002-01-04 00:43  dan
3792         * Configure.pl: 64-bit Fix.
3794         Courtesy of "Bryan C. Warnock" <bwarnock@raba.com>
3796 2002-01-03 22:37  dan
3798         * MANIFEST, Makefile.in, interpreter.c, include/parrot/io.h,
3799         io/io.c, io/io_os.c: Code cleanup, started STDIO layer, started
3800         some buffering work.       Additional work on other layers.
3802         Courtesy of Melvin Smith <mrjoltcola@mindspring.com>
3804 2002-01-03 19:41  gregor
3806         * disassemble.pl, obscure.ops, packfile.c, pbc2c.pl:
3807         Updated copyright messages on top-level files.
3809 2002-01-03 04:23  robert
3811         * make.pl: Add author information.  Bonsai test.
3813 2002-01-03 04:02  dan
3815         * io/io_os.c: Twig Bonsai
3817 2002-01-03 03:45  dan
3819         * io/: io_os.c, io_os.c: Twig Bonsai
3821 2002-01-03 03:41  dan
3823         * io/io_os.c: Twig Bonsai
3825 2002-01-02 21:42  gregor
3827         * packfile.c, include/parrot/packfile.h:
3828         Get rid of warnings in packfile.[hc]
3830 2002-01-02 20:39  gregor
3832         * manicheck.pl:
3833         Bracketed translated patterns with ^ and $.
3835 2002-01-02 20:11  dan
3837         * io/io_os.c: silence a warning
3839 2002-01-02 19:52  grunblatt
3841         * jit.c, jit2h.pl, include/parrot/jit.h: Moved the definition of
3842         op_assembly to jit_struct.h, so that we get the real number of ops.
3843          Removed some warnings.
3845 2002-01-02 19:31  tom
3847         * string.c: Fix string transcoding so that it actually works.
3849         Patch from Peter Gibbs <peter@emkel.co.za>
3851 2002-01-02 19:20  gregor
3853         * manicheck.pl:
3854         A program to check the MANIFEST file, accounting for .cvsignore
3855         files.
3857 2002-01-02 19:19  dan
3859         * t/harness: twig bonsai
3861 2002-01-02 19:13  dan
3863         * t/harness: twig bonsai
3865 2002-01-02 18:54  dan
3867         * t/harness: Tweak to test Bonsai
3869 2002-01-02 16:27  dan
3871         * Configure.pl: Allow 64-bit build of parrot on systems with a
3872         mixed 32/64 bit perl
3874         Courtesy of David M. Lloyd <dmlloyd@tds.net>
3876 2002-01-02 15:33  simon
3878         * MANIFEST, docs/Makefile:
3879         Fixed up MANIFEST. (And I removed the Makefile in docs/)
3881         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
3883 2002-01-02 13:51  simon
3885         * Configure.pl:
3886         Die on broken manifest.
3888 2002-01-02 13:48  simon
3890         * jit2h.pl, examples/assembly/mops.pasm:
3891         Clear up JIT warnings.
3893         Courtesy of: Nick Clark <nick@unfortu.net>
3895 2002-01-02 04:10  dan
3897         * io/io.c, io/io_os.c, t/op/interp.t: IO stack now gets initialized
3898         only once, so new interp creation works again
3900         Courtesy of Melvin Smith <mrjoltcola@mindspring.com>
3902 2002-01-02 03:32  dan
3904         * t/op/interp.t: Stubbed the test out, since it's hanging at the
3905         moment.
3907 2002-01-02 00:55  dan
3909         * MANIFEST, Makefile.in, core.ops, include/parrot/io.h, io/io.c,
3910         io/io_os.c: Initial IO system patches
3912         Courtesy of <mrjoltcola@mindspring.com>
3914 2002-01-01 22:55  ajgough
3916         * classes/default.pmc: On second thoughts, and some prodding, the
3917         set_* methods now only set the appropriate part of the cache, and
3918         do nothing else.
3920 2002-01-01 22:29  ajgough
3922         * classes/default.pmc:  Wrote a whole host of default pmc methods.
3924          set_* create appropriate Perl* result.
3925          get_* simply grabs needed bit of cache.*_val
3927          Other methods do the rightest thing I can think of, at the moment.
3929          None yet cope with overflow, the modulus operation needs to be
3930         checked as
3931         I don't know quite which semantics we really want.
3933         Not tested yet.
3935 2002-01-01 20:23  dan
3937         * docs/Makefile, encodings/singlebyte.c, encodings/utf16.c,
3938         encodings/utf32.c, encodings/utf8.c, include/parrot/encoding.h: Got
3939         rid of unneeded tmp var and eliminated const from encode prototype
3940         since it does make changes to the string.
3942         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
3944 2002-01-01 20:11  dan
3946         * Makefile.in: Make clean now tosses pdump.o
3948         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
3950 2002-01-01 19:49  dan
3952         * pdump.c, test_main.c: Warnings cleanup
3954         Courtesy of Josh Wilmes <josh@sky.net>
3956 2002-01-01 19:45  dan
3958         * Configure.pl, Makefile.in, docs/.cvsignore, docs/Makefile.in,
3959         hints/mswin32.pl, languages/jako/Makefile.in,
3960         languages/scheme/Makefile.in: Makes cleanup better on non-Unix
3961         platforms
3963         Courtesy of "Jason Diamond" <jason@injektilo.org>
3965 2002-01-01 19:41  dan
3967         * include/parrot/register.h: Clean up some warnings
3969         Courtesy of Josh Wilmes <josh@hitchhiker.org>
3971 2002-01-01 19:10  simon
3973         * pbc2c.pl, Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm:
3974         Hack-around to enable compilation of code using vtable ops.
3976 2002-01-01 18:43  dan
3978         * encodings/: singlebyte.c, utf16.c, utf32.c, utf8.c: Toss <0
3979         checks on unsigned things
3981         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
3983 2002-01-01 18:26  dan
3985         * runops_cores.c: More warning silences.
3987         Courtesy of Nicholas Clark <nick@unfortu.net>
3989 2002-01-01 18:25  dan
3991         * trace.c: Shuts up a warning.
3993         Courtesy of Nicholas Clark <nick@unfortu.net>
3995 2002-01-01 18:24  dan
3997         * encodings/singlebyte.c: Clean up some warnings.
3999         Courtesy of Nicholas Clark <nick@unfortu.net>
4001 2002-01-01 18:20  dan
4003         * Configure.pl: Hey, those PPros are really x86 systems! Who'dve
4004         thunk it?
4006         Courtesy of "Bryan C. Warnock" <bwarnock@raba.com>
4008 2002-01-01 18:17  dan
4010         * packfile.c: Warning cleanup
4012         Courtesy of Nicholas Clark <nick@unfortu.net>
4014 2002-01-01 17:53  dan
4016         * string.c: New string size should be based on output encoding's
4017         size, not input encoding's size.
4019         Courtesy of: "Peter Gibbs" <peter@emkel.co.za>
4021 2002-01-01 17:22  dan
4023         * Configure.pl, core.ops, interpreter.c, memory.c, runops_cores.c,
4024         string.c, test_main.c, trace.c, include/parrot/exceptions.h,
4025         include/parrot/interpreter.h, include/parrot/memory.h,
4026         include/parrot/oplib.h, include/parrot/string.h, t/op/string.t:
4027         Warnings fixups.
4029         Courtesy of Chip Turner <cturner@redhat.com>
4031 2002-01-01 17:09  dan
4033         * encodings/singlebyte.c, encodings/utf16.c, encodings/utf32.c,
4034         encodings/utf8.c, include/parrot/encoding.h: Some signed things are
4035         now unsigned, as is proper.
4037         Courtesy of: "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4038         Courtesy of: "Bryan C. Warnock" <bwarnock@raba.com>
4040 2002-01-01 16:59  dan
4042         * include/parrot/trace.h: Useless debugging prototype removed
4044         Courtesy of: "Bryan C. Warnock" <bwarnock@raba.com>
4046 2002-01-01 16:58  dan
4048         * MANIFEST: We forgot a file.
4050         Courtesy of "Bryan C. Warnock" <bwarnock@raba.com>
4052 2002-01-01 03:53  dan
4054         * Configure.pl: Okay, I give. Removed some warnings because the
4055         darned system headers were triggering them. Sloppy, sloppy
4056         coding...
4058 2002-01-01 03:48  dan
4060         * config_h.in: Add in an unsigned INTVAL.
4062         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4064 2002-01-01 03:46  dan
4066         * global_setup.c: Clean up some compiler warnings.
4068         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4070 2002-01-01 03:43  dan
4072         * ops2c.pl, Parrot/OpTrans.pm, Parrot/OpTrans/CPrederef.pm,
4073         lib/Parrot/OpTrans.pm, lib/Parrot/OpTrans/CPrederef.pm,
4074         include/parrot/op.h: Cleaned up some things to make the compiler
4075         happier.
4077         Courtesy of Nicholas Clark <nick@unfortu.net>
4079 2002-01-01 03:14  dan
4081         * Configure.pl: Quad updates.
4083         Courtesy of Nicholas Clark <nick@unfortu.net>
4085 2001-12-31 22:53  dan
4087         * include/parrot/op.h: Typedef had parameters backwards. Threw
4088         core.ops for a big whiny warnings loop.
4090 2001-12-31 22:37  dan
4092         * Makefile.in, resources.c: Tweaks to try and get things to build
4093         in the right order.
4095 2001-12-31 21:58  dan
4097         * Configure.pl: Stupid thinko fix
4099 2001-12-31 21:34  dan
4101         * Configure.pl, hints/mswin32.pl: Tweaks for Win32 builds
4103         Courtesy of: "Jason Diamond" <jason@injektilo.org>
4105 2001-12-31 21:32  dan
4107         * Configure.pl: Fix for non-gcc systems
4109 2001-12-31 20:22  dan
4111         * interpreter.c: Tweak so we can build on non-JIT platforms
4113 2001-12-31 20:11  dan
4115         * Configure.pl: Force the time on some copied files to be 'now' to
4116         make the Win builds much less annoying.
4118         Courtesy of "Jason Diamond" <jason@injektilo.org>
4120 2001-12-31 20:07  dan
4122         * Configure.pl: Nuke all object files in the parrot tree that
4123         matter when configuring.  Shouldn't be necessary with good
4124         dependencies in the makefile, but we don't have those yet.
4126 2001-12-31 20:00  gregor
4128         * chartypes/unicode.c:
4129         Silence unused variable warnings.
4131 2001-12-31 19:40  dan
4133         * Configure.pl: Minor Win32 tweaks. Tossed -Wtraditional, too
4135 2001-12-31 19:37  gregor
4137         * interpreter.c, jit.c, include/parrot/jit.h:
4138         Created a prototype for JIT functions and used it in interpreter.c.
4140 2001-12-31 19:31  dan
4142         * Configure.pl, test_gnuc.c: Better GCC detection (and version
4143         detection) with really cranky warnings if we find we're using it.
4145         Courtesy of: Nicholas Clark <nick@unfortu.net>
4147 2001-12-31 18:01  gregor
4149         * interpreter.c, include/parrot/interpreter.h, include/parrot/op.h:
4151         Fixed a few warnings wrt prototypes, etc.
4153 2001-12-31 17:23  dan
4155         * string.c: Silenced most of the compiler whines
4157 2001-12-31 17:15  gregor
4159         * Configure.pl:
4160         Get the ccname from either ccname or just cc config var.
4162 2001-12-31 17:14  gregor
4164         * Parrot/Op.pm, lib/Parrot/Op.pm:
4165         Another intermediate opbody notation. Could come in handy. Explicit
4166         types.
4168 2001-12-31 17:05  dan
4170         * string.c: Minor warnings update
4172 2001-12-31 17:00  dan
4174         * include/parrot/string.h: Warnings cleanup
4176 2001-12-31 16:00  simon
4178         * encodings/utf8.c, include/parrot/encoding.h:
4179         Remove a couple more.
4181 2001-12-31 15:58  simon
4183         * vtable_h.pl, include/parrot/global_setup.h, include/parrot/jit.h,
4184         include/parrot/op.h:
4185         Rid ourselves of a few warnings.
4187 2001-12-31 15:32  dan
4189         * Configure.pl: Made GCC ever so much pickier.
4191         Switch list courtesy of Jarkko.
4193 2001-12-31 15:22  dan
4195         * string.c: Tightened up initial allocation.
4197         Courtesy of:  "Peter Gibbs" <peter@emkel.co.za>
4199 2001-12-31 06:48  dan
4201         * Configure.pl: Minor Windows tweak
4203 2001-12-31 05:32  dan
4205         * core.ops: Unused temp variable tossed.
4207         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4209 2001-12-31 05:09  grunblatt
4211         * Configure.pl, Makefile.in, interpreter.c: Link jit.o only on
4212         supported plataforms
4214 2001-12-31 03:05  dan
4216         * Configure.pl, Makefile.in, classes/Makefile.in: Added in a
4217         platform-independent quote substitution for the makefiles.
4218         Hopefully this'll make the Win32 builds happier.
4220 2001-12-30 21:08  dan
4222         * string.c, include/parrot/string.h: More string system tweaks.
4224         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4226 2001-12-30 20:45  dan
4228         * core.ops: Some pod cleanup
4230         Courtesy of Josh Wilmes <josh@hitchhiker.org>
4232 2001-12-30 20:22  ajgough
4234         * docs/parrot_assembly.pod: removed ntoi and iton ops from docs, as
4235         we aren't using them right now.  Clarified the workings of set Px,
4236         Py and clone Px, Py.
4238 2001-12-30 20:15  grunblatt
4240         * jit.c, jit2h.pl, jit/i386/core.jit: Removed the warnings in jit.c
4241         Added readjit() to read *.jit files Updated core.jit to the new
4242         set_n_i
4244 2001-12-30 20:14  ajgough
4246         * examples/assembly/mops.pasm: Changed iton/ntoi to set.
4248 2001-12-30 19:52  dan
4250         * packfile.c, pdump.c, register.c, string.c, include/parrot/key.h,
4251         include/parrot/trace.h, platforms/generic.c: Compiler whine
4252         cleanups
4254         Courtesy of Josh Wilmes <josh@hitchhiker.org>
4256 2001-12-30 19:13  dan
4258         * Configure.pl, Makefile.in: Make GCC pickier by default.
4260         Courtesy of: Josh Wilmes <josh@hitchhiker.org>
4262 2001-12-30 18:41  dan
4264         * core.ops, t/op/integer.t, t/op/number.t: Transformed iton and
4265         ntoi opcodes to sets.
4267         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4269 2001-12-30 17:58  gregor
4271         * Makefile.in:
4272         'make' no longer builds the mops test. Use 'make mops' for that. To
4273         run the test, you can do 'make mopstest'.
4275 2001-12-30 17:30  gregor
4277         * Makefile.in:
4278         Fixed one oversight. 'make clean' was removing Parrot/Types.pm. Bad
4279         Gregor.
4281 2001-12-30 17:26  gregor
4283         * .cvsignore, Configure.pl, Makefile.in, VERSION, config_h.in,
4284         core.ops, interpreter.c, make_vtable_ops.pl, obscure.ops, ops2c.pl,
4285         Parrot/BuildUtil.pm, Parrot/OpsFile.pm, lib/Parrot/BuildUtil.pm,
4286         lib/Parrot/OpsFile.pm, include/parrot/oplib.h:
4287         Build enhancements. Originally to support building shared
4288         libraries, but now of broader impact.
4290           * .cvsignore: Ignore the blib/ directory, about which more later.
4292           * Configure.pl:
4294               * Got rid of TAB formatting and lined a few things up.
4296               * Added header comment with CVS Id variable, and a few other
4297                 block header comments.
4299               * Uses new Parrot::BuildUtil module to determine the Parrot
4300                 version.
4302               * Reworded a few messages, added a couple, and wrapped
4303         messages
4304                 to 79 columns.
4306               * Added 2002 to the Copyright statement.
4308               * Added new configure variables: VERSION, MAJOR, MINOR and
4309         PATCH
4311               NOTE: Please see the 'Alas perl5.7.2' comment. 5.7.2 is
4312         greater
4313               than 5.6.0, but the comment implies it isn't.
4315           * Makefile.in:
4317               * Added $(SO), $(A) and $(AR_CRS) defines for library
4318         building.
4320               * Added $(RM_RF) define for removing directory trees
4322               * Grouped generated files into two classes: "sticky" (made by
4323         configure,
4324                 persisting across 'make clean') and 'fluid' (made during
4325         the build
4326                 process, deleted by 'make clean').
4328               * Added header comments.
4330               * Added target for test_prog linked with shared library.
4332               * Added rules to build shared libraries in blib/lib. The
4333         libraries are
4334                 built with trailing version numbers in their file names,
4335         and then
4336                 symbolic links are created for shorter and no version tag
4337         variants.
4339               * Added some missing dependencies
4341               * Added some missing 'make clean' targets.
4343               * Added 'make realclean' target that deletes files created by
4344                 Configure.pl (including Makefile), forcing a re-configure.
4346               * Added a 'status' CVS target.
4348           * VERSION: New file, contains only the version. This version
4349         number is
4350             propagated to a few places, such as the core oplib version
4351         number. This
4352             reduces the amount of coordination that has to happen to get
4353         version
4354             number stuff throughout the tree in sync and updated prior to
4355         cutting
4356             a new release. Feel free to grep for '0.0.3' to see the other
4357         files
4358             that contain the version number (but, do that in a fresh CVS
4359         copy, or
4360             after doing 'make realclean').
4362           * config_h.in: Renamed PARROT_CORE_OPLIB_*_VERSION to
4363         PARROT_*_VERSION,
4364             since the oplib and Parrot itself share a version number now.
4365         Added
4366             PARROT_PATCH_VERSION (the third component) and PARROT_VERSION
4367         (a
4368             string).
4370           * core.ops: Uses new notation "VERSION = PARROT_VERSION" instead
4371         of
4372             specifying the version by hand. Non-core oplibs will set this
4373         to
4374             a quoted dot-string with three natural number components
4375         without
4376             leading zeros.
4378           * interpreter.c: Make use of PARROT_VERSION to simplify some
4379         sprintf()s, and
4380             to get the complete version number in the resulting strings
4381         (including the
4382             new PATCH portion).
4384           * make_vtable_ops.pl: Put the "VERSION = PARROT_VERSION" line int
4385         the
4386             generated file.
4388           * obscure.ops: Use the new "VERSION = PARROT_VERSION" technique.
4390           * ops2c.pl: Account for the PATCH version, too. This affects the
4391         name of the
4392             oplib init function, and the oplib info struct initializer.
4394           * Parrot/BuildUtil.pm: New file for reading in and validating the
4395         contents of
4396             the new VERSION file. Other build utilities could go here in
4397         futuer.
4399           * Parrot/OpsFile.pm:
4401               * Allow three components in version number, and require that
4402         the value
4403                 be in double quotes.
4405               * Allow "VERSION = PARROT_VERSION", substituting the shared
4406         Parrot
4407                 VERSION in that case.
4409           * include/parrot/oplib.h: Add the patch_version member.
4411 2001-12-30 12:16  simon
4413         * MANIFEST, Makefile.in:
4414         More stuff forgotten from MANIFEST.
4416 2001-12-30 12:13  simon
4418         * MANIFEST:
4419         Missing JIT file.
4421 2001-12-30 12:12  simon
4423         * jit2h.pl:
4424         Safety first.
4426 2001-12-30 12:12  simon
4428         * Makefile.in:
4429         Gragh.
4431 2001-12-30 12:04  simon
4433         * Makefile.in, core.ops, packfile.c, pbc2c.pl, string.c,
4434         classes/perlstring.pmc, encodings/singlebyte.c, encodings/utf16.c,
4435         encodings/utf32.c, encodings/utf8.c, include/parrot/encoding.h,
4436         include/parrot/string.h, t/op/string.t:
4437         * Expand the strings test suite to be more complete * Make string
4438         commands more consistent (i.e, now the only string command that
4439         actually changes the original is chopn) * Significantly reduce the
4440         number of memory allocations and eliminate reallocations.
4442         Courtesy of: David Jacobs <jacobsl001@hawaii.rr.com>
4444 2001-12-29 22:12  dan
4446         * interpreter.c, key.c, register.c, stacks.c, string.c,
4447         test_main.c, trace.c: Updates to match the coding standards.
4449         Courtesy of Bryan C. Warnock <bwarnock@raba.com>
4451 2001-12-29 20:42  grunblatt
4453         * jit2h.pl, Parrot/Jit/i386-bsd.pm, Parrot/Jit/i386-linux.pm,
4454         Parrot/Jit/i386-nojit.pm, jit/i386/core.jit, jit/i386/lib.jit,
4455         jit/i386/string.jit, lib/Parrot/Jit/i386-bsd.pm,
4456         lib/Parrot/Jit/i386-linux.pm, lib/Parrot/Jit/i386-nojit.pm: Allow
4457         us to write asm in *.jit files instead of hex.  Courtesy of: Rafael
4458         Kitover <caelum@debian.org>
4460 2001-12-28 21:20  dan
4462         * core.ops: Okay, now print takes a preceding file handle.
4464         I feel so dirty now.
4466 2001-12-28 20:46  dan
4468         * core.ops, t/op/hacks.t: Added in the readline op, as well as
4469         changing the open op to use fopen under the hood.
4471         THESE OPS ARE EVIL! AND TEMPORARY! USE FOR DEBUGGING PURPOSES ONLY!
4473 2001-12-28 18:20  ajgough
4475         * core.ops, make_vtable_ops.pl, string.c, classes/default.pmc,
4476         classes/perlstring.pmc, docs/parrot_assembly.pod, docs/strings.pod,
4477         include/parrot/exceptions.h, include/parrot/string.h,
4478         t/op/pmc_perlstring.t, t/op/string.t, t/pmc/perlstring.t: Added
4479         repeat op, so that "foo" x 10 can be done.  Filled in PerlString
4480         vtables appropriately.  Also tests for same, new pmc_perlstring.t
4481         to hold tests specific to PerlStrings, as the pmc.t file is taking
4482         too long to run and slowing down my thought processes.
4484         Changes to strings.c etc to take string functions.
4486         Some changes to the strings docs, but not yet complete.
4488         Also, PerlString was copying pointers to strings, rather than
4489         strings themselves, so some action-at-a-distance bugs were creeping
4490         in, I think I've fixed this so everything works nicely.
4492 2001-12-28 04:56  gregor
4494         * examples/assembly/pmcmops.pasm:
4495         PMC-using version of mops.pasm.
4497         Courtesy of: Bryan C. Warnock <bwarnock@raba.com>
4499 2001-12-28 04:56  gregor
4501         * examples/assembly/.cvsignore:
4502         Small tinkering. Removed old stuff, etc.
4504 2001-12-28 01:26  gregor
4506         * examples/mops/mops.scheme:
4507         Scheme example. Major GC thrashing on umb-scheme here. Probably due
4508         to the very un-scheme-like implementation.
4510 2001-12-28 01:19  gregor
4512         * examples/mops/mops.c:
4513         Some people's picky compilers don't like us redefineing time(), so
4514         we call it time_n().  :)
4516 2001-12-28 00:28  gregor
4518         * examples/mops/: README, mops.ps:
4519         Added a PostScript example and a README.
4521 2001-12-27 23:57  gregor
4523         * Makefile.in:
4524         Build the C mops translation in examples/mops/mops.c
4526 2001-12-27 23:56  gregor
4528         * examples/mops/: .cvsignore, mops.c, mops.pl, mops.py, mops.rb:
4529         Some translations of mops.pasm into other languages, for inner loop
4530         performance comparisons.
4532 2001-12-27 22:40  gregor
4534         * examples/assembly/mops.pasm:
4535         Fixed erroneous file name in header comment.
4537 2001-12-27 21:18  gregor
4539         * pbc2c.pl:
4540         One-liner to avoid no-op gotos to the next op.
4542 2001-12-27 21:06  gregor
4544         * runops_cores.c:
4545         Fixed -p (profiling). Slow runops core was doing unconditional
4546         tracing, when it should have been checking the flags.
4548 2001-12-27 18:50  ajgough
4550         * core.ops, string.c, chartypes/unicode.c, chartypes/usascii.c,
4551         classes/perlstring.pmc, include/parrot/chartype.h,
4552         include/parrot/string.h, t/op/pmc.t, t/op/string.t, t/pmc/pmc.t:
4553         dded get_digit() to chartypes  * Added string_bool() to strings  *
4554         Added if_s_ic op, to use same  * Added (PerlString)->get_bool stuff
4555         to perlstring.pmc  * Tests for above, also a for couple of other
4556         ops without tests
4558         The unicode chartype has only had placeholders added for get_digit,
4559         string_to_num has been updated to use type->get_digit rather than
4560         the previous ascii-isms.  Some remain, but we need to carefully
4561         define what we mean by a number before we let thousands of code
4562         points act as a minus sign.
4564 2001-12-27 18:32  dan
4566         * classes/: perlint.pmc, perlnum.pmc, perlstring.pmc: Silenced some
4567         compiler warnings.
4569         Courtesy of "David  Jacobs" <jacobsl001@hawaii.rr.com>
4571 2001-12-27 18:23  dan
4573         * t/op/bitwise.t: More tests.
4575         Courtesy of "David Jacobs" <jacobsl001@hawaii.rr.com>
4577 2001-12-27 17:08  gregor
4579         * MANIFEST, Makefile.in, config_h.in, core.ops, interpreter.c,
4580         make_vtable_ops.pl, obscure.ops, ops2c.pl, ops2pm.pl, test_main.c,
4581         trace.c, Parrot/OpsFile.pm, include/parrot/interp_guts.h,
4582         include/parrot/interpreter.h, include/parrot/oplib.h,
4583         lib/Parrot/OpsFile.pm, platforms/generic.c, platforms/generic.h,
4584         platforms/win32.c, platforms/win32.h:
4585         Initial code for dynamic loading of oplibs, applied for now to the
4586         loading of the core_prederef oplib when the -P flag is passed to
4587         test_parrot.
4589           * MANIFEST: Added entry for the new file include/parrot/oplib.h.
4591           * Makefile.in:
4593               * Added libcore_prederef_0_3.so to the shared target.
4594               * Added build rule for libcore_prederef_0_3.so.
4595               * Added dependencies on Parrot/OpsFile.pm and Parrot/Op.pm
4596                 to Parrot/OpLib/core.pm, core_ops.c and
4597                 core_ops_prederef.c.
4599           * config_h.in: Added defines for constants used to locate the
4600             core oplib's init function, and the core_prederef oplib for
4601             dynaloading.
4603           * core.ops: Added a VERSION = 0.3 line near the top. This is now
4604             required by Parrot/OpsFile.pm.
4606           * interpreter.c:
4608               * Added init_prederef() and stop_prederef() functions to load
4609                 and unload the core_prederef oplib when we are in prederef
4610                 mode.
4612                 NOTE: In all likelihood, the prederef stuff has a rapidly
4613                 dwindling time-to-live. The JIT should provide vastly
4614         superior
4615                 performance, and loading an alternate set of core_ops isn't
4616                 the real direction for the dynaloading stuff. Loading
4617                 *additional* ops is. It does provide a handy test case for
4618         the
4619                 general idea for now, though.
4621               * Gets the core copcode table, etc. via the core oplibs oplib
4622                 info pointer, as returned by the core oplib's init
4623         function.
4625           * ops2c.pl
4627               * Make use of the version, major version and minor version
4628                 stuff parsed by Parrot/OpsFile.pm
4630               * The only exported symbol in the generated files is the init
4631                 function now, since that returns an oplib info struct
4632                 pointer, and all the important stuff can be found there.
4634           * ops2pm.pl: Put the oplib version in the generated .pm file.
4636           * test_main.c: Small changes necessitated by changes in the names
4637             of some members of the interpreter struct.
4639           * trace.c: Small changes necessitated by changes in the names
4640             of some members of the interpreter struct.
4642           * Parrot/OpsFile.pm: Require a "VERSION = x.y" line before any
4643             ops are found.
4645           * include/parrot/interp_guts.h: Small changes necessitated by
4646             changes in the names of some members of the interpreter struct.
4648           * include/parrot/interpreter.h: Include the new
4649             include/parrot/oplib.h header. Small changes to the oplib-
4650             related members.
4652           * include/parrot/oplib.h: Define the type of the oplib init
4653             function, and the struct type for the oplib info.
4655           * platforms/*.[hc]: Remove the second argument to Parrot_dlopen()
4656             since not all platforms have it. For those that do, a default
4657             second argument is provided.
4659 2001-12-26 05:12  gregor
4661         * Configure.pl:
4662         Make jitarch calculation not get tripped up by extra components to
4663         archname.
4665 2001-12-24 21:23  gregor
4667         * jit.c, jit2h.pl, Parrot/Jit/i386-bsd.pm,
4668         Parrot/Jit/i386-linux.pm, Parrot/Jit/i386-nojit.pm,
4669         include/parrot/jit.h, jit/i386/core.jit, jit/i386/lib.jit,
4670         jit/i386/string.jit, lib/Parrot/Jit/i386-bsd.pm,
4671         lib/Parrot/Jit/i386-linux.pm, lib/Parrot/Jit/i386-nojit.pm:
4672         Some more JIT work from Daniel Grunblatt.
4674           * Ops added set_s_s, set_s_sc, bsr_i and eq_s_sc but using calls
4675         to C
4676             functions.
4678           * Added JUMP(END) to place the number of bytes to the end of the
4679         current
4680             op.
4682           * The *.jit files syntax changed.
4684           * Added jit/i386/lib.jit to place handly functions as jump that
4685         take as
4686             argument the address where is the opcode number to jump to.
4688           * There is a bug at some point, but I will start writing
4689             jit/i386/string.jit and jit/i386/stacks.jit so that we don't
4690         have use
4691             calls, which make the jit as slow as the interpreter.
4693         Courtesy of: Daniel Grunblatt <daniel@grunblatt.com.ar>
4695 2001-12-24 03:46  dan
4697         * Parrot/OpTrans.pm, Parrot/OpTrans/C.pm, Parrot/OpTrans/CGoto.pm,
4698         Parrot/OpTrans/CPrederef.pm, lib/Parrot/OpTrans.pm,
4699         lib/Parrot/OpTrans/C.pm, lib/Parrot/OpTrans/CGoto.pm,
4700         lib/Parrot/OpTrans/CPrederef.pm: Commented out the use warnings.
4701         Perls before 5.6.0 don't like it.
4703 2001-12-22 16:02  ajgough
4705         * t/op/stacks.t: stopped skipping tests we can run now.  added
4706         clonep tests.
4708 2001-12-21 21:13  gregor
4710         * jit2h.pl, Parrot/Jit/i386-bsd.pm, Parrot/Jit/i386-linux.pm,
4711         Parrot/Jit/i386-nojit.pm, lib/Parrot/Jit/i386-bsd.pm,
4712         lib/Parrot/Jit/i386-linux.pm, lib/Parrot/Jit/i386-nojit.pm:
4713         Fixed some package name goofs.
4715         Thanks to: Andy Dougherty <doughera@mail.lafayette.edu>
4717 2001-12-21 19:32  gregor
4719         * MANIFEST, Makefile.in, core.ops, interpreter.c,
4720         make_vtable_ops.pl, obscure.ops, ops2c-prederef.pl, ops2c.pl,
4721         pbc2c.pl, stacks.c, Parrot/Op.pm, Parrot/OpTrans.pm,
4722         Parrot/Opcode.pm, Parrot/OpsFile.pm, lib/Parrot/Op.pm,
4723         lib/Parrot/OpTrans.pm, lib/Parrot/Opcode.pm, lib/Parrot/OpsFile.pm,
4724         Parrot/OpTrans/C.pm, Parrot/OpTrans/CGoto.pm,
4725         Parrot/OpTrans/CPrederef.pm, docs/intro.pod, include/parrot/op.h,
4726         include/parrot/stacks.h, lib/Parrot/OpTrans/C.pm,
4727         lib/Parrot/OpTrans/CGoto.pm, lib/Parrot/OpTrans/CPrederef.pm:
4728         Changes to syntax of .ops files and refactoring of ops2c*.pl and
4729         pbc2c.pl.
4731           * Removed ops2c-prederef.pl
4733           * (unrelated) Removed vestigial Parrot/Opcode.pm file.
4735           * Added Parrot/OpTrans.pm, Parrot/OpTrans/C.pm (needed for old
4736             functionality of ops2c.pl), Parrot/OpTrans/CPrederef.pm (needed
4737             for old functionality of ops2c-prederef.pl), and
4738             Parrot/OpTrans/CGoto.pm (needed for functionality of pbc2c.pl).
4740             "OpTrans" == "Op Transformation"
4742           * Makefile.in modifications to call "ops2c.pl C" where it used
4743             to be just "ops2c.pl", and "ops2c.pl CPrederef" where it used
4744             to be "ops2c-prederef.pl".
4746           * core.ops and obscure.ops changes to syntax. Semantics are
4747             identical with previous version:
4749               return HALT         -->  HALT()
4750               return AUTO         -->  goto NEXT()
4751               return RETREL(...)  -->  goto OFFSET(...)
4752               return RESTART(*)   -->  restart NEXT()
4754             Also, pop_generic_entry() stuff (local var + 5 lines of code)
4755             for dest-less branch ops replaced with new notation "goto
4756         POP()",
4757             which uses the new pop_dest() function in stacks.c. This also
4758             allowed these ops to become 'inline' ops, since they no longer
4759             have local variables.
4761             The 'ret' op also became simplified to just "goto POP()", and
4762             also became an inline op.
4764           * interpreter.c reflects the change in type name:
4766               prederef_op_func_t   -->  op_func_prederef_t
4768             that occurred in include/parrot/op.h
4770           * make_vtable_ops.pl uses "goto NEXT()" where it used to use
4771             "return AUTO".
4773           * ops2c.pl is now generic. Its first argument is the last
4774             package name component of a subclass of Parrot::OpTrans. These
4775             subclasses all have full names of the form Parrot::OpTrans::*.
4776             An instance of the class is created and later consulted for
4777             various bits of information needed to generate the C code.
4779           * pbc2c.pl now uses an instance of Parrot::OpTrans::CGoto to
4780             contain its transformation rules.
4782           * stacks.c has a new function pop_dest() that pops a destination
4783             off the control stack. include/parrot/stacks.h has the
4784         prototype.
4786           * Parrot/Op.pm now supports the syntax generated by
4787         Parrot::OpsFile
4788             for the "goto POP" case.
4790             Also, the source() method now expects its second argument to be
4791             an object that ISA Parrot::OpTrans. Methods of this object are
4792             called to perform the substitutions.
4794           * Parrot/OpsFile.pm supports the change in notation mentioned
4795             above.
4797           * docs/intro.pod reflects these changes.
4799           * include/parrot/op.h: Renamed type prederef_op_func_t to
4800             op_func_prederef_t because it made the implementation of the
4801             shared ops2c.pl easier.
4803 2001-12-21 13:47  gregor
4805         * Configure.pl, config_h.in, interpreter.c, test_main.c:
4806         Both test_parrot (via test_main.c) and the intepreter itself (via
4807         interpreter.c) use the JIT_CAPABLE config to decide whether to
4808         actually attempt JIT operation, or to complain.
4810 2001-12-20 23:25  gregor
4812         * core.ops, make_vtable_ops.pl, obscure.ops, Parrot/OpsFile.pm,
4813         lib/Parrot/OpsFile.pm, docs/intro.pod, include/parrot/op.h:
4814         Changes to the format of *.ops files. An attempt to provide hints
4815         for future opfunc processing logic that wants to know if an opfunc
4816         is simple enough to JIT (e.g.) inline, or not.
4818         See the POD in Parrot/OpsFile.pm and the updated docs/intro.pod in
4819         addition to The Source in core.ops and Parrot/OpsFile.pm for more
4820         info.
4822 2001-12-20 21:28  gregor
4824         * Configure.pl, jit.c, jit2h.pl, include/parrot/jit.h,
4825         jit/i386/core.jit:
4826         More JIT stuff:
4828           * A fix to Gregor's last Configure.pl update.
4830           * Remove the need for hardcoded "\n" at the end of the "%f"
4831             format for printing floating-point numbers.
4833           * New, improved *.jit syntax for references to registers,
4834             e.g. INT_REG[n].
4836           * Support for C() improved.
4838         Courtesy of: Daniel Grunblatt <daniel@grunblatt.com.ar>
4840 2001-12-20 16:55  dan
4842         * MANIFEST: Added jit.c to the manifest.
4844 2001-12-20 15:24  simon
4846         * jit2h.pl:
4847         Off-by-one error fixed.
4849 2001-12-20 14:18  simon
4851         * jit/i386/core.jit:
4852         Just a noop. It's the only machine code I know.
4854 2001-12-20 13:10  gregor
4856         * Configure.pl, Makefile.in, jit2h.pl:
4857         Attempt to fix Win32 builds.
4859           * No more empty braces in include/parrot/jit_struct.h
4861         Also:
4863           * ${jitarchname} has the *bsd -> bsd substitution on it, but
4864         ${archname}
4865             does not.
4867 2001-12-20 11:56  simon
4869         * Makefile.in:
4870         De-cp
4872 2001-12-20 01:57  gregor
4874         * Configure.pl, MANIFEST, Makefile.in, interpreter.c, jit.c,
4875         jit2h.pl, test_main.c, Parrot/.cvsignore, Parrot/Jit/i386-bsd.pm,
4876         Parrot/Jit/i386-linux.pm, Parrot/Jit/i386-nojit.pm, docs/jit.pod,
4877         include/parrot/.cvsignore, include/parrot/interpreter.h,
4878         include/parrot/jit.h, jit/i386/core.jit, jit/i386/string.jit,
4879         lib/Parrot/Jit/i386-bsd.pm, lib/Parrot/Jit/i386-linux.pm,
4880         lib/Parrot/Jit/i386-nojit.pm:
4881         Initial JIT implementation.
4883           * Enabled with test_parrot -j. 20x speed boosts seen.
4885           * Unsupported archs mapped to i386-nojit. Don't do -j on them.
4887           * More to come.
4889         Courtesy of: Daniel Grunblatt <daniel@grunblatt.com.ar>
4891 2001-12-20 01:53  jgoff
4893         * MANIFEST, core.ops, t/op/key.t: MANIFEST - Removed t/op/key.t
4894         core.ops - Removed key operators, they should be hidden from the
4895         assembler.  t/op/key.t - No need to test the nonexistent key
4896         operators.
4898 2001-12-20 00:13  ajgough
4900         * core.ops, t/op/stacks.t: Added tests for entrytype op, noticed
4901         that asking for type of entry at depth causes segfault as stack is
4902         zero based, fixed cmp in core.ops to reflect this.  Last test is
4903         skipped as we don't do exceptions right yet.
4905 2001-12-19 19:11  ajgough
4907         * t/op/debuginfo.t: Added C<end> ops to debuginfo.t, as thier
4908         non-being was causing Irix "issues".
4910 2001-12-19 03:37  jgoff
4912         * languages/miniperl/Miniperl/t/: 001_tokenizer.t, 003_generator.t,
4913         004_combined.t: Changed tests to make sure they pass with the
4914         addition of the clone operator.
4916 2001-12-18 20:06  gregor
4918         * interpreter.c, include/parrot/interp_guts.h:
4919         Performance improvements to the predereferencing code path
4920         suggested to me over lunch yesterday by my friend John Kennedy.
4921         The goal is to remove the additional test in the inner loop that
4922         was checking for NULL to decide whether or not to call the
4923         prederef() function. Also moved pc & pc_prederef syncing outside
4924         the inner loop.
4926           * Changed the prototype of the prederef() function in
4927             interpreter.c to match that of an opfunc.
4929           * Instead of initializing the prederef void * array with NULL,
4930             we initialize it with pointers to prederef().
4932           * prederef() now returns the prederef_pc passed in, so that
4933             after predereferencing, the same location is executed, but now
4934             with the real code being called.
4936         Thanks to: John Kennedy
4938 2001-12-18 19:59  ajgough
4940         * t/: op/pmc.t, pmc/pmc.t: Added some more num -> string tests
4941         (including some more in the skipped string -> int tests).
4943 2001-12-18 07:06  jgoff
4945         * MANIFEST: Forgot to add classes/perlarray.pmc
4947 2001-12-18 07:05  jgoff
4949         * Makefile.in, core.ops, global_setup.c, vtable.tbl,
4950         classes/Makefile.in, classes/default.pmc, classes/perlarray.pmc,
4951         classes/perlint.pmc, classes/perlnum.pmc, classes/perlstring.pmc,
4952         classes/perlundef.pmc, include/parrot/pmc.h, t/op/pmc.t,
4953         t/pmc/pmc.t: Big update...  Makefile.in - Added
4954         classes/perlarray.pmc core.ops - Added new series of set() ops for
4955         arrays global_setup.c - Initialized perlarray classes/Makefile.in -
4956         Added perlarray.pmc classes/*.pmc - Added
4957         set_{integer,number,string}_index and
4958         get_{integer,number,string}_index include/parrot/pmc.h - Added new
4959         type t/op/pmc.t - Added basic array test
4961         classes/perlarray.pmc - Added
4963 2001-12-17 05:29  jgoff
4965         * languages/miniperl/Miniperl/Generator.pm: Altered miniperl code
4966         generator to use clone operator instead of set Px,Py
4968 2001-12-17 05:25  jgoff
4970         * core.ops, classes/perlint.pmc, classes/perlnum.pmc,
4971         classes/perlstring.pmc, t/op/pmc.t, t/pmc/pmc.t: Added clone
4972         PMC,PMC operator. Uses the clone() vtable entries.
4974 2001-12-17 04:51  jgoff
4976         * MANIFEST: Added miniperl test suite, removed old Miniperl/Test.pm
4977         entry
4979 2001-12-17 04:41  jgoff
4981         * languages/miniperl/Miniperl/Makefile.PL: Now in its proper
4982         directory...
4984 2001-12-17 04:41  jgoff
4986         * languages/miniperl/Makefile.PL: Moved it to the proper directory.
4988 2001-12-17 04:39  jgoff
4990         * languages/miniperl/: Makefile.PL, Miniperl.pm, miniperlc, mpc,
4991         Miniperl/Tokenizer.pm: Makefile.PL to let us run the test suite in
4992         t/
4994 2001-12-17 04:27  jgoff
4996         * languages/miniperl/Miniperl.pm: Latest version of the driver.
4997         Admittedly it's a little thin on true OO, but the algorithms are
4998         the key.
5000 2001-12-17 04:24  jgoff
5002         * languages/miniperl/Miniperl/t/: 001_tokenizer.t, 002_parser.t,
5003         003_generator.t, 004_combined.t: Much more comprehensive test suite
5004         for the codegen et al
5006 2001-12-17 04:22  jgoff
5008         * languages/miniperl/Miniperl/: Generator.pm, Parser.pm,
5009         Tokenizer.pm: Newer codegen, tightened up parser output, added hash
5010         key handling
5012 2001-12-17 04:20  jgoff
5014         * languages/miniperl/Miniperl/Test.pm: The newer test suite is much
5015         more comprehensive.
5017 2001-12-17 04:17  jgoff
5019         * languages/miniperl/foo.mpl: Test file that'll be outdated by
5020         changes to the new compiler
5022 2001-12-17 04:11  jgoff
5024         * languages/miniperl/t/: harness, 001_basic/basic.t: Moving testing
5025         files to Miniperl/
5027 2001-12-16 14:11  simon
5029         * classes/perlint.pmc, examples/assembly/mops_p.pasm, t/op/pmc.t,
5030         t/pmc/pmc.t:
5031         Fix bogus assumption that multiplying an integer by an integer
5032         yields an integer.
5034 2001-12-16 12:48  simon
5036         * make_vtable_ops.pl:
5037         Fixed op exploder.
5039 2001-12-16 12:45  simon
5041         * make_vtable_ops.pl, Parrot/Vtable.pm, lib/Parrot/Vtable.pm:
5042         Expand multimethod vtable ops.
5044 2001-12-16 12:04  simon
5046         * Makefile.in:
5047         Added 'cvsclean' which doesn't zap CVS/* directories.
5049 2001-12-15 01:50  dan
5051         * include/parrot/string.h: Fixed typo in string.h. lagnuage,
5052         indeed!
5054         Thanks to grunblatt fom #parrot for the catch
5056 2001-12-15 01:39  dan
5058         * .cvsignore, Configure.pl, MANIFEST, languages/jako/Makefile.in,
5059         languages/miniperl/.cvsignore, languages/miniperl/Makefile,
5060         languages/miniperl/Makefile.in,
5061         languages/miniperl/Miniperl/Test.pm, languages/scheme/.cvsignore,
5062         languages/scheme/Makefile, languages/scheme/Makefile.in: Build
5063         tweaks.
5065         Courtesy of: Jay McCarthy <jay@kenyamountain.com>
5067 2001-12-14 17:39  dan
5069         * t/op/trans.t: More trans tests.
5071         Courtesy of: Simon Glover <scog@roe.ac.uk>
5073 2001-12-14 07:41  robert
5075         * make.pl: - define MAKE macro - topological sort and subgraph
5076         order - start of timestamp stuff   (still badly broken)
5078 2001-12-14 06:06  jgoff
5080         * optimizer.pl: Hopefully this should do the trick..
5082 2001-12-14 06:04  jgoff
5084         * Parrot/Optimizer.pm, lib/Parrot/Optimizer.pm: Optimizer
5086           optimizer.pl is the stub, Parrot/Optimizer.pm is the driver.
5088           The optimizer performs its work on a file post-macro expansion.
5089           Run it on a .pasm file, preferably with some trivially reducible
5090         operations
5091           like 'add I0,5,-6' or 'mul I0,I1,0'
5093 2001-12-14 05:48  robert
5095         * Makefile.in: case error EXE -> exe
5097 2001-12-14 05:42  robert
5099         * Makefile.in: remove legacy PDISASM macro
5101 2001-12-14 04:01  dan
5103         * classes/Makefile.in, languages/Makefile.in: Makefile tweaks for
5104         better Win building
5106         Courtesy of: Garrett Goebel <garrett@scriptpro.com>
5108 2001-12-13 22:03  dan
5110         * Configure.pl, Makefile.in, Parrot/Test.pm,
5111         languages/scheme/Makefile, languages/scheme/Scheme/Test.pm,
5112         lib/Parrot/Test.pm: Parrot test prog's now a config variable, so we
5113         can change it without having to change the world.
5115 2001-12-13 21:57  dan
5117         * core.ops, interpreter.c, docs/parrot_assembly.pod,
5118         include/parrot/interpreter.h, t/op/debuginfo.t: Added current
5119         file/line/package to interp structure, with ops to get and set
5120         them. Now we can know where we are!
5122 2001-12-13 19:43  dan
5124         * Configure.pl, Makefile.in: Makefile tweaks to hopefully make
5125         WinXP builds work out of the box
5127 2001-12-13 17:05  dan
5129         * Makefile.in, Parrot/Test.pm, lib/Parrot/Test.pm: Change test prog
5130         name again--makes case-insensitive systems much happier.
5132 2001-12-13 16:21  dan
5134         * core.ops, key.c, string.c, test_main.c, trace.c,
5135         classes/Makefile.in, include/parrot/trace.h: Fixes to clean up
5136         compiler warnings
5138         Courtesy of: Josh Wilmes <josh@sky.net>
5140 2001-12-13 13:33  gregor
5142         * languages/jako/Makefile.in:
5143         Improved the method of calling the assembler.
5145 2001-12-13 13:30  gregor
5147         * languages/jako/Makefile.in:
5148         Improve the build process. It now works from the main parrot dir,
5149         and from the languages/jako directory. Now uses the .SUFFIXES
5150         target and generic build rules to reduce clutter in the
5151         Makefile.in.
5153 2001-12-13 13:29  gregor
5155         * languages/jako/.cvsignore:
5156         Ignore the (now generated Makefile), and don't ignore .list files
5157         anymore, since we aren't generating them.
5159 2001-12-13 13:11  gregor
5161         * Configure.pl, MANIFEST, Makefile.in, languages/.cvsignore,
5162         languages/Makefile.in, languages/jako/Makefile,
5163         languages/jako/Makefile.in:
5164         Added a 'languages' target to the top-level Makefile.in, and
5165         modified the jako build procedure to involve Makefile.in -->
5166         Makefile too (done by Configure.pl).
5168         NOTE: languages/jako and language/scheme are built.
5169         languages/miniperl wasn't building right, so it was left off for
5170         now.
5172 2001-12-13 12:15  gregor
5174         * MANIFEST:
5175         Added MAINTAINER file and mandelzoom.jako from languages/jako to
5176         the MANIFEST.
5178 2001-12-13 12:12  gregor
5180         * .cvsignore, MANIFEST, Makefile.in, core.ops, interpreter.c,
5181         ops2c-prederef.pl, ops2c.pl, test_main.c,
5182         include/parrot/interp_guts.h, include/parrot/interpreter.h,
5183         include/parrot/op.h, include/parrot/oplib/.cvsignore:
5184         Welcome to the Just-in-Time Predereferencing Patch!
5186         This patch implements a "predereferencing" mode for parrot. That
5187         means that a lot of the dereferencing you see in DO_OP and in the
5188         opfuncs is done up front (really, JIT) rather than as and each time
5189         we execute each op in the byte code stream.
5191         This works by creating an array of void pointers with the same
5192         number of elements as the byte code array. This array starts out
5193         life zero-initialized.  Each time we go to execute an op, we check
5194         first to see if we have a NULL pointer at *cur_opcode. If so, we
5195         know we haven't done our predereferencing yet (this is the JIT
5196         part), so we call the prederef() function with sufficient args that
5197         it can go look up opfunc pointers and op arg types and put the
5198         opfunc and arg pointers at cur_opcode[0] .. cur_opcode[N - 1],
5199         where N is the number of args (counting the op itself as one arg).
5201         We assume that sizeof(INTVAL) <= sizeof(void *), so we can continue
5202         to have inline INTVAL constants.
5204         I've been getting about a 22% speed increase over vanilla code path
5205         when I compile with -O0. Advantage decreases at -O9 here. I tested
5206         with mops.pbc, and also by temporarily putting the -P flag in
5207         Parrot/Test.pm and running all the tests. So, this code is as
5208         correct as the test suite can detect.
5210         Here's how it plays out in the code:
5212           * New script ops2c-prederef.pl
5214             Copy-paste code reuse from ops2c.pl. Modified to expect the
5215         args to give
5216             a void ** cur_opcode and to return a void **.
5218           * Modified ops2c.pl
5220               * opfuncs are now static. Who needs to call them by name from
5221         outside,
5222                 anyway? They are accessed via the opfunc table.
5224               * Some MACRO stuff to make things work whether we prederef or
5225         not. It
5226                 may be possible to get rid of these some day if other folks
5227         agree
5228                 that we should be using CODE object pointers + offsets as
5229         our PC
5230                 rather than raw pointers to either opcode_t's or (void *)'s
5231                 (depending on prederef mode or no).
5233           * core.ops modified to be usable to build both kinds of opfuncs.
5234         For now,
5235             this means:
5237               * calls to push_generic_entry(... cur_opcode ...) were
5238         changed to
5239                 push_generic_entry(... CUR_OPCODE ...), where CUR_OPCODE is
5240         a
5241                 macro that does the right thing in both kinds of ops.c
5242         files.
5244                 This is applicable to the bsr op. If we treated
5245         destinations as
5246                 (Code PMC + local offset) rather than as
5247         pointer-to-memory-somewhere,
5248                 this wouldn't be a big deal. We may need to do that at some
5249         point
5250                 anyway, so that when you jump around and return not only do
5251         you have
5252                 the right PC (pointer, today), but you also have the
5253         thread/interpreter
5254                 knowing what chunk of bytecode it is in at all times
5255         (assuming we'll
5256                 allow reflection, as in ops that query or affect the
5257         current CODE PMC).
5259               * runinterp was modified. Instead of copying the top-level
5260         PackFile struct
5261                 and blasting its byte_code pointer, we simply call runops
5262         on the new
5263                 interp, passing in the pointer to the current interp's code
5264         and the
5265                 offset into that code at which to start (this last arg used
5266         to be a
5267                 pointer PC, now its an offset PC).
5269           * include/parrot/op.h
5271               * new typedef for prederef opfuncs (they return void **)
5273           * include/parrot/interp_guts.h
5275               * New DO_OP_PREDEREF() macro described above.
5277           * include/parrot/interpreter.h
5279               * New prototype of runops() -- see below.
5281               * resume_addr field changed to resume_flag and resume_offset
5282         pair of fields.
5283                 We might be resuming from interp using prederef to one not
5284         or vice-versa,
5285                 so pointers between the two don't play nice together.
5286         Offsets are beautiful.
5288               * New PARROT_PREDEREF_FLAG constant
5290           * interpreter.c
5292               * include "parrot/oplib/core_ops_prederef.h"
5294               * prederef() function described above.
5296               * runops_prederef() runops variant. Uses DO_OP_PREDEREF()
5297         macro as its core.
5299               * runops() modified to take size_t CODE-relative offset PC
5300         rather than
5301                 pointer PC. This made other things workable and doesn't
5302         seem to have lost
5303                 anything important (IMO).
5305           * test_main.c
5307               * New flag '-P' to enable predereferencing.
5309           * Makefile modified to build core_ops_prederef.c from core.ops
5310         via
5311             ops2c-prederef.pl.
5313             BTW, also added missing $(INC)/interp_guts.h to H_FILES.
5315             Added core_ops_prederef$(O) to O_FILES
5317 2001-12-13 12:12  gregor
5319         * languages/jako/MAINTAINER:
5320         Thought it would be nice to put this right in the code...
5322 2001-12-13 04:36  jgoff
5324         * languages/miniperl/Miniperl/Generator.pm: Commented out
5325         debugging, fixed register spillover algorithm
5327 2001-12-13 04:23  jgoff
5329         * make.pl: Found and fixed obob in the parser (Wasn't parsing last
5330         line) Restructured a bit of the dependency generator to fix a
5331         different obob bug.
5333 2001-12-13 03:43  robert
5335         * MANIFEST, docs/opcodes.pod: remove old docs/opcodes.pod
5337 2001-12-13 03:03  jgoff
5339         * make.pl: Added make.pl
5341 2001-12-13 02:44  jgoff
5343         * languages/miniperl/Miniperl.pm: Nearly-complete 'make'
5344         replacement in perl.  Non-compliant bits - Takes absolutely -NO-
5345         special flags...                     - Dies on undefined macros
5346         such as $(PDISASM) in current make                     - Dies on
5347         recursive macro expansions                       (Doesn't test for
5348         mutual or multipart loops)                     - In general it
5349         seems to be a little less lenient...  Missing bits - File
5350         mod/creation times aren't being looked at              - Actions
5351         aren't being taken              - The few funky variables ($@, $<)
5352         aren't being dealt with Bugs - Line numbers are slipping a bit.
5354 2001-12-13 02:29  jgoff
5356         * languages/miniperl/Miniperl/: Generator.pm, Parser.pm:
5357         Reconstructing files to make the parser flow a little better.
5359 2001-12-13 00:51  dan
5361         * resources.c: Be a bit less wasteful with resources that don't
5362         need to be aligned
5364 2001-12-12 18:22  dan
5366         * Makefile.in: D'oh! Fixed looping makefile bug.
5368         Courtesy of: "Jaen Saul" <jaen@saul.ee>
5370 2001-12-12 16:23  jgoff
5372         * languages/miniperl/t/001_basic/basic1.scheme: Bogus entry
5374 2001-12-12 16:22  jgoff
5376         * MANIFEST: Manifest additions for languages/miniperl
5378 2001-12-12 16:19  jgoff
5380         * languages/miniperl/t/001_basic/: basic.t, basic1.scheme: Basic
5381         tests. These are left over from the Scheme suite and shouldn't be
5382         used yet.
5384 2001-12-12 16:18  jgoff
5386         * languages/miniperl/: Miniperl/Generator.pm, Miniperl/Parser.pm,
5387         Miniperl/Test.pm, Miniperl/Tokenizer.pm, t/harness: Miniperl base
5388         modules. Miniperl/ is where the real work gets done.  t/ is largely
5389         vacant because it isn't ready to survive real tests yet.
5391 2001-12-12 16:17  jgoff
5393         * languages/miniperl/: Makefile, Miniperl.pm, foo.mpl, miniperlc,
5394         mpc: Final go-round, hopefully.
5396         languages/miniperl/Makefile - Used basically to run tests, as there
5397         is nothing                               here that needs to be
5398         dynamically built.  languages/miniperl/Miniperl.pm - Stub module
5399         that calls the real Miniperl/ mods languages/miniperl/foo.mpl -
5400         Sample miniperl file.  languages/miniperl/miniperlc - Miniperl
5401         compiler stub
5403 2001-12-12 16:09  dan
5405         * Configure.pl: Setting a variable with the make command name is
5406         useful.
5408 2001-12-12 15:07  simon
5410         * Makefile.in, languages/jako/Makefile, languages/scheme/Makefile:
5411         Recursive make considered "ow, don't do that".
5413 2001-12-12 14:45  dan
5415         * Makefile.in: Makefile had some non-portable code. (Okay, a lot of
5416         non-portable code) Killing builds on Win32 native. Small patch
5417         applied which hopefully fixes it.
5419 2001-12-12 06:12  ajgough
5421         * classes/Makefile.in: perl is $(PERL), you know it makes sense.
5423 2001-12-12 06:08  ajgough
5425         * Makefile.in: perl is $(PERL).
5427 2001-12-12 06:00  ajgough
5429         * t/op/integer.t: Added tests to integer.t so that all permutations
5430         of arguments are actually called at some point.
5432 2001-12-12 05:18  ajgough
5434         * t/op/time.t: I can't sleep, but I don't see why parrot shouldn't.
5435          Tests for sleep i|ic
5437 2001-12-12 05:09  ajgough
5439         * t/op/stacks.t: Added pushp and popp register stack tests.
5441 2001-12-12 04:51  ajgough
5443         * t/op/stacks.t: Added tests for save and restore, for all register
5444         types.  Let there be Haiku.
5446 2001-12-12 04:27  ajgough
5448         * t/op/basic.t: bsr_i test.  You know you want it.
5450 2001-12-12 02:55  ajgough
5452         * MANIFEST: Added hints/os2.pl to MANIFEST.
5454 2001-12-12 02:52  jgoff
5456         * core.ops, key.c: Final checkin... These are actually the correct
5457         copies.
5459 2001-12-12 02:12  jgoff
5461         * include/parrot/key.h: key.c - Removed a few functions,
5462         generalized set_element_value and element_value         to accept
5463         KEY_PAIRs from core.ops include/parrot/key.h - Modified header.
5464         core.ops - Modified to accept the new return style.
5466         This is a prelude to adding virtual-table methods to allow hashing
5467         &c. Expect at least one or two more redesigns before this settles
5468         down. However, it still passes the original tests.
5470 2001-12-11 13:35  gregor
5472         * runops_cores.c:
5473         Fixed a typo.
5475 2001-12-11 12:03  gregor
5477         * .cvsignore:
5478         Don't ignore test_prog, but do ignore parrot.
5480 2001-12-11 12:03  gregor
5482         * classes/.cvsignore:
5483         Ignore the generated file default.h
5485 2001-12-11 04:07  jgoff
5487         * key.c: Key source
5489 2001-12-11 04:05  jgoff
5491         * include/parrot/key.h, t/op/key.t: Needed header file, new test
5493 2001-12-11 04:00  jgoff
5495         * core.ops: Added new key aggregate operations to core ops.
5497 2001-12-11 04:00  jgoff
5499         * include/parrot/parrot.h: Added key.h to header list
5501 2001-12-11 03:59  jgoff
5503         * MANIFEST: Added key.c, include/parrot/key.h, t/op/key.t
5505 2001-12-11 03:58  jgoff
5507         * Makefile.in: Added implementation of key aggregates.
5509 2001-12-08 23:07  simon
5511         * README:
5512         README good to go.
5514 2001-12-08 23:05  simon
5516         * Configure.pl, Makefile.in, README, Parrot/Test.pm,
5517         docs/intro.pod, languages/jako/Makefile, languages/scheme/Makefile,
5518         languages/scheme/Scheme/Test.pm, lib/Parrot/Test.pm:
5519         test_prog? What is test_prog?
5521 2001-12-08 22:57  simon
5523         * ChangeLog:
5525         Oops, the changelog commit was on *this* machine.
5527 2001-12-08 22:56  simon
5529         * NEWS:
5530         Updates to NEWS and ChangeLog pre-release.
5532 2001-12-08 22:07  simon
5534         * MANIFEST, Makefile.in, classes/Makefile.in, classes/default.pmc,
5535         classes/perlnum.pmc, classes/pmc2c.pl:
5536         Add "default" PMC vtable so you can inherit implied stuff.
5538 2001-12-08 21:24  simon
5540         * Parrot/PackFile.pm, docs/parrot.pod, docs/parrotbyte.pod,
5541         docs/vtables.pod, lib/Parrot/PackFile.pm:
5542         Getting the documentation up to scratch.
5544 2001-12-08 21:21  simon
5546         * classes/pmc2c.pl:
5547         Allow inheriting from default class.
5549 2001-12-07 20:43  gregor
5551         * examples/assembly/queens.pasm:
5552         Regenerated the file with the latest jakoc.
5554 2001-12-07 20:29  simon
5556         * core.ops, t/op/stacks.t:
5557         Rename "rotate" to "rotate_up".
5559 2001-12-07 20:15  simon
5561         * t/op/stacks.t:
5562         Some tests for rotate.
5564 2001-12-07 00:55  gregor
5566         * core.ops:
5567         Cast the result of the pointer arithmetic, since without the cast
5568         there are warnings with some compilers, and without the parens
5569         around the pointer arithmetic, precedence breaks the meaning and
5570         causes crashes.
5572 2001-12-06 23:37  simon
5574         * core.ops:
5575         Temporary. I prefer compiler warnings to segfaults, thanks.
5577 2001-12-06 23:34  simon
5579         * runops_cores.c:
5580         Make "trace" work again.
5582 2001-12-06 21:23  dan
5584         * Parrot/Test.pm, lib/Parrot/Test.pm: Undo twiddles to test.pm
5586 2001-12-06 21:22  dan
5588         * core.ops, packfile.c, Parrot/Test.pm, include/parrot/stacks.h,
5589         lib/Parrot/Test.pm: Fix up source issues that made Dec C unhappy
5591 2001-12-06 19:22  simon
5593         * core.ops:
5594         Yet another "How the *%$! did that compile?" moment.
5596 2001-12-06 18:28  dan
5598         * hints/vms.pl: Fix to build, with a HERE logical required
5600 2001-12-06 17:48  dan
5602         * core.ops, interpreter.c, pbc2c.pl, pdump.c, test_main.c,
5603         docs/parrot_assembly.pod, include/parrot/interpreter.h: Sensible
5604         changes to the interpreter--flags are now part of the interp
5605         structure.
5607         Courtesy of "Melvin Smith" <mrjoltcola@mindspring.com>
5609 2001-12-06 14:02  gregor
5611         * docs/intro.pod:
5612         s/little_languages/languages/ in Jako section.
5614 2001-12-06 13:15  simon
5616         * Makefile.in:
5617         Ensure the documentation gets made.
5619 2001-12-06 13:12  simon
5621         * MANIFEST, docs/intro.pod:
5622         Documentation! Added the "Some Assembly Required" article with
5623         minor updates.
5625 2001-12-06 00:39  simon
5627         * core.ops:
5628         More "eq" support.
5630         Courtesy of: Nguon Hao Ching <hao@netaxs.com>
5632 2001-12-06 00:37  simon
5634         * test_main.c:
5635         Add the "-d" debug flag. Doesn't actually *do* anything yet.
5637         Courtesy of: Melvin <mrjoltcola@mindspring.com>
5639 2001-12-06 00:11  tom
5641         * string.c, chartypes/unicode.c, chartypes/usascii.c,
5642         encodings/singlebyte.c, encodings/utf16.c, encodings/utf8.c,
5643         include/parrot/chartype.h, include/parrot/encoding.h,
5644         include/parrot/parrot.h: Moved string to number conversion code out
5645         of the encoding layer and into the main string layer as neither the
5646         encoding layer nor the character type layer knows enough on it's
5647         own to do the conversion correctly.
5649 2001-12-05 23:12  tom
5651         * Makefile.in: Rebuild the classes directory if any of the object
5652         files for the classes are missing rather than only when perlint.o
5653         is missing.
5655 2001-12-05 19:43  gregor
5657         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm:
5658           * Reworked the constantize_string() stuff a little bit because it
5659         was
5660             puking on things like "\033[H\033[2J\0" (which occurs in the
5661             languages/jako/mandelzoom.jako example).
5663 2001-12-05 19:39  gregor
5665         * languages/jako/: Makefile, mandelzoom.jako:
5666         Added 'mandelzoom' example.
5668 2001-12-05 19:38  gregor
5670         * languages/jako/jakoc:
5671           * Added sleep()
5673           * Changed some instances of die() to confess()
5675 2001-12-05 18:34  gregor
5677         * t/: op/pmc.t, pmc/pmc.t:
5678         s/sting->int/string->int/
5680 2001-12-05 18:08  gregor
5682         * Parrot/.cvsignore:
5683         Ignore PMC.pm
5685 2001-12-05 18:05  gregor
5687         * classes/.cvsignore:
5688         Ignore the generated files.
5690 2001-12-05 17:19  gregor
5692         * pbc2c.pl:
5693           * Reverted recent changes, since they broke the script. Real fix
5694         coming
5695             later.
5697 2001-12-05 17:03  simon
5699         * classes/Makefile.in:
5700         Remember: change Makefile.in, not Makefile. D'oh.
5702 2001-12-05 17:02  simon
5704         * Makefile.in:
5705         Ensure PMC.pm gets remade.
5707 2001-12-05 16:58  simon
5709         * MANIFEST, Makefile.in, classes/Makefile.in,
5710         classes/perlundef.pmc, include/parrot/pmc.h:
5711         Add perlundef class.
5713 2001-12-05 16:45  simon
5715         * core.ops:
5716         Document "new P0, foo"
5718 2001-12-05 16:43  simon
5720         * MANIFEST, Makefile.in, pbc2c.pl, pmc_pm.pl, Parrot/Assembler.pm,
5721         lib/Parrot/Assembler.pm, t/op/pmc.t, t/pmc/pmc.t:
5722         Allow assembler to know about PMC class names.
5724 2001-12-04 13:39  ajgough
5726         * MANIFEST: Added t/op/pmc.t to MANIFEST.
5728 2001-12-04 05:02  ajgough
5730         * classes/perlnum.pmc: Picky compiler pointed out probable thinko
5731         in perlnum.c
5733 2001-12-04 04:24  ajgough
5735         * encodings/singlebyte.c, t/op/pmc.t, t/pmc/pmc.t: A much less
5736         broken form of strtod and appropriate tests.  Does not yet check
5737         for overflow.
5739 2001-12-04 01:31  ajgough
5741         * string.c, encodings/singlebyte.c, encodings/utf16.c,
5742         encodings/utf8.c, include/parrot/encoding.h: Added length parameter
5743         to extract_num and extract_int string vtables, without this it
5744         would be impossible to have strings with nulls in while still
5745         knowing where they ended.
5747 2001-12-03 18:40  ajgough
5749         * string.c, classes/perlstring.pmc, encodings/singlebyte.c,
5750         encodings/utf16.c, encodings/utf8.c, include/parrot/encoding.h,
5751         include/parrot/string.h: Moved pmc string to number conversion into
5752         the string encoding tables.
5754 2001-12-03 00:21  ajgough
5756         * core.ops, t/op/pmc.t, t/pmc/pmc.t: Added set i, p and some tests
5757         for p-> integer.
5759 2001-12-02 23:09  jgoff
5761         * classes/Makefile.in: Removed some redundant targets.
5763 2001-12-02 19:02  ajgough
5765         * t/: op/pmc.t, pmc/pmc.t: Modified all pmc tests to make use of fp
5766         equality macro rather than using perl to generate expected output,
5767         all tests now have <<OUTPUT.
5769 2001-12-02 17:44  ajgough
5771         * t/op/trans.t: Upgraded fp_eq and fp_ne macros to be more useful
5772         for pmc.t as well.  Will probably move macros into another file at
5773         some point, although this might be best left until the tests are
5774         unperled.
5776 2001-12-02 06:16  jgoff
5778         * classes/pmc2c.pl: It wasn't properly setting the vtable index
5779         within Parrot_Perl{Class}_init.
5781 2001-12-02 06:09  jgoff
5783         * classes/Makefile.in: I seem to have removed *$(O) twice..
5785 2001-12-02 05:06  jgoff
5787         * Configure.pl, MANIFEST, Makefile.in: (Hopefully the last time...)
5788         Configure.pl - Removed '-I./include', added classes/Makefile
5789         generation MANIFEST     - Added classes/Makefile.in Makefile.in  -
5790         Removed old classes/* make stuff                Added target for
5791         classes/Makefile
5793 2001-12-02 04:48  jgoff
5795         * classes/Makefile.in: Going to be used shortly...
5797 2001-12-02 04:40  jgoff
5799         * docs/Makefile: Configure.pl - Added automatic makefile creation
5800         for docs/ and classes/                Removed '-I./include' because
5801         it was getting incorrectly                passed to classes/
5802         MANIFEST - added docs/Makefile.in, classes/Makefile.in Makefile.in
5803         - Removed classes/ build stuff, replaced with classes/Makefile.in
5804                     Added '-I./include' locally docs/Makefile - Should no
5805         longer be used, but I'm not brave enough to do a
5806         cvs delete.
5808 2001-12-02 01:21  ajgough
5810         * t/op/trans.t: Refactored trans math tests to have hard coded
5811         expected return values and be more ready to be unperled at some
5812         point in the future.  Added $fp_equality_macro which is a
5813         "nearly-equal-to" function.
5815 2001-12-02 01:18  ajgough
5817         * Makefile.in: Humph.  People really ought to use Makefile
5818         variables, s/perl/$(PERL)/ throughout.
5820 2001-12-01 18:15  jgoff
5822         * classes/: perlint.pmc, perlnum.pmc: Temporary patch until we
5823         figure out what to do vis-a-vis the lack of snprintf.
5825 2001-11-30 13:14  ajgough
5827         * t/op/: integer.t, number.t: Added tests for abs ops to number.t
5828         and integer.t
5830 2001-11-30 13:14  ajgough
5832         * core.ops: Added abs(i|n, i|ic|n|nc) ops to core.ops, using if <0
5833         -, else ... form.
5835 2001-11-30 10:36  simon
5837         * core.ops:
5838         Rewrite print_p to do the right thing.
5840 2001-11-30 06:21  jgoff
5842         * t/: op/pmc.t, pmc/pmc.t: New tests for integer/number/string
5843         concat,               integer/number/string math
5845 2001-11-30 06:20  jgoff
5847         * classes/: perlint.pmc, perlnum.pmc, perlstring.pmc:
5848         classes/perlint.pmc - Fixes and expanding for concat and math with
5849         strings classes/perlnum.pmc - Fixes and expanding for concat and
5850         math with strings classes/perlstring.pmc - Fixes and expanding for
5851         concat and math with strings
5853 2001-11-29 15:21  ajgough
5855         * hints/os2.pl: This is a hints file for os/2, I've set $c{perl} as
5856         $^X lies, which confused bash which make uses to run things when
5857         doing its stuff.
5859 2001-11-29 04:58  jgoff
5861         * classes/perlstring.pmc: Removed C++-style comments for good
5862         measure
5864 2001-11-29 04:51  jgoff
5866         * t/: op/pmc.t, pmc/pmc.t: New tests for PMC integers
5868 2001-11-29 04:28  jgoff
5870         * global_setup.c: Initialize PMC strings
5872 2001-11-29 04:25  jgoff
5874         * core.ops: Added set_p_s and set_p_sc, modified print_p to handle
5875         string PMCs.
5877 2001-11-29 04:24  jgoff
5879         * classes/: perlint.pmc, perlnum.pmc, perlstring.pmc: Changed PMC
5880         files to properly upgrade int to num, do calculations.  Also added
5881         basic string operations. Currently errors out on anything but set
5882         operations, but this will be fixed soon.
5884 2001-11-29 04:22  jgoff
5886         * Makefile.in: PMC .c files weren't getting cleaned out.
5888 2001-11-28 17:00  simon
5890         * t/harness:
5892         Make csh-glob happy.
5894         Courtesy of: Andy Dougherty: <doughera@lafayette.edu>
5896 2001-11-28 16:40  simon
5898         * classes/perlnum.pmc:
5900         De-C++
5902 2001-11-28 15:22  simon
5904         * string.c:
5906         Fixes Alex's string concat worry.
5908 2001-11-28 14:27  ajgough
5910         * t/op/string.t: test "null onto null" incorrectly passing as it
5911         produced no output.  Output provided.
5913 2001-11-28 11:14  simon
5915         * include/parrot/pmc.h:
5917         Placate AIX.
5919 2001-11-26 21:03  dan
5921         * MANIFEST, hints/darwin.pl: Tweaks to build on Mac OS X 10.1
5923 2001-11-26 17:29  simon
5925         * classes/perlint.pmc:
5927         Various subtle but non-showstopper bugs.
5929 2001-11-26 11:23  simon
5931         * classes/pmc2c.pl:
5933         Replace dependency on Text::Balanced
5935         Courtesy of: Bart Lateur <bart.lateur@pandora.be>
5937 2001-11-26 05:22  jgoff
5939         * global_setup.c: Last file that should need to be committed. I
5940         swear.
5942 2001-11-26 05:09  jgoff
5944         * core.ops: Let's try this again... Changes to core.ops required
5946 2001-11-26 04:58  jgoff
5948         * classes/perlint.pmc, classes/perlnum.pmc, t/op/pmc.t,
5949         t/pmc/pmc.t: Makefile.in - Added missing cleanup line for perl*.c
5950         core.ops - Added set(p,n|nc), modified print(p) global_setup.c -
5951         Uncommented PerlNum_init classes/perlint.pmc - Added set_number
5952         functions classes/perlnum.pmc - Set up basic number functions
5953         t/op/pmc.t - Added tests for set P0.<number> and {add,mul,sub,div}
5954         tests against numbers and numbers+integers
5956 2001-11-25 13:18  simon
5958         * Makefile.in:
5959         Windows XP make doesn't like $<
5961 2001-11-25 12:56  simon
5963         * MANIFEST, Makefile.in, classes/genclass.pl, classes/perlint.c,
5964         classes/perlint.pmc, classes/perlnum.c, classes/perlnum.pmc,
5965         classes/perlstring.c, classes/perlstring.pmc, classes/pmc2c.pl,
5966         examples/assembly/mops_p.pasm:
5967         PMC preprocessor.
5969         Courtesy of: Angel Faus <afaus@corp.vlex.com>
5971         I (Simon) also added a couple more integer methods, but no tests
5972         since I'm a Bad Person.
5974 2001-11-25 08:40  brentdax
5976         * ops2c.pl, Parrot/Op.pm, Parrot/OpsFile.pm, lib/Parrot/Op.pm,
5977         lib/Parrot/OpsFile.pm: Allow _ in op names
5979 2001-11-25 05:54  jgoff
5981         * classes/perlint.c, t/op/pmc.t, t/pmc/pmc.t: classes/perlint.c -
5982         Added basic math ops t/op/pmc.t - Added tests of basic math ops
5984 2001-11-23 18:27  simon
5986         * core.ops, classes/perlint.c, examples/assembly/mops_p.pasm:
5987         Add everything you need to make MOPS use PMCs.
5989 2001-11-23 18:06  simon
5991         * core.ops:
5992         Eh, you'll need this for rewriting mops.pasm.
5994 2001-11-23 17:55  simon
5996         * core.ops, classes/perlint.c, include/parrot/pmc.h, t/op/pmc.t,
5997         t/pmc/pmc.t:
5998         More work on integer PMCs.
6000 2001-11-23 17:29  simon
6002         * Makefile.in:
6003         Surprise! Whitespace! HLAGHLAGHLAGH
6005 2001-11-23 17:28  simon
6007         * Makefile.in, ops2c.pl, ops2pm.pl:
6008         Add vtables.ops to the core
6010         Courtesy of: Jeff Goff <jgoff@speakeasy.net>
6012 2001-11-22 18:39  simon
6014         * core.ops, global_setup.c, docs/parrot_assembly.pod, t/op/pmc.t,
6015         t/pmc/pmc.t:
6016         We can now create PMCs.
6018 2001-11-21 05:49  jgoff
6020         * Makefile.in: Makefile cleans up *.pasm *.pbc *.out
6022 2001-11-20 16:00  simon
6024         * docs/vtables.pod, include/parrot/pmc.h:
6025         Reorder PMC flags so there's a fixed number of user-defined flags.
6027         Courtesy of: Dave Mitchell <davem@fdgroup.co.uk>
6029 2001-11-19 03:39  jgoff
6031         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm, t/op/basic.t:
6032         Parrot/Assembler.pm - Allow "print 'foo'", and properly escape
6033         nested quotes.  t/op/basic.t - Add tests for single-quoted strings,
6034         escaped quotes, and proper                handling of newlines.
6036 2001-11-16 22:03  simon
6038         * classes/perlint.c:
6039         More work on the Perl Integer class. More needed, though.
6041 2001-11-16 21:57  simon
6043         * pmc.c, vtable.tbl, classes/genclass.pl, classes/perlint.c:
6044         Rename ->new to ->init, and rework pmc.c:pmc_new to fiddle it.
6046 2001-11-16 20:49  simon
6048         * interpreter.c, runops_cores.c, trace.c,
6049         include/parrot/runops_cores.h:
6050         Kill superfluous runops cores.
6052 2001-11-16 17:50  simon
6054         * MANIFEST, Makefile.in, classes/intclass.c, classes/perlint.c,
6055         classes/perlnum.c, classes/perlstring.c, classes/scalarclass.c,
6056         include/parrot/parrot.h, include/parrot/pmc.h:
6057         Skeleton for Perl scalar types, done right.
6059 2001-11-16 16:15  simon
6061         * classes/genclass.pl:
6062         This tidies up genclass to deal with the new-style multimethods.
6064 2001-11-16 15:29  simon
6066         * Makefile.in, make_vtable_ops.pl, vtable.tbl, Parrot/Vtable.pm,
6067         lib/Parrot/Vtable.pm, include/parrot/parrot.h:
6068         Rework multimethods to be *true* multimethods - that is, have
6069         different types.
6071 2001-11-15 22:29  simon
6073         * MANIFEST, Makefile.in, pmc.c:
6074         pmc.c linkage and support. Oh, and making it compile.
6076 2001-11-15 22:26  dan
6078         * t/op/interp.t: Forgot to tell CVS about the test...
6080 2001-11-15 22:10  dan
6082         * MANIFEST, Types_pm.in, core.ops, vtable_h.pl,
6083         docs/parrot_assembly.pod, include/parrot/string.h: Added in support
6084         for PMC registers for the interpreter.
6086         Added in the docs for the runinterp opcode.
6088         Added in code for both the newinterp and runinterp opcodes, so we
6089         can now create new interpreters from within parrot and have them do
6090         things. (Though we can't pass data back and forth. Yet)
6092 2001-11-15 21:24  simon
6094         * vtable.tbl, classes/scalarclass.c, docs/vtables.pod:
6095         More documentation, and other changes as discussed with Dan.
6097 2001-11-15 19:51  simon
6099         * classes/scalarclass.c:
6100         De-cut-and-pasto.
6102 2001-11-15 19:50  simon
6104         * classes/scalarclass.c:
6105         A little code tidiness.
6107 2001-11-15 19:33  simon
6109         * include/parrot/pmc.h:
6110         Missed this in the previous commit - un-constantize the base for
6111         user-defined PMC flags.
6113 2001-11-15 19:28  simon
6115         * classes/scalarclass.c:
6116         Hey look, sanity.
6118 2001-11-15 17:09  simon
6120         * classes/scalarclass.c:
6121         It seems I have completely forgotten how to write C.
6123 2001-11-15 16:53  simon
6125         * docs/vtables.pod:
6126         Start of the PMC classes documentation.
6128 2001-11-15 14:46  simon
6130         * classes/scalarclass.c:
6131         Changing to use a Perl-style struct instead of the union cache.
6133 2001-11-13 23:56  tom
6135         * string.c: Removed leading _ from string_index as function names
6136         starting with _ are reserved to implementors by the C standard.
6138         Also fixed string_index to use the encoding routines instead of
6139         assuming a single byte encoding.
6141 2001-11-13 12:59  jgoff
6143         * string.c: Patched string_concat to accept null strings.  That
6144         test was failing. Nothing to do with ord().
6146 2001-11-13 12:43  jgoff
6148         * string.c: string_ord function, string_concat fixes
6150 2001-11-13 04:52  jgoff
6152         * core.ops: Added ord to core.ops
6154 2001-11-13 04:35  jgoff
6156         * docs/strings.pod, include/parrot/exceptions.h,
6157         include/parrot/string.h, t/op/string.t: core.ops - Added ord
6158         operator, documentation string.c - Added string_ord, _string_index
6159         (_string_index is a static helper)              Patched
6160         string_concat to handle null strings properly.  docs/strings.pod -
6161         Description of string_ord include/parrot/exceptions.h - Added
6162         ORD_OUT_OF_STRING exception include/parrot/string.h - Added
6163         string_ord() t/op/string.t - Added full set of test for
6164         ord_i_(s|sc)(_(i|ic))?
6166         string.c contains a bit of documentation explaining the logic
6167         behind _string_index, primarily having to do with multiple encoding
6168         formats.
6170 2001-11-12 22:30  simon
6172         * t/op/macro.t:
6173         Count 'em.
6175 2001-11-12 22:28  simon
6177         * Makefile.in:
6178         Add a rule to compile "platform"
6180 2001-11-12 22:26  simon
6182         * Makefile.in:
6183         Tidy up distclean target.
6185 2001-11-12 16:54  dan
6187         * MANIFEST, Parrot/Assembler.pm, lib/Parrot/Assembler.pm,
6188         t/op/macro.t: Fixes to the assembler's macro facility and a test
6190         Courtesy of: Jeff <jgoff@speakeasy.net>
6192 2001-11-12 16:50  dan
6194         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm: Allow input from
6195         stdin
6197         Courtesy of: Jeff <jgoff@speakeasy.net>
6199 2001-11-12 16:36  dan
6201         * Parrot/Test.pm, lib/Parrot/Test.pm: Fix to make test work on
6202         CygWin
6204         Courtesy of: Alex Gough <alexander.gough@st-hughs.oxford.ac.uk>
6206 2001-11-12 11:22  simon
6208         * examples/assembly/mops.pasm:
6210         Trivial tightening of mops loop.
6212 2001-11-07 23:57  ajgough
6214         * docs/tests.pod: This is a basic quide to writing tests with
6215         assembler.
6217 2001-11-07 22:29  dan
6219         * stacks.c: Added a little documentation on the cleanup parameter
6220         for an entry
6222 2001-11-07 14:43  dan
6224         * MANIFEST, platforms/generic.c, platforms/linux.c,
6225         platforms/linux.h: Portability patches.
6227         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
6229 2001-11-06 19:51  tom
6231         * Makefile.in: Clean up object files in the subdirectories as well
6232         as those in the top level directory.
6234         Enhanced version of patch from Daniel Grunblatt
6235         <daniel@grunblatt.com.ar>
6237 2001-11-06 16:14  dan
6239         * Configure.pl, MANIFEST, Makefile.in, core.ops,
6240         platforms/generic.c, platforms/generic.h: Made things a bit more
6241         platform-independent. Makefile still needs work to pick up changes
6242         to the platform-specific files.
6244 2001-11-05 21:32  dan
6246         * docs/parrot_assembly.pod: Added docs for the GC control ops
6248 2001-11-04 02:52  gregor
6250         * platforms/: win32.c, win32.h:
6251           * win32 dynamic loading functions.
6253         Courtesy of Jason Diamond <jason@injektilo.org>
6255 2001-11-04 00:04  brentdax
6257         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm: Assembler fixes:
6258         allows an absolute path to be used and gives a useful error message
6259         if the original source file can't be found
6261 2001-11-02 12:37  gregor
6263         * platforms/: linux.c, linux.h:
6264           * Beginning of dynamic loading support. Linux only for now.
6266 2001-11-02 12:13  gregor
6268         * MANIFEST, time.c, include/parrot/time.h:
6269           * Removed time.[hc], since they have been superseded by the new
6270         platform
6271             stuff.
6273 2001-11-02 12:11  gregor
6275         * Configure.pl, Makefile.in, core.ops, vtable.tbl,
6276         classes/intclass.c, classes/scalarclass.c, hints/mswin32.pl,
6277         include/parrot/parrot.h, platforms/linux.c, platforms/linux.h,
6278         platforms/win32.c, platforms/win32.h:
6279         Patch from Jason Diamond to make win32 platform stuff work:
6281         * Modified Configure.pl, mswin32.pl, and Makefile.in so that the
6282         platform specific files in the platforms directory gets copied to
6283         the correct directories. The Makefile will re-copy the platform.h
6284         and .c files if the original is modified.
6286         * #include platform.h in parrot.h instead of time.h.
6288         * Removed time.h and time.obj from the Makefile. time.h and time.c
6289         aren't being used anymore since that code was moved to linux.c and
6290         win32.c.
6292         * Renamed the BOOL typedef in parrot.h to BOOLVAL (inspired by
6293         INTVAL and FLOATVAL). This was conflicting with the BOOL typedef in
6294         windows.h. This required updating several files besides parrot.h.
6296         * Added a DEFAULT_OPEN_MODE to linux.h and win32.h and used that
6297         instead of the missing identifiers (on Windows) in core.ops in the
6298         calls to open.
6300         * Added Parrot_sleep and Parrot_setenv to both the linux and win32
6301         platform files and called those from core.ops. The Linux code for
6302         these functions came from core.ops so they should hopefully work.
6304         Courtesy of Jason Diamond <jason@injektilo.org>
6306 2001-11-02 06:43  brentdax
6308         * Makefile.in, hints/mswin32.pl: Fix classes/intclass.obj building
6309         for Win32 (courtesy of Jason Diamond <jason@injektilo.org>)
6311 2001-11-02 02:26  gregor
6313         * .cvsignore, MANIFEST, include/parrot/.cvsignore,
6314         platforms/linux.c, platforms/linux.h, platforms/win32.c,
6315         platforms/win32.h:
6316           * Beginnings of platform support files in platform/*.[hc]
6318 2001-11-01 23:37  tom
6320         * classes/intclass.c: Added missing *'s to STRING arguments and
6321         return values to avoid compiler warnings.
6323 2001-11-01 22:21  gregor
6325         * MANIFEST, Makefile.in, core.ops, obscure.ops, time.c,
6326         include/parrot/parrot.h, include/parrot/time.h:
6327         Initial "fix" of time(n) op for Win32:
6329           * Initial Win32 code Courtesy of Richard J Cox <rjcox@cix.co.uk>
6331           * time.c and include/parrot/time.h
6333             First attempt at getting this working across platforms. The
6334             macro WIN32 being tested might not be right.
6336           * New functions Parrot_intval_time() and Parrot_floatval_time()
6337             wrap the appropriate functionality depending upon platform.
6338             Changed core.ops to call these.
6340         Added obscure.ops with obscure transcendental ops.
6342         Added simple file I/O ops (close, open, read, write):
6344           * Initial versions Courtesy of Jeff <jgoff@speakeasy.net>
6346           * I changed some arg ordering stuff.
6348           * I added read/write of INTVALs and FLOATVALs.
6350         Added environment variable ops (getenv, setenv)
6352         Added system error ops (err(i) and err(s) for accessing errno and
6353         strerr().
6355         Moved print ops in with other "temporary" developer ops, since
6356         they'll move to a devel.ops or temp.ops oplib once we have oplibs.
6358 2001-10-31 22:51  tom
6360         * MANIFEST, Makefile.in, chartype.c, encoding.c, global_setup.c,
6361         packfile.c, string.c, strnative.c, strutf16.c, strutf32.c,
6362         strutf8.c, transcode.c, chartypes/unicode.c, chartypes/usascii.c,
6363         encodings/singlebyte.c, encodings/utf16.c, encodings/utf32.c,
6364         encodings/utf8.c, include/parrot/chartype.h,
6365         include/parrot/encoding.h, include/parrot/exceptions.h,
6366         include/parrot/parrot.h, include/parrot/string.h,
6367         include/parrot/strnative.h, include/parrot/strutf16.h,
6368         include/parrot/strutf32.h, include/parrot/strutf8.h,
6369         include/parrot/transcode.h: Reworked the string code in line with
6370         Dan's latest design that separates character sets from encodings.
6372 2001-10-31 19:53  dan
6374         * docs/parrot_assembly.pod: Finished I/O section of docs
6376 2001-10-31 16:51  dan
6378         * core.ops, docs/parrot_assembly.pod, include/parrot/parrot.h:
6379         Moved includes out of core.ops and into parrot.h where they belong
6380         (suitably guarded with #ifdefs). Also some updates to
6381         parrot_assembly.pod
6383 2001-10-30 21:43  dan
6385         * core.ops, stacks.c, docs/parrot_assembly.pod,
6386         include/parrot/stacks.h: Added entrytype opcode to fetch the type
6387         of the entry on the stack
6389 2001-10-29 18:30  dan
6391         * stacks.c: You can turn off stack entry type validation on pop by
6392         passing in a type of 0 now. (For those cases where you just want to
6393         throw the darned thing away)
6395 2001-10-29 14:37  gregor
6397         * core.ops, languages/jako/jakoc:
6398           * New variants of the save ops to save constants on the stack.
6399         This is
6400             useful for saving zero arg and result counts on the stack, for
6401         example.
6403           * Modified jakoc to to adapt to the newly announced calling
6404         conventions.
6405             Even though Jako source code appears to show subroutines with
6406         fixed
6407             numbers of arguments and results, they are implemented with the
6408             variable count calling convention. Future modifications will be
6409         needed
6410             to ensure that an exception is raised if the stack frame is of
6411         the
6412             wrong size (or, at least that we pop the complete frame off).
6413         We'll
6414             also have to make more changes to support the true
6415         fixed-arg-count
6416             and fixed-result-count parts of the calling convention spec.
6418 2001-10-28 16:53  simon
6420         * MANIFEST, stacks.c, classes/scalarclass.c,
6421         include/parrot/stacks.h:
6422         Unbelievably bad errors of mine, plus a type incompatibility of
6423         Dan's.
6425 2001-10-28 08:30  simon
6427         * classes/scalarclass.c:
6428         Beginning of a scalar class.
6430 2001-10-28 08:29  simon
6432         * make_vtable_ops.pl, vtable.tbl, Parrot/Vtable.pm,
6433         lib/Parrot/Vtable.pm, classes/genclass.pl, classes/intclass.c,
6434         include/parrot/pmc.h:
6435         This fixes the problem with vtables and pointer arithmetic.
6437 2001-10-26 19:58  dan
6439         * core.ops, interpreter.c, stacks.c, include/parrot/interpreter.h,
6440         include/parrot/stacks.h: Split the generic stack into a user push
6441         stack and a control stack
6443 2001-10-26 02:59  bdwheele
6445         * Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm: [no log message]
6447 2001-10-24 20:27  dan
6449         * languages/scheme/: Makefile, Scheme.pm, schemec,
6450         Scheme/Generator.pm, Scheme/Parser.pm, Scheme/Test.pm,
6451         Scheme/Tokenizer.pm, t/harness, t/arith/basic.t, t/arith/logic.t,
6452         t/arith/nested.t, t/io/basic.t, t/logic/basic.t: Added the mini
6453         Scheme compiler
6455 2001-10-24 20:23  dan
6457         * MANIFEST, pdump.c, docs/parrot_assembly.pod: Update for
6458         interpreter needs in pdump.c. Added scheme bits to manifest
6460 2001-10-24 16:43  gregor
6462         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm:
6463           * Make the assembler handle octal character code escapes in
6464         string
6465             constants.
6467 2001-10-24 15:56  dan
6469         * MANIFEST, examples/assembly/life.pasm: Added an example in to
6470         play the game of life
6472 2001-10-24 15:54  dan
6474         * core.ops: Added sleep. We'll need to override this to do events
6475         properly anyway, so...
6477 2001-10-24 14:03  gregor
6479         * Makefile.in, pbc2c.pl, pdump.c:
6480           * Adapt pdump.c and pbc2c.pl to the new requirement to pass
6481         interpreter
6482             pointer into string functions.
6484         Courtesy of: Ryan O'Neil <talisman580@yahoo.com>
6486 2001-10-23 20:09  gregor
6488         * languages/jako/jakoc:
6489           * Terminological refinement in regexp capture comment.
6491 2001-10-23 15:23  simon
6493         * classes/genclass.pl:
6494         Use a saner ANSI C construct to make MIPSPro happy.
6496         Courtesy of: Alex Gough <alexander.gough@st-hughs.oxford.ac.uk>
6498 2001-10-23 00:34  tom
6500         * core.ops, string.c, strnative.c, strutf16.c, strutf32.c,
6501         strutf8.c, include/parrot/string.h: Make sure the interpreter
6502         structure is passed to the transcoder as necessary, including
6503         passing it to string_compare().
6505 2001-10-23 00:32  tom
6507         * Makefile.in: Make pdump build again by including resources.o in
6508         the link.
6510 2001-10-22 22:43  dan
6512         * core.ops, packfile.c, string.c, strnative.c, strutf16.c,
6513         strutf32.c, strutf8.c, test_main.c, transcode.c,
6514         include/parrot/packfile.h, include/parrot/parrot.h,
6515         include/parrot/resources.h, include/parrot/string.h,
6516         include/parrot/transcode.h: Everything now uses the allocators and
6517         deallocators in resources.c.
6519         Unfortunately we lost standalone string-test mode, but I can cope
6520         with that.
6522         Please note that until we have a real allocation/deallocation/GC
6523         system, this'll leak. A *lot*.
6525 2001-10-22 20:27  dan
6527         * MANIFEST, Makefile.in, pmc.c, resources.c,
6528         include/parrot/resources.h: First cut to handle arena allocation of
6529         PMC headers. (Amongst other things)
6531 2001-10-22 19:02  dan
6533         * Configure.pl, config_h.in, register.c, include/parrot/register.h:
6534         Now each register type has its own mask macro, which is the right
6535         thing to do.
6537         Patch courtesy of Jason Gloudon <perl@gloudon.com>
6539 2001-10-21 23:40  tom
6541         * stacks.c, t/op/stacks.t: Fix bug in handling of rollover to a new
6542         stack chunk and add a test to test this rollover in future.
6544         Courtesy of Jason Gloudon <perl@gloudon.com>.
6546 2001-10-21 19:14  dan
6548         * include/parrot/string.h: Changed string 'unused' field to the
6549         language field.
6551 2001-10-21 18:18  gregor
6553         * languages/jako/: Makefile, mops.jako:
6554           * Makefile: 'clean' target removes .list files, too. And, it does
6555         rm -f
6556             with wildcards rather than listing things explicitly.
6558           * mops.jako actually prints out the
6559         millions-of-operations-per-second
6560             (mops) value instead of just the operations-per-second value.
6562 2001-10-21 18:03  simon
6564         * classes/intclass.o:
6565         *smack*! WRONG!
6567 2001-10-21 17:47  simon
6569         * MANIFEST, Makefile.in, make_vtable_ops.pl, pmc.c, vtable_h.pl,
6570         Parrot/Vtable.pm, classes/genclass.pl, classes/intclass.c,
6571         classes/intclass.o, include/parrot/parrot.h, include/parrot/pmc.h,
6572         lib/Parrot/Vtable.pm:
6573         Initial work on PMCs. Explanation to follow
6575 2001-10-21 15:20  gregor
6577         * examples/assembly/queens.pasm:
6578           * Modernize the calling conventions in queens.pasm. It was using
6579         swap,
6580             which now must be rotate. Also, changed to use return values on
6581         the
6582             stack instead of in I0.
6584 2001-10-19 18:14  gregor
6586         * core.ops, stacks.c, include/parrot/stacks.h,
6587         languages/jako/jakoc:
6588         Per Dan's request, replacing 'swap' op by 'rotate'.
6590           * core.ops: Replaced 'swap()' by 'rotate(i|ic)'.
6592           * stacks.c and stacks.h: Removed swap-related functions from my
6593             prior commit, replacing them with stack_depth(), stack_entry()
6594             and rotate_entries().
6596             NOTE: The stack_depth() and rotate_entries() routines could
6597             be made more efficient through the caching of the sum of chunk
6598             'used' members from lower chunks in a field in the upper
6599             chunks. Also, if the interpreter's stack_base was changed to
6600             hold the pointer to the *top* chunk (since we usually come
6601             at the stack from the top down) instead of the *bottom*
6602             chunk. The code here at least works, and we can decide about
6603             bigger changes separately.
6605             For now, rotate only handles rotates in one direction and
6606             of magnituded one. A fully general rotate would do handle
6607             rotates in both directions and of arbitrary amounts. Again,
6608             this implementation is sufficient for current applications,
6609             and a feature-complete version can be developed if this turns
6610             out to be otherwise the right type of implementation.
6612             This change includes a new exception for ERROR_STACK_SHALLOW,
6613             meaning "not-empty-yet-not-deep-enough-for-what-you-asked".
6615           * jakoc: Changed the calling convention to use rotate instead
6616             of swap (of course). Also changed the convention for return
6617             value passing to use the stack as well.
6619 2001-10-19 13:36  gregor
6621         * MANIFEST, core.ops, disassemble.pl, stacks.c,
6622         examples/assembly/queens.pasm, include/parrot/stacks.h,
6623         languages/jako/.cvsignore, languages/jako/Makefile,
6624         languages/jako/bench.jako, languages/jako/euclid.jako,
6625         languages/jako/fact.jako, languages/jako/jakoc,
6626         languages/jako/mandelbrot.jako, languages/jako/mops.jako,
6627         languages/jako/primes.jako, languages/jako/queens.jako,
6628         languages/jako/sub.jako:
6629           * New stack functions push_entry(), pop_entry() and swap_entry().
6630             The first two exist for the support of the last one. These
6631             functions don't care what is in the stack entries. These exist
6632             to support the new 'swap' op (see next bullet).
6634           * New op 'swap' for swapping the top two elements on the stack.
6635             This is necessary for passing arguments to functions, since
6636             the return address will be on top of any arguments that have
6637             been pushed on the stack. This way, you can use a (swap, pop)
6638             pair to retrieve each argument (for subroutine linkage).
6640           * Disassembler now prints numbers in decimal by default, with
6641             a new '-x' flag to turn on hexadecimal display. Since other
6642             members of the Parrot Tool Set use decimal by default, this
6643             makes it easier to compare output from the various tools.
6645           * Jako compiler has more explanatory comments and the following
6646             new features:
6648               * Lexically scoped variables.
6650               * Subroutines that take arguments and return values:
6652                   sub int foo(int bar) {
6653                     if (bar == 1) {
6654                       return 42;
6655                     } else {
6656                       return 13;
6657                     }
6658                   }
6659               * ... if (...) and ... unless (...) statement modifiers
6660                 can be used on next, last and redo.
6662               * Bitwise and (&, &=) and or (|, |=) ops.
6664               * Type names are just 'int', 'num', 'str', and 'poly' now.
6665                 The old long names 'integer', 'number', 'string', and
6666                 'polytype' are no longer valid.
6668               * Integer variable assignments can now use 0b (binary),
6669                 0 (octal) and 0x (hexadecimal) radix prefixes on literals.
6671           * New Jako and Parrot assembly examples queens.{jako,pasm} for
6672             solving the eight-queens problem. The assembly example is a
6673             hand-modified version of the assembly code produced by the
6674             Jako compiler from queens.jako. A few unnecessary ops have
6675             been removed, lots of unnecessary labels have been removed,
6676             and all the Jako source code comments have been removed.
6678           * Makefile and .cvsignore in languages/jako modified so that
6679             the assembler produces listings when assembling the programs,
6680             yet the *.list files are ignored by CVS.
6682           * Made the default target in languages/jako/Makefile 'all'.
6684           * Modified some of the Jako examples to use some of the new
6685             features of Jako, such as subroutines and lexical variable
6686             scoping.
6688 2001-10-19 02:43  gregor
6690         * runops_cores.c, include/parrot/runops_cores.h:
6691         Bug fix (gcc doesn't complain, but MIPSpro does):
6693           * Added missing extern to runops_cores array declaration in
6694             include/parrot/runops_cores.h
6696           * Also added 'const' there and in runops_cores.c
6698 2001-10-18 15:18  gregor
6700         * .cvsignore, include/parrot/oplib/.cvsignore:
6701           * Ignore the vtable-related generated files.
6703 2001-10-18 15:14  gregor
6705         * core.ops:
6706           * left and right shifts now allow the 2nd argument to be a
6707         constant.
6709 2001-10-18 14:55  simon
6711         * make_vtable_ops.pl:
6712         This is C, not Perl. How on earth did that even compile?
6714 2001-10-18 14:54  simon
6716         * make_vtable_ops.pl:
6717         More vtable ops.
6719 2001-10-18 12:33  simon
6721         * Makefile.in, make_vtable_ops.pl, vtable.tbl:
6722         Initial stab at vtable opcode creation stuff.
6724 2001-10-18 02:15  gregor
6726         * MANIFEST, Makefile.in, interpreter.c, runops_cores.c, trace.c,
6727         include/parrot/interpreter.h, include/parrot/runops_cores.h,
6728         include/parrot/trace.h: Preparation for autogenerated runops cores:
6730           * Split tracing and runops core stuff out of interpreter.c into
6731             trace.c and runops_cores.c
6733           * Similar split of stuff from include/parrot/interpreter.h
6735           * Manifest and Makefile.in updates to make things still compile.
6737 2001-10-18 01:21  gregor
6739         * Makefile.in, ops2c.pl, ops2pm.pl, pbc2c.pl: Bug fixes:
6741           * Makefile.in: examples/assembly/mops.c depends on pbc2c.pl
6743           * Makefile.in: Parrot/OpLib/core.pm depends on ops2pm.pl
6745           * ops2c.pl: Added second arg to mkdir (perl 5.005_02 complains)
6747           * ops2pm.pl: Added second arg to mkdir (perl 5.005_02 complains)
6749           * pbc2c.pl: Removed explicit include of <math.h>, replacing it
6750         with
6751             copy of $ops->preamble.
6753 2001-10-17 22:32  bdwheele
6755         * interpreter.c: Moved op dump code into trace_op_dump, per Dan's
6756         request.
6758 2001-10-17 22:08  gregor
6760         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm:
6761           * Now handles label-and-comment-only lines.
6763 2001-10-17 22:04  bdwheele
6765         * interpreter.c: added more comprehensive trace output
6767 2001-10-17 16:50  tom
6769         * Makefile.in: Removed the explicit rule for building mops.o from
6770         mops.c so that the implicit rule for compiling C files is used
6771         instead. This means that the chosen C flags are used, including any
6772         optimisation options.
6774 2001-10-17 15:24  tom
6776         * core.ops, Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm: Enhanced the
6777         op explosion logic to be able to handle exploding this:
6779           sub(i, i|ic, i|ic)
6781         into these:
6783           sub(i, i, i)
6784           sub(i, i, ic)
6785           sub(i, ic, i)
6787         without also generating this unwanted version:
6789           sub(i, ic, ic)
6791         The enhanced version rejects any expansion where there is more than
6792         one expanded argument and all the expanded arguments are constants.
6794 2001-10-17 14:20  simon
6796         * Makefile.in, ops2c.pl, ops2pm.pl, examples/assembly/Makefile:
6797         Build fixes to use correct Perl version and ensure that things are
6798         running in the right directory.
6800         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
6802 2001-10-17 13:16  simon
6804         * Makefile.in:
6805         core.pm is more critical than that.
6807 2001-10-17 13:05  simon
6809         * core.ops, Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm:
6810         "Explode" ops into multiple versions for different parameters.
6812         Courtesy of: Tom Hughes <tom@compton.nu>
6814 2001-10-17 12:54  simon
6816         * Makefile.in:
6817         Fix dependencies and cleaning.
6819 2001-10-17 12:45  simon
6821         * Configure.pl, Makefile.in:
6822         Fixes to make Parrot compile without the temporary build hack
6824         Courtesy of: Jason Gloudon <perl@gloudon.com>
6826 2001-10-16 20:43  gregor
6828         * Makefile.in:
6829           * Fixed dependencies for building Parrot/OpLib/core.pm
6831 2001-10-16 19:35  bdwheele
6833         * core.ops, t/op/string.t: Changed set s,sc to use string_copy &
6834         added test, thanks to Alex Gough
6836 2001-10-16 16:49  bdwheele
6838         * core.ops: added opcode variants for constants and 3 arg concat
6840 2001-10-16 15:12  bdwheele
6842         * core.ops: added "set Sx,Sy" as a string copy to match the other
6843         register-to-register copies available
6845 2001-10-16 13:09  gregor
6847         * core.ops:
6848           * Added #include <sys/time.h> in the preamble for gettimeofday().
6850 2001-10-16 13:09  gregor
6852         * Makefile.in:
6853           * Removed cd t; make, which no longer applies
6855 2001-10-16 03:18  bdwheele
6857         * core.ops: fix save & restore operations to push correct type onto
6858         stack. [good eye to Jason Gloudon for noticing this]
6860 2001-10-16 01:38  bdwheele
6862         * core.ops, register.c, examples/assembly/fact.pasm,
6863         include/parrot/register.h: send in the clones:  clone routines for
6864         parrot + example program
6866 2001-10-15 22:37  gregor
6868         * MANIFEST, Makefile.in, examples/assembly/.cvsignore,
6869         examples/assembly/Makefile, examples/assembly/bsr.pasm,
6870         examples/assembly/call.pasm, examples/assembly/euclid.pasm,
6871         examples/assembly/jump.pasm, examples/assembly/local_label.pasm,
6872         examples/assembly/mops.pasm, examples/assembly/stack.pasm,
6873         examples/assembly/substr.pasm, examples/assembly/trace.pasm,
6874         t/.cvsignore, t/Makefile, t/call.pasm, t/euclid.pasm, t/jump.pasm,
6875         t/local_label.pasm, t/test.pasm, t/test2.pasm, t/test3.pasm,
6876         t/test4.pasm, t/test5.pasm, t/trace.pasm:
6877           * Moved examples from t/*.pasm to examples/assembly/*.pasm, with
6878         some
6879             renames so the names match what they demonstrate.
6881 2001-10-15 22:18  gregor
6883         * core.ops, t/test.pasm:
6884           * time_n uses gettimeofday() to get sub-second times.
6886           * t/test.pasm uses time_n directly rather than doing int stuff
6887         and
6888             converting to num later.
6890 2001-10-15 12:28  gregor
6892         * t/: test.pasm, test2.pasm, trace.pasm:
6893           * t/test.pasm prints using string constants instead of string
6894         regs.
6896           * t/test2.pasm assembles (using implicit op modes)
6898           * t/trace.pasm updated for new behavior of trace_ic, which does
6899         not
6900             require an 'end' after 'trace'.
6902 2001-10-15 00:47  gregor
6904         * core.ops, interpreter.c, test_main.c,
6905         include/parrot/interpreter.h, t/test.pasm:   * New interpreter flag
6906         PARROT_PROFILE_FLAG
6908           * New runops cores to handle profiling
6910           * Support for -p flag in test_prog to enable profiling
6912           * New profile_ic op to control profiling at run-time
6914 2001-10-14 21:54  gregor
6916         * core.ops, Parrot/OpsFile.pm, docs/.cvsignore, docs/Makefile,
6917         lib/Parrot/OpsFile.pm: Integrated op documentation.
6919           * core.ops now contains POD documentation of ops, interspersed
6920         with the
6921             ops themselves
6923           * Ops are organized into POD =head2 sections
6925           * Parrot/OpsFile.pm now treats the preamble of the ops file as
6926         anything
6927             up to the first POD directive OR op definition.
6929           * docs/Makefile now generates core_ops.pod from core.ops vi
6930         perldoc -u.
6932 2001-10-14 11:58  simon
6934         * Makefile.in:
6935         Unbreak Digital Un^W^WTru64
6937 2001-10-14 11:00  simon
6939         * Configure.pl:
6940         Remove weird typo.
6942 2001-10-14 10:56  tom
6944         * Configure.pl: Stop Configure trying to make op_info.c and op.h as
6945         op_info.c no longer exists and op.h is no longer a generated file.
6947 2001-10-14 10:54  tom
6949         * Makefile.in: Added vtable.h to the list of things removed by the
6950         clean target.
6952 2001-10-14 01:43  gregor
6954         * .cvsignore, MANIFEST, Makefile.in, basic_opcodes.ops,
6955         build_interp_starter.pl, core.ops, disassemble.pl, interpreter.c,
6956         make_op_header.pl, memory.c, opcheck.pl, opcode_table, ops2c.pl,
6957         ops2pm.pl, packfile.c, pbc2c.pl, process_opfunc.pl,
6958         Parrot/Assembler.pm, Parrot/Op.pm, Parrot/OpsFile.pm,
6959         Parrot/OpLib/.cvsignore, lib/Parrot/Assembler.pm, lib/Parrot/Op.pm,
6960         lib/Parrot/OpsFile.pm, lib/Parrot/OpLib/.cvsignore,
6961         include/parrot/.cvsignore, include/parrot/interp_guts.h,
6962         include/parrot/interpreter.h, include/parrot/op.h,
6963         include/parrot/oplib/.cvsignore, t/.cvsignore, t/Makefile,
6964         t/euclid.pasm, t/test.pasm, t/op/integer.t, t/op/number.t,
6965         t/op/stacks.t, t/op/string.t, t/op/trans.t:
6966         Moby Patch:
6968           * basic_opcodes.ops and opcode_table replaced by core.ops
6970           * process_opfunc.pl replaced by Parrot/OpsFile.pm, Parrot/Op.pm,
6971             and ops2c.pl. These convert *.ops to *_ops.c and
6972             include/parrot/oplib/*_ops.h
6974           * New ops2pm.pl converts *.ops to Parrot/OpLib/*.pm
6976           * disassemble.pl modified to use
6978           * interpreter.c modified to use structures in core_ops.c instead
6979             of the old op_info and op_func stuff. We're not yet to the
6980             point of handling multiple oplibs at a time, but we are getting
6981             there...
6983             Fingerprinting stuff disabled for now. We used to go off
6984             opcode_table. We need to rethink this. I have some ideas to
6985             make it unnecessary, but it remains to be seen whether others
6986             will like the direction they take us.
6988             Termination condition for while(){} loop in runops is now
6989             (pc) instead of (*pc). Any op can cause a HALT by returning
6990             a NULL pointer. Ops end, bounds and trace all do this. So, now
6991             the 'end' op body is actually executed, although all it does
6992             is HALT.
6994           * Makefile.in modified to perform a test build using pbc2c.pl,
6995             which is the bytecode --> C compiler I've posted to the
6996             list before.
6998           * Op full names are now autogenerated. Op root names must not
6999             contain underscores, so some op renamings have happened.
7000             Such as clear_i becoming cleari.
7002 2001-10-13 11:49  simon
7004         * Configure.pl, MANIFEST:
7005         Make parrot actually build again.
7007 2001-10-12 21:34  dan
7009         * docs/parrot_assembly.pod: Added docs for the new save/restore/bsr
7010         opcodes
7012 2001-10-12 20:56  dan
7014         * MANIFEST, Makefile.in, basic_opcodes.ops, interpreter.c,
7015         opcode_table, process_opfunc.pl, stacks.c, include/parrot/stacks.h,
7016         t/test3.pasm, t/test4.pasm, t/test5.pasm: Changes to support
7017         generic stack now in. We also have subroutines, of a simple sort!
7019 2001-10-12 19:15  tom
7021         * t/op/string.t: Improved string comparison tests try all string
7022         combinations with each of the comparison ops.
7024 2001-10-12 19:09  dan
7026         * interpreter.c: Properly sets up generic stack now
7028 2001-10-12 19:09  dan
7030         * include/parrot/interpreter.h: Fixed stack chunk struct type in
7031         interpreter structure
7033 2001-10-12 18:59  dan
7035         * stacks.c, include/parrot/parrot.h, include/parrot/stacks.h: More
7036         changes to get the generic stack working
7038 2001-10-12 18:59  dan
7040         * Configure.pl, MANIFEST, config_h.in, testparrotsizes_c.in,
7041         hints/vms.pl: Made the changes to figure out mask bits for various
7042         register and stack chunks
7044 2001-10-11 22:09  dan
7046         * docs/parrot_assembly.pod: Tossed the parameter for return
7048 2001-10-11 19:28  tom
7050         * strnative.c: Assignment, not comparison.  (Plus formatted for
7051         coding standards)
7053         Courtesy of Bryan C. Warnock
7055 2001-10-10 19:21  tom
7057         * basic_opcodes.ops, opcode_table, string.c, strnative.c,
7058         strutf16.c, strutf32.c, strutf8.c, docs/strings.pod,
7059         include/parrot/string.h, t/op/string.t: Added support for string
7060         comparisons and extended the comparison ops to include comparison
7061         of strings.
7063 2001-10-10 17:58  dan
7065         * MANIFEST: Shouldn't have added vtable.h to the manifest...
7067 2001-10-10 17:54  dan
7069         * MANIFEST, stacks.c, vtable_h.pl, Parrot/Vtable.pm,
7070         lib/Parrot/Vtable.pm: Now spits out the #defines for the various
7071         vtable type entries properly
7073 2001-10-10 15:37  dan
7075         * Parrot/Vtable.pm, lib/Parrot/Vtable.pm: Re-enabled change to
7076         parse new vtable.tbl file now that I've actually checked *in* the
7077         new format vtable.tbl file...
7079 2001-10-10 15:32  dan
7081         * vtable.tbl: New Column to indicate the type of the vtabel entry
7082         so we can know how many slots it takes
7084 2001-10-10 05:26  thgibbs
7086         * Parrot/Vtable.pm, lib/Parrot/Vtable.pm, vtable_h.pl: Patch to
7087         allow parrot to compile.  PACKAGE is not defined, therefore, I
7088         added a struct before it to have it not complain until we define
7089         PACKAGE.  Also, there was an extra shift in Vtable.pm and a missing
7090         semicolon at the end of the struct declaration.
7092 2001-10-10 05:09  thgibbs
7094         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm: This patch makes
7095         string constants of the form U"string" become unicode encoded
7096         parrot strings and the form N"string" become native encoded parrot
7097         strings.
7099         Courtesy of: Tom Hughes <tom@compton.nu>
7101 2001-10-10 04:55  dan
7103         * vtable_h.pl, Parrot/Vtable.pm, lib/Parrot/Vtable.pm: Start of
7104         support for generating the vtable function table offset macros
7106 2001-10-10 01:05  simon
7108         * t/op/integer.t:
7109         The test for cmod_i was using the 'mod Ix, Ix, Ix' form which
7110         compiles into the mod op, not the cmod_i op, hence wasn't testing
7111         what it thought it was.
7113         Courtesy of: Alex Gough <alexander.gough@st-hughs.oxford.ac.uk>
7115 2001-10-09 03:45  thgibbs
7117         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm: Patch to allow
7118         assembler to generate unicode strings.
7120         Courtesy of: Tom Hughes <tom@compton.nu>
7122 2001-10-08 19:30  brentdax
7124         * Configure.pl, test_c.in, hints/vms.pl: Cleaner VMS support, more
7125         info for Parrot::Config to remember, more flexible test.c stuff
7127 2001-10-08 15:04  gregor
7129         * basic_opcodes.ops:
7130           * Removed trash from early mod_i experiments (pardon our dust)
7132 2001-10-08 14:56  gregor
7134         * basic_opcodes.ops:
7135           * Fixed a couple of typos.
7137 2001-10-08 14:45  gregor
7139         * basic_opcodes.ops, opcode_table, t/op/integer.t, t/op/number.t:
7140         Arithmetic enhancements:
7142           * Renamed existing mod_i as cmod_i and added "corrected" mod_i:
7144             NOTE: This "uncorrected mod" algorithm uses the C language's
7145         built-in
7146             mod operator (x % y), which is
7148                 ... the remainder when x is divided by y, and thus is zero
7149         when y
7150                 divides x exactly.
7151                 ...
7152                 The direction of truncation for / and teh sign of the
7153         result for %
7154                 are machine-dependent for negative operands, as is the
7155         action taken
7156                 on overflow or underflow.
7157                                                                      --
7158         [1], page 41
7160             Also:
7162                 ... if the second operand is 0, the result is undefined.
7163         Otherwise, it
7164                 is always true that (a/b)*b + a%b is equal to z. I both
7165         operands are
7166                 non-negative, then teh remainder is non-negative and
7167         smaller than the
7168                 divisor; if not, it is guaranteed only that the absolute
7169         value of the
7170                 remainder is smaller than the absolute value of the
7171         divisor.
7172                                                                      --
7173         [1], page 205
7175             This op is provided for those who need it (such as
7176         speed-sensitive
7177             applications with heavy use of mod, but using it only with
7178         positive
7179             arguments), but a more mathematically useful numeric mod based
7180         on
7181             floor(x/y) and defined with y == 0 is provided by the mod_i op.
7183               [1] Brian W. Kernighan and Dennis M. Ritchie, *The C
7184         Programming
7185                   Language*, Second Edition. Prentice Hall, 1988.
7187           * Added "corrected" mod_i:
7189             NOTE: This "corrected mod" algorithm is based on the C code on
7190         page 70
7191             of [1]. Assuming correct behavior of C's built-in mod operator
7192         (%) with
7193             positive arguments, this algorithm implements a mathematically
7194         convenient
7195             version of mod, defined thus:
7197               x mod y = x - y * floor(x / y)
7199             For more information on this definition of mod, see section 3.4
7200         of [2],
7201             pages 81-85.
7203             References:
7205               [1] Donald E. Knuth, *MMIXware: A RISC Computer for the Third
7206                   Millennium* Springer, 1999.
7208               [2] Ronald L. Graham, Donald E. Knuth and Oren Patashnik,
7209         *Concrete
7210                   Mathematics*, Second Edition. Addison-Wesley, 1994.
7212           * Added mod_n, using the same formula as above, but with FLOATVAL
7213             arguments.
7215           * Added cmod_n, using the C math library's fmod() function:
7217             NOTE: This "uncorrected mod" algorithm uses the built-in C math
7218         library's
7219             fmod() function, which computes
7221                 ... the remainder of dividing x by y. The return value is x
7222         - n * y,
7223                 where n is the quotient of x / y, rounded towards zero to
7224         an
7225                 integer.
7226                                                 -- fmod() manpage on RedHat
7227         Linux 7.0
7229             In addition, fmod() returns
7231                 the remainder, unless y is zero, when the function fails
7232         and errno
7233                 is set.
7235             According to page 251 of [1], the result when y is zero is
7236         implementation-
7237             defined.
7239             This op is provided for those who need it, but a more
7240         mathematically
7241             useful numeric mod based on floor(x/y) instead of truncate(x/y)
7242         and
7243             defined with y == 0 is provided by the mod_n op.
7245               [1] Brian W. Kernighan and Dennis M. Ritchie, *The C
7246         Programming
7247                   Language*, Second Edition. Prentice Hall, 1988.
7249           * Added and modified tests as appropriate for the above.
7251 2001-10-08 08:49  thgibbs
7253         * include/parrot/exceptions.h, include/parrot/parrot.h,
7254         include/parrot/string.h, include/parrot/strutf16.h,
7255         include/parrot/strutf32.h, include/parrot/strutf8.h,
7256         include/parrot/transcode.h, include/parrot/unicode.h, MANIFEST,
7257         Makefile.in, global_setup.c, string.c, strnative.c, transcode.c,
7258         strutf16.c, strutf32.c, strutf8.c: Added code to handle unicode
7259         strings for utf8, utf16, and utf32.
7261         Courtesy of: Tom Hughes <tom@compton.nu>
7263 2001-10-08 08:10  thgibbs
7265         * memory.c: Fixed uninitialized variables.
7267         Courtesy of: Bryan C. Warnock <bwarnock@raba.com>
7269 2001-10-08 01:21  gregor
7271         * packfile.c:   * Casting a return value
7273           * Potential uninitialized variable fix
7275         Courtesy of Bryan C. Warnock <bwarnock@raba.com>
7277 2001-10-08 01:15  gregor
7279         * packfile.c, test_main.c: One of Bryan's languishing patches (with
7280         a few tweaks of my own):
7282           * Line wrapping
7284           * Printf format fixes
7286         Courtesy of: Bryan C. Warnock <bwarnock@raba.com>
7288 2001-10-07 22:39  thgibbs
7290         * build_interp_starter.pl: No longer adds (void*) casts to
7291         interp_guts.c function table as they are not necessary in ANSI C.
7293 2001-10-07 16:27  gregor
7295         * basic_opcodes.ops, interpreter.c, opcode_table,
7296         process_opfunc.pl, test_main.c, include/parrot/interpreter.h,
7297         t/trace.pasm:
7298           * Two new ops, trace_ic and bounds_ic that twiddle bits in
7299             interpreter->flags and set interpreter->resume_addr.
7301           * Two new runops core variants, so now we cover the relevant
7302             flag space over {trace, notrace} x {boundscheck, noboundscheck}
7304           * Runops core selection that converts the flags into an index
7305         into
7306             a core table (runops_cores) to get the core function pointer.
7308           * A new trace_op variant that doesn't do bounds checking (used by
7309             the non-bounds-checking-but-tracing runops core).
7311           * PC is passed into the cores so that they can be used when
7312             resuming (they used to assume starting at the beginning of the
7313             code, which would thwart resumption).
7315           * runops() itself is changed to have a while() loop in it so that
7316             any time we drop out of the core, we'll resume if we have an
7317             interpreter->resume_addr set (after reselecting the core,
7318         though).
7320           * process_opfunc.pl has a new "macro": RESUME(), that sets up
7321             interpreter->resume_addr. This is used by the new ops. The new
7322             ops still return the new PC as the next op (which MUST be an
7323             'end' op to force the core loop to terminate -- *pc being false
7324             is the only termination condition we can count on for all
7325         cores).
7327           * New interpreter flag: PARROT_BOUNDS_FLAG, used to control
7328             bounds checking core selection.
7330           * test_prog now has a '-b' flag in addition to the '-t' flag.
7331         Now,
7332             bounds checking is off by default (I saw a performance boost:
7333             6.3 Mop/s with -b, 7.0 Mop/s without).
7335           * A new sample/test program: t/trace.pasm that twiddles the trace
7336             flag while it is running.
7338 2001-10-07 15:41  gregor
7340         * .cvsignore, Makefile.in, build_interp_starter.pl, interpreter.c,
7341         include/parrot/.cvsignore, include/parrot/interpreter.h:
7342         Now that 0.0.2 is released, I can clear out the backlog of approved
7343         but uncommitted patches. Here's one Dan approved on 2001-09-21
7344         (Simplified DO_OP):
7346           * test_prog and pdump are linked with only the files the need,
7347         not
7348             al the files.
7350           * build_interp_starter.pl writes out op_info.[hc], too. These
7351         files
7352             contain op name, arg count and arg type information. This will
7353         be
7354             useful for multiple things in the future, including better
7355         trace
7356             output and the crystalizing loader.
7358           * The DO_OP macro is now simpler and doesn't require explicit
7359             temporaries.
7361           * interpreter.c is modified to use the new op info in tracing
7362         output.
7364           * The interpreter just points its opcode_funcs and opcode_info
7365             members at the default tables rather than allocating memory on
7366             the fly.
7368 2001-10-07 03:58  thgibbs
7370         * include/parrot/.cvsignore, vtable_h.pl: Minor updates fixing a
7371         comment and adding vtable.h to .cvsignore as it is produced by
7372         vtable_h.in
7374 2001-10-06 20:58  thgibbs
7376         * vtable.tbl: Added * to REGEX type.
7378         Courtesy of Bryan C. Warnock <bwarnock@raba.com>
7380 2001-10-06 13:41  simon
7382         * MANIFEST, Makefile.in, vtable.tbl, vtable_h.pl, Parrot/Vtable.pm,
7383         include/parrot/parrot.h, lib/Parrot/Vtable.pm:
7384         Framework for vtable functions.
7386 2001-10-06 06:52  thgibbs
7388         * make_op_header.pl: Removed confusing and unused typedef.
7390 2001-10-06 06:31  thgibbs
7392         * Parrot/Opcode.pm, lib/Parrot/Opcode.pm: Removed variables that
7393         are no longer used.
7395 2001-10-06 06:26  thgibbs
7397         * disassemble.pl: Changed intval to op in disassembler.
7399 2001-10-06 06:21  thgibbs
7401         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm: Fixed typo with
7402         Assembler, local labels, and integer constants.
7404 2001-10-06 03:11  ask
7406         * Makefile.in: make `make test` actually run the tests on
7407         darwin/macosx
7409 2001-10-06 02:04  thgibbs
7411         * Parrot/Assembler.pm, Parrot/Opcode.pm, Parrot/PackFile.pm,
7412         Parrot/String.pm, Parrot/PackFile/ConstTable.pm,
7413         Parrot/PackFile/Constant.pm, include/parrot/packfile.h,
7414         include/parrot/register.h, lib/Parrot/Assembler.pm,
7415         lib/Parrot/Opcode.pm, lib/Parrot/PackFile.pm, lib/Parrot/String.pm,
7416         lib/Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/Constant.pm,
7417         t/op/integer.t: No, it didn't mess anything up.  I just forgot to
7418         type make. :)
7420 2001-10-06 02:02  thgibbs
7422         * Parrot/Assembler.pm, Parrot/Opcode.pm, Parrot/PackFile.pm,
7423         Parrot/String.pm, Parrot/PackFile/ConstTable.pm,
7424         Parrot/PackFile/Constant.pm, include/parrot/packfile.h,
7425         include/parrot/register.h, lib/Parrot/Assembler.pm,
7426         lib/Parrot/Opcode.pm, lib/Parrot/PackFile.pm, lib/Parrot/String.pm,
7427         lib/Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/Constant.pm,
7428         t/op/integer.t: oops...this messed something up.  I must have
7429         missed something in the patch...I have reverted.
7431 2001-10-06 01:57  thgibbs
7433         * Parrot/Assembler.pm, Parrot/Opcode.pm, Parrot/PackFile.pm,
7434         Parrot/String.pm, Parrot/PackFile/ConstTable.pm,
7435         Parrot/PackFile/Constant.pm, include/parrot/packfile.h,
7436         include/parrot/register.h, lib/Parrot/Assembler.pm,
7437         lib/Parrot/Opcode.pm, lib/Parrot/PackFile.pm, lib/Parrot/String.pm,
7438         lib/Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/Constant.pm,
7439         t/op/integer.t, Types_pm.in, basic_opcodes.ops, config_h.in,
7440         memory.c, packfile.c, process_opfunc.pl, strnative.c, test_main.c:
7441         This patch ensures that all bytecode is of type opcode_t except for
7442         the constant table constants.  That means that almost all of the
7443         INTVALs in the code were replaced with opcode_t and the i pack type
7444         was replaced with the op pack type in calls to pack_arg and such.
7445         Also, since it has been declared that ALL integer constants are to
7446         be 32 bits, some test cases were changed to ensure that an integer
7447         constant was no bigger than 2 ** 31.
7449         process_opfunc.pl was also cleaned up to no longer look at either
7450         opcode_table or interp_guts.h but gather all of its information
7451         from Opcode.pm.
7453         The Assembler.pm module was changed to do late binding of arguments
7454         so that 0 could be treated like 0.0 without having to be so
7455         declared.  Also, only strings now use the [sc:N] intermediate form
7456         as it was unnecessary for integer and float types.
7458 2001-10-05 21:59  gregor
7460         * MANIFEST, languages/jako/Makefile:
7461         Fixed things due to the movement of little_languages/* to
7462         languages/jako.
7464 2001-10-05 18:31  gregor
7466         * MANIFEST:
7467         Updated MANIFEST to reflect recent additions for Jako.
7469 2001-10-05 17:54  gregor
7471         * languages/jako/: Makefile, bench.jako, euclid.jako, fact.jako,
7472         fib.jako, hello.jako, jakoc, leibniz.jako, mandelbrot.jako,
7473         mops.jako, primes.jako, sub.jako:
7474           * Compiler:
7476               * User-defined subroutines.
7477               * Generates assembly code with the Jako code in comments.
7478               * "end;" no longer required at the end of programs.
7479               * Better handling of const-reg and reg-const.
7480               * Optimizes const-const operations to compile-time
7481         evaluations.
7482               * Constants in addition to variables.
7483               * Arithmetic fixes.
7484               * Allow leading minus signs in integer and number constants
7485         (ahem).
7486               * goto's.
7488           * New sample programs:
7490               * leibniz.jako (based on Greg McCarroll's leibniz.pasm
7491         example)
7492               * mandelbrot.jako (based on Leon Brocard's translation of
7493         Glenn Rhodes' C code)
7494               * mops.jako (based on t/test.pasm)
7495               * primes.jako (based on Leon Brocard's primes.pasm example)
7496               * sub.jako (demonstrates a simple user-defined subroutine)
7498 2001-10-05 12:54  gregor
7500         * Parrot/Opcode.pm, lib/Parrot/Opcode.pm:
7501           * Removed mysterious extra copy of code after POD.
7503 2001-10-05 12:46  gregor
7505         * basic_opcodes.ops, t/op/string.t:
7506           * Enabled the previously SKIPped test of printing string regs
7507         after
7508             clear_s
7510           * Made print_s do nothing if the STRING pointer in the register
7511         file
7512             is NULL.
7514 2001-10-04 21:19  dan
7516         * Configure.pl: VMS tweaks
7518 2001-10-04 21:17  dan
7520         * hints/vms.pl: Hints file for VMS
7522 2001-10-04 00:58  bdwheele
7524         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm: fixed but in
7525         Assembler which stopped equates from working.
7527 2001-10-03 21:50  gregor
7529         * Makefile.in, docs/.cvsignore, docs/Makefile, docs/parrotbyte.pod:
7531           * More documentation updates for the packfile stuff.
7533 2001-10-03 21:37  gregor
7535         * docs/parrotbyte.pod:
7536           * Pointed the reader at Parrot::PackFile.
7538 2001-10-03 21:34  gregor
7540         * Parrot/PackFile.pm, lib/Parrot/PackFile.pm:
7541           * Updated documentation to match current implementation.
7543 2001-10-03 18:30  gregor
7545         * .cvsignore, disassemble.pl, Parrot/Assembler.pm,
7546         lib/Parrot/Assembler.pm, t/call.pasm, t/euclid.pasm,
7547         t/local_label.pasm, t/test.pasm, t/test2.pasm, t/test3.pasm,
7548         t/op/basic.t:
7549           * Added new syntax to the assembler to allow square-bracket
7550             arithmetic expressions involving (global) labels, the current
7551             instructions base address ('@'), numeric constants (not
7552         equates)
7553             and basic arithmetic operators (+, -, *, / -- although + and -
7554             are likely to be the only ones used in practice).
7556           * Fixed a bug in Parrot/Assemble.pl that caused macro expansion
7557         to
7558             fail (argument passing wasn't working).
7560           * Enabled t/op/basic.t's last test, which is actually a copy of
7561         the
7562             code from t/call.pasm. Now all tests there are enabled and
7563         working.
7565           * Added new example/test program t/call.pasm to demonstrate
7566         working
7567             macros and poor-man's subroutine calls
7569           * Added header comments to t/*.pasm
7571 2001-10-03 18:00  simon
7573         * ChangeLog:
7574         Needed, since it's in the MANIFEST.
7576 2001-10-03 17:56  simon
7578         * t/op/: string.t, time.t:
7579         Small fixes to help Win32 on its way.
7581 2001-10-03 17:41  simon
7583         * MANIFEST, README:
7584         Oops. Tiny bugs.
7586 2001-10-03 17:39  simon
7588         * MANIFEST, NEWS, README:
7589         README, NEWS and MANIFEST? Could it be time for Parrot 0.0.2? I
7590         think so!
7592 2001-10-03 17:21  simon
7594         * basic_opcodes.ops, interpreter.c, packfile.c:
7595         Evil printf bandaid (which allows Sparc64 to pass tests)
7597         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
7599 2001-10-03 16:58  simon
7601         * string.c, t/op/string.t:
7602         chop fixes for n < 0 and tests
7604         Courtesy of: Alex Gough <alex@rcon.org>
7606 2001-10-03 15:51  thgibbs
7608         * interpreter.c: Changed an occurrence of INTVAL to opcode_t
7610         Courtesy of: Bryan C. Warnock <bwarnock@raba.com>
7612 2001-10-02 17:48  dan
7614         * include/parrot/stacks.h: Fix typo in function name
7616 2001-10-02 17:35  dan
7618         * include/parrot/stacks.h: changed to support new stack stuff
7619         coming after 0.02
7621 2001-10-02 15:01  simon
7623         * Configure.pl, Types_pm.in, basic_opcodes.ops, config_h.in,
7624         interpreter.c, make_op_header.pl, memory.c, packfile.c,
7625         process_opfunc.pl, register.c, string.c, strnative.c,
7626         Parrot/Opcode.pm, Parrot/PackFile.pm, Parrot/String.pm,
7627         lib/Parrot/Opcode.pm, lib/Parrot/PackFile.pm, lib/Parrot/String.pm,
7628         Parrot/PackFile/ConstTable.pm, Parrot/PackFile/Constant.pm,
7629         docs/overview.pod, docs/strings.pod, include/parrot/interpreter.h,
7630         include/parrot/memory.h, include/parrot/packfile.h,
7631         include/parrot/parrot.h, include/parrot/register.h,
7632         include/parrot/stacks.h, include/parrot/string.h,
7633         lib/Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/Constant.pm:
7635         The Great Renaming.
7637 2001-10-02 12:49  gregor
7639         * process_opfunc.pl:
7640           * Fixed a tyop:  s/string/integer/ for INT_CONST expansion
7642 2001-10-02 12:40  simon
7644         * basic_opcodes.ops, process_opfunc.pl, register.c,
7645         include/parrot/register.h:
7646         Move preprocessing of register accessors to process_opfunc.pl
7648         Courtesy of: Jason Gloudon <perl@gloudon.com>
7650 2001-10-02 01:20  ask
7652         * README: add a few lines about lists.
7654 2001-10-01 23:00  brentdax
7656         * Configure.pl, Makefile.in, hints/mswin32.pl: Make 'make clean'
7657         work on Win32 (courtesy of Mattia Barbon <mbarbon@dsi.unive.it>)
7659 2001-10-01 22:50  brentdax
7661         * Configure.pl, test_c.in: More changes for 64-bit compatibility
7663 2001-10-01 21:51  simon
7665         * process_opfunc.pl:
7666         Michael Fischer's patch broke conditionals.
7668 2001-10-01 15:38  simon
7670         * process_opfunc.pl:
7671         Small hack to keep process_opfunc.pl from generating extra return()
7672         statements.
7674         Courtesy of: Michael Fischer <michael@visv.net>
7676 2001-10-01 15:32  simon
7678         * Parrot/Opcode.pm, lib/Parrot/Opcode.pm:
7679         Documentation fix.
7681         Courtesy of: Josh Wilmes <josh@hitchhiker.org>
7683 2001-10-01 01:49  simon
7685         * packfile.c:
7686         Simon is an idiot. Don't trust him with your code.
7688         Courtesy of: Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
7690 2001-10-01 00:59  simon
7692         * Parrot/String.pm, lib/Parrot/String.pm:
7693         Was in manifest, but not in CVS.
7695 2001-09-30 21:25  simon
7697         * MANIFEST, Types_pm.in, assemble.pl, basic_opcodes.ops,
7698         disassemble.pl, packfile.c, pdump.c, process_opfunc.pl,
7699         Parrot/Assembler.pm, Parrot/PackFile.pm,
7700         Parrot/PackFile/ConstTable.pm, Parrot/PackFile/Constant.pm,
7701         Parrot/PackFile/FixupTable.pm, lib/Parrot/Assembler.pm,
7702         lib/Parrot/PackFile.pm, lib/Parrot/PackFile/ConstTable.pm,
7703         lib/Parrot/PackFile/Constant.pm, lib/Parrot/PackFile/FixupTable.pm,
7704         include/parrot/packfile.h, include/parrot/string.h:
7705         Move NVs to the constant table.    * Changes to Types_pm.in to make
7706         life easier for some of the      packing/etc. I'm doing elsewhere.
7707         Also, we now pack 'n' as      'i'.
7709           * Moved the guts of assemble.pl to Parrot/Assembler.pm so that
7710             eventually we can use all these tools together inside scripts
7711             rather than call out to the shell to run the programs.
7713           * As I was tracking down problems, I converted the internal
7714             documentation of the assembler to POD from comments.
7716           * Changed the numeric regexp in the assembler to detect leading
7717             signs and trailing exponents.
7719           * Updated basic_opcodes.ops to fetch numeric constants from the
7720             constant table.
7722           * Enhanced the disassembler in a number of ways to make my life
7723             easier while tracking down bugs (try it out). It now puts in
7724             labels for ops that are the destinations of flow control ops.
7726           * packfile.c now has a TRACE_PACKFILE switch that can be set
7727             to get it to print info as it processes. I needed this while
7728             debugging, but I can remove it or change it before committing
7729             if its a problem.
7731           * Updated pdump.c because it was missing a call to init_world().
7733           * Updated process_opfunc.pl to deal with numeric constants
7734             being stored in the constant table instead of inline.
7736           * Added multiple type support to Parrot/PackFile/Constant.pm
7738           * Added Parrot/String.pm, to be used for constants.
7740           * Added packfile.[hc] functions for allocating new constants
7741             of various types.
7743           * Made string_copy visible to the world in parrot/string.h.
7745         Wow.
7747         Courtesy of: Gregor N. Purdy <gregor@focusresearch.com>
7749 2001-09-29 15:56  gregor
7751         * languages/jako/Makefile:
7752         Removed assumption that '.' is on the path.
7754 2001-09-29 15:55  gregor
7756         * languages/jako/Makefile:
7757         Removed references to leibnitz test program.
7759 2001-09-29 15:21  thgibbs
7761         * t/op/trans.t, basic_opcodes.ops: Added NV casts to transcendental
7762         math ops args to work on Solaris.
7764 2001-09-27 15:15  thgibbs
7766         * assemble.pl: Added case insensitive matches to hex and binary
7767         characters
7769         Courtesy of: Johnathan Scott Duff <duff@cbi.tamucc.edu>
7771 2001-09-27 04:46  thgibbs
7773         * assemble.pl: This patch makes integer constants of the form
7774         0b[01]+ work with perl 5.005.  The oct function in versions of perl
7775         before 5.6 did not handle the 0b numeric prefix; therefore, it was
7776         returning 0.  To fix this, I added a from_binary function that
7777         would take a binary string and return its decimal representation.
7778         Now, instead of blindly calilng oct, it makes a distinction between
7779         0/0x numbers and 0b numbers.
7781 2001-09-26 19:30  thgibbs
7783         * assemble.pl: Error now returns a non-zero status
7785         Courtesy of: Andrew Kuchling <akuchlin@mems-exchange.org>
7787 2001-09-26 19:13  gregor
7789         * MANIFEST, Makefile.in, basic_opcodes.ops, bytecode.c,
7790         interpreter.c, packfile.c, pdump.c, test_main.c,
7791         include/parrot/bytecode.h, include/parrot/interpreter.h,
7792         include/parrot/packfile.h, include/parrot/parrot.h, t/op/integer.t,
7793         t/op/stacks.t:
7794           * bytecode.[hc] removed. packfile.[hc] are the interface to the
7795             packfile/bytecode file from C. May be renamed in the future.
7797           * packfile.[hc] changed to use 'struct PackFile *', etc. instead
7798             of 'PackFile *', just like the interpreter, etc.
7800           * Constants are accessed via the interpreter's 'code' member
7801             (struct PackFile * code). Macros PCONST(i) and PNCONST are
7802             provided to access constants by index and the number of
7803             constants, respectively (assumes a variable 'interpreter' of
7804             the appropriate type is in scope).
7806           * Byte Code is accessed via the interpreter's 'code' member.
7808           * Changed PackFile_Constant to point to a STRING instead of
7809         having
7810             members for the string_make() arguments. Also has a 'type' IV
7811             in preparation for allowing multiple types of constants in
7812             const_table.
7814           * Removed hardcoded example program from test_main.c. We have
7815             plenty of test programs elsewhere.
7817           * test_prog now uses a PackFile to deal with the program before
7818             sending it on to the interpreter.
7820           * Added missing 'end' ops to some tests in t/op/integer.t and
7821             t/op/stacks.t.
7823 2001-09-26 18:38  thgibbs
7825         * assemble.pl: Separated code into functions and added comments.
7827 2001-09-26 18:29  simon
7829         * config_h.in:
7830         Fix 64-bit chunk-base issue.
7832 2001-09-26 06:55  thgibbs
7834         * t/op/bitwise.t: Added end to bitwise tests.
7836 2001-09-26 00:54  dan
7838         * docs/parrot_assembly.pod: Added in the base for threading, I/O,
7839         and interpreter creation. Skeleton only, but it's something to peer
7840         at.
7842 2001-09-25 21:44  thgibbs
7844         * t/op/trans.t: Removed loops in transcendtal op test.
7846 2001-09-25 10:12  simon
7848         * MANIFEST, t/op/basic.t, t/op/bitwise.t, t/op/integer.t,
7849         t/op/string.t, t/op/time.t:
7850         More tests
7852         Courtesy of: Alex Gough <alex@rcon.org>
7854 2001-09-24 19:08  gregor
7856         * t/op/number.t:
7857           * Enabled the clear_n test.
7859 2001-09-24 18:56  gregor
7861         * Parrot/.cvsignore:
7862           * Ignore the generated Types.pm file.
7864 2001-09-24 18:52  gregor
7866         * languages/jako/Makefile, t/op/number.t:
7867           * No need to skip the inc and dec numeric tests anymore. I fixed
7868         the
7869             assembler earlier today.
7871 2001-09-24 18:21  simon
7873         * MANIFEST, t/op/stacks.t:
7874         Oops.
7876 2001-09-24 18:19  simon
7878         * build_interp_starter.pl, interpreter.c, string.c, Parrot/Test.pm,
7879         include/parrot/exceptions.h, include/parrot/interpreter.h,
7880         lib/Parrot/Test.pm, t/op/string.t:
7881         1) captured error output, so can test errors, this might be bad,
7882         not sure.  2) basic tests for register stack frames, including some
7883         errors 3) I think we can stop skipping one of the string tests 4) I
7884         added some more substr tests, but substr was broken, so 5) changed
7885         substr to work with out of range values, or 6) throw an error if
7886         they're far too silly
7888         Courtesy of: Alex Gough <alex@rcon.org>
7890 2001-09-24 17:27  gregor
7892         * basic_opcodes.ops, opcode_table, t/op/number.t:
7893           * Op set_n was missing. Added it and a test for it. We now have
7894         the
7895             same int and num ops, except mod is int-only.
7897 2001-09-24 17:01  gregor
7899         * assemble.pl:
7900           * Fixed a typo: s/Line/line/
7902 2001-09-24 16:02  gregor
7904         * basic_opcodes.ops:
7905           * Fixed dec_n_nc opcode, which had += where it should have had
7906         -=.
7908 2001-09-24 15:34  gregor
7910         * assemble.pl:
7911           * Fixed handling of constants starting with '0' that should not
7912         be
7913             sent through oct(). For example 'set N2 0.1' was being
7914         interpreted
7915             as 'set N2 0' (naughty).
7917             As reported by Leon Brocard <acme@astray.com> in the comments
7918         of
7919             his mandelbrot.pasm example.
7921 2001-09-24 02:21  bdwheele
7923         * assemble.pl: fixed dumb code when --include was not specified.
7925 2001-09-24 02:17  simon
7927         * assemble.pl:
7928         Shit-sweeping.
7930 2001-09-24 01:56  bdwheele
7932         * assemble.pl: * Added --include=dir option to assembler to provide
7933         a path to look for included files.  * Error message of a macro is
7934         defined inside of a macro
7936 2001-09-23 21:29  bdwheele
7938         * assemble.pl: Added __FILE__ equate, fixed __LINE__ equate.
7940 2001-09-23 15:50  simon
7942         * Configure.pl:
7943         Fixed typo. Parrot might work again on non-8.3 filesystems. :)
7945 2001-09-23 02:03  ask
7947         * Configure.pl, test_c.in: fix missing newline at the end of test.c
7948         Courtesy of: acme@astray.com (Leon Brocard)
7950         rename 'test' executable used in Configure process to test_siz.
7952 2001-09-23 01:03  simon
7954         * process_opfunc.pl:
7955         iPaq fix. No, really.
7957 2001-09-23 00:47  simon
7959         * MANIFEST:
7960         Missed several, in fact.
7962 2001-09-23 00:46  simon
7964         * MANIFEST:
7965         Missed one.
7967 2001-09-22 21:13  simon
7969         * assemble.pl:
7970         Assembler register numbering rigour.
7972         Courtesy of: Leon Brocard <acme@astray.com>
7974 2001-09-22 18:20  simon
7976         * Makefile.in, lib/Test/More.pm, lib/Test/Simple.pm,
7977         lib/Test/Utils.pm:
7978         I'm sick of having to install Test::More everywhere. Temporary
7979         measure until we remove this silly dependency.
7981         Also a typo in Makefile.in which suggests some things were only
7982         happening correctly by sheer chance. :)
7984 2001-09-22 18:06  simon
7986         * README:
7987         test.pasm is dead, long like make test.
7989 2001-09-22 17:47  simon
7991         * t/op/number.t:
7992         De-fang overzealous floating point test.
7994 2001-09-22 17:39  simon
7996         * process_opfunc.pl:
7997         Remove hard-coded NV size assumption. Tru64 is nearly there!
7999 2001-09-22 17:18  simon
8001         * assemble.pl, disassemble.pl:
8002         More portability fixups.
8004 2001-09-22 16:44  simon
8006         * assemble.pl, Parrot/PackFile/Constant.pm,
8007         lib/Parrot/PackFile/Constant.pm:
8008         And I *think* this fixes Tru64.
8010 2001-09-22 16:37  simon
8012         * Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/ConstTable.pm:
8014         Oops.
8016 2001-09-22 16:36  simon
8018         * Parrot/PackFile.pm, Parrot/PackFile/ConstTable.pm,
8019         Parrot/PackFile/Constant.pm, lib/Parrot/PackFile.pm,
8020         lib/Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/Constant.pm:
8022         More removal of hard-coded pack formats.
8024 2001-09-22 15:21  simon
8026         * assemble.pl:
8028         Grrr. Why isn't this working?
8030 2001-09-22 15:18  simon
8032         * Parrot/PackFile.pm, Parrot/PackFile/ConstTable.pm,
8033         lib/Parrot/PackFile.pm, lib/Parrot/PackFile/ConstTable.pm:
8035         Make assemble use the PackFile modules; also fixed some bugs in
8036         them.
8038 2001-09-22 14:38  simon
8040         * Configure.pl, MANIFEST, Types_pm.in, assemble.pl, disassemble.pl:
8042         Abstract the argument and opcode packing types and functions out
8043         into a separate module. This *should* help us maintain consistency
8044         when we change the various types.
8046 2001-09-22 00:46  brentdax
8048         * Configure.pl: Delete test.o (or its equivalent) after Configure's
8049         test program finishes.
8051 2001-09-21 21:24  brentdax
8053         * Parrot/Test.pm, lib/Parrot/Test.pm: Fix error with \ as path
8054         separator (courtesy of Mattia Barbon <mbarbon@dsi.unive.it>)
8056 2001-09-21 21:09  gregor
8058         * Parrot/PackFile/ConstTable.pm, Parrot/PackFile/Constant.pm,
8059         lib/Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/Constant.pm:
8061           * Fixed pad calculation (similar to recent bug fix on C library)
8063 2001-09-21 20:23  simon
8065         * disassemble.pl:
8066         Pack types and sizes have gone askew.
8068 2001-09-21 20:18  brentdax
8070         * Configure.pl: Fix typo in setting stuff from the C test program
8072 2001-09-21 10:25  simon
8074         * basic_opcodes.ops, process_opfunc.pl:
8075         Document patches.
8077         Courtesy of: Leon Brocard <acme@astray.com>
8079 2001-09-21 06:06  ask
8081         * Config_pm.in, assemble.pl: fix 5.005_03.
8083 2001-09-21 06:03  ask
8085         * Configure.pl: make the ivsize detection work for us normal people
8086         without . in our PATH.  :-)
8088 2001-09-21 05:56  brentdax
8090         * test_main.c: Change _read to read for portability to Tru64
8091         (Damien Neil <neild@misago.org> and likely many others)
8093 2001-09-21 05:46  ask
8095         * Makefile.in: "update" target to update from cvs.
8097 2001-09-21 05:44  brentdax
8099         * Configure.pl, test_c.in: Fix issues with ivsize and nvsize
8101 2001-09-21 02:43  brentdax
8103         * Configure.pl: Fix a typo that forced the -g flag on
8105 2001-09-20 22:41  dan
8107         * packfile.c: Had some no-value returns. Naughty
8109 2001-09-20 22:40  dan
8111         * t/test.pasm: Added labels to output
8113 2001-09-20 15:39  simon
8115         * Parrot/Opcode.pm, Parrot/Test.pm, lib/Parrot/Opcode.pm,
8116         lib/Parrot/Test.pm:
8117         This patch does two only somewhat related things.
8119         Parrot/Opcode.pm:  Change the hard-wired assumption that sizeof(nv)
8120         = 2*sizeof(iv) to a PConfig-type computed value.
8122         Parrot/Test.pm:  Change it to run with the perl that was used to
8123         generate this version of Parrot.  This is useful if, for example,
8124         you want to use bleadperl to build and test parrot (e.g. to try out
8125         various 64-bit options) but you still have a 5.6.x (or 5.005_xx)
8126         installed as the default 'perl' on your system.  Since perl-5.7.x
8127         is installed 'version-only', a plain 'perl' is quite likely to pick
8128         up the older perl in such cases. Such an older perl might well not
8129         understand pack('q') used in the assembler.
8131         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
8133 2001-09-20 15:14  gregor
8135         * packfile.c:
8136           * Fixed a typo in pad calculation that throwing off unpack and
8137         pack.
8139 2001-09-20 15:03  thgibbs
8141         * t/op/integer.t: Removed overflow tests from integer.t.  set_i_ic
8142         tests now cover all registers.
8144         Courtesy of: Damien Neil neild@misago.org
8146 2001-09-20 14:48  thgibbs
8148         * process_opfunc.pl: Changed process_opfunc.pl to work on 64 bit
8149         machines.
8151 2001-09-20 14:35  simon
8153         * Configure.pl, assemble.pl:
8154         Pack IVs correctly.
8156         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
8158 2001-09-20 14:06  gregor
8160         * languages/jako/jakoc:
8161           * Fixed a tyop in the string interpolation regex.
8163         Courtesy of Michael L Maraist <maraist@UDel.Edu>
8165 2001-09-20 13:56  gregor
8167         * languages/jako/jakoc:
8168           * Updated jakoc to work with the single-destination comp ops.
8170 2001-09-20 05:08  bdwheele
8172         * assemble.pl: macro expansion.  Here's the test macro I was using:
8174         # this uses I32,I31 as temporaries.  # macro must be preceeded by a
8175         label.  testi       macro   num,got,want    print   "Test #"
8176         print   num     print   "..."   set     I32,want        set
8177         I31,got         eq      I32,I31,$ok     print   "NG\n"  branch
8178         $end $ok:       print   "OK\n" $end:    endm
8180         It is invoked as:
8182         Test1:  testi   1,I3,I2
8184 2001-09-20 03:52  dan
8186         * stacks.c, include/parrot/stacks.h: Preliminary files for the
8187         generic stack support
8189 2001-09-20 02:49  bdwheele
8191         * assemble.pl: Added include processing to assemble.pl  the syntax
8192         is: include 'file.to.include'
8194 2001-09-19 23:57  thgibbs
8196         * t/op/integer.t, t/op/number.t, assemble.pl, opcode_table: Fixed
8197         opcode_table listing of if_i_ic and if_n_ic.  Dan had changed the
8198         function to only use 2 args, but the opcode_table still had three
8199         listed.  Fixed integer.t and number.t to use the new comparison
8200         operators.  Improved assemble.pl ability to grok operators by
8201         constructing a function set and comparing operator types.
8203 2001-09-19 22:42  dan
8205         * assemble.pl: Binmodes the output filehandles now. (No more
8206         bytecode munching...)
8208 2001-09-19 22:32  dan
8210         * Configure.pl, basic_opcodes.ops, opcode_table, process_opfunc.pl,
8211         t/euclid.pasm, t/test.pasm, t/test2.pasm: Changed opcodes so
8212         conditional branches take a single argument, and fall through
8213         otherwise.
8215 2001-09-19 21:19  thgibbs
8217         * memory.c: Added explanation of mem_allocate_aligned give by Dan
8218         Sugalski
8220         Courtesy of: Josh Wilmes <josh@hitchhiker.org>
8222 2001-09-19 21:04  thgibbs
8224         * include/parrot/interpreter.h, Configure.pl,
8225         build_interp_starter.pl, bytecode.c, config_h.in, interpreter.c,
8226         process_opfunc.pl: Changed opcode_t from a union to a configurable
8227         type.
8229 2001-09-19 20:54  thgibbs
8231         * assemble.pl: Missed a couple of changes for 64 bit portability.
8233 2001-09-19 20:37  gregor
8235         * packfile.c, include/parrot/packfile.h:
8236           * Added "methods" for setting and getting all the various
8237         attributes,
8238             probably sufficient for an assembler to use the library.
8240 2001-09-19 20:04  thgibbs
8242         * assemble.pl: Modifications to run on 64 bit platforms.  To run on
8243         a 64 bit platform manually change the  setting for 'i' from 'l' to
8244         'q'.  This should be automatically done by a Configure setting in
8245         the near future.
8247 2001-09-19 19:10  thgibbs
8249         * config_h.in: changed c++ comment to c comment.
8251         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
8253 2001-09-19 17:48  gregor
8255         * .cvsignore, MANIFEST, Makefile.in, packfile.c, pdump.c,
8256         include/parrot/packfile.h:
8257           * C code for dealing with PackFiles as if they were objects.
8258         Mostly
8259             read-only interface for now, but it would not be hard to make
8260         it
8261             read-write. [packfile.c, include/parrot/packfile.h]
8263           * PackFile Dumping program that falls short of disassembling, but
8264             tests the above code and provides a hex listing of the byte
8265         code
8266             contents of the PackFile. [pdump.c]
8268           * New Makefile target 'pdump' for the above program, and related
8269             Makefile.in changes.
8271           * Updated MANIFEST to reflect the added files
8273           * Update .cvsignore to ignore pdump.
8275 2001-09-19 14:55  thgibbs
8277         * MANIFEST: Added number.t and trans.t to MANIFEST
8279 2001-09-19 05:40  thgibbs
8281         * process_opfunc.pl: Now taking & of opcode_t instead of i member
8282         of union opcode_t.  I hope this will be more portable for set_n_nc.
8284 2001-09-19 05:39  thgibbs
8286         * t/op/integer.t: Added end to test 1.
8288 2001-09-19 00:09  thgibbs
8290         * t/op/number.t: Added end to each test
8292 2001-09-19 00:00  simon
8294         * t/op/number.t:
8295         Number tests! Wooo!
8297         Courtesy of: Damien Neil <neild@misago.org>
8299 2001-09-18 23:52  thgibbs
8301         * interpreter.c: Added casts to appropriate types to make -Wall not
8302         complain on certain printf formats
8304 2001-09-18 23:31  thgibbs
8306         * t/op/integer.t: Added end to each test.
8308 2001-09-18 22:54  thgibbs
8310         * t/op/trans.t: Added trans.t for transcendental math function
8311         tests.
8313 2001-09-18 22:28  simon
8315         * MANIFEST:
8316         MANIFEST updates. (And notice how I carefully snuck in the
8317         t/op/integer.t there...)
8319         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
8321 2001-09-18 22:26  simon
8323         * t/: integer.t, op/integer.t:
8324         Except it doesn't go there. Duh.
8326 2001-09-18 22:25  simon
8328         * t/integer.t:
8329         Tests for integer ops.
8331         Courtesy of: Damien Neil <neild@misago.org>
8333 2001-09-18 22:03  thgibbs
8335         * include/parrot/bytecode.h, include/parrot/interpreter.h,
8336         build_interp_starter.pl, bytecode.c, config_h.in, interpreter.c,
8337         make_op_header.pl, process_opfunc.pl, test_main.c: Changed IV to
8338         opcode_t union for operators.  This required a few perl script
8339         changes to output the correct type.  There were also some changes
8340         to allow -pedantic in gcc
8342 2001-09-18 21:07  gregor
8344         * disassemble.pl, Parrot/PackFile.pm,
8345         Parrot/PackFile/ConstTable.pm, Parrot/PackFile/Constant.pm,
8346         lib/Parrot/PackFile.pm, lib/Parrot/PackFile/ConstTable.pm,
8347         lib/Parrot/PackFile/Constant.pm:
8348         Converted the disassembler to use the Parrot::PackFile Perl classes
8349         to do its job.
8351 2001-09-18 19:18  brentdax
8353         * Makefile.in: Fix missing functions for real this time.  (I
8354         swear!)
8356 2001-09-18 18:49  brentdax
8358         * Configure.pl: Remove unnecessary -I.. (courtesy of Andy Dougherty
8359         <doughera@lafayette.edu>}
8361 2001-09-18 18:47  brentdax
8363         * Makefile.in: Fix bugs with missing math, etc. functions
8365 2001-09-18 14:42  thgibbs
8367         * strnative.c: Sorry Simon...forgot bustart was a void* not a
8368         char*.
8370 2001-09-18 13:59  thgibbs
8372         * strnative.c: Removed unnecessary IV cast in concat.
8374 2001-09-18 13:58  thgibbs
8376         * t/op/string.t: Removed unnecessary IV cast in concat.  Added end
8377         to concat test in string.t
8379 2001-09-18 12:07  gregor
8381         * languages/jako/jakoc:
8382           * var num ... no longer requires assignment
8383           * automatic casting between int and num
8384           * Fixed an error message
8386         Courtesy of: Simon Cozens <simon@cvs.perl.org>
8388 2001-09-18 11:57  simon
8390         * TODO:
8391         Gonna have to start thinking of more things to do, soon.
8393 2001-09-18 10:42  simon
8395         * opcode_table:
8396         Introduce a little more tidiness into the opcode table.
8398 2001-09-18 03:06  gregor
8400         * basic_opcodes.ops, opcode_table, t/euclid.pasm:
8401         Resurrected register-const ops per Dan's request.
8403 2001-09-18 02:20  gregor
8405         * .cvsignore, Configure.pl, MANIFEST, Makefile.in,
8406         build_interp_starter.pl, bytecode.h, events.h, exceptions.h,
8407         global_setup.h, interpreter.h, io.h, memory.h, parrot.h,
8408         process_opfunc.pl, register.h, stacks.h, string.h, strnative.h:
8409         Committed some files that were missed in the last *.h moving
8410         commit.
8412 2001-09-18 02:17  gregor
8414         * include/parrot/.cvsignore: Fixed a typo in .cvsignore.
8416 2001-09-18 02:16  gregor
8418         * include/parrot/: .cvsignore, bytecode.h, events.h, exceptions.h,
8419         global_setup.h, interpreter.h, io.h, memory.h, parrot.h,
8420         register.h, stacks.h, string.h, strnative.h: Added .cvsignore file
8421         missed in last commit for the move of *.h to include/parrot.
8423 2001-09-18 01:32  simon
8425         * t/Makefile:
8426         Trivial "clean" target to t/Makefile.
8428 2001-09-18 01:32  simon
8430         * assemble.pl, build_interp_starter.pl, disassemble.pl,
8431         Parrot/Opcode.pm, lib/Parrot/Opcode.pm:
8432         Change icky Digest::MD5 for nice simple unpack()
8434         Courtesy of: Jonathan Scott Duff <duff@cbi.tamucc.edu>
8436 2001-09-18 00:35  simon
8438         * basic_opcodes.ops, opcode_table, docs/parrot_assembly.pod,
8439         t/op/string.t:
8440         New concat op. Hey, if I'm going to talk about it in an article,
8441         better implement it...
8443 2001-09-17 22:54  gregor
8445         * MANIFEST, Parrot/PackFile.pm, Parrot/PackFile/ConstTable.pm,
8446         Parrot/PackFile/Constant.pm, Parrot/PackFile/FixupTable.pm,
8447         lib/Parrot/PackFile.pm, lib/Parrot/PackFile/ConstTable.pm,
8448         lib/Parrot/PackFile/Constant.pm, lib/Parrot/PackFile/FixupTable.pm:
8450         Functions for reading, writing and manipulating Parrot Pack Files.
8451         NOTE: This is a proposed term based on the fact that the file
8452         contains more than just byte code, and another language (Java)
8453         calls its binary files by a broader notion of what's in them (Class
8454         Files). Since Perl has packages, and since we use pack() to write
8455         them, we'll call them PackFiles (at least for now).
8457         That does, however, beg the question of file extension. Should we
8458         name the files "foo.pack" instead of "foo.pbc"?
8460 2001-09-17 20:23  thgibbs
8462         * interpreter.c, test_main.c: Uncuddled else statements for coding
8463         standard.
8465 2001-09-17 19:57  gregor
8467         * Parrot/Opcode.pm, lib/Parrot/Opcode.pm:
8468         Added a $revision variable, parsing of the CVS Id line in
8469         opcode_table and a &revision() subroutine.
8471 2001-09-17 19:53  gregor
8473         * opcode_table:
8474         Added a CVS Id tag to it.
8476 2001-09-17 18:58  thgibbs
8478         * interpreter.c: Cleared interpreter flags on creation.
8480 2001-09-17 18:38  gregor
8482         * build_interp_starter.pl, bytecode.c, bytecode.h, interpreter.c,
8483         interpreter.h, test_main.c:
8484           * Provides macros in interp_guts.h for setting up arrays with
8485             op names and op arg counts (done via build_interp_starter.pl).
8487             These are used in the op tracing
8489           * The functions in bytecode.[hc] pass around a pointer to the
8490         length
8491             of the bytecode so that later when we get to runops, we know
8492             how much bytecode we've got and we can detect out-of-bounds
8493             jumping. The documentation is updated, too.
8495           * runops in interpreter.c now looks at interpreter->flags to
8496             decide if the core of runops should be runops_trace_core or
8497             runops_notrace_core. These new functions contain just the
8498             while-loop portion of runops. A new function runops_generic
8499             does any other setup (such as checking the bytecode
8500             fingerprint) or wrapup (such as complaining if we ended up
8501             out-of-bounds). NOTE: I didn't know what we should do for
8502             functions in here that are not part of the api, so I gave
8503             them docs with 'TODO' marks mentioning they really aren't
8504             part of the api. Guidance appreciated.
8506           * test_main.c now checks for '-t' arg and sets the tracing flag
8507             on its interpreter instance as appropriate.
8509 2001-09-17 17:47  bdwheele
8511         * assemble.pl: added some default equates, and if they're sub
8512         references, they are computed each time it is referenced.
8514 2001-09-17 16:15  dan
8516         * interpreter.h:
8518         Added flags to the interpreter structure and defined a few.
8520 2001-09-17 15:51  simon
8522         * bytecode.h, string.h:
8523         VAR_SCOPE on globals.
8525 2001-09-17 15:20  simon
8527         * MANIFEST:
8528         Parrot/Opcode.pm, Parrot/Test.pm into MANIFEST.
8530 2001-09-17 15:05  gregor
8532         * t/jump.pasm, MANIFEST:
8533         Added a test program to demonstrate jump_i.
8535 2001-09-17 14:44  thgibbs
8537         * register.c: Fixed register pop not using correct offset (off by
8538         one).
8540         Courtesy of: Philip Kendall <pak@ast.cam.ac.uk>
8542 2001-09-17 13:56  thgibbs
8544         * interpreter.c, register.c: Added code to call Parrot_clear_s
8545         during initialization and Parrot_clear_s and Parrot_clear_p when a
8546         new stack frame is pushed.
8548 2001-09-17 13:51  gregor
8550         * languages/jako/: Makefile, bench.jako, euclid.jako, fact.jako,
8551         fib.jako, hello.jako: Added bench.pasm to "clean"
8553 2001-09-17 13:49  gregor
8555         * languages/jako/: jakoc, Makefile:
8556         Added CVS Id tag.
8558 2001-09-17 13:49  gregor
8560         * languages/jako/jakoc:
8561         Code streamlining.
8563         Courtesy of: Buggs <buggs-perl6@splashground.de>
8565 2001-09-17 13:29  gregor
8567         * MANIFEST, opcheck.pl:
8568         Added an opcode_table checker to make sure that all opcodes listed
8569         there conform to a simple set of naming rules (rules themselves, of
8570         course, are subject to change).
8572 2001-09-17 13:23  thgibbs
8574         * string.c: Modified string.c to correctly use the return value of
8575         realloc.
8577 2001-09-17 05:26  brentdax
8579         * Makefile.in: Making the Makefile smarter
8581 2001-09-16 23:06  brentdax
8583         * hints/mswin32.pl: Finishing the Configure hints
8585 2001-09-16 23:05  brentdax
8587         * Configure.pl, Makefile.in, parrot.h, test_main.c,
8588         Parrot/Opcode.pm, lib/Parrot/Opcode.pm: Win32 compatibility,
8589         Configure hints, 5.005 compatibility, MANIFEST checking
8591 2001-09-16 19:25  bdwheele
8593         * assemble.pl: parrot assembly equates
8595 2001-09-16 18:03  gregor
8597         * Makefile.in:
8598         Added 'test' target to run new test suite.
8600 2001-09-16 17:33  simon
8602         * basic_opcodes.ops:
8603         'not' was being !, rather than ~. Too many Perl programmers here, I
8604         suspect.
8606         Courtesy of: Tom Hughes <tom@compton.nu>
8608 2001-09-16 17:21  simon
8610         * Parrot/Test.pm, lib/Parrot/Test.pm, t/harness, t/op/basic.t,
8611         t/op/string.t:
8612         A *real* test suite!
8614         Courtesy of: "Mattia Barbon" <mbarbon@dsi.unive.it>
8616 2001-09-16 16:49  gregor
8618         * basic_opcodes.ops, opcode_table:
8619         At Dan's request, my new register-constant comparison ops have been
8620         removed.
8622 2001-09-16 16:40  gregor
8624         * languages/jako/jakoc:
8625         Fixed a copy-paste error in one of jakoc's error messages.
8627         Courtesy of: Buggs <buggs-perl6-list@splashground.de>
8629 2001-09-16 16:37  gregor
8631         * languages/jako/jakoc:
8632         Modified comparison implementation to use temporary registers in
8633         the case of register-constant and constant-register comparisons.
8634         This will allow the compiler to emit code that works when the
8635         constant-comparison ops are backed out of Parrot. If the ops ever
8636         make their way back in, then jakoc can emit more efficient code
8637         again.
8639 2001-09-16 16:19  bdwheele
8641         * assemble.pl, t/local_label.pasm: Added local labels ($whatever)
8642         ... though not subroutine based like the documentation wants, they
8643         are local to the last non-local label defined.
8645 2001-09-16 14:02  simon
8647         * MANIFEST:
8648         And remember, when you add stuff, keep the manifest up to date.
8650 2001-09-16 02:55  ask
8652         * Makefile.in: a "shared" target for building libparrot.so
8654 2001-09-16 02:45  thgibbs
8656         * bytecode.c, bytecode.h, events.h, exceptions.h, global_setup.c,
8657         global_setup.h, interpreter.c, interpreter.h, io.h,
8658         make_op_header.pl, memory.c, memory.h, parrot.c, parrot.h,
8659         process_opfunc.pl, register.c, register.h, stacks.h, string.c,
8660         string.h, strnative.c, strnative.h, test_main.c: Updated files to
8661         use the coding standard PDD.  Also changed Perl_Interp to
8662         Parrot_Interp.
8664 2001-09-16 02:21  ask
8666         * README: emphasise the bits about the license not being worked out
8667         yet.
8669 2001-09-15 22:21  simon
8671         * process_opfunc.pl:
8672         basic_opcodes.c should *scream* that it's autogenerated.
8674 2001-09-15 21:58  gregor
8676         * languages/jako/Makefile:
8677         Fixed Makefile to use 'jakoc' instead of 'jako_compiler.pl' to
8678         compile.
8680 2001-09-15 21:58  gregor
8682         * languages/jako/: jako_compiler.pl, jakoc:
8683         Renamed the Jako compiler to jakoc from jako_compiler.pl
8685 2001-09-15 21:51  gregor
8687         * languages/jako/: Makefile, bench.jako, euclid.jako,
8688         jako_compiler.pl:
8689         Added a new bench.jako example based on Leon Brocard's Bench.java.
8691         Jako Compiler:   * fix a bug in assignment handling   * add some
8692         more conditionals to while and if   * revert to using implicit
8693         opcodes in a few cases that were broken     before the assembler
8694         patch went in recently.
8696 2001-09-15 21:46  gregor
8698         * assemble.pl, basic_opcodes.ops, opcode_table:
8699         New ops for register-constant INTEGER comparisons:
8701           {eq,ne,lt,le,gt,ge}_ic_ic
8703         New ops for register-register and register-constant NUMERIC
8704         comparisons:
8706           eq_nc_ic
8707           {ne,lt,le,gt,ge}_{n,nc}_ic
8709         Assembler:
8711           Allow uppercase and underscores in labels.
8713           Tweaks to the op infer code to make it work with the examples
8714         I've been
8715           creating.
8717 2001-09-15 19:16  thgibbs
8719         * README: Updated README to include Configure.pl
8721 2001-09-15 17:05  simon
8723         * build_interp_starter.pl:
8724         Casting happiness
8726         Courtesy of: Jarkko Hietaniemi <jhi@cc.hut.fi>
8728 2001-09-15 16:45  simon
8730         * assemble.pl:
8731         And the same again: Parrot/Opcode.pm wasn't "..-aware".
8733 2001-09-15 16:40  simon
8735         * t/Makefile:
8736         The Parrot/Opcode.pm dependency means we need to do -I.. in the
8737         test Makefile
8739 2001-09-15 12:26  simon
8741         * memory.c:
8742         Fixed to match the coding standards.
8744         Courtesy of: Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
8746 2001-09-15 01:57  ask
8748         * Configure.pl, Makefile.in, Parrot/Opcode.pm,
8749         lib/Parrot/Opcode.pm: make the Makefile use the perl that was used
8750         to run Configure.pl
8752 2001-09-15 01:48  ask
8754         * Parrot/Opcode.pm, lib/Parrot/Opcode.pm: if we need perl 5.6, just
8755         say so. :-)
8757 2001-09-15 01:42  gregor
8759         * languages/jako/: euclid.jako, fact.jako, fib.jako,
8760         jako_compiler.pl:
8761         Compiler: Added variable interpolation in double-quoted strings.
8762         Examples: Made use of variable interpolation.
8764 2001-09-15 01:28  gregor
8766         * Parrot/.cvsignore:
8767         Ignore the Config.pm generated file.
8769 2001-09-15 01:22  gregor
8771         * languages/jako/: .cvsignore, Makefile, euclid.jako, fact.jako,
8772         fib.jako, hello.jako, jako_compiler.pl:
8773         gnp: Added some more sample Jako files and added many more
8774         operators to the compiler. Preparations for supporting all the Math
8775         and bitwise ops.
8777 2001-09-14 19:06  simon
8779         * assemble.pl, build_interp_starter.pl, disassemble.pl,
8780         make_op_header.pl, process_opfunc.pl, Parrot/Opcode.pm,
8781         lib/Parrot/Opcode.pm:
8782         Move common table reading stuff to a module.
8784         Courtesy of: Damien Neil <neild@misago.org>
8786 2001-09-14 17:42  simon
8788         * .cvsignore:
8789         More .cvsignore foo.
8791 2001-09-14 17:40  simon
8793         * assemble.pl, config_h.in:
8794         De-coredump
8796         Courtesy of: Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
8798 2001-09-14 17:38  simon
8800         * assemble.pl, t/Makefile:
8801         Make assemble.pl look in its parent directory if the data files it
8802         needs aren't in the current one. Plus a Makefile that lets "make
8803         foo.pbc" work in t/
8805         Courtesy of: Rocco Caputo <troc@netrus.net>
8807 2001-09-14 16:29  simon
8809         * make_op_header.pl:
8810         Wildly experimental patch to make Parrot compile on FreeBSD. (And
8811         probably segfault everywhere else.)
8813 2001-09-14 15:58  dan
8815         * languages/jako/: euclid.jako, jako_compiler.pl:
8817         Added in the first mini-language that targets Parrot.
8819         Courtesy of: "Gregor N. Purdy" <gregor@focusresearch.com>
8821 2001-09-14 15:20  dan
8823         * memory.c: Was misaligning returned memory. Fixed.
8825 2001-09-14 15:08  simon
8827         * Makefile.in, basic_opcodes.ops, bytecode.c, global_setup.c,
8828         interpreter.c, interpreter.h, memory.c, parrot.c, parrot.h,
8829         register.c, register.h, string.c, string.h, strnative.c,
8830         test_main.c:
8831         Fixes to include <parrot/foo.h>
8833         Courtesy of: Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
8835 2001-09-14 12:05  simon
8837         * strnative.c:
8838         Appease Tru64.
8840 2001-09-14 12:01  simon
8842         * memory.c:
8843         Appease Tru64.
8845 2001-09-14 11:54  simon
8847         * interpreter.c:
8848         Remove lvalue cast.
8850 2001-09-14 11:45  simon
8852         * Configure.pl:
8853         Be 5.005 friendly.
8855 2001-09-14 11:39  simon
8857         * Configure.pl:
8858         Tru64 cc doesn't like -Wall
8860 2001-09-14 10:57  simon
8862         * Config_pm.in, Configure.pl, MANIFEST, Makefile, Makefile.in,
8863         assemble.pl, build_interp_starter.pl, bytecode.c, bytecode.h,
8864         config.h.in, config_h.in, disassemble.pl, interpreter.c:
8865         Configure now generates Makefile
8867         Courtesy of: Brent Dax <brentdax@cpan.org>
8869 2001-09-14 10:08  simon
8871         * t/test3.pasm:
8872         Add "end"
8874         Courtesy of: Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
8876 2001-09-14 10:07  simon
8878         * assemble.pl:
8879                 * uses Getopt::Long for options.  -c is now --checksyntax.
8880         I wasn't
8881         sure how to keep compatible (patches welcome!)         * options
8882         include:                 --help                 --version
8883               --verbose                 --output=file
8884         --listing=file                 --checksyntax         * produces
8885         verbose listing of what the assembler saw :)  Only one nitpick with
8886         it:  unknown symbols are given as 0xffffffff, unfortunately, this
8887         includes symbols which may be defined later in the file (i.e.
8888         forward jumps).
8890         Courtesy of: Brian Wheeler <bdwheele@indiana.edu>
8892 2001-09-14 10:06  simon
8894         * strnative.c:
8895         substr growth fixup
8897         Courtesy of: Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
8899 2001-09-14 10:03  simon
8901         * bytecode.c, global_setup.c, interpreter.c, memory.c, memory.h,
8902         register.c, string.c, strnative.c, test_main.c:
8903         Coding standards conformance
8905         Courtesy of Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
8907 2001-09-14 09:46  simon
8909         * assemble.pl:
8910         Make the assembler grok transcendental maths again.  Courtesy of:
8911         Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
8913 2001-09-13 17:29  simon
8915         * assemble.pl:
8916         Better opcode guessing, from Brian Wheeler. (Again!)
8918 2001-09-13 17:20  dan
8920         * docs/parrot_assembly.pod:
8922         Took out duplicate entries for iton, ntoi, and tostring.
8924 2001-09-13 17:16  simon
8926         * assemble.pl, basic_opcodes.ops, opcode_table:
8927         From Brian Wheeler:
8929         This patch gives the assembler support of '\a','\n','\r','\t', and
8930         '\\' in string constants.
8932         In addition, it changes (for all registers) "I reg %li is ..." to
8933         just the value of the register.  Printing constants is also
8934         supported, but alas, you have to specify the type (print_sc,
8935         print_ic, print_nc).
8937 2001-09-13 15:38  simon
8939         * assemble.pl:
8940         Why don't I actually *test* this stuff before applying it, eh?
8942 2001-09-13 15:34  simon
8944         * TODO, t/euclid.pasm:
8945         From: "Gregor N. Purdy" <gregor@focusresearch.com> Subject: [patch
8946         (really)] Removed opcode qualifers t/euclid.pasm to exercise opcode
8947         inference
8949 2001-09-13 14:42  simon
8951         * assemble.pl:
8952         A new assembler, from Brian Wheeler.
8954 2001-09-13 09:44  simon
8956         * basic_opcodes.ops, interpreter.h, parrot.h, strnative.c,
8957         test_main.c:
8958         Two more from Tom Hughes:     Patch to fix C++ style comments
8959         Patch to remove use of structure constant/cast
8961 2001-09-13 09:39  simon
8963         * TODO, docs/strings.pod:
8964         Update string docs.
8966 2001-09-13 09:36  simon
8968         * Makefile, basic_opcodes.ops:
8969         Tom Hughes      Patch to link with the maths library Tom Hughes
8970          Patch to fix += on rvalue
8972 2001-09-13 08:57  simon
8974         * MANIFEST:
8975         I guess nobody's been using the nightly builds...
8977 2001-09-13 08:27  simon
8979         * assemble.pl, basic_opcodes.ops, opcode_table:
8980         Bitwise ops, from Brian Wheeler.
8982 2001-09-13 08:23  simon
8984         * .cvsignore, t/.cvsignore:
8985         .cvsignore's, from Gregor Purdy.
8987 2001-09-13 08:22  simon
8989         * Makefile:
8990         Euclidean test and test output rearranging from Gregor Purdy.
8992 2001-09-13 08:21  simon
8994         * assemble.pl, basic_opcodes.ops, disassemble.pl, opcode_table:
8995         Math ops from Gibbs Tanton.
8997 2001-09-13 08:14  simon
8999         * basic_opcodes.ops, opcode_table, string.c, string.h, strnative.c,
9000         t/test2.pasm:
9001         String substr op; also rearranged "encoding" to be a vtable
9002         pointer, not an array index. Haven't changed docs to reflect this,
9003         oops.
9005         Simon
9007 2001-09-12 19:48  dan
9009         * t/euclid.pasm: Implementation of Euclid's Algorithm, courtesy of
9010         Gregor Purdy
9012 2001-09-12 19:39  dan
9014         * basic_opcodes.ops, opcode_table: From Gregor Purdy. Adds mod_i.
9016 2001-09-12 19:23  dan
9018         * interpreter.h, parrot.h: Quick placeholder entry for string
9019         function tables
9021 2001-09-12 18:58  dan
9023         * memory.c: Added in a cast to make gcc happy.
9025 2001-09-12 16:44  dan
9027         * docs/parrot_assembly.pod:
9029         PDD describing parrot's assembly language and the opcodes in it
9031 2001-09-12 14:20  dan
9033         * memory.c:
9034         Fixed alignment issues with allocation
9036 2001-09-12 10:54  simon
9038         * Makefile, assemble.pl, bytecode.c, disassemble.pl,
9039         make_op_header.pl, opcode_table, process_opfunc.pl:
9040         Brian Wheeler's big patch:
9042         * Changes the opcode_table file to provide additional information
9043         about the operands.  Case shouldn't be a problem since that data
9044         never becomes a C symbol [this is pretty much as before]
9046         * Padding errors solved:  assemble.pl and bytecode.c were padding
9047         the constants incorrectly.  It should have been 4-(size % 4), not
9048         just (size % 4).  It is now fixed in both places.
9050         * assembler has less special cases, and should be easier to hang
9051         error checking on
9053         * disassembler dumps constant table and the format is a bit
9054         prettier, including register names, etc.
9056 2001-09-11 23:21  dan
9058         * build_interp_starter.pl, interpreter.c:
9060         Abstracted the runops function core into a macro for easy
9061         replacement later.
9063 2001-09-11 10:43  simon
9065         * Configure.pl, MANIFEST, Makefile, config.h, config.h.in:
9066         Configure system from Brent Dax <brentdax@cpan.org>
9068 2001-09-11 09:38  simon
9070         * assemble.pl, test.pbc:
9071         From: Bryan C. Warnock <bwarnock@raba.com> Subject: Patch:
9072         assembler deferred output
9074         Also got rid of the bytecode, since that's probably way out of
9075         date.
9077 2001-09-11 09:26  simon
9079         * basic_opcodes.ops, opcode_table, t/test2.pasm:
9080         From: Bryan C. Warnock <bwarnock@raba.com> Subject: length_s_i
9081         patch
9083 2001-09-10 23:20  simon
9085         * MANIFEST:
9086         And that move needs a MANIFEST change. So many things to remember!
9088 2001-09-10 23:18  simon
9090         * t/: test.pasm, test2.pasm, test3.pasm:
9091         Move tests to t/. (Oh, CVS doesn't work the way I think it does.)
9093 2001-09-10 23:18  simon
9095         * test.pasm, test2.pasm, test3.pasm:
9096         Move tests to t/
9098 2001-09-10 23:04  dan
9100         * test3.pasm:
9102         Register push/pop test
9104 2001-09-10 22:47  simon
9106         * basic_opcodes.ops, bytecode.c, parrot.h, test_main.c:
9107         Fix up format warnings, from Sam Tregar <sam@tregar.com>.
9108         (Modified to avoid conflict with Dan's changes.)
9110 2001-09-10 22:45  dan
9112         * disassemble.pl:
9114         Happier about blanks in opcode_table
9116 2001-09-10 22:40  dan
9118         * interpreter.c, register.c:
9120         Yanked out debugging code, since these work OK. The bug I want is
9121         elsewhere.
9123 2001-09-10 22:30  simon
9125         * MANIFEST:
9126         Uhm. We want make_op_header.pl. We really, really do.
9128 2001-09-10 22:26  simon
9130         * Makefile, TODO, assemble.pl, basic_opcodes.ops,
9131         build_interp_starter.pl, disassemble.pl, make_op_header.pl,
9132         opcode_table, process_opfunc.pl:
9133         Automatic opcode numbering, from Leon Brocard <acme@astray.com>.
9134         This means we can add lots more opcodes without fiddling about with
9135         the numbers. Hooray!
9137         Don't forget that "end" needs to be op zero, else the interpreter
9138         falls off the end of the code. This is Bad, and I wonder if there's
9139         a way around it.
9141 2001-09-10 19:49  simon
9143         * MANIFEST, make_op_table_build.pl:
9144         Hey! This doesn't do anything...
9146 2001-09-10 19:46  simon
9148         * Makefile:
9149         "clean" target cleanup from Bryan C. Warnock <bwarnock@raba.com>.
9151 2001-09-10 18:31  simon
9153         * MANIFEST:
9154         You know what this means...
9156 2001-09-10 18:30  simon
9158         * assemble.pl:
9159         "use strict" patch from Leon Brocard <acme@astray.com>. Hey, why
9160         wait for a release...? :)
9162 2001-09-10 18:13  simon
9164         * interpreter.c:
9165         Bad Dan! No cookie!
9167 2001-09-10 17:56  simon
9169         * README:
9170         A *real* README file, which doesn't claim it isn't for public
9171         consumption.
9173 2001-09-10 17:02  simon
9175         * TODO:
9176         More things to do.
9178 2001-09-10 16:56  dan
9180         * TODO: Added in assembler gripe. Also added a few blank lines for
9181         clarity
9183 2001-09-10 16:49  dan
9185         * register.h, register.c: Renamed the core functions so the opcodes
9186         can find 'em OK. (There were some conflicts)
9188 2001-09-10 16:48  dan
9190         * basic_opcodes.ops, opcode_table: Added register window ops
9192 2001-09-10 11:07  simon
9194         * TODO:
9195         Trivial TODO list.
9197 2001-09-10 11:05  simon
9199         * test.pbc, test2.pasm, test_main.c: Other string bits and pieces;
9200         note "-s" flag to test prog.
9202 2001-09-10 11:01  simon
9204         * docs/strings.pod:
9205         New string documentation.
9207 2001-09-10 11:01  simon
9209         * basic_opcodes.ops, opcode_table:
9210         String ops.
9212 2001-09-10 10:53  simon
9214         * global_setup.c:
9215         More string fu.
9217 2001-09-10 10:51  simon
9219         * memory.h:
9220         Just some more aliases for now. Used by string handling stuff.
9222 2001-09-10 10:50  simon
9224         * assemble.pl, bytecode.c, bytecode.h:
9225         Temporary hack to store string constants in bytecode and recreate
9226         them at runtime.
9228 2001-09-10 10:48  simon
9230         * op.h:
9231         op.h is now generated by the Makefile; remove it.
9233 2001-09-10 10:47  simon
9235         * Makefile:
9236         clean and op.h Makefile targets.
9238 2001-09-10 10:45  simon
9240         * string.c, string.h, strnative.c:
9241         More string vtable stuff.
9243 2001-09-07 21:07  dan
9245         * assemble.pl:
9247         Much less picky about whitespace in the opcode_table now. (Doesn't
9248         whine on blank lines)
9250 2001-09-07 16:23  dan
9252         * Makefile, assemble.pl, global_setup.h, interpreter.c,
9253         interpreter.h, opcode_table, parrot.h, test.pasm: (Here's hoping
9254         this takes) Added global_setup.h to declare init_world function
9256         Moved variable declarations out of the interpreter loop for small
9257         speed boost.
9259         Changed end opcode to now be opcode #0. A function is provided for
9260         it, but isn't ever executed.
9262         When the interpreter sees an opcode 0 in the stream it means the
9263         end of stream. Things were coring on Cygwin otherwise. (I think I
9264         was dereferencing a zero, which is bad)
9266 2001-09-06 22:07  dan
9268         * basic_opcodes.ops, process_opfunc.pl:
9270         Minor tweaks to basic_opcodes.ops to fix some NV issues. The rest
9271         are minor changes now that things are in a fixed state.
9273 2001-09-06 16:13  dan
9275         * basic_opcodes.c, test_opcodes.c:
9276         test_opcodes.c is now irrelevant--they're all in basic_opcodes.ops.
9278         basic_opcodes.c is now autogenerated from basic_opcodes.ops, and
9279         should be nuked. So it is. :)
9281 2001-09-06 03:35  dan
9283         * basic_opcodes.ops, build_interp_starter.pl, process_opfunc.pl:
9284         Scripts to build the header file that holds the function table
9285         creation code, as well as the script to turn an opcode file to C
9286         source. (And the basic opcode functions turned into an opcode
9287         source file)
9289 2001-09-06 03:31  dan
9291         * Makefile, interpreter.c:
9292         Changes to support the autogeneration of the opcode function
9293         pointer table in interpreter.c, along with the changes to the
9294         Makefile needed.
9296 2001-09-05 13:27  simon
9298         * bytecode.c, config.h, docs/opcodes.pod, docs/overview.pod,
9299         docs/parrotbyte.pod, docs/vtables.pod:
9300         Added stubs for the documents; working on them this week. (What's
9301         left of it.) config.h change is just to type VTABLE, and the
9302         bytecode thing you might want to revoke. It's apidoc for the
9303         functions in there.
9305 2001-09-03 18:26  simon
9307         * docs/strings.pod:
9308         A start on the string API documentation.
9310 2001-09-03 17:43  simon
9312         * opcode_table:
9313         Since we specify the opcode number, we can rearrange to a more
9314         human-friendly ordering.
9316 2001-09-03 17:42  simon
9318         * basic_opcodes.c:
9319         Coupl'a logic bugs. (I think)
9321 2001-09-03 17:41  simon
9323         * string.c, string.h, strnative.c:
9324         Tidying up the string vtables.
9326 2001-09-03 17:38  simon
9328         * make_op_header.pl:
9329         Spit out the whole of op.h, not just the bit in the middle.
9331 2001-08-29 13:16  ask
9333         * README: it seems like we indeed can commit. What about sending
9334         commit mails?
9336 2001-08-29 13:07  simon
9338         * Makefile, README, assemble.pl, basic_opcodes.c, bytecode.c,
9339         bytecode.h, config.h, disassemble.pl, events.h, exceptions.h,
9340         global_setup.c, interpreter.c, interpreter.h, io.h,
9341         make_op_header.pl, make_op_table_build.pl, memory.c, memory.h,
9342         op.h, opcode_table, parrot.c, parrot.h, register.c, register.h,
9343         stacks.h, string.c, string.h, strnative.c, strnative.h, test.pasm,
9344         test.pbc, test_main.c, test_opcodes.c:
9345         Initial checkin of Simon's work directory - Dan, feel free to nuke.
9346          I'm still working on the string stuff, though.
9348 2001-08-29 12:44  ask
9350         * README: update README with list address
9352 2001-08-29 12:36  ask
9354         * README: first readme.