* lib/Parrot/Pmc2c/MethodEmitter.pm:
[parrot.git] / ChangeLog
blob4f629d7e992b5fecf5610da0273220b6122f2833
1 #1 $Id$
3 2008.05.20    chromatic
4         * Released 0.6.2
5         See NEWS for more.
7 2008.04.15    particle
8         * Released 0.6.1
9         See NEWS for more.
11 2008.03.18    bernhard
12         * Released 0.6.0
13         See NEWS for more.
15 2008.02.20    pmichaud
16         * Released 0.5.3
17         See NEWS for more.
19 2008.01.15    rgrjr
20         * Released 0.5.2
21         See NEWS for more.
23 2007.12.18    jonathan
24         * Released 0.5.1
25         See NEWS for more.
27 2007.11.20    chromatic
28         * Released 0.5.0
29         See NEWS for more.
31 2007.10.17    coke
32         * Released 0.4.17
33         See NEWS for more.
35 2007.09.18    particle
36         * Released 0.4.16
37         See NEWS for more.
39 2007.08.22    pmichaud
40         * Released 0.4.15
41         See NEWS for more.
43 2007.07.17    particle
44         * Released 0.4.14
45         See NEWS for more.
47 2007.06.19    allison
48         * Released 0.4.13
49         See NEWS for more.
51 2007.05.15    chromatic
52         * Released 0.4.12
53         See NEWS for more.
55 2007.04.17    mdiep
56         * Released 0.4.11
57         See NEWS for more.
59 2007.03.20    coke
60         * Released 0.4.10
61         See NEWS for more.
63 2007.3.10     coke
64         * removed parakeet
66 2007.02.22    pmichaud
67         * Released 0.4.9
68         See NEWS for more.
70 2007.01.17    chromatic
71         * changed 'name' method on namespaces to 'get_name' per pdd21
73 2007.01.16    particle
74         * Released 0.4.8
75         See NEWS for more.
77 2006.12.12    particle
78         * added C<isnull> opcode
80 2006.11.14    chip
81         * Released 0.4.7
82         See NEWS for more.
84 2006.11.07      tewk
85         * added :init pragma functionality to subs
87 2006.10.28      jonathan
88         * added :vtable pragma functionality to subs
90 2006.09.18    chromatic
91         * added Parrot::Embed under ext/Parrot-Embed
93 2006.08.18    leo
94         * remove the None PMC - if needed it can trivially be reimplemented
95           in languages from r14189
97 2006.08.16    creiss
98         Merged Software Transactional Memory branch into trunk, adds:
99         * several new opcodes whose names start with stm_
100         * read-only PMC support
101         * several new PMC types (whose names start with STM*)
102         * support for threads (again)
104 2006.08.08    chip
105         * Released 0.4.6
106         See NEWS for more.
108 2006.08.02    chip
109         * opcodes: "in PMC" is no longer a synonym for "invar PMC";
110         there are opcodes now that want the real "in PMC".
111         * namespace and global opcodes now accept name arrays again, as
112         well as keys; the corresponding namespace PMC methods are gone.
114 2006.07.21    leo
115         * Parrot_exit, Parrot_on_exit take now an Interp * argument
117 2006.07.25    chip
118         * add experimental op find_type_i_p
119         * fix longstanding bug that sometimes didn't encode pasm keys as
120         Key PMCs (specifically "[S0]" and "['stringliteral']").
122 2006.07.24    chip
123         further implementation of new pdd21:
124         * new opcodes {get,set}*global
125           (old {find,store}*global will be supported for a short while)
127 2006.07.20    audreyt
128         * --maintainer prerequesites are now bison 2.2+ and flex 2.5.3x
129           (or some such --leo) 
130           (at the moment code is checking for 2.0 -- ambs)
132 2006.07.17    chip
133         partial implementation of new pdd21:
134         * old: "get_namespace KEY".  new: "get_hll_namespace KEY"
135         * get_namespace and find_global opcodes no longer accept arrays
136           of strings.  To use arrays, call namespace object methods.
138 2006.06.19    leo
139         * Released 0.4.5
140         See NEWS for more.
142 2006.06.03    leo
143         * I and N registers are never cleared to 0 / 0.0 on subroutine entry
145 2006.05.14    leo
146         * Released 0.4.4
147         See NEWS for more.
149 2006.04.30    bernhard
150         * Make the Perl PMCs dynamic and move them to src/dynpmc
152 2006.04.02    leo
153         * Released 0.4.3
154         See NEWS for more.
156 2006.03.06    leo
157         * Shifted argument type bits left by 2 according to r11754
158           change of docs/pdds/pdd03_calling_conventions.pod
159         * if you are creating PASM then code needs adjustment  
161 2006.02.22    leo
162         * Released 0.4.2
163         See NEWS for more.
165 2006.01.16    bernhard
166          * rename src/dynclasses to src/dynpmc 
167          * rename src/classes to src/pmc 
169 2006.01.15    leo
171          * find_global and friends returns a .Null PMC instead of .Undef on
172           lookup failure, iff lookup exceptions are off
174 2006.01.08    leo
175         * Released 0.4.1
176         See NEWS for more.
178 2005.12.28    particle
179         * renamed all .imc files to .pir
180         * modified all doc references to .pir as well
182 2005.12.13    particle
183         * moved jit/ directory to src/jit/
185 2005.12.12    particle
186         * moved io/ directory to src/io/
187         * moved classes/ directory to src/classes/
188         * moved dynclasses/ directory to src/dynclasses/
190 2005.12.08    particle
191         * moved types/ directory to src/types/
192         * moved pf/ directory to src/packfile/
193         * moved ops/ directory to src/ops/
195 2005.12.08    particle
196         * moved charset/ directory to src/charset/
197         * moved encodings/ directory to src/encodings/
199 2005.12.07    particle
200         * moved imcc/ directory to compilers/imcc/
202 2005.12.06    particle
203         * moved util/ directory to tools/util/
204         * removed imcc/examples/ directory
205         * moved ast/ directory to compilers/ast/
207 2005.12.05    particle
208         * moved imcc/docs/ directory to docs/imcc/
209         * moved build_tools/ directory to tools/build/
210         * modified MANIFEST, MANIFEST.generated, and MANIFEST.SKIP
212 2005.12.04    leo
213         * Released 0.4.0
214         * See NEWS for changes
216 2005.11.06    leo
217         * Released 0.3.1
218         * See NEWS for changes
220 2005.10.01    leo
221         * Released 0.3.0
222         * See NEWS for changes
224 2005.08.05    leo
225         * Released 0.2.3
226         * See NEWS for changes
228 2005.07.03    leo
229         * Released 0.2.2
230         * See NEWS for changes
232 2005.06.04    leo
233         * Released 0.2.1
234         * allow short names for object attributes
235         * string encoding and charset can now be set independently
236         * experimental mmap IO layer for slurping files
237         * enable compile opcode support for compilers written in PASM/PIR
238         * improved HLL support with .HLL and n_operators pragmas
239         * simplified hash code
240         * more strength reduce optimizations
241         * distinct debug and trace flag settings
242         * glob support in PGE
243         * new character classification opcodes and interfaces
244         * numerous bug fixes and enhancements
246 2005-05-08    leo
247         * Released 0.2.0
248         * parrot repository is now under subversion
249         * MMD (Multi Method Dispatch) enhanced
250         * new unary and infix opcodes that return new result PMCs
251         * dynamic scalar PMCs inherit now almost all from Parrot core PMCs
252         * more unification of PMCs and ParrotObjects
253         * tailcalls for functions and methods
254         * PGE (Parrot Grammar Engine) reworked
255         * Pugs creates Parrot code and Pugs is a registered compiler now
256         * new languages/lisp
257         * the usual bug fixes and improvements
259 2005-03-06    leo
260         * Released 0.1.2
261         * big rewrite of string code, not yet finished but ...
262         * partial implementation of a generational garbage collector
263         * indirect register frame addressing
264         * .return(args) PIR syntax
265         * moved most of the Python code to dynclasses
266         * a lot more Python functionality
267         * precalculate opcodes with all constants
268         * PGE - Parrot Grammar Engine
269         * scalar classes refactoring
270         * much more tests and big test system cleanup
271         * improved documentation
272         * and as always a lot more
274 2004-10-09    leo
275         * Released 0.1.1
276         * Need Perl 5.6 now for building
277         * Basic AST support, PAST file parser, bits of code generation
278         * BigInt PMC using GMP
279         * Complex PMC
280         * Dynamic loading improved including bundles of PMC classes
281         * Experimental support for "make install"
282         * IA64 and hppa JIT support
283         * ICU unicode support
284         * IO layer handling code
285         * IO readline and buffered IO fixes
286         * Incremental GC
287         * Internal pythonic functions: filter, map, reduce, max, min ...
288         * Languages updates for m4, tcl, perl6, regex. New parakeet language.
289         * Library updates, Stream and SDL library
290         * MMD - multi method dispatch for binary vtable methods
291         * Many new array PMCs
292         * Method call syntax in PIR obj."meth"(...)
293         * More OS stuff: stat, exec, system, gmtime, piped read and write
294         * New Python PMCs like Enumerate, None
295         * Non-branching compare opcodes
296         * PIR support for += and friends
297         * Python language subdir
298         * Python types mapped to existing PMCs
299         * Slices and range support
300         * Tons of bug fixes, documentation updates, new tests
301         * Win32 COFF exec support
302         * ... and a lot more
304 2004-02-29    leo
305         * Released 0.1.0
306         * "Ladies and gentlemen, I give you... objects!"
307         * Huge documentation overhaul
308         * More supported platforms, s. PLATFORMS
309         * Basic thread support for pthread based architectures
310         * Basic event handling for timers and signals including:
311         * PASM callbacks for NCI (native C) functions.
312         * Improved platform configuration
313         * COW stacks now working, stacks code redone
314         * Structure handling vastly improved
315         * Random PMC and rand primitives
316         * Better subroutine call syntax in PIR
317         * Make PIR subroutines compliant with pdd03
318         * Improved profiling (DOD, GC timings)
319         * Hash code improvements, incl. random key order support
320         * Experimental freeze/thaw code for some PMC types
321         * IO improvements for buffered layer and Win32
322         * String iterators
323         * String bitwise vtables
324         * Many new opcodes
325         * Support for JIT, where malloced memory isn't executable
326         * Priority DOD scheme for objects that need timely destruction
327         * Improved bytecode loading (e.g. onLoad functions)
328         * Language updates: forth, Perl6/P6C, m4
329         * Libraries: Getopt_Long, SDL, Dumper, Sort
330         * new JAPH examples
331         * Unified imcc and parrot test handling
332         * Many new tests (make test reports 1386 tests)
333         * Numerous bug fixes
336 2003-10-31    leo
337         * Released 0.0.13
338         * Yep thirteen - haunted by the ghost of 0.0.12
339         * Build imcc as parrot
340         * Objects more finished
341         * Delegate vtable methods to byte code
342         * Binary multi-method dispatching
343         * Isa and does methods for PMCs
344         * Call byte code from C
345         * Start of extension interface
346         * Experimental struct handling
347         * Catch access to NULL PMCs
348         * Experimental network socket interface code and opcodes
349         * IO fixes and improvements
350         * Dynamic opcode libraries
351         * Fix-assigned opcode numbers
352         * Argument flattening for function calls
353         * More native call interface (NCI) signatures
354         * Ncurses, postgres, and pcre interface libraries
355         * Forth language is vastly improved
356         * BSD and Win32 build improvements
357         * Many new tests and fixes
359 2003-10-22    melvin
360         * imcc moved from parrot/languages/ to parrot/
362 2003-09-20    sfink
364         * updated the native_pbc test files (from Leo)
365         * built 0.0.11.1 release tarball
367 2003-09-20    sfink
369         * CHANGES BUNDLED INTO 0.0.11:
370         * Executable output
371         * Dynamic PMC registration
372         * Trial exception system
373         * Beginnings of object system
374         * Iterators
375         * Ordered hashes
376         * I/O system improvements
377         * References
378         * Documentation for basic PMC types
379         * IMCC support of Parrot Calling Conventions
380         * Runtime loading of chartypes (and other string improvements)
381         * Conditional breakpoints
382         * Dramatically accelerated sweeps for finalizable objects
383         * Small PMCs (PMCs split into core and extensions)
384         * Loadable bytecode packfiles
385         * Constant PMCs
386         * Sub variants that deal with the stack correctly
387         * Switched runops core
388         * Line numbers in warnings
389         * Environment access
390         * Many documentation cleanups
391         * Conversion to CPS style!
392         * BASIC debugger and many other wacky features
393         * Filename, line number parsing support in IMCC
395 2003-07-21 17:31 chromatic
396         * applied copyright patch from Josh Wilmes
398 2003-06-14 13:50 dan
399         * Moved the registers out of the context structure, since they
400           really aren't context
401         * Changed the register stack frames to hold only 16 registers
402           rather than 32, added half-set push and pop ops, and reworked
403           the full set push/pops to do two half-set push/pops. Should
404           speed up saving register data on calls, since we usually only
405           care about the top half of the registers anyway.
406         * Started committing some of the new class/object framework
407         * Remembered to finally start updating the Changelog
409 2003-03-18 03:50  ask
411         * Various files
412           Update Yet Another copyright statements to reflect the (no longer
413           so) shiny new year.
415 2003-03-11 22:06  chip
417         * Configure.pl: print help on non-option command line args
419 2002-12-18 20:38  sfink: changes since 0.0.8
421         - Allow suppression of cgoto core to save memory during compile
422         * Native function calling interface
423         * Major rewrite of stack and list aggregates
424         - Scalar PMC added
425         * Scratchpads implemented
426         - Win32 libraries
427         - Internal memory subsystem documentation
428         * Preliminary DotGNU support
429         - Packfile fingerprinting
430         * Buffer/PMC unification (into PObjs)
431         * stabs debugging information support
432         * Major Jako overhaul, including:
433           - imcc integration
434           - native function calling
435         - Perl6 string interpolation
436         - languages/regex now targets IMCC
437         * Optional Lea memory allocator
438         * Full sprintf implementation
439         * Many, many new tests
440         * Miniparrot
441         - exchange ops
442         - runtime-controllable gc debugging
443         * PMC properties
444         - Crash info
445         * JIT: various improvements
446           - register usage tracking
447           - block register allocation
448           - optimizations
449           - more jitted ops
450           - restartable
451           - architecture abstraction layer
452           - debugging via GDB
453         * Beginning support for extensible packfiles
454         * Much better key support, generally
455         * splice()
456         * Restructured PMC hierarchy with better functionality inheritance
457         * IMCC: many, many improvements. See imcc/ChangeLog
458         * Perl6: index map grep join reverse defined
459         * Scheme with functions!
462 2002-03-19 22:54  nicholas
464         * docs/running.pod: Patch from Simon Glover <scog@amnh.org>:
466          We can now get usage information for test_parrot without having to
467          grep the source.
469 2002-03-19 22:53  simon
471         * Configure.pl:
472         Parrot is called parrot.
474 2002-03-19 22:53  nicholas
476         * docs/tests.pod: Patch from Simon Glover <scog@amnh.org>:
478          1. There are tests in t/pmc as well as t/op now.
479          2. Adds a comment about Parrot::Test
481 2002-03-19 18:09  dan
483         * Configure.pl, examples/assembly/life.pasm: Toss a prompt that
484         messes up automated builds
486         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
488 2002-03-19 00:33  mrjoltcola
490         * core.ops: Doc cleanup from Simon Glover.
492 2002-03-18 23:52  mrjoltcola
494         * io/io_unix.c: Typo fix for invalid lvalue caught by David Loyd.
496 2002-03-18 22:09  dan
498         * include/parrot/resources.h: Checked in old version
500 2002-03-18 20:17  dan
502         * include/parrot/resources.h: Forgot a prototype
504 2002-03-18 20:15  dan
506         * resources.c: D'oh! Thinko, fixed.
508         Courtesy of "Peter Gibbs" <peter@emkel.co.za>
510 2002-03-18 17:33  josh
512         * Configure.pl: Lowering the bar a bit.
514 2002-03-18 17:33  sfink
516         * languages/regex/: MAINTAINER, Makefile, README, regex.pl,
517         test.pl, lib/Regex.pm, lib/Regex/AsmOps.pm, lib/Regex/CodeGen.pm,
518         lib/Regex/Generate.pm, lib/Regex/Grammar.pm, lib/Regex/Grammar.y,
519         lib/Regex/Optimize.pm, lib/Regex/Parse.pm, lib/Regex/Pasm.pm,
520         lib/Regex/PreOptimize.pm, lib/Regex/RegexOps.pm,
521         lib/Regex/Rewrite.pm, lib/Regex/CodeGen/Re.pm,
522         lib/Regex/CodeGen/Rx.pm, lib/Regex/Rewrite/Re.pm,
523         lib/Regex/Rewrite/Rx.pm, lib/Regex/Rewrite/Stackless.pm,
524         t/example.t: Whoops, wrong time to check this in.
526 2002-03-18 16:42  dan
528         * memory.c, resources.c: Partial fix for GC's memory trouncing. At
529         least we consider the PMC and Buffer free pools worth collecting,
530         and initialize the Buffer pool stuff.  Still not 100% correct,
531         though.
533 2002-03-18 15:35  simon
535         * packfile.c:
536         Fix format arg bug.
538 2002-03-18 07:45  brentdax
540         * Configure.pl: Warn if you're using 64-bit ints on a 32-bit
541         system.
543 2002-03-18 00:09  sfink
545         * languages/regex/: MAINTAINER, Makefile, README, regex.pl,
546         test.pl, lib/Regex.pm, lib/Regex/AsmOps.pm, lib/Regex/CodeGen.pm,
547         lib/Regex/Generate.pm, lib/Regex/Grammar.pm, lib/Regex/Grammar.y,
548         lib/Regex/Optimize.pm, lib/Regex/Parse.pm, lib/Regex/Pasm.pm,
549         lib/Regex/PreOptimize.pm, lib/Regex/RegexOps.pm,
550         lib/Regex/Rewrite.pm, lib/Regex/CodeGen/Re.pm,
551         lib/Regex/CodeGen/Rx.pm, lib/Regex/Rewrite/Re.pm,
552         lib/Regex/Rewrite/Rx.pm, lib/Regex/Rewrite/Stackless.pm,
553         t/example.t: Buggy 1st version of regex compiler implementation.
554         Warning: the test code depends on features of the assembler that do
555         not yet exist.
557 2002-03-17 21:35  ajgough
559         * types/: bignum.c, bignum_atest.pl: Added a couple of quick routes
560         through addition and subtraction.  Also added the ability to run
561         all the tests, including the ones which deal with overflow and
562         underflow.  These fail, but that's expected.  Soon they'll pass.
563         Then I'll show them.  Yesssssss.  Tessssssssts my precioussssss,
564         passsssssssings tesssstsssss.
566 2002-03-17 20:06  ajgough
568         * types/: bignum.c, bignum.h, bignum_test.pl: Modified
569         check_(under|over)flow to test bignumbers, rather than values.
570         context now carries E_limit, from which max and min exp are found.
572         Added a default-context-creating function (although this isn't the
573         same as either of the default contexts defined in the eda).
575 2002-03-17 13:31  ajgough
577         * types/: bignum.c, bignum.h: Made BN_round and BN_iround so that
578         exported version matches prototypes of other public functions.
580 2002-03-17 06:44  josh
582         * chartype.c, encoding.c, memory.c, misc.c, packdump.c, packfile.c,
583         packout.c, resources.c, string.c, include/parrot/encoding.h: Some
584         last-minute re-indenting.
586 2002-03-17 05:07  mrjoltcola
588         * io/io_unix.c: Clear up unsigned compare caught by Solaris GCC.
590 2002-03-16 23:17  nicholas
592         * classes/default.pmc: Patch from Simon Glover <scog@amnh.org> to
593         remove warnings:
595          default.pmc: In function `Parrot_default_get_integer_keyed':
596          default.pmc:50: warning: control reaches end of non-void function
597          default.pmc: In function `Parrot_default_get_number_keyed':
598          default.pmc:58: warning: control reaches end of non-void function
599          default.pmc: In function `Parrot_default_get_string_keyed':
600          default.pmc:67: warning: control reaches end of non-void function
601          default.pmc: In function `Parrot_default_get_pmc_keyed':
602          default.pmc:87: warning: control reaches end of non-void function
604 2002-03-16 18:50  ajgough
606         * types/: bignum.c, bignum.h: Lots of prototypes changed in
607         readiness for nicely telling your caller about any oddness you've
608         caused in the persuit of flow.
610 2002-03-16 17:38  dan
612         * interpreter.c, resources.c, docs/pdds/pdd09_gc.pod,
613         include/parrot/interpreter.h, include/parrot/resources.h: Now we
614         can control the GC and DOD, to stop it when we don't really want
615         it.
617 2002-03-16 16:58  dan
619         * resources.c, vtable.tbl, classes/default.pmc,
620         include/parrot/resources.h: Added the last code to let PMCs control
621         their marking at DOD time
623 2002-03-16 16:57  ajgough
625         * types/bignum.c: Ok, I worked out how to not have lots of tabs.  I
626         feel a little more virtuous now.  Really I do.  You might not
627         believe me, but you should.  perl -pne 's/\t/        /g', if you're
628         curious.
630 2002-03-16 16:57  josh
632         * packfile.c, packout.c: M-x untabify is my new friend.
634 2002-03-16 16:50  josh
636         * trace.c, resources.c: Minor whitespace tweak for the benefit of
637         check_source_standards.pl
639 2002-03-16 16:50  ajgough
641         * types/: bignum.c, bignum.h: More documentation, separate
642         functions into public and private sorts, some initial stuff to cope
643         with over and underflow correctly.
645 2002-03-16 16:49  josh
647         * resources.c: Re-indented (sorry bout the big diff)
649 2002-03-16 16:47  bdwheele
651         * examples/assembly/fact.pasm: This fixes fact.pasm so it will
652         assemble again, both with Simon's new assembler and with the old
653         one.
655 2002-03-16 16:33  mrjoltcola
657         * io/TODO: Get the TODO up-to-date for 0.0.4.
659 2002-03-16 16:11  josh
661         * Configure.pl: Patch from Nicholas Clark <nick@unfortu.net>: stops
662         silly people (such as me) running Configure with
663         /usr/local/bin/perl (which is 5.004_05) and not realising their
664         mistake until the pmc subdirectory, where the first qr// is
665         encountered.
667         Syntax error messages don't tell you what you did wrong. This does:
669         /usr/local/bin/perl Configure.pl Perl 5.00503 required--this is
670         only version 5.00405, stopped at Configure.pl line 10.
672 2002-03-16 14:38  ajgough
674         * Makefile.in: Small fix to Makefile.in to keep Irix make happy
675         with commenting.
677 2002-03-16 11:45  simon
679         * MANIFEST, examples/assembly/xml_parser.pasm:
680         Added Clint Pierce's XML parser.
682 2002-03-15 22:24  simon
684         * packout.c:
685         Don't need that function.
687 2002-03-15 21:56  simon
689         * Makefile.in, include/parrot/packfile.h:
690         Rebuild packout.o, since it'll be used for the Packfile XS module
692 2002-03-15 19:45  dan
694         * include/parrot/: memory.h, pmc.h: Another add-in for GC
696 2002-03-14 19:48  dan
698         * core.ops: No string to int for some reason
700 2002-03-14 18:45  dan
702         * string.c, t/op/string.t: Fix 0-length substr problem
704 2002-03-14 14:46  dan
706         * core.ops, interpreter.c, resources.c, classes/array.pmc,
707         classes/perlarray.pmc, examples/assembly/life.pasm,
708         include/parrot/interpreter.h, include/parrot/resources.h: Added in
709         a counter for copied memory, with a display in life.pasm
711 2002-03-14 03:16  mrjoltcola
713         * MANIFEST: Update MANIFEST courtesy of Simon Glover.
715 2002-03-13 23:43  simon
717         * packfile.c:
718         Oops.
720 2002-03-13 23:43  simon
722         * packfile.c:
723         Hangs head in shame.
725 2002-03-13 21:31  simon
727         * MANIFEST:
728         FAQ moved.
730 2002-03-13 18:06  simon
732         * string.c:
734         Fix string_compare screw-up.
736 2002-03-13 18:02  brentdax
738         * docs/: parrot.pod, ParrotFAQ.htm, faq.pod: Move the FAQ into POD
739         and add a new question/answer pair.
741 2002-03-12 22:53  mrjoltcola
743         * io.ops: Quick and dirty read ops for PIO. No warranty provided.
745 2002-03-12 22:48  mrjoltcola
747         * examples/assembly/io2.pasm: Quick and dirty read ops for PIO. No
748         warranty provided.
750 2002-03-12 22:29  ajgough
752         * docs/pdds/pdd14_bignum.pod: Ooops, it is #14, really.
754 2002-03-12 22:24  ajgough
756         * docs/pdds/pdd14_bignum.pod: Creation of bignumber pdd, update to
757         version 1.1, Don't know if this is the correct number, but I don't
758         want this stuck on my harddrive where it will get lost, so 14 it is
759         :)
761 2002-03-12 11:35  simon
763         * MANIFEST, packdump.c, packout.c:
765         Just so the functionality doesn't disappear.
767 2002-03-12 11:33  simon
769         * Makefile.in, chartype.c, encoding.c, packfile.c,
770         chartypes/unicode.c, chartypes/usascii.c, encodings/singlebyte.c,
771         encodings/utf16.c, encodings/utf32.c, encodings/utf8.c,
772         include/parrot/chartype.h, include/parrot/encoding.h,
773         include/parrot/packfile.h:
775         Packfile axing.
777 2002-03-11 23:06  nicholas
779         * core.ops: Patch from Simon Glover <scog@roe.ac.uk>:
781           Core.ops documentation nits
783 2002-03-11 23:05  nicholas
785         * t/pmc/pmc.t: Patch from Simon Glover <scog@roe.ac.uk>:
787           Most of the PerlUndef tests in pmc.t appear to have been added
788         twice.
789           Enclosed patch removes the duplicates.
791 2002-03-10 23:40  nicholas
793         * t/pmc/perlstring.t: Patch from Simon Glover <scog@amnh.org>:
795          More tests for the PerlString test-suite.
797 2002-03-10 23:40  nicholas
799         * t/op/time.t: Patch from Simon Glover <scog@amnh.org>:
801         test for sleep with negative argument
803 2002-03-10 21:58  nicholas
805         * t/op/rx.t: Patch from Simon Glover <scog@amnh.org>:
807          Enclosed patch fixes up a few more holes in our test coverage.
809 2002-03-10 21:18  mrjoltcola
811         * classes/array.pmc, classes/default.pmc, classes/intqueue.pmc,
812         classes/parrotpointer.pmc, classes/perlarray.pmc,
813         classes/perlhash.pmc, classes/perlint.pmc, classes/perlnum.pmc,
814         classes/perlstring.pmc, classes/perlundef.pmc,
815         include/parrot/pmc.h, core.ops, pmc.c, vtable.tbl: Add size
816         argument to the init() vtable method so PMCs have the option to
817         know how to size themselves at creation. size could be N elements
818         or a byte count, depending on the PMC or it may simply be ignored.
819         Overloaded 'new' opcode for optional arg.
821 2002-03-10 21:15  mrjoltcola
823         * lib/Parrot/Assembler.pm: Minor patch to the assembler for the
824         new_p_ic_ic opcode to work same as new_p_ic (looks up a named
825         class).
827         Also added small hack for .sub directive (which simply translates
828         to a label, however we might eventually want to collect these to
829         validate bsr calls.
831 2002-03-10 15:09  ajgough
833         * types/: bignum.c, bignum.h, bignum_atest.pl, bignum_test.pl:
834         Added round_floor and round_ceiling.  3403 tests pass, none fail.
836 2002-03-10 03:56  ajgough
838         * types/: bignum.c, bignum_atest.pl: Added extended stuff to
839         divide, divide integer and remainder.  All filled in functions now
840         have special values capability.
842         Much remains to be done though, and the pdd needs to catch up.
844 2002-03-10 01:36  ajgough
846         * types/bignum.c: Added extended stuff to _add, _subtract.
848 2002-03-10 00:14  nicholas
850         * t/op/: integer.t, number.t: Patch from Simon Glover
851         <scog@roe.ac.uk>:
853          The enclosed patch fixes a few of the holes in our test coverage
854          uncovered by Josh Wilmes
856 2002-03-09 23:03  ajgough
858         * types/: bignum.c, bignum.h: Modified compare to work with
859         extended values.  Made a couple of changes here and there to allow
860         BN_comp to take a context, so that an is_zero check doesn't clobber
861         negative zeros.
863 2002-03-09 22:19  ajgough
865         * types/: bignum.c, bignum.h, bignum_atest.pl, bignum_test.pl:
866         Unary plus now copes with special values.
868 2002-03-09 04:25  ajgough
870         * types/: bignum.c, bignum_atest.pl, bignum_test.pl: Exception
871         traps and flags are now enabled and tested for all the standard
872         tests for all the functions which are currently implemented.  Test
873         harness faffed with to allow these to be tested.
875 2002-03-09 02:29  josh
877         * encodings/singlebyte.c, encodings/utf16.c, encodings/utf32.c,
878         encodings/utf8.c, chartypes/unicode.c, chartypes/usascii.c:
879         Re-indented
881 2002-03-09 02:22  josh
883         * config_h.in: tab-blastin'
885 2002-03-09 02:21  josh
887         * check_source_standards.pl: Play nicer with M-x compile- don't
888         bother giving line numbers for things you don't want to look at.
890 2002-03-09 02:10  josh
892         * examples/mops/mops.c: re-indented
894 2002-03-09 02:07  josh
896         * classes/pmc2c.pl: Use the usual header so that we can detect the
897         autogeneratedness.
899 2002-03-09 02:05  josh
901         * jit2h.pl: Avoid accidental /* inside a comment, which generates a
902         compiler warning
904 2002-03-09 01:59  josh
906         * io/: io.c, io_stdio.c, io_unix.c, io_win32.c: Another large
907         patch- re-indent io/*.c.
909 2002-03-09 01:52  ajgough
911         * types/: bignum.c, bignum.h, bignum_test.pl: Added handling of
912         special values to the string conversion functions, some other
913         functions now need context (to let -0 pass through really_zero)
914         which have also been added.
916 2002-03-09 01:47  josh
918         * test_main.c: Re-indented.
920 2002-03-09 01:41  josh
922         * rx.c: killed a stray tab
924 2002-03-09 01:38  josh
926         * rx.c: Re-indented.
928 2002-03-09 01:36  josh
930         * misc.c: Oops, some tabs remained- cleaned up.
932 2002-03-09 01:31  josh
934         * misc.c: Re-indented (major patch, sorry)
936 2002-03-09 00:59  josh
938         * embed.c: Re-indented.
940 2002-03-08 23:08  simon
942         * MANIFEST, docs/pdds/pdd10_embedding.pod,
943         docs/pdds/pdd11_extending.pod, docs/pdds/pdd12_assembly.pod,
944         docs/pdds/pdd13_bytecode.pod:
945         Placeholder PDDs.
947 2002-03-08 21:12  ajgough
949         * include/parrot/string.h: Added private flags to string.h, mostly
950         so that other GCed stuff can also have its very own private flags.
952 2002-03-08 19:53  simon
954         * MANIFEST:
955         Great PDD Renaming
957 2002-03-08 19:41  robert
959         * docs/pdds/: pdd0.pod, pdd1.pod, pdd2.pod, pdd4.pod, pdd5.pod,
960         pdd6.pod, pdd7.pod: Renamed...
962 2002-03-08 18:51  simon
964         * MANIFEST, docs/pdds/pdd08_keys.pod:
965         Add keys PDD.
967 2002-03-08 18:20  ajgough
969         * types/: bignum.c, bignum.h, bignum_atest.pl, bignum_test.pl:
970         Introduced exception handlers and exception flags to context, will
971         allow support of extended standard.  Unified exception checking
972         mechanism (sort of) and made minimal changes to bulk of code to use
973         this.  Tests pass, I'm happy, and further changes will happen more
974         gradually.
976 2002-03-08 04:38  josh
978         * interpreter.c, string.c, testparrotsizes_c.in: More indenting
979         tweaks.
981 2002-03-08 04:37  josh
983         * platforms/: generic.c, generic.h, win32.c, win32.h: Re-indented
985 2002-03-08 04:24  josh
987         * embed.c: A bit more re-indenting
989 2002-03-08 04:20  josh
991         * embed.c: Indenting fixes
993 2002-03-08 04:14  josh
995         * jit.c: Re-indented (run_indent.pl)
997 2002-03-08 03:36  josh
999         * ops2c.pl: Fix the line numbers which get reported while compiling
1000         core_ops*.c
1002 2002-03-08 03:22  josh
1004         * packfile.c: -1552 cc: WARNING File = packfile.c, Line = 1537
1005         The variable "type" is set but never used.
1007               opcode_t type;
1009 2002-03-08 03:04  josh
1011         * resources.c, stacks.c, string.c, io/io.c, io/io_stdio.c,
1012         io/io_unix.c: Clean up unused and set-but-not-referenced variables
1013         noticed by the sgi compiler.
1015 2002-03-08 03:02  josh
1017         * misc.c: Fixes this warning (SGI) cc-1188 cc: WARNING File =
1018         misc.c, Line = 417   The indicated type qualifier is meaningless on
1019         cast type.
1022         (const char) 'f');
1023                                                                          ^
1025 2002-03-08 02:55  josh
1027         * Makefile.in: Clean up one of the object files it was missing
1029 2002-03-08 01:15  josh
1031         * include/parrot/interpreter.h: Fixes the following error (tcc):
1032         "./include/parrot/interpreter.h", line 27: Error:   [Syntax]: Extra
1033         comma at end of list.
1035 2002-03-06 22:15  simon
1037         * stacks.c:
1038         Tidy up stack chunk allocation.
1040 2002-03-06 21:00  simon
1042         * interpreter.c:
1043         Create strings only once we've got string register heads set up.
1045 2002-03-06 20:31  simon
1047         * classes/perlarray.pmc:
1048         malloc(0) considered harmful.
1050 2002-03-06 20:24  simon
1052         * include/parrot/resources.h:
1053         I like it when Parrot compiles.
1055 2002-03-06 17:02  dan
1057         * classes/array.pmc: Changed over to data pointing to a Buffer.
1059 2002-03-06 15:45  dan
1061         * core.ops, embed.c, exceptions.c, interpreter.c, memory.c,
1062         packfile.c, pbc2c.pl, pdump.c, resources.c,
1063         include/parrot/interpreter.h, include/parrot/memory.h,
1064         include/parrot/resources.h, io/io.c: Three quick things: 1) INTVALs
1065         and opcode_t > longs will now be even more suspect than what they
1066         were beforehand.  2) Feel free to bicker with names.  I don't think
1067         we've come to *any* sort of agreement with these, although we
1068         really, really, need to.  3) I forget the third thing.  4) But I
1069         thought of a fourth.  5) I've now remembered the third thing: IIRC,
1070         ANSI C states that enums will fit within the smallest type (int or
1071         greater) that can hold the values. Is that actually correct, and
1072         does it state whether unsigned is preferred to signed for
1073         non-negative enums? 6) Since I'm no longer constrained by "three"
1074         or "quick", I'm going size_t happy for a lot of memory-related
1075         storage.  (That's good.  No sense wasting the size or performance
1076         of an UINTVAL for strange values of UINTVAL.)  I'm also using it in
1077         a couple other internal things (like the GC stat counters, seen
1078         here).  Size and performance, again, and unpromotable to a bigint,
1079         so we know that we (theoretically) will wrap.  However, size_t
1080         isn't the best choice for the type.  (Not that there's anything
1081         wrong with size_t, just that it shouldn't be called size_t.)  Any
1082         thoughts?  I was thinking of just doing unsigned int, because,
1083         IIRC, int is usually the natural word size, and will be most
1084         efficient.  Thoughts? 7) I forgot what the fourth thing I thought
1085         of was while writing down the others.  Sorry.
1087         Courtesy of  "Bryan C. Warnock" <Bryan.Warnock@raba.com>
1089 2002-03-06 15:26  dan
1091         * memory.c, resources.c, string.c, classes/perlarray.pmc,
1092         include/parrot/resources.h: Now we allocate generic Buffers from
1093         arenas too
1095 2002-03-05 21:42  brentdax
1097         * Configure.pl: Minor cleanup and enhancements.
1099 2002-03-05 21:25  dan
1101         * resources.c: non-special GC now works with PMCs
1103 2002-03-05 19:48  brentdax
1105         * Configure.pl, DEVELOPING, MANIFEST, config_h.in, test_main.c:
1106         Parrot now "knows" if it's a development version or a release
1107         version.  See the instructions in the DEVELOPING file.
1109 2002-03-05 18:05  brentdax
1111         * MANIFEST: pasm.vim wasn't in the manifest.
1113 2002-03-05 17:57  simon
1115         * Makefile.in:
1116         Now, through much evilness, make distclean and make cvsclean work
1117         again.
1119 2002-03-05 17:38  dan
1121         * memory.c, resources.c, docs/pdds/pdd09_gc.pod,
1122         include/parrot/interpreter.h, include/parrot/pmc.h,
1123         include/parrot/resources.h: PMC tracing complete
1125 2002-03-05 16:28  gregor
1127         * languages/jako/Makefile.in:
1128         Changed -I ../../ to -I ../../lib when calling the assembler, since
1129         the perl modules have moved.
1131 2002-03-05 05:30  josh
1133         * packfile.c, pdump.c, pmc.c, register.c, rxstacks.c, stacks.c,
1134         string.c: More re-indenting via run_indent.pl.
1136 2002-03-05 05:17  josh
1138         * runops_cores.c, trace.c, warnings.c: Re-indented (via
1139         run_indent.pl)
1141 2002-03-05 04:26  josh
1143         * key.c, memory.c, test_gnuc.c, testparrotfuncptr.c: Re-indented
1144         using run_indent.pl and some minor tweaking.
1146 2002-03-05 04:21  josh
1148         * chartype.c, encoding.c, exceptions.c, global_setup.c,
1149         interpreter.c: Re-indented using run_indent.pl and some minor
1150         tweaking.
1152 2002-03-05 03:30  josh
1154         * include/parrot/trace.h: These functions are no longer used (or
1155         even implemented)
1157 2002-03-04 18:21  josh
1159         * include/parrot/trace.h: Fix a typo in the argument type.
1161         Patch from <daniel.ritz@gmx.ch>
1163 2002-03-04 03:39  josh
1165         * check_source_standards.pl, jit2h.pl: Add the "autogenerated file"
1166         header to jit_struct.h so we don't try to check it for conformance.
1167          (no way will it conform)
1169 2002-03-04 03:38  josh
1171         * include/parrot/: chartype.h, interpreter.h, io.h, rx.h, trace.h,
1172         unicode.h, warnings.h: Remove some remaining tabs and split some of
1173         the remaining long lines.
1175 2002-03-04 03:17  josh
1177         * include/parrot/: chartype.h, embed.h, encoding.h, exceptions.h,
1178         global_setup.h, interpreter.h, io.h, jit.h, key.h, memory.h,
1179         misc.h, op.h, oplib.h, packfile.h, parrot.h, pmc.h, register.h,
1180         resources.h, runops_cores.h, rx.h, rxstacks.h, stacks.h, string.h,
1181         string_funcs.h, trace.h, warnings.h: This is the first batch of
1182         re-indenting.   This patch is the result of running run_indent.pl
1183         on the header files and manually tweaking the results where errors
1184         were noticed.   This should get us closed, but some refinement may
1185         follow.
1187 2002-03-04 03:06  josh
1189         * resources.c: Return without parens, as mentioned in PDD 7
1191 2002-03-04 03:01  josh
1193         * core.ops: POD fixes.
1195 2002-03-04 02:58  josh
1197         * config_h.in, ops2c.pl, classes/pmc2c.pl: More consistent headers
1198         on autogenerated files- used by the check_source_standards.pl
1199         script (for now) to exempt autogenerated files from the checks.
1201 2002-03-04 02:51  josh
1203         * embed.c, key.c, pmc.c, resources.c, rx.c, testparrotfuncptr.c,
1204         warnings.c: Added the editor "boilerplate" footer to a few files
1205         which were missing it.
1207 2002-03-04 02:34  josh
1209         * check_source_standards.pl, interpreter.c, jit.c, test_gnuc.c,
1210         include/parrot/io.h, include/parrot/parrot.h, io/io_win32.c: Fixes
1211         c preprocessor directive indentation to comply with pdd 7.
1213         (also fixes the check for this indentation in
1214         check_source_standards.pl)
1216 2002-03-04 02:32  josh
1218         * lib/Parrot/Test.pm: Fixes this error seen on perl 5.005_02 on
1219         irix.
1221         perl t/harness t/op/basic..........Use of uninitialized value at
1222         lib/Parrot/Test.pm line 81.  #     Failed test (t/op/basic.t at
1223         line 6) #          got: undef #     expected: ''
1225 2002-03-04 02:30  josh
1227         * MANIFEST, run_indent.pl, docs/pdds/pdd07_codingstd.pod,
1228         docs/pdds/pdd7.pod: Added documentation and code to invoke the GNU
1229         "indent" program to enforce some of the code style standards
1230         outlined in PDD 7.
1232         Usage: ./run_indent.pl <file>
1234 2002-03-03 19:04  simon
1236         * examples/mops/mops.c:
1237         Let's make it compile, huh?
1239 2002-03-03 19:04  simon
1241         * examples/mops/mops.cs:
1242         I R AN IDIOT
1244 2002-03-03 18:11  simon
1246         * examples/mops/mops.cs, examples/mops/mops.il, MANIFEST:
1247         Added C# and MS-IL versions of mops tester.
1249 2002-03-03 14:52  simon
1251         * core.ops:
1252         Add a sub() op to make mops_p work.
1254 2002-03-02 18:12  nicholas
1256         * examples/mops/mops.c, include/parrot/embed.h,
1257         include/parrot/interp_guts.h, include/parrot/jit.h,
1258         include/parrot/misc.h, include/parrot/packfile.h,
1259         include/parrot/rx.h, include/parrot/warnings.h,
1260         platforms/generic.c, platforms/generic.h, platforms/win32.c,
1261         platforms/win32.h, types/bignum.c, types/bignum.h: Patch from Josh
1262         Wilmes to add the emacs and vim "ending boilerplate" that sets the
1263         indent variables correctly.
1265 2002-03-02 17:41  nicholas
1267         * resources.c: Patch from Josh Wilmes <josh@hitchhiker.org>: Little
1268         patch to fix a compiler warning.
1270 2002-03-01 22:35  dan
1272         * memory.c, resources.c, include/parrot/pmc.h,
1273         include/parrot/resources.h: PMCs now come out of arenas.
1275 2002-03-01 06:15  dan
1277         * string.c:
1278         A non-existing buffer + a non-existing buffer should be a
1279         non-existing buffer, not "", which is really '\0'.
1281         Courtesy of "Bryan C. Warnock" <Bryan.Warnock@raba.com>
1283 2002-03-01 06:02  dan
1285         * classes/: array.pmc, perlarray.pmc, perlhash.pmc, perlstring.pmc:
1287         TMTOWTDI, but strcmp is probably the worse.
1289         Courtesy of "Bryan C. Warnock" <Bryan.Warnock@raba.com>
1291 2002-03-01 02:32  brentdax
1293         * embed.c: Debug mode now prints out the GC data.
1295 2002-02-28 23:44  dan
1297         * core.ops, resources.c, include/parrot/resources.h: Added collect
1298         and sweep opcodes
1300 2002-02-28 22:58  dan
1302         * docs/pdds/: pdd06_pasm.pod, pdd6.pod: Add docs for interpinfo
1303         opcode
1305 2002-02-28 22:50  dan
1307         * core.ops, interpreter.c, resources.c,
1308         examples/assembly/life.pasm, include/parrot/interpreter.h,
1309         include/parrot/resources.h: Add some stat gathering to the resource
1310         allocation code.
1312         Also add an interpreter info retrieval op, and teach it about the
1313         different things it can retrieve.
1315         Finally, add some stat info to life.pasm as an example
1317 2002-02-28 21:27  dan
1319         * editor/pasm.vim: VIM mode commands for parrot assembly files
1321         Courtesy of Scott Beck <scott@gossamer-threads.com>
1323 2002-02-28 19:20  dan
1325         * examples/assembly/life.pasm: Fix a creeping string length leak.
1327         Courtesy of  "Bryan C. Warnock" <Bryan.Warnock@raba.com>
1329 2002-02-28 18:26  dan
1331         * string.c: When you clone a constant, it ain't constant no mo'.
1333         Cocurtesy of "Bryan C. Warnock" <Bryan.Warnock@raba.com>
1335 2002-02-28 00:51  dan
1337         * MANIFEST: Add missing files
1339         Courtesy of "Bryan C. Warnock" <Bryan.Warnock@raba.com>
1341 2002-02-28 00:49  dan
1343         * docs/pdds/: pdd0.pod, pdd00_pdd.pod: The pod version of PDD 0 in
1344         CVS seems to have several chunks missing out of it, too.  This
1345         patch is simply an administrative patch, with the differences
1346         between my last version, and the one currently in there.  There
1347         will be a forthcoming patch for some minor tweaking to the PDD, but
1348         I wanted a common baseline before I make any (potential) semantic
1349         changes.
1351         There's only one semi-major change, which noone needs to worry
1352         about just yet.  That's a change from PDD Format 1 to PDD Format
1353         6.0 - rationale can be found under 'Standard (Version #)' of the
1354         STANDARDS TRACK infomation.  Don't worry about this yet, because it
1355         should be 6.0.0, and we need to discuss Perl versus Parrot with
1356         PDDs.
1358         Courtesy of "Bryan C. Warnock" <bwarnock@raba.com>
1360 2002-02-28 00:27  dan
1362         * packfile.c, resources.c, examples/assembly/life.pasm,
1363         include/parrot/register.h, include/parrot/resources.h,
1364         include/parrot/string.h: First pass of semi-full GC. (Strings only,
1365         no PMCs yet)
1367         This patch now implements a real copying collector. We trace from
1368         our root set and compact the contents of Buffer structs.
1370         Todo:
1372         *) It's very STRING-centric and doesn't handle memory stuffed in
1373         Buffers.  But, then, we don't have pool allocation for Buffers
1374         either, and we need to have that soonish for this to work.
1376         *) Doesn't trace PMCs, so if you trigger a collection and there's
1377         memory or STRING structs only accessible from PMCs, you'll fail
1378         horribly. That needs fixing too
1380         *) Better algorithms for when to trace or collect vs when to just
1381         go allocate more memory from the system. Should probably be more
1382         cache friendly too.
1384 2002-02-27 21:04  dan
1386         * jit.c, memory.c, resources.c, string.c, docs/pdds/pdd09_gc.pod,
1387         examples/assembly/life.pasm, include/parrot/resources.h,
1388         include/parrot/string.h, include/parrot/string_funcs.h,
1389         jit/i386/core.jit: Start of GC in
1391 2002-02-26 16:41  dan
1393         * jit/i386/string.jit: Fix a typo
1395         Courtesy of Jonathan Stowe <gellyfish@gellyfish.com>
1397 2002-02-26 16:37  dan
1399         * interpreter.c: Fix solaris test failures
1401         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1403 2002-02-26 16:36  dan
1405         * include/parrot/: interp_guts.h, io.h, packfile.h, rx.h,
1406         unicode.h, warnings.h: Fixes various warts in header files, such
1407         as: * macros   -added parens to prevent problems with operator
1408         precedence   -removed ; at end * removed SSIZE_MAX, since ssize_t
1409         is no longer used * added some more INLINE definitions for MSVC and
1410         C99 compilers
1412         Courtesy of Brian Lee Ray <blray@ualr.edu>
1414 2002-02-26 16:20  dan
1416         * Configure.pl: Turns out we were using a warning flag which
1417         doesn't exist on 2.7.  Simple tweak though:
1419         Courtesy of  Josh Wilmes <josh@hitchhiker.org>
1421 2002-02-25 22:58  dan
1423         * MANIFEST, docs/pdds/pdd09_gc.pod: Add docs of GC
1425 2002-02-25 17:36  dan
1427         * include/parrot/pmc.h: Fix the bits
1429 2002-02-23 21:57  dan
1431         * include/parrot/resources.h: Another 1.5% never hurts
1433 2002-02-23 21:44  dan
1435         * global_setup.c, memory.c, resources.c, string.c,
1436         include/parrot/resources.h: Allocate STRING headers from an arena
1437         with freelist rather than with the system malloc. First step in a
1438         good (or even a bad) GC system.
1440 2002-02-23 20:37  brentdax
1442         * misc.c: lint has been doing Evil and Wrong things to misc.c.
1444 2002-02-22 14:59  ajgough
1446         * types/bignum.c: BN_multiply split into BN_multiply and
1447         BN_imultiply, the internal version to be used by idivide so that
1448         rounding isn't performed during intermediate stages of division.
1450         following test scripts now all pass: divide divideint add multiply
1451         subtract remainder compare rounding plus minus (these are all the
1452         operations currently implemented, rescale and power must still be
1453         written, so don't pass right now).
1455 2002-02-22 13:13  ajgough
1457         * types/bignum_atest.pl: Test harness modified to understand
1458         comments better, and be able to run unary (and rounding) tests.
1459         Currently a few rounding tests fail, which are being investigated.
1461 2002-02-22 01:41  dan
1463         * key.c: Although there's more work being done on the key stuff and
1464         this isn't the final fix, applying this patch does get parrot to
1465         build with two more compilers, so it's probably worthwhile.
1467         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1469 2002-02-22 00:53  dan
1471         * config_h.in, misc.c, include/parrot/embed.h,
1472         include/parrot/exceptions.h, include/parrot/interpreter.h,
1473         include/parrot/io.h, include/parrot/parrot.h, include/parrot/pmc.h,
1474         include/parrot/resources.h, include/parrot/rx.h,
1475         include/parrot/string.h, include/parrot/unicode.h,
1476         include/parrot/warnings.h, io/io_stdio.c, io/io_unix.c,
1477         io/io_win32.c: Fixes the following (lcc) warnings:
1479           - interpreter.c:470: warning: expression with no effect elided
1480                (related to the way warnings flags were defined)
1482           - misc.c:352: warning: unreachable code
1483             misc.c:483: warning: unreachable code
1484                (i introduced these with some overzealous de-linting)
1486           - numerous warnings like this:
1487             io/io_unix.c:383: warning: conversion from pointer to void' to
1488         pointer to
1489             pointer to struct _ParrotIO function(pointer to struct
1490         Parrot_Interp,pointer
1491             to struct _ParrotIOLayer,pointer to const char,pointer to const
1492         char,pointer
1493             to pointer to void)' is compiler dependent
1495         Fixes the following nits:    - remove bad indenting (tabs) in the
1496         includes
1498         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1500 2002-02-21 21:12  ajgough
1502         * types/: bignum.c, bignum.h: These might look like massive
1503         changes, but really it's just he imposition of coding standards.
1504         The file still isn't entirely compliant, but is now much more so.
1506         Also changed:
1508          o a few more comments
1509          o BN_compare uses internal BN_comp to compare
1510          o lost_digits behaviour is now correct (test harness modified to
1511         test
1512            this).
1514         All binary functions now pass all the tests in the basic standard.
1515         Unary functions not yet tested, will be soon.
1517 2002-02-21 18:20  dan
1519         * lib/Parrot/OpTrans/CPrederef.pm: The "inline" bit of that patch
1520         was no longer needed, and the ssize_t thing really shouldn't be
1521         needed either.
1523         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1525 2002-02-21 18:15  dan
1527         * Configure.pl, embed.c, pdump.c, hints/mswin32.pl,
1528         include/parrot/parrot.h: this patch adds support for the freely
1529         available borland c++ 5.5.1 compiler
1531         depends on: - josh's patch to remove ssize_t from CPrederef.pm -
1532         working borland compiler (compiler must know where to find headers
1533         and libs) - Perl's Config.pm modified to use cc='bcc32.exe' not of
1534         cc='cl.exe' - a working make utility (borland make doesn't work,
1535         nmake does)
1537         changes: - add bcc in hints/mswin32.pl - clean up for msvc++ in
1538         hints/mswin32.pl - remove a space from Configure.pl (very very
1539         important for bcc) - add a O_BINARY flag to open() in pdump.c,
1540         embed.c (required by bcc) - define O_BINARY 0 when it's not defined
1541         (win32 knows it, linux not)
1543         and the why: - parrot is MUCH faster when compiled with borland c
1544         (make test on p2-450, 320MB):   * msvc++: 313 seconds   * bcc: 251
1545         seconds
1547         Courtesy of "Ritz Daniel" <daniel_ritz@gmx.ch>
1549 2002-02-21 18:09  dan
1551         * jit.c, testparrotfuncptr.c, trace.c, classes/array.pmc, io/io.c,
1552         io/io_stdio.c, io/io_unix.c, io/io_win32.c: This patch removes
1553         cuddled elses, as required by PDD 7.
1555         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1557 2002-02-21 18:04  dan
1559         * MANIFEST, Makefile.in, check_source_standards.pl: This patch adds
1560         a new Makefile target called "check_source".  This target scans all
1561         the .c and .h files in the directory and checks for conformance to
1562         a number of the standards outlined in PDD 7.
1564         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1566 2002-02-21 16:38  ajgough
1568         * types/: bignum.c, bignum.h, bignum_atest.pl: Modifications to
1569         allow arithmetic with numbers with a fixed fractional part, buffer
1570         structures now more ready to be integrated into the parrot memory
1571         allocation game, test harness modified to allow lost_digits
1572         condition to be checked.  Some more comments.
1574 2002-02-21 15:53  simon
1576         * io/io_unix.c:
1577         Fix typo
1579         Courtesy of: "David M. Lloyd" <dmlloyd@tds.net>
1581 2002-02-20 16:41  dan
1583         * MANIFEST, docs/pdds/pdd_template.pod: Added in template PDD
1585 2002-02-18 18:25  dan
1587         * MANIFEST, lib_deps.pl: Added in lib_deps.pl and MANIFEST change.
1589         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1591 2002-02-18 18:21  dan
1593         * lib/Parrot/OpTrans/CPrederef.pm: this is a quick fix for
1594         CPrederef.pm to make to generated code compile with the MS
1595         compiler.
1597         fixes: - ms compiler allows inline only for c++, for c there's
1598         __inline - ms header files knows nothing about ssize_t
1600         Courtesy of "Ritz Daniel" <daniel_ritz@gmx.ch>
1602 2002-02-18 17:49  dan
1604         * MANIFEST: Add the PDDs
1606 2002-02-18 17:47  dan
1608         * docs/pdds/: pdd07_codingstd.pod, pdd7.pod: Added in PDD 7, the
1609         coding standards PDD.
1611 2002-02-18 17:40  dan
1613         * docs/pdds/: pdd06_pasm.pod, pdd6.pod: Updated to latest rev
1615 2002-02-18 12:41  gregor
1617         * test_main.c:
1618         Remove warning about exit() not being declared.
1620 2002-02-18 08:29  simon
1622         * misc.c, warnings.c, include/parrot/misc.h,
1623         include/parrot/warnings.h:
1624         This patch adds some missing const's to silence a number of gcc
1625         warnings.
1627         Courtesy of: Josh Wilmes <josh@hitchhiker.org>
1629 2002-02-18 08:26  simon
1631         * Makefile.in, core.ops, embed.c, interpreter.c, key.c, misc.c,
1632         ops2c.pl, packfile.c, pdump.c, stacks.c, string.c,
1633         classes/array.pmc, classes/perlarray.pmc, classes/perlhash.pmc,
1634         include/parrot/parrot.h, include/parrot/rx.h,
1635         include/parrot/stacks.h, io/io_stdio.c, io/io_unix.c,
1636         lib/Parrot/OpTrans/CPrederef.pm:
1637            - add makefile target and script to test for external libc
1638         dependencies
1639            - fix return values in hash and array PMCs (returning 0 in a
1640         void func)
1641            - remove unnecessary data pointer <=> function pointer
1642         conversions
1643              outside of the JIT code.
1644            - move the definition of the "INLINE" macro out of the rx header
1645         and make
1646              available for general use on C++ compilers and gcc.
1647            - remove a few unused variables
1649         Courtesy of: Josh Wilmes <josh@hitchhiker.org>
1651 2002-02-17 16:29  simon
1653         * docs/pdds/: pdd0.pod, pdd00_pdd.pod, pdd01_overview.pod,
1654         pdd02_vtables.pod, pdd04_datatypes.pod, pdd05_opfunc.pod,
1655         pdd06_pasm.pod, pdd1.pod, pdd2.pod, pdd4.pod, pdd5.pod, pdd6.pod:
1656         We're organised and responsible. Honest.
1658 2002-02-17 02:46  sfink
1660         * Makefile.in: Remove $^ for nmake compatibility.
1662 2002-02-16 09:20  brentdax
1664         * config_h.in, test_main.c, include/parrot/chartype.h,
1665         include/parrot/embed.h, include/parrot/encoding.h,
1666         include/parrot/string.h, include/parrot/string_funcs.h: Better
1667         embedding exposure and hiding, part 1.
1669 2002-02-16 04:38  dan
1671         * Makefile.in, core.ops, interpreter.c, pbc2c.pl, pdump.c,
1672         runops_cores.c, docs/running.pod, lib/Parrot/OpTrans/C.pm,
1673         lib/Parrot/OpTrans/CGoto.pm, lib/Parrot/OpTrans/CPrederef.pm:
1674         Anyway, here's a patch to repair pbc2c.pl, combined with removing
1675         typecasts in various places throughout the code. It probably won't
1676         work for Windows yet. The libparrot.a target might need to be
1677         modified to at least prevent it from confusing make on Windows; I
1678         don't know.
1680         Preliminary instructions for using pbc2c.pl are in
1681         docs/running.pod.  I'll try to do better later.
1683         Courtesy of Steve Fink <steve@fink.com>
1685 2002-02-16 04:15  dan
1687         * exceptions.c, include/parrot/exceptions.h: Warnings cleaned up
1689         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1691 2002-02-16 00:03  simon
1693         * classes/: perlarray.pmc, perlhash.pmc:
1695         pmc is already defined!
1697 2002-02-15 23:20  brentdax
1699         * Configure.pl, config_h.in, exceptions.c, pmc.c,
1700         include/parrot/exceptions.h: Far more informative panic messages.
1702 2002-02-15 03:24  dan
1704         * lib/Parrot/: Op.pm, OpsFile.pm, OpTrans/CPrederef.pm: Here's a
1705         much more extensive patch that fixes it to work properly, and
1706         deletes a bazillion casts as well.  It also points to the question
1707         "can we make the byte_code be an opcode_t* already?"
1709         Oh, and it makes some of the formatting prettier, so it's gotta be
1710         good.
1712         Courtesy of * Steve Fink <steve@fink.com>
1714 2002-02-15 02:30  dan
1716         * Makefile.in, core.ops, embed.c, misc.c, packfile.c, rx.ops,
1717         stacks.c: I've tweaked the "lint" target somewhat and fixed a few
1718         of the things it finds.  Attaching the patch as well as the current
1719         lint output.
1721         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1723 2002-02-15 01:59  dan
1725         * t/pmc/: array.t, perlhash.t: Disable non-functional bits for the
1726         moment.
1728 2002-02-15 01:48  dan
1730         * t/pmc/perlarray.t: Skip tests for features that need twiddling
1732 2002-02-15 01:40  dan
1734         * t/op/rx.t: Skip a test that's waiting for us to rejig some array
1735         things
1737 2002-02-14 23:30  dan
1739         * resources.c: Added comment for buffer tag routine. D'oh!
1741 2002-02-14 23:28  dan
1743         * resources.c, include/parrot/resources.h: Added buffer mark
1744         routine for GC
1746 2002-02-14 23:17  dan
1748         * memory.c, classes/array.pmc, classes/perlarray.pmc,
1749         include/parrot/memory.h, include/parrot/string.h, t/pmc/perlhash.t:
1750         Rejigged memory system a bit. Now should be ready for the horror
1751         that is garbage collection.
1753 2002-02-14 19:33  gregor
1755         * ops2c.pl, include/parrot/oplib.h:
1756         Added code to automatically generate a function within an oplib to
1757         lookup opinfos given the op name. This will come in handy in future
1758         when we want to twiddle opcode tables at run time and possibly at
1759         startup time.
1761 2002-02-14 19:25  gregor
1763         * examples/assembly/queens.pasm:
1764         Regenerated queens.pasm from queens.jako since the clone_* stuff
1765         went away.
1767 2002-02-14 17:12  dan
1769         * resources.c, include/parrot/resources.h: Finished up the
1770         interface for memory and tracked interpreter thingies.
1772 2002-02-14 16:53  dan
1774         * memory.c, include/parrot/memory.h: intercept free and realloc
1776 2002-02-14 05:53  dan
1778         * interpreter.c, runops_cores.c: The type changes in struct
1779         Packfile break the pointer math used in a few places to calculate
1780         the address of the end of the loaded byte code. This causes
1781         segfaults in build_asm in jit.c when using -j. It also breaks the
1782         bounds checking on opcode address in runops_slow_core.
1784         The patch adds the necessary cast to correct the code_end
1785         calculations.
1787         Courtesy of Jason Gloudon <perl@gloudon.com>
1789 2002-02-14 01:01  ajgough
1791         * types/: bignum.c, bignum.h, bignum_test.pl: Added support for
1792         BigInt operations (I think), tests for normal operation continue to
1793         pass.  Also a shed load of comments.
1795 2002-02-13 01:34  ajgough
1797         * types/: bignum.c, bignum.h, bignum_atest.pl, bignum_test.pl: This
1798         is a (mostly) working bignumber library.  There remains much work
1799         to do though, some functions are not yet implemented and headers
1800         need to find their way to the correct place RSN.  Also support for
1801         bigints and a sensible error reporting mechanism are needed.
1803 2002-02-12 18:51  dan
1805         * misc.c: Fix some warnings
1807 2002-02-12 17:10  dan
1809         * misc.c: Run through indent -kr -nce so I can read it
1811 2002-02-12 16:49  dan
1813         * misc.c: Need standard header/footer comments
1815 2002-02-11 20:32  simon
1817         * classes/array.pmc:
1818         get and set pmc methods.
1820 2002-02-11 20:19  simon
1822         * classes/array.pmc:
1823         Maybe the keys aren't integer...
1825 2002-02-11 20:03  simon
1827         * core.ops, vtable.tbl, classes/default.pmc:
1828         {g,s}et_pmc_keyed
1830 2002-02-11 19:07  simon
1832         * vtable.tbl, classes/default.pmc:
1833         Add set_pmc. Usee with caution.
1835 2002-02-11 18:20  dan
1837         * classes/: array.pmc, perlarray.pmc: Patch array classes to
1838         compile
1840 2002-02-11 17:59  simon
1842         * core.ops, embed.c, global_setup.c, key.c, rx.ops,
1843         classes/perlarray.pmc, classes/perlhash.pmc:
1844         Make it compile.
1846 2002-02-11 17:57  simon
1848         * packfile.c, include/parrot/packfile.h:
1849         Reduce warnings
1851         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
1853 2002-02-11 17:55  dan
1855         * docs/parrot_assembly.pod: Document some key ops
1857 2002-02-11 09:20  brentdax
1859         * pmc.c, include/parrot/exceptions.h: Adding a panic ought to be
1860         disgustingly easy.
1862 2002-02-11 00:34  simon
1864         * core.ops, include/parrot/exceptions.h:
1865         This is what keyed set ops look like. Remember, however, that for
1866         keyed functions, all operands must be PMCs. set(PMC, PMC, INT)
1867         means $1 = $2[$3], not $1[$2] = $3. set(PMC,PMC,PMC) is so
1868         obviously ambiguous that you ought to use the 4-arg version
1869         instead.
1871 2002-02-10 23:12  jgoff
1873         * classes/: array.pmc, perlarray.pmc: Properly allocate
1874         SELF->data's array of PMC* data in array and perlarray.pmc.  This
1875         isn't tested yet, but should be fairly straightforward.  PerlHash
1876         needs to be finished before the system will compile again, and that
1877         should be done in the next few days.
1879 2002-02-09 04:46  jgoff
1881         * classes/: array.pmc, default.pmc, intqueue.pmc,
1882         parrotpointer.pmc, perlarray.pmc, perlhash.pmc, perlundef.pmc:
1883         Added basic _keyed member functions.  Unfortunately this still
1884         doesn't fix the problems that are causing the build to break. It's
1885         a start though. I'm not implementing the PMC add functions just
1886         yet.
1888 2002-02-08 15:59  simon
1890         * classes/array.pmc:
1891         Some more work on getting the array stuff up to date.
1893 2002-02-08 12:23  simon
1895         * classes/array.pmc, classes/perlhash.pmc, include/parrot/key.h,
1896         lib/Parrot/Vtable.pm:
1897         Got array->get_integer_keyed doing what I think it ought to. One
1898         down, all the rest to go.
1900 2002-02-08 11:47  simon
1902         * vtable.tbl:
1903         Although I didn't intend it to be quite that broken...
1905 2002-02-08 11:42  simon
1907         * vtable.tbl, include/parrot/parrot.h, lib/Parrot/Vtable.pm:
1908         Completely break Parrot, but at least we get the key stuff right
1909         for now.
1911 2002-02-08 06:25  dan
1913         * hints/darwin.pl: Silences the warning about passing in
1914         -flat_namespace to the compile.  That's a link-only flag.
1916 2002-02-08 04:52  jgoff
1918         * classes/: array.pmc, default.pmc, intqueue.pmc,
1919         parrotpointer.pmc, perlarray.pmc, perlhash.pmc, perlint.pmc,
1920         perlnum.pmc, perlstring.pmc, perlundef.pmc: Filled in missing
1921         return values in *.pmc, added some missing casts to the repeat_foo
1922         members, and deleted the _index members from the perlscalar
1923         classes.  Basic cleanup, and getting ready for _keyed functions.
1925 2002-02-07 04:49  mrjoltcola
1927         * examples/assembly/bsr.pasm: Elaborated on the bsr/ret example,
1928         added a nested subroutine call.
1930 2002-02-07 04:32  jgoff
1932         * vtable.tbl, lib/Parrot/Vtable.pm: vtable.tbl got some minor
1933         changes in order to give the whitespace rules a little workout, and
1934         do a little bit more testing. No actual structural changes were
1935         made.  lib/Parrot/Vtable.pm got an interface change, and more
1936         importantly should be ready to support the new '_keyed' attribute,
1937         which will work roughly thus: PMC* src_value gets remapped to 'PMC*
1938         src_value' followed by 'KEY* src_key'.  This will be how the new
1939         _keyed operators will function, and those should be written within
1940         a few days.
1942 2002-02-06 18:00  doughera
1944         * misc.c: Change C++-style comments to C comments (again).  Remove
1945         unused perl5 code that was in #if 0/#endif.
1947 2002-02-06 17:59  doughera
1949         * warnings.c: Add trailing newline.
1951 2002-02-06 04:14  mrjoltcola
1953         * include/parrot/io.h, io/io.c: Minor cleanup.
1955 2002-02-06 03:11  mrjoltcola
1957         * examples/assembly/io1.pasm, io/io.c, io/io_win32.c: Tied up a
1958         couple of loose end in win32 IO stuff. Open behaves now but needs
1959         more work.
1961 2002-02-05 21:02  brentdax
1963         * classes/pmc2c.pl: Length on whoami init was always 7--a problem
1964         which showed up in Purify builds.
1966 2002-02-05 17:15  simon
1968         * misc.c:
1969         Warning fixes.
1971         Courtesy of: Jonathan Stowe <gellyfish@gellyfish.com>
1973 2002-02-05 17:08  doughera
1975         * misc.c: Avoid C++-style comments.
1977 2002-02-05 17:07  doughera
1979         * lib/Parrot/Jit/sun4Generic.pm: Generated assembly programs were
1980         not valid assembler for Sun's /usr/ccs/bin/as.  Now they are,
1981         thanks to Jason Gloudon <perl@gloudon.com>.
1983 2002-02-05 14:04  simon
1985         * misc.c:
1986         Make the problem different, perhaps even better.
1988 2002-02-05 13:49  simon
1990         * misc.c:
1991         Possibly fix a `short int' is promoted to `int' when passed through
1992         `...' scary error, possibly make things absolutely worse.
1994 2002-02-05 13:15  simon
1996         * Configure.pl:
1997         Placate Tru64.
1999 2002-02-05 13:12  simon
2001         * warnings.c:
2002         Not going to get far without this one...
2004 2002-02-05 11:41  simon
2006         * string.c:
2007         Don't barf when handed null pointers.
2009 2002-02-05 10:04  simon
2011         * misc.c, include/parrot/misc.h:
2012         Fix some trivial bugs in warnings code.
2014 2002-02-05 09:27  simon
2016         * misc.c:
2017         Oops, forgot this one; also added %P support.
2019 2002-02-05 09:20  simon
2021         * MANIFEST, Makefile.in, core.ops, embed.c, interpreter.c,
2022         test_main.c, classes/perlundef.pmc, include/parrot/embed.h,
2023         include/parrot/interpreter.h, include/parrot/misc.h,
2024         include/parrot/parrot.h, include/parrot/warnings.h:
2025         Warnings support.
2027         Courtesy of: Brent Dax <brentdax@cpan.org>
2029 2002-02-05 05:41  jgoff
2031         * vtable.tbl, lib/Parrot/Vtable.pm, t/pmc/perlstring.t: Changed the
2032         format of vtable.tbl to get rid of the tab-dependence.  The format
2033         now looks roughly like this:
2035         init() # 'void' and 'unique' are assumed INTVAL type ( ) # 'unique'
2036         is assumed str void concatenate (PMC* value, PMC* dest) # Nothing
2037         assumed here, but note the C-like prototyping.  Also had to disable
2038         one test that depended upon 'concat_p_p_s', which isn't necessary
2039         anyway.
2041         Vtable.pm will change again when the type '_keyed' is added,
2042         because that requires remapping parameters slightly differently
2043         again.  Also, note that it assumes 'value' is the first parameter
2044         in the list. This assumption will go away at the same time.
2046 2002-02-04 16:57  ajgough
2048         * core.ops, t/pmc/perlstring.t, t/pmc/pmc.t: More tests for pmc
2049         functions.  Thanks to Simon Glover.
2051 2002-02-04 02:47  ajgough
2053         * hints/os2.pl: Removes a flag from the os/2 hints file that isn't
2054         needed.  I suspect that the entire hints file isn't really needed,
2055         but there's no one to actually tell us this.
2057 2002-02-02 15:45  ask
2059         * docs/ParrotFAQ.htm: fix internal links
2061 2002-02-02 04:06  jgoff
2063         * classes/: array.pmc, intqueue.pmc, perlarray.pmc, perlhash.pmc:
2064         Moving the internal KEY structure from the cache.struct_val member,
2065         where it doesn't really belong, to the internal SELF->data member.
2066         This frees up the cache/type members for other usage.
2068         This is the first step in moving PMCs to the point where we can do
2069         multidimensional PMC handles. The next step is to change the
2070         assembler to accept the syntax of 'set P0["foo"],7'.
2072 2002-02-02 00:13  nicholas
2074         * include/parrot/global_setup.h: Patch from Jonathan Stowe to
2075         prototype Parrot_Array_class_init
2077 2002-02-02 00:13  nicholas
2079         * embed.c: Casts to tidy up warnings from Jonathan Stowe Change
2080         time to sum_time to avoid warning on FreeBSD about tracking a
2081         global [No, this warning does not appear on Linux. Yes, it is real
2082         :-)]
2084 2002-02-01 23:02  nicholas
2086         * embed.c: Fix fprintf format warning in Parrot_runcode. From Simon
2087         Glover
2089 2002-02-01 20:20  nicholas
2091         * t/pmc/pmc.t: Add end at end of asm in test (from Simon Glover)
2093 2002-02-01 18:20  nicholas
2095         * lib/Parrot/Test.pm: Env.pm on 5.005_03 doesn't do a use vars for
2096         you
2098 2002-02-01 13:22  nicholas
2100         * MANIFEST: Add docs/embed.pod and t/op/ifunless.t
2102 2002-02-01 12:19  simon
2104         * core.ops, t/op/ifunless.t, t/op/integer.t:
2105         Added "unless" op.
2107 2002-02-01 12:11  simon
2109         * lib/Parrot/Test.pm:
2110         Remove a warning.
2112 2002-02-01 01:38  nicholas
2114         * MANIFEST, MANIFEST.SKIP, Makefile.in: Add a MANIFEST.SKIP file,
2115         and a manitest target to Makefile.in that lets one test the
2116         manifest.
2118 2002-02-01 00:03  dan
2120         * core.ops, global_setup.c, include/parrot/pmc.h: More setup for
2121         PMC dynaloading
2123 2002-01-31 21:46  gregor
2125         * Configure.pl, Makefile.in, hints/mswin32.pl:
2126         A few more things are now configable, so we are closer to win32
2127         shared library builds. Not there yet, but closer.
2129 2002-01-31 21:00  dan
2131         * global_setup.c, classes/pmc2c.pl, include/parrot/global_setup.h,
2132         include/parrot/pmc.h: First step in dynamically loading PMC classes
2134 2002-01-31 19:38  dan
2136         * Makefile.in: Dependencies in the Makefile are currently too broad
2137         brush.  I don't enjoy waiting for everything to recompile every
2138         time I try to tweak the jit. The only file that #includes
2139         jit_struct.h is jit.c, so I feel that the Makefile dependencies
2140         should reflect this, and not cause a gratuitous recompile of
2141         everything.  There are probably other auto-generated header files
2142         that world+dog should not depend on.
2144         Courtesy of  Nicholas Clark <nick@unfortu.net>
2146 2002-01-31 19:03  gregor
2148         * Makefile.in, lib/Parrot/Test.pm, t/harness:
2149         Added two new make targets:
2151           * testp: Like 'make test', but passes -P to t/harness, so you get
2152         to
2153             see how broken predereferencing is.
2155           * testj: Like 'make test', but passes -j to t/harness, so you get
2156         to
2157             see how broken JIT is.
2159         Now, anyone who wants to see how good all three ways of running are
2160         can do so, at the cost of about 3x the time.
2162 2002-01-31 17:09  brentdax
2164         * embed.c, test_main.c: Implement the ARGV-in-P0 thing.
2166 2002-01-31 03:41  grunblatt
2168         * docs/jit.pod: Update jit.pod
2170 2002-01-31 03:20  grunblatt
2172         * jit/i386/core.jit: Hold this until we get an assemble tool,
2173         because of the different objdump problems.
2175 2002-01-31 03:13  grunblatt
2177         * Configure.pl, lib/Parrot/Jit/sun4-solaris.pm,
2178         lib/Parrot/Jit/sun4Generic.pm: Use dis intead of objdump.  Courtesy
2179         of: Jason Gloudon <perl@gloudon.com>
2181 2002-01-31 02:22  grunblatt
2183         * jit/i386/core.jit: Continue if the register is null
2185 2002-01-30 23:50  grunblatt
2187         * lib/Parrot/Jit/: alpha-bsd.pm, alpha-linux.pm, alphaGeneric.pm,
2188         i386-bsd.pm, i386-linux.pm, i386Generic.pm, sun4-solaris.pm,
2189         sun4Generic.pm: Move the AS and OBJDUMP constants to each os
2190         specific file.
2192 2002-01-30 23:35  mrjoltcola
2194         * io/io_win32.c: Change implementation of isatty on win32,
2195         suggested by Hong Zhang.
2197 2002-01-30 23:19  sfink
2199         * jit2h.pl, lib/Parrot/Op.pm, lib/Parrot/OpsFile.pm: Added
2200         Op::may_jump boolean method.
2202         Replaced jit2h's hardcoded pattern match to decide what ops might
2203         change the control flow.
2205 2002-01-30 22:13  dan
2207         * Configure.pl, MANIFEST, testparrotfuncptr.c: This patch allows
2208         parrot to mostly-build with tcc.  It allows one to skip compiling
2209         the JIT stuff (by specifying --define jitcapable=0), and it
2210         introduces a test program which gives a friendlier error in this
2211         case for compilers which are as picky as tcc is about function
2212         pointer conversion.
2214         If anyone figures out the proper way to cast these function
2215         pointers this may not be necessary.
2217         Courtesy of Josh Wilmes <josh@hitchhiker.org>
2219 2002-01-30 20:54  dan
2221         * docs/running.pod, lib/Parrot/Test.pm: I'm being anal again.
2222         Here's an update to docs/running.pod to better reflect the current
2223         state (both the test_parrot and assemble.pl improvements, plus
2224         documentation of a few more things.) And also a speling fiks
2225         s/POST_MORTERM/POST_MORTEM/.
2227         I could also replace some "perl foo" calls with "./foo" if someone
2228         wanted to set the executable flag in CVS on assemble.pl,
2229         optimize.pl, etc.
2231         Courtesy of Steve Fink <steve@fink.com>
2233 2002-01-30 20:43  dan
2235         * core.ops: find_global doesn't work, so stub out the wrong code
2237 2002-01-30 19:08  dan
2239         * lib/Parrot/Assembler.pm:  fixes the POD in Parrot::Assember so
2240         that perldoc
2241          can read it and just tidies it up generally. It also adds
2242         documentation
2243          for the constantize_integer and constantize_number functions.
2245         Courtesy of Simon Glover <scog@roe.ac.uk>
2247 2002-01-30 18:02  dan
2249         * assemble.pl, disassemble.pl, optimizer.pl, pbc2c.pl,
2250         classes/genclass.pl, classes/pmc2c.pl,
2251         languages/scheme/Scheme/Test.pm:  Many of the Perl scripts in the
2252         distribution (including assemble.pl !)
2253          can no longer find the Parrot::* modules. Enclosed patch fixes
2254         (although
2255          it would be nice if there were an easier way to do this).
2257         Courtesy of  Simon Glover <scog@roe.ac.uk>
2259 2002-01-30 16:00  mrjoltcola
2261         * io/io_win32.c: Correct function calls for win32_fdopen and arg
2262         types.
2264 2002-01-30 15:50  mrjoltcola
2266         * io/io_unix.c: Minor bug fix for fdopen flag arg type.
2268 2002-01-30 15:42  grunblatt
2270         * pbc2c.pl, examples/assembly/Makefile: Updates related to moving
2271         files around
2273 2002-01-30 15:38  grunblatt
2275         * MANIFEST: Enclosed patch adds the new SPARC-based JIT files to
2276         the manifest,  and also puts it back into alphabetical order.
2278         Courtesy of: Simon Glover <scog@roe.ac.uk>
2280 2002-01-30 14:41  nicholas
2282         * embed.c: Patch from Simon Glover to clean up warnings where
2283         prototype is () not (void)
2285 2002-01-30 13:54  nicholas
2287         * include/parrot/embed.h, test_main.c: Add void as an explicit
2288         parameter in test_main.c's usage(), version(void) and embed.h's
2289         Parrot_new() Without these gcc moans: include/parrot/embed.h:34:
2290         warning: function declaration isn't a prototype
2292 2002-01-30 12:08  simon
2294         * lib/Parrot/.cvsignore:
2295         Ignore generated Perl modules.
2297 2002-01-30 12:07  simon
2299         * t/harness:
2300         Run the PMC tests as well.
2302 2002-01-30 12:04  simon
2304         * MANIFEST:
2305         Fix MANIFEST after recent t/pmc rejig.
2307 2002-01-30 11:42  simon
2309         * lib/Parrot/Test.pm:
2310         Report non-zero exit codes.
2312         Courtesy of: Michael G Schwern <schwern@pobox.com>
2314 2002-01-30 11:39  simon
2316         * t/op/rx.t:
2317         Skip final test, TODO doesn't work yet.
2319 2002-01-30 09:54  brentdax
2321         * docs/embed.pod: Leon Brocard was kind enough to explain to me how
2322         predereferencing works.
2324 2002-01-30 09:38  brentdax
2326         * docs/: embed.pod, parrot.pod: Document this newfangled embedding
2327         subsystem.
2329 2002-01-30 09:37  brentdax
2331         * include/parrot/embed.h: Fix a mistake, clear up a warning.
2333 2002-01-30 09:37  brentdax
2335         * config_h.in: Expose another flag for embedders.
2337 2002-01-30 05:07  jgoff
2339         * make_vtable_ops.pl, t/harness: Both files didn't know of the new
2340         location for Parrot/, and t/harness wasn't able to run the new
2341         op/pmc tests. Both problems fixed, so I think I'm going to declare
2342         the build suitable for public consumption.
2344 2002-01-30 04:34  robert
2346         * docs/Makefile.in: update for CVS movement
2348 2002-01-30 04:32  robert
2350         * Makefile.in: Adjust for CVS reorganization.  (This time, edit the
2351         .in file, not the real Makefile)
2353 2002-01-30 04:20  robert
2355         * Configure.pl, jit2h.pl, ops2c.pl, ops2pm.pl, pmc_pm.pl,
2356         vtable_h.pl, classes/pmc2c.pl, include/parrot/parrot.h: Updates
2357         related to moving files around
2359 2002-01-30 04:10  robert
2361         * MANIFEST: Update MANIFEST to reflect CVS reorg.
2363 2002-01-30 04:07  robert
2365         * Configure.pl: Add './lib' to our @INC because Parrot/* moved.
2367 2002-01-30 03:56  robert
2369         * Parrot/: .cvsignore, Assembler.pm, BuildUtil.pm, Op.pm,
2370         OpTrans.pm, OpsFile.pm, Optimizer.pm, PackFile.pm, String.pm,
2371         Test.pm, Vtable.pm, Jit/alpha-bsd.pm, Jit/alpha-linux.pm,
2372         Jit/alphaGeneric.pm, Jit/i386-bsd.pm, Jit/i386-linux.pm,
2373         Jit/i386-nojit.pm, Jit/i386Generic.pm, Jit/sun4-solaris.pm,
2374         Jit/sun4Generic.pm, OpLib/.cvsignore, OpTrans/C.pm,
2375         OpTrans/CGoto.pm, OpTrans/CPrederef.pm, PackFile/ConstTable.pm,
2376         PackFile/Constant.pm, PackFile/FixupTable.pm: Moved Parrot/* to
2377         lib/Parrot/
2379 2002-01-30 03:46  robert
2381         * languages/miniperl/miniperlc: renamed to mpc
2383 2002-01-30 03:45  robert
2385         * t/op/: pmc.t, pmc_array.t, pmc_perlarray.t, pmc_perlhash.t,
2386         pmc_perlstring.t: Moved to t/op/pmc/
2388 2002-01-30 03:40  robert
2390         * include/parrot/register_funcs.h: Renamed to regfuncs.h
2392 2002-01-30 03:14  jgoff
2394         * classes/perlarray.pmc, t/op/pmc_perlarray.t, t/pmc/perlarray.t:
2395         Fixed some problems with PerlArray and added tests.  Previously,
2396         only integers could be accessed by negative indices.  After this
2397         change, all basic types can be accessed by negative indices, and
2398         they can also be set at negative indices.
2400 2002-01-29 22:13  brentdax
2402         * TODO: Just look at the stupid diff.
2404 2002-01-29 21:53  simon
2406         * TODO, docs/vtables.pod:
2407         New TODO, and tiny addition to vtables.pod
2409 2002-01-29 21:47  mrjoltcola
2411         * include/parrot/io.h, io/io_unix.c: Minor bug fix in io_unix.
2413 2002-01-29 21:38  mrjoltcola
2415         * Makefile.in: Makefile.in tweak for io depend.
2417 2002-01-29 21:15  brentdax
2419         * embed.c: Fix a segfault and some profiling formatting nits.
2421 2002-01-29 20:54  brentdax
2423         * pmc.c: Oops.
2425 2002-01-29 20:50  brentdax
2427         * pmc.c, include/parrot/exceptions.h: Exceptions are better than
2428         segfaults.
2430 2002-01-29 20:17  mrjoltcola
2432         * interpreter.c, core.ops, io.ops: CVS missed this.
2434 2002-01-29 20:17  mrjoltcola
2436         * io/io.c: These should have gone in Sunday with the rest. CVS is
2437         out to get me.
2439 2002-01-29 18:39  brentdax
2441         * platforms/win32.h: Fix Win32 whoops.
2443 2002-01-29 18:29  brentdax
2445         * embed.c, include/parrot/embed.h: A couple minor embedding fixes.
2447 2002-01-29 17:51  simon
2449         * MANIFEST, Makefile.in, config_h.in, embed.c, test_main.c,
2450         include/parrot/embed.h, include/parrot/parrot.h:
2451         Embedding support. Cool.
2453         Courtesy of: <brentdax@cpan.org>
2455 2002-01-29 15:40  grunblatt
2457         * Configure.pl: Detect if we can use "objdump".  Courtesy of: Jason
2458         Gloudon <perl@gloudon.com>
2460 2002-01-29 14:42  simon
2462         * include/parrot/parrot.h:
2463         Platform stuff has to be included *after* system headers.
2465 2002-01-29 14:05  grunblatt
2467         * interpreter.c, jit.c, Parrot/Jit/sun4-solaris.pm,
2468         Parrot/Jit/sun4Generic.pm, lib/Parrot/Jit/sun4-solaris.pm,
2469         lib/Parrot/Jit/sun4Generic.pm, include/parrot/jit.h,
2470         jit/sun4/core.jit, jit/sun4/lib.jit, jit/sun4/string.jit: Added
2471         support for SPARC.  Courtesy of: Jason Gloudon <perl@gloudon.com>
2473 2002-01-29 10:56  simon
2475         * platforms/generic.h:
2476         If we don't have a S_ISREG, produce something close to it.
2478 2002-01-29 06:01  dan
2480         * MANIFEST, README, LICENSES/Artistic: Finally added licenses
2482 2002-01-29 04:38  jgoff
2484         * classes/array.pmc: Forgot to remove some C++-isms from the
2485         get_{foo}_index routines.
2487 2002-01-29 04:26  jgoff
2489         * MANIFEST, Makefile.in, global_setup.c, classes/Makefile.in,
2490         classes/array.pmc, include/parrot/pmc.h, t/op/pmc_array.t,
2491         t/pmc/array.t: Added array class that languages other than perl can
2492         use for a basis.  It has no features like preextension, and the
2493         array index starts at 0.
2495         MANIFEST - added classes/array.pmc and t/op/pmc_array.t Makefile.in
2496         and classes/Makefile.in - Added array.pmc to the makefile.
2497         (Assuming rules like .pmc.o are portable (or even possible) I might
2498         alter classes/Makefile.in to autobuild the appropriate files.
2500 2002-01-29 02:32  dan
2502         * MANIFEST, Parrot/Test.pm, lib/Parrot/Test.pm,
2503         lib/Test/Builder.pm, lib/Test/More.pm, lib/Test/Simple.pm,
2504         lib/Test/Utils.pm, t/op/interp.t, t/op/macro.t, t/op/pmc.t,
2505         t/op/rx.t, t/op/stacks.t, t/pmc/pmc.t:
2506             Update to Test::More 0.41 which adds Test::Builder
2508             Delete the vestigal Test::Utils
2510             Change Parrot::Test so it uses Test::Builder instead of Evil
2511         Wrappers
2512             around Test::More
2514             output_* now returns whether the test passes or fails
2516             Parrot::Test no longer exports Test::More's functions.  Instead
2517         they
2518             can simply be used together.  The few tests which used
2519         Test::More
2520             features (ie. skip) have 'use Test::More' added.
2522             I ditched the export_to_level() crutch.  Do we expect parrot to
2523         work on
2524             5.004?  (literally 5.004, not 5.004_04)
2526         Courtesy of Michael G Schwern <schwern@pobox.com>
2528 2002-01-28 21:04  dan
2530         * docs/overview.pod:  There is no opcodes.pod; I'm assuming the
2531         pointer should actually be to
2532          parrot_assembly.pod, as the canonical documentation.
2534         Courtesy of Simon Glover <scog@roe.ac.uk>
2536 2002-01-28 20:21  dan
2538         * languages/jako/jakoc, t/op/stacks.t: Toss the last traces of
2539         clone[inps]
2541 2002-01-28 19:18  dan
2543         * core.ops, register.c: clone[insp] is dead
2545 2002-01-28 17:46  grunblatt
2547         * Parrot/Jit/i386Generic.pm, lib/Parrot/Jit/i386Generic.pm,
2548         jit/i386/core.jit: Fix to make the jit work in linux yet again.
2550 2002-01-28 16:45  dan
2552         * MANIFEST, README.OS_X: Added Mac OS X specific readme documenting
2553         the requirement for fink at the moment.
2555 2002-01-28 15:59  simon
2557         * test_main.c:
2558         People might try and run a directory file, with spectacular
2559         results.  We don't want that. No.
2561 2002-01-28 14:58  doughera
2563         * core.ops: Avoid C++-style comments.
2565 2002-01-28 14:16  grunblatt
2567         * jit.c, io/io.c: Changed jit.c to fit the way registers are
2568         accessed.  Readded the pio_(stdin|stdout|stderr) to make builds
2569         work again.
2571 2002-01-28 13:47  doughera
2573         * include/parrot/register.h: Avoid C++-style comment.
2575 2002-01-28 06:03  dan
2577         * MANIFEST, core.ops, interpreter.c, key.c, register.c, trace.c,
2578         Parrot/OpTrans/C.pm, Parrot/OpTrans/CGoto.pm,
2579         lib/Parrot/OpTrans/C.pm, lib/Parrot/OpTrans/CGoto.pm,
2580         docs/parrot_assembly.pod, include/parrot/interpreter.h,
2581         include/parrot/parrot.h, include/parrot/regfuncs.h,
2582         include/parrot/register.h, include/parrot/register_funcs.h,
2583         include/parrot/string.h, include/parrot/string_funcs.h: Registers
2584         are now stored in the interpreter structure itself, rather than
2585         just a pointer to the top of the register structure. Pushes and
2586         pops now involve memcpys, but register access has one fewer
2587         dereference.
2589         Fails four of the register stack tests, though, so not perfect.
2590         Needs fixing, but this is a good place to start.
2592 2002-01-28 04:40  mrjoltcola
2594         * test_main.c: cvs commit missed this. ??
2596 2002-01-28 04:27  mrjoltcola
2598         * examples/assembly/io1.pasm, include/parrot/exceptions.h,
2599         include/parrot/interpreter.h, include/parrot/io.h, io/io.c,
2600         io/io_stdio.c, io/io_unix.c, io/io_win32.c: ParrotIO local to each
2601         interpreter now (at least in theory).  IO handle array added.  Misc
2602         bug fixes in layer handling.  Changed any IO_ constants to PIO_ so
2603         we don't conflict         with system libraries.  Still have broken
2604         stuff in win32 and stdio layer.
2606 2002-01-28 04:01  mrjoltcola
2608         * include/parrot/chartype.h: Typo in chartype.h include guard.
2610 2002-01-28 03:41  mrjoltcola
2612         * t/op/interp.t: Fix flag for interp so we don't get "info"
2613         messages which break tests.
2615 2002-01-28 01:54  dan
2617         * include/parrot/string.h: A few more buffer/string flags
2619 2002-01-27 11:33  nicholas
2621         * chartypes/unicode.c: Cast unsigned argument to int in call to
2622         isdigit to silence gcc warning.
2624 2002-01-26 23:18  grunblatt
2626         * Parrot/Jit/i386Generic.pm, lib/Parrot/Jit/i386Generic.pm: Turn
2627         off that flag.
2629 2002-01-26 23:17  grunblatt
2631         * Parrot/Jit/i386Generic.pm, lib/Parrot/Jit/i386Generic.pm,
2632         jit/i386/core.jit: [no log message]
2634 2002-01-26 22:18  simon
2636         * jit/i386/core.jit:
2637         Jumping to 0x0 is a recipe for segfaults.
2639 2002-01-26 18:35  simon
2641         * t/harness:
2642         Allow user to select which tests to harness
2644         Courtesy of: Nicholas Clark <nick@unfortu.net>
2646 2002-01-26 17:20  grunblatt
2648         * Parrot/Jit/i386-linux.pm, Parrot/Jit/i386Generic.pm,
2649         lib/Parrot/Jit/i386-linux.pm, lib/Parrot/Jit/i386Generic.pm: Patch
2650         to make the jit work in linux again.
2652 2002-01-26 16:52  dan
2654         * Configure.pl, hints/darwin.pl: Add -Wno-shadow, as Darwin's
2655         headers can't cope with this. Darwin-only
2657 2002-01-26 16:04  dan
2659         * include/parrot/parrot.h: Quick note to remind folks that this
2660         isn't the file they're looking for if they're writing extensions or
2661         embedding parrot.
2663         Courtesy of Andy Dougherty <doughera@lafayette.edu>
2665 2002-01-26 00:41  mrjoltcola
2667         * MANIFEST: Oopsy.
2669 2002-01-26 00:37  mrjoltcola
2671         * docs/ParrotFAQ.htm: Parrot FAQ : Created and maintained by Adam
2672         Turoff
2674 2002-01-25 01:31  grunblatt
2676         * jit/alpha/core.jit: There is no neg or fneg.
2678 2002-01-25 01:27  grunblatt
2680         * core.ops, Parrot/Jit/alphaGeneric.pm, Parrot/Jit/i386Generic.pm,
2681         lib/Parrot/Jit/alphaGeneric.pm, lib/Parrot/Jit/i386Generic.pm,
2682         jit/alpha/core.jit, jit/i386/core.jit, t/op/integer.t,
2683         t/op/number.t: Added Parrot_neg.  Erase t.s
2685 2002-01-24 23:26  dan
2687         * interpreter.c: Best make sure unused elements are NULL
2689 2002-01-24 23:24  dan
2691         * interpreter.c: Fix stupid thinko
2693 2002-01-24 18:37  doughera
2695         * Makefile.in: Add a few missing dollar signs in the lifetest
2696         section so that ${exe} and the like get properly interpolated.
2698 2002-01-24 18:15  mrjoltcola
2700         * docs/: .cvsignore, Makefile.in, parrot.pod: Fix pod generation
2701         for io.ops file. Add reference to it in parrot.pod.  Courtesy of
2702         Simon Glover <scog@roe.ac.uk>
2704 2002-01-24 06:43  mrjoltcola
2706         * io/io_stdio.c: Oops.
2708 2002-01-24 06:34  mrjoltcola
2710         * include/parrot/io.h, io/TODO, io/io.c, io/io_stdio.c: Did a bit
2711         of work on the buffering layer.  Decided to use shared read/write
2712         buffer (as do most implementations) for now since its the simplest
2713         way to keep everything synced, (flush on seeks, flush read on
2714         writes, etc.)
2716 2002-01-24 03:38  mrjoltcola
2718         * test_main.c: Cleaned up option handling code a bit for main().
2720 2002-01-23 23:22  dan
2722         * interpreter.c, include/parrot/interpreter.h,
2723         include/parrot/resources.h: Now each interpreter gets its own hash
2724         for globals.
2726 2002-01-23 20:45  dan
2728         * Configure.pl: Fix a warning when there's no - in an architecture
2730 2002-01-22 23:57  grunblatt
2732         * docs/running.pod: [no log message]
2734 2002-01-22 20:29  doughera
2736         * KNOWN_ISSUES: long doubles don't work on SPARC either.  It
2737         appears to be a generic problem (if sizeof(long double) >
2738         sizeof(double)), not an x86-specific one.
2740 2002-01-22 16:57  doughera
2742         * runops_cores.c: Change variable name from time to starttime to
2743         avoid gcc warning about variable name shadowing.
2745 2002-01-22 16:55  doughera
2747         * classes/pmc2c.pl: Include class_init prototype too.
2749 2002-01-22 16:01  doughera
2751         * MANIFEST: [no log message]
2753 2002-01-22 01:04  ajgough
2755         * global_setup.c, classes/default.pmc, classes/intqueue.pmc,
2756         classes/parrotpointer.pmc, classes/perlarray.pmc,
2757         classes/perlhash.pmc, classes/perlint.pmc, classes/perlnum.pmc,
2758         classes/perlstring.pmc, classes/perlundef.pmc, classes/pmc2c.pl,
2759         include/parrot/global_setup.h: Patch from Nick Clark to quieten
2760         warnings from pmc files.  Message-ID:
2761         <20020121224719.GE1726@Bagpuss.unfortu.net>
2763 2002-01-22 00:53  ajgough
2765         * test_main.c: Clears up a couple of warnings in test_main.c.
2766         Thanks to Nick Clark.  Message-ID:
2767         <20020121190457.GB1726@Bagpuss.unfortu.net>
2769 2002-01-22 00:47  ajgough
2771         * string.c, chartypes/unicode.c, chartypes/usascii.c,
2772         include/parrot/chartype.h: Cause all codepoints to be treated as
2773         UNITVALS, and get_digit to return INTVAL, just in case. (Thanks to
2774         Nick Clark, see also: Message-ID:
2775         <20020121214137.GC2371@Bagpuss.unfortu.net> )
2777 2002-01-22 00:24  dan
2779         * key.c: We do mandate an ANSI conformant C compiler, don't we?
2781         Appended patch cures these warnings:
2783         key.c: In function `debug_key': key.c:29: warning: int format,
2784         INTVAL arg (arg 3) key.c:33: warning: int format, INTVAL arg (arg
2785         3) key.c:33: warning: int format, INTVAL arg (arg 4) key.c:36:
2786         warning: int format, INTVAL arg (arg 3) key.c:36: warning: int
2787         format, INTVAL arg (arg 4)
2789         Courtesy of Nicholas Clark <nick@unfortu.net>
2791 2002-01-21 12:41  mrjoltcola
2793         * MANIFEST, io.ops: For some reason cvs commit didn't get this, may
2794         be clock skew.
2796 2002-01-21 06:37  mrjoltcola
2798         * io/io.c: Cleanup a warning
2800 2002-01-21 06:28  mrjoltcola
2802         * examples/assembly/io1.pasm, include/parrot/io.h, io/io.c,
2803         io/io_stdio.c, io/io_unix.c, io/io_win32.c: Added 32/64 bit seek
2804         ops. Various other IO twiddlings.
2806 2002-01-21 03:25  grunblatt
2808         * Makefile.in: Use $jitcpuarch instead of $cpuarch.  Thanks to
2809         Melvin Smith for the catch up.
2811 2002-01-20 23:13  sfink
2813         * stacks.c: Fixed logic errors, need tests
2815 2002-01-20 22:17  brentdax
2817         * rx.c, rx.ops, include/parrot/rx.h, t/op/rx.t: Make /m work and
2818         prepare for /i to work.
2820 2002-01-20 20:52  grunblatt
2822         * Configure.pl, MANIFEST, Makefile.in, interpreter.c, jit.c,
2823         jit2h.pl, Parrot/Jit/alpha-bsd.pm, Parrot/Jit/alpha-linux.pm,
2824         Parrot/Jit/alphaGeneric.pm, Parrot/Jit/i386-bsd.pm,
2825         Parrot/Jit/i386-linux.pm, lib/Parrot/Jit/alpha-bsd.pm,
2826         lib/Parrot/Jit/alpha-linux.pm, lib/Parrot/Jit/alphaGeneric.pm,
2827         lib/Parrot/Jit/i386-bsd.pm, lib/Parrot/Jit/i386-linux.pm,
2828         Parrot/Jit/i386Generic.pm, lib/Parrot/Jit/i386Generic.pm,
2829         include/parrot/jit.h, jit/alpha/core.jit, jit/alpha/lib.jit,
2830         jit/alpha/string.jit:
2831         - Added support for ALPHA, by now linux and bsd.
2833         - Reduced jit2h.pl execution time by precompiling the call to the
2834         unimplemented op.
2836         - Reduced the duplicated code in Parrot/Jit/*.pm by adding
2837         Parrot/Jit/${cpuarch}Generic.pm
2839         - Changed the way to detect quads to what is written in "man
2840         perlfunc".
2842 2002-01-20 17:23  brentdax
2844         * rx.ops: There's no such thing as rx_allocateinfo.
2846 2002-01-19 08:26  brentdax
2848         * pbc2c.pl: Stop this stupid "hard-code the new oplib" stuff.
2850 2002-01-19 07:12  mrjoltcola
2852         * MANIFEST, core.ops, io.ops, pbc2c.pl: Separate pure ParrotIO ops
2853         into io.ops, leave the STDIO wrappers        in core.ops until they
2854         disappear.  Added debug op for switching on VM debug flag
2856 2002-01-19 01:55  mrjoltcola
2858         * include/parrot/io.h, io/TODO, io/io.c, io/io_stdio.c,
2859         io/io_unix.c, io/io_win32.c: Added a few more Win32 layer calls
2861 2002-01-19 00:55  brentdax
2863         * Makefile.in, rx.c, rx.ops, rxstacks.c, include/parrot/rx.h,
2864         include/parrot/rxstacks.h: Add regex-specific stacks for
2865         efficiency.
2867 2002-01-18 23:58  dan
2869         * Configure.pl: I think the optimal fix here is simply to remove
2870         -ansi -pedantic.  -ansi may well have some uses, but even the gcc
2871         man pages say "There is no reason to use this option [-pedantic];
2872         it exists only to satisfy pedants."
2874         Courtesy of Andy Dougherty <doughera@lafayette.edu>
2876 2002-01-18 23:23  dan
2878         * MANIFEST, docs/parrot.pod, docs/running.pod: This patch add
2879         docs/running.pod, which lists the various executables Parrot
2880         currently includes, examples of running them, and mentions of where
2881         they fail to work. It's more of a cry for help than a useful
2882         reference. :-) I've been having trouble recently when making
2883         changes in figuring out whether I broke anything, because any
2884         non-default way of running the system seems to be already broken. I
2885         can't tell what brokenness is expected and what isn't.
2887         Courtesy of  Steve Fink <steve@fink.com>
2889 2002-01-15 22:13  brentdax
2891         * include/parrot/rx.h, rx.c, rx.ops: Remove the last vestiges of
2892         substring use and enhance performance.
2894 2002-01-15 21:03  ajgough
2896         * string.c: Fix problem with string_transcode, &dest not being
2897         updated if src was already in desired encoding.
2899 2002-01-15 16:54  brentdax
2901         * rx.c, rx.ops, include/parrot/rx.h: Hunt down and destroy
2902         warnings.  Leaves only one warning, at rx.ops line 409, that I
2903         can't manage to get rid of.
2905 2002-01-15 16:50  dan
2907         * pbc2c.pl: Pointer arithmetic not quite right in the generated
2908         code.  Also patches pbc2c.pl to work with rx.ops.
2910         Courtesy of Jason Gloudon <perl@gloudon.com>
2912 2002-01-15 16:15  dan
2914         * classes/Makefile.in: All the C files in classes/ weren't being
2915         compiled with an of the gcc warnings flags. With this patch they
2916         are, and there are an awful lot of warnings, more than I could hope
2917         to understand and clear up (within any sensible time period before
2918         submitting a rash of patches, by which time everyone else would
2919         have moved the code on)
2921         Courtesy of Nicholas Clark <nick@unfortu.net>
2923 2002-01-15 16:10  dan
2925         * core.ops, ops2c.pl, Parrot/Op.pm, Parrot/OpTrans.pm,
2926         Parrot/OpsFile.pm, lib/Parrot/Op.pm, lib/Parrot/OpTrans.pm,
2927         lib/Parrot/OpsFile.pm, Parrot/OpTrans/C.pm,
2928         Parrot/OpTrans/CGoto.pm, Parrot/OpTrans/CPrederef.pm,
2929         lib/Parrot/OpTrans/C.pm, lib/Parrot/OpTrans/CGoto.pm,
2930         lib/Parrot/OpTrans/CPrederef.pm, chartypes/unicode.c,
2931         chartypes/usascii.c: This patch adds a few more macros for .ops
2932         files to use. In addition to the existing
2934          goto OFFSET(...)
2935          goto ADDRESS(...)
2936          goto POP()
2937          goto NEXT()
2939         it adds
2941          expr OFFSET(...)
2942          expr ADDRESS(...)
2943          expr POP()
2944          expr NEXT()
2946         This is intended mainly for use in helper functions in .ops files,
2947         but also for ops that need to eg push the address of the next
2948         opcode onto a stack. The only place this currently happens (outside
2949         of my private code) is in the bsr opcode, which previously
2950         hardcoded the computation.
2952         This patch also makes ops2c.pl move the CUR_OPCODE #define a bit
2953         higher in the generated file so that it can be used by static
2954         functions in the preamble.
2956         Finally, I ran into a parentheses matching problem -- should goto
2957         OFFSET(...) rewrite    \bgoto\s+OFFSET\((.*)\) or
2958         \bgoto\s+OFFSET\((.*?)\)
2960         It was done inconsistently for the different calculations, and of
2961         course neither are correct because you really want matching
2962         parentheses. But that seems like too much bother. (Currently,
2963         there's only one place that uses anything other than $n in the
2964         parentheses, and that's the enternative() op.) So I made them all
2965         .*? but emulated recent POD by also allowing (( ... )) (that's two
2966         parenthesis with a space padding the body.)
2968         The generated core_ops.c and core_ops_prederef.c files after this
2969         patch are identical except for the CUR_OPCODE and REL_PC macros
2970         getting moved a little higher, and the bsr in the regular path (not
2971         prederef) uses 'CUR_OPCODE' instead of the hardcoded 'cur_opcode'.
2973         In summary, this is a big wad of meaningless changes for the
2974         current code. But it will make adding some opcodes easier in the
2975         future, and cleans up a small nit in the current bsr.
2977         Courtesy of Steve Fink <steve@fink.com>
2979 2002-01-15 08:48  brentdax
2981         * include/parrot/rx.h: Bitmaps can now include chars >255 (well,
2982         sort of).
2984 2002-01-15 08:45  brentdax
2986         * rx.c, rx.ops: Bitmaps can now include chars >255 (well, sort of).
2988 2002-01-15 05:00  brentdax
2990         * rx.ops: Speed up rx_literal--roughly doubles benchmark
2991         performance.
2993 2002-01-14 20:18  dan
2995         * vtable.tbl, vtable_h.pl: Clean up a zillion warnings
2997         Courtesy of Nicholas Clark <nick@unfortu.net>
2999 2002-01-14 20:03  dan
3001         * Configure.pl, MANIFEST, Makefile.in, core.ops, exceptions.c,
3002         global_setup.c, interpreter.c, key.c, ops2c.pl, register.c,
3003         runops_cores.c, rx.ops, stacks.c, string.c, test_main.c, trace.c,
3004         chartypes/unicode.c, chartypes/usascii.c, classes/default.pmc,
3005         classes/parrotpointer.pmc, classes/perlarray.pmc,
3006         classes/perlhash.pmc, classes/perlint.pmc, classes/perlnum.pmc,
3007         classes/perlstring.pmc, classes/perlundef.pmc,
3008         encodings/singlebyte.c, encodings/utf16.c, encodings/utf32.c,
3009         encodings/utf8.c, include/parrot/exceptions.h, include/parrot/io.h,
3010         include/parrot/parrot.h, include/parrot/rx.h, io/io_stdio.c,
3011         io/io_win32.c, platforms/win32.c, platforms/win32.h, t/op/pmc.t,
3012         t/op/pmc_perlhash.t, t/op/rx.t, t/pmc/perlhash.t, t/pmc/pmc.t: This
3013         patch cleans up most of the MSVC-warnings when using warning level
3014         4 (the highest, one above the default level 3). It turns off two
3015         level-4 warnings for 'unreferenced formal parameter' and 'named
3016         type definition in parentheses', the latter of which was turning up
3017         warnings in MS VC headers.  Level 4 warnings also helped me find a
3018         couple of other lurking bugs in the parrot code.
3020         Replaces the various fprintf/exit combos with calls to
3021         internal_exception, which uses var_args to emulate printf. Various
3022         exception types were added as well. These are probably temporary
3023         until a real exception system arrives.
3025         Fixed some places in the IO code where wrong functions were being
3026         called, or put into the vtable.
3028         Courtesy of "Michel Lambert" <mlambert@legendent.com>
3030 2002-01-14 19:00  dan
3032         * MANIFEST: D'oh! Forgot a file.
3034         Courtesy of Andy Dougherty <doughera@lafayette.edu>
3036 2002-01-14 18:44  brentdax
3038         * rx.c, rx.ops, include/parrot/rx.h: Use bitmaps where it makes
3039         sense (and a few other enhancements to regexes).
3041 2002-01-14 07:07  brentdax
3043         * interpreter.c, runops_cores.c, test_main.c,
3044         include/parrot/interpreter.h: Make profiling a little more useful.
3046 2002-01-13 19:44  dan
3048         * Configure.pl: Turn off unsed things warnings for now
3050 2002-01-13 19:39  dan
3052         * key.c, classes/perlarray.pmc: key.c:   intialize KEY.keys
3054         classes/perlarray.c:  * get_string: is casting
3055         SELF->cache.struct_val to a STRING*,    while all other methods are
3056         using it as a KEY*; don't know    what a perlarray stringifies to,
3057         so replacing with NULL  * get_bool: the default behaviour does not
3058         look right to me
3060         Courtesy of "Mattia Barbon" <mbarbon@dsi.unive.it>
3062 2002-01-13 19:37  dan
3064         * Makefile.in, classes/Makefile.in: Makefile.in:   (Re)add ld_debug
3065         flags to LDFLAGS, so that Configure.pl --debugging   works with
3066         MSVC
3068         classes/Makefile.in   make easier to add pmb2c.pl flags to all
3069         pmc2c calls
3071         Courtesy of "Mattia Barbon" <mbarbon@dsi.unive.it>
3073 2002-01-13 19:36  dan
3075         * io/io_win32.c:   according to my MSVC docs, you should use
3076         _tcslen only after
3077           #including tchar.h
3079         Courtesy of  "Mattia Barbon" <mbarbon@dsi.unive.it>
3081 2002-01-13 19:35  dan
3083         * docs/intro.pod: Doc tweak.
3085         Courtesy of Simon Glover <scog@roe.ac.uk>
3087 2002-01-13 19:34  dan
3089         * t/: op/pmc_perlstring.t, pmc/perlstring.t:  Enclosed test checks
3090         that
3092           if Px, ...
3094          works with PerlString PMCs; these should be false if they are "",
3095         0, or
3096          are undefined, and true in every other case.
3098         Courtesy of Simon Glover <scog@roe.ac.uk>
3100 2002-01-13 19:23  dan
3102         * Configure.pl, config_h.in, core.ops, classes/perlnum.pmc: Change
3103         NUMVAL_FMT to FLOATVAL_FMT.
3105         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3107 2002-01-13 17:45  jgoff
3109         * Makefile.in, global_setup.c, classes/Makefile.in,
3110         classes/intqueue.pmc, include/parrot/pmc.h, t/op/pmc.t,
3111         t/pmc/pmc.t: IntQueue is for an upcoming article on perl.com on
3112         designing your own classes.
3114 2002-01-13 08:47  simon
3116         * interpreter.c, Parrot/OpTrans/CPrederef.pm,
3117         lib/Parrot/OpTrans/CPrederef.pm:
3118         Fix bsr in prederef mode.
3120         Courtesy of: Jason Gloudon <perl@gloudon.com>
3122 2002-01-12 15:33  dan
3124         * interpreter.c, key.c, packfile.c, register.c, resources.c,
3125         string.c, encodings/singlebyte.c, encodings/utf32.c,
3126         include/parrot/parrot.h, io/io.c, io/io_stdio.c, io/io_unix.c:
3127         Silence most of the unused variable warnings.
3129         Courtesy of Nicholas Clark <nick@unfortu.net>
3131 2002-01-12 15:18  dan
3133         * rx.ops: This patch fixes a warning and also changes an 'int' to
3134         an 'INTVAL'.  All tests should pass on Solaris.
3136         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3138 2002-01-12 15:13  dan
3140         * interpreter.c, string.c, test_main.c, classes/parrotpointer.pmc,
3141         examples/assembly/life.pasm, include/parrot/interpreter.h,
3142         include/parrot/io.h, io/io.c, io/io_stdio.c, io/io_unix.c,
3143         io/io_win32.c: More IO work. (Plus some misc twiddles)
3145         Courtesy of Melvin Smith <mrjoltcola@mindspring.com>
3147 2002-01-12 01:14  dan
3149         * include/parrot/string.h: fix a missing name
3151 2002-01-12 00:39  grunblatt
3153         * include/parrot/string.h: Few typos.
3155 2002-01-12 00:16  grunblatt
3157         * jit.c, jit2h.pl, jit/i386/core.jit: Added support for opcodes
3158         that change the program control flow.
3160 2002-01-11 23:53  brentdax
3162         * classes/parrotpointer.pmc: Tell the GC to keep its hands out of a
3163         ParrotPointer's guts.
3165 2002-01-11 23:03  dan
3167         * include/parrot/string.h: flags for the buffers, for GC
3169 2002-01-11 22:31  dan
3171         * include/parrot/pmc.h: PMC flag docs. Those'd be good...
3173 2002-01-11 22:21  dan
3175         * include/parrot/pmc.h: Started with PMC flags
3177 2002-01-11 19:33  dan
3179         * config_h.in, memory.c, resources.c, string.c,
3180         include/parrot/resources.h: Beginnings of a memory allocation/gc
3181         system. Without the GC part.
3183 2002-01-11 18:05  dan
3185         * core.ops: Make sure constant pushes are right on mixed 32/64 bit
3186         systems
3188         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3190 2002-01-11 17:50  dan
3192         * core.ops, pbc2c.pl, Parrot/OpTrans/CGoto.pm,
3193         lib/Parrot/OpTrans/CGoto.pm, include/parrot/interpreter.h: Here is
3194         a patch that makes pbc2c generated code work with the bsr opcode.
3195         It creates a new opcode 'enternative', and uses this to support a
3196         mixed model of interpretation and execution of compiled C code.
3198         Courtesy of Jason Gloudon <perl@gloudon.com>
3200 2002-01-11 17:48  dan
3202         * Makefile.in: Add life as a potential .exe target
3204 2002-01-11 17:30  dan
3206         * include/parrot/resources.h: Start of arena stuff for GC
3208 2002-01-11 05:34  brentdax
3210         * rx.ops: Docs modifications.
3212 2002-01-11 04:19  brentdax
3214         * rx.ops, include/parrot/rx.h: Remove unnecessary evilness from
3215         regular expressions.
3217 2002-01-11 03:44  grunblatt
3219         * jit/i386/core.jit: off by one.
3221 2002-01-11 02:25  dan
3223         * Makefile.in, examples/assembly/life.pasm: Tweak to life benchmark
3225         Courtesy of Steve Fink <steve@fink.com>
3227 2002-01-11 00:32  brentdax
3229         * MANIFEST: Forgot to put parrotpointer.pmc in the MANIFEST.
3231 2002-01-10 23:22  ajgough
3233         * string.c, docs/strings.pod: Removed all the nul termination code,
3234         as this is in general a bad idea.  Note added to docs/strings.pod
3235         to warn people away from assuming termination.
3237 2002-01-10 23:14  dan
3239         * core.ops, interpreter.c, jit.c, rx.c, rx.ops, stacks.c,
3240         testparrotsizes_c.in, include/parrot/interpreter.h,
3241         include/parrot/rx.h, include/parrot/stacks.h: Much nicer stack
3242         implementation
3244         Courtesy of Steve Fink <steve@fink.com>
3246 2002-01-10 22:48  dan
3248         * core.ops: Fix 'basic' test 1 for sizeof(opcode_t) !=
3249         sizeof(INTVAL)
3251         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3253 2002-01-10 22:46  dan
3255         * key.c, classes/perlhash.pmc, t/op/pmc_perlhash.t,
3256         t/pmc/perlhash.t:  Well, actually two bugs.
3258          The first is an off-by-one error in key.c than can cause parrot
3259          to segfault if hash % NUM_BUCKETS happens to be zero.
3261          The other is a bug in the PerlHash init() code that causes new
3262         PerlHash
3263          PMCs to start with the wrong size.
3265          Both fixed below; also tests to prevent them recurring.
3267         Courtesy of Simon Glover <scog@roe.ac.uk>
3269 2002-01-10 22:30  dan
3271         * classes/default.pmc, classes/perlarray.pmc, t/op/pmc_perlarray.t,
3272         t/pmc/perlarray.t:  The enclosed patch allows one to use the if op
3273         with a PerlArray,
3275         Courtesy of Simon Glover <scog@roe.ac.uk>
3277 2002-01-10 21:31  dan
3279         * examples/assembly/life.pasm: Tweaked to be a benchmarkable thing
3281 2002-01-10 20:30  grunblatt
3283         * jit.c, jit2h.pl, Parrot/Jit/i386-bsd.pm,
3284         Parrot/Jit/i386-linux.pm, lib/Parrot/Jit/i386-bsd.pm,
3285         lib/Parrot/Jit/i386-linux.pm, jit/i386/core.jit, jit/i386/lib.jit:
3286         All the op codes that doesn't change the program control flow now
3287         work in the JIT by calling the code generated by the compiler when
3288         the op is not in core.jit TODO:     * Make all the ops that change
3289         the program control flow (and are not on core.jit) work.      *
3290         Remove the dispatch payload.
3292 2002-01-10 17:13  dan
3294         * classes/parrotpointer.pmc: This patch fixes parrotpointer.pmc,
3295         which tries to return 0 from a void function.
3297         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3299 2002-01-10 17:12  dan
3301         * t/op/macro.t: Skip tests, don't comment them out.
3303         Courtesy of Simon Glover <scog@roe.ac.uk>
3305 2002-01-10 17:10  dan
3307         * rx.c: This fixes a couple of nits in rx.c:
3309            1. There's no newline at the end, which makes gcc unhappy.
3310            2. We should use NULL, not 0 or "", for creating null pointers.
3312         Courtesy of Simon Glover <scog@roe.ac.uk>
3314 2002-01-10 17:09  dan
3316         * MANIFEST:  Adds rx.t, removes duplicated rx.c and puts everything
3317         back in
3318          alphabetical order.
3320         Courtesy of Simon Glover <scog@roe.ac.uk>
3322 2002-01-10 16:54  ajgough
3324         * resources.c: Made free_string check that there was a string to
3325         free.  In reponse to a bug spotted by Joshua Nye.
3327 2002-01-09 22:44  dan
3329         * global_setup.c: Forgot the setup
3331 2002-01-09 22:35  dan
3333         * rx.ops: Forgot this one
3335 2002-01-09 22:35  dan
3337         * MANIFEST, Makefile.in, rx.c, string.c, include/parrot/pmc.h,
3338         include/parrot/rx.h, t/op/rx.t: Preliminary regex implementation.
3339         Tests don't work, though.
3341         Courtesy of "Brent Dax" <brentdax@cpan.org>
3343 2002-01-09 21:48  dan
3345         * t/: op/pmc_perlarray.t, pmc/perlarray.t: Whoops, forgot that
3347 2002-01-09 21:22  dan
3349         * classes/Makefile.in, classes/parrotpointer.pmc, Makefile.in:
3350         Generic pointer holder class
3352         Courtesy of "Brent Dax" <brentdax@cpan.org>
3354 2002-01-09 21:19  dan
3356         * MANIFEST, classes/perlarray.pmc, t/op/pmc.t, t/pmc/pmc.t: Array
3357         patches.
3359 2002-01-09 19:54  dan
3361         * io/io_unix.c: Whoops. Forgot one
3363 2002-01-09 19:43  dan
3365         * key.c, classes/perlhash.pmc, t/op/pmc_perlhash.t,
3366         t/pmc/perlhash.t: Fix hash crash bugs
3368         Courtesy of Simon Glover <scog@roe.ac.uk>
3370 2002-01-09 19:13  dan
3372         * memory.c: Signedness whoops.
3374         Courtesy of Simon Glover <scog@roe.ac.uk>
3376 2002-01-09 18:23  dan
3378         * MANIFEST, Makefile.in, include/parrot/io.h, io/io.c, io/io_os.c,
3379         io/io_stdio.c, io/io_win32.c: Changes:
3381         -Minor layer cleanups -Win32 layer added (mostly stubs for now) but
3382         will be using the   Win32 API and company rather than the unix-ish
3383         fake ones.  -stdin/stdout/stderr Win32 specific code added. Rather
3384         than use   0,1,2, Microsoft says use GetStdHandle(), etc. so that
3385         stuff is   there. Soon we should be able to start using these
3386         rather than   fprintf(stderr, ...) and remove stdio linkage.
3388         Courtesy of <mrjoltcola@mindspring.com>
3390 2002-01-09 17:26  dan
3392         * test_main.c: Fixes bad code gen on x86.
3394         Courtesy of Josh Wilmes <josh@hitchhiker.org>
3396 2002-01-09 17:24  dan
3398         * Configure.pl, config_h.in, core.ops, key.c, classes/perlint.pmc,
3399         classes/perlnum.pmc: This patch adds macros to the config.h file
3400         for INTVAL and NUMVAL printf formats.
3402         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3404 2002-01-08 22:55  ajgough
3406         * docs/vtables.pod: Clarify what get_string should do.
3408 2002-01-08 20:05  dan
3410         * key.c: Keep comments in sync.
3412         Courtesy of Simon Glover <scog@roe.ac.uk>
3414 2002-01-08 19:50  dan
3416         * memory.c, include/parrot/memory.h: Need a realloc
3418 2002-01-08 17:24  gregor
3420         * .cvsignore, Configure.pl, Makefile.in:
3421         Added 'reconfig' make target and corresponding --reconfig option to
3422         Configure.pl, so its very easy to re-run Configure.pl with the last
3423         (command-line) options you passed it.
3425 2002-01-08 16:33  dan
3427         * core.ops, make_vtable_ops.pl, Parrot/OpsFile.pm,
3428         lib/Parrot/OpsFile.pm: Add in, out, and inout parameters to teh ops
3429         in core.ops. Potential help for optimizers and JITters.
3431         Courtesy of gregor@linux1.kennedytech.com
3433 2002-01-08 16:32  dan
3435         * key.c: Grab key length from the right spot
3437         Courtesy of "Peter Gibbs" <peter@emkel.co.za>
3439 2002-01-08 13:27  ajgough
3441         * test_main.c: Fix slight thinko in realloc usage for reading from
3442         stdin.
3444 2002-01-08 11:34  ajgough
3446         * test_main.c: Allow test_parrot to read bytecode stream from
3447         stdin, adds -f command line option, with "-f -" doing the stdin
3448         stuff.
3450 2002-01-08 06:34  jgoff
3452         * key.c, include/parrot/key.h: key.c - Added simple implementation
3453         of buckets.  include/parrot/key.h - Added enum_key_bucket type
3455 2002-01-08 03:21  jgoff
3457         * include/parrot/key.h: Added an undef type to the key structure,
3458         so we can delete keys without confusion.
3460 2002-01-07 22:09  dan
3462         * key.c, packfile.c, string.c, include/parrot/key.h,
3463         include/parrot/packfile.h, include/parrot/string.h: Fix whines
3464         about index being redefined
3466         Courtesy of Nick Clark
3468 2002-01-07 21:15  dan
3470         * ops2pm.pl: Don't allow the same ops lib to be included twice.
3472         Courtesy of Steve Fink <steve@fink.com>
3474 2002-01-07 20:48  dan
3476         * Parrot/Test.pm, lib/Parrot/Test.pm: Report useful info for test
3477         failures
3479         Courtesy of "Brent Dax" <brentdax@cpan.org>
3481 2002-01-07 20:43  dan
3483         * docs/intro.pod: Missing a comma
3485         Courtesy of "coral" <coral@eekeek.org>
3487 2002-01-07 20:41  dan
3489         * global_setup.c: Quiet a warning
3491         Courtesy of Simon Glover <scog@roe.ac.uk>
3493 2002-01-07 18:58  gregor
3495         * t/op/.cvsignore:
3496         Ignore intermediate test files.
3498 2002-01-07 17:01  gregor
3500         * ops2c.pl:
3501         Print a warning if an .ops file is mentioned more than once on the
3502         command line.
3504 2002-01-07 16:12  ajgough
3506         * t/: op/pmc_perlhash.t, pmc/perlhash.t: A couple more hash tests,
3507         these shouldn't fail.
3509 2002-01-07 15:15  simon
3511         * t/: op/pmc_perlhash.t, pmc/perlhash.t:
3512         Stop segfaults.
3514 2002-01-07 15:11  simon
3516         * key.c:
3517         Fix zero-termination bug in hash function.
3519 2002-01-07 13:37  ajgough
3521         * MANIFEST, t/op/pmc_perlhash.t, t/pmc/perlhash.t: Added
3522         pmc_perlhash.t, one test currently fails, one passes, yin-yang fun.
3524 2002-01-07 11:53  brentdax
3526         * Configure.pl: Fixes the + thing in prompts, plus adds a synonym
3527         (:add{foo}) and a new deleting thing (:rem{foo})
3529 2002-01-07 11:43  simon
3531         * Configure.pl:
3532         Gobble the + before concatenating.
3534 2002-01-07 03:53  dan
3536         * Makefile.in: Dependency fix for new ops setup.
3538 2002-01-07 03:33  jgoff
3540         * classes/perlarray.pmc: Add negative indices, and fix a small
3541         allocation problem.
3543 2002-01-06 23:54  ajgough
3545         * hints/os2.pl: Makes the hints file take account of ldflags and
3546         ccflags being split.  This hints file is still very specific to
3547         builds with gnu tools, but a proper solution can wait.   Thanks to
3548         Nick Burch.
3550 2002-01-06 22:12  dan
3552         * Makefile.in, ops2c.pl, Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm:
3553             -changes Parrot::OpLib::core's dependencies to reflect the new
3554         selectable ops files    -allows some of the special forms of 'goto'
3555         inside the PREAMBLE of an opcode file
3557         Courtesy of "Brent Dax" <brentdax@cpan.org>
3559 2002-01-06 19:59  simon
3561         * Makefile.in:
3562         *cough*
3564 2002-01-06 18:19  dan
3566         * classes/perlhash.pmc: Fix some type issues.
3568         Courtesy of Josh Wilmes <josh@hitchhiker.org>
3570 2002-01-06 18:03  dan
3572         * Configure.pl, Makefile.in: It adds a prompt to Configure asking
3573         for a list of opcode files to use.  The default is everything
3574         available except for obscure.ops.
3576         In addition, it makes it so that if your answer to a question
3577         starts with '+', it will concatenate it to the default.  For
3578         example:
3580         What C compiler do you want to use? [cl] +HAHAHA!!!
3582         will result in $PConfig{cc} eq "cl HAHAHA!!!".  While that example
3583         is not terribly useful, it is quite useful with things like
3584         command-line flags and the like.
3586         Finally, it contains a couple tweaks so that my syntax-highlighting
3587         editor recognizes some heredocs correctly.  :^)
3589         Courtesy of "Brent Dax" <brentdax@cpan.org>
3591 2002-01-06 17:59  dan
3593         * KNOWN_ISSUES, MANIFEST, README: Doc Patches
3595         Courtesy of "Bryan C. Warnock" <bwarnock@raba.com>
3597 2002-01-06 17:58  dan
3599         * MANIFEST:  We're missing a couple of files from the MANIFEST.
3601         Courtesy of Simon Glover <scog@roe.ac.uk>
3603 2002-01-06 17:57  dan
3605         * ops2c.pl, Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm:   1.
3606         Compiler directives, etc. in files other than core.ops will now
3607         work.   2.  Compiler warnings will now display the file and line
3608         number of the  opcode file.
3610         Courtesy of "Brent Dax" <brentdax@cpan.org>
3612 2002-01-06 17:52  dan
3614         * languages/jako/jakoc: Fix breakage caused by iton/ntoi going away
3616         Courtesy of Simon Glover <scog@roe.ac.uk>
3618 2002-01-06 17:36  dan
3620         * docs/intro.pod: Lots of updates
3622         Courtesy of Simon Glover <scog@roe.ac.uk>
3624 2002-01-06 02:34  gregor
3626         * interpreter.c:
3627         Add some internal documentation on the theory of operation of the
3628         prederef code.
3630 2002-01-06 02:17  gregor
3632         * interpreter.c:
3633         Removed unnecessary include.
3635 2002-01-05 12:37  simon
3637         * classes/.cvsignore:
3638         Ignore generated .h files.
3640         Courtesy of: Josh Wilmes <josh@hitchhiker.org>
3642 2002-01-05 12:37  simon
3644         * Configure.pl:
3645         Make lcc happier by adding a dummy structure.
3647         Courtesy of: Josh Wilmes <josh@hitchhiker.org>
3649 2002-01-05 12:35  simon
3651         * global_setup.c, classes/perlundef.pmc, t/op/pmc.t, t/pmc/pmc.t:
3652         Make perlundef work. (And coincidentally stop segfaults in the
3653         tests :)
3655         Courtesy of: Jason Gloudon <perl@gloudon.com>
3657 2002-01-05 04:59  dan
3659         * t/: op/pmc.t, pmc/pmc.t: Undef tests added.
3661 2002-01-05 04:55  jgoff
3663         * classes/perlhash.pmc: Added perlhash class definition
3665 2002-01-05 04:48  dan
3667         * core.ops: Fix on 64 bit platforms with 32-bit opcode_t
3669         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3671 2002-01-05 03:57  jgoff
3673         * MANIFEST, Makefile.in, core.ops, global_setup.c, key.c,
3674         vtable.tbl, classes/Makefile.in, classes/default.pmc,
3675         include/parrot/key.h, include/parrot/pmc.h, t/op/pmc.t,
3676         t/pmc/pmc.t: Initial hash commit.
3678         core.ops - Adding set({i,n,s},p,s) and set(p,{i,n,s},s) operations.
3679          key.h  - Adding NUM_BUCKETS classes/default.pmc - Adding
3680         set_{integer,number,string}_index_s
3682         This does not yet do collision resolution, but will soon.
3684 2002-01-05 02:54  dan
3686         * interpreter.c: More unsigned fixes
3688         Courtesy of "Bryan C. Warnock" <bwarnock@raba.com>
3690 2002-01-04 22:13  dan
3692         * Configure.pl, hints/mswin32.pl: Makes config's building of the
3693         test programs happier.
3695         Courtesy of "Jason Diamond" <jason@injektilo.org>
3697 2002-01-04 19:00  dan
3699         * Configure.pl, Makefile.in, hints/darwin.pl: Add link flags as
3700         separate things
3702 2002-01-04 18:27  dan
3704         * Configure.pl, Makefile.in, classes/Makefile.in, hints/mswin32.pl:
3705         Fixes to get things configuring and building on Win32 Native.
3707         Courtesy of "Jason Diamond" <jason@injektilo.org>
3709 2002-01-04 17:39  dan
3711         * hints/vms.pl: debug cleanup
3713 2002-01-04 16:53  dan
3715         * docs/parrot.pod:  The enclosed patch brings the list of
3716         documentation in parrot.pod
3717          up to date.
3719         Courtesy of Simon Glover <scog@roe.ac.uk>
3721 2002-01-04 16:47  dan
3723         * test_main.c, Parrot/Jit/i386-linux.pm,
3724         lib/Parrot/Jit/i386-linux.pm: In an attempt to just keep knocking
3725         off warnings..
3727         Courtesy of Kevin Falcone <kevin@jibsheet.com>
3729 2002-01-04 16:44  dan
3731         * Configure.pl, Makefile.in: Fixed linking to use linker.
3733         Courtesy of Josh Wilmes <josh@hitchhiker.org>
3735 2002-01-04 16:39  dan
3737         * io/io_stdio.c: Added CVS tag info
3739 2002-01-04 16:35  dan
3741         * hints/cygwin.pl: Time for this. We need a sane linker, and ld2
3742         isn't it
3744 2002-01-04 16:26  dan
3746         * languages/miniperl/Miniperl/Tokenizer.pm: Quiet a warning in the
3747         Tokenizer test
3749         Courtesy of Jonathan Stowe <gellyfish@gellyfish.com>
3751 2002-01-04 16:17  dan
3753         * chartypes/unicode.c: Silence some warnings.
3755         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3757 2002-01-04 16:09  dan
3759         * classes/: genclass.pl, perlarray.pmc, perlint.pmc, perlnum.pmc,
3760         perlstring.pmc, perlundef.pmc:  - genclass.pl attempts to put $Id$
3761         into generated files
3762            but the $Id$ string gets mangled when it's committed.
3763            This patch fixes the existing .pmc files and fixes genclass.pl.
3765          - Makes capitalization in .pmc header match actual filenames
3767          - The command for calling genclass.pl in vtables.pod is incorrect,
3768            since it assumes you're running in classes/ but genclass.pl
3769         assumes
3770            it's being run from the main directory. I changed genclass.pl to
3771         not
3772            care.
3774         Courtesy of Steve Fink <steve@fink.com>
3776 2002-01-04 03:57  dan
3778         * MANIFEST, io/TODO, io/io_stdio.c: No wonder things worked for
3779         me--I *had* the files:wq!
3781 2002-01-04 03:40  dan
3783         * MANIFEST: Whoops--remove files not really there
3785 2002-01-04 03:37  dan
3787         * interpreter.c, stacks.c, include/parrot/stacks.h: The patch below
3788         my sig adds a new_stack() function to take care of the allocation
3789         and setup of "generic" stacks.
3791         Courtesy of "Brent Dax" <brentdax@cpan.org>
3793 2002-01-04 02:36  dan
3795         * core.ops:  The entry in core.ops for puts(s|sc) is missing a =cut
3796         and so
3797          writes a load of junk in core_ops.pod. Applied patch fixes.
3799         Courtesy of Simon Glover <scog@roe.ac.uk>
3801 2002-01-04 02:35  dan
3803         * classes/: perlint.pmc, perlnum.pmc, perlstring.pmc: The PerlInt
3804         logical-or is using get_integer instead of get_bool for logical
3805         operations. This patch corrects that.
3807         Perlnum and perlstring have working get_bool's, so the default
3808         logical_or and logical_and should be sufficient. The empty methods
3809         are pointed to the default logical_or.
3811         Courtesy of Jason Gloudon <perl@gloudon.com>
3813 2002-01-04 02:31  dan
3815         * Makefile.in: docs/Makefile should be removed by realclean, but
3816         isn't
3818         Courtesy of Kevin Falcone <kevin@jibsheet.com>
3820 2002-01-04 02:29  dan
3822         * classes/: Makefile.in, pmc2c.pl: PMC inheritance! Yay!
3824         Courtesy of Steve Fink <steve@fink.com>
3826 2002-01-04 00:51  dan
3828         * docs/vtables.pod: More docs
3830         Courtesy of Steve Fink <steve@fink.com>
3832 2002-01-04 00:47  dan
3834         * Configure.pl: Updated 64-bit patch
3836         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3838 2002-01-04 00:43  dan
3840         * Configure.pl: 64-bit Fix.
3842         Courtesy of "Bryan C. Warnock" <bwarnock@raba.com>
3844 2002-01-03 22:37  dan
3846         * MANIFEST, Makefile.in, interpreter.c, include/parrot/io.h,
3847         io/io.c, io/io_os.c: Code cleanup, started STDIO layer, started
3848         some buffering work.       Additional work on other layers.
3850         Courtesy of Melvin Smith <mrjoltcola@mindspring.com>
3852 2002-01-03 19:41  gregor
3854         * disassemble.pl, obscure.ops, packfile.c, pbc2c.pl:
3855         Updated copyright messages on top-level files.
3857 2002-01-03 04:23  robert
3859         * make.pl: Add author information.  Bonsai test.
3861 2002-01-03 04:02  dan
3863         * io/io_os.c: Twig Bonsai
3865 2002-01-03 03:45  dan
3867         * io/: io_os.c, io_os.c: Twig Bonsai
3869 2002-01-03 03:41  dan
3871         * io/io_os.c: Twig Bonsai
3873 2002-01-02 21:42  gregor
3875         * packfile.c, include/parrot/packfile.h:
3876         Get rid of warnings in packfile.[hc]
3878 2002-01-02 20:39  gregor
3880         * manicheck.pl:
3881         Bracketed translated patterns with ^ and $.
3883 2002-01-02 20:11  dan
3885         * io/io_os.c: silence a warning
3887 2002-01-02 19:52  grunblatt
3889         * jit.c, jit2h.pl, include/parrot/jit.h: Moved the definition of
3890         op_assembly to jit_struct.h, so that we get the real number of ops.
3891          Removed some warnings.
3893 2002-01-02 19:31  tom
3895         * string.c: Fix string transcoding so that it actually works.
3897         Patch from Peter Gibbs <peter@emkel.co.za>
3899 2002-01-02 19:20  gregor
3901         * manicheck.pl:
3902         A program to check the MANIFEST file, accounting for .cvsignore
3903         files.
3905 2002-01-02 19:19  dan
3907         * t/harness: twig bonsai
3909 2002-01-02 19:13  dan
3911         * t/harness: twig bonsai
3913 2002-01-02 18:54  dan
3915         * t/harness: Tweak to test Bonsai
3917 2002-01-02 16:27  dan
3919         * Configure.pl: Allow 64-bit build of parrot on systems with a
3920         mixed 32/64 bit perl
3922         Courtesy of David M. Lloyd <dmlloyd@tds.net>
3924 2002-01-02 15:33  simon
3926         * MANIFEST, docs/Makefile:
3927         Fixed up MANIFEST. (And I removed the Makefile in docs/)
3929         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
3931 2002-01-02 13:51  simon
3933         * Configure.pl:
3934         Die on broken manifest.
3936 2002-01-02 13:48  simon
3938         * jit2h.pl, examples/assembly/mops.pasm:
3939         Clear up JIT warnings.
3941         Courtesy of: Nick Clark <nick@unfortu.net>
3943 2002-01-02 04:10  dan
3945         * io/io.c, io/io_os.c, t/op/interp.t: IO stack now gets initialized
3946         only once, so new interp creation works again
3948         Courtesy of Melvin Smith <mrjoltcola@mindspring.com>
3950 2002-01-02 03:32  dan
3952         * t/op/interp.t: Stubbed the test out, since it's hanging at the
3953         moment.
3955 2002-01-02 00:55  dan
3957         * MANIFEST, Makefile.in, core.ops, include/parrot/io.h, io/io.c,
3958         io/io_os.c: Initial IO system patches
3960         Courtesy of <mrjoltcola@mindspring.com>
3962 2002-01-01 22:55  ajgough
3964         * classes/default.pmc: On second thoughts, and some prodding, the
3965         set_* methods now only set the appropriate part of the cache, and
3966         do nothing else.
3968 2002-01-01 22:29  ajgough
3970         * classes/default.pmc:  Wrote a whole host of default pmc methods.
3972          set_* create appropriate Perl* result.
3973          get_* simply grabs needed bit of cache.*_val
3975          Other methods do the rightest thing I can think of, at the moment.
3977          None yet cope with overflow, the modulus operation needs to be
3978         checked as
3979         I don't know quite which semantics we really want.
3981         Not tested yet.
3983 2002-01-01 20:23  dan
3985         * docs/Makefile, encodings/singlebyte.c, encodings/utf16.c,
3986         encodings/utf32.c, encodings/utf8.c, include/parrot/encoding.h: Got
3987         rid of unneeded tmp var and eliminated const from encode prototype
3988         since it does make changes to the string.
3990         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
3992 2002-01-01 20:11  dan
3994         * Makefile.in: Make clean now tosses pdump.o
3996         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
3998 2002-01-01 19:49  dan
4000         * pdump.c, test_main.c: Warnings cleanup
4002         Courtesy of Josh Wilmes <josh@sky.net>
4004 2002-01-01 19:45  dan
4006         * Configure.pl, Makefile.in, docs/.cvsignore, docs/Makefile.in,
4007         hints/mswin32.pl, languages/jako/Makefile.in,
4008         languages/scheme/Makefile.in: Makes cleanup better on non-Unix
4009         platforms
4011         Courtesy of "Jason Diamond" <jason@injektilo.org>
4013 2002-01-01 19:41  dan
4015         * include/parrot/register.h: Clean up some warnings
4017         Courtesy of Josh Wilmes <josh@hitchhiker.org>
4019 2002-01-01 19:10  simon
4021         * pbc2c.pl, Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm:
4022         Hack-around to enable compilation of code using vtable ops.
4024 2002-01-01 18:43  dan
4026         * encodings/: singlebyte.c, utf16.c, utf32.c, utf8.c: Toss <0
4027         checks on unsigned things
4029         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4031 2002-01-01 18:26  dan
4033         * runops_cores.c: More warning silences.
4035         Courtesy of Nicholas Clark <nick@unfortu.net>
4037 2002-01-01 18:25  dan
4039         * trace.c: Shuts up a warning.
4041         Courtesy of Nicholas Clark <nick@unfortu.net>
4043 2002-01-01 18:24  dan
4045         * encodings/singlebyte.c: Clean up some warnings.
4047         Courtesy of Nicholas Clark <nick@unfortu.net>
4049 2002-01-01 18:20  dan
4051         * Configure.pl: Hey, those PPros are really x86 systems! Who'dve
4052         thunk it?
4054         Courtesy of "Bryan C. Warnock" <bwarnock@raba.com>
4056 2002-01-01 18:17  dan
4058         * packfile.c: Warning cleanup
4060         Courtesy of Nicholas Clark <nick@unfortu.net>
4062 2002-01-01 17:53  dan
4064         * string.c: New string size should be based on output encoding's
4065         size, not input encoding's size.
4067         Courtesy of: "Peter Gibbs" <peter@emkel.co.za>
4069 2002-01-01 17:22  dan
4071         * Configure.pl, core.ops, interpreter.c, memory.c, runops_cores.c,
4072         string.c, test_main.c, trace.c, include/parrot/exceptions.h,
4073         include/parrot/interpreter.h, include/parrot/memory.h,
4074         include/parrot/oplib.h, include/parrot/string.h, t/op/string.t:
4075         Warnings fixups.
4077         Courtesy of Chip Turner <cturner@redhat.com>
4079 2002-01-01 17:09  dan
4081         * encodings/singlebyte.c, encodings/utf16.c, encodings/utf32.c,
4082         encodings/utf8.c, include/parrot/encoding.h: Some signed things are
4083         now unsigned, as is proper.
4085         Courtesy of: "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4086         Courtesy of: "Bryan C. Warnock" <bwarnock@raba.com>
4088 2002-01-01 16:59  dan
4090         * include/parrot/trace.h: Useless debugging prototype removed
4092         Courtesy of: "Bryan C. Warnock" <bwarnock@raba.com>
4094 2002-01-01 16:58  dan
4096         * MANIFEST: We forgot a file.
4098         Courtesy of "Bryan C. Warnock" <bwarnock@raba.com>
4100 2002-01-01 03:53  dan
4102         * Configure.pl: Okay, I give. Removed some warnings because the
4103         darned system headers were triggering them. Sloppy, sloppy
4104         coding...
4106 2002-01-01 03:48  dan
4108         * config_h.in: Add in an unsigned INTVAL.
4110         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4112 2002-01-01 03:46  dan
4114         * global_setup.c: Clean up some compiler warnings.
4116         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4118 2002-01-01 03:43  dan
4120         * ops2c.pl, Parrot/OpTrans.pm, Parrot/OpTrans/CPrederef.pm,
4121         lib/Parrot/OpTrans.pm, lib/Parrot/OpTrans/CPrederef.pm,
4122         include/parrot/op.h: Cleaned up some things to make the compiler
4123         happier.
4125         Courtesy of Nicholas Clark <nick@unfortu.net>
4127 2002-01-01 03:14  dan
4129         * Configure.pl: Quad updates.
4131         Courtesy of Nicholas Clark <nick@unfortu.net>
4133 2001-12-31 22:53  dan
4135         * include/parrot/op.h: Typedef had parameters backwards. Threw
4136         core.ops for a big whiny warnings loop.
4138 2001-12-31 22:37  dan
4140         * Makefile.in, resources.c: Tweaks to try and get things to build
4141         in the right order.
4143 2001-12-31 21:58  dan
4145         * Configure.pl: Stupid thinko fix
4147 2001-12-31 21:34  dan
4149         * Configure.pl, hints/mswin32.pl: Tweaks for Win32 builds
4151         Courtesy of: "Jason Diamond" <jason@injektilo.org>
4153 2001-12-31 21:32  dan
4155         * Configure.pl: Fix for non-gcc systems
4157 2001-12-31 20:22  dan
4159         * interpreter.c: Tweak so we can build on non-JIT platforms
4161 2001-12-31 20:11  dan
4163         * Configure.pl: Force the time on some copied files to be 'now' to
4164         make the Win builds much less annoying.
4166         Courtesy of "Jason Diamond" <jason@injektilo.org>
4168 2001-12-31 20:07  dan
4170         * Configure.pl: Nuke all object files in the parrot tree that
4171         matter when configuring.  Shouldn't be necessary with good
4172         dependencies in the makefile, but we don't have those yet.
4174 2001-12-31 20:00  gregor
4176         * chartypes/unicode.c:
4177         Silence unused variable warnings.
4179 2001-12-31 19:40  dan
4181         * Configure.pl: Minor Win32 tweaks. Tossed -Wtraditional, too
4183 2001-12-31 19:37  gregor
4185         * interpreter.c, jit.c, include/parrot/jit.h:
4186         Created a prototype for JIT functions and used it in interpreter.c.
4188 2001-12-31 19:31  dan
4190         * Configure.pl, test_gnuc.c: Better GCC detection (and version
4191         detection) with really cranky warnings if we find we're using it.
4193         Courtesy of: Nicholas Clark <nick@unfortu.net>
4195 2001-12-31 18:01  gregor
4197         * interpreter.c, include/parrot/interpreter.h, include/parrot/op.h:
4199         Fixed a few warnings wrt prototypes, etc.
4201 2001-12-31 17:23  dan
4203         * string.c: Silenced most of the compiler whines
4205 2001-12-31 17:15  gregor
4207         * Configure.pl:
4208         Get the ccname from either ccname or just cc config var.
4210 2001-12-31 17:14  gregor
4212         * Parrot/Op.pm, lib/Parrot/Op.pm:
4213         Another intermediate opbody notation. Could come in handy. Explicit
4214         types.
4216 2001-12-31 17:05  dan
4218         * string.c: Minor warnings update
4220 2001-12-31 17:00  dan
4222         * include/parrot/string.h: Warnings cleanup
4224 2001-12-31 16:00  simon
4226         * encodings/utf8.c, include/parrot/encoding.h:
4227         Remove a couple more.
4229 2001-12-31 15:58  simon
4231         * vtable_h.pl, include/parrot/global_setup.h, include/parrot/jit.h,
4232         include/parrot/op.h:
4233         Rid ourselves of a few warnings.
4235 2001-12-31 15:32  dan
4237         * Configure.pl: Made GCC ever so much pickier.
4239         Switch list courtesy of Jarkko.
4241 2001-12-31 15:22  dan
4243         * string.c: Tightened up initial allocation.
4245         Courtesy of:  "Peter Gibbs" <peter@emkel.co.za>
4247 2001-12-31 06:48  dan
4249         * Configure.pl: Minor Windows tweak
4251 2001-12-31 05:32  dan
4253         * core.ops: Unused temp variable tossed.
4255         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4257 2001-12-31 05:09  grunblatt
4259         * Configure.pl, Makefile.in, interpreter.c: Link jit.o only on
4260         supported plataforms
4262 2001-12-31 03:05  dan
4264         * Configure.pl, Makefile.in, classes/Makefile.in: Added in a
4265         platform-independent quote substitution for the makefiles.
4266         Hopefully this'll make the Win32 builds happier.
4268 2001-12-30 21:08  dan
4270         * string.c, include/parrot/string.h: More string system tweaks.
4272         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4274 2001-12-30 20:45  dan
4276         * core.ops: Some pod cleanup
4278         Courtesy of Josh Wilmes <josh@hitchhiker.org>
4280 2001-12-30 20:22  ajgough
4282         * docs/parrot_assembly.pod: removed ntoi and iton ops from docs, as
4283         we aren't using them right now.  Clarified the workings of set Px,
4284         Py and clone Px, Py.
4286 2001-12-30 20:15  grunblatt
4288         * jit.c, jit2h.pl, jit/i386/core.jit: Removed the warnings in jit.c
4289         Added readjit() to read *.jit files Updated core.jit to the new
4290         set_n_i
4292 2001-12-30 20:14  ajgough
4294         * examples/assembly/mops.pasm: Changed iton/ntoi to set.
4296 2001-12-30 19:52  dan
4298         * packfile.c, pdump.c, register.c, string.c, include/parrot/key.h,
4299         include/parrot/trace.h, platforms/generic.c: Compiler whine
4300         cleanups
4302         Courtesy of Josh Wilmes <josh@hitchhiker.org>
4304 2001-12-30 19:13  dan
4306         * Configure.pl, Makefile.in: Make GCC pickier by default.
4308         Courtesy of: Josh Wilmes <josh@hitchhiker.org>
4310 2001-12-30 18:41  dan
4312         * core.ops, t/op/integer.t, t/op/number.t: Transformed iton and
4313         ntoi opcodes to sets.
4315         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4317 2001-12-30 17:58  gregor
4319         * Makefile.in:
4320         'make' no longer builds the mops test. Use 'make mops' for that. To
4321         run the test, you can do 'make mopstest'.
4323 2001-12-30 17:30  gregor
4325         * Makefile.in:
4326         Fixed one oversight. 'make clean' was removing Parrot/Types.pm. Bad
4327         Gregor.
4329 2001-12-30 17:26  gregor
4331         * .cvsignore, Configure.pl, Makefile.in, VERSION, config_h.in,
4332         core.ops, interpreter.c, make_vtable_ops.pl, obscure.ops, ops2c.pl,
4333         Parrot/BuildUtil.pm, Parrot/OpsFile.pm, lib/Parrot/BuildUtil.pm,
4334         lib/Parrot/OpsFile.pm, include/parrot/oplib.h:
4335         Build enhancements. Originally to support building shared
4336         libraries, but now of broader impact.
4338           * .cvsignore: Ignore the blib/ directory, about which more later.
4340           * Configure.pl:
4342               * Got rid of TAB formatting and lined a few things up.
4344               * Added header comment with CVS Id variable, and a few other
4345                 block header comments.
4347               * Uses new Parrot::BuildUtil module to determine the Parrot
4348                 version.
4350               * Reworded a few messages, added a couple, and wrapped
4351         messages
4352                 to 79 columns.
4354               * Added 2002 to the Copyright statement.
4356               * Added new configure variables: VERSION, MAJOR, MINOR and
4357         PATCH
4359               NOTE: Please see the 'Alas perl5.7.2' comment. 5.7.2 is
4360         greater
4361               than 5.6.0, but the comment implies it isn't.
4363           * Makefile.in:
4365               * Added $(SO), $(A) and $(AR_CRS) defines for library
4366         building.
4368               * Added $(RM_RF) define for removing directory trees
4370               * Grouped generated files into two classes: "sticky" (made by
4371         configure,
4372                 persisting across 'make clean') and 'fluid' (made during
4373         the build
4374                 process, deleted by 'make clean').
4376               * Added header comments.
4378               * Added target for test_prog linked with shared library.
4380               * Added rules to build shared libraries in blib/lib. The
4381         libraries are
4382                 built with trailing version numbers in their file names,
4383         and then
4384                 symbolic links are created for shorter and no version tag
4385         variants.
4387               * Added some missing dependencies
4389               * Added some missing 'make clean' targets.
4391               * Added 'make realclean' target that deletes files created by
4392                 Configure.pl (including Makefile), forcing a re-configure.
4394               * Added a 'status' CVS target.
4396           * VERSION: New file, contains only the version. This version
4397         number is
4398             propagated to a few places, such as the core oplib version
4399         number. This
4400             reduces the amount of coordination that has to happen to get
4401         version
4402             number stuff throughout the tree in sync and updated prior to
4403         cutting
4404             a new release. Feel free to grep for '0.0.3' to see the other
4405         files
4406             that contain the version number (but, do that in a fresh CVS
4407         copy, or
4408             after doing 'make realclean').
4410           * config_h.in: Renamed PARROT_CORE_OPLIB_*_VERSION to
4411         PARROT_*_VERSION,
4412             since the oplib and Parrot itself share a version number now.
4413         Added
4414             PARROT_PATCH_VERSION (the third component) and PARROT_VERSION
4415         (a
4416             string).
4418           * core.ops: Uses new notation "VERSION = PARROT_VERSION" instead
4419         of
4420             specifying the version by hand. Non-core oplibs will set this
4421         to
4422             a quoted dot-string with three natural number components
4423         without
4424             leading zeros.
4426           * interpreter.c: Make use of PARROT_VERSION to simplify some
4427         sprintf()s, and
4428             to get the complete version number in the resulting strings
4429         (including the
4430             new PATCH portion).
4432           * make_vtable_ops.pl: Put the "VERSION = PARROT_VERSION" line int
4433         the
4434             generated file.
4436           * obscure.ops: Use the new "VERSION = PARROT_VERSION" technique.
4438           * ops2c.pl: Account for the PATCH version, too. This affects the
4439         name of the
4440             oplib init function, and the oplib info struct initializer.
4442           * Parrot/BuildUtil.pm: New file for reading in and validating the
4443         contents of
4444             the new VERSION file. Other build utilities could go here in
4445         futuer.
4447           * Parrot/OpsFile.pm:
4449               * Allow three components in version number, and require that
4450         the value
4451                 be in double quotes.
4453               * Allow "VERSION = PARROT_VERSION", substituting the shared
4454         Parrot
4455                 VERSION in that case.
4457           * include/parrot/oplib.h: Add the patch_version member.
4459 2001-12-30 12:16  simon
4461         * MANIFEST, Makefile.in:
4462         More stuff forgotten from MANIFEST.
4464 2001-12-30 12:13  simon
4466         * MANIFEST:
4467         Missing JIT file.
4469 2001-12-30 12:12  simon
4471         * jit2h.pl:
4472         Safety first.
4474 2001-12-30 12:12  simon
4476         * Makefile.in:
4477         Gragh.
4479 2001-12-30 12:04  simon
4481         * Makefile.in, core.ops, packfile.c, pbc2c.pl, string.c,
4482         classes/perlstring.pmc, encodings/singlebyte.c, encodings/utf16.c,
4483         encodings/utf32.c, encodings/utf8.c, include/parrot/encoding.h,
4484         include/parrot/string.h, t/op/string.t:
4485         * Expand the strings test suite to be more complete * Make string
4486         commands more consistent (i.e, now the only string command that
4487         actually changes the original is chopn) * Significantly reduce the
4488         number of memory allocations and eliminate reallocations.
4490         Courtesy of: David Jacobs <jacobsl001@hawaii.rr.com>
4492 2001-12-29 22:12  dan
4494         * interpreter.c, key.c, register.c, stacks.c, string.c,
4495         test_main.c, trace.c: Updates to match the coding standards.
4497         Courtesy of Bryan C. Warnock <bwarnock@raba.com>
4499 2001-12-29 20:42  grunblatt
4501         * jit2h.pl, Parrot/Jit/i386-bsd.pm, Parrot/Jit/i386-linux.pm,
4502         Parrot/Jit/i386-nojit.pm, jit/i386/core.jit, jit/i386/lib.jit,
4503         jit/i386/string.jit, lib/Parrot/Jit/i386-bsd.pm,
4504         lib/Parrot/Jit/i386-linux.pm, lib/Parrot/Jit/i386-nojit.pm: Allow
4505         us to write asm in *.jit files instead of hex.  Courtesy of: Rafael
4506         Kitover <caelum@debian.org>
4508 2001-12-28 21:20  dan
4510         * core.ops: Okay, now print takes a preceding file handle.
4512         I feel so dirty now.
4514 2001-12-28 20:46  dan
4516         * core.ops, t/op/hacks.t: Added in the readline op, as well as
4517         changing the open op to use fopen under the hood.
4519         THESE OPS ARE EVIL! AND TEMPORARY! USE FOR DEBUGGING PURPOSES ONLY!
4521 2001-12-28 18:20  ajgough
4523         * core.ops, make_vtable_ops.pl, string.c, classes/default.pmc,
4524         classes/perlstring.pmc, docs/parrot_assembly.pod, docs/strings.pod,
4525         include/parrot/exceptions.h, include/parrot/string.h,
4526         t/op/pmc_perlstring.t, t/op/string.t, t/pmc/perlstring.t: Added
4527         repeat op, so that "foo" x 10 can be done.  Filled in PerlString
4528         vtables appropriately.  Also tests for same, new pmc_perlstring.t
4529         to hold tests specific to PerlStrings, as the pmc.t file is taking
4530         too long to run and slowing down my thought processes.
4532         Changes to strings.c etc to take string functions.
4534         Some changes to the strings docs, but not yet complete.
4536         Also, PerlString was copying pointers to strings, rather than
4537         strings themselves, so some action-at-a-distance bugs were creeping
4538         in, I think I've fixed this so everything works nicely.
4540 2001-12-28 04:56  gregor
4542         * examples/assembly/pmcmops.pasm:
4543         PMC-using version of mops.pasm.
4545         Courtesy of: Bryan C. Warnock <bwarnock@raba.com>
4547 2001-12-28 04:56  gregor
4549         * examples/assembly/.cvsignore:
4550         Small tinkering. Removed old stuff, etc.
4552 2001-12-28 01:26  gregor
4554         * examples/mops/mops.scheme:
4555         Scheme example. Major GC thrashing on umb-scheme here. Probably due
4556         to the very un-scheme-like implementation.
4558 2001-12-28 01:19  gregor
4560         * examples/mops/mops.c:
4561         Some people's picky compilers don't like us redefineing time(), so
4562         we call it time_n().  :)
4564 2001-12-28 00:28  gregor
4566         * examples/mops/: README, mops.ps:
4567         Added a PostScript example and a README.
4569 2001-12-27 23:57  gregor
4571         * Makefile.in:
4572         Build the C mops translation in examples/mops/mops.c
4574 2001-12-27 23:56  gregor
4576         * examples/mops/: .cvsignore, mops.c, mops.pl, mops.py, mops.rb:
4577         Some translations of mops.pasm into other languages, for inner loop
4578         performance comparisons.
4580 2001-12-27 22:40  gregor
4582         * examples/assembly/mops.pasm:
4583         Fixed erroneous file name in header comment.
4585 2001-12-27 21:18  gregor
4587         * pbc2c.pl:
4588         One-liner to avoid no-op gotos to the next op.
4590 2001-12-27 21:06  gregor
4592         * runops_cores.c:
4593         Fixed -p (profiling). Slow runops core was doing unconditional
4594         tracing, when it should have been checking the flags.
4596 2001-12-27 18:50  ajgough
4598         * core.ops, string.c, chartypes/unicode.c, chartypes/usascii.c,
4599         classes/perlstring.pmc, include/parrot/chartype.h,
4600         include/parrot/string.h, t/op/pmc.t, t/op/string.t, t/pmc/pmc.t:
4601         dded get_digit() to chartypes  * Added string_bool() to strings  *
4602         Added if_s_ic op, to use same  * Added (PerlString)->get_bool stuff
4603         to perlstring.pmc  * Tests for above, also a for couple of other
4604         ops without tests
4606         The unicode chartype has only had placeholders added for get_digit,
4607         string_to_num has been updated to use type->get_digit rather than
4608         the previous ascii-isms.  Some remain, but we need to carefully
4609         define what we mean by a number before we let thousands of code
4610         points act as a minus sign.
4612 2001-12-27 18:32  dan
4614         * classes/: perlint.pmc, perlnum.pmc, perlstring.pmc: Silenced some
4615         compiler warnings.
4617         Courtesy of "David  Jacobs" <jacobsl001@hawaii.rr.com>
4619 2001-12-27 18:23  dan
4621         * t/op/bitwise.t: More tests.
4623         Courtesy of "David Jacobs" <jacobsl001@hawaii.rr.com>
4625 2001-12-27 17:08  gregor
4627         * MANIFEST, Makefile.in, config_h.in, core.ops, interpreter.c,
4628         make_vtable_ops.pl, obscure.ops, ops2c.pl, ops2pm.pl, test_main.c,
4629         trace.c, Parrot/OpsFile.pm, include/parrot/interp_guts.h,
4630         include/parrot/interpreter.h, include/parrot/oplib.h,
4631         lib/Parrot/OpsFile.pm, platforms/generic.c, platforms/generic.h,
4632         platforms/win32.c, platforms/win32.h:
4633         Initial code for dynamic loading of oplibs, applied for now to the
4634         loading of the core_prederef oplib when the -P flag is passed to
4635         test_parrot.
4637           * MANIFEST: Added entry for the new file include/parrot/oplib.h.
4639           * Makefile.in:
4641               * Added libcore_prederef_0_3.so to the shared target.
4642               * Added build rule for libcore_prederef_0_3.so.
4643               * Added dependencies on Parrot/OpsFile.pm and Parrot/Op.pm
4644                 to Parrot/OpLib/core.pm, core_ops.c and
4645                 core_ops_prederef.c.
4647           * config_h.in: Added defines for constants used to locate the
4648             core oplib's init function, and the core_prederef oplib for
4649             dynaloading.
4651           * core.ops: Added a VERSION = 0.3 line near the top. This is now
4652             required by Parrot/OpsFile.pm.
4654           * interpreter.c:
4656               * Added init_prederef() and stop_prederef() functions to load
4657                 and unload the core_prederef oplib when we are in prederef
4658                 mode.
4660                 NOTE: In all likelihood, the prederef stuff has a rapidly
4661                 dwindling time-to-live. The JIT should provide vastly
4662         superior
4663                 performance, and loading an alternate set of core_ops isn't
4664                 the real direction for the dynaloading stuff. Loading
4665                 *additional* ops is. It does provide a handy test case for
4666         the
4667                 general idea for now, though.
4669               * Gets the core copcode table, etc. via the core oplibs oplib
4670                 info pointer, as returned by the core oplib's init
4671         function.
4673           * ops2c.pl
4675               * Make use of the version, major version and minor version
4676                 stuff parsed by Parrot/OpsFile.pm
4678               * The only exported symbol in the generated files is the init
4679                 function now, since that returns an oplib info struct
4680                 pointer, and all the important stuff can be found there.
4682           * ops2pm.pl: Put the oplib version in the generated .pm file.
4684           * test_main.c: Small changes necessitated by changes in the names
4685             of some members of the interpreter struct.
4687           * trace.c: Small changes necessitated by changes in the names
4688             of some members of the interpreter struct.
4690           * Parrot/OpsFile.pm: Require a "VERSION = x.y" line before any
4691             ops are found.
4693           * include/parrot/interp_guts.h: Small changes necessitated by
4694             changes in the names of some members of the interpreter struct.
4696           * include/parrot/interpreter.h: Include the new
4697             include/parrot/oplib.h header. Small changes to the oplib-
4698             related members.
4700           * include/parrot/oplib.h: Define the type of the oplib init
4701             function, and the struct type for the oplib info.
4703           * platforms/*.[hc]: Remove the second argument to Parrot_dlopen()
4704             since not all platforms have it. For those that do, a default
4705             second argument is provided.
4707 2001-12-26 05:12  gregor
4709         * Configure.pl:
4710         Make jitarch calculation not get tripped up by extra components to
4711         archname.
4713 2001-12-24 21:23  gregor
4715         * jit.c, jit2h.pl, Parrot/Jit/i386-bsd.pm,
4716         Parrot/Jit/i386-linux.pm, Parrot/Jit/i386-nojit.pm,
4717         include/parrot/jit.h, jit/i386/core.jit, jit/i386/lib.jit,
4718         jit/i386/string.jit, lib/Parrot/Jit/i386-bsd.pm,
4719         lib/Parrot/Jit/i386-linux.pm, lib/Parrot/Jit/i386-nojit.pm:
4720         Some more JIT work from Daniel Grunblatt.
4722           * Ops added set_s_s, set_s_sc, bsr_i and eq_s_sc but using calls
4723         to C
4724             functions.
4726           * Added JUMP(END) to place the number of bytes to the end of the
4727         current
4728             op.
4730           * The *.jit files syntax changed.
4732           * Added jit/i386/lib.jit to place handly functions as jump that
4733         take as
4734             argument the address where is the opcode number to jump to.
4736           * There is a bug at some point, but I will start writing
4737             jit/i386/string.jit and jit/i386/stacks.jit so that we don't
4738         have use
4739             calls, which make the jit as slow as the interpreter.
4741         Courtesy of: Daniel Grunblatt <daniel@grunblatt.com.ar>
4743 2001-12-24 03:46  dan
4745         * Parrot/OpTrans.pm, Parrot/OpTrans/C.pm, Parrot/OpTrans/CGoto.pm,
4746         Parrot/OpTrans/CPrederef.pm, lib/Parrot/OpTrans.pm,
4747         lib/Parrot/OpTrans/C.pm, lib/Parrot/OpTrans/CGoto.pm,
4748         lib/Parrot/OpTrans/CPrederef.pm: Commented out the use warnings.
4749         Perls before 5.6.0 don't like it.
4751 2001-12-22 16:02  ajgough
4753         * t/op/stacks.t: stopped skipping tests we can run now.  added
4754         clonep tests.
4756 2001-12-21 21:13  gregor
4758         * jit2h.pl, Parrot/Jit/i386-bsd.pm, Parrot/Jit/i386-linux.pm,
4759         Parrot/Jit/i386-nojit.pm, lib/Parrot/Jit/i386-bsd.pm,
4760         lib/Parrot/Jit/i386-linux.pm, lib/Parrot/Jit/i386-nojit.pm:
4761         Fixed some package name goofs.
4763         Thanks to: Andy Dougherty <doughera@mail.lafayette.edu>
4765 2001-12-21 19:32  gregor
4767         * MANIFEST, Makefile.in, core.ops, interpreter.c,
4768         make_vtable_ops.pl, obscure.ops, ops2c-prederef.pl, ops2c.pl,
4769         pbc2c.pl, stacks.c, Parrot/Op.pm, Parrot/OpTrans.pm,
4770         Parrot/Opcode.pm, Parrot/OpsFile.pm, lib/Parrot/Op.pm,
4771         lib/Parrot/OpTrans.pm, lib/Parrot/Opcode.pm, lib/Parrot/OpsFile.pm,
4772         Parrot/OpTrans/C.pm, Parrot/OpTrans/CGoto.pm,
4773         Parrot/OpTrans/CPrederef.pm, docs/intro.pod, include/parrot/op.h,
4774         include/parrot/stacks.h, lib/Parrot/OpTrans/C.pm,
4775         lib/Parrot/OpTrans/CGoto.pm, lib/Parrot/OpTrans/CPrederef.pm:
4776         Changes to syntax of .ops files and refactoring of ops2c*.pl and
4777         pbc2c.pl.
4779           * Removed ops2c-prederef.pl
4781           * (unrelated) Removed vestigial Parrot/Opcode.pm file.
4783           * Added Parrot/OpTrans.pm, Parrot/OpTrans/C.pm (needed for old
4784             functionality of ops2c.pl), Parrot/OpTrans/CPrederef.pm (needed
4785             for old functionality of ops2c-prederef.pl), and
4786             Parrot/OpTrans/CGoto.pm (needed for functionality of pbc2c.pl).
4788             "OpTrans" == "Op Transformation"
4790           * Makefile.in modifications to call "ops2c.pl C" where it used
4791             to be just "ops2c.pl", and "ops2c.pl CPrederef" where it used
4792             to be "ops2c-prederef.pl".
4794           * core.ops and obscure.ops changes to syntax. Semantics are
4795             identical with previous version:
4797               return HALT         -->  HALT()
4798               return AUTO         -->  goto NEXT()
4799               return RETREL(...)  -->  goto OFFSET(...)
4800               return RESTART(*)   -->  restart NEXT()
4802             Also, pop_generic_entry() stuff (local var + 5 lines of code)
4803             for dest-less branch ops replaced with new notation "goto
4804         POP()",
4805             which uses the new pop_dest() function in stacks.c. This also
4806             allowed these ops to become 'inline' ops, since they no longer
4807             have local variables.
4809             The 'ret' op also became simplified to just "goto POP()", and
4810             also became an inline op.
4812           * interpreter.c reflects the change in type name:
4814               prederef_op_func_t   -->  op_func_prederef_t
4816             that occurred in include/parrot/op.h
4818           * make_vtable_ops.pl uses "goto NEXT()" where it used to use
4819             "return AUTO".
4821           * ops2c.pl is now generic. Its first argument is the last
4822             package name component of a subclass of Parrot::OpTrans. These
4823             subclasses all have full names of the form Parrot::OpTrans::*.
4824             An instance of the class is created and later consulted for
4825             various bits of information needed to generate the C code.
4827           * pbc2c.pl now uses an instance of Parrot::OpTrans::CGoto to
4828             contain its transformation rules.
4830           * stacks.c has a new function pop_dest() that pops a destination
4831             off the control stack. include/parrot/stacks.h has the
4832         prototype.
4834           * Parrot/Op.pm now supports the syntax generated by
4835         Parrot::OpsFile
4836             for the "goto POP" case.
4838             Also, the source() method now expects its second argument to be
4839             an object that ISA Parrot::OpTrans. Methods of this object are
4840             called to perform the substitutions.
4842           * Parrot/OpsFile.pm supports the change in notation mentioned
4843             above.
4845           * docs/intro.pod reflects these changes.
4847           * include/parrot/op.h: Renamed type prederef_op_func_t to
4848             op_func_prederef_t because it made the implementation of the
4849             shared ops2c.pl easier.
4851 2001-12-21 13:47  gregor
4853         * Configure.pl, config_h.in, interpreter.c, test_main.c:
4854         Both test_parrot (via test_main.c) and the intepreter itself (via
4855         interpreter.c) use the JIT_CAPABLE config to decide whether to
4856         actually attempt JIT operation, or to complain.
4858 2001-12-20 23:25  gregor
4860         * core.ops, make_vtable_ops.pl, obscure.ops, Parrot/OpsFile.pm,
4861         lib/Parrot/OpsFile.pm, docs/intro.pod, include/parrot/op.h:
4862         Changes to the format of *.ops files. An attempt to provide hints
4863         for future opfunc processing logic that wants to know if an opfunc
4864         is simple enough to JIT (e.g.) inline, or not.
4866         See the POD in Parrot/OpsFile.pm and the updated docs/intro.pod in
4867         addition to The Source in core.ops and Parrot/OpsFile.pm for more
4868         info.
4870 2001-12-20 21:28  gregor
4872         * Configure.pl, jit.c, jit2h.pl, include/parrot/jit.h,
4873         jit/i386/core.jit:
4874         More JIT stuff:
4876           * A fix to Gregor's last Configure.pl update.
4878           * Remove the need for hardcoded "\n" at the end of the "%f"
4879             format for printing floating-point numbers.
4881           * New, improved *.jit syntax for references to registers,
4882             e.g. INT_REG[n].
4884           * Support for C() improved.
4886         Courtesy of: Daniel Grunblatt <daniel@grunblatt.com.ar>
4888 2001-12-20 16:55  dan
4890         * MANIFEST: Added jit.c to the manifest.
4892 2001-12-20 15:24  simon
4894         * jit2h.pl:
4895         Off-by-one error fixed.
4897 2001-12-20 14:18  simon
4899         * jit/i386/core.jit:
4900         Just a noop. It's the only machine code I know.
4902 2001-12-20 13:10  gregor
4904         * Configure.pl, Makefile.in, jit2h.pl:
4905         Attempt to fix Win32 builds.
4907           * No more empty braces in include/parrot/jit_struct.h
4909         Also:
4911           * ${jitarchname} has the *bsd -> bsd substitution on it, but
4912         ${archname}
4913             does not.
4915 2001-12-20 11:56  simon
4917         * Makefile.in:
4918         De-cp
4920 2001-12-20 01:57  gregor
4922         * Configure.pl, MANIFEST, Makefile.in, interpreter.c, jit.c,
4923         jit2h.pl, test_main.c, Parrot/.cvsignore, Parrot/Jit/i386-bsd.pm,
4924         Parrot/Jit/i386-linux.pm, Parrot/Jit/i386-nojit.pm, docs/jit.pod,
4925         include/parrot/.cvsignore, include/parrot/interpreter.h,
4926         include/parrot/jit.h, jit/i386/core.jit, jit/i386/string.jit,
4927         lib/Parrot/Jit/i386-bsd.pm, lib/Parrot/Jit/i386-linux.pm,
4928         lib/Parrot/Jit/i386-nojit.pm:
4929         Initial JIT implementation.
4931           * Enabled with test_parrot -j. 20x speed boosts seen.
4933           * Unsupported archs mapped to i386-nojit. Don't do -j on them.
4935           * More to come.
4937         Courtesy of: Daniel Grunblatt <daniel@grunblatt.com.ar>
4939 2001-12-20 01:53  jgoff
4941         * MANIFEST, core.ops, t/op/key.t: MANIFEST - Removed t/op/key.t
4942         core.ops - Removed key operators, they should be hidden from the
4943         assembler.  t/op/key.t - No need to test the nonexistent key
4944         operators.
4946 2001-12-20 00:13  ajgough
4948         * core.ops, t/op/stacks.t: Added tests for entrytype op, noticed
4949         that asking for type of entry at depth causes segfault as stack is
4950         zero based, fixed cmp in core.ops to reflect this.  Last test is
4951         skipped as we don't do exceptions right yet.
4953 2001-12-19 19:11  ajgough
4955         * t/op/debuginfo.t: Added C<end> ops to debuginfo.t, as thier
4956         non-being was causing Irix "issues".
4958 2001-12-19 03:37  jgoff
4960         * languages/miniperl/Miniperl/t/: 001_tokenizer.t, 003_generator.t,
4961         004_combined.t: Changed tests to make sure they pass with the
4962         addition of the clone operator.
4964 2001-12-18 20:06  gregor
4966         * interpreter.c, include/parrot/interp_guts.h:
4967         Performance improvements to the predereferencing code path
4968         suggested to me over lunch yesterday by my friend John Kennedy.
4969         The goal is to remove the additional test in the inner loop that
4970         was checking for NULL to decide whether or not to call the
4971         prederef() function. Also moved pc & pc_prederef syncing outside
4972         the inner loop.
4974           * Changed the prototype of the prederef() function in
4975             interpreter.c to match that of an opfunc.
4977           * Instead of initializing the prederef void * array with NULL,
4978             we initialize it with pointers to prederef().
4980           * prederef() now returns the prederef_pc passed in, so that
4981             after predereferencing, the same location is executed, but now
4982             with the real code being called.
4984         Thanks to: John Kennedy
4986 2001-12-18 19:59  ajgough
4988         * t/: op/pmc.t, pmc/pmc.t: Added some more num -> string tests
4989         (including some more in the skipped string -> int tests).
4991 2001-12-18 07:06  jgoff
4993         * MANIFEST: Forgot to add classes/perlarray.pmc
4995 2001-12-18 07:05  jgoff
4997         * Makefile.in, core.ops, global_setup.c, vtable.tbl,
4998         classes/Makefile.in, classes/default.pmc, classes/perlarray.pmc,
4999         classes/perlint.pmc, classes/perlnum.pmc, classes/perlstring.pmc,
5000         classes/perlundef.pmc, include/parrot/pmc.h, t/op/pmc.t,
5001         t/pmc/pmc.t: Big update...  Makefile.in - Added
5002         classes/perlarray.pmc core.ops - Added new series of set() ops for
5003         arrays global_setup.c - Initialized perlarray classes/Makefile.in -
5004         Added perlarray.pmc classes/*.pmc - Added
5005         set_{integer,number,string}_index and
5006         get_{integer,number,string}_index include/parrot/pmc.h - Added new
5007         type t/op/pmc.t - Added basic array test
5009         classes/perlarray.pmc - Added
5011 2001-12-17 05:29  jgoff
5013         * languages/miniperl/Miniperl/Generator.pm: Altered miniperl code
5014         generator to use clone operator instead of set Px,Py
5016 2001-12-17 05:25  jgoff
5018         * core.ops, classes/perlint.pmc, classes/perlnum.pmc,
5019         classes/perlstring.pmc, t/op/pmc.t, t/pmc/pmc.t: Added clone
5020         PMC,PMC operator. Uses the clone() vtable entries.
5022 2001-12-17 04:51  jgoff
5024         * MANIFEST: Added miniperl test suite, removed old Miniperl/Test.pm
5025         entry
5027 2001-12-17 04:41  jgoff
5029         * languages/miniperl/Miniperl/Makefile.PL: Now in its proper
5030         directory...
5032 2001-12-17 04:41  jgoff
5034         * languages/miniperl/Makefile.PL: Moved it to the proper directory.
5036 2001-12-17 04:39  jgoff
5038         * languages/miniperl/: Makefile.PL, Miniperl.pm, miniperlc, mpc,
5039         Miniperl/Tokenizer.pm: Makefile.PL to let us run the test suite in
5040         t/
5042 2001-12-17 04:27  jgoff
5044         * languages/miniperl/Miniperl.pm: Latest version of the driver.
5045         Admittedly it's a little thin on true OO, but the algorithms are
5046         the key.
5048 2001-12-17 04:24  jgoff
5050         * languages/miniperl/Miniperl/t/: 001_tokenizer.t, 002_parser.t,
5051         003_generator.t, 004_combined.t: Much more comprehensive test suite
5052         for the codegen et al
5054 2001-12-17 04:22  jgoff
5056         * languages/miniperl/Miniperl/: Generator.pm, Parser.pm,
5057         Tokenizer.pm: Newer codegen, tightened up parser output, added hash
5058         key handling
5060 2001-12-17 04:20  jgoff
5062         * languages/miniperl/Miniperl/Test.pm: The newer test suite is much
5063         more comprehensive.
5065 2001-12-17 04:17  jgoff
5067         * languages/miniperl/foo.mpl: Test file that'll be outdated by
5068         changes to the new compiler
5070 2001-12-17 04:11  jgoff
5072         * languages/miniperl/t/: harness, 001_basic/basic.t: Moving testing
5073         files to Miniperl/
5075 2001-12-16 14:11  simon
5077         * classes/perlint.pmc, examples/assembly/mops_p.pasm, t/op/pmc.t,
5078         t/pmc/pmc.t:
5079         Fix bogus assumption that multiplying an integer by an integer
5080         yields an integer.
5082 2001-12-16 12:48  simon
5084         * make_vtable_ops.pl:
5085         Fixed op exploder.
5087 2001-12-16 12:45  simon
5089         * make_vtable_ops.pl, Parrot/Vtable.pm, lib/Parrot/Vtable.pm:
5090         Expand multimethod vtable ops.
5092 2001-12-16 12:04  simon
5094         * Makefile.in:
5095         Added 'cvsclean' which doesn't zap CVS/* directories.
5097 2001-12-15 01:50  dan
5099         * include/parrot/string.h: Fixed typo in string.h. lagnuage,
5100         indeed!
5102         Thanks to grunblatt fom #parrot for the catch
5104 2001-12-15 01:39  dan
5106         * .cvsignore, Configure.pl, MANIFEST, languages/jako/Makefile.in,
5107         languages/miniperl/.cvsignore, languages/miniperl/Makefile,
5108         languages/miniperl/Makefile.in,
5109         languages/miniperl/Miniperl/Test.pm, languages/scheme/.cvsignore,
5110         languages/scheme/Makefile, languages/scheme/Makefile.in: Build
5111         tweaks.
5113         Courtesy of: Jay McCarthy <jay@kenyamountain.com>
5115 2001-12-14 17:39  dan
5117         * t/op/trans.t: More trans tests.
5119         Courtesy of: Simon Glover <scog@roe.ac.uk>
5121 2001-12-14 07:41  robert
5123         * make.pl: - define MAKE macro - topological sort and subgraph
5124         order - start of timestamp stuff   (still badly broken)
5126 2001-12-14 06:06  jgoff
5128         * optimizer.pl: Hopefully this should do the trick..
5130 2001-12-14 06:04  jgoff
5132         * Parrot/Optimizer.pm, lib/Parrot/Optimizer.pm: Optimizer
5134           optimizer.pl is the stub, Parrot/Optimizer.pm is the driver.
5136           The optimizer performs its work on a file post-macro expansion.
5137           Run it on a .pasm file, preferably with some trivially reducible
5138         operations
5139           like 'add I0,5,-6' or 'mul I0,I1,0'
5141 2001-12-14 05:48  robert
5143         * Makefile.in: case error EXE -> exe
5145 2001-12-14 05:42  robert
5147         * Makefile.in: remove legacy PDISASM macro
5149 2001-12-14 04:01  dan
5151         * classes/Makefile.in, languages/Makefile.in: Makefile tweaks for
5152         better Win building
5154         Courtesy of: Garrett Goebel <garrett@scriptpro.com>
5156 2001-12-13 22:03  dan
5158         * Configure.pl, Makefile.in, Parrot/Test.pm,
5159         languages/scheme/Makefile, languages/scheme/Scheme/Test.pm,
5160         lib/Parrot/Test.pm: Parrot test prog's now a config variable, so we
5161         can change it without having to change the world.
5163 2001-12-13 21:57  dan
5165         * core.ops, interpreter.c, docs/parrot_assembly.pod,
5166         include/parrot/interpreter.h, t/op/debuginfo.t: Added current
5167         file/line/package to interp structure, with ops to get and set
5168         them. Now we can know where we are!
5170 2001-12-13 19:43  dan
5172         * Configure.pl, Makefile.in: Makefile tweaks to hopefully make
5173         WinXP builds work out of the box
5175 2001-12-13 17:05  dan
5177         * Makefile.in, Parrot/Test.pm, lib/Parrot/Test.pm: Change test prog
5178         name again--makes case-insensitive systems much happier.
5180 2001-12-13 16:21  dan
5182         * core.ops, key.c, string.c, test_main.c, trace.c,
5183         classes/Makefile.in, include/parrot/trace.h: Fixes to clean up
5184         compiler warnings
5186         Courtesy of: Josh Wilmes <josh@sky.net>
5188 2001-12-13 13:33  gregor
5190         * languages/jako/Makefile.in:
5191         Improved the method of calling the assembler.
5193 2001-12-13 13:30  gregor
5195         * languages/jako/Makefile.in:
5196         Improve the build process. It now works from the main parrot dir,
5197         and from the languages/jako directory. Now uses the .SUFFIXES
5198         target and generic build rules to reduce clutter in the
5199         Makefile.in.
5201 2001-12-13 13:29  gregor
5203         * languages/jako/.cvsignore:
5204         Ignore the (now generated Makefile), and don't ignore .list files
5205         anymore, since we aren't generating them.
5207 2001-12-13 13:11  gregor
5209         * Configure.pl, MANIFEST, Makefile.in, languages/.cvsignore,
5210         languages/Makefile.in, languages/jako/Makefile,
5211         languages/jako/Makefile.in:
5212         Added a 'languages' target to the top-level Makefile.in, and
5213         modified the jako build procedure to involve Makefile.in -->
5214         Makefile too (done by Configure.pl).
5216         NOTE: languages/jako and language/scheme are built.
5217         languages/miniperl wasn't building right, so it was left off for
5218         now.
5220 2001-12-13 12:15  gregor
5222         * MANIFEST:
5223         Added MAINTAINER file and mandelzoom.jako from languages/jako to
5224         the MANIFEST.
5226 2001-12-13 12:12  gregor
5228         * .cvsignore, MANIFEST, Makefile.in, core.ops, interpreter.c,
5229         ops2c-prederef.pl, ops2c.pl, test_main.c,
5230         include/parrot/interp_guts.h, include/parrot/interpreter.h,
5231         include/parrot/op.h, include/parrot/oplib/.cvsignore:
5232         Welcome to the Just-in-Time Predereferencing Patch!
5234         This patch implements a "predereferencing" mode for parrot. That
5235         means that a lot of the dereferencing you see in DO_OP and in the
5236         opfuncs is done up front (really, JIT) rather than as and each time
5237         we execute each op in the byte code stream.
5239         This works by creating an array of void pointers with the same
5240         number of elements as the byte code array. This array starts out
5241         life zero-initialized.  Each time we go to execute an op, we check
5242         first to see if we have a NULL pointer at *cur_opcode. If so, we
5243         know we haven't done our predereferencing yet (this is the JIT
5244         part), so we call the prederef() function with sufficient args that
5245         it can go look up opfunc pointers and op arg types and put the
5246         opfunc and arg pointers at cur_opcode[0] .. cur_opcode[N - 1],
5247         where N is the number of args (counting the op itself as one arg).
5249         We assume that sizeof(INTVAL) <= sizeof(void *), so we can continue
5250         to have inline INTVAL constants.
5252         I've been getting about a 22% speed increase over vanilla code path
5253         when I compile with -O0. Advantage decreases at -O9 here. I tested
5254         with mops.pbc, and also by temporarily putting the -P flag in
5255         Parrot/Test.pm and running all the tests. So, this code is as
5256         correct as the test suite can detect.
5258         Here's how it plays out in the code:
5260           * New script ops2c-prederef.pl
5262             Copy-paste code reuse from ops2c.pl. Modified to expect the
5263         args to give
5264             a void ** cur_opcode and to return a void **.
5266           * Modified ops2c.pl
5268               * opfuncs are now static. Who needs to call them by name from
5269         outside,
5270                 anyway? They are accessed via the opfunc table.
5272               * Some MACRO stuff to make things work whether we prederef or
5273         not. It
5274                 may be possible to get rid of these some day if other folks
5275         agree
5276                 that we should be using CODE object pointers + offsets as
5277         our PC
5278                 rather than raw pointers to either opcode_t's or (void *)'s
5279                 (depending on prederef mode or no).
5281           * core.ops modified to be usable to build both kinds of opfuncs.
5282         For now,
5283             this means:
5285               * calls to push_generic_entry(... cur_opcode ...) were
5286         changed to
5287                 push_generic_entry(... CUR_OPCODE ...), where CUR_OPCODE is
5288         a
5289                 macro that does the right thing in both kinds of ops.c
5290         files.
5292                 This is applicable to the bsr op. If we treated
5293         destinations as
5294                 (Code PMC + local offset) rather than as
5295         pointer-to-memory-somewhere,
5296                 this wouldn't be a big deal. We may need to do that at some
5297         point
5298                 anyway, so that when you jump around and return not only do
5299         you have
5300                 the right PC (pointer, today), but you also have the
5301         thread/interpreter
5302                 knowing what chunk of bytecode it is in at all times
5303         (assuming we'll
5304                 allow reflection, as in ops that query or affect the
5305         current CODE PMC).
5307               * runinterp was modified. Instead of copying the top-level
5308         PackFile struct
5309                 and blasting its byte_code pointer, we simply call runops
5310         on the new
5311                 interp, passing in the pointer to the current interp's code
5312         and the
5313                 offset into that code at which to start (this last arg used
5314         to be a
5315                 pointer PC, now its an offset PC).
5317           * include/parrot/op.h
5319               * new typedef for prederef opfuncs (they return void **)
5321           * include/parrot/interp_guts.h
5323               * New DO_OP_PREDEREF() macro described above.
5325           * include/parrot/interpreter.h
5327               * New prototype of runops() -- see below.
5329               * resume_addr field changed to resume_flag and resume_offset
5330         pair of fields.
5331                 We might be resuming from interp using prederef to one not
5332         or vice-versa,
5333                 so pointers between the two don't play nice together.
5334         Offsets are beautiful.
5336               * New PARROT_PREDEREF_FLAG constant
5338           * interpreter.c
5340               * include "parrot/oplib/core_ops_prederef.h"
5342               * prederef() function described above.
5344               * runops_prederef() runops variant. Uses DO_OP_PREDEREF()
5345         macro as its core.
5347               * runops() modified to take size_t CODE-relative offset PC
5348         rather than
5349                 pointer PC. This made other things workable and doesn't
5350         seem to have lost
5351                 anything important (IMO).
5353           * test_main.c
5355               * New flag '-P' to enable predereferencing.
5357           * Makefile modified to build core_ops_prederef.c from core.ops
5358         via
5359             ops2c-prederef.pl.
5361             BTW, also added missing $(INC)/interp_guts.h to H_FILES.
5363             Added core_ops_prederef$(O) to O_FILES
5365 2001-12-13 12:12  gregor
5367         * languages/jako/MAINTAINER:
5368         Thought it would be nice to put this right in the code...
5370 2001-12-13 04:36  jgoff
5372         * languages/miniperl/Miniperl/Generator.pm: Commented out
5373         debugging, fixed register spillover algorithm
5375 2001-12-13 04:23  jgoff
5377         * make.pl: Found and fixed obob in the parser (Wasn't parsing last
5378         line) Restructured a bit of the dependency generator to fix a
5379         different obob bug.
5381 2001-12-13 03:43  robert
5383         * MANIFEST, docs/opcodes.pod: remove old docs/opcodes.pod
5385 2001-12-13 03:03  jgoff
5387         * make.pl: Added make.pl
5389 2001-12-13 02:44  jgoff
5391         * languages/miniperl/Miniperl.pm: Nearly-complete 'make'
5392         replacement in perl.  Non-compliant bits - Takes absolutely -NO-
5393         special flags...                     - Dies on undefined macros
5394         such as $(PDISASM) in current make                     - Dies on
5395         recursive macro expansions                       (Doesn't test for
5396         mutual or multipart loops)                     - In general it
5397         seems to be a little less lenient...  Missing bits - File
5398         mod/creation times aren't being looked at              - Actions
5399         aren't being taken              - The few funky variables ($@, $<)
5400         aren't being dealt with Bugs - Line numbers are slipping a bit.
5402 2001-12-13 02:29  jgoff
5404         * languages/miniperl/Miniperl/: Generator.pm, Parser.pm:
5405         Reconstructing files to make the parser flow a little better.
5407 2001-12-13 00:51  dan
5409         * resources.c: Be a bit less wasteful with resources that don't
5410         need to be aligned
5412 2001-12-12 18:22  dan
5414         * Makefile.in: D'oh! Fixed looping makefile bug.
5416         Courtesy of: "Jaen Saul" <jaen@saul.ee>
5418 2001-12-12 16:23  jgoff
5420         * languages/miniperl/t/001_basic/basic1.scheme: Bogus entry
5422 2001-12-12 16:22  jgoff
5424         * MANIFEST: Manifest additions for languages/miniperl
5426 2001-12-12 16:19  jgoff
5428         * languages/miniperl/t/001_basic/: basic.t, basic1.scheme: Basic
5429         tests. These are left over from the Scheme suite and shouldn't be
5430         used yet.
5432 2001-12-12 16:18  jgoff
5434         * languages/miniperl/: Miniperl/Generator.pm, Miniperl/Parser.pm,
5435         Miniperl/Test.pm, Miniperl/Tokenizer.pm, t/harness: Miniperl base
5436         modules. Miniperl/ is where the real work gets done.  t/ is largely
5437         vacant because it isn't ready to survive real tests yet.
5439 2001-12-12 16:17  jgoff
5441         * languages/miniperl/: Makefile, Miniperl.pm, foo.mpl, miniperlc,
5442         mpc: Final go-round, hopefully.
5444         languages/miniperl/Makefile - Used basically to run tests, as there
5445         is nothing                               here that needs to be
5446         dynamically built.  languages/miniperl/Miniperl.pm - Stub module
5447         that calls the real Miniperl/ mods languages/miniperl/foo.mpl -
5448         Sample miniperl file.  languages/miniperl/miniperlc - Miniperl
5449         compiler stub
5451 2001-12-12 16:09  dan
5453         * Configure.pl: Setting a variable with the make command name is
5454         useful.
5456 2001-12-12 15:07  simon
5458         * Makefile.in, languages/jako/Makefile, languages/scheme/Makefile:
5459         Recursive make considered "ow, don't do that".
5461 2001-12-12 14:45  dan
5463         * Makefile.in: Makefile had some non-portable code. (Okay, a lot of
5464         non-portable code) Killing builds on Win32 native. Small patch
5465         applied which hopefully fixes it.
5467 2001-12-12 06:12  ajgough
5469         * classes/Makefile.in: perl is $(PERL), you know it makes sense.
5471 2001-12-12 06:08  ajgough
5473         * Makefile.in: perl is $(PERL).
5475 2001-12-12 06:00  ajgough
5477         * t/op/integer.t: Added tests to integer.t so that all permutations
5478         of arguments are actually called at some point.
5480 2001-12-12 05:18  ajgough
5482         * t/op/time.t: I can't sleep, but I don't see why parrot shouldn't.
5483          Tests for sleep i|ic
5485 2001-12-12 05:09  ajgough
5487         * t/op/stacks.t: Added pushp and popp register stack tests.
5489 2001-12-12 04:51  ajgough
5491         * t/op/stacks.t: Added tests for save and restore, for all register
5492         types.  Let there be Haiku.
5494 2001-12-12 04:27  ajgough
5496         * t/op/basic.t: bsr_i test.  You know you want it.
5498 2001-12-12 02:55  ajgough
5500         * MANIFEST: Added hints/os2.pl to MANIFEST.
5502 2001-12-12 02:52  jgoff
5504         * core.ops, key.c: Final checkin... These are actually the correct
5505         copies.
5507 2001-12-12 02:12  jgoff
5509         * include/parrot/key.h: key.c - Removed a few functions,
5510         generalized set_element_value and element_value         to accept
5511         KEY_PAIRs from core.ops include/parrot/key.h - Modified header.
5512         core.ops - Modified to accept the new return style.
5514         This is a prelude to adding virtual-table methods to allow hashing
5515         &c. Expect at least one or two more redesigns before this settles
5516         down. However, it still passes the original tests.
5518 2001-12-11 13:35  gregor
5520         * runops_cores.c:
5521         Fixed a typo.
5523 2001-12-11 12:03  gregor
5525         * .cvsignore:
5526         Don't ignore test_prog, but do ignore parrot.
5528 2001-12-11 12:03  gregor
5530         * classes/.cvsignore:
5531         Ignore the generated file default.h
5533 2001-12-11 04:07  jgoff
5535         * key.c: Key source
5537 2001-12-11 04:05  jgoff
5539         * include/parrot/key.h, t/op/key.t: Needed header file, new test
5541 2001-12-11 04:00  jgoff
5543         * core.ops: Added new key aggregate operations to core ops.
5545 2001-12-11 04:00  jgoff
5547         * include/parrot/parrot.h: Added key.h to header list
5549 2001-12-11 03:59  jgoff
5551         * MANIFEST: Added key.c, include/parrot/key.h, t/op/key.t
5553 2001-12-11 03:58  jgoff
5555         * Makefile.in: Added implementation of key aggregates.
5557 2001-12-08 23:07  simon
5559         * README:
5560         README good to go.
5562 2001-12-08 23:05  simon
5564         * Configure.pl, Makefile.in, README, Parrot/Test.pm,
5565         docs/intro.pod, languages/jako/Makefile, languages/scheme/Makefile,
5566         languages/scheme/Scheme/Test.pm, lib/Parrot/Test.pm:
5567         test_prog? What is test_prog?
5569 2001-12-08 22:57  simon
5571         * ChangeLog:
5573         Oops, the changelog commit was on *this* machine.
5575 2001-12-08 22:56  simon
5577         * NEWS:
5578         Updates to NEWS and ChangeLog pre-release.
5580 2001-12-08 22:07  simon
5582         * MANIFEST, Makefile.in, classes/Makefile.in, classes/default.pmc,
5583         classes/perlnum.pmc, classes/pmc2c.pl:
5584         Add "default" PMC vtable so you can inherit implied stuff.
5586 2001-12-08 21:24  simon
5588         * Parrot/PackFile.pm, docs/parrot.pod, docs/parrotbyte.pod,
5589         docs/vtables.pod, lib/Parrot/PackFile.pm:
5590         Getting the documentation up to scratch.
5592 2001-12-08 21:21  simon
5594         * classes/pmc2c.pl:
5595         Allow inheriting from default class.
5597 2001-12-07 20:43  gregor
5599         * examples/assembly/queens.pasm:
5600         Regenerated the file with the latest jakoc.
5602 2001-12-07 20:29  simon
5604         * core.ops, t/op/stacks.t:
5605         Rename "rotate" to "rotate_up".
5607 2001-12-07 20:15  simon
5609         * t/op/stacks.t:
5610         Some tests for rotate.
5612 2001-12-07 00:55  gregor
5614         * core.ops:
5615         Cast the result of the pointer arithmetic, since without the cast
5616         there are warnings with some compilers, and without the parens
5617         around the pointer arithmetic, precedence breaks the meaning and
5618         causes crashes.
5620 2001-12-06 23:37  simon
5622         * core.ops:
5623         Temporary. I prefer compiler warnings to segfaults, thanks.
5625 2001-12-06 23:34  simon
5627         * runops_cores.c:
5628         Make "trace" work again.
5630 2001-12-06 21:23  dan
5632         * Parrot/Test.pm, lib/Parrot/Test.pm: Undo twiddles to test.pm
5634 2001-12-06 21:22  dan
5636         * core.ops, packfile.c, Parrot/Test.pm, include/parrot/stacks.h,
5637         lib/Parrot/Test.pm: Fix up source issues that made Dec C unhappy
5639 2001-12-06 19:22  simon
5641         * core.ops:
5642         Yet another "How the *%$! did that compile?" moment.
5644 2001-12-06 18:28  dan
5646         * hints/vms.pl: Fix to build, with a HERE logical required
5648 2001-12-06 17:48  dan
5650         * core.ops, interpreter.c, pbc2c.pl, pdump.c, test_main.c,
5651         docs/parrot_assembly.pod, include/parrot/interpreter.h: Sensible
5652         changes to the interpreter--flags are now part of the interp
5653         structure.
5655         Courtesy of "Melvin Smith" <mrjoltcola@mindspring.com>
5657 2001-12-06 14:02  gregor
5659         * docs/intro.pod:
5660         s/little_languages/languages/ in Jako section.
5662 2001-12-06 13:15  simon
5664         * Makefile.in:
5665         Ensure the documentation gets made.
5667 2001-12-06 13:12  simon
5669         * MANIFEST, docs/intro.pod:
5670         Documentation! Added the "Some Assembly Required" article with
5671         minor updates.
5673 2001-12-06 00:39  simon
5675         * core.ops:
5676         More "eq" support.
5678         Courtesy of: Nguon Hao Ching <hao@netaxs.com>
5680 2001-12-06 00:37  simon
5682         * test_main.c:
5683         Add the "-d" debug flag. Doesn't actually *do* anything yet.
5685         Courtesy of: Melvin <mrjoltcola@mindspring.com>
5687 2001-12-06 00:11  tom
5689         * string.c, chartypes/unicode.c, chartypes/usascii.c,
5690         encodings/singlebyte.c, encodings/utf16.c, encodings/utf8.c,
5691         include/parrot/chartype.h, include/parrot/encoding.h,
5692         include/parrot/parrot.h: Moved string to number conversion code out
5693         of the encoding layer and into the main string layer as neither the
5694         encoding layer nor the character type layer knows enough on it's
5695         own to do the conversion correctly.
5697 2001-12-05 23:12  tom
5699         * Makefile.in: Rebuild the classes directory if any of the object
5700         files for the classes are missing rather than only when perlint.o
5701         is missing.
5703 2001-12-05 19:43  gregor
5705         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm:
5706           * Reworked the constantize_string() stuff a little bit because it
5707         was
5708             puking on things like "\033[H\033[2J\0" (which occurs in the
5709             languages/jako/mandelzoom.jako example).
5711 2001-12-05 19:39  gregor
5713         * languages/jako/: Makefile, mandelzoom.jako:
5714         Added 'mandelzoom' example.
5716 2001-12-05 19:38  gregor
5718         * languages/jako/jakoc:
5719           * Added sleep()
5721           * Changed some instances of die() to confess()
5723 2001-12-05 18:34  gregor
5725         * t/: op/pmc.t, pmc/pmc.t:
5726         s/sting->int/string->int/
5728 2001-12-05 18:08  gregor
5730         * Parrot/.cvsignore:
5731         Ignore PMC.pm
5733 2001-12-05 18:05  gregor
5735         * classes/.cvsignore:
5736         Ignore the generated files.
5738 2001-12-05 17:19  gregor
5740         * pbc2c.pl:
5741           * Reverted recent changes, since they broke the script. Real fix
5742         coming
5743             later.
5745 2001-12-05 17:03  simon
5747         * classes/Makefile.in:
5748         Remember: change Makefile.in, not Makefile. D'oh.
5750 2001-12-05 17:02  simon
5752         * Makefile.in:
5753         Ensure PMC.pm gets remade.
5755 2001-12-05 16:58  simon
5757         * MANIFEST, Makefile.in, classes/Makefile.in,
5758         classes/perlundef.pmc, include/parrot/pmc.h:
5759         Add perlundef class.
5761 2001-12-05 16:45  simon
5763         * core.ops:
5764         Document "new P0, foo"
5766 2001-12-05 16:43  simon
5768         * MANIFEST, Makefile.in, pbc2c.pl, pmc_pm.pl, Parrot/Assembler.pm,
5769         lib/Parrot/Assembler.pm, t/op/pmc.t, t/pmc/pmc.t:
5770         Allow assembler to know about PMC class names.
5772 2001-12-04 13:39  ajgough
5774         * MANIFEST: Added t/op/pmc.t to MANIFEST.
5776 2001-12-04 05:02  ajgough
5778         * classes/perlnum.pmc: Picky compiler pointed out probable thinko
5779         in perlnum.c
5781 2001-12-04 04:24  ajgough
5783         * encodings/singlebyte.c, t/op/pmc.t, t/pmc/pmc.t: A much less
5784         broken form of strtod and appropriate tests.  Does not yet check
5785         for overflow.
5787 2001-12-04 01:31  ajgough
5789         * string.c, encodings/singlebyte.c, encodings/utf16.c,
5790         encodings/utf8.c, include/parrot/encoding.h: Added length parameter
5791         to extract_num and extract_int string vtables, without this it
5792         would be impossible to have strings with nulls in while still
5793         knowing where they ended.
5795 2001-12-03 18:40  ajgough
5797         * string.c, classes/perlstring.pmc, encodings/singlebyte.c,
5798         encodings/utf16.c, encodings/utf8.c, include/parrot/encoding.h,
5799         include/parrot/string.h: Moved pmc string to number conversion into
5800         the string encoding tables.
5802 2001-12-03 00:21  ajgough
5804         * core.ops, t/op/pmc.t, t/pmc/pmc.t: Added set i, p and some tests
5805         for p-> integer.
5807 2001-12-02 23:09  jgoff
5809         * classes/Makefile.in: Removed some redundant targets.
5811 2001-12-02 19:02  ajgough
5813         * t/: op/pmc.t, pmc/pmc.t: Modified all pmc tests to make use of fp
5814         equality macro rather than using perl to generate expected output,
5815         all tests now have <<OUTPUT.
5817 2001-12-02 17:44  ajgough
5819         * t/op/trans.t: Upgraded fp_eq and fp_ne macros to be more useful
5820         for pmc.t as well.  Will probably move macros into another file at
5821         some point, although this might be best left until the tests are
5822         unperled.
5824 2001-12-02 06:16  jgoff
5826         * classes/pmc2c.pl: It wasn't properly setting the vtable index
5827         within Parrot_Perl{Class}_init.
5829 2001-12-02 06:09  jgoff
5831         * classes/Makefile.in: I seem to have removed *$(O) twice..
5833 2001-12-02 05:06  jgoff
5835         * Configure.pl, MANIFEST, Makefile.in: (Hopefully the last time...)
5836         Configure.pl - Removed '-I./include', added classes/Makefile
5837         generation MANIFEST     - Added classes/Makefile.in Makefile.in  -
5838         Removed old classes/* make stuff                Added target for
5839         classes/Makefile
5841 2001-12-02 04:48  jgoff
5843         * classes/Makefile.in: Going to be used shortly...
5845 2001-12-02 04:40  jgoff
5847         * docs/Makefile: Configure.pl - Added automatic makefile creation
5848         for docs/ and classes/                Removed '-I./include' because
5849         it was getting incorrectly                passed to classes/
5850         MANIFEST - added docs/Makefile.in, classes/Makefile.in Makefile.in
5851         - Removed classes/ build stuff, replaced with classes/Makefile.in
5852                     Added '-I./include' locally docs/Makefile - Should no
5853         longer be used, but I'm not brave enough to do a
5854         cvs delete.
5856 2001-12-02 01:21  ajgough
5858         * t/op/trans.t: Refactored trans math tests to have hard coded
5859         expected return values and be more ready to be unperled at some
5860         point in the future.  Added $fp_equality_macro which is a
5861         "nearly-equal-to" function.
5863 2001-12-02 01:18  ajgough
5865         * Makefile.in: Humph.  People really ought to use Makefile
5866         variables, s/perl/$(PERL)/ throughout.
5868 2001-12-01 18:15  jgoff
5870         * classes/: perlint.pmc, perlnum.pmc: Temporary patch until we
5871         figure out what to do vis-a-vis the lack of snprintf.
5873 2001-11-30 13:14  ajgough
5875         * t/op/: integer.t, number.t: Added tests for abs ops to number.t
5876         and integer.t
5878 2001-11-30 13:14  ajgough
5880         * core.ops: Added abs(i|n, i|ic|n|nc) ops to core.ops, using if <0
5881         -, else ... form.
5883 2001-11-30 10:36  simon
5885         * core.ops:
5886         Rewrite print_p to do the right thing.
5888 2001-11-30 06:21  jgoff
5890         * t/: op/pmc.t, pmc/pmc.t: New tests for integer/number/string
5891         concat,               integer/number/string math
5893 2001-11-30 06:20  jgoff
5895         * classes/: perlint.pmc, perlnum.pmc, perlstring.pmc:
5896         classes/perlint.pmc - Fixes and expanding for concat and math with
5897         strings classes/perlnum.pmc - Fixes and expanding for concat and
5898         math with strings classes/perlstring.pmc - Fixes and expanding for
5899         concat and math with strings
5901 2001-11-29 15:21  ajgough
5903         * hints/os2.pl: This is a hints file for os/2, I've set $c{perl} as
5904         $^X lies, which confused bash which make uses to run things when
5905         doing its stuff.
5907 2001-11-29 04:58  jgoff
5909         * classes/perlstring.pmc: Removed C++-style comments for good
5910         measure
5912 2001-11-29 04:51  jgoff
5914         * t/: op/pmc.t, pmc/pmc.t: New tests for PMC integers
5916 2001-11-29 04:28  jgoff
5918         * global_setup.c: Initialize PMC strings
5920 2001-11-29 04:25  jgoff
5922         * core.ops: Added set_p_s and set_p_sc, modified print_p to handle
5923         string PMCs.
5925 2001-11-29 04:24  jgoff
5927         * classes/: perlint.pmc, perlnum.pmc, perlstring.pmc: Changed PMC
5928         files to properly upgrade int to num, do calculations.  Also added
5929         basic string operations. Currently errors out on anything but set
5930         operations, but this will be fixed soon.
5932 2001-11-29 04:22  jgoff
5934         * Makefile.in: PMC .c files weren't getting cleaned out.
5936 2001-11-28 17:00  simon
5938         * t/harness:
5940         Make csh-glob happy.
5942         Courtesy of: Andy Dougherty: <doughera@lafayette.edu>
5944 2001-11-28 16:40  simon
5946         * classes/perlnum.pmc:
5948         De-C++
5950 2001-11-28 15:22  simon
5952         * string.c:
5954         Fixes Alex's string concat worry.
5956 2001-11-28 14:27  ajgough
5958         * t/op/string.t: test "null onto null" incorrectly passing as it
5959         produced no output.  Output provided.
5961 2001-11-28 11:14  simon
5963         * include/parrot/pmc.h:
5965         Placate AIX.
5967 2001-11-26 21:03  dan
5969         * MANIFEST, hints/darwin.pl: Tweaks to build on Mac OS X 10.1
5971 2001-11-26 17:29  simon
5973         * classes/perlint.pmc:
5975         Various subtle but non-showstopper bugs.
5977 2001-11-26 11:23  simon
5979         * classes/pmc2c.pl:
5981         Replace dependency on Text::Balanced
5983         Courtesy of: Bart Lateur <bart.lateur@pandora.be>
5985 2001-11-26 05:22  jgoff
5987         * global_setup.c: Last file that should need to be committed. I
5988         swear.
5990 2001-11-26 05:09  jgoff
5992         * core.ops: Let's try this again... Changes to core.ops required
5994 2001-11-26 04:58  jgoff
5996         * classes/perlint.pmc, classes/perlnum.pmc, t/op/pmc.t,
5997         t/pmc/pmc.t: Makefile.in - Added missing cleanup line for perl*.c
5998         core.ops - Added set(p,n|nc), modified print(p) global_setup.c -
5999         Uncommented PerlNum_init classes/perlint.pmc - Added set_number
6000         functions classes/perlnum.pmc - Set up basic number functions
6001         t/op/pmc.t - Added tests for set P0.<number> and {add,mul,sub,div}
6002         tests against numbers and numbers+integers
6004 2001-11-25 13:18  simon
6006         * Makefile.in:
6007         Windows XP make doesn't like $<
6009 2001-11-25 12:56  simon
6011         * MANIFEST, Makefile.in, classes/genclass.pl, classes/perlint.c,
6012         classes/perlint.pmc, classes/perlnum.c, classes/perlnum.pmc,
6013         classes/perlstring.c, classes/perlstring.pmc, classes/pmc2c.pl,
6014         examples/assembly/mops_p.pasm:
6015         PMC preprocessor.
6017         Courtesy of: Angel Faus <afaus@corp.vlex.com>
6019         I (Simon) also added a couple more integer methods, but no tests
6020         since I'm a Bad Person.
6022 2001-11-25 08:40  brentdax
6024         * ops2c.pl, Parrot/Op.pm, Parrot/OpsFile.pm, lib/Parrot/Op.pm,
6025         lib/Parrot/OpsFile.pm: Allow _ in op names
6027 2001-11-25 05:54  jgoff
6029         * classes/perlint.c, t/op/pmc.t, t/pmc/pmc.t: classes/perlint.c -
6030         Added basic math ops t/op/pmc.t - Added tests of basic math ops
6032 2001-11-23 18:27  simon
6034         * core.ops, classes/perlint.c, examples/assembly/mops_p.pasm:
6035         Add everything you need to make MOPS use PMCs.
6037 2001-11-23 18:06  simon
6039         * core.ops:
6040         Eh, you'll need this for rewriting mops.pasm.
6042 2001-11-23 17:55  simon
6044         * core.ops, classes/perlint.c, include/parrot/pmc.h, t/op/pmc.t,
6045         t/pmc/pmc.t:
6046         More work on integer PMCs.
6048 2001-11-23 17:29  simon
6050         * Makefile.in:
6051         Surprise! Whitespace! HLAGHLAGHLAGH
6053 2001-11-23 17:28  simon
6055         * Makefile.in, ops2c.pl, ops2pm.pl:
6056         Add vtables.ops to the core
6058         Courtesy of: Jeff Goff <jgoff@speakeasy.net>
6060 2001-11-22 18:39  simon
6062         * core.ops, global_setup.c, docs/parrot_assembly.pod, t/op/pmc.t,
6063         t/pmc/pmc.t:
6064         We can now create PMCs.
6066 2001-11-21 05:49  jgoff
6068         * Makefile.in: Makefile cleans up *.pasm *.pbc *.out
6070 2001-11-20 16:00  simon
6072         * docs/vtables.pod, include/parrot/pmc.h:
6073         Reorder PMC flags so there's a fixed number of user-defined flags.
6075         Courtesy of: Dave Mitchell <davem@fdgroup.co.uk>
6077 2001-11-19 03:39  jgoff
6079         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm, t/op/basic.t:
6080         Parrot/Assembler.pm - Allow "print 'foo'", and properly escape
6081         nested quotes.  t/op/basic.t - Add tests for single-quoted strings,
6082         escaped quotes, and proper                handling of newlines.
6084 2001-11-16 22:03  simon
6086         * classes/perlint.c:
6087         More work on the Perl Integer class. More needed, though.
6089 2001-11-16 21:57  simon
6091         * pmc.c, vtable.tbl, classes/genclass.pl, classes/perlint.c:
6092         Rename ->new to ->init, and rework pmc.c:pmc_new to fiddle it.
6094 2001-11-16 20:49  simon
6096         * interpreter.c, runops_cores.c, trace.c,
6097         include/parrot/runops_cores.h:
6098         Kill superfluous runops cores.
6100 2001-11-16 17:50  simon
6102         * MANIFEST, Makefile.in, classes/intclass.c, classes/perlint.c,
6103         classes/perlnum.c, classes/perlstring.c, classes/scalarclass.c,
6104         include/parrot/parrot.h, include/parrot/pmc.h:
6105         Skeleton for Perl scalar types, done right.
6107 2001-11-16 16:15  simon
6109         * classes/genclass.pl:
6110         This tidies up genclass to deal with the new-style multimethods.
6112 2001-11-16 15:29  simon
6114         * Makefile.in, make_vtable_ops.pl, vtable.tbl, Parrot/Vtable.pm,
6115         lib/Parrot/Vtable.pm, include/parrot/parrot.h:
6116         Rework multimethods to be *true* multimethods - that is, have
6117         different types.
6119 2001-11-15 22:29  simon
6121         * MANIFEST, Makefile.in, pmc.c:
6122         pmc.c linkage and support. Oh, and making it compile.
6124 2001-11-15 22:26  dan
6126         * t/op/interp.t: Forgot to tell CVS about the test...
6128 2001-11-15 22:10  dan
6130         * MANIFEST, Types_pm.in, core.ops, vtable_h.pl,
6131         docs/parrot_assembly.pod, include/parrot/string.h: Added in support
6132         for PMC registers for the interpreter.
6134         Added in the docs for the runinterp opcode.
6136         Added in code for both the newinterp and runinterp opcodes, so we
6137         can now create new interpreters from within parrot and have them do
6138         things. (Though we can't pass data back and forth. Yet)
6140 2001-11-15 21:24  simon
6142         * vtable.tbl, classes/scalarclass.c, docs/vtables.pod:
6143         More documentation, and other changes as discussed with Dan.
6145 2001-11-15 19:51  simon
6147         * classes/scalarclass.c:
6148         De-cut-and-pasto.
6150 2001-11-15 19:50  simon
6152         * classes/scalarclass.c:
6153         A little code tidiness.
6155 2001-11-15 19:33  simon
6157         * include/parrot/pmc.h:
6158         Missed this in the previous commit - un-constantize the base for
6159         user-defined PMC flags.
6161 2001-11-15 19:28  simon
6163         * classes/scalarclass.c:
6164         Hey look, sanity.
6166 2001-11-15 17:09  simon
6168         * classes/scalarclass.c:
6169         It seems I have completely forgotten how to write C.
6171 2001-11-15 16:53  simon
6173         * docs/vtables.pod:
6174         Start of the PMC classes documentation.
6176 2001-11-15 14:46  simon
6178         * classes/scalarclass.c:
6179         Changing to use a Perl-style struct instead of the union cache.
6181 2001-11-13 23:56  tom
6183         * string.c: Removed leading _ from string_index as function names
6184         starting with _ are reserved to implementors by the C standard.
6186         Also fixed string_index to use the encoding routines instead of
6187         assuming a single byte encoding.
6189 2001-11-13 12:59  jgoff
6191         * string.c: Patched string_concat to accept null strings.  That
6192         test was failing. Nothing to do with ord().
6194 2001-11-13 12:43  jgoff
6196         * string.c: string_ord function, string_concat fixes
6198 2001-11-13 04:52  jgoff
6200         * core.ops: Added ord to core.ops
6202 2001-11-13 04:35  jgoff
6204         * docs/strings.pod, include/parrot/exceptions.h,
6205         include/parrot/string.h, t/op/string.t: core.ops - Added ord
6206         operator, documentation string.c - Added string_ord, _string_index
6207         (_string_index is a static helper)              Patched
6208         string_concat to handle null strings properly.  docs/strings.pod -
6209         Description of string_ord include/parrot/exceptions.h - Added
6210         ORD_OUT_OF_STRING exception include/parrot/string.h - Added
6211         string_ord() t/op/string.t - Added full set of test for
6212         ord_i_(s|sc)(_(i|ic))?
6214         string.c contains a bit of documentation explaining the logic
6215         behind _string_index, primarily having to do with multiple encoding
6216         formats.
6218 2001-11-12 22:30  simon
6220         * t/op/macro.t:
6221         Count 'em.
6223 2001-11-12 22:28  simon
6225         * Makefile.in:
6226         Add a rule to compile "platform"
6228 2001-11-12 22:26  simon
6230         * Makefile.in:
6231         Tidy up distclean target.
6233 2001-11-12 16:54  dan
6235         * MANIFEST, Parrot/Assembler.pm, lib/Parrot/Assembler.pm,
6236         t/op/macro.t: Fixes to the assembler's macro facility and a test
6238         Courtesy of: Jeff <jgoff@speakeasy.net>
6240 2001-11-12 16:50  dan
6242         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm: Allow input from
6243         stdin
6245         Courtesy of: Jeff <jgoff@speakeasy.net>
6247 2001-11-12 16:36  dan
6249         * Parrot/Test.pm, lib/Parrot/Test.pm: Fix to make test work on
6250         CygWin
6252         Courtesy of: Alex Gough <alexander.gough@st-hughs.oxford.ac.uk>
6254 2001-11-12 11:22  simon
6256         * examples/assembly/mops.pasm:
6258         Trivial tightening of mops loop.
6260 2001-11-07 23:57  ajgough
6262         * docs/tests.pod: This is a basic quide to writing tests with
6263         assembler.
6265 2001-11-07 22:29  dan
6267         * stacks.c: Added a little documentation on the cleanup parameter
6268         for an entry
6270 2001-11-07 14:43  dan
6272         * MANIFEST, platforms/generic.c, platforms/linux.c,
6273         platforms/linux.h: Portability patches.
6275         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
6277 2001-11-06 19:51  tom
6279         * Makefile.in: Clean up object files in the subdirectories as well
6280         as those in the top level directory.
6282         Enhanced version of patch from Daniel Grunblatt
6283         <daniel@grunblatt.com.ar>
6285 2001-11-06 16:14  dan
6287         * Configure.pl, MANIFEST, Makefile.in, core.ops,
6288         platforms/generic.c, platforms/generic.h: Made things a bit more
6289         platform-independent. Makefile still needs work to pick up changes
6290         to the platform-specific files.
6292 2001-11-05 21:32  dan
6294         * docs/parrot_assembly.pod: Added docs for the GC control ops
6296 2001-11-04 02:52  gregor
6298         * platforms/: win32.c, win32.h:
6299           * win32 dynamic loading functions.
6301         Courtesy of Jason Diamond <jason@injektilo.org>
6303 2001-11-04 00:04  brentdax
6305         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm: Assembler fixes:
6306         allows an absolute path to be used and gives a useful error message
6307         if the original source file can't be found
6309 2001-11-02 12:37  gregor
6311         * platforms/: linux.c, linux.h:
6312           * Beginning of dynamic loading support. Linux only for now.
6314 2001-11-02 12:13  gregor
6316         * MANIFEST, time.c, include/parrot/time.h:
6317           * Removed time.[hc], since they have been superseded by the new
6318         platform
6319             stuff.
6321 2001-11-02 12:11  gregor
6323         * Configure.pl, Makefile.in, core.ops, vtable.tbl,
6324         classes/intclass.c, classes/scalarclass.c, hints/mswin32.pl,
6325         include/parrot/parrot.h, platforms/linux.c, platforms/linux.h,
6326         platforms/win32.c, platforms/win32.h:
6327         Patch from Jason Diamond to make win32 platform stuff work:
6329         * Modified Configure.pl, mswin32.pl, and Makefile.in so that the
6330         platform specific files in the platforms directory gets copied to
6331         the correct directories. The Makefile will re-copy the platform.h
6332         and .c files if the original is modified.
6334         * #include platform.h in parrot.h instead of time.h.
6336         * Removed time.h and time.obj from the Makefile. time.h and time.c
6337         aren't being used anymore since that code was moved to linux.c and
6338         win32.c.
6340         * Renamed the BOOL typedef in parrot.h to BOOLVAL (inspired by
6341         INTVAL and FLOATVAL). This was conflicting with the BOOL typedef in
6342         windows.h. This required updating several files besides parrot.h.
6344         * Added a DEFAULT_OPEN_MODE to linux.h and win32.h and used that
6345         instead of the missing identifiers (on Windows) in core.ops in the
6346         calls to open.
6348         * Added Parrot_sleep and Parrot_setenv to both the linux and win32
6349         platform files and called those from core.ops. The Linux code for
6350         these functions came from core.ops so they should hopefully work.
6352         Courtesy of Jason Diamond <jason@injektilo.org>
6354 2001-11-02 06:43  brentdax
6356         * Makefile.in, hints/mswin32.pl: Fix classes/intclass.obj building
6357         for Win32 (courtesy of Jason Diamond <jason@injektilo.org>)
6359 2001-11-02 02:26  gregor
6361         * .cvsignore, MANIFEST, include/parrot/.cvsignore,
6362         platforms/linux.c, platforms/linux.h, platforms/win32.c,
6363         platforms/win32.h:
6364           * Beginnings of platform support files in platform/*.[hc]
6366 2001-11-01 23:37  tom
6368         * classes/intclass.c: Added missing *'s to STRING arguments and
6369         return values to avoid compiler warnings.
6371 2001-11-01 22:21  gregor
6373         * MANIFEST, Makefile.in, core.ops, obscure.ops, time.c,
6374         include/parrot/parrot.h, include/parrot/time.h:
6375         Initial "fix" of time(n) op for Win32:
6377           * Initial Win32 code Courtesy of Richard J Cox <rjcox@cix.co.uk>
6379           * time.c and include/parrot/time.h
6381             First attempt at getting this working across platforms. The
6382             macro WIN32 being tested might not be right.
6384           * New functions Parrot_intval_time() and Parrot_floatval_time()
6385             wrap the appropriate functionality depending upon platform.
6386             Changed core.ops to call these.
6388         Added obscure.ops with obscure transcendental ops.
6390         Added simple file I/O ops (close, open, read, write):
6392           * Initial versions Courtesy of Jeff <jgoff@speakeasy.net>
6394           * I changed some arg ordering stuff.
6396           * I added read/write of INTVALs and FLOATVALs.
6398         Added environment variable ops (getenv, setenv)
6400         Added system error ops (err(i) and err(s) for accessing errno and
6401         strerr().
6403         Moved print ops in with other "temporary" developer ops, since
6404         they'll move to a devel.ops or temp.ops oplib once we have oplibs.
6406 2001-10-31 22:51  tom
6408         * MANIFEST, Makefile.in, chartype.c, encoding.c, global_setup.c,
6409         packfile.c, string.c, strnative.c, strutf16.c, strutf32.c,
6410         strutf8.c, transcode.c, chartypes/unicode.c, chartypes/usascii.c,
6411         encodings/singlebyte.c, encodings/utf16.c, encodings/utf32.c,
6412         encodings/utf8.c, include/parrot/chartype.h,
6413         include/parrot/encoding.h, include/parrot/exceptions.h,
6414         include/parrot/parrot.h, include/parrot/string.h,
6415         include/parrot/strnative.h, include/parrot/strutf16.h,
6416         include/parrot/strutf32.h, include/parrot/strutf8.h,
6417         include/parrot/transcode.h: Reworked the string code in line with
6418         Dan's latest design that separates character sets from encodings.
6420 2001-10-31 19:53  dan
6422         * docs/parrot_assembly.pod: Finished I/O section of docs
6424 2001-10-31 16:51  dan
6426         * core.ops, docs/parrot_assembly.pod, include/parrot/parrot.h:
6427         Moved includes out of core.ops and into parrot.h where they belong
6428         (suitably guarded with #ifdefs). Also some updates to
6429         parrot_assembly.pod
6431 2001-10-30 21:43  dan
6433         * core.ops, stacks.c, docs/parrot_assembly.pod,
6434         include/parrot/stacks.h: Added entrytype opcode to fetch the type
6435         of the entry on the stack
6437 2001-10-29 18:30  dan
6439         * stacks.c: You can turn off stack entry type validation on pop by
6440         passing in a type of 0 now. (For those cases where you just want to
6441         throw the darned thing away)
6443 2001-10-29 14:37  gregor
6445         * core.ops, languages/jako/jakoc:
6446           * New variants of the save ops to save constants on the stack.
6447         This is
6448             useful for saving zero arg and result counts on the stack, for
6449         example.
6451           * Modified jakoc to to adapt to the newly announced calling
6452         conventions.
6453             Even though Jako source code appears to show subroutines with
6454         fixed
6455             numbers of arguments and results, they are implemented with the
6456             variable count calling convention. Future modifications will be
6457         needed
6458             to ensure that an exception is raised if the stack frame is of
6459         the
6460             wrong size (or, at least that we pop the complete frame off).
6461         We'll
6462             also have to make more changes to support the true
6463         fixed-arg-count
6464             and fixed-result-count parts of the calling convention spec.
6466 2001-10-28 16:53  simon
6468         * MANIFEST, stacks.c, classes/scalarclass.c,
6469         include/parrot/stacks.h:
6470         Unbelievably bad errors of mine, plus a type incompatibility of
6471         Dan's.
6473 2001-10-28 08:30  simon
6475         * classes/scalarclass.c:
6476         Beginning of a scalar class.
6478 2001-10-28 08:29  simon
6480         * make_vtable_ops.pl, vtable.tbl, Parrot/Vtable.pm,
6481         lib/Parrot/Vtable.pm, classes/genclass.pl, classes/intclass.c,
6482         include/parrot/pmc.h:
6483         This fixes the problem with vtables and pointer arithmetic.
6485 2001-10-26 19:58  dan
6487         * core.ops, interpreter.c, stacks.c, include/parrot/interpreter.h,
6488         include/parrot/stacks.h: Split the generic stack into a user push
6489         stack and a control stack
6491 2001-10-26 02:59  bdwheele
6493         * Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm: [no log message]
6495 2001-10-24 20:27  dan
6497         * languages/scheme/: Makefile, Scheme.pm, schemec,
6498         Scheme/Generator.pm, Scheme/Parser.pm, Scheme/Test.pm,
6499         Scheme/Tokenizer.pm, t/harness, t/arith/basic.t, t/arith/logic.t,
6500         t/arith/nested.t, t/io/basic.t, t/logic/basic.t: Added the mini
6501         Scheme compiler
6503 2001-10-24 20:23  dan
6505         * MANIFEST, pdump.c, docs/parrot_assembly.pod: Update for
6506         interpreter needs in pdump.c. Added scheme bits to manifest
6508 2001-10-24 16:43  gregor
6510         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm:
6511           * Make the assembler handle octal character code escapes in
6512         string
6513             constants.
6515 2001-10-24 15:56  dan
6517         * MANIFEST, examples/assembly/life.pasm: Added an example in to
6518         play the game of life
6520 2001-10-24 15:54  dan
6522         * core.ops: Added sleep. We'll need to override this to do events
6523         properly anyway, so...
6525 2001-10-24 14:03  gregor
6527         * Makefile.in, pbc2c.pl, pdump.c:
6528           * Adapt pdump.c and pbc2c.pl to the new requirement to pass
6529         interpreter
6530             pointer into string functions.
6532         Courtesy of: Ryan O'Neil <talisman580@yahoo.com>
6534 2001-10-23 20:09  gregor
6536         * languages/jako/jakoc:
6537           * Terminological refinement in regexp capture comment.
6539 2001-10-23 15:23  simon
6541         * classes/genclass.pl:
6542         Use a saner ANSI C construct to make MIPSPro happy.
6544         Courtesy of: Alex Gough <alexander.gough@st-hughs.oxford.ac.uk>
6546 2001-10-23 00:34  tom
6548         * core.ops, string.c, strnative.c, strutf16.c, strutf32.c,
6549         strutf8.c, include/parrot/string.h: Make sure the interpreter
6550         structure is passed to the transcoder as necessary, including
6551         passing it to string_compare().
6553 2001-10-23 00:32  tom
6555         * Makefile.in: Make pdump build again by including resources.o in
6556         the link.
6558 2001-10-22 22:43  dan
6560         * core.ops, packfile.c, string.c, strnative.c, strutf16.c,
6561         strutf32.c, strutf8.c, test_main.c, transcode.c,
6562         include/parrot/packfile.h, include/parrot/parrot.h,
6563         include/parrot/resources.h, include/parrot/string.h,
6564         include/parrot/transcode.h: Everything now uses the allocators and
6565         deallocators in resources.c.
6567         Unfortunately we lost standalone string-test mode, but I can cope
6568         with that.
6570         Please note that until we have a real allocation/deallocation/GC
6571         system, this'll leak. A *lot*.
6573 2001-10-22 20:27  dan
6575         * MANIFEST, Makefile.in, pmc.c, resources.c,
6576         include/parrot/resources.h: First cut to handle arena allocation of
6577         PMC headers. (Amongst other things)
6579 2001-10-22 19:02  dan
6581         * Configure.pl, config_h.in, register.c, include/parrot/register.h:
6582         Now each register type has its own mask macro, which is the right
6583         thing to do.
6585         Patch courtesy of Jason Gloudon <perl@gloudon.com>
6587 2001-10-21 23:40  tom
6589         * stacks.c, t/op/stacks.t: Fix bug in handling of rollover to a new
6590         stack chunk and add a test to test this rollover in future.
6592         Courtesy of Jason Gloudon <perl@gloudon.com>.
6594 2001-10-21 19:14  dan
6596         * include/parrot/string.h: Changed string 'unused' field to the
6597         language field.
6599 2001-10-21 18:18  gregor
6601         * languages/jako/: Makefile, mops.jako:
6602           * Makefile: 'clean' target removes .list files, too. And, it does
6603         rm -f
6604             with wildcards rather than listing things explicitly.
6606           * mops.jako actually prints out the
6607         millions-of-operations-per-second
6608             (mops) value instead of just the operations-per-second value.
6610 2001-10-21 18:03  simon
6612         * classes/intclass.o:
6613         *smack*! WRONG!
6615 2001-10-21 17:47  simon
6617         * MANIFEST, Makefile.in, make_vtable_ops.pl, pmc.c, vtable_h.pl,
6618         Parrot/Vtable.pm, classes/genclass.pl, classes/intclass.c,
6619         classes/intclass.o, include/parrot/parrot.h, include/parrot/pmc.h,
6620         lib/Parrot/Vtable.pm:
6621         Initial work on PMCs. Explanation to follow
6623 2001-10-21 15:20  gregor
6625         * examples/assembly/queens.pasm:
6626           * Modernize the calling conventions in queens.pasm. It was using
6627         swap,
6628             which now must be rotate. Also, changed to use return values on
6629         the
6630             stack instead of in I0.
6632 2001-10-19 18:14  gregor
6634         * core.ops, stacks.c, include/parrot/stacks.h,
6635         languages/jako/jakoc:
6636         Per Dan's request, replacing 'swap' op by 'rotate'.
6638           * core.ops: Replaced 'swap()' by 'rotate(i|ic)'.
6640           * stacks.c and stacks.h: Removed swap-related functions from my
6641             prior commit, replacing them with stack_depth(), stack_entry()
6642             and rotate_entries().
6644             NOTE: The stack_depth() and rotate_entries() routines could
6645             be made more efficient through the caching of the sum of chunk
6646             'used' members from lower chunks in a field in the upper
6647             chunks. Also, if the interpreter's stack_base was changed to
6648             hold the pointer to the *top* chunk (since we usually come
6649             at the stack from the top down) instead of the *bottom*
6650             chunk. The code here at least works, and we can decide about
6651             bigger changes separately.
6653             For now, rotate only handles rotates in one direction and
6654             of magnituded one. A fully general rotate would do handle
6655             rotates in both directions and of arbitrary amounts. Again,
6656             this implementation is sufficient for current applications,
6657             and a feature-complete version can be developed if this turns
6658             out to be otherwise the right type of implementation.
6660             This change includes a new exception for ERROR_STACK_SHALLOW,
6661             meaning "not-empty-yet-not-deep-enough-for-what-you-asked".
6663           * jakoc: Changed the calling convention to use rotate instead
6664             of swap (of course). Also changed the convention for return
6665             value passing to use the stack as well.
6667 2001-10-19 13:36  gregor
6669         * MANIFEST, core.ops, disassemble.pl, stacks.c,
6670         examples/assembly/queens.pasm, include/parrot/stacks.h,
6671         languages/jako/.cvsignore, languages/jako/Makefile,
6672         languages/jako/bench.jako, languages/jako/euclid.jako,
6673         languages/jako/fact.jako, languages/jako/jakoc,
6674         languages/jako/mandelbrot.jako, languages/jako/mops.jako,
6675         languages/jako/primes.jako, languages/jako/queens.jako,
6676         languages/jako/sub.jako:
6677           * New stack functions push_entry(), pop_entry() and swap_entry().
6678             The first two exist for the support of the last one. These
6679             functions don't care what is in the stack entries. These exist
6680             to support the new 'swap' op (see next bullet).
6682           * New op 'swap' for swapping the top two elements on the stack.
6683             This is necessary for passing arguments to functions, since
6684             the return address will be on top of any arguments that have
6685             been pushed on the stack. This way, you can use a (swap, pop)
6686             pair to retrieve each argument (for subroutine linkage).
6688           * Disassembler now prints numbers in decimal by default, with
6689             a new '-x' flag to turn on hexadecimal display. Since other
6690             members of the Parrot Tool Set use decimal by default, this
6691             makes it easier to compare output from the various tools.
6693           * Jako compiler has more explanatory comments and the following
6694             new features:
6696               * Lexically scoped variables.
6698               * Subroutines that take arguments and return values:
6700                   sub int foo(int bar) {
6701                     if (bar == 1) {
6702                       return 42;
6703                     } else {
6704                       return 13;
6705                     }
6706                   }
6707               * ... if (...) and ... unless (...) statement modifiers
6708                 can be used on next, last and redo.
6710               * Bitwise and (&, &=) and or (|, |=) ops.
6712               * Type names are just 'int', 'num', 'str', and 'poly' now.
6713                 The old long names 'integer', 'number', 'string', and
6714                 'polytype' are no longer valid.
6716               * Integer variable assignments can now use 0b (binary),
6717                 0 (octal) and 0x (hexadecimal) radix prefixes on literals.
6719           * New Jako and Parrot assembly examples queens.{jako,pasm} for
6720             solving the eight-queens problem. The assembly example is a
6721             hand-modified version of the assembly code produced by the
6722             Jako compiler from queens.jako. A few unnecessary ops have
6723             been removed, lots of unnecessary labels have been removed,
6724             and all the Jako source code comments have been removed.
6726           * Makefile and .cvsignore in languages/jako modified so that
6727             the assembler produces listings when assembling the programs,
6728             yet the *.list files are ignored by CVS.
6730           * Made the default target in languages/jako/Makefile 'all'.
6732           * Modified some of the Jako examples to use some of the new
6733             features of Jako, such as subroutines and lexical variable
6734             scoping.
6736 2001-10-19 02:43  gregor
6738         * runops_cores.c, include/parrot/runops_cores.h:
6739         Bug fix (gcc doesn't complain, but MIPSpro does):
6741           * Added missing extern to runops_cores array declaration in
6742             include/parrot/runops_cores.h
6744           * Also added 'const' there and in runops_cores.c
6746 2001-10-18 15:18  gregor
6748         * .cvsignore, include/parrot/oplib/.cvsignore:
6749           * Ignore the vtable-related generated files.
6751 2001-10-18 15:14  gregor
6753         * core.ops:
6754           * left and right shifts now allow the 2nd argument to be a
6755         constant.
6757 2001-10-18 14:55  simon
6759         * make_vtable_ops.pl:
6760         This is C, not Perl. How on earth did that even compile?
6762 2001-10-18 14:54  simon
6764         * make_vtable_ops.pl:
6765         More vtable ops.
6767 2001-10-18 12:33  simon
6769         * Makefile.in, make_vtable_ops.pl, vtable.tbl:
6770         Initial stab at vtable opcode creation stuff.
6772 2001-10-18 02:15  gregor
6774         * MANIFEST, Makefile.in, interpreter.c, runops_cores.c, trace.c,
6775         include/parrot/interpreter.h, include/parrot/runops_cores.h,
6776         include/parrot/trace.h: Preparation for autogenerated runops cores:
6778           * Split tracing and runops core stuff out of interpreter.c into
6779             trace.c and runops_cores.c
6781           * Similar split of stuff from include/parrot/interpreter.h
6783           * Manifest and Makefile.in updates to make things still compile.
6785 2001-10-18 01:21  gregor
6787         * Makefile.in, ops2c.pl, ops2pm.pl, pbc2c.pl: Bug fixes:
6789           * Makefile.in: examples/assembly/mops.c depends on pbc2c.pl
6791           * Makefile.in: Parrot/OpLib/core.pm depends on ops2pm.pl
6793           * ops2c.pl: Added second arg to mkdir (perl 5.005_02 complains)
6795           * ops2pm.pl: Added second arg to mkdir (perl 5.005_02 complains)
6797           * pbc2c.pl: Removed explicit include of <math.h>, replacing it
6798         with
6799             copy of $ops->preamble.
6801 2001-10-17 22:32  bdwheele
6803         * interpreter.c: Moved op dump code into trace_op_dump, per Dan's
6804         request.
6806 2001-10-17 22:08  gregor
6808         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm:
6809           * Now handles label-and-comment-only lines.
6811 2001-10-17 22:04  bdwheele
6813         * interpreter.c: added more comprehensive trace output
6815 2001-10-17 16:50  tom
6817         * Makefile.in: Removed the explicit rule for building mops.o from
6818         mops.c so that the implicit rule for compiling C files is used
6819         instead. This means that the chosen C flags are used, including any
6820         optimisation options.
6822 2001-10-17 15:24  tom
6824         * core.ops, Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm: Enhanced the
6825         op explosion logic to be able to handle exploding this:
6827           sub(i, i|ic, i|ic)
6829         into these:
6831           sub(i, i, i)
6832           sub(i, i, ic)
6833           sub(i, ic, i)
6835         without also generating this unwanted version:
6837           sub(i, ic, ic)
6839         The enhanced version rejects any expansion where there is more than
6840         one expanded argument and all the expanded arguments are constants.
6842 2001-10-17 14:20  simon
6844         * Makefile.in, ops2c.pl, ops2pm.pl, examples/assembly/Makefile:
6845         Build fixes to use correct Perl version and ensure that things are
6846         running in the right directory.
6848         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
6850 2001-10-17 13:16  simon
6852         * Makefile.in:
6853         core.pm is more critical than that.
6855 2001-10-17 13:05  simon
6857         * core.ops, Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm:
6858         "Explode" ops into multiple versions for different parameters.
6860         Courtesy of: Tom Hughes <tom@compton.nu>
6862 2001-10-17 12:54  simon
6864         * Makefile.in:
6865         Fix dependencies and cleaning.
6867 2001-10-17 12:45  simon
6869         * Configure.pl, Makefile.in:
6870         Fixes to make Parrot compile without the temporary build hack
6872         Courtesy of: Jason Gloudon <perl@gloudon.com>
6874 2001-10-16 20:43  gregor
6876         * Makefile.in:
6877           * Fixed dependencies for building Parrot/OpLib/core.pm
6879 2001-10-16 19:35  bdwheele
6881         * core.ops, t/op/string.t: Changed set s,sc to use string_copy &
6882         added test, thanks to Alex Gough
6884 2001-10-16 16:49  bdwheele
6886         * core.ops: added opcode variants for constants and 3 arg concat
6888 2001-10-16 15:12  bdwheele
6890         * core.ops: added "set Sx,Sy" as a string copy to match the other
6891         register-to-register copies available
6893 2001-10-16 13:09  gregor
6895         * core.ops:
6896           * Added #include <sys/time.h> in the preamble for gettimeofday().
6898 2001-10-16 13:09  gregor
6900         * Makefile.in:
6901           * Removed cd t; make, which no longer applies
6903 2001-10-16 03:18  bdwheele
6905         * core.ops: fix save & restore operations to push correct type onto
6906         stack. [good eye to Jason Gloudon for noticing this]
6908 2001-10-16 01:38  bdwheele
6910         * core.ops, register.c, examples/assembly/fact.pasm,
6911         include/parrot/register.h: send in the clones:  clone routines for
6912         parrot + example program
6914 2001-10-15 22:37  gregor
6916         * MANIFEST, Makefile.in, examples/assembly/.cvsignore,
6917         examples/assembly/Makefile, examples/assembly/bsr.pasm,
6918         examples/assembly/call.pasm, examples/assembly/euclid.pasm,
6919         examples/assembly/jump.pasm, examples/assembly/local_label.pasm,
6920         examples/assembly/mops.pasm, examples/assembly/stack.pasm,
6921         examples/assembly/substr.pasm, examples/assembly/trace.pasm,
6922         t/.cvsignore, t/Makefile, t/call.pasm, t/euclid.pasm, t/jump.pasm,
6923         t/local_label.pasm, t/test.pasm, t/test2.pasm, t/test3.pasm,
6924         t/test4.pasm, t/test5.pasm, t/trace.pasm:
6925           * Moved examples from t/*.pasm to examples/assembly/*.pasm, with
6926         some
6927             renames so the names match what they demonstrate.
6929 2001-10-15 22:18  gregor
6931         * core.ops, t/test.pasm:
6932           * time_n uses gettimeofday() to get sub-second times.
6934           * t/test.pasm uses time_n directly rather than doing int stuff
6935         and
6936             converting to num later.
6938 2001-10-15 12:28  gregor
6940         * t/: test.pasm, test2.pasm, trace.pasm:
6941           * t/test.pasm prints using string constants instead of string
6942         regs.
6944           * t/test2.pasm assembles (using implicit op modes)
6946           * t/trace.pasm updated for new behavior of trace_ic, which does
6947         not
6948             require an 'end' after 'trace'.
6950 2001-10-15 00:47  gregor
6952         * core.ops, interpreter.c, test_main.c,
6953         include/parrot/interpreter.h, t/test.pasm:   * New interpreter flag
6954         PARROT_PROFILE_FLAG
6956           * New runops cores to handle profiling
6958           * Support for -p flag in test_prog to enable profiling
6960           * New profile_ic op to control profiling at run-time
6962 2001-10-14 21:54  gregor
6964         * core.ops, Parrot/OpsFile.pm, docs/.cvsignore, docs/Makefile,
6965         lib/Parrot/OpsFile.pm: Integrated op documentation.
6967           * core.ops now contains POD documentation of ops, interspersed
6968         with the
6969             ops themselves
6971           * Ops are organized into POD =head2 sections
6973           * Parrot/OpsFile.pm now treats the preamble of the ops file as
6974         anything
6975             up to the first POD directive OR op definition.
6977           * docs/Makefile now generates core_ops.pod from core.ops vi
6978         perldoc -u.
6980 2001-10-14 11:58  simon
6982         * Makefile.in:
6983         Unbreak Digital Un^W^WTru64
6985 2001-10-14 11:00  simon
6987         * Configure.pl:
6988         Remove weird typo.
6990 2001-10-14 10:56  tom
6992         * Configure.pl: Stop Configure trying to make op_info.c and op.h as
6993         op_info.c no longer exists and op.h is no longer a generated file.
6995 2001-10-14 10:54  tom
6997         * Makefile.in: Added vtable.h to the list of things removed by the
6998         clean target.
7000 2001-10-14 01:43  gregor
7002         * .cvsignore, MANIFEST, Makefile.in, basic_opcodes.ops,
7003         build_interp_starter.pl, core.ops, disassemble.pl, interpreter.c,
7004         make_op_header.pl, memory.c, opcheck.pl, opcode_table, ops2c.pl,
7005         ops2pm.pl, packfile.c, pbc2c.pl, process_opfunc.pl,
7006         Parrot/Assembler.pm, Parrot/Op.pm, Parrot/OpsFile.pm,
7007         Parrot/OpLib/.cvsignore, lib/Parrot/Assembler.pm, lib/Parrot/Op.pm,
7008         lib/Parrot/OpsFile.pm, lib/Parrot/OpLib/.cvsignore,
7009         include/parrot/.cvsignore, include/parrot/interp_guts.h,
7010         include/parrot/interpreter.h, include/parrot/op.h,
7011         include/parrot/oplib/.cvsignore, t/.cvsignore, t/Makefile,
7012         t/euclid.pasm, t/test.pasm, t/op/integer.t, t/op/number.t,
7013         t/op/stacks.t, t/op/string.t, t/op/trans.t:
7014         Moby Patch:
7016           * basic_opcodes.ops and opcode_table replaced by core.ops
7018           * process_opfunc.pl replaced by Parrot/OpsFile.pm, Parrot/Op.pm,
7019             and ops2c.pl. These convert *.ops to *_ops.c and
7020             include/parrot/oplib/*_ops.h
7022           * New ops2pm.pl converts *.ops to Parrot/OpLib/*.pm
7024           * disassemble.pl modified to use
7026           * interpreter.c modified to use structures in core_ops.c instead
7027             of the old op_info and op_func stuff. We're not yet to the
7028             point of handling multiple oplibs at a time, but we are getting
7029             there...
7031             Fingerprinting stuff disabled for now. We used to go off
7032             opcode_table. We need to rethink this. I have some ideas to
7033             make it unnecessary, but it remains to be seen whether others
7034             will like the direction they take us.
7036             Termination condition for while(){} loop in runops is now
7037             (pc) instead of (*pc). Any op can cause a HALT by returning
7038             a NULL pointer. Ops end, bounds and trace all do this. So, now
7039             the 'end' op body is actually executed, although all it does
7040             is HALT.
7042           * Makefile.in modified to perform a test build using pbc2c.pl,
7043             which is the bytecode --> C compiler I've posted to the
7044             list before.
7046           * Op full names are now autogenerated. Op root names must not
7047             contain underscores, so some op renamings have happened.
7048             Such as clear_i becoming cleari.
7050 2001-10-13 11:49  simon
7052         * Configure.pl, MANIFEST:
7053         Make parrot actually build again.
7055 2001-10-12 21:34  dan
7057         * docs/parrot_assembly.pod: Added docs for the new save/restore/bsr
7058         opcodes
7060 2001-10-12 20:56  dan
7062         * MANIFEST, Makefile.in, basic_opcodes.ops, interpreter.c,
7063         opcode_table, process_opfunc.pl, stacks.c, include/parrot/stacks.h,
7064         t/test3.pasm, t/test4.pasm, t/test5.pasm: Changes to support
7065         generic stack now in. We also have subroutines, of a simple sort!
7067 2001-10-12 19:15  tom
7069         * t/op/string.t: Improved string comparison tests try all string
7070         combinations with each of the comparison ops.
7072 2001-10-12 19:09  dan
7074         * interpreter.c: Properly sets up generic stack now
7076 2001-10-12 19:09  dan
7078         * include/parrot/interpreter.h: Fixed stack chunk struct type in
7079         interpreter structure
7081 2001-10-12 18:59  dan
7083         * stacks.c, include/parrot/parrot.h, include/parrot/stacks.h: More
7084         changes to get the generic stack working
7086 2001-10-12 18:59  dan
7088         * Configure.pl, MANIFEST, config_h.in, testparrotsizes_c.in,
7089         hints/vms.pl: Made the changes to figure out mask bits for various
7090         register and stack chunks
7092 2001-10-11 22:09  dan
7094         * docs/parrot_assembly.pod: Tossed the parameter for return
7096 2001-10-11 19:28  tom
7098         * strnative.c: Assignment, not comparison.  (Plus formatted for
7099         coding standards)
7101         Courtesy of Bryan C. Warnock
7103 2001-10-10 19:21  tom
7105         * basic_opcodes.ops, opcode_table, string.c, strnative.c,
7106         strutf16.c, strutf32.c, strutf8.c, docs/strings.pod,
7107         include/parrot/string.h, t/op/string.t: Added support for string
7108         comparisons and extended the comparison ops to include comparison
7109         of strings.
7111 2001-10-10 17:58  dan
7113         * MANIFEST: Shouldn't have added vtable.h to the manifest...
7115 2001-10-10 17:54  dan
7117         * MANIFEST, stacks.c, vtable_h.pl, Parrot/Vtable.pm,
7118         lib/Parrot/Vtable.pm: Now spits out the #defines for the various
7119         vtable type entries properly
7121 2001-10-10 15:37  dan
7123         * Parrot/Vtable.pm, lib/Parrot/Vtable.pm: Re-enabled change to
7124         parse new vtable.tbl file now that I've actually checked *in* the
7125         new format vtable.tbl file...
7127 2001-10-10 15:32  dan
7129         * vtable.tbl: New Column to indicate the type of the vtabel entry
7130         so we can know how many slots it takes
7132 2001-10-10 05:26  thgibbs
7134         * Parrot/Vtable.pm, lib/Parrot/Vtable.pm, vtable_h.pl: Patch to
7135         allow parrot to compile.  PACKAGE is not defined, therefore, I
7136         added a struct before it to have it not complain until we define
7137         PACKAGE.  Also, there was an extra shift in Vtable.pm and a missing
7138         semicolon at the end of the struct declaration.
7140 2001-10-10 05:09  thgibbs
7142         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm: This patch makes
7143         string constants of the form U"string" become unicode encoded
7144         parrot strings and the form N"string" become native encoded parrot
7145         strings.
7147         Courtesy of: Tom Hughes <tom@compton.nu>
7149 2001-10-10 04:55  dan
7151         * vtable_h.pl, Parrot/Vtable.pm, lib/Parrot/Vtable.pm: Start of
7152         support for generating the vtable function table offset macros
7154 2001-10-10 01:05  simon
7156         * t/op/integer.t:
7157         The test for cmod_i was using the 'mod Ix, Ix, Ix' form which
7158         compiles into the mod op, not the cmod_i op, hence wasn't testing
7159         what it thought it was.
7161         Courtesy of: Alex Gough <alexander.gough@st-hughs.oxford.ac.uk>
7163 2001-10-09 03:45  thgibbs
7165         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm: Patch to allow
7166         assembler to generate unicode strings.
7168         Courtesy of: Tom Hughes <tom@compton.nu>
7170 2001-10-08 19:30  brentdax
7172         * Configure.pl, test_c.in, hints/vms.pl: Cleaner VMS support, more
7173         info for Parrot::Config to remember, more flexible test.c stuff
7175 2001-10-08 15:04  gregor
7177         * basic_opcodes.ops:
7178           * Removed trash from early mod_i experiments (pardon our dust)
7180 2001-10-08 14:56  gregor
7182         * basic_opcodes.ops:
7183           * Fixed a couple of typos.
7185 2001-10-08 14:45  gregor
7187         * basic_opcodes.ops, opcode_table, t/op/integer.t, t/op/number.t:
7188         Arithmetic enhancements:
7190           * Renamed existing mod_i as cmod_i and added "corrected" mod_i:
7192             NOTE: This "uncorrected mod" algorithm uses the C language's
7193         built-in
7194             mod operator (x % y), which is
7196                 ... the remainder when x is divided by y, and thus is zero
7197         when y
7198                 divides x exactly.
7199                 ...
7200                 The direction of truncation for / and teh sign of the
7201         result for %
7202                 are machine-dependent for negative operands, as is the
7203         action taken
7204                 on overflow or underflow.
7205                                                                      --
7206         [1], page 41
7208             Also:
7210                 ... if the second operand is 0, the result is undefined.
7211         Otherwise, it
7212                 is always true that (a/b)*b + a%b is equal to z. I both
7213         operands are
7214                 non-negative, then teh remainder is non-negative and
7215         smaller than the
7216                 divisor; if not, it is guaranteed only that the absolute
7217         value of the
7218                 remainder is smaller than the absolute value of the
7219         divisor.
7220                                                                      --
7221         [1], page 205
7223             This op is provided for those who need it (such as
7224         speed-sensitive
7225             applications with heavy use of mod, but using it only with
7226         positive
7227             arguments), but a more mathematically useful numeric mod based
7228         on
7229             floor(x/y) and defined with y == 0 is provided by the mod_i op.
7231               [1] Brian W. Kernighan and Dennis M. Ritchie, *The C
7232         Programming
7233                   Language*, Second Edition. Prentice Hall, 1988.
7235           * Added "corrected" mod_i:
7237             NOTE: This "corrected mod" algorithm is based on the C code on
7238         page 70
7239             of [1]. Assuming correct behavior of C's built-in mod operator
7240         (%) with
7241             positive arguments, this algorithm implements a mathematically
7242         convenient
7243             version of mod, defined thus:
7245               x mod y = x - y * floor(x / y)
7247             For more information on this definition of mod, see section 3.4
7248         of [2],
7249             pages 81-85.
7251             References:
7253               [1] Donald E. Knuth, *MMIXware: A RISC Computer for the Third
7254                   Millennium* Springer, 1999.
7256               [2] Ronald L. Graham, Donald E. Knuth and Oren Patashnik,
7257         *Concrete
7258                   Mathematics*, Second Edition. Addison-Wesley, 1994.
7260           * Added mod_n, using the same formula as above, but with FLOATVAL
7261             arguments.
7263           * Added cmod_n, using the C math library's fmod() function:
7265             NOTE: This "uncorrected mod" algorithm uses the built-in C math
7266         library's
7267             fmod() function, which computes
7269                 ... the remainder of dividing x by y. The return value is x
7270         - n * y,
7271                 where n is the quotient of x / y, rounded towards zero to
7272         an
7273                 integer.
7274                                                 -- fmod() manpage on RedHat
7275         Linux 7.0
7277             In addition, fmod() returns
7279                 the remainder, unless y is zero, when the function fails
7280         and errno
7281                 is set.
7283             According to page 251 of [1], the result when y is zero is
7284         implementation-
7285             defined.
7287             This op is provided for those who need it, but a more
7288         mathematically
7289             useful numeric mod based on floor(x/y) instead of truncate(x/y)
7290         and
7291             defined with y == 0 is provided by the mod_n op.
7293               [1] Brian W. Kernighan and Dennis M. Ritchie, *The C
7294         Programming
7295                   Language*, Second Edition. Prentice Hall, 1988.
7297           * Added and modified tests as appropriate for the above.
7299 2001-10-08 08:49  thgibbs
7301         * include/parrot/exceptions.h, include/parrot/parrot.h,
7302         include/parrot/string.h, include/parrot/strutf16.h,
7303         include/parrot/strutf32.h, include/parrot/strutf8.h,
7304         include/parrot/transcode.h, include/parrot/unicode.h, MANIFEST,
7305         Makefile.in, global_setup.c, string.c, strnative.c, transcode.c,
7306         strutf16.c, strutf32.c, strutf8.c: Added code to handle unicode
7307         strings for utf8, utf16, and utf32.
7309         Courtesy of: Tom Hughes <tom@compton.nu>
7311 2001-10-08 08:10  thgibbs
7313         * memory.c: Fixed uninitialized variables.
7315         Courtesy of: Bryan C. Warnock <bwarnock@raba.com>
7317 2001-10-08 01:21  gregor
7319         * packfile.c:   * Casting a return value
7321           * Potential uninitialized variable fix
7323         Courtesy of Bryan C. Warnock <bwarnock@raba.com>
7325 2001-10-08 01:15  gregor
7327         * packfile.c, test_main.c: One of Bryan's languishing patches (with
7328         a few tweaks of my own):
7330           * Line wrapping
7332           * Printf format fixes
7334         Courtesy of: Bryan C. Warnock <bwarnock@raba.com>
7336 2001-10-07 22:39  thgibbs
7338         * build_interp_starter.pl: No longer adds (void*) casts to
7339         interp_guts.c function table as they are not necessary in ANSI C.
7341 2001-10-07 16:27  gregor
7343         * basic_opcodes.ops, interpreter.c, opcode_table,
7344         process_opfunc.pl, test_main.c, include/parrot/interpreter.h,
7345         t/trace.pasm:
7346           * Two new ops, trace_ic and bounds_ic that twiddle bits in
7347             interpreter->flags and set interpreter->resume_addr.
7349           * Two new runops core variants, so now we cover the relevant
7350             flag space over {trace, notrace} x {boundscheck, noboundscheck}
7352           * Runops core selection that converts the flags into an index
7353         into
7354             a core table (runops_cores) to get the core function pointer.
7356           * A new trace_op variant that doesn't do bounds checking (used by
7357             the non-bounds-checking-but-tracing runops core).
7359           * PC is passed into the cores so that they can be used when
7360             resuming (they used to assume starting at the beginning of the
7361             code, which would thwart resumption).
7363           * runops() itself is changed to have a while() loop in it so that
7364             any time we drop out of the core, we'll resume if we have an
7365             interpreter->resume_addr set (after reselecting the core,
7366         though).
7368           * process_opfunc.pl has a new "macro": RESUME(), that sets up
7369             interpreter->resume_addr. This is used by the new ops. The new
7370             ops still return the new PC as the next op (which MUST be an
7371             'end' op to force the core loop to terminate -- *pc being false
7372             is the only termination condition we can count on for all
7373         cores).
7375           * New interpreter flag: PARROT_BOUNDS_FLAG, used to control
7376             bounds checking core selection.
7378           * test_prog now has a '-b' flag in addition to the '-t' flag.
7379         Now,
7380             bounds checking is off by default (I saw a performance boost:
7381             6.3 Mop/s with -b, 7.0 Mop/s without).
7383           * A new sample/test program: t/trace.pasm that twiddles the trace
7384             flag while it is running.
7386 2001-10-07 15:41  gregor
7388         * .cvsignore, Makefile.in, build_interp_starter.pl, interpreter.c,
7389         include/parrot/.cvsignore, include/parrot/interpreter.h:
7390         Now that 0.0.2 is released, I can clear out the backlog of approved
7391         but uncommitted patches. Here's one Dan approved on 2001-09-21
7392         (Simplified DO_OP):
7394           * test_prog and pdump are linked with only the files the need,
7395         not
7396             al the files.
7398           * build_interp_starter.pl writes out op_info.[hc], too. These
7399         files
7400             contain op name, arg count and arg type information. This will
7401         be
7402             useful for multiple things in the future, including better
7403         trace
7404             output and the crystalizing loader.
7406           * The DO_OP macro is now simpler and doesn't require explicit
7407             temporaries.
7409           * interpreter.c is modified to use the new op info in tracing
7410         output.
7412           * The interpreter just points its opcode_funcs and opcode_info
7413             members at the default tables rather than allocating memory on
7414             the fly.
7416 2001-10-07 03:58  thgibbs
7418         * include/parrot/.cvsignore, vtable_h.pl: Minor updates fixing a
7419         comment and adding vtable.h to .cvsignore as it is produced by
7420         vtable_h.in
7422 2001-10-06 20:58  thgibbs
7424         * vtable.tbl: Added * to REGEX type.
7426         Courtesy of Bryan C. Warnock <bwarnock@raba.com>
7428 2001-10-06 13:41  simon
7430         * MANIFEST, Makefile.in, vtable.tbl, vtable_h.pl, Parrot/Vtable.pm,
7431         include/parrot/parrot.h, lib/Parrot/Vtable.pm:
7432         Framework for vtable functions.
7434 2001-10-06 06:52  thgibbs
7436         * make_op_header.pl: Removed confusing and unused typedef.
7438 2001-10-06 06:31  thgibbs
7440         * Parrot/Opcode.pm, lib/Parrot/Opcode.pm: Removed variables that
7441         are no longer used.
7443 2001-10-06 06:26  thgibbs
7445         * disassemble.pl: Changed intval to op in disassembler.
7447 2001-10-06 06:21  thgibbs
7449         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm: Fixed typo with
7450         Assembler, local labels, and integer constants.
7452 2001-10-06 03:11  ask
7454         * Makefile.in: make `make test` actually run the tests on
7455         darwin/macosx
7457 2001-10-06 02:04  thgibbs
7459         * Parrot/Assembler.pm, Parrot/Opcode.pm, Parrot/PackFile.pm,
7460         Parrot/String.pm, Parrot/PackFile/ConstTable.pm,
7461         Parrot/PackFile/Constant.pm, include/parrot/packfile.h,
7462         include/parrot/register.h, lib/Parrot/Assembler.pm,
7463         lib/Parrot/Opcode.pm, lib/Parrot/PackFile.pm, lib/Parrot/String.pm,
7464         lib/Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/Constant.pm,
7465         t/op/integer.t: No, it didn't mess anything up.  I just forgot to
7466         type make. :)
7468 2001-10-06 02:02  thgibbs
7470         * Parrot/Assembler.pm, Parrot/Opcode.pm, Parrot/PackFile.pm,
7471         Parrot/String.pm, Parrot/PackFile/ConstTable.pm,
7472         Parrot/PackFile/Constant.pm, include/parrot/packfile.h,
7473         include/parrot/register.h, lib/Parrot/Assembler.pm,
7474         lib/Parrot/Opcode.pm, lib/Parrot/PackFile.pm, lib/Parrot/String.pm,
7475         lib/Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/Constant.pm,
7476         t/op/integer.t: oops...this messed something up.  I must have
7477         missed something in the patch...I have reverted.
7479 2001-10-06 01:57  thgibbs
7481         * Parrot/Assembler.pm, Parrot/Opcode.pm, Parrot/PackFile.pm,
7482         Parrot/String.pm, Parrot/PackFile/ConstTable.pm,
7483         Parrot/PackFile/Constant.pm, include/parrot/packfile.h,
7484         include/parrot/register.h, lib/Parrot/Assembler.pm,
7485         lib/Parrot/Opcode.pm, lib/Parrot/PackFile.pm, lib/Parrot/String.pm,
7486         lib/Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/Constant.pm,
7487         t/op/integer.t, Types_pm.in, basic_opcodes.ops, config_h.in,
7488         memory.c, packfile.c, process_opfunc.pl, strnative.c, test_main.c:
7489         This patch ensures that all bytecode is of type opcode_t except for
7490         the constant table constants.  That means that almost all of the
7491         INTVALs in the code were replaced with opcode_t and the i pack type
7492         was replaced with the op pack type in calls to pack_arg and such.
7493         Also, since it has been declared that ALL integer constants are to
7494         be 32 bits, some test cases were changed to ensure that an integer
7495         constant was no bigger than 2 ** 31.
7497         process_opfunc.pl was also cleaned up to no longer look at either
7498         opcode_table or interp_guts.h but gather all of its information
7499         from Opcode.pm.
7501         The Assembler.pm module was changed to do late binding of arguments
7502         so that 0 could be treated like 0.0 without having to be so
7503         declared.  Also, only strings now use the [sc:N] intermediate form
7504         as it was unnecessary for integer and float types.
7506 2001-10-05 21:59  gregor
7508         * MANIFEST, languages/jako/Makefile:
7509         Fixed things due to the movement of little_languages/* to
7510         languages/jako.
7512 2001-10-05 18:31  gregor
7514         * MANIFEST:
7515         Updated MANIFEST to reflect recent additions for Jako.
7517 2001-10-05 17:54  gregor
7519         * languages/jako/: Makefile, bench.jako, euclid.jako, fact.jako,
7520         fib.jako, hello.jako, jakoc, leibniz.jako, mandelbrot.jako,
7521         mops.jako, primes.jako, sub.jako:
7522           * Compiler:
7524               * User-defined subroutines.
7525               * Generates assembly code with the Jako code in comments.
7526               * "end;" no longer required at the end of programs.
7527               * Better handling of const-reg and reg-const.
7528               * Optimizes const-const operations to compile-time
7529         evaluations.
7530               * Constants in addition to variables.
7531               * Arithmetic fixes.
7532               * Allow leading minus signs in integer and number constants
7533         (ahem).
7534               * goto's.
7536           * New sample programs:
7538               * leibniz.jako (based on Greg McCarroll's leibniz.pasm
7539         example)
7540               * mandelbrot.jako (based on Leon Brocard's translation of
7541         Glenn Rhodes' C code)
7542               * mops.jako (based on t/test.pasm)
7543               * primes.jako (based on Leon Brocard's primes.pasm example)
7544               * sub.jako (demonstrates a simple user-defined subroutine)
7546 2001-10-05 12:54  gregor
7548         * Parrot/Opcode.pm, lib/Parrot/Opcode.pm:
7549           * Removed mysterious extra copy of code after POD.
7551 2001-10-05 12:46  gregor
7553         * basic_opcodes.ops, t/op/string.t:
7554           * Enabled the previously SKIPped test of printing string regs
7555         after
7556             clear_s
7558           * Made print_s do nothing if the STRING pointer in the register
7559         file
7560             is NULL.
7562 2001-10-04 21:19  dan
7564         * Configure.pl: VMS tweaks
7566 2001-10-04 21:17  dan
7568         * hints/vms.pl: Hints file for VMS
7570 2001-10-04 00:58  bdwheele
7572         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm: fixed but in
7573         Assembler which stopped equates from working.
7575 2001-10-03 21:50  gregor
7577         * Makefile.in, docs/.cvsignore, docs/Makefile, docs/parrotbyte.pod:
7579           * More documentation updates for the packfile stuff.
7581 2001-10-03 21:37  gregor
7583         * docs/parrotbyte.pod:
7584           * Pointed the reader at Parrot::PackFile.
7586 2001-10-03 21:34  gregor
7588         * Parrot/PackFile.pm, lib/Parrot/PackFile.pm:
7589           * Updated documentation to match current implementation.
7591 2001-10-03 18:30  gregor
7593         * .cvsignore, disassemble.pl, Parrot/Assembler.pm,
7594         lib/Parrot/Assembler.pm, t/call.pasm, t/euclid.pasm,
7595         t/local_label.pasm, t/test.pasm, t/test2.pasm, t/test3.pasm,
7596         t/op/basic.t:
7597           * Added new syntax to the assembler to allow square-bracket
7598             arithmetic expressions involving (global) labels, the current
7599             instructions base address ('@'), numeric constants (not
7600         equates)
7601             and basic arithmetic operators (+, -, *, / -- although + and -
7602             are likely to be the only ones used in practice).
7604           * Fixed a bug in Parrot/Assemble.pl that caused macro expansion
7605         to
7606             fail (argument passing wasn't working).
7608           * Enabled t/op/basic.t's last test, which is actually a copy of
7609         the
7610             code from t/call.pasm. Now all tests there are enabled and
7611         working.
7613           * Added new example/test program t/call.pasm to demonstrate
7614         working
7615             macros and poor-man's subroutine calls
7617           * Added header comments to t/*.pasm
7619 2001-10-03 18:00  simon
7621         * ChangeLog:
7622         Needed, since it's in the MANIFEST.
7624 2001-10-03 17:56  simon
7626         * t/op/: string.t, time.t:
7627         Small fixes to help Win32 on its way.
7629 2001-10-03 17:41  simon
7631         * MANIFEST, README:
7632         Oops. Tiny bugs.
7634 2001-10-03 17:39  simon
7636         * MANIFEST, NEWS, README:
7637         README, NEWS and MANIFEST? Could it be time for Parrot 0.0.2? I
7638         think so!
7640 2001-10-03 17:21  simon
7642         * basic_opcodes.ops, interpreter.c, packfile.c:
7643         Evil printf bandaid (which allows Sparc64 to pass tests)
7645         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
7647 2001-10-03 16:58  simon
7649         * string.c, t/op/string.t:
7650         chop fixes for n < 0 and tests
7652         Courtesy of: Alex Gough <alex@rcon.org>
7654 2001-10-03 15:51  thgibbs
7656         * interpreter.c: Changed an occurrence of INTVAL to opcode_t
7658         Courtesy of: Bryan C. Warnock <bwarnock@raba.com>
7660 2001-10-02 17:48  dan
7662         * include/parrot/stacks.h: Fix typo in function name
7664 2001-10-02 17:35  dan
7666         * include/parrot/stacks.h: changed to support new stack stuff
7667         coming after 0.02
7669 2001-10-02 15:01  simon
7671         * Configure.pl, Types_pm.in, basic_opcodes.ops, config_h.in,
7672         interpreter.c, make_op_header.pl, memory.c, packfile.c,
7673         process_opfunc.pl, register.c, string.c, strnative.c,
7674         Parrot/Opcode.pm, Parrot/PackFile.pm, Parrot/String.pm,
7675         lib/Parrot/Opcode.pm, lib/Parrot/PackFile.pm, lib/Parrot/String.pm,
7676         Parrot/PackFile/ConstTable.pm, Parrot/PackFile/Constant.pm,
7677         docs/overview.pod, docs/strings.pod, include/parrot/interpreter.h,
7678         include/parrot/memory.h, include/parrot/packfile.h,
7679         include/parrot/parrot.h, include/parrot/register.h,
7680         include/parrot/stacks.h, include/parrot/string.h,
7681         lib/Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/Constant.pm:
7683         The Great Renaming.
7685 2001-10-02 12:49  gregor
7687         * process_opfunc.pl:
7688           * Fixed a tyop:  s/string/integer/ for INT_CONST expansion
7690 2001-10-02 12:40  simon
7692         * basic_opcodes.ops, process_opfunc.pl, register.c,
7693         include/parrot/register.h:
7694         Move preprocessing of register accessors to process_opfunc.pl
7696         Courtesy of: Jason Gloudon <perl@gloudon.com>
7698 2001-10-02 01:20  ask
7700         * README: add a few lines about lists.
7702 2001-10-01 23:00  brentdax
7704         * Configure.pl, Makefile.in, hints/mswin32.pl: Make 'make clean'
7705         work on Win32 (courtesy of Mattia Barbon <mbarbon@dsi.unive.it>)
7707 2001-10-01 22:50  brentdax
7709         * Configure.pl, test_c.in: More changes for 64-bit compatibility
7711 2001-10-01 21:51  simon
7713         * process_opfunc.pl:
7714         Michael Fischer's patch broke conditionals.
7716 2001-10-01 15:38  simon
7718         * process_opfunc.pl:
7719         Small hack to keep process_opfunc.pl from generating extra return()
7720         statements.
7722         Courtesy of: Michael Fischer <michael@visv.net>
7724 2001-10-01 15:32  simon
7726         * Parrot/Opcode.pm, lib/Parrot/Opcode.pm:
7727         Documentation fix.
7729         Courtesy of: Josh Wilmes <josh@hitchhiker.org>
7731 2001-10-01 01:49  simon
7733         * packfile.c:
7734         Simon is an idiot. Don't trust him with your code.
7736         Courtesy of: Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
7738 2001-10-01 00:59  simon
7740         * Parrot/String.pm, lib/Parrot/String.pm:
7741         Was in manifest, but not in CVS.
7743 2001-09-30 21:25  simon
7745         * MANIFEST, Types_pm.in, assemble.pl, basic_opcodes.ops,
7746         disassemble.pl, packfile.c, pdump.c, process_opfunc.pl,
7747         Parrot/Assembler.pm, Parrot/PackFile.pm,
7748         Parrot/PackFile/ConstTable.pm, Parrot/PackFile/Constant.pm,
7749         Parrot/PackFile/FixupTable.pm, lib/Parrot/Assembler.pm,
7750         lib/Parrot/PackFile.pm, lib/Parrot/PackFile/ConstTable.pm,
7751         lib/Parrot/PackFile/Constant.pm, lib/Parrot/PackFile/FixupTable.pm,
7752         include/parrot/packfile.h, include/parrot/string.h:
7753         Move NVs to the constant table.    * Changes to Types_pm.in to make
7754         life easier for some of the      packing/etc. I'm doing elsewhere.
7755         Also, we now pack 'n' as      'i'.
7757           * Moved the guts of assemble.pl to Parrot/Assembler.pm so that
7758             eventually we can use all these tools together inside scripts
7759             rather than call out to the shell to run the programs.
7761           * As I was tracking down problems, I converted the internal
7762             documentation of the assembler to POD from comments.
7764           * Changed the numeric regexp in the assembler to detect leading
7765             signs and trailing exponents.
7767           * Updated basic_opcodes.ops to fetch numeric constants from the
7768             constant table.
7770           * Enhanced the disassembler in a number of ways to make my life
7771             easier while tracking down bugs (try it out). It now puts in
7772             labels for ops that are the destinations of flow control ops.
7774           * packfile.c now has a TRACE_PACKFILE switch that can be set
7775             to get it to print info as it processes. I needed this while
7776             debugging, but I can remove it or change it before committing
7777             if its a problem.
7779           * Updated pdump.c because it was missing a call to init_world().
7781           * Updated process_opfunc.pl to deal with numeric constants
7782             being stored in the constant table instead of inline.
7784           * Added multiple type support to Parrot/PackFile/Constant.pm
7786           * Added Parrot/String.pm, to be used for constants.
7788           * Added packfile.[hc] functions for allocating new constants
7789             of various types.
7791           * Made string_copy visible to the world in parrot/string.h.
7793         Wow.
7795         Courtesy of: Gregor N. Purdy <gregor@focusresearch.com>
7797 2001-09-29 15:56  gregor
7799         * languages/jako/Makefile:
7800         Removed assumption that '.' is on the path.
7802 2001-09-29 15:55  gregor
7804         * languages/jako/Makefile:
7805         Removed references to leibnitz test program.
7807 2001-09-29 15:21  thgibbs
7809         * t/op/trans.t, basic_opcodes.ops: Added NV casts to transcendental
7810         math ops args to work on Solaris.
7812 2001-09-27 15:15  thgibbs
7814         * assemble.pl: Added case insensitive matches to hex and binary
7815         characters
7817         Courtesy of: Johnathan Scott Duff <duff@cbi.tamucc.edu>
7819 2001-09-27 04:46  thgibbs
7821         * assemble.pl: This patch makes integer constants of the form
7822         0b[01]+ work with perl 5.005.  The oct function in versions of perl
7823         before 5.6 did not handle the 0b numeric prefix; therefore, it was
7824         returning 0.  To fix this, I added a from_binary function that
7825         would take a binary string and return its decimal representation.
7826         Now, instead of blindly calilng oct, it makes a distinction between
7827         0/0x numbers and 0b numbers.
7829 2001-09-26 19:30  thgibbs
7831         * assemble.pl: Error now returns a non-zero status
7833         Courtesy of: Andrew Kuchling <akuchlin@mems-exchange.org>
7835 2001-09-26 19:13  gregor
7837         * MANIFEST, Makefile.in, basic_opcodes.ops, bytecode.c,
7838         interpreter.c, packfile.c, pdump.c, test_main.c,
7839         include/parrot/bytecode.h, include/parrot/interpreter.h,
7840         include/parrot/packfile.h, include/parrot/parrot.h, t/op/integer.t,
7841         t/op/stacks.t:
7842           * bytecode.[hc] removed. packfile.[hc] are the interface to the
7843             packfile/bytecode file from C. May be renamed in the future.
7845           * packfile.[hc] changed to use 'struct PackFile *', etc. instead
7846             of 'PackFile *', just like the interpreter, etc.
7848           * Constants are accessed via the interpreter's 'code' member
7849             (struct PackFile * code). Macros PCONST(i) and PNCONST are
7850             provided to access constants by index and the number of
7851             constants, respectively (assumes a variable 'interpreter' of
7852             the appropriate type is in scope).
7854           * Byte Code is accessed via the interpreter's 'code' member.
7856           * Changed PackFile_Constant to point to a STRING instead of
7857         having
7858             members for the string_make() arguments. Also has a 'type' IV
7859             in preparation for allowing multiple types of constants in
7860             const_table.
7862           * Removed hardcoded example program from test_main.c. We have
7863             plenty of test programs elsewhere.
7865           * test_prog now uses a PackFile to deal with the program before
7866             sending it on to the interpreter.
7868           * Added missing 'end' ops to some tests in t/op/integer.t and
7869             t/op/stacks.t.
7871 2001-09-26 18:38  thgibbs
7873         * assemble.pl: Separated code into functions and added comments.
7875 2001-09-26 18:29  simon
7877         * config_h.in:
7878         Fix 64-bit chunk-base issue.
7880 2001-09-26 06:55  thgibbs
7882         * t/op/bitwise.t: Added end to bitwise tests.
7884 2001-09-26 00:54  dan
7886         * docs/parrot_assembly.pod: Added in the base for threading, I/O,
7887         and interpreter creation. Skeleton only, but it's something to peer
7888         at.
7890 2001-09-25 21:44  thgibbs
7892         * t/op/trans.t: Removed loops in transcendtal op test.
7894 2001-09-25 10:12  simon
7896         * MANIFEST, t/op/basic.t, t/op/bitwise.t, t/op/integer.t,
7897         t/op/string.t, t/op/time.t:
7898         More tests
7900         Courtesy of: Alex Gough <alex@rcon.org>
7902 2001-09-24 19:08  gregor
7904         * t/op/number.t:
7905           * Enabled the clear_n test.
7907 2001-09-24 18:56  gregor
7909         * Parrot/.cvsignore:
7910           * Ignore the generated Types.pm file.
7912 2001-09-24 18:52  gregor
7914         * languages/jako/Makefile, t/op/number.t:
7915           * No need to skip the inc and dec numeric tests anymore. I fixed
7916         the
7917             assembler earlier today.
7919 2001-09-24 18:21  simon
7921         * MANIFEST, t/op/stacks.t:
7922         Oops.
7924 2001-09-24 18:19  simon
7926         * build_interp_starter.pl, interpreter.c, string.c, Parrot/Test.pm,
7927         include/parrot/exceptions.h, include/parrot/interpreter.h,
7928         lib/Parrot/Test.pm, t/op/string.t:
7929         1) captured error output, so can test errors, this might be bad,
7930         not sure.  2) basic tests for register stack frames, including some
7931         errors 3) I think we can stop skipping one of the string tests 4) I
7932         added some more substr tests, but substr was broken, so 5) changed
7933         substr to work with out of range values, or 6) throw an error if
7934         they're far too silly
7936         Courtesy of: Alex Gough <alex@rcon.org>
7938 2001-09-24 17:27  gregor
7940         * basic_opcodes.ops, opcode_table, t/op/number.t:
7941           * Op set_n was missing. Added it and a test for it. We now have
7942         the
7943             same int and num ops, except mod is int-only.
7945 2001-09-24 17:01  gregor
7947         * assemble.pl:
7948           * Fixed a typo: s/Line/line/
7950 2001-09-24 16:02  gregor
7952         * basic_opcodes.ops:
7953           * Fixed dec_n_nc opcode, which had += where it should have had
7954         -=.
7956 2001-09-24 15:34  gregor
7958         * assemble.pl:
7959           * Fixed handling of constants starting with '0' that should not
7960         be
7961             sent through oct(). For example 'set N2 0.1' was being
7962         interpreted
7963             as 'set N2 0' (naughty).
7965             As reported by Leon Brocard <acme@astray.com> in the comments
7966         of
7967             his mandelbrot.pasm example.
7969 2001-09-24 02:21  bdwheele
7971         * assemble.pl: fixed dumb code when --include was not specified.
7973 2001-09-24 02:17  simon
7975         * assemble.pl:
7976         Shit-sweeping.
7978 2001-09-24 01:56  bdwheele
7980         * assemble.pl: * Added --include=dir option to assembler to provide
7981         a path to look for included files.  * Error message of a macro is
7982         defined inside of a macro
7984 2001-09-23 21:29  bdwheele
7986         * assemble.pl: Added __FILE__ equate, fixed __LINE__ equate.
7988 2001-09-23 15:50  simon
7990         * Configure.pl:
7991         Fixed typo. Parrot might work again on non-8.3 filesystems. :)
7993 2001-09-23 02:03  ask
7995         * Configure.pl, test_c.in: fix missing newline at the end of test.c
7996         Courtesy of: acme@astray.com (Leon Brocard)
7998         rename 'test' executable used in Configure process to test_siz.
8000 2001-09-23 01:03  simon
8002         * process_opfunc.pl:
8003         iPaq fix. No, really.
8005 2001-09-23 00:47  simon
8007         * MANIFEST:
8008         Missed several, in fact.
8010 2001-09-23 00:46  simon
8012         * MANIFEST:
8013         Missed one.
8015 2001-09-22 21:13  simon
8017         * assemble.pl:
8018         Assembler register numbering rigour.
8020         Courtesy of: Leon Brocard <acme@astray.com>
8022 2001-09-22 18:20  simon
8024         * Makefile.in, lib/Test/More.pm, lib/Test/Simple.pm,
8025         lib/Test/Utils.pm:
8026         I'm sick of having to install Test::More everywhere. Temporary
8027         measure until we remove this silly dependency.
8029         Also a typo in Makefile.in which suggests some things were only
8030         happening correctly by sheer chance. :)
8032 2001-09-22 18:06  simon
8034         * README:
8035         test.pasm is dead, long like make test.
8037 2001-09-22 17:47  simon
8039         * t/op/number.t:
8040         De-fang overzealous floating point test.
8042 2001-09-22 17:39  simon
8044         * process_opfunc.pl:
8045         Remove hard-coded NV size assumption. Tru64 is nearly there!
8047 2001-09-22 17:18  simon
8049         * assemble.pl, disassemble.pl:
8050         More portability fixups.
8052 2001-09-22 16:44  simon
8054         * assemble.pl, Parrot/PackFile/Constant.pm,
8055         lib/Parrot/PackFile/Constant.pm:
8056         And I *think* this fixes Tru64.
8058 2001-09-22 16:37  simon
8060         * Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/ConstTable.pm:
8062         Oops.
8064 2001-09-22 16:36  simon
8066         * Parrot/PackFile.pm, Parrot/PackFile/ConstTable.pm,
8067         Parrot/PackFile/Constant.pm, lib/Parrot/PackFile.pm,
8068         lib/Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/Constant.pm:
8070         More removal of hard-coded pack formats.
8072 2001-09-22 15:21  simon
8074         * assemble.pl:
8076         Grrr. Why isn't this working?
8078 2001-09-22 15:18  simon
8080         * Parrot/PackFile.pm, Parrot/PackFile/ConstTable.pm,
8081         lib/Parrot/PackFile.pm, lib/Parrot/PackFile/ConstTable.pm:
8083         Make assemble use the PackFile modules; also fixed some bugs in
8084         them.
8086 2001-09-22 14:38  simon
8088         * Configure.pl, MANIFEST, Types_pm.in, assemble.pl, disassemble.pl:
8090         Abstract the argument and opcode packing types and functions out
8091         into a separate module. This *should* help us maintain consistency
8092         when we change the various types.
8094 2001-09-22 00:46  brentdax
8096         * Configure.pl: Delete test.o (or its equivalent) after Configure's
8097         test program finishes.
8099 2001-09-21 21:24  brentdax
8101         * Parrot/Test.pm, lib/Parrot/Test.pm: Fix error with \ as path
8102         separator (courtesy of Mattia Barbon <mbarbon@dsi.unive.it>)
8104 2001-09-21 21:09  gregor
8106         * Parrot/PackFile/ConstTable.pm, Parrot/PackFile/Constant.pm,
8107         lib/Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/Constant.pm:
8109           * Fixed pad calculation (similar to recent bug fix on C library)
8111 2001-09-21 20:23  simon
8113         * disassemble.pl:
8114         Pack types and sizes have gone askew.
8116 2001-09-21 20:18  brentdax
8118         * Configure.pl: Fix typo in setting stuff from the C test program
8120 2001-09-21 10:25  simon
8122         * basic_opcodes.ops, process_opfunc.pl:
8123         Document patches.
8125         Courtesy of: Leon Brocard <acme@astray.com>
8127 2001-09-21 06:06  ask
8129         * Config_pm.in, assemble.pl: fix 5.005_03.
8131 2001-09-21 06:03  ask
8133         * Configure.pl: make the ivsize detection work for us normal people
8134         without . in our PATH.  :-)
8136 2001-09-21 05:56  brentdax
8138         * test_main.c: Change _read to read for portability to Tru64
8139         (Damien Neil <neild@misago.org> and likely many others)
8141 2001-09-21 05:46  ask
8143         * Makefile.in: "update" target to update from cvs.
8145 2001-09-21 05:44  brentdax
8147         * Configure.pl, test_c.in: Fix issues with ivsize and nvsize
8149 2001-09-21 02:43  brentdax
8151         * Configure.pl: Fix a typo that forced the -g flag on
8153 2001-09-20 22:41  dan
8155         * packfile.c: Had some no-value returns. Naughty
8157 2001-09-20 22:40  dan
8159         * t/test.pasm: Added labels to output
8161 2001-09-20 15:39  simon
8163         * Parrot/Opcode.pm, Parrot/Test.pm, lib/Parrot/Opcode.pm,
8164         lib/Parrot/Test.pm:
8165         This patch does two only somewhat related things.
8167         Parrot/Opcode.pm:  Change the hard-wired assumption that sizeof(nv)
8168         = 2*sizeof(iv) to a PConfig-type computed value.
8170         Parrot/Test.pm:  Change it to run with the perl that was used to
8171         generate this version of Parrot.  This is useful if, for example,
8172         you want to use bleadperl to build and test parrot (e.g. to try out
8173         various 64-bit options) but you still have a 5.6.x (or 5.005_xx)
8174         installed as the default 'perl' on your system.  Since perl-5.7.x
8175         is installed 'version-only', a plain 'perl' is quite likely to pick
8176         up the older perl in such cases. Such an older perl might well not
8177         understand pack('q') used in the assembler.
8179         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
8181 2001-09-20 15:14  gregor
8183         * packfile.c:
8184           * Fixed a typo in pad calculation that throwing off unpack and
8185         pack.
8187 2001-09-20 15:03  thgibbs
8189         * t/op/integer.t: Removed overflow tests from integer.t.  set_i_ic
8190         tests now cover all registers.
8192         Courtesy of: Damien Neil neild@misago.org
8194 2001-09-20 14:48  thgibbs
8196         * process_opfunc.pl: Changed process_opfunc.pl to work on 64 bit
8197         machines.
8199 2001-09-20 14:35  simon
8201         * Configure.pl, assemble.pl:
8202         Pack IVs correctly.
8204         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
8206 2001-09-20 14:06  gregor
8208         * languages/jako/jakoc:
8209           * Fixed a tyop in the string interpolation regex.
8211         Courtesy of Michael L Maraist <maraist@UDel.Edu>
8213 2001-09-20 13:56  gregor
8215         * languages/jako/jakoc:
8216           * Updated jakoc to work with the single-destination comp ops.
8218 2001-09-20 05:08  bdwheele
8220         * assemble.pl: macro expansion.  Here's the test macro I was using:
8222         # this uses I32,I31 as temporaries.  # macro must be preceeded by a
8223         label.  testi       macro   num,got,want    print   "Test #"
8224         print   num     print   "..."   set     I32,want        set
8225         I31,got         eq      I32,I31,$ok     print   "NG\n"  branch
8226         $end $ok:       print   "OK\n" $end:    endm
8228         It is invoked as:
8230         Test1:  testi   1,I3,I2
8232 2001-09-20 03:52  dan
8234         * stacks.c, include/parrot/stacks.h: Preliminary files for the
8235         generic stack support
8237 2001-09-20 02:49  bdwheele
8239         * assemble.pl: Added include processing to assemble.pl  the syntax
8240         is: include 'file.to.include'
8242 2001-09-19 23:57  thgibbs
8244         * t/op/integer.t, t/op/number.t, assemble.pl, opcode_table: Fixed
8245         opcode_table listing of if_i_ic and if_n_ic.  Dan had changed the
8246         function to only use 2 args, but the opcode_table still had three
8247         listed.  Fixed integer.t and number.t to use the new comparison
8248         operators.  Improved assemble.pl ability to grok operators by
8249         constructing a function set and comparing operator types.
8251 2001-09-19 22:42  dan
8253         * assemble.pl: Binmodes the output filehandles now. (No more
8254         bytecode munching...)
8256 2001-09-19 22:32  dan
8258         * Configure.pl, basic_opcodes.ops, opcode_table, process_opfunc.pl,
8259         t/euclid.pasm, t/test.pasm, t/test2.pasm: Changed opcodes so
8260         conditional branches take a single argument, and fall through
8261         otherwise.
8263 2001-09-19 21:19  thgibbs
8265         * memory.c: Added explanation of mem_allocate_aligned give by Dan
8266         Sugalski
8268         Courtesy of: Josh Wilmes <josh@hitchhiker.org>
8270 2001-09-19 21:04  thgibbs
8272         * include/parrot/interpreter.h, Configure.pl,
8273         build_interp_starter.pl, bytecode.c, config_h.in, interpreter.c,
8274         process_opfunc.pl: Changed opcode_t from a union to a configurable
8275         type.
8277 2001-09-19 20:54  thgibbs
8279         * assemble.pl: Missed a couple of changes for 64 bit portability.
8281 2001-09-19 20:37  gregor
8283         * packfile.c, include/parrot/packfile.h:
8284           * Added "methods" for setting and getting all the various
8285         attributes,
8286             probably sufficient for an assembler to use the library.
8288 2001-09-19 20:04  thgibbs
8290         * assemble.pl: Modifications to run on 64 bit platforms.  To run on
8291         a 64 bit platform manually change the  setting for 'i' from 'l' to
8292         'q'.  This should be automatically done by a Configure setting in
8293         the near future.
8295 2001-09-19 19:10  thgibbs
8297         * config_h.in: changed c++ comment to c comment.
8299         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
8301 2001-09-19 17:48  gregor
8303         * .cvsignore, MANIFEST, Makefile.in, packfile.c, pdump.c,
8304         include/parrot/packfile.h:
8305           * C code for dealing with PackFiles as if they were objects.
8306         Mostly
8307             read-only interface for now, but it would not be hard to make
8308         it
8309             read-write. [packfile.c, include/parrot/packfile.h]
8311           * PackFile Dumping program that falls short of disassembling, but
8312             tests the above code and provides a hex listing of the byte
8313         code
8314             contents of the PackFile. [pdump.c]
8316           * New Makefile target 'pdump' for the above program, and related
8317             Makefile.in changes.
8319           * Updated MANIFEST to reflect the added files
8321           * Update .cvsignore to ignore pdump.
8323 2001-09-19 14:55  thgibbs
8325         * MANIFEST: Added number.t and trans.t to MANIFEST
8327 2001-09-19 05:40  thgibbs
8329         * process_opfunc.pl: Now taking & of opcode_t instead of i member
8330         of union opcode_t.  I hope this will be more portable for set_n_nc.
8332 2001-09-19 05:39  thgibbs
8334         * t/op/integer.t: Added end to test 1.
8336 2001-09-19 00:09  thgibbs
8338         * t/op/number.t: Added end to each test
8340 2001-09-19 00:00  simon
8342         * t/op/number.t:
8343         Number tests! Wooo!
8345         Courtesy of: Damien Neil <neild@misago.org>
8347 2001-09-18 23:52  thgibbs
8349         * interpreter.c: Added casts to appropriate types to make -Wall not
8350         complain on certain printf formats
8352 2001-09-18 23:31  thgibbs
8354         * t/op/integer.t: Added end to each test.
8356 2001-09-18 22:54  thgibbs
8358         * t/op/trans.t: Added trans.t for transcendental math function
8359         tests.
8361 2001-09-18 22:28  simon
8363         * MANIFEST:
8364         MANIFEST updates. (And notice how I carefully snuck in the
8365         t/op/integer.t there...)
8367         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
8369 2001-09-18 22:26  simon
8371         * t/: integer.t, op/integer.t:
8372         Except it doesn't go there. Duh.
8374 2001-09-18 22:25  simon
8376         * t/integer.t:
8377         Tests for integer ops.
8379         Courtesy of: Damien Neil <neild@misago.org>
8381 2001-09-18 22:03  thgibbs
8383         * include/parrot/bytecode.h, include/parrot/interpreter.h,
8384         build_interp_starter.pl, bytecode.c, config_h.in, interpreter.c,
8385         make_op_header.pl, process_opfunc.pl, test_main.c: Changed IV to
8386         opcode_t union for operators.  This required a few perl script
8387         changes to output the correct type.  There were also some changes
8388         to allow -pedantic in gcc
8390 2001-09-18 21:07  gregor
8392         * disassemble.pl, Parrot/PackFile.pm,
8393         Parrot/PackFile/ConstTable.pm, Parrot/PackFile/Constant.pm,
8394         lib/Parrot/PackFile.pm, lib/Parrot/PackFile/ConstTable.pm,
8395         lib/Parrot/PackFile/Constant.pm:
8396         Converted the disassembler to use the Parrot::PackFile Perl classes
8397         to do its job.
8399 2001-09-18 19:18  brentdax
8401         * Makefile.in: Fix missing functions for real this time.  (I
8402         swear!)
8404 2001-09-18 18:49  brentdax
8406         * Configure.pl: Remove unnecessary -I.. (courtesy of Andy Dougherty
8407         <doughera@lafayette.edu>}
8409 2001-09-18 18:47  brentdax
8411         * Makefile.in: Fix bugs with missing math, etc. functions
8413 2001-09-18 14:42  thgibbs
8415         * strnative.c: Sorry Simon...forgot bustart was a void* not a
8416         char*.
8418 2001-09-18 13:59  thgibbs
8420         * strnative.c: Removed unnecessary IV cast in concat.
8422 2001-09-18 13:58  thgibbs
8424         * t/op/string.t: Removed unnecessary IV cast in concat.  Added end
8425         to concat test in string.t
8427 2001-09-18 12:07  gregor
8429         * languages/jako/jakoc:
8430           * var num ... no longer requires assignment
8431           * automatic casting between int and num
8432           * Fixed an error message
8434         Courtesy of: Simon Cozens <simon@cvs.perl.org>
8436 2001-09-18 11:57  simon
8438         * TODO:
8439         Gonna have to start thinking of more things to do, soon.
8441 2001-09-18 10:42  simon
8443         * opcode_table:
8444         Introduce a little more tidiness into the opcode table.
8446 2001-09-18 03:06  gregor
8448         * basic_opcodes.ops, opcode_table, t/euclid.pasm:
8449         Resurrected register-const ops per Dan's request.
8451 2001-09-18 02:20  gregor
8453         * .cvsignore, Configure.pl, MANIFEST, Makefile.in,
8454         build_interp_starter.pl, bytecode.h, events.h, exceptions.h,
8455         global_setup.h, interpreter.h, io.h, memory.h, parrot.h,
8456         process_opfunc.pl, register.h, stacks.h, string.h, strnative.h:
8457         Committed some files that were missed in the last *.h moving
8458         commit.
8460 2001-09-18 02:17  gregor
8462         * include/parrot/.cvsignore: Fixed a typo in .cvsignore.
8464 2001-09-18 02:16  gregor
8466         * include/parrot/: .cvsignore, bytecode.h, events.h, exceptions.h,
8467         global_setup.h, interpreter.h, io.h, memory.h, parrot.h,
8468         register.h, stacks.h, string.h, strnative.h: Added .cvsignore file
8469         missed in last commit for the move of *.h to include/parrot.
8471 2001-09-18 01:32  simon
8473         * t/Makefile:
8474         Trivial "clean" target to t/Makefile.
8476 2001-09-18 01:32  simon
8478         * assemble.pl, build_interp_starter.pl, disassemble.pl,
8479         Parrot/Opcode.pm, lib/Parrot/Opcode.pm:
8480         Change icky Digest::MD5 for nice simple unpack()
8482         Courtesy of: Jonathan Scott Duff <duff@cbi.tamucc.edu>
8484 2001-09-18 00:35  simon
8486         * basic_opcodes.ops, opcode_table, docs/parrot_assembly.pod,
8487         t/op/string.t:
8488         New concat op. Hey, if I'm going to talk about it in an article,
8489         better implement it...
8491 2001-09-17 22:54  gregor
8493         * MANIFEST, Parrot/PackFile.pm, Parrot/PackFile/ConstTable.pm,
8494         Parrot/PackFile/Constant.pm, Parrot/PackFile/FixupTable.pm,
8495         lib/Parrot/PackFile.pm, lib/Parrot/PackFile/ConstTable.pm,
8496         lib/Parrot/PackFile/Constant.pm, lib/Parrot/PackFile/FixupTable.pm:
8498         Functions for reading, writing and manipulating Parrot Pack Files.
8499         NOTE: This is a proposed term based on the fact that the file
8500         contains more than just byte code, and another language (Java)
8501         calls its binary files by a broader notion of what's in them (Class
8502         Files). Since Perl has packages, and since we use pack() to write
8503         them, we'll call them PackFiles (at least for now).
8505         That does, however, beg the question of file extension. Should we
8506         name the files "foo.pack" instead of "foo.pbc"?
8508 2001-09-17 20:23  thgibbs
8510         * interpreter.c, test_main.c: Uncuddled else statements for coding
8511         standard.
8513 2001-09-17 19:57  gregor
8515         * Parrot/Opcode.pm, lib/Parrot/Opcode.pm:
8516         Added a $revision variable, parsing of the CVS Id line in
8517         opcode_table and a &revision() subroutine.
8519 2001-09-17 19:53  gregor
8521         * opcode_table:
8522         Added a CVS Id tag to it.
8524 2001-09-17 18:58  thgibbs
8526         * interpreter.c: Cleared interpreter flags on creation.
8528 2001-09-17 18:38  gregor
8530         * build_interp_starter.pl, bytecode.c, bytecode.h, interpreter.c,
8531         interpreter.h, test_main.c:
8532           * Provides macros in interp_guts.h for setting up arrays with
8533             op names and op arg counts (done via build_interp_starter.pl).
8535             These are used in the op tracing
8537           * The functions in bytecode.[hc] pass around a pointer to the
8538         length
8539             of the bytecode so that later when we get to runops, we know
8540             how much bytecode we've got and we can detect out-of-bounds
8541             jumping. The documentation is updated, too.
8543           * runops in interpreter.c now looks at interpreter->flags to
8544             decide if the core of runops should be runops_trace_core or
8545             runops_notrace_core. These new functions contain just the
8546             while-loop portion of runops. A new function runops_generic
8547             does any other setup (such as checking the bytecode
8548             fingerprint) or wrapup (such as complaining if we ended up
8549             out-of-bounds). NOTE: I didn't know what we should do for
8550             functions in here that are not part of the api, so I gave
8551             them docs with 'TODO' marks mentioning they really aren't
8552             part of the api. Guidance appreciated.
8554           * test_main.c now checks for '-t' arg and sets the tracing flag
8555             on its interpreter instance as appropriate.
8557 2001-09-17 17:47  bdwheele
8559         * assemble.pl: added some default equates, and if they're sub
8560         references, they are computed each time it is referenced.
8562 2001-09-17 16:15  dan
8564         * interpreter.h:
8566         Added flags to the interpreter structure and defined a few.
8568 2001-09-17 15:51  simon
8570         * bytecode.h, string.h:
8571         VAR_SCOPE on globals.
8573 2001-09-17 15:20  simon
8575         * MANIFEST:
8576         Parrot/Opcode.pm, Parrot/Test.pm into MANIFEST.
8578 2001-09-17 15:05  gregor
8580         * t/jump.pasm, MANIFEST:
8581         Added a test program to demonstrate jump_i.
8583 2001-09-17 14:44  thgibbs
8585         * register.c: Fixed register pop not using correct offset (off by
8586         one).
8588         Courtesy of: Philip Kendall <pak@ast.cam.ac.uk>
8590 2001-09-17 13:56  thgibbs
8592         * interpreter.c, register.c: Added code to call Parrot_clear_s
8593         during initialization and Parrot_clear_s and Parrot_clear_p when a
8594         new stack frame is pushed.
8596 2001-09-17 13:51  gregor
8598         * languages/jako/: Makefile, bench.jako, euclid.jako, fact.jako,
8599         fib.jako, hello.jako: Added bench.pasm to "clean"
8601 2001-09-17 13:49  gregor
8603         * languages/jako/: jakoc, Makefile:
8604         Added CVS Id tag.
8606 2001-09-17 13:49  gregor
8608         * languages/jako/jakoc:
8609         Code streamlining.
8611         Courtesy of: Buggs <buggs-perl6@splashground.de>
8613 2001-09-17 13:29  gregor
8615         * MANIFEST, opcheck.pl:
8616         Added an opcode_table checker to make sure that all opcodes listed
8617         there conform to a simple set of naming rules (rules themselves, of
8618         course, are subject to change).
8620 2001-09-17 13:23  thgibbs
8622         * string.c: Modified string.c to correctly use the return value of
8623         realloc.
8625 2001-09-17 05:26  brentdax
8627         * Makefile.in: Making the Makefile smarter
8629 2001-09-16 23:06  brentdax
8631         * hints/mswin32.pl: Finishing the Configure hints
8633 2001-09-16 23:05  brentdax
8635         * Configure.pl, Makefile.in, parrot.h, test_main.c,
8636         Parrot/Opcode.pm, lib/Parrot/Opcode.pm: Win32 compatibility,
8637         Configure hints, 5.005 compatibility, MANIFEST checking
8639 2001-09-16 19:25  bdwheele
8641         * assemble.pl: parrot assembly equates
8643 2001-09-16 18:03  gregor
8645         * Makefile.in:
8646         Added 'test' target to run new test suite.
8648 2001-09-16 17:33  simon
8650         * basic_opcodes.ops:
8651         'not' was being !, rather than ~. Too many Perl programmers here, I
8652         suspect.
8654         Courtesy of: Tom Hughes <tom@compton.nu>
8656 2001-09-16 17:21  simon
8658         * Parrot/Test.pm, lib/Parrot/Test.pm, t/harness, t/op/basic.t,
8659         t/op/string.t:
8660         A *real* test suite!
8662         Courtesy of: "Mattia Barbon" <mbarbon@dsi.unive.it>
8664 2001-09-16 16:49  gregor
8666         * basic_opcodes.ops, opcode_table:
8667         At Dan's request, my new register-constant comparison ops have been
8668         removed.
8670 2001-09-16 16:40  gregor
8672         * languages/jako/jakoc:
8673         Fixed a copy-paste error in one of jakoc's error messages.
8675         Courtesy of: Buggs <buggs-perl6-list@splashground.de>
8677 2001-09-16 16:37  gregor
8679         * languages/jako/jakoc:
8680         Modified comparison implementation to use temporary registers in
8681         the case of register-constant and constant-register comparisons.
8682         This will allow the compiler to emit code that works when the
8683         constant-comparison ops are backed out of Parrot. If the ops ever
8684         make their way back in, then jakoc can emit more efficient code
8685         again.
8687 2001-09-16 16:19  bdwheele
8689         * assemble.pl, t/local_label.pasm: Added local labels ($whatever)
8690         ... though not subroutine based like the documentation wants, they
8691         are local to the last non-local label defined.
8693 2001-09-16 14:02  simon
8695         * MANIFEST:
8696         And remember, when you add stuff, keep the manifest up to date.
8698 2001-09-16 02:55  ask
8700         * Makefile.in: a "shared" target for building libparrot.so
8702 2001-09-16 02:45  thgibbs
8704         * bytecode.c, bytecode.h, events.h, exceptions.h, global_setup.c,
8705         global_setup.h, interpreter.c, interpreter.h, io.h,
8706         make_op_header.pl, memory.c, memory.h, parrot.c, parrot.h,
8707         process_opfunc.pl, register.c, register.h, stacks.h, string.c,
8708         string.h, strnative.c, strnative.h, test_main.c: Updated files to
8709         use the coding standard PDD.  Also changed Perl_Interp to
8710         Parrot_Interp.
8712 2001-09-16 02:21  ask
8714         * README: emphasise the bits about the license not being worked out
8715         yet.
8717 2001-09-15 22:21  simon
8719         * process_opfunc.pl:
8720         basic_opcodes.c should *scream* that it's autogenerated.
8722 2001-09-15 21:58  gregor
8724         * languages/jako/Makefile:
8725         Fixed Makefile to use 'jakoc' instead of 'jako_compiler.pl' to
8726         compile.
8728 2001-09-15 21:58  gregor
8730         * languages/jako/: jako_compiler.pl, jakoc:
8731         Renamed the Jako compiler to jakoc from jako_compiler.pl
8733 2001-09-15 21:51  gregor
8735         * languages/jako/: Makefile, bench.jako, euclid.jako,
8736         jako_compiler.pl:
8737         Added a new bench.jako example based on Leon Brocard's Bench.java.
8739         Jako Compiler:   * fix a bug in assignment handling   * add some
8740         more conditionals to while and if   * revert to using implicit
8741         opcodes in a few cases that were broken     before the assembler
8742         patch went in recently.
8744 2001-09-15 21:46  gregor
8746         * assemble.pl, basic_opcodes.ops, opcode_table:
8747         New ops for register-constant INTEGER comparisons:
8749           {eq,ne,lt,le,gt,ge}_ic_ic
8751         New ops for register-register and register-constant NUMERIC
8752         comparisons:
8754           eq_nc_ic
8755           {ne,lt,le,gt,ge}_{n,nc}_ic
8757         Assembler:
8759           Allow uppercase and underscores in labels.
8761           Tweaks to the op infer code to make it work with the examples
8762         I've been
8763           creating.
8765 2001-09-15 19:16  thgibbs
8767         * README: Updated README to include Configure.pl
8769 2001-09-15 17:05  simon
8771         * build_interp_starter.pl:
8772         Casting happiness
8774         Courtesy of: Jarkko Hietaniemi <jhi@cc.hut.fi>
8776 2001-09-15 16:45  simon
8778         * assemble.pl:
8779         And the same again: Parrot/Opcode.pm wasn't "..-aware".
8781 2001-09-15 16:40  simon
8783         * t/Makefile:
8784         The Parrot/Opcode.pm dependency means we need to do -I.. in the
8785         test Makefile
8787 2001-09-15 12:26  simon
8789         * memory.c:
8790         Fixed to match the coding standards.
8792         Courtesy of: Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
8794 2001-09-15 01:57  ask
8796         * Configure.pl, Makefile.in, Parrot/Opcode.pm,
8797         lib/Parrot/Opcode.pm: make the Makefile use the perl that was used
8798         to run Configure.pl
8800 2001-09-15 01:48  ask
8802         * Parrot/Opcode.pm, lib/Parrot/Opcode.pm: if we need perl 5.6, just
8803         say so. :-)
8805 2001-09-15 01:42  gregor
8807         * languages/jako/: euclid.jako, fact.jako, fib.jako,
8808         jako_compiler.pl:
8809         Compiler: Added variable interpolation in double-quoted strings.
8810         Examples: Made use of variable interpolation.
8812 2001-09-15 01:28  gregor
8814         * Parrot/.cvsignore:
8815         Ignore the Config.pm generated file.
8817 2001-09-15 01:22  gregor
8819         * languages/jako/: .cvsignore, Makefile, euclid.jako, fact.jako,
8820         fib.jako, hello.jako, jako_compiler.pl:
8821         gnp: Added some more sample Jako files and added many more
8822         operators to the compiler. Preparations for supporting all the Math
8823         and bitwise ops.
8825 2001-09-14 19:06  simon
8827         * assemble.pl, build_interp_starter.pl, disassemble.pl,
8828         make_op_header.pl, process_opfunc.pl, Parrot/Opcode.pm,
8829         lib/Parrot/Opcode.pm:
8830         Move common table reading stuff to a module.
8832         Courtesy of: Damien Neil <neild@misago.org>
8834 2001-09-14 17:42  simon
8836         * .cvsignore:
8837         More .cvsignore foo.
8839 2001-09-14 17:40  simon
8841         * assemble.pl, config_h.in:
8842         De-coredump
8844         Courtesy of: Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
8846 2001-09-14 17:38  simon
8848         * assemble.pl, t/Makefile:
8849         Make assemble.pl look in its parent directory if the data files it
8850         needs aren't in the current one. Plus a Makefile that lets "make
8851         foo.pbc" work in t/
8853         Courtesy of: Rocco Caputo <troc@netrus.net>
8855 2001-09-14 16:29  simon
8857         * make_op_header.pl:
8858         Wildly experimental patch to make Parrot compile on FreeBSD. (And
8859         probably segfault everywhere else.)
8861 2001-09-14 15:58  dan
8863         * languages/jako/: euclid.jako, jako_compiler.pl:
8865         Added in the first mini-language that targets Parrot.
8867         Courtesy of: "Gregor N. Purdy" <gregor@focusresearch.com>
8869 2001-09-14 15:20  dan
8871         * memory.c: Was misaligning returned memory. Fixed.
8873 2001-09-14 15:08  simon
8875         * Makefile.in, basic_opcodes.ops, bytecode.c, global_setup.c,
8876         interpreter.c, interpreter.h, memory.c, parrot.c, parrot.h,
8877         register.c, register.h, string.c, string.h, strnative.c,
8878         test_main.c:
8879         Fixes to include <parrot/foo.h>
8881         Courtesy of: Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
8883 2001-09-14 12:05  simon
8885         * strnative.c:
8886         Appease Tru64.
8888 2001-09-14 12:01  simon
8890         * memory.c:
8891         Appease Tru64.
8893 2001-09-14 11:54  simon
8895         * interpreter.c:
8896         Remove lvalue cast.
8898 2001-09-14 11:45  simon
8900         * Configure.pl:
8901         Be 5.005 friendly.
8903 2001-09-14 11:39  simon
8905         * Configure.pl:
8906         Tru64 cc doesn't like -Wall
8908 2001-09-14 10:57  simon
8910         * Config_pm.in, Configure.pl, MANIFEST, Makefile, Makefile.in,
8911         assemble.pl, build_interp_starter.pl, bytecode.c, bytecode.h,
8912         config.h.in, config_h.in, disassemble.pl, interpreter.c:
8913         Configure now generates Makefile
8915         Courtesy of: Brent Dax <brentdax@cpan.org>
8917 2001-09-14 10:08  simon
8919         * t/test3.pasm:
8920         Add "end"
8922         Courtesy of: Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
8924 2001-09-14 10:07  simon
8926         * assemble.pl:
8927                 * uses Getopt::Long for options.  -c is now --checksyntax.
8928         I wasn't
8929         sure how to keep compatible (patches welcome!)         * options
8930         include:                 --help                 --version
8931               --verbose                 --output=file
8932         --listing=file                 --checksyntax         * produces
8933         verbose listing of what the assembler saw :)  Only one nitpick with
8934         it:  unknown symbols are given as 0xffffffff, unfortunately, this
8935         includes symbols which may be defined later in the file (i.e.
8936         forward jumps).
8938         Courtesy of: Brian Wheeler <bdwheele@indiana.edu>
8940 2001-09-14 10:06  simon
8942         * strnative.c:
8943         substr growth fixup
8945         Courtesy of: Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
8947 2001-09-14 10:03  simon
8949         * bytecode.c, global_setup.c, interpreter.c, memory.c, memory.h,
8950         register.c, string.c, strnative.c, test_main.c:
8951         Coding standards conformance
8953         Courtesy of Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
8955 2001-09-14 09:46  simon
8957         * assemble.pl:
8958         Make the assembler grok transcendental maths again.  Courtesy of:
8959         Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
8961 2001-09-13 17:29  simon
8963         * assemble.pl:
8964         Better opcode guessing, from Brian Wheeler. (Again!)
8966 2001-09-13 17:20  dan
8968         * docs/parrot_assembly.pod:
8970         Took out duplicate entries for iton, ntoi, and tostring.
8972 2001-09-13 17:16  simon
8974         * assemble.pl, basic_opcodes.ops, opcode_table:
8975         From Brian Wheeler:
8977         This patch gives the assembler support of '\a','\n','\r','\t', and
8978         '\\' in string constants.
8980         In addition, it changes (for all registers) "I reg %li is ..." to
8981         just the value of the register.  Printing constants is also
8982         supported, but alas, you have to specify the type (print_sc,
8983         print_ic, print_nc).
8985 2001-09-13 15:38  simon
8987         * assemble.pl:
8988         Why don't I actually *test* this stuff before applying it, eh?
8990 2001-09-13 15:34  simon
8992         * TODO, t/euclid.pasm:
8993         From: "Gregor N. Purdy" <gregor@focusresearch.com> Subject: [patch
8994         (really)] Removed opcode qualifers t/euclid.pasm to exercise opcode
8995         inference
8997 2001-09-13 14:42  simon
8999         * assemble.pl:
9000         A new assembler, from Brian Wheeler.
9002 2001-09-13 09:44  simon
9004         * basic_opcodes.ops, interpreter.h, parrot.h, strnative.c,
9005         test_main.c:
9006         Two more from Tom Hughes:     Patch to fix C++ style comments
9007         Patch to remove use of structure constant/cast
9009 2001-09-13 09:39  simon
9011         * TODO, docs/strings.pod:
9012         Update string docs.
9014 2001-09-13 09:36  simon
9016         * Makefile, basic_opcodes.ops:
9017         Tom Hughes      Patch to link with the maths library Tom Hughes
9018          Patch to fix += on rvalue
9020 2001-09-13 08:57  simon
9022         * MANIFEST:
9023         I guess nobody's been using the nightly builds...
9025 2001-09-13 08:27  simon
9027         * assemble.pl, basic_opcodes.ops, opcode_table:
9028         Bitwise ops, from Brian Wheeler.
9030 2001-09-13 08:23  simon
9032         * .cvsignore, t/.cvsignore:
9033         .cvsignore's, from Gregor Purdy.
9035 2001-09-13 08:22  simon
9037         * Makefile:
9038         Euclidean test and test output rearranging from Gregor Purdy.
9040 2001-09-13 08:21  simon
9042         * assemble.pl, basic_opcodes.ops, disassemble.pl, opcode_table:
9043         Math ops from Gibbs Tanton.
9045 2001-09-13 08:14  simon
9047         * basic_opcodes.ops, opcode_table, string.c, string.h, strnative.c,
9048         t/test2.pasm:
9049         String substr op; also rearranged "encoding" to be a vtable
9050         pointer, not an array index. Haven't changed docs to reflect this,
9051         oops.
9053         Simon
9055 2001-09-12 19:48  dan
9057         * t/euclid.pasm: Implementation of Euclid's Algorithm, courtesy of
9058         Gregor Purdy
9060 2001-09-12 19:39  dan
9062         * basic_opcodes.ops, opcode_table: From Gregor Purdy. Adds mod_i.
9064 2001-09-12 19:23  dan
9066         * interpreter.h, parrot.h: Quick placeholder entry for string
9067         function tables
9069 2001-09-12 18:58  dan
9071         * memory.c: Added in a cast to make gcc happy.
9073 2001-09-12 16:44  dan
9075         * docs/parrot_assembly.pod:
9077         PDD describing parrot's assembly language and the opcodes in it
9079 2001-09-12 14:20  dan
9081         * memory.c:
9082         Fixed alignment issues with allocation
9084 2001-09-12 10:54  simon
9086         * Makefile, assemble.pl, bytecode.c, disassemble.pl,
9087         make_op_header.pl, opcode_table, process_opfunc.pl:
9088         Brian Wheeler's big patch:
9090         * Changes the opcode_table file to provide additional information
9091         about the operands.  Case shouldn't be a problem since that data
9092         never becomes a C symbol [this is pretty much as before]
9094         * Padding errors solved:  assemble.pl and bytecode.c were padding
9095         the constants incorrectly.  It should have been 4-(size % 4), not
9096         just (size % 4).  It is now fixed in both places.
9098         * assembler has less special cases, and should be easier to hang
9099         error checking on
9101         * disassembler dumps constant table and the format is a bit
9102         prettier, including register names, etc.
9104 2001-09-11 23:21  dan
9106         * build_interp_starter.pl, interpreter.c:
9108         Abstracted the runops function core into a macro for easy
9109         replacement later.
9111 2001-09-11 10:43  simon
9113         * Configure.pl, MANIFEST, Makefile, config.h, config.h.in:
9114         Configure system from Brent Dax <brentdax@cpan.org>
9116 2001-09-11 09:38  simon
9118         * assemble.pl, test.pbc:
9119         From: Bryan C. Warnock <bwarnock@raba.com> Subject: Patch:
9120         assembler deferred output
9122         Also got rid of the bytecode, since that's probably way out of
9123         date.
9125 2001-09-11 09:26  simon
9127         * basic_opcodes.ops, opcode_table, t/test2.pasm:
9128         From: Bryan C. Warnock <bwarnock@raba.com> Subject: length_s_i
9129         patch
9131 2001-09-10 23:20  simon
9133         * MANIFEST:
9134         And that move needs a MANIFEST change. So many things to remember!
9136 2001-09-10 23:18  simon
9138         * t/: test.pasm, test2.pasm, test3.pasm:
9139         Move tests to t/. (Oh, CVS doesn't work the way I think it does.)
9141 2001-09-10 23:18  simon
9143         * test.pasm, test2.pasm, test3.pasm:
9144         Move tests to t/
9146 2001-09-10 23:04  dan
9148         * test3.pasm:
9150         Register push/pop test
9152 2001-09-10 22:47  simon
9154         * basic_opcodes.ops, bytecode.c, parrot.h, test_main.c:
9155         Fix up format warnings, from Sam Tregar <sam@tregar.com>.
9156         (Modified to avoid conflict with Dan's changes.)
9158 2001-09-10 22:45  dan
9160         * disassemble.pl:
9162         Happier about blanks in opcode_table
9164 2001-09-10 22:40  dan
9166         * interpreter.c, register.c:
9168         Yanked out debugging code, since these work OK. The bug I want is
9169         elsewhere.
9171 2001-09-10 22:30  simon
9173         * MANIFEST:
9174         Uhm. We want make_op_header.pl. We really, really do.
9176 2001-09-10 22:26  simon
9178         * Makefile, TODO, assemble.pl, basic_opcodes.ops,
9179         build_interp_starter.pl, disassemble.pl, make_op_header.pl,
9180         opcode_table, process_opfunc.pl:
9181         Automatic opcode numbering, from Leon Brocard <acme@astray.com>.
9182         This means we can add lots more opcodes without fiddling about with
9183         the numbers. Hooray!
9185         Don't forget that "end" needs to be op zero, else the interpreter
9186         falls off the end of the code. This is Bad, and I wonder if there's
9187         a way around it.
9189 2001-09-10 19:49  simon
9191         * MANIFEST, make_op_table_build.pl:
9192         Hey! This doesn't do anything...
9194 2001-09-10 19:46  simon
9196         * Makefile:
9197         "clean" target cleanup from Bryan C. Warnock <bwarnock@raba.com>.
9199 2001-09-10 18:31  simon
9201         * MANIFEST:
9202         You know what this means...
9204 2001-09-10 18:30  simon
9206         * assemble.pl:
9207         "use strict" patch from Leon Brocard <acme@astray.com>. Hey, why
9208         wait for a release...? :)
9210 2001-09-10 18:13  simon
9212         * interpreter.c:
9213         Bad Dan! No cookie!
9215 2001-09-10 17:56  simon
9217         * README:
9218         A *real* README file, which doesn't claim it isn't for public
9219         consumption.
9221 2001-09-10 17:02  simon
9223         * TODO:
9224         More things to do.
9226 2001-09-10 16:56  dan
9228         * TODO: Added in assembler gripe. Also added a few blank lines for
9229         clarity
9231 2001-09-10 16:49  dan
9233         * register.h, register.c: Renamed the core functions so the opcodes
9234         can find 'em OK. (There were some conflicts)
9236 2001-09-10 16:48  dan
9238         * basic_opcodes.ops, opcode_table: Added register window ops
9240 2001-09-10 11:07  simon
9242         * TODO:
9243         Trivial TODO list.
9245 2001-09-10 11:05  simon
9247         * test.pbc, test2.pasm, test_main.c: Other string bits and pieces;
9248         note "-s" flag to test prog.
9250 2001-09-10 11:01  simon
9252         * docs/strings.pod:
9253         New string documentation.
9255 2001-09-10 11:01  simon
9257         * basic_opcodes.ops, opcode_table:
9258         String ops.
9260 2001-09-10 10:53  simon
9262         * global_setup.c:
9263         More string fu.
9265 2001-09-10 10:51  simon
9267         * memory.h:
9268         Just some more aliases for now. Used by string handling stuff.
9270 2001-09-10 10:50  simon
9272         * assemble.pl, bytecode.c, bytecode.h:
9273         Temporary hack to store string constants in bytecode and recreate
9274         them at runtime.
9276 2001-09-10 10:48  simon
9278         * op.h:
9279         op.h is now generated by the Makefile; remove it.
9281 2001-09-10 10:47  simon
9283         * Makefile:
9284         clean and op.h Makefile targets.
9286 2001-09-10 10:45  simon
9288         * string.c, string.h, strnative.c:
9289         More string vtable stuff.
9291 2001-09-07 21:07  dan
9293         * assemble.pl:
9295         Much less picky about whitespace in the opcode_table now. (Doesn't
9296         whine on blank lines)
9298 2001-09-07 16:23  dan
9300         * Makefile, assemble.pl, global_setup.h, interpreter.c,
9301         interpreter.h, opcode_table, parrot.h, test.pasm: (Here's hoping
9302         this takes) Added global_setup.h to declare init_world function
9304         Moved variable declarations out of the interpreter loop for small
9305         speed boost.
9307         Changed end opcode to now be opcode #0. A function is provided for
9308         it, but isn't ever executed.
9310         When the interpreter sees an opcode 0 in the stream it means the
9311         end of stream. Things were coring on Cygwin otherwise. (I think I
9312         was dereferencing a zero, which is bad)
9314 2001-09-06 22:07  dan
9316         * basic_opcodes.ops, process_opfunc.pl:
9318         Minor tweaks to basic_opcodes.ops to fix some NV issues. The rest
9319         are minor changes now that things are in a fixed state.
9321 2001-09-06 16:13  dan
9323         * basic_opcodes.c, test_opcodes.c:
9324         test_opcodes.c is now irrelevant--they're all in basic_opcodes.ops.
9326         basic_opcodes.c is now autogenerated from basic_opcodes.ops, and
9327         should be nuked. So it is. :)
9329 2001-09-06 03:35  dan
9331         * basic_opcodes.ops, build_interp_starter.pl, process_opfunc.pl:
9332         Scripts to build the header file that holds the function table
9333         creation code, as well as the script to turn an opcode file to C
9334         source. (And the basic opcode functions turned into an opcode
9335         source file)
9337 2001-09-06 03:31  dan
9339         * Makefile, interpreter.c:
9340         Changes to support the autogeneration of the opcode function
9341         pointer table in interpreter.c, along with the changes to the
9342         Makefile needed.
9344 2001-09-05 13:27  simon
9346         * bytecode.c, config.h, docs/opcodes.pod, docs/overview.pod,
9347         docs/parrotbyte.pod, docs/vtables.pod:
9348         Added stubs for the documents; working on them this week. (What's
9349         left of it.) config.h change is just to type VTABLE, and the
9350         bytecode thing you might want to revoke. It's apidoc for the
9351         functions in there.
9353 2001-09-03 18:26  simon
9355         * docs/strings.pod:
9356         A start on the string API documentation.
9358 2001-09-03 17:43  simon
9360         * opcode_table:
9361         Since we specify the opcode number, we can rearrange to a more
9362         human-friendly ordering.
9364 2001-09-03 17:42  simon
9366         * basic_opcodes.c:
9367         Coupl'a logic bugs. (I think)
9369 2001-09-03 17:41  simon
9371         * string.c, string.h, strnative.c:
9372         Tidying up the string vtables.
9374 2001-09-03 17:38  simon
9376         * make_op_header.pl:
9377         Spit out the whole of op.h, not just the bit in the middle.
9379 2001-08-29 13:16  ask
9381         * README: it seems like we indeed can commit. What about sending
9382         commit mails?
9384 2001-08-29 13:07  simon
9386         * Makefile, README, assemble.pl, basic_opcodes.c, bytecode.c,
9387         bytecode.h, config.h, disassemble.pl, events.h, exceptions.h,
9388         global_setup.c, interpreter.c, interpreter.h, io.h,
9389         make_op_header.pl, make_op_table_build.pl, memory.c, memory.h,
9390         op.h, opcode_table, parrot.c, parrot.h, register.c, register.h,
9391         stacks.h, string.c, string.h, strnative.c, strnative.h, test.pasm,
9392         test.pbc, test_main.c, test_opcodes.c:
9393         Initial checkin of Simon's work directory - Dan, feel free to nuke.
9394          I'm still working on the string stuff, though.
9396 2001-08-29 12:44  ask
9398         * README: update README with list address
9400 2001-08-29 12:36  ask
9402         * README: first readme.