Starting release 0.7.0
[parrot.git] / ChangeLog
blob0dda0b0840c4f7ec7d8abd826c08bead7360393b
1 #1 $Id$
3 2008.07.15    barney
4         * Released 0.6.4
5         See NEWS for more.
7 2008.06.17    smash
8         * Released 0.6.3
9         See NEWS for more.
11 2008.05.20    chromatic
12         * Released 0.6.2
13         See NEWS for more.
15 2008.04.15    particle
16         * Released 0.6.1
17         See NEWS for more.
19 2008.03.18    bernhard
20         * Released 0.6.0
21         See NEWS for more.
23 2008.02.20    pmichaud
24         * Released 0.5.3
25         See NEWS for more.
27 2008.01.15    rgrjr
28         * Released 0.5.2
29         See NEWS for more.
31 2007.12.18    jonathan
32         * Released 0.5.1
33         See NEWS for more.
35 2007.11.20    chromatic
36         * Released 0.5.0
37         See NEWS for more.
39 2007.10.17    coke
40         * Released 0.4.17
41         See NEWS for more.
43 2007.09.18    particle
44         * Released 0.4.16
45         See NEWS for more.
47 2007.08.22    pmichaud
48         * Released 0.4.15
49         See NEWS for more.
51 2007.07.17    particle
52         * Released 0.4.14
53         See NEWS for more.
55 2007.06.19    allison
56         * Released 0.4.13
57         See NEWS for more.
59 2007.05.15    chromatic
60         * Released 0.4.12
61         See NEWS for more.
63 2007.04.17    mdiep
64         * Released 0.4.11
65         See NEWS for more.
67 2007.03.20    coke
68         * Released 0.4.10
69         See NEWS for more.
71 2007.3.10     coke
72         * removed parakeet
74 2007.02.22    pmichaud
75         * Released 0.4.9
76         See NEWS for more.
78 2007.01.17    chromatic
79         * changed 'name' method on namespaces to 'get_name' per pdd21
81 2007.01.16    particle
82         * Released 0.4.8
83         See NEWS for more.
85 2006.12.12    particle
86         * added C<isnull> opcode
88 2006.11.14    chip
89         * Released 0.4.7
90         See NEWS for more.
92 2006.11.07      tewk
93         * added :init pragma functionality to subs
95 2006.10.28      jonathan
96         * added :vtable pragma functionality to subs
98 2006.09.18    chromatic
99         * added Parrot::Embed under ext/Parrot-Embed
101 2006.08.18    leo
102         * remove the None PMC - if needed it can trivially be reimplemented
103           in languages from r14189
105 2006.08.16    creiss
106         Merged Software Transactional Memory branch into trunk, adds:
107         * several new opcodes whose names start with stm_
108         * read-only PMC support
109         * several new PMC types (whose names start with STM*)
110         * support for threads (again)
112 2006.08.08    chip
113         * Released 0.4.6
114         See NEWS for more.
116 2006.08.02    chip
117         * opcodes: "in PMC" is no longer a synonym for "invar PMC";
118         there are opcodes now that want the real "in PMC".
119         * namespace and global opcodes now accept name arrays again, as
120         well as keys; the corresponding namespace PMC methods are gone.
122 2006.07.21    leo
123         * Parrot_exit, Parrot_on_exit take now an Interp * argument
125 2006.07.25    chip
126         * add experimental op find_type_i_p
127         * fix longstanding bug that sometimes didn't encode pasm keys as
128         Key PMCs (specifically "[S0]" and "['stringliteral']").
130 2006.07.24    chip
131         further implementation of new pdd21:
132         * new opcodes {get,set}*global
133           (old {find,store}*global will be supported for a short while)
135 2006.07.20    audreyt
136         * --maintainer prerequesites are now bison 2.2+ and flex 2.5.3x
137           (or some such --leo) 
138           (at the moment code is checking for 2.0 -- ambs)
140 2006.07.17    chip
141         partial implementation of new pdd21:
142         * old: "get_namespace KEY".  new: "get_hll_namespace KEY"
143         * get_namespace and find_global opcodes no longer accept arrays
144           of strings.  To use arrays, call namespace object methods.
146 2006.06.19    leo
147         * Released 0.4.5
148         See NEWS for more.
150 2006.06.03    leo
151         * I and N registers are never cleared to 0 / 0.0 on subroutine entry
153 2006.05.14    leo
154         * Released 0.4.4
155         See NEWS for more.
157 2006.04.30    bernhard
158         * Make the Perl PMCs dynamic and move them to src/dynpmc
160 2006.04.02    leo
161         * Released 0.4.3
162         See NEWS for more.
164 2006.03.06    leo
165         * Shifted argument type bits left by 2 according to r11754
166           change of docs/pdds/pdd03_calling_conventions.pod
167         * if you are creating PASM then code needs adjustment  
169 2006.02.22    leo
170         * Released 0.4.2
171         See NEWS for more.
173 2006.01.16    bernhard
174          * rename src/dynclasses to src/dynpmc 
175          * rename src/classes to src/pmc 
177 2006.01.15    leo
179          * find_global and friends returns a .Null PMC instead of .Undef on
180           lookup failure, iff lookup exceptions are off
182 2006.01.08    leo
183         * Released 0.4.1
184         See NEWS for more.
186 2005.12.28    particle
187         * renamed all .imc files to .pir
188         * modified all doc references to .pir as well
190 2005.12.13    particle
191         * moved jit/ directory to src/jit/
193 2005.12.12    particle
194         * moved io/ directory to src/io/
195         * moved classes/ directory to src/classes/
196         * moved dynclasses/ directory to src/dynclasses/
198 2005.12.08    particle
199         * moved types/ directory to src/types/
200         * moved pf/ directory to src/packfile/
201         * moved ops/ directory to src/ops/
203 2005.12.08    particle
204         * moved charset/ directory to src/charset/
205         * moved encodings/ directory to src/encodings/
207 2005.12.07    particle
208         * moved imcc/ directory to compilers/imcc/
210 2005.12.06    particle
211         * moved util/ directory to tools/util/
212         * removed imcc/examples/ directory
213         * moved ast/ directory to compilers/ast/
215 2005.12.05    particle
216         * moved imcc/docs/ directory to docs/imcc/
217         * moved build_tools/ directory to tools/build/
218         * modified MANIFEST, MANIFEST.generated, and MANIFEST.SKIP
220 2005.12.04    leo
221         * Released 0.4.0
222         * See NEWS for changes
224 2005.11.06    leo
225         * Released 0.3.1
226         * See NEWS for changes
228 2005.10.01    leo
229         * Released 0.3.0
230         * See NEWS for changes
232 2005.08.05    leo
233         * Released 0.2.3
234         * See NEWS for changes
236 2005.07.03    leo
237         * Released 0.2.2
238         * See NEWS for changes
240 2005.06.04    leo
241         * Released 0.2.1
242         * allow short names for object attributes
243         * string encoding and charset can now be set independently
244         * experimental mmap IO layer for slurping files
245         * enable compile opcode support for compilers written in PASM/PIR
246         * improved HLL support with .HLL and n_operators pragmas
247         * simplified hash code
248         * more strength reduce optimizations
249         * distinct debug and trace flag settings
250         * glob support in PGE
251         * new character classification opcodes and interfaces
252         * numerous bug fixes and enhancements
254 2005-05-08    leo
255         * Released 0.2.0
256         * parrot repository is now under subversion
257         * MMD (Multi Method Dispatch) enhanced
258         * new unary and infix opcodes that return new result PMCs
259         * dynamic scalar PMCs inherit now almost all from Parrot core PMCs
260         * more unification of PMCs and ParrotObjects
261         * tailcalls for functions and methods
262         * PGE (Parrot Grammar Engine) reworked
263         * Pugs creates Parrot code and Pugs is a registered compiler now
264         * new languages/lisp
265         * the usual bug fixes and improvements
267 2005-03-06    leo
268         * Released 0.1.2
269         * big rewrite of string code, not yet finished but ...
270         * partial implementation of a generational garbage collector
271         * indirect register frame addressing
272         * .return(args) PIR syntax
273         * moved most of the Python code to dynclasses
274         * a lot more Python functionality
275         * precalculate opcodes with all constants
276         * PGE - Parrot Grammar Engine
277         * scalar classes refactoring
278         * much more tests and big test system cleanup
279         * improved documentation
280         * and as always a lot more
282 2004-10-09    leo
283         * Released 0.1.1
284         * Need Perl 5.6 now for building
285         * Basic AST support, PAST file parser, bits of code generation
286         * BigInt PMC using GMP
287         * Complex PMC
288         * Dynamic loading improved including bundles of PMC classes
289         * Experimental support for "make install"
290         * IA64 and hppa JIT support
291         * ICU unicode support
292         * IO layer handling code
293         * IO readline and buffered IO fixes
294         * Incremental GC
295         * Internal pythonic functions: filter, map, reduce, max, min ...
296         * Languages updates for m4, tcl, perl6, regex. New parakeet language.
297         * Library updates, Stream and SDL library
298         * MMD - multi method dispatch for binary vtable methods
299         * Many new array PMCs
300         * Method call syntax in PIR obj."meth"(...)
301         * More OS stuff: stat, exec, system, gmtime, piped read and write
302         * New Python PMCs like Enumerate, None
303         * Non-branching compare opcodes
304         * PIR support for += and friends
305         * Python language subdir
306         * Python types mapped to existing PMCs
307         * Slices and range support
308         * Tons of bug fixes, documentation updates, new tests
309         * Win32 COFF exec support
310         * ... and a lot more
312 2004-02-29    leo
313         * Released 0.1.0
314         * "Ladies and gentlemen, I give you... objects!"
315         * Huge documentation overhaul
316         * More supported platforms, s. PLATFORMS
317         * Basic thread support for pthread based architectures
318         * Basic event handling for timers and signals including:
319         * PASM callbacks for NCI (native C) functions.
320         * Improved platform configuration
321         * COW stacks now working, stacks code redone
322         * Structure handling vastly improved
323         * Random PMC and rand primitives
324         * Better subroutine call syntax in PIR
325         * Make PIR subroutines compliant with pdd03
326         * Improved profiling (DOD, GC timings)
327         * Hash code improvements, incl. random key order support
328         * Experimental freeze/thaw code for some PMC types
329         * IO improvements for buffered layer and Win32
330         * String iterators
331         * String bitwise vtables
332         * Many new opcodes
333         * Support for JIT, where malloced memory isn't executable
334         * Priority DOD scheme for objects that need timely destruction
335         * Improved bytecode loading (e.g. onLoad functions)
336         * Language updates: forth, Perl6/P6C, m4
337         * Libraries: Getopt_Long, SDL, Dumper, Sort
338         * new JAPH examples
339         * Unified imcc and parrot test handling
340         * Many new tests (make test reports 1386 tests)
341         * Numerous bug fixes
344 2003-10-31    leo
345         * Released 0.0.13
346         * Yep thirteen - haunted by the ghost of 0.0.12
347         * Build imcc as parrot
348         * Objects more finished
349         * Delegate vtable methods to byte code
350         * Binary multi-method dispatching
351         * Isa and does methods for PMCs
352         * Call byte code from C
353         * Start of extension interface
354         * Experimental struct handling
355         * Catch access to NULL PMCs
356         * Experimental network socket interface code and opcodes
357         * IO fixes and improvements
358         * Dynamic opcode libraries
359         * Fix-assigned opcode numbers
360         * Argument flattening for function calls
361         * More native call interface (NCI) signatures
362         * Ncurses, postgres, and pcre interface libraries
363         * Forth language is vastly improved
364         * BSD and Win32 build improvements
365         * Many new tests and fixes
367 2003-10-22    melvin
368         * imcc moved from parrot/languages/ to parrot/
370 2003-09-20    sfink
372         * updated the native_pbc test files (from Leo)
373         * built 0.0.11.1 release tarball
375 2003-09-20    sfink
377         * CHANGES BUNDLED INTO 0.0.11:
378         * Executable output
379         * Dynamic PMC registration
380         * Trial exception system
381         * Beginnings of object system
382         * Iterators
383         * Ordered hashes
384         * I/O system improvements
385         * References
386         * Documentation for basic PMC types
387         * IMCC support of Parrot Calling Conventions
388         * Runtime loading of chartypes (and other string improvements)
389         * Conditional breakpoints
390         * Dramatically accelerated sweeps for finalizable objects
391         * Small PMCs (PMCs split into core and extensions)
392         * Loadable bytecode packfiles
393         * Constant PMCs
394         * Sub variants that deal with the stack correctly
395         * Switched runops core
396         * Line numbers in warnings
397         * Environment access
398         * Many documentation cleanups
399         * Conversion to CPS style!
400         * BASIC debugger and many other wacky features
401         * Filename, line number parsing support in IMCC
403 2003-07-21 17:31 chromatic
404         * applied copyright patch from Josh Wilmes
406 2003-06-14 13:50 dan
407         * Moved the registers out of the context structure, since they
408           really aren't context
409         * Changed the register stack frames to hold only 16 registers
410           rather than 32, added half-set push and pop ops, and reworked
411           the full set push/pops to do two half-set push/pops. Should
412           speed up saving register data on calls, since we usually only
413           care about the top half of the registers anyway.
414         * Started committing some of the new class/object framework
415         * Remembered to finally start updating the Changelog
417 2003-03-18 03:50  ask
419         * Various files
420           Update Yet Another copyright statements to reflect the (no longer
421           so) shiny new year.
423 2003-03-11 22:06  chip
425         * Configure.pl: print help on non-option command line args
427 2002-12-18 20:38  sfink: changes since 0.0.8
429         - Allow suppression of cgoto core to save memory during compile
430         * Native function calling interface
431         * Major rewrite of stack and list aggregates
432         - Scalar PMC added
433         * Scratchpads implemented
434         - Win32 libraries
435         - Internal memory subsystem documentation
436         * Preliminary DotGNU support
437         - Packfile fingerprinting
438         * Buffer/PMC unification (into PObjs)
439         * stabs debugging information support
440         * Major Jako overhaul, including:
441           - imcc integration
442           - native function calling
443         - Perl6 string interpolation
444         - languages/regex now targets IMCC
445         * Optional Lea memory allocator
446         * Full sprintf implementation
447         * Many, many new tests
448         * Miniparrot
449         - exchange ops
450         - runtime-controllable gc debugging
451         * PMC properties
452         - Crash info
453         * JIT: various improvements
454           - register usage tracking
455           - block register allocation
456           - optimizations
457           - more jitted ops
458           - restartable
459           - architecture abstraction layer
460           - debugging via GDB
461         * Beginning support for extensible packfiles
462         * Much better key support, generally
463         * splice()
464         * Restructured PMC hierarchy with better functionality inheritance
465         * IMCC: many, many improvements. See imcc/ChangeLog
466         * Perl6: index map grep join reverse defined
467         * Scheme with functions!
470 2002-03-19 22:54  nicholas
472         * docs/running.pod: Patch from Simon Glover <scog@amnh.org>:
474          We can now get usage information for test_parrot without having to
475          grep the source.
477 2002-03-19 22:53  simon
479         * Configure.pl:
480         Parrot is called parrot.
482 2002-03-19 22:53  nicholas
484         * docs/tests.pod: Patch from Simon Glover <scog@amnh.org>:
486          1. There are tests in t/pmc as well as t/op now.
487          2. Adds a comment about Parrot::Test
489 2002-03-19 18:09  dan
491         * Configure.pl, examples/assembly/life.pasm: Toss a prompt that
492         messes up automated builds
494         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
496 2002-03-19 00:33  mrjoltcola
498         * core.ops: Doc cleanup from Simon Glover.
500 2002-03-18 23:52  mrjoltcola
502         * io/io_unix.c: Typo fix for invalid lvalue caught by David Loyd.
504 2002-03-18 22:09  dan
506         * include/parrot/resources.h: Checked in old version
508 2002-03-18 20:17  dan
510         * include/parrot/resources.h: Forgot a prototype
512 2002-03-18 20:15  dan
514         * resources.c: D'oh! Thinko, fixed.
516         Courtesy of "Peter Gibbs" <peter@emkel.co.za>
518 2002-03-18 17:33  josh
520         * Configure.pl: Lowering the bar a bit.
522 2002-03-18 17:33  sfink
524         * languages/regex/: MAINTAINER, Makefile, README, regex.pl,
525         test.pl, lib/Regex.pm, lib/Regex/AsmOps.pm, lib/Regex/CodeGen.pm,
526         lib/Regex/Generate.pm, lib/Regex/Grammar.pm, lib/Regex/Grammar.y,
527         lib/Regex/Optimize.pm, lib/Regex/Parse.pm, lib/Regex/Pasm.pm,
528         lib/Regex/PreOptimize.pm, lib/Regex/RegexOps.pm,
529         lib/Regex/Rewrite.pm, lib/Regex/CodeGen/Re.pm,
530         lib/Regex/CodeGen/Rx.pm, lib/Regex/Rewrite/Re.pm,
531         lib/Regex/Rewrite/Rx.pm, lib/Regex/Rewrite/Stackless.pm,
532         t/example.t: Whoops, wrong time to check this in.
534 2002-03-18 16:42  dan
536         * memory.c, resources.c: Partial fix for GC's memory trouncing. At
537         least we consider the PMC and Buffer free pools worth collecting,
538         and initialize the Buffer pool stuff.  Still not 100% correct,
539         though.
541 2002-03-18 15:35  simon
543         * packfile.c:
544         Fix format arg bug.
546 2002-03-18 07:45  brentdax
548         * Configure.pl: Warn if you're using 64-bit ints on a 32-bit
549         system.
551 2002-03-18 00:09  sfink
553         * languages/regex/: MAINTAINER, Makefile, README, regex.pl,
554         test.pl, lib/Regex.pm, lib/Regex/AsmOps.pm, lib/Regex/CodeGen.pm,
555         lib/Regex/Generate.pm, lib/Regex/Grammar.pm, lib/Regex/Grammar.y,
556         lib/Regex/Optimize.pm, lib/Regex/Parse.pm, lib/Regex/Pasm.pm,
557         lib/Regex/PreOptimize.pm, lib/Regex/RegexOps.pm,
558         lib/Regex/Rewrite.pm, lib/Regex/CodeGen/Re.pm,
559         lib/Regex/CodeGen/Rx.pm, lib/Regex/Rewrite/Re.pm,
560         lib/Regex/Rewrite/Rx.pm, lib/Regex/Rewrite/Stackless.pm,
561         t/example.t: Buggy 1st version of regex compiler implementation.
562         Warning: the test code depends on features of the assembler that do
563         not yet exist.
565 2002-03-17 21:35  ajgough
567         * types/: bignum.c, bignum_atest.pl: Added a couple of quick routes
568         through addition and subtraction.  Also added the ability to run
569         all the tests, including the ones which deal with overflow and
570         underflow.  These fail, but that's expected.  Soon they'll pass.
571         Then I'll show them.  Yesssssss.  Tessssssssts my precioussssss,
572         passsssssssings tesssstsssss.
574 2002-03-17 20:06  ajgough
576         * types/: bignum.c, bignum.h, bignum_test.pl: Modified
577         check_(under|over)flow to test bignumbers, rather than values.
578         context now carries E_limit, from which max and min exp are found.
580         Added a default-context-creating function (although this isn't the
581         same as either of the default contexts defined in the eda).
583 2002-03-17 13:31  ajgough
585         * types/: bignum.c, bignum.h: Made BN_round and BN_iround so that
586         exported version matches prototypes of other public functions.
588 2002-03-17 06:44  josh
590         * chartype.c, encoding.c, memory.c, misc.c, packdump.c, packfile.c,
591         packout.c, resources.c, string.c, include/parrot/encoding.h: Some
592         last-minute re-indenting.
594 2002-03-17 05:07  mrjoltcola
596         * io/io_unix.c: Clear up unsigned compare caught by Solaris GCC.
598 2002-03-16 23:17  nicholas
600         * classes/default.pmc: Patch from Simon Glover <scog@amnh.org> to
601         remove warnings:
603          default.pmc: In function `Parrot_default_get_integer_keyed':
604          default.pmc:50: warning: control reaches end of non-void function
605          default.pmc: In function `Parrot_default_get_number_keyed':
606          default.pmc:58: warning: control reaches end of non-void function
607          default.pmc: In function `Parrot_default_get_string_keyed':
608          default.pmc:67: warning: control reaches end of non-void function
609          default.pmc: In function `Parrot_default_get_pmc_keyed':
610          default.pmc:87: warning: control reaches end of non-void function
612 2002-03-16 18:50  ajgough
614         * types/: bignum.c, bignum.h: Lots of prototypes changed in
615         readiness for nicely telling your caller about any oddness you've
616         caused in the persuit of flow.
618 2002-03-16 17:38  dan
620         * interpreter.c, resources.c, docs/pdds/pdd09_gc.pod,
621         include/parrot/interpreter.h, include/parrot/resources.h: Now we
622         can control the GC and DOD, to stop it when we don't really want
623         it.
625 2002-03-16 16:58  dan
627         * resources.c, vtable.tbl, classes/default.pmc,
628         include/parrot/resources.h: Added the last code to let PMCs control
629         their marking at DOD time
631 2002-03-16 16:57  ajgough
633         * types/bignum.c: Ok, I worked out how to not have lots of tabs.  I
634         feel a little more virtuous now.  Really I do.  You might not
635         believe me, but you should.  perl -pne 's/\t/        /g', if you're
636         curious.
638 2002-03-16 16:57  josh
640         * packfile.c, packout.c: M-x untabify is my new friend.
642 2002-03-16 16:50  josh
644         * trace.c, resources.c: Minor whitespace tweak for the benefit of
645         check_source_standards.pl
647 2002-03-16 16:50  ajgough
649         * types/: bignum.c, bignum.h: More documentation, separate
650         functions into public and private sorts, some initial stuff to cope
651         with over and underflow correctly.
653 2002-03-16 16:49  josh
655         * resources.c: Re-indented (sorry bout the big diff)
657 2002-03-16 16:47  bdwheele
659         * examples/assembly/fact.pasm: This fixes fact.pasm so it will
660         assemble again, both with Simon's new assembler and with the old
661         one.
663 2002-03-16 16:33  mrjoltcola
665         * io/TODO: Get the TODO up-to-date for 0.0.4.
667 2002-03-16 16:11  josh
669         * Configure.pl: Patch from Nicholas Clark <nick@unfortu.net>: stops
670         silly people (such as me) running Configure with
671         /usr/local/bin/perl (which is 5.004_05) and not realising their
672         mistake until the pmc subdirectory, where the first qr// is
673         encountered.
675         Syntax error messages don't tell you what you did wrong. This does:
677         /usr/local/bin/perl Configure.pl Perl 5.00503 required--this is
678         only version 5.00405, stopped at Configure.pl line 10.
680 2002-03-16 14:38  ajgough
682         * Makefile.in: Small fix to Makefile.in to keep Irix make happy
683         with commenting.
685 2002-03-16 11:45  simon
687         * MANIFEST, examples/assembly/xml_parser.pasm:
688         Added Clint Pierce's XML parser.
690 2002-03-15 22:24  simon
692         * packout.c:
693         Don't need that function.
695 2002-03-15 21:56  simon
697         * Makefile.in, include/parrot/packfile.h:
698         Rebuild packout.o, since it'll be used for the Packfile XS module
700 2002-03-15 19:45  dan
702         * include/parrot/: memory.h, pmc.h: Another add-in for GC
704 2002-03-14 19:48  dan
706         * core.ops: No string to int for some reason
708 2002-03-14 18:45  dan
710         * string.c, t/op/string.t: Fix 0-length substr problem
712 2002-03-14 14:46  dan
714         * core.ops, interpreter.c, resources.c, classes/array.pmc,
715         classes/perlarray.pmc, examples/assembly/life.pasm,
716         include/parrot/interpreter.h, include/parrot/resources.h: Added in
717         a counter for copied memory, with a display in life.pasm
719 2002-03-14 03:16  mrjoltcola
721         * MANIFEST: Update MANIFEST courtesy of Simon Glover.
723 2002-03-13 23:43  simon
725         * packfile.c:
726         Oops.
728 2002-03-13 23:43  simon
730         * packfile.c:
731         Hangs head in shame.
733 2002-03-13 21:31  simon
735         * MANIFEST:
736         FAQ moved.
738 2002-03-13 18:06  simon
740         * string.c:
742         Fix string_compare screw-up.
744 2002-03-13 18:02  brentdax
746         * docs/: parrot.pod, ParrotFAQ.htm, faq.pod: Move the FAQ into POD
747         and add a new question/answer pair.
749 2002-03-12 22:53  mrjoltcola
751         * io.ops: Quick and dirty read ops for PIO. No warranty provided.
753 2002-03-12 22:48  mrjoltcola
755         * examples/assembly/io2.pasm: Quick and dirty read ops for PIO. No
756         warranty provided.
758 2002-03-12 22:29  ajgough
760         * docs/pdds/pdd14_bignum.pod: Ooops, it is #14, really.
762 2002-03-12 22:24  ajgough
764         * docs/pdds/pdd14_bignum.pod: Creation of bignumber pdd, update to
765         version 1.1, Don't know if this is the correct number, but I don't
766         want this stuck on my harddrive where it will get lost, so 14 it is
767         :)
769 2002-03-12 11:35  simon
771         * MANIFEST, packdump.c, packout.c:
773         Just so the functionality doesn't disappear.
775 2002-03-12 11:33  simon
777         * Makefile.in, chartype.c, encoding.c, packfile.c,
778         chartypes/unicode.c, chartypes/usascii.c, encodings/singlebyte.c,
779         encodings/utf16.c, encodings/utf32.c, encodings/utf8.c,
780         include/parrot/chartype.h, include/parrot/encoding.h,
781         include/parrot/packfile.h:
783         Packfile axing.
785 2002-03-11 23:06  nicholas
787         * core.ops: Patch from Simon Glover <scog@roe.ac.uk>:
789           Core.ops documentation nits
791 2002-03-11 23:05  nicholas
793         * t/pmc/pmc.t: Patch from Simon Glover <scog@roe.ac.uk>:
795           Most of the PerlUndef tests in pmc.t appear to have been added
796         twice.
797           Enclosed patch removes the duplicates.
799 2002-03-10 23:40  nicholas
801         * t/pmc/perlstring.t: Patch from Simon Glover <scog@amnh.org>:
803          More tests for the PerlString test-suite.
805 2002-03-10 23:40  nicholas
807         * t/op/time.t: Patch from Simon Glover <scog@amnh.org>:
809         test for sleep with negative argument
811 2002-03-10 21:58  nicholas
813         * t/op/rx.t: Patch from Simon Glover <scog@amnh.org>:
815          Enclosed patch fixes up a few more holes in our test coverage.
817 2002-03-10 21:18  mrjoltcola
819         * classes/array.pmc, classes/default.pmc, classes/intqueue.pmc,
820         classes/parrotpointer.pmc, classes/perlarray.pmc,
821         classes/perlhash.pmc, classes/perlint.pmc, classes/perlnum.pmc,
822         classes/perlstring.pmc, classes/perlundef.pmc,
823         include/parrot/pmc.h, core.ops, pmc.c, vtable.tbl: Add size
824         argument to the init() vtable method so PMCs have the option to
825         know how to size themselves at creation. size could be N elements
826         or a byte count, depending on the PMC or it may simply be ignored.
827         Overloaded 'new' opcode for optional arg.
829 2002-03-10 21:15  mrjoltcola
831         * lib/Parrot/Assembler.pm: Minor patch to the assembler for the
832         new_p_ic_ic opcode to work same as new_p_ic (looks up a named
833         class).
835         Also added small hack for .sub directive (which simply translates
836         to a label, however we might eventually want to collect these to
837         validate bsr calls.
839 2002-03-10 15:09  ajgough
841         * types/: bignum.c, bignum.h, bignum_atest.pl, bignum_test.pl:
842         Added round_floor and round_ceiling.  3403 tests pass, none fail.
844 2002-03-10 03:56  ajgough
846         * types/: bignum.c, bignum_atest.pl: Added extended stuff to
847         divide, divide integer and remainder.  All filled in functions now
848         have special values capability.
850         Much remains to be done though, and the pdd needs to catch up.
852 2002-03-10 01:36  ajgough
854         * types/bignum.c: Added extended stuff to _add, _subtract.
856 2002-03-10 00:14  nicholas
858         * t/op/: integer.t, number.t: Patch from Simon Glover
859         <scog@roe.ac.uk>:
861          The enclosed patch fixes a few of the holes in our test coverage
862          uncovered by Josh Wilmes
864 2002-03-09 23:03  ajgough
866         * types/: bignum.c, bignum.h: Modified compare to work with
867         extended values.  Made a couple of changes here and there to allow
868         BN_comp to take a context, so that an is_zero check doesn't clobber
869         negative zeros.
871 2002-03-09 22:19  ajgough
873         * types/: bignum.c, bignum.h, bignum_atest.pl, bignum_test.pl:
874         Unary plus now copes with special values.
876 2002-03-09 04:25  ajgough
878         * types/: bignum.c, bignum_atest.pl, bignum_test.pl: Exception
879         traps and flags are now enabled and tested for all the standard
880         tests for all the functions which are currently implemented.  Test
881         harness faffed with to allow these to be tested.
883 2002-03-09 02:29  josh
885         * encodings/singlebyte.c, encodings/utf16.c, encodings/utf32.c,
886         encodings/utf8.c, chartypes/unicode.c, chartypes/usascii.c:
887         Re-indented
889 2002-03-09 02:22  josh
891         * config_h.in: tab-blastin'
893 2002-03-09 02:21  josh
895         * check_source_standards.pl: Play nicer with M-x compile- don't
896         bother giving line numbers for things you don't want to look at.
898 2002-03-09 02:10  josh
900         * examples/mops/mops.c: re-indented
902 2002-03-09 02:07  josh
904         * classes/pmc2c.pl: Use the usual header so that we can detect the
905         autogeneratedness.
907 2002-03-09 02:05  josh
909         * jit2h.pl: Avoid accidental /* inside a comment, which generates a
910         compiler warning
912 2002-03-09 01:59  josh
914         * io/: io.c, io_stdio.c, io_unix.c, io_win32.c: Another large
915         patch- re-indent io/*.c.
917 2002-03-09 01:52  ajgough
919         * types/: bignum.c, bignum.h, bignum_test.pl: Added handling of
920         special values to the string conversion functions, some other
921         functions now need context (to let -0 pass through really_zero)
922         which have also been added.
924 2002-03-09 01:47  josh
926         * test_main.c: Re-indented.
928 2002-03-09 01:41  josh
930         * rx.c: killed a stray tab
932 2002-03-09 01:38  josh
934         * rx.c: Re-indented.
936 2002-03-09 01:36  josh
938         * misc.c: Oops, some tabs remained- cleaned up.
940 2002-03-09 01:31  josh
942         * misc.c: Re-indented (major patch, sorry)
944 2002-03-09 00:59  josh
946         * embed.c: Re-indented.
948 2002-03-08 23:08  simon
950         * MANIFEST, docs/pdds/pdd10_embedding.pod,
951         docs/pdds/pdd11_extending.pod, docs/pdds/pdd12_assembly.pod,
952         docs/pdds/pdd13_bytecode.pod:
953         Placeholder PDDs.
955 2002-03-08 21:12  ajgough
957         * include/parrot/string.h: Added private flags to string.h, mostly
958         so that other GCed stuff can also have its very own private flags.
960 2002-03-08 19:53  simon
962         * MANIFEST:
963         Great PDD Renaming
965 2002-03-08 19:41  robert
967         * docs/pdds/: pdd0.pod, pdd1.pod, pdd2.pod, pdd4.pod, pdd5.pod,
968         pdd6.pod, pdd7.pod: Renamed...
970 2002-03-08 18:51  simon
972         * MANIFEST, docs/pdds/pdd08_keys.pod:
973         Add keys PDD.
975 2002-03-08 18:20  ajgough
977         * types/: bignum.c, bignum.h, bignum_atest.pl, bignum_test.pl:
978         Introduced exception handlers and exception flags to context, will
979         allow support of extended standard.  Unified exception checking
980         mechanism (sort of) and made minimal changes to bulk of code to use
981         this.  Tests pass, I'm happy, and further changes will happen more
982         gradually.
984 2002-03-08 04:38  josh
986         * interpreter.c, string.c, testparrotsizes_c.in: More indenting
987         tweaks.
989 2002-03-08 04:37  josh
991         * platforms/: generic.c, generic.h, win32.c, win32.h: Re-indented
993 2002-03-08 04:24  josh
995         * embed.c: A bit more re-indenting
997 2002-03-08 04:20  josh
999         * embed.c: Indenting fixes
1001 2002-03-08 04:14  josh
1003         * jit.c: Re-indented (run_indent.pl)
1005 2002-03-08 03:36  josh
1007         * ops2c.pl: Fix the line numbers which get reported while compiling
1008         core_ops*.c
1010 2002-03-08 03:22  josh
1012         * packfile.c: -1552 cc: WARNING File = packfile.c, Line = 1537
1013         The variable "type" is set but never used.
1015               opcode_t type;
1017 2002-03-08 03:04  josh
1019         * resources.c, stacks.c, string.c, io/io.c, io/io_stdio.c,
1020         io/io_unix.c: Clean up unused and set-but-not-referenced variables
1021         noticed by the sgi compiler.
1023 2002-03-08 03:02  josh
1025         * misc.c: Fixes this warning (SGI) cc-1188 cc: WARNING File =
1026         misc.c, Line = 417   The indicated type qualifier is meaningless on
1027         cast type.
1030         (const char) 'f');
1031                                                                          ^
1033 2002-03-08 02:55  josh
1035         * Makefile.in: Clean up one of the object files it was missing
1037 2002-03-08 01:15  josh
1039         * include/parrot/interpreter.h: Fixes the following error (tcc):
1040         "./include/parrot/interpreter.h", line 27: Error:   [Syntax]: Extra
1041         comma at end of list.
1043 2002-03-06 22:15  simon
1045         * stacks.c:
1046         Tidy up stack chunk allocation.
1048 2002-03-06 21:00  simon
1050         * interpreter.c:
1051         Create strings only once we've got string register heads set up.
1053 2002-03-06 20:31  simon
1055         * classes/perlarray.pmc:
1056         malloc(0) considered harmful.
1058 2002-03-06 20:24  simon
1060         * include/parrot/resources.h:
1061         I like it when Parrot compiles.
1063 2002-03-06 17:02  dan
1065         * classes/array.pmc: Changed over to data pointing to a Buffer.
1067 2002-03-06 15:45  dan
1069         * core.ops, embed.c, exceptions.c, interpreter.c, memory.c,
1070         packfile.c, pbc2c.pl, pdump.c, resources.c,
1071         include/parrot/interpreter.h, include/parrot/memory.h,
1072         include/parrot/resources.h, io/io.c: Three quick things: 1) INTVALs
1073         and opcode_t > longs will now be even more suspect than what they
1074         were beforehand.  2) Feel free to bicker with names.  I don't think
1075         we've come to *any* sort of agreement with these, although we
1076         really, really, need to.  3) I forget the third thing.  4) But I
1077         thought of a fourth.  5) I've now remembered the third thing: IIRC,
1078         ANSI C states that enums will fit within the smallest type (int or
1079         greater) that can hold the values. Is that actually correct, and
1080         does it state whether unsigned is preferred to signed for
1081         non-negative enums? 6) Since I'm no longer constrained by "three"
1082         or "quick", I'm going size_t happy for a lot of memory-related
1083         storage.  (That's good.  No sense wasting the size or performance
1084         of an UINTVAL for strange values of UINTVAL.)  I'm also using it in
1085         a couple other internal things (like the GC stat counters, seen
1086         here).  Size and performance, again, and unpromotable to a bigint,
1087         so we know that we (theoretically) will wrap.  However, size_t
1088         isn't the best choice for the type.  (Not that there's anything
1089         wrong with size_t, just that it shouldn't be called size_t.)  Any
1090         thoughts?  I was thinking of just doing unsigned int, because,
1091         IIRC, int is usually the natural word size, and will be most
1092         efficient.  Thoughts? 7) I forgot what the fourth thing I thought
1093         of was while writing down the others.  Sorry.
1095         Courtesy of  "Bryan C. Warnock" <Bryan.Warnock@raba.com>
1097 2002-03-06 15:26  dan
1099         * memory.c, resources.c, string.c, classes/perlarray.pmc,
1100         include/parrot/resources.h: Now we allocate generic Buffers from
1101         arenas too
1103 2002-03-05 21:42  brentdax
1105         * Configure.pl: Minor cleanup and enhancements.
1107 2002-03-05 21:25  dan
1109         * resources.c: non-special GC now works with PMCs
1111 2002-03-05 19:48  brentdax
1113         * Configure.pl, DEVELOPING, MANIFEST, config_h.in, test_main.c:
1114         Parrot now "knows" if it's a development version or a release
1115         version.  See the instructions in the DEVELOPING file.
1117 2002-03-05 18:05  brentdax
1119         * MANIFEST: pasm.vim wasn't in the manifest.
1121 2002-03-05 17:57  simon
1123         * Makefile.in:
1124         Now, through much evilness, make distclean and make cvsclean work
1125         again.
1127 2002-03-05 17:38  dan
1129         * memory.c, resources.c, docs/pdds/pdd09_gc.pod,
1130         include/parrot/interpreter.h, include/parrot/pmc.h,
1131         include/parrot/resources.h: PMC tracing complete
1133 2002-03-05 16:28  gregor
1135         * languages/jako/Makefile.in:
1136         Changed -I ../../ to -I ../../lib when calling the assembler, since
1137         the perl modules have moved.
1139 2002-03-05 05:30  josh
1141         * packfile.c, pdump.c, pmc.c, register.c, rxstacks.c, stacks.c,
1142         string.c: More re-indenting via run_indent.pl.
1144 2002-03-05 05:17  josh
1146         * runops_cores.c, trace.c, warnings.c: Re-indented (via
1147         run_indent.pl)
1149 2002-03-05 04:26  josh
1151         * key.c, memory.c, test_gnuc.c, testparrotfuncptr.c: Re-indented
1152         using run_indent.pl and some minor tweaking.
1154 2002-03-05 04:21  josh
1156         * chartype.c, encoding.c, exceptions.c, global_setup.c,
1157         interpreter.c: Re-indented using run_indent.pl and some minor
1158         tweaking.
1160 2002-03-05 03:30  josh
1162         * include/parrot/trace.h: These functions are no longer used (or
1163         even implemented)
1165 2002-03-04 18:21  josh
1167         * include/parrot/trace.h: Fix a typo in the argument type.
1169         Patch from <daniel.ritz@gmx.ch>
1171 2002-03-04 03:39  josh
1173         * check_source_standards.pl, jit2h.pl: Add the "autogenerated file"
1174         header to jit_struct.h so we don't try to check it for conformance.
1175          (no way will it conform)
1177 2002-03-04 03:38  josh
1179         * include/parrot/: chartype.h, interpreter.h, io.h, rx.h, trace.h,
1180         unicode.h, warnings.h: Remove some remaining tabs and split some of
1181         the remaining long lines.
1183 2002-03-04 03:17  josh
1185         * include/parrot/: chartype.h, embed.h, encoding.h, exceptions.h,
1186         global_setup.h, interpreter.h, io.h, jit.h, key.h, memory.h,
1187         misc.h, op.h, oplib.h, packfile.h, parrot.h, pmc.h, register.h,
1188         resources.h, runops_cores.h, rx.h, rxstacks.h, stacks.h, string.h,
1189         string_funcs.h, trace.h, warnings.h: This is the first batch of
1190         re-indenting.   This patch is the result of running run_indent.pl
1191         on the header files and manually tweaking the results where errors
1192         were noticed.   This should get us closed, but some refinement may
1193         follow.
1195 2002-03-04 03:06  josh
1197         * resources.c: Return without parens, as mentioned in PDD 7
1199 2002-03-04 03:01  josh
1201         * core.ops: POD fixes.
1203 2002-03-04 02:58  josh
1205         * config_h.in, ops2c.pl, classes/pmc2c.pl: More consistent headers
1206         on autogenerated files- used by the check_source_standards.pl
1207         script (for now) to exempt autogenerated files from the checks.
1209 2002-03-04 02:51  josh
1211         * embed.c, key.c, pmc.c, resources.c, rx.c, testparrotfuncptr.c,
1212         warnings.c: Added the editor "boilerplate" footer to a few files
1213         which were missing it.
1215 2002-03-04 02:34  josh
1217         * check_source_standards.pl, interpreter.c, jit.c, test_gnuc.c,
1218         include/parrot/io.h, include/parrot/parrot.h, io/io_win32.c: Fixes
1219         c preprocessor directive indentation to comply with pdd 7.
1221         (also fixes the check for this indentation in
1222         check_source_standards.pl)
1224 2002-03-04 02:32  josh
1226         * lib/Parrot/Test.pm: Fixes this error seen on perl 5.005_02 on
1227         irix.
1229         perl t/harness t/op/basic..........Use of uninitialized value at
1230         lib/Parrot/Test.pm line 81.  #     Failed test (t/op/basic.t at
1231         line 6) #          got: undef #     expected: ''
1233 2002-03-04 02:30  josh
1235         * MANIFEST, run_indent.pl, docs/pdds/pdd07_codingstd.pod,
1236         docs/pdds/pdd7.pod: Added documentation and code to invoke the GNU
1237         "indent" program to enforce some of the code style standards
1238         outlined in PDD 7.
1240         Usage: ./run_indent.pl <file>
1242 2002-03-03 19:04  simon
1244         * examples/mops/mops.c:
1245         Let's make it compile, huh?
1247 2002-03-03 19:04  simon
1249         * examples/mops/mops.cs:
1250         I R AN IDIOT
1252 2002-03-03 18:11  simon
1254         * examples/mops/mops.cs, examples/mops/mops.il, MANIFEST:
1255         Added C# and MS-IL versions of mops tester.
1257 2002-03-03 14:52  simon
1259         * core.ops:
1260         Add a sub() op to make mops_p work.
1262 2002-03-02 18:12  nicholas
1264         * examples/mops/mops.c, include/parrot/embed.h,
1265         include/parrot/interp_guts.h, include/parrot/jit.h,
1266         include/parrot/misc.h, include/parrot/packfile.h,
1267         include/parrot/rx.h, include/parrot/warnings.h,
1268         platforms/generic.c, platforms/generic.h, platforms/win32.c,
1269         platforms/win32.h, types/bignum.c, types/bignum.h: Patch from Josh
1270         Wilmes to add the emacs and vim "ending boilerplate" that sets the
1271         indent variables correctly.
1273 2002-03-02 17:41  nicholas
1275         * resources.c: Patch from Josh Wilmes <josh@hitchhiker.org>: Little
1276         patch to fix a compiler warning.
1278 2002-03-01 22:35  dan
1280         * memory.c, resources.c, include/parrot/pmc.h,
1281         include/parrot/resources.h: PMCs now come out of arenas.
1283 2002-03-01 06:15  dan
1285         * string.c:
1286         A non-existing buffer + a non-existing buffer should be a
1287         non-existing buffer, not "", which is really '\0'.
1289         Courtesy of "Bryan C. Warnock" <Bryan.Warnock@raba.com>
1291 2002-03-01 06:02  dan
1293         * classes/: array.pmc, perlarray.pmc, perlhash.pmc, perlstring.pmc:
1295         TMTOWTDI, but strcmp is probably the worse.
1297         Courtesy of "Bryan C. Warnock" <Bryan.Warnock@raba.com>
1299 2002-03-01 02:32  brentdax
1301         * embed.c: Debug mode now prints out the GC data.
1303 2002-02-28 23:44  dan
1305         * core.ops, resources.c, include/parrot/resources.h: Added collect
1306         and sweep opcodes
1308 2002-02-28 22:58  dan
1310         * docs/pdds/: pdd06_pasm.pod, pdd6.pod: Add docs for interpinfo
1311         opcode
1313 2002-02-28 22:50  dan
1315         * core.ops, interpreter.c, resources.c,
1316         examples/assembly/life.pasm, include/parrot/interpreter.h,
1317         include/parrot/resources.h: Add some stat gathering to the resource
1318         allocation code.
1320         Also add an interpreter info retrieval op, and teach it about the
1321         different things it can retrieve.
1323         Finally, add some stat info to life.pasm as an example
1325 2002-02-28 21:27  dan
1327         * editor/pasm.vim: VIM mode commands for parrot assembly files
1329         Courtesy of Scott Beck <scott@gossamer-threads.com>
1331 2002-02-28 19:20  dan
1333         * examples/assembly/life.pasm: Fix a creeping string length leak.
1335         Courtesy of  "Bryan C. Warnock" <Bryan.Warnock@raba.com>
1337 2002-02-28 18:26  dan
1339         * string.c: When you clone a constant, it ain't constant no mo'.
1341         Cocurtesy of "Bryan C. Warnock" <Bryan.Warnock@raba.com>
1343 2002-02-28 00:51  dan
1345         * MANIFEST: Add missing files
1347         Courtesy of "Bryan C. Warnock" <Bryan.Warnock@raba.com>
1349 2002-02-28 00:49  dan
1351         * docs/pdds/: pdd0.pod, pdd00_pdd.pod: The pod version of PDD 0 in
1352         CVS seems to have several chunks missing out of it, too.  This
1353         patch is simply an administrative patch, with the differences
1354         between my last version, and the one currently in there.  There
1355         will be a forthcoming patch for some minor tweaking to the PDD, but
1356         I wanted a common baseline before I make any (potential) semantic
1357         changes.
1359         There's only one semi-major change, which noone needs to worry
1360         about just yet.  That's a change from PDD Format 1 to PDD Format
1361         6.0 - rationale can be found under 'Standard (Version #)' of the
1362         STANDARDS TRACK infomation.  Don't worry about this yet, because it
1363         should be 6.0.0, and we need to discuss Perl versus Parrot with
1364         PDDs.
1366         Courtesy of "Bryan C. Warnock" <bwarnock@raba.com>
1368 2002-02-28 00:27  dan
1370         * packfile.c, resources.c, examples/assembly/life.pasm,
1371         include/parrot/register.h, include/parrot/resources.h,
1372         include/parrot/string.h: First pass of semi-full GC. (Strings only,
1373         no PMCs yet)
1375         This patch now implements a real copying collector. We trace from
1376         our root set and compact the contents of Buffer structs.
1378         Todo:
1380         *) It's very STRING-centric and doesn't handle memory stuffed in
1381         Buffers.  But, then, we don't have pool allocation for Buffers
1382         either, and we need to have that soonish for this to work.
1384         *) Doesn't trace PMCs, so if you trigger a collection and there's
1385         memory or STRING structs only accessible from PMCs, you'll fail
1386         horribly. That needs fixing too
1388         *) Better algorithms for when to trace or collect vs when to just
1389         go allocate more memory from the system. Should probably be more
1390         cache friendly too.
1392 2002-02-27 21:04  dan
1394         * jit.c, memory.c, resources.c, string.c, docs/pdds/pdd09_gc.pod,
1395         examples/assembly/life.pasm, include/parrot/resources.h,
1396         include/parrot/string.h, include/parrot/string_funcs.h,
1397         jit/i386/core.jit: Start of GC in
1399 2002-02-26 16:41  dan
1401         * jit/i386/string.jit: Fix a typo
1403         Courtesy of Jonathan Stowe <gellyfish@gellyfish.com>
1405 2002-02-26 16:37  dan
1407         * interpreter.c: Fix solaris test failures
1409         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1411 2002-02-26 16:36  dan
1413         * include/parrot/: interp_guts.h, io.h, packfile.h, rx.h,
1414         unicode.h, warnings.h: Fixes various warts in header files, such
1415         as: * macros   -added parens to prevent problems with operator
1416         precedence   -removed ; at end * removed SSIZE_MAX, since ssize_t
1417         is no longer used * added some more INLINE definitions for MSVC and
1418         C99 compilers
1420         Courtesy of Brian Lee Ray <blray@ualr.edu>
1422 2002-02-26 16:20  dan
1424         * Configure.pl: Turns out we were using a warning flag which
1425         doesn't exist on 2.7.  Simple tweak though:
1427         Courtesy of  Josh Wilmes <josh@hitchhiker.org>
1429 2002-02-25 22:58  dan
1431         * MANIFEST, docs/pdds/pdd09_gc.pod: Add docs of GC
1433 2002-02-25 17:36  dan
1435         * include/parrot/pmc.h: Fix the bits
1437 2002-02-23 21:57  dan
1439         * include/parrot/resources.h: Another 1.5% never hurts
1441 2002-02-23 21:44  dan
1443         * global_setup.c, memory.c, resources.c, string.c,
1444         include/parrot/resources.h: Allocate STRING headers from an arena
1445         with freelist rather than with the system malloc. First step in a
1446         good (or even a bad) GC system.
1448 2002-02-23 20:37  brentdax
1450         * misc.c: lint has been doing Evil and Wrong things to misc.c.
1452 2002-02-22 14:59  ajgough
1454         * types/bignum.c: BN_multiply split into BN_multiply and
1455         BN_imultiply, the internal version to be used by idivide so that
1456         rounding isn't performed during intermediate stages of division.
1458         following test scripts now all pass: divide divideint add multiply
1459         subtract remainder compare rounding plus minus (these are all the
1460         operations currently implemented, rescale and power must still be
1461         written, so don't pass right now).
1463 2002-02-22 13:13  ajgough
1465         * types/bignum_atest.pl: Test harness modified to understand
1466         comments better, and be able to run unary (and rounding) tests.
1467         Currently a few rounding tests fail, which are being investigated.
1469 2002-02-22 01:41  dan
1471         * key.c: Although there's more work being done on the key stuff and
1472         this isn't the final fix, applying this patch does get parrot to
1473         build with two more compilers, so it's probably worthwhile.
1475         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1477 2002-02-22 00:53  dan
1479         * config_h.in, misc.c, include/parrot/embed.h,
1480         include/parrot/exceptions.h, include/parrot/interpreter.h,
1481         include/parrot/io.h, include/parrot/parrot.h, include/parrot/pmc.h,
1482         include/parrot/resources.h, include/parrot/rx.h,
1483         include/parrot/string.h, include/parrot/unicode.h,
1484         include/parrot/warnings.h, io/io_stdio.c, io/io_unix.c,
1485         io/io_win32.c: Fixes the following (lcc) warnings:
1487           - interpreter.c:470: warning: expression with no effect elided
1488                (related to the way warnings flags were defined)
1490           - misc.c:352: warning: unreachable code
1491             misc.c:483: warning: unreachable code
1492                (i introduced these with some overzealous de-linting)
1494           - numerous warnings like this:
1495             io/io_unix.c:383: warning: conversion from pointer to void' to
1496         pointer to
1497             pointer to struct _ParrotIO function(pointer to struct
1498         Parrot_Interp,pointer
1499             to struct _ParrotIOLayer,pointer to const char,pointer to const
1500         char,pointer
1501             to pointer to void)' is compiler dependent
1503         Fixes the following nits:    - remove bad indenting (tabs) in the
1504         includes
1506         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1508 2002-02-21 21:12  ajgough
1510         * types/: bignum.c, bignum.h: These might look like massive
1511         changes, but really it's just he imposition of coding standards.
1512         The file still isn't entirely compliant, but is now much more so.
1514         Also changed:
1516          o a few more comments
1517          o BN_compare uses internal BN_comp to compare
1518          o lost_digits behaviour is now correct (test harness modified to
1519         test
1520            this).
1522         All binary functions now pass all the tests in the basic standard.
1523         Unary functions not yet tested, will be soon.
1525 2002-02-21 18:20  dan
1527         * lib/Parrot/OpTrans/CPrederef.pm: The "inline" bit of that patch
1528         was no longer needed, and the ssize_t thing really shouldn't be
1529         needed either.
1531         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1533 2002-02-21 18:15  dan
1535         * Configure.pl, embed.c, pdump.c, hints/mswin32.pl,
1536         include/parrot/parrot.h: this patch adds support for the freely
1537         available borland c++ 5.5.1 compiler
1539         depends on: - josh's patch to remove ssize_t from CPrederef.pm -
1540         working borland compiler (compiler must know where to find headers
1541         and libs) - Perl's Config.pm modified to use cc='bcc32.exe' not of
1542         cc='cl.exe' - a working make utility (borland make doesn't work,
1543         nmake does)
1545         changes: - add bcc in hints/mswin32.pl - clean up for msvc++ in
1546         hints/mswin32.pl - remove a space from Configure.pl (very very
1547         important for bcc) - add a O_BINARY flag to open() in pdump.c,
1548         embed.c (required by bcc) - define O_BINARY 0 when it's not defined
1549         (win32 knows it, linux not)
1551         and the why: - parrot is MUCH faster when compiled with borland c
1552         (make test on p2-450, 320MB):   * msvc++: 313 seconds   * bcc: 251
1553         seconds
1555         Courtesy of "Ritz Daniel" <daniel_ritz@gmx.ch>
1557 2002-02-21 18:09  dan
1559         * jit.c, testparrotfuncptr.c, trace.c, classes/array.pmc, io/io.c,
1560         io/io_stdio.c, io/io_unix.c, io/io_win32.c: This patch removes
1561         cuddled elses, as required by PDD 7.
1563         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1565 2002-02-21 18:04  dan
1567         * MANIFEST, Makefile.in, check_source_standards.pl: This patch adds
1568         a new Makefile target called "check_source".  This target scans all
1569         the .c and .h files in the directory and checks for conformance to
1570         a number of the standards outlined in PDD 7.
1572         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1574 2002-02-21 16:38  ajgough
1576         * types/: bignum.c, bignum.h, bignum_atest.pl: Modifications to
1577         allow arithmetic with numbers with a fixed fractional part, buffer
1578         structures now more ready to be integrated into the parrot memory
1579         allocation game, test harness modified to allow lost_digits
1580         condition to be checked.  Some more comments.
1582 2002-02-21 15:53  simon
1584         * io/io_unix.c:
1585         Fix typo
1587         Courtesy of: "David M. Lloyd" <dmlloyd@tds.net>
1589 2002-02-20 16:41  dan
1591         * MANIFEST, docs/pdds/pdd_template.pod: Added in template PDD
1593 2002-02-18 18:25  dan
1595         * MANIFEST, lib_deps.pl: Added in lib_deps.pl and MANIFEST change.
1597         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1599 2002-02-18 18:21  dan
1601         * lib/Parrot/OpTrans/CPrederef.pm: this is a quick fix for
1602         CPrederef.pm to make to generated code compile with the MS
1603         compiler.
1605         fixes: - ms compiler allows inline only for c++, for c there's
1606         __inline - ms header files knows nothing about ssize_t
1608         Courtesy of "Ritz Daniel" <daniel_ritz@gmx.ch>
1610 2002-02-18 17:49  dan
1612         * MANIFEST: Add the PDDs
1614 2002-02-18 17:47  dan
1616         * docs/pdds/: pdd07_codingstd.pod, pdd7.pod: Added in PDD 7, the
1617         coding standards PDD.
1619 2002-02-18 17:40  dan
1621         * docs/pdds/: pdd06_pasm.pod, pdd6.pod: Updated to latest rev
1623 2002-02-18 12:41  gregor
1625         * test_main.c:
1626         Remove warning about exit() not being declared.
1628 2002-02-18 08:29  simon
1630         * misc.c, warnings.c, include/parrot/misc.h,
1631         include/parrot/warnings.h:
1632         This patch adds some missing const's to silence a number of gcc
1633         warnings.
1635         Courtesy of: Josh Wilmes <josh@hitchhiker.org>
1637 2002-02-18 08:26  simon
1639         * Makefile.in, core.ops, embed.c, interpreter.c, key.c, misc.c,
1640         ops2c.pl, packfile.c, pdump.c, stacks.c, string.c,
1641         classes/array.pmc, classes/perlarray.pmc, classes/perlhash.pmc,
1642         include/parrot/parrot.h, include/parrot/rx.h,
1643         include/parrot/stacks.h, io/io_stdio.c, io/io_unix.c,
1644         lib/Parrot/OpTrans/CPrederef.pm:
1645            - add makefile target and script to test for external libc
1646         dependencies
1647            - fix return values in hash and array PMCs (returning 0 in a
1648         void func)
1649            - remove unnecessary data pointer <=> function pointer
1650         conversions
1651              outside of the JIT code.
1652            - move the definition of the "INLINE" macro out of the rx header
1653         and make
1654              available for general use on C++ compilers and gcc.
1655            - remove a few unused variables
1657         Courtesy of: Josh Wilmes <josh@hitchhiker.org>
1659 2002-02-17 16:29  simon
1661         * docs/pdds/: pdd0.pod, pdd00_pdd.pod, pdd01_overview.pod,
1662         pdd02_vtables.pod, pdd04_datatypes.pod, pdd05_opfunc.pod,
1663         pdd06_pasm.pod, pdd1.pod, pdd2.pod, pdd4.pod, pdd5.pod, pdd6.pod:
1664         We're organised and responsible. Honest.
1666 2002-02-17 02:46  sfink
1668         * Makefile.in: Remove $^ for nmake compatibility.
1670 2002-02-16 09:20  brentdax
1672         * config_h.in, test_main.c, include/parrot/chartype.h,
1673         include/parrot/embed.h, include/parrot/encoding.h,
1674         include/parrot/string.h, include/parrot/string_funcs.h: Better
1675         embedding exposure and hiding, part 1.
1677 2002-02-16 04:38  dan
1679         * Makefile.in, core.ops, interpreter.c, pbc2c.pl, pdump.c,
1680         runops_cores.c, docs/running.pod, lib/Parrot/OpTrans/C.pm,
1681         lib/Parrot/OpTrans/CGoto.pm, lib/Parrot/OpTrans/CPrederef.pm:
1682         Anyway, here's a patch to repair pbc2c.pl, combined with removing
1683         typecasts in various places throughout the code. It probably won't
1684         work for Windows yet. The libparrot.a target might need to be
1685         modified to at least prevent it from confusing make on Windows; I
1686         don't know.
1688         Preliminary instructions for using pbc2c.pl are in
1689         docs/running.pod.  I'll try to do better later.
1691         Courtesy of Steve Fink <steve@fink.com>
1693 2002-02-16 04:15  dan
1695         * exceptions.c, include/parrot/exceptions.h: Warnings cleaned up
1697         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1699 2002-02-16 00:03  simon
1701         * classes/: perlarray.pmc, perlhash.pmc:
1703         pmc is already defined!
1705 2002-02-15 23:20  brentdax
1707         * Configure.pl, config_h.in, exceptions.c, pmc.c,
1708         include/parrot/exceptions.h: Far more informative panic messages.
1710 2002-02-15 03:24  dan
1712         * lib/Parrot/: Op.pm, OpsFile.pm, OpTrans/CPrederef.pm: Here's a
1713         much more extensive patch that fixes it to work properly, and
1714         deletes a bazillion casts as well.  It also points to the question
1715         "can we make the byte_code be an opcode_t* already?"
1717         Oh, and it makes some of the formatting prettier, so it's gotta be
1718         good.
1720         Courtesy of * Steve Fink <steve@fink.com>
1722 2002-02-15 02:30  dan
1724         * Makefile.in, core.ops, embed.c, misc.c, packfile.c, rx.ops,
1725         stacks.c: I've tweaked the "lint" target somewhat and fixed a few
1726         of the things it finds.  Attaching the patch as well as the current
1727         lint output.
1729         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1731 2002-02-15 01:59  dan
1733         * t/pmc/: array.t, perlhash.t: Disable non-functional bits for the
1734         moment.
1736 2002-02-15 01:48  dan
1738         * t/pmc/perlarray.t: Skip tests for features that need twiddling
1740 2002-02-15 01:40  dan
1742         * t/op/rx.t: Skip a test that's waiting for us to rejig some array
1743         things
1745 2002-02-14 23:30  dan
1747         * resources.c: Added comment for buffer tag routine. D'oh!
1749 2002-02-14 23:28  dan
1751         * resources.c, include/parrot/resources.h: Added buffer mark
1752         routine for GC
1754 2002-02-14 23:17  dan
1756         * memory.c, classes/array.pmc, classes/perlarray.pmc,
1757         include/parrot/memory.h, include/parrot/string.h, t/pmc/perlhash.t:
1758         Rejigged memory system a bit. Now should be ready for the horror
1759         that is garbage collection.
1761 2002-02-14 19:33  gregor
1763         * ops2c.pl, include/parrot/oplib.h:
1764         Added code to automatically generate a function within an oplib to
1765         lookup opinfos given the op name. This will come in handy in future
1766         when we want to twiddle opcode tables at run time and possibly at
1767         startup time.
1769 2002-02-14 19:25  gregor
1771         * examples/assembly/queens.pasm:
1772         Regenerated queens.pasm from queens.jako since the clone_* stuff
1773         went away.
1775 2002-02-14 17:12  dan
1777         * resources.c, include/parrot/resources.h: Finished up the
1778         interface for memory and tracked interpreter thingies.
1780 2002-02-14 16:53  dan
1782         * memory.c, include/parrot/memory.h: intercept free and realloc
1784 2002-02-14 05:53  dan
1786         * interpreter.c, runops_cores.c: The type changes in struct
1787         Packfile break the pointer math used in a few places to calculate
1788         the address of the end of the loaded byte code. This causes
1789         segfaults in build_asm in jit.c when using -j. It also breaks the
1790         bounds checking on opcode address in runops_slow_core.
1792         The patch adds the necessary cast to correct the code_end
1793         calculations.
1795         Courtesy of Jason Gloudon <perl@gloudon.com>
1797 2002-02-14 01:01  ajgough
1799         * types/: bignum.c, bignum.h, bignum_test.pl: Added support for
1800         BigInt operations (I think), tests for normal operation continue to
1801         pass.  Also a shed load of comments.
1803 2002-02-13 01:34  ajgough
1805         * types/: bignum.c, bignum.h, bignum_atest.pl, bignum_test.pl: This
1806         is a (mostly) working bignumber library.  There remains much work
1807         to do though, some functions are not yet implemented and headers
1808         need to find their way to the correct place RSN.  Also support for
1809         bigints and a sensible error reporting mechanism are needed.
1811 2002-02-12 18:51  dan
1813         * misc.c: Fix some warnings
1815 2002-02-12 17:10  dan
1817         * misc.c: Run through indent -kr -nce so I can read it
1819 2002-02-12 16:49  dan
1821         * misc.c: Need standard header/footer comments
1823 2002-02-11 20:32  simon
1825         * classes/array.pmc:
1826         get and set pmc methods.
1828 2002-02-11 20:19  simon
1830         * classes/array.pmc:
1831         Maybe the keys aren't integer...
1833 2002-02-11 20:03  simon
1835         * core.ops, vtable.tbl, classes/default.pmc:
1836         {g,s}et_pmc_keyed
1838 2002-02-11 19:07  simon
1840         * vtable.tbl, classes/default.pmc:
1841         Add set_pmc. Usee with caution.
1843 2002-02-11 18:20  dan
1845         * classes/: array.pmc, perlarray.pmc: Patch array classes to
1846         compile
1848 2002-02-11 17:59  simon
1850         * core.ops, embed.c, global_setup.c, key.c, rx.ops,
1851         classes/perlarray.pmc, classes/perlhash.pmc:
1852         Make it compile.
1854 2002-02-11 17:57  simon
1856         * packfile.c, include/parrot/packfile.h:
1857         Reduce warnings
1859         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
1861 2002-02-11 17:55  dan
1863         * docs/parrot_assembly.pod: Document some key ops
1865 2002-02-11 09:20  brentdax
1867         * pmc.c, include/parrot/exceptions.h: Adding a panic ought to be
1868         disgustingly easy.
1870 2002-02-11 00:34  simon
1872         * core.ops, include/parrot/exceptions.h:
1873         This is what keyed set ops look like. Remember, however, that for
1874         keyed functions, all operands must be PMCs. set(PMC, PMC, INT)
1875         means $1 = $2[$3], not $1[$2] = $3. set(PMC,PMC,PMC) is so
1876         obviously ambiguous that you ought to use the 4-arg version
1877         instead.
1879 2002-02-10 23:12  jgoff
1881         * classes/: array.pmc, perlarray.pmc: Properly allocate
1882         SELF->data's array of PMC* data in array and perlarray.pmc.  This
1883         isn't tested yet, but should be fairly straightforward.  PerlHash
1884         needs to be finished before the system will compile again, and that
1885         should be done in the next few days.
1887 2002-02-09 04:46  jgoff
1889         * classes/: array.pmc, default.pmc, intqueue.pmc,
1890         parrotpointer.pmc, perlarray.pmc, perlhash.pmc, perlundef.pmc:
1891         Added basic _keyed member functions.  Unfortunately this still
1892         doesn't fix the problems that are causing the build to break. It's
1893         a start though. I'm not implementing the PMC add functions just
1894         yet.
1896 2002-02-08 15:59  simon
1898         * classes/array.pmc:
1899         Some more work on getting the array stuff up to date.
1901 2002-02-08 12:23  simon
1903         * classes/array.pmc, classes/perlhash.pmc, include/parrot/key.h,
1904         lib/Parrot/Vtable.pm:
1905         Got array->get_integer_keyed doing what I think it ought to. One
1906         down, all the rest to go.
1908 2002-02-08 11:47  simon
1910         * vtable.tbl:
1911         Although I didn't intend it to be quite that broken...
1913 2002-02-08 11:42  simon
1915         * vtable.tbl, include/parrot/parrot.h, lib/Parrot/Vtable.pm:
1916         Completely break Parrot, but at least we get the key stuff right
1917         for now.
1919 2002-02-08 06:25  dan
1921         * hints/darwin.pl: Silences the warning about passing in
1922         -flat_namespace to the compile.  That's a link-only flag.
1924 2002-02-08 04:52  jgoff
1926         * classes/: array.pmc, default.pmc, intqueue.pmc,
1927         parrotpointer.pmc, perlarray.pmc, perlhash.pmc, perlint.pmc,
1928         perlnum.pmc, perlstring.pmc, perlundef.pmc: Filled in missing
1929         return values in *.pmc, added some missing casts to the repeat_foo
1930         members, and deleted the _index members from the perlscalar
1931         classes.  Basic cleanup, and getting ready for _keyed functions.
1933 2002-02-07 04:49  mrjoltcola
1935         * examples/assembly/bsr.pasm: Elaborated on the bsr/ret example,
1936         added a nested subroutine call.
1938 2002-02-07 04:32  jgoff
1940         * vtable.tbl, lib/Parrot/Vtable.pm: vtable.tbl got some minor
1941         changes in order to give the whitespace rules a little workout, and
1942         do a little bit more testing. No actual structural changes were
1943         made.  lib/Parrot/Vtable.pm got an interface change, and more
1944         importantly should be ready to support the new '_keyed' attribute,
1945         which will work roughly thus: PMC* src_value gets remapped to 'PMC*
1946         src_value' followed by 'KEY* src_key'.  This will be how the new
1947         _keyed operators will function, and those should be written within
1948         a few days.
1950 2002-02-06 18:00  doughera
1952         * misc.c: Change C++-style comments to C comments (again).  Remove
1953         unused perl5 code that was in #if 0/#endif.
1955 2002-02-06 17:59  doughera
1957         * warnings.c: Add trailing newline.
1959 2002-02-06 04:14  mrjoltcola
1961         * include/parrot/io.h, io/io.c: Minor cleanup.
1963 2002-02-06 03:11  mrjoltcola
1965         * examples/assembly/io1.pasm, io/io.c, io/io_win32.c: Tied up a
1966         couple of loose end in win32 IO stuff. Open behaves now but needs
1967         more work.
1969 2002-02-05 21:02  brentdax
1971         * classes/pmc2c.pl: Length on whoami init was always 7--a problem
1972         which showed up in Purify builds.
1974 2002-02-05 17:15  simon
1976         * misc.c:
1977         Warning fixes.
1979         Courtesy of: Jonathan Stowe <gellyfish@gellyfish.com>
1981 2002-02-05 17:08  doughera
1983         * misc.c: Avoid C++-style comments.
1985 2002-02-05 17:07  doughera
1987         * lib/Parrot/Jit/sun4Generic.pm: Generated assembly programs were
1988         not valid assembler for Sun's /usr/ccs/bin/as.  Now they are,
1989         thanks to Jason Gloudon <perl@gloudon.com>.
1991 2002-02-05 14:04  simon
1993         * misc.c:
1994         Make the problem different, perhaps even better.
1996 2002-02-05 13:49  simon
1998         * misc.c:
1999         Possibly fix a `short int' is promoted to `int' when passed through
2000         `...' scary error, possibly make things absolutely worse.
2002 2002-02-05 13:15  simon
2004         * Configure.pl:
2005         Placate Tru64.
2007 2002-02-05 13:12  simon
2009         * warnings.c:
2010         Not going to get far without this one...
2012 2002-02-05 11:41  simon
2014         * string.c:
2015         Don't barf when handed null pointers.
2017 2002-02-05 10:04  simon
2019         * misc.c, include/parrot/misc.h:
2020         Fix some trivial bugs in warnings code.
2022 2002-02-05 09:27  simon
2024         * misc.c:
2025         Oops, forgot this one; also added %P support.
2027 2002-02-05 09:20  simon
2029         * MANIFEST, Makefile.in, core.ops, embed.c, interpreter.c,
2030         test_main.c, classes/perlundef.pmc, include/parrot/embed.h,
2031         include/parrot/interpreter.h, include/parrot/misc.h,
2032         include/parrot/parrot.h, include/parrot/warnings.h:
2033         Warnings support.
2035         Courtesy of: Brent Dax <brentdax@cpan.org>
2037 2002-02-05 05:41  jgoff
2039         * vtable.tbl, lib/Parrot/Vtable.pm, t/pmc/perlstring.t: Changed the
2040         format of vtable.tbl to get rid of the tab-dependence.  The format
2041         now looks roughly like this:
2043         init() # 'void' and 'unique' are assumed INTVAL type ( ) # 'unique'
2044         is assumed str void concatenate (PMC* value, PMC* dest) # Nothing
2045         assumed here, but note the C-like prototyping.  Also had to disable
2046         one test that depended upon 'concat_p_p_s', which isn't necessary
2047         anyway.
2049         Vtable.pm will change again when the type '_keyed' is added,
2050         because that requires remapping parameters slightly differently
2051         again.  Also, note that it assumes 'value' is the first parameter
2052         in the list. This assumption will go away at the same time.
2054 2002-02-04 16:57  ajgough
2056         * core.ops, t/pmc/perlstring.t, t/pmc/pmc.t: More tests for pmc
2057         functions.  Thanks to Simon Glover.
2059 2002-02-04 02:47  ajgough
2061         * hints/os2.pl: Removes a flag from the os/2 hints file that isn't
2062         needed.  I suspect that the entire hints file isn't really needed,
2063         but there's no one to actually tell us this.
2065 2002-02-02 15:45  ask
2067         * docs/ParrotFAQ.htm: fix internal links
2069 2002-02-02 04:06  jgoff
2071         * classes/: array.pmc, intqueue.pmc, perlarray.pmc, perlhash.pmc:
2072         Moving the internal KEY structure from the cache.struct_val member,
2073         where it doesn't really belong, to the internal SELF->data member.
2074         This frees up the cache/type members for other usage.
2076         This is the first step in moving PMCs to the point where we can do
2077         multidimensional PMC handles. The next step is to change the
2078         assembler to accept the syntax of 'set P0["foo"],7'.
2080 2002-02-02 00:13  nicholas
2082         * include/parrot/global_setup.h: Patch from Jonathan Stowe to
2083         prototype Parrot_Array_class_init
2085 2002-02-02 00:13  nicholas
2087         * embed.c: Casts to tidy up warnings from Jonathan Stowe Change
2088         time to sum_time to avoid warning on FreeBSD about tracking a
2089         global [No, this warning does not appear on Linux. Yes, it is real
2090         :-)]
2092 2002-02-01 23:02  nicholas
2094         * embed.c: Fix fprintf format warning in Parrot_runcode. From Simon
2095         Glover
2097 2002-02-01 20:20  nicholas
2099         * t/pmc/pmc.t: Add end at end of asm in test (from Simon Glover)
2101 2002-02-01 18:20  nicholas
2103         * lib/Parrot/Test.pm: Env.pm on 5.005_03 doesn't do a use vars for
2104         you
2106 2002-02-01 13:22  nicholas
2108         * MANIFEST: Add docs/embed.pod and t/op/ifunless.t
2110 2002-02-01 12:19  simon
2112         * core.ops, t/op/ifunless.t, t/op/integer.t:
2113         Added "unless" op.
2115 2002-02-01 12:11  simon
2117         * lib/Parrot/Test.pm:
2118         Remove a warning.
2120 2002-02-01 01:38  nicholas
2122         * MANIFEST, MANIFEST.SKIP, Makefile.in: Add a MANIFEST.SKIP file,
2123         and a manitest target to Makefile.in that lets one test the
2124         manifest.
2126 2002-02-01 00:03  dan
2128         * core.ops, global_setup.c, include/parrot/pmc.h: More setup for
2129         PMC dynaloading
2131 2002-01-31 21:46  gregor
2133         * Configure.pl, Makefile.in, hints/mswin32.pl:
2134         A few more things are now configable, so we are closer to win32
2135         shared library builds. Not there yet, but closer.
2137 2002-01-31 21:00  dan
2139         * global_setup.c, classes/pmc2c.pl, include/parrot/global_setup.h,
2140         include/parrot/pmc.h: First step in dynamically loading PMC classes
2142 2002-01-31 19:38  dan
2144         * Makefile.in: Dependencies in the Makefile are currently too broad
2145         brush.  I don't enjoy waiting for everything to recompile every
2146         time I try to tweak the jit. The only file that #includes
2147         jit_struct.h is jit.c, so I feel that the Makefile dependencies
2148         should reflect this, and not cause a gratuitous recompile of
2149         everything.  There are probably other auto-generated header files
2150         that world+dog should not depend on.
2152         Courtesy of  Nicholas Clark <nick@unfortu.net>
2154 2002-01-31 19:03  gregor
2156         * Makefile.in, lib/Parrot/Test.pm, t/harness:
2157         Added two new make targets:
2159           * testp: Like 'make test', but passes -P to t/harness, so you get
2160         to
2161             see how broken predereferencing is.
2163           * testj: Like 'make test', but passes -j to t/harness, so you get
2164         to
2165             see how broken JIT is.
2167         Now, anyone who wants to see how good all three ways of running are
2168         can do so, at the cost of about 3x the time.
2170 2002-01-31 17:09  brentdax
2172         * embed.c, test_main.c: Implement the ARGV-in-P0 thing.
2174 2002-01-31 03:41  grunblatt
2176         * docs/jit.pod: Update jit.pod
2178 2002-01-31 03:20  grunblatt
2180         * jit/i386/core.jit: Hold this until we get an assemble tool,
2181         because of the different objdump problems.
2183 2002-01-31 03:13  grunblatt
2185         * Configure.pl, lib/Parrot/Jit/sun4-solaris.pm,
2186         lib/Parrot/Jit/sun4Generic.pm: Use dis intead of objdump.  Courtesy
2187         of: Jason Gloudon <perl@gloudon.com>
2189 2002-01-31 02:22  grunblatt
2191         * jit/i386/core.jit: Continue if the register is null
2193 2002-01-30 23:50  grunblatt
2195         * lib/Parrot/Jit/: alpha-bsd.pm, alpha-linux.pm, alphaGeneric.pm,
2196         i386-bsd.pm, i386-linux.pm, i386Generic.pm, sun4-solaris.pm,
2197         sun4Generic.pm: Move the AS and OBJDUMP constants to each os
2198         specific file.
2200 2002-01-30 23:35  mrjoltcola
2202         * io/io_win32.c: Change implementation of isatty on win32,
2203         suggested by Hong Zhang.
2205 2002-01-30 23:19  sfink
2207         * jit2h.pl, lib/Parrot/Op.pm, lib/Parrot/OpsFile.pm: Added
2208         Op::may_jump boolean method.
2210         Replaced jit2h's hardcoded pattern match to decide what ops might
2211         change the control flow.
2213 2002-01-30 22:13  dan
2215         * Configure.pl, MANIFEST, testparrotfuncptr.c: This patch allows
2216         parrot to mostly-build with tcc.  It allows one to skip compiling
2217         the JIT stuff (by specifying --define jitcapable=0), and it
2218         introduces a test program which gives a friendlier error in this
2219         case for compilers which are as picky as tcc is about function
2220         pointer conversion.
2222         If anyone figures out the proper way to cast these function
2223         pointers this may not be necessary.
2225         Courtesy of Josh Wilmes <josh@hitchhiker.org>
2227 2002-01-30 20:54  dan
2229         * docs/running.pod, lib/Parrot/Test.pm: I'm being anal again.
2230         Here's an update to docs/running.pod to better reflect the current
2231         state (both the test_parrot and assemble.pl improvements, plus
2232         documentation of a few more things.) And also a speling fiks
2233         s/POST_MORTERM/POST_MORTEM/.
2235         I could also replace some "perl foo" calls with "./foo" if someone
2236         wanted to set the executable flag in CVS on assemble.pl,
2237         optimize.pl, etc.
2239         Courtesy of Steve Fink <steve@fink.com>
2241 2002-01-30 20:43  dan
2243         * core.ops: find_global doesn't work, so stub out the wrong code
2245 2002-01-30 19:08  dan
2247         * lib/Parrot/Assembler.pm:  fixes the POD in Parrot::Assember so
2248         that perldoc
2249          can read it and just tidies it up generally. It also adds
2250         documentation
2251          for the constantize_integer and constantize_number functions.
2253         Courtesy of Simon Glover <scog@roe.ac.uk>
2255 2002-01-30 18:02  dan
2257         * assemble.pl, disassemble.pl, optimizer.pl, pbc2c.pl,
2258         classes/genclass.pl, classes/pmc2c.pl,
2259         languages/scheme/Scheme/Test.pm:  Many of the Perl scripts in the
2260         distribution (including assemble.pl !)
2261          can no longer find the Parrot::* modules. Enclosed patch fixes
2262         (although
2263          it would be nice if there were an easier way to do this).
2265         Courtesy of  Simon Glover <scog@roe.ac.uk>
2267 2002-01-30 16:00  mrjoltcola
2269         * io/io_win32.c: Correct function calls for win32_fdopen and arg
2270         types.
2272 2002-01-30 15:50  mrjoltcola
2274         * io/io_unix.c: Minor bug fix for fdopen flag arg type.
2276 2002-01-30 15:42  grunblatt
2278         * pbc2c.pl, examples/assembly/Makefile: Updates related to moving
2279         files around
2281 2002-01-30 15:38  grunblatt
2283         * MANIFEST: Enclosed patch adds the new SPARC-based JIT files to
2284         the manifest,  and also puts it back into alphabetical order.
2286         Courtesy of: Simon Glover <scog@roe.ac.uk>
2288 2002-01-30 14:41  nicholas
2290         * embed.c: Patch from Simon Glover to clean up warnings where
2291         prototype is () not (void)
2293 2002-01-30 13:54  nicholas
2295         * include/parrot/embed.h, test_main.c: Add void as an explicit
2296         parameter in test_main.c's usage(), version(void) and embed.h's
2297         Parrot_new() Without these gcc moans: include/parrot/embed.h:34:
2298         warning: function declaration isn't a prototype
2300 2002-01-30 12:08  simon
2302         * lib/Parrot/.cvsignore:
2303         Ignore generated Perl modules.
2305 2002-01-30 12:07  simon
2307         * t/harness:
2308         Run the PMC tests as well.
2310 2002-01-30 12:04  simon
2312         * MANIFEST:
2313         Fix MANIFEST after recent t/pmc rejig.
2315 2002-01-30 11:42  simon
2317         * lib/Parrot/Test.pm:
2318         Report non-zero exit codes.
2320         Courtesy of: Michael G Schwern <schwern@pobox.com>
2322 2002-01-30 11:39  simon
2324         * t/op/rx.t:
2325         Skip final test, TODO doesn't work yet.
2327 2002-01-30 09:54  brentdax
2329         * docs/embed.pod: Leon Brocard was kind enough to explain to me how
2330         predereferencing works.
2332 2002-01-30 09:38  brentdax
2334         * docs/: embed.pod, parrot.pod: Document this newfangled embedding
2335         subsystem.
2337 2002-01-30 09:37  brentdax
2339         * include/parrot/embed.h: Fix a mistake, clear up a warning.
2341 2002-01-30 09:37  brentdax
2343         * config_h.in: Expose another flag for embedders.
2345 2002-01-30 05:07  jgoff
2347         * make_vtable_ops.pl, t/harness: Both files didn't know of the new
2348         location for Parrot/, and t/harness wasn't able to run the new
2349         op/pmc tests. Both problems fixed, so I think I'm going to declare
2350         the build suitable for public consumption.
2352 2002-01-30 04:34  robert
2354         * docs/Makefile.in: update for CVS movement
2356 2002-01-30 04:32  robert
2358         * Makefile.in: Adjust for CVS reorganization.  (This time, edit the
2359         .in file, not the real Makefile)
2361 2002-01-30 04:20  robert
2363         * Configure.pl, jit2h.pl, ops2c.pl, ops2pm.pl, pmc_pm.pl,
2364         vtable_h.pl, classes/pmc2c.pl, include/parrot/parrot.h: Updates
2365         related to moving files around
2367 2002-01-30 04:10  robert
2369         * MANIFEST: Update MANIFEST to reflect CVS reorg.
2371 2002-01-30 04:07  robert
2373         * Configure.pl: Add './lib' to our @INC because Parrot/* moved.
2375 2002-01-30 03:56  robert
2377         * Parrot/: .cvsignore, Assembler.pm, BuildUtil.pm, Op.pm,
2378         OpTrans.pm, OpsFile.pm, Optimizer.pm, PackFile.pm, String.pm,
2379         Test.pm, Vtable.pm, Jit/alpha-bsd.pm, Jit/alpha-linux.pm,
2380         Jit/alphaGeneric.pm, Jit/i386-bsd.pm, Jit/i386-linux.pm,
2381         Jit/i386-nojit.pm, Jit/i386Generic.pm, Jit/sun4-solaris.pm,
2382         Jit/sun4Generic.pm, OpLib/.cvsignore, OpTrans/C.pm,
2383         OpTrans/CGoto.pm, OpTrans/CPrederef.pm, PackFile/ConstTable.pm,
2384         PackFile/Constant.pm, PackFile/FixupTable.pm: Moved Parrot/* to
2385         lib/Parrot/
2387 2002-01-30 03:46  robert
2389         * languages/miniperl/miniperlc: renamed to mpc
2391 2002-01-30 03:45  robert
2393         * t/op/: pmc.t, pmc_array.t, pmc_perlarray.t, pmc_perlhash.t,
2394         pmc_perlstring.t: Moved to t/op/pmc/
2396 2002-01-30 03:40  robert
2398         * include/parrot/register_funcs.h: Renamed to regfuncs.h
2400 2002-01-30 03:14  jgoff
2402         * classes/perlarray.pmc, t/op/pmc_perlarray.t, t/pmc/perlarray.t:
2403         Fixed some problems with PerlArray and added tests.  Previously,
2404         only integers could be accessed by negative indices.  After this
2405         change, all basic types can be accessed by negative indices, and
2406         they can also be set at negative indices.
2408 2002-01-29 22:13  brentdax
2410         * TODO: Just look at the stupid diff.
2412 2002-01-29 21:53  simon
2414         * TODO, docs/vtables.pod:
2415         New TODO, and tiny addition to vtables.pod
2417 2002-01-29 21:47  mrjoltcola
2419         * include/parrot/io.h, io/io_unix.c: Minor bug fix in io_unix.
2421 2002-01-29 21:38  mrjoltcola
2423         * Makefile.in: Makefile.in tweak for io depend.
2425 2002-01-29 21:15  brentdax
2427         * embed.c: Fix a segfault and some profiling formatting nits.
2429 2002-01-29 20:54  brentdax
2431         * pmc.c: Oops.
2433 2002-01-29 20:50  brentdax
2435         * pmc.c, include/parrot/exceptions.h: Exceptions are better than
2436         segfaults.
2438 2002-01-29 20:17  mrjoltcola
2440         * interpreter.c, core.ops, io.ops: CVS missed this.
2442 2002-01-29 20:17  mrjoltcola
2444         * io/io.c: These should have gone in Sunday with the rest. CVS is
2445         out to get me.
2447 2002-01-29 18:39  brentdax
2449         * platforms/win32.h: Fix Win32 whoops.
2451 2002-01-29 18:29  brentdax
2453         * embed.c, include/parrot/embed.h: A couple minor embedding fixes.
2455 2002-01-29 17:51  simon
2457         * MANIFEST, Makefile.in, config_h.in, embed.c, test_main.c,
2458         include/parrot/embed.h, include/parrot/parrot.h:
2459         Embedding support. Cool.
2461         Courtesy of: <brentdax@cpan.org>
2463 2002-01-29 15:40  grunblatt
2465         * Configure.pl: Detect if we can use "objdump".  Courtesy of: Jason
2466         Gloudon <perl@gloudon.com>
2468 2002-01-29 14:42  simon
2470         * include/parrot/parrot.h:
2471         Platform stuff has to be included *after* system headers.
2473 2002-01-29 14:05  grunblatt
2475         * interpreter.c, jit.c, Parrot/Jit/sun4-solaris.pm,
2476         Parrot/Jit/sun4Generic.pm, lib/Parrot/Jit/sun4-solaris.pm,
2477         lib/Parrot/Jit/sun4Generic.pm, include/parrot/jit.h,
2478         jit/sun4/core.jit, jit/sun4/lib.jit, jit/sun4/string.jit: Added
2479         support for SPARC.  Courtesy of: Jason Gloudon <perl@gloudon.com>
2481 2002-01-29 10:56  simon
2483         * platforms/generic.h:
2484         If we don't have a S_ISREG, produce something close to it.
2486 2002-01-29 06:01  dan
2488         * MANIFEST, README, LICENSES/Artistic: Finally added licenses
2490 2002-01-29 04:38  jgoff
2492         * classes/array.pmc: Forgot to remove some C++-isms from the
2493         get_{foo}_index routines.
2495 2002-01-29 04:26  jgoff
2497         * MANIFEST, Makefile.in, global_setup.c, classes/Makefile.in,
2498         classes/array.pmc, include/parrot/pmc.h, t/op/pmc_array.t,
2499         t/pmc/array.t: Added array class that languages other than perl can
2500         use for a basis.  It has no features like preextension, and the
2501         array index starts at 0.
2503         MANIFEST - added classes/array.pmc and t/op/pmc_array.t Makefile.in
2504         and classes/Makefile.in - Added array.pmc to the makefile.
2505         (Assuming rules like .pmc.o are portable (or even possible) I might
2506         alter classes/Makefile.in to autobuild the appropriate files.
2508 2002-01-29 02:32  dan
2510         * MANIFEST, Parrot/Test.pm, lib/Parrot/Test.pm,
2511         lib/Test/Builder.pm, lib/Test/More.pm, lib/Test/Simple.pm,
2512         lib/Test/Utils.pm, t/op/interp.t, t/op/macro.t, t/op/pmc.t,
2513         t/op/rx.t, t/op/stacks.t, t/pmc/pmc.t:
2514             Update to Test::More 0.41 which adds Test::Builder
2516             Delete the vestigal Test::Utils
2518             Change Parrot::Test so it uses Test::Builder instead of Evil
2519         Wrappers
2520             around Test::More
2522             output_* now returns whether the test passes or fails
2524             Parrot::Test no longer exports Test::More's functions.  Instead
2525         they
2526             can simply be used together.  The few tests which used
2527         Test::More
2528             features (ie. skip) have 'use Test::More' added.
2530             I ditched the export_to_level() crutch.  Do we expect parrot to
2531         work on
2532             5.004?  (literally 5.004, not 5.004_04)
2534         Courtesy of Michael G Schwern <schwern@pobox.com>
2536 2002-01-28 21:04  dan
2538         * docs/overview.pod:  There is no opcodes.pod; I'm assuming the
2539         pointer should actually be to
2540          parrot_assembly.pod, as the canonical documentation.
2542         Courtesy of Simon Glover <scog@roe.ac.uk>
2544 2002-01-28 20:21  dan
2546         * languages/jako/jakoc, t/op/stacks.t: Toss the last traces of
2547         clone[inps]
2549 2002-01-28 19:18  dan
2551         * core.ops, register.c: clone[insp] is dead
2553 2002-01-28 17:46  grunblatt
2555         * Parrot/Jit/i386Generic.pm, lib/Parrot/Jit/i386Generic.pm,
2556         jit/i386/core.jit: Fix to make the jit work in linux yet again.
2558 2002-01-28 16:45  dan
2560         * MANIFEST, README.OS_X: Added Mac OS X specific readme documenting
2561         the requirement for fink at the moment.
2563 2002-01-28 15:59  simon
2565         * test_main.c:
2566         People might try and run a directory file, with spectacular
2567         results.  We don't want that. No.
2569 2002-01-28 14:58  doughera
2571         * core.ops: Avoid C++-style comments.
2573 2002-01-28 14:16  grunblatt
2575         * jit.c, io/io.c: Changed jit.c to fit the way registers are
2576         accessed.  Readded the pio_(stdin|stdout|stderr) to make builds
2577         work again.
2579 2002-01-28 13:47  doughera
2581         * include/parrot/register.h: Avoid C++-style comment.
2583 2002-01-28 06:03  dan
2585         * MANIFEST, core.ops, interpreter.c, key.c, register.c, trace.c,
2586         Parrot/OpTrans/C.pm, Parrot/OpTrans/CGoto.pm,
2587         lib/Parrot/OpTrans/C.pm, lib/Parrot/OpTrans/CGoto.pm,
2588         docs/parrot_assembly.pod, include/parrot/interpreter.h,
2589         include/parrot/parrot.h, include/parrot/regfuncs.h,
2590         include/parrot/register.h, include/parrot/register_funcs.h,
2591         include/parrot/string.h, include/parrot/string_funcs.h: Registers
2592         are now stored in the interpreter structure itself, rather than
2593         just a pointer to the top of the register structure. Pushes and
2594         pops now involve memcpys, but register access has one fewer
2595         dereference.
2597         Fails four of the register stack tests, though, so not perfect.
2598         Needs fixing, but this is a good place to start.
2600 2002-01-28 04:40  mrjoltcola
2602         * test_main.c: cvs commit missed this. ??
2604 2002-01-28 04:27  mrjoltcola
2606         * examples/assembly/io1.pasm, include/parrot/exceptions.h,
2607         include/parrot/interpreter.h, include/parrot/io.h, io/io.c,
2608         io/io_stdio.c, io/io_unix.c, io/io_win32.c: ParrotIO local to each
2609         interpreter now (at least in theory).  IO handle array added.  Misc
2610         bug fixes in layer handling.  Changed any IO_ constants to PIO_ so
2611         we don't conflict         with system libraries.  Still have broken
2612         stuff in win32 and stdio layer.
2614 2002-01-28 04:01  mrjoltcola
2616         * include/parrot/chartype.h: Typo in chartype.h include guard.
2618 2002-01-28 03:41  mrjoltcola
2620         * t/op/interp.t: Fix flag for interp so we don't get "info"
2621         messages which break tests.
2623 2002-01-28 01:54  dan
2625         * include/parrot/string.h: A few more buffer/string flags
2627 2002-01-27 11:33  nicholas
2629         * chartypes/unicode.c: Cast unsigned argument to int in call to
2630         isdigit to silence gcc warning.
2632 2002-01-26 23:18  grunblatt
2634         * Parrot/Jit/i386Generic.pm, lib/Parrot/Jit/i386Generic.pm: Turn
2635         off that flag.
2637 2002-01-26 23:17  grunblatt
2639         * Parrot/Jit/i386Generic.pm, lib/Parrot/Jit/i386Generic.pm,
2640         jit/i386/core.jit: [no log message]
2642 2002-01-26 22:18  simon
2644         * jit/i386/core.jit:
2645         Jumping to 0x0 is a recipe for segfaults.
2647 2002-01-26 18:35  simon
2649         * t/harness:
2650         Allow user to select which tests to harness
2652         Courtesy of: Nicholas Clark <nick@unfortu.net>
2654 2002-01-26 17:20  grunblatt
2656         * Parrot/Jit/i386-linux.pm, Parrot/Jit/i386Generic.pm,
2657         lib/Parrot/Jit/i386-linux.pm, lib/Parrot/Jit/i386Generic.pm: Patch
2658         to make the jit work in linux again.
2660 2002-01-26 16:52  dan
2662         * Configure.pl, hints/darwin.pl: Add -Wno-shadow, as Darwin's
2663         headers can't cope with this. Darwin-only
2665 2002-01-26 16:04  dan
2667         * include/parrot/parrot.h: Quick note to remind folks that this
2668         isn't the file they're looking for if they're writing extensions or
2669         embedding parrot.
2671         Courtesy of Andy Dougherty <doughera@lafayette.edu>
2673 2002-01-26 00:41  mrjoltcola
2675         * MANIFEST: Oopsy.
2677 2002-01-26 00:37  mrjoltcola
2679         * docs/ParrotFAQ.htm: Parrot FAQ : Created and maintained by Adam
2680         Turoff
2682 2002-01-25 01:31  grunblatt
2684         * jit/alpha/core.jit: There is no neg or fneg.
2686 2002-01-25 01:27  grunblatt
2688         * core.ops, Parrot/Jit/alphaGeneric.pm, Parrot/Jit/i386Generic.pm,
2689         lib/Parrot/Jit/alphaGeneric.pm, lib/Parrot/Jit/i386Generic.pm,
2690         jit/alpha/core.jit, jit/i386/core.jit, t/op/integer.t,
2691         t/op/number.t: Added Parrot_neg.  Erase t.s
2693 2002-01-24 23:26  dan
2695         * interpreter.c: Best make sure unused elements are NULL
2697 2002-01-24 23:24  dan
2699         * interpreter.c: Fix stupid thinko
2701 2002-01-24 18:37  doughera
2703         * Makefile.in: Add a few missing dollar signs in the lifetest
2704         section so that ${exe} and the like get properly interpolated.
2706 2002-01-24 18:15  mrjoltcola
2708         * docs/: .cvsignore, Makefile.in, parrot.pod: Fix pod generation
2709         for io.ops file. Add reference to it in parrot.pod.  Courtesy of
2710         Simon Glover <scog@roe.ac.uk>
2712 2002-01-24 06:43  mrjoltcola
2714         * io/io_stdio.c: Oops.
2716 2002-01-24 06:34  mrjoltcola
2718         * include/parrot/io.h, io/TODO, io/io.c, io/io_stdio.c: Did a bit
2719         of work on the buffering layer.  Decided to use shared read/write
2720         buffer (as do most implementations) for now since its the simplest
2721         way to keep everything synced, (flush on seeks, flush read on
2722         writes, etc.)
2724 2002-01-24 03:38  mrjoltcola
2726         * test_main.c: Cleaned up option handling code a bit for main().
2728 2002-01-23 23:22  dan
2730         * interpreter.c, include/parrot/interpreter.h,
2731         include/parrot/resources.h: Now each interpreter gets its own hash
2732         for globals.
2734 2002-01-23 20:45  dan
2736         * Configure.pl: Fix a warning when there's no - in an architecture
2738 2002-01-22 23:57  grunblatt
2740         * docs/running.pod: [no log message]
2742 2002-01-22 20:29  doughera
2744         * KNOWN_ISSUES: long doubles don't work on SPARC either.  It
2745         appears to be a generic problem (if sizeof(long double) >
2746         sizeof(double)), not an x86-specific one.
2748 2002-01-22 16:57  doughera
2750         * runops_cores.c: Change variable name from time to starttime to
2751         avoid gcc warning about variable name shadowing.
2753 2002-01-22 16:55  doughera
2755         * classes/pmc2c.pl: Include class_init prototype too.
2757 2002-01-22 16:01  doughera
2759         * MANIFEST: [no log message]
2761 2002-01-22 01:04  ajgough
2763         * global_setup.c, classes/default.pmc, classes/intqueue.pmc,
2764         classes/parrotpointer.pmc, classes/perlarray.pmc,
2765         classes/perlhash.pmc, classes/perlint.pmc, classes/perlnum.pmc,
2766         classes/perlstring.pmc, classes/perlundef.pmc, classes/pmc2c.pl,
2767         include/parrot/global_setup.h: Patch from Nick Clark to quieten
2768         warnings from pmc files.  Message-ID:
2769         <20020121224719.GE1726@Bagpuss.unfortu.net>
2771 2002-01-22 00:53  ajgough
2773         * test_main.c: Clears up a couple of warnings in test_main.c.
2774         Thanks to Nick Clark.  Message-ID:
2775         <20020121190457.GB1726@Bagpuss.unfortu.net>
2777 2002-01-22 00:47  ajgough
2779         * string.c, chartypes/unicode.c, chartypes/usascii.c,
2780         include/parrot/chartype.h: Cause all codepoints to be treated as
2781         UNITVALS, and get_digit to return INTVAL, just in case. (Thanks to
2782         Nick Clark, see also: Message-ID:
2783         <20020121214137.GC2371@Bagpuss.unfortu.net> )
2785 2002-01-22 00:24  dan
2787         * key.c: We do mandate an ANSI conformant C compiler, don't we?
2789         Appended patch cures these warnings:
2791         key.c: In function `debug_key': key.c:29: warning: int format,
2792         INTVAL arg (arg 3) key.c:33: warning: int format, INTVAL arg (arg
2793         3) key.c:33: warning: int format, INTVAL arg (arg 4) key.c:36:
2794         warning: int format, INTVAL arg (arg 3) key.c:36: warning: int
2795         format, INTVAL arg (arg 4)
2797         Courtesy of Nicholas Clark <nick@unfortu.net>
2799 2002-01-21 12:41  mrjoltcola
2801         * MANIFEST, io.ops: For some reason cvs commit didn't get this, may
2802         be clock skew.
2804 2002-01-21 06:37  mrjoltcola
2806         * io/io.c: Cleanup a warning
2808 2002-01-21 06:28  mrjoltcola
2810         * examples/assembly/io1.pasm, include/parrot/io.h, io/io.c,
2811         io/io_stdio.c, io/io_unix.c, io/io_win32.c: Added 32/64 bit seek
2812         ops. Various other IO twiddlings.
2814 2002-01-21 03:25  grunblatt
2816         * Makefile.in: Use $jitcpuarch instead of $cpuarch.  Thanks to
2817         Melvin Smith for the catch up.
2819 2002-01-20 23:13  sfink
2821         * stacks.c: Fixed logic errors, need tests
2823 2002-01-20 22:17  brentdax
2825         * rx.c, rx.ops, include/parrot/rx.h, t/op/rx.t: Make /m work and
2826         prepare for /i to work.
2828 2002-01-20 20:52  grunblatt
2830         * Configure.pl, MANIFEST, Makefile.in, interpreter.c, jit.c,
2831         jit2h.pl, Parrot/Jit/alpha-bsd.pm, Parrot/Jit/alpha-linux.pm,
2832         Parrot/Jit/alphaGeneric.pm, Parrot/Jit/i386-bsd.pm,
2833         Parrot/Jit/i386-linux.pm, lib/Parrot/Jit/alpha-bsd.pm,
2834         lib/Parrot/Jit/alpha-linux.pm, lib/Parrot/Jit/alphaGeneric.pm,
2835         lib/Parrot/Jit/i386-bsd.pm, lib/Parrot/Jit/i386-linux.pm,
2836         Parrot/Jit/i386Generic.pm, lib/Parrot/Jit/i386Generic.pm,
2837         include/parrot/jit.h, jit/alpha/core.jit, jit/alpha/lib.jit,
2838         jit/alpha/string.jit:
2839         - Added support for ALPHA, by now linux and bsd.
2841         - Reduced jit2h.pl execution time by precompiling the call to the
2842         unimplemented op.
2844         - Reduced the duplicated code in Parrot/Jit/*.pm by adding
2845         Parrot/Jit/${cpuarch}Generic.pm
2847         - Changed the way to detect quads to what is written in "man
2848         perlfunc".
2850 2002-01-20 17:23  brentdax
2852         * rx.ops: There's no such thing as rx_allocateinfo.
2854 2002-01-19 08:26  brentdax
2856         * pbc2c.pl: Stop this stupid "hard-code the new oplib" stuff.
2858 2002-01-19 07:12  mrjoltcola
2860         * MANIFEST, core.ops, io.ops, pbc2c.pl: Separate pure ParrotIO ops
2861         into io.ops, leave the STDIO wrappers        in core.ops until they
2862         disappear.  Added debug op for switching on VM debug flag
2864 2002-01-19 01:55  mrjoltcola
2866         * include/parrot/io.h, io/TODO, io/io.c, io/io_stdio.c,
2867         io/io_unix.c, io/io_win32.c: Added a few more Win32 layer calls
2869 2002-01-19 00:55  brentdax
2871         * Makefile.in, rx.c, rx.ops, rxstacks.c, include/parrot/rx.h,
2872         include/parrot/rxstacks.h: Add regex-specific stacks for
2873         efficiency.
2875 2002-01-18 23:58  dan
2877         * Configure.pl: I think the optimal fix here is simply to remove
2878         -ansi -pedantic.  -ansi may well have some uses, but even the gcc
2879         man pages say "There is no reason to use this option [-pedantic];
2880         it exists only to satisfy pedants."
2882         Courtesy of Andy Dougherty <doughera@lafayette.edu>
2884 2002-01-18 23:23  dan
2886         * MANIFEST, docs/parrot.pod, docs/running.pod: This patch add
2887         docs/running.pod, which lists the various executables Parrot
2888         currently includes, examples of running them, and mentions of where
2889         they fail to work. It's more of a cry for help than a useful
2890         reference. :-) I've been having trouble recently when making
2891         changes in figuring out whether I broke anything, because any
2892         non-default way of running the system seems to be already broken. I
2893         can't tell what brokenness is expected and what isn't.
2895         Courtesy of  Steve Fink <steve@fink.com>
2897 2002-01-15 22:13  brentdax
2899         * include/parrot/rx.h, rx.c, rx.ops: Remove the last vestiges of
2900         substring use and enhance performance.
2902 2002-01-15 21:03  ajgough
2904         * string.c: Fix problem with string_transcode, &dest not being
2905         updated if src was already in desired encoding.
2907 2002-01-15 16:54  brentdax
2909         * rx.c, rx.ops, include/parrot/rx.h: Hunt down and destroy
2910         warnings.  Leaves only one warning, at rx.ops line 409, that I
2911         can't manage to get rid of.
2913 2002-01-15 16:50  dan
2915         * pbc2c.pl: Pointer arithmetic not quite right in the generated
2916         code.  Also patches pbc2c.pl to work with rx.ops.
2918         Courtesy of Jason Gloudon <perl@gloudon.com>
2920 2002-01-15 16:15  dan
2922         * classes/Makefile.in: All the C files in classes/ weren't being
2923         compiled with an of the gcc warnings flags. With this patch they
2924         are, and there are an awful lot of warnings, more than I could hope
2925         to understand and clear up (within any sensible time period before
2926         submitting a rash of patches, by which time everyone else would
2927         have moved the code on)
2929         Courtesy of Nicholas Clark <nick@unfortu.net>
2931 2002-01-15 16:10  dan
2933         * core.ops, ops2c.pl, Parrot/Op.pm, Parrot/OpTrans.pm,
2934         Parrot/OpsFile.pm, lib/Parrot/Op.pm, lib/Parrot/OpTrans.pm,
2935         lib/Parrot/OpsFile.pm, Parrot/OpTrans/C.pm,
2936         Parrot/OpTrans/CGoto.pm, Parrot/OpTrans/CPrederef.pm,
2937         lib/Parrot/OpTrans/C.pm, lib/Parrot/OpTrans/CGoto.pm,
2938         lib/Parrot/OpTrans/CPrederef.pm, chartypes/unicode.c,
2939         chartypes/usascii.c: This patch adds a few more macros for .ops
2940         files to use. In addition to the existing
2942          goto OFFSET(...)
2943          goto ADDRESS(...)
2944          goto POP()
2945          goto NEXT()
2947         it adds
2949          expr OFFSET(...)
2950          expr ADDRESS(...)
2951          expr POP()
2952          expr NEXT()
2954         This is intended mainly for use in helper functions in .ops files,
2955         but also for ops that need to eg push the address of the next
2956         opcode onto a stack. The only place this currently happens (outside
2957         of my private code) is in the bsr opcode, which previously
2958         hardcoded the computation.
2960         This patch also makes ops2c.pl move the CUR_OPCODE #define a bit
2961         higher in the generated file so that it can be used by static
2962         functions in the preamble.
2964         Finally, I ran into a parentheses matching problem -- should goto
2965         OFFSET(...) rewrite    \bgoto\s+OFFSET\((.*)\) or
2966         \bgoto\s+OFFSET\((.*?)\)
2968         It was done inconsistently for the different calculations, and of
2969         course neither are correct because you really want matching
2970         parentheses. But that seems like too much bother. (Currently,
2971         there's only one place that uses anything other than $n in the
2972         parentheses, and that's the enternative() op.) So I made them all
2973         .*? but emulated recent POD by also allowing (( ... )) (that's two
2974         parenthesis with a space padding the body.)
2976         The generated core_ops.c and core_ops_prederef.c files after this
2977         patch are identical except for the CUR_OPCODE and REL_PC macros
2978         getting moved a little higher, and the bsr in the regular path (not
2979         prederef) uses 'CUR_OPCODE' instead of the hardcoded 'cur_opcode'.
2981         In summary, this is a big wad of meaningless changes for the
2982         current code. But it will make adding some opcodes easier in the
2983         future, and cleans up a small nit in the current bsr.
2985         Courtesy of Steve Fink <steve@fink.com>
2987 2002-01-15 08:48  brentdax
2989         * include/parrot/rx.h: Bitmaps can now include chars >255 (well,
2990         sort of).
2992 2002-01-15 08:45  brentdax
2994         * rx.c, rx.ops: Bitmaps can now include chars >255 (well, sort of).
2996 2002-01-15 05:00  brentdax
2998         * rx.ops: Speed up rx_literal--roughly doubles benchmark
2999         performance.
3001 2002-01-14 20:18  dan
3003         * vtable.tbl, vtable_h.pl: Clean up a zillion warnings
3005         Courtesy of Nicholas Clark <nick@unfortu.net>
3007 2002-01-14 20:03  dan
3009         * Configure.pl, MANIFEST, Makefile.in, core.ops, exceptions.c,
3010         global_setup.c, interpreter.c, key.c, ops2c.pl, register.c,
3011         runops_cores.c, rx.ops, stacks.c, string.c, test_main.c, trace.c,
3012         chartypes/unicode.c, chartypes/usascii.c, classes/default.pmc,
3013         classes/parrotpointer.pmc, classes/perlarray.pmc,
3014         classes/perlhash.pmc, classes/perlint.pmc, classes/perlnum.pmc,
3015         classes/perlstring.pmc, classes/perlundef.pmc,
3016         encodings/singlebyte.c, encodings/utf16.c, encodings/utf32.c,
3017         encodings/utf8.c, include/parrot/exceptions.h, include/parrot/io.h,
3018         include/parrot/parrot.h, include/parrot/rx.h, io/io_stdio.c,
3019         io/io_win32.c, platforms/win32.c, platforms/win32.h, t/op/pmc.t,
3020         t/op/pmc_perlhash.t, t/op/rx.t, t/pmc/perlhash.t, t/pmc/pmc.t: This
3021         patch cleans up most of the MSVC-warnings when using warning level
3022         4 (the highest, one above the default level 3). It turns off two
3023         level-4 warnings for 'unreferenced formal parameter' and 'named
3024         type definition in parentheses', the latter of which was turning up
3025         warnings in MS VC headers.  Level 4 warnings also helped me find a
3026         couple of other lurking bugs in the parrot code.
3028         Replaces the various fprintf/exit combos with calls to
3029         internal_exception, which uses var_args to emulate printf. Various
3030         exception types were added as well. These are probably temporary
3031         until a real exception system arrives.
3033         Fixed some places in the IO code where wrong functions were being
3034         called, or put into the vtable.
3036         Courtesy of "Michel Lambert" <mlambert@legendent.com>
3038 2002-01-14 19:00  dan
3040         * MANIFEST: D'oh! Forgot a file.
3042         Courtesy of Andy Dougherty <doughera@lafayette.edu>
3044 2002-01-14 18:44  brentdax
3046         * rx.c, rx.ops, include/parrot/rx.h: Use bitmaps where it makes
3047         sense (and a few other enhancements to regexes).
3049 2002-01-14 07:07  brentdax
3051         * interpreter.c, runops_cores.c, test_main.c,
3052         include/parrot/interpreter.h: Make profiling a little more useful.
3054 2002-01-13 19:44  dan
3056         * Configure.pl: Turn off unsed things warnings for now
3058 2002-01-13 19:39  dan
3060         * key.c, classes/perlarray.pmc: key.c:   intialize KEY.keys
3062         classes/perlarray.c:  * get_string: is casting
3063         SELF->cache.struct_val to a STRING*,    while all other methods are
3064         using it as a KEY*; don't know    what a perlarray stringifies to,
3065         so replacing with NULL  * get_bool: the default behaviour does not
3066         look right to me
3068         Courtesy of "Mattia Barbon" <mbarbon@dsi.unive.it>
3070 2002-01-13 19:37  dan
3072         * Makefile.in, classes/Makefile.in: Makefile.in:   (Re)add ld_debug
3073         flags to LDFLAGS, so that Configure.pl --debugging   works with
3074         MSVC
3076         classes/Makefile.in   make easier to add pmb2c.pl flags to all
3077         pmc2c calls
3079         Courtesy of "Mattia Barbon" <mbarbon@dsi.unive.it>
3081 2002-01-13 19:36  dan
3083         * io/io_win32.c:   according to my MSVC docs, you should use
3084         _tcslen only after
3085           #including tchar.h
3087         Courtesy of  "Mattia Barbon" <mbarbon@dsi.unive.it>
3089 2002-01-13 19:35  dan
3091         * docs/intro.pod: Doc tweak.
3093         Courtesy of Simon Glover <scog@roe.ac.uk>
3095 2002-01-13 19:34  dan
3097         * t/: op/pmc_perlstring.t, pmc/perlstring.t:  Enclosed test checks
3098         that
3100           if Px, ...
3102          works with PerlString PMCs; these should be false if they are "",
3103         0, or
3104          are undefined, and true in every other case.
3106         Courtesy of Simon Glover <scog@roe.ac.uk>
3108 2002-01-13 19:23  dan
3110         * Configure.pl, config_h.in, core.ops, classes/perlnum.pmc: Change
3111         NUMVAL_FMT to FLOATVAL_FMT.
3113         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3115 2002-01-13 17:45  jgoff
3117         * Makefile.in, global_setup.c, classes/Makefile.in,
3118         classes/intqueue.pmc, include/parrot/pmc.h, t/op/pmc.t,
3119         t/pmc/pmc.t: IntQueue is for an upcoming article on perl.com on
3120         designing your own classes.
3122 2002-01-13 08:47  simon
3124         * interpreter.c, Parrot/OpTrans/CPrederef.pm,
3125         lib/Parrot/OpTrans/CPrederef.pm:
3126         Fix bsr in prederef mode.
3128         Courtesy of: Jason Gloudon <perl@gloudon.com>
3130 2002-01-12 15:33  dan
3132         * interpreter.c, key.c, packfile.c, register.c, resources.c,
3133         string.c, encodings/singlebyte.c, encodings/utf32.c,
3134         include/parrot/parrot.h, io/io.c, io/io_stdio.c, io/io_unix.c:
3135         Silence most of the unused variable warnings.
3137         Courtesy of Nicholas Clark <nick@unfortu.net>
3139 2002-01-12 15:18  dan
3141         * rx.ops: This patch fixes a warning and also changes an 'int' to
3142         an 'INTVAL'.  All tests should pass on Solaris.
3144         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3146 2002-01-12 15:13  dan
3148         * interpreter.c, string.c, test_main.c, classes/parrotpointer.pmc,
3149         examples/assembly/life.pasm, include/parrot/interpreter.h,
3150         include/parrot/io.h, io/io.c, io/io_stdio.c, io/io_unix.c,
3151         io/io_win32.c: More IO work. (Plus some misc twiddles)
3153         Courtesy of Melvin Smith <mrjoltcola@mindspring.com>
3155 2002-01-12 01:14  dan
3157         * include/parrot/string.h: fix a missing name
3159 2002-01-12 00:39  grunblatt
3161         * include/parrot/string.h: Few typos.
3163 2002-01-12 00:16  grunblatt
3165         * jit.c, jit2h.pl, jit/i386/core.jit: Added support for opcodes
3166         that change the program control flow.
3168 2002-01-11 23:53  brentdax
3170         * classes/parrotpointer.pmc: Tell the GC to keep its hands out of a
3171         ParrotPointer's guts.
3173 2002-01-11 23:03  dan
3175         * include/parrot/string.h: flags for the buffers, for GC
3177 2002-01-11 22:31  dan
3179         * include/parrot/pmc.h: PMC flag docs. Those'd be good...
3181 2002-01-11 22:21  dan
3183         * include/parrot/pmc.h: Started with PMC flags
3185 2002-01-11 19:33  dan
3187         * config_h.in, memory.c, resources.c, string.c,
3188         include/parrot/resources.h: Beginnings of a memory allocation/gc
3189         system. Without the GC part.
3191 2002-01-11 18:05  dan
3193         * core.ops: Make sure constant pushes are right on mixed 32/64 bit
3194         systems
3196         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3198 2002-01-11 17:50  dan
3200         * core.ops, pbc2c.pl, Parrot/OpTrans/CGoto.pm,
3201         lib/Parrot/OpTrans/CGoto.pm, include/parrot/interpreter.h: Here is
3202         a patch that makes pbc2c generated code work with the bsr opcode.
3203         It creates a new opcode 'enternative', and uses this to support a
3204         mixed model of interpretation and execution of compiled C code.
3206         Courtesy of Jason Gloudon <perl@gloudon.com>
3208 2002-01-11 17:48  dan
3210         * Makefile.in: Add life as a potential .exe target
3212 2002-01-11 17:30  dan
3214         * include/parrot/resources.h: Start of arena stuff for GC
3216 2002-01-11 05:34  brentdax
3218         * rx.ops: Docs modifications.
3220 2002-01-11 04:19  brentdax
3222         * rx.ops, include/parrot/rx.h: Remove unnecessary evilness from
3223         regular expressions.
3225 2002-01-11 03:44  grunblatt
3227         * jit/i386/core.jit: off by one.
3229 2002-01-11 02:25  dan
3231         * Makefile.in, examples/assembly/life.pasm: Tweak to life benchmark
3233         Courtesy of Steve Fink <steve@fink.com>
3235 2002-01-11 00:32  brentdax
3237         * MANIFEST: Forgot to put parrotpointer.pmc in the MANIFEST.
3239 2002-01-10 23:22  ajgough
3241         * string.c, docs/strings.pod: Removed all the nul termination code,
3242         as this is in general a bad idea.  Note added to docs/strings.pod
3243         to warn people away from assuming termination.
3245 2002-01-10 23:14  dan
3247         * core.ops, interpreter.c, jit.c, rx.c, rx.ops, stacks.c,
3248         testparrotsizes_c.in, include/parrot/interpreter.h,
3249         include/parrot/rx.h, include/parrot/stacks.h: Much nicer stack
3250         implementation
3252         Courtesy of Steve Fink <steve@fink.com>
3254 2002-01-10 22:48  dan
3256         * core.ops: Fix 'basic' test 1 for sizeof(opcode_t) !=
3257         sizeof(INTVAL)
3259         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3261 2002-01-10 22:46  dan
3263         * key.c, classes/perlhash.pmc, t/op/pmc_perlhash.t,
3264         t/pmc/perlhash.t:  Well, actually two bugs.
3266          The first is an off-by-one error in key.c than can cause parrot
3267          to segfault if hash % NUM_BUCKETS happens to be zero.
3269          The other is a bug in the PerlHash init() code that causes new
3270         PerlHash
3271          PMCs to start with the wrong size.
3273          Both fixed below; also tests to prevent them recurring.
3275         Courtesy of Simon Glover <scog@roe.ac.uk>
3277 2002-01-10 22:30  dan
3279         * classes/default.pmc, classes/perlarray.pmc, t/op/pmc_perlarray.t,
3280         t/pmc/perlarray.t:  The enclosed patch allows one to use the if op
3281         with a PerlArray,
3283         Courtesy of Simon Glover <scog@roe.ac.uk>
3285 2002-01-10 21:31  dan
3287         * examples/assembly/life.pasm: Tweaked to be a benchmarkable thing
3289 2002-01-10 20:30  grunblatt
3291         * jit.c, jit2h.pl, Parrot/Jit/i386-bsd.pm,
3292         Parrot/Jit/i386-linux.pm, lib/Parrot/Jit/i386-bsd.pm,
3293         lib/Parrot/Jit/i386-linux.pm, jit/i386/core.jit, jit/i386/lib.jit:
3294         All the op codes that doesn't change the program control flow now
3295         work in the JIT by calling the code generated by the compiler when
3296         the op is not in core.jit TODO:     * Make all the ops that change
3297         the program control flow (and are not on core.jit) work.      *
3298         Remove the dispatch payload.
3300 2002-01-10 17:13  dan
3302         * classes/parrotpointer.pmc: This patch fixes parrotpointer.pmc,
3303         which tries to return 0 from a void function.
3305         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3307 2002-01-10 17:12  dan
3309         * t/op/macro.t: Skip tests, don't comment them out.
3311         Courtesy of Simon Glover <scog@roe.ac.uk>
3313 2002-01-10 17:10  dan
3315         * rx.c: This fixes a couple of nits in rx.c:
3317            1. There's no newline at the end, which makes gcc unhappy.
3318            2. We should use NULL, not 0 or "", for creating null pointers.
3320         Courtesy of Simon Glover <scog@roe.ac.uk>
3322 2002-01-10 17:09  dan
3324         * MANIFEST:  Adds rx.t, removes duplicated rx.c and puts everything
3325         back in
3326          alphabetical order.
3328         Courtesy of Simon Glover <scog@roe.ac.uk>
3330 2002-01-10 16:54  ajgough
3332         * resources.c: Made free_string check that there was a string to
3333         free.  In reponse to a bug spotted by Joshua Nye.
3335 2002-01-09 22:44  dan
3337         * global_setup.c: Forgot the setup
3339 2002-01-09 22:35  dan
3341         * rx.ops: Forgot this one
3343 2002-01-09 22:35  dan
3345         * MANIFEST, Makefile.in, rx.c, string.c, include/parrot/pmc.h,
3346         include/parrot/rx.h, t/op/rx.t: Preliminary regex implementation.
3347         Tests don't work, though.
3349         Courtesy of "Brent Dax" <brentdax@cpan.org>
3351 2002-01-09 21:48  dan
3353         * t/: op/pmc_perlarray.t, pmc/perlarray.t: Whoops, forgot that
3355 2002-01-09 21:22  dan
3357         * classes/Makefile.in, classes/parrotpointer.pmc, Makefile.in:
3358         Generic pointer holder class
3360         Courtesy of "Brent Dax" <brentdax@cpan.org>
3362 2002-01-09 21:19  dan
3364         * MANIFEST, classes/perlarray.pmc, t/op/pmc.t, t/pmc/pmc.t: Array
3365         patches.
3367 2002-01-09 19:54  dan
3369         * io/io_unix.c: Whoops. Forgot one
3371 2002-01-09 19:43  dan
3373         * key.c, classes/perlhash.pmc, t/op/pmc_perlhash.t,
3374         t/pmc/perlhash.t: Fix hash crash bugs
3376         Courtesy of Simon Glover <scog@roe.ac.uk>
3378 2002-01-09 19:13  dan
3380         * memory.c: Signedness whoops.
3382         Courtesy of Simon Glover <scog@roe.ac.uk>
3384 2002-01-09 18:23  dan
3386         * MANIFEST, Makefile.in, include/parrot/io.h, io/io.c, io/io_os.c,
3387         io/io_stdio.c, io/io_win32.c: Changes:
3389         -Minor layer cleanups -Win32 layer added (mostly stubs for now) but
3390         will be using the   Win32 API and company rather than the unix-ish
3391         fake ones.  -stdin/stdout/stderr Win32 specific code added. Rather
3392         than use   0,1,2, Microsoft says use GetStdHandle(), etc. so that
3393         stuff is   there. Soon we should be able to start using these
3394         rather than   fprintf(stderr, ...) and remove stdio linkage.
3396         Courtesy of <mrjoltcola@mindspring.com>
3398 2002-01-09 17:26  dan
3400         * test_main.c: Fixes bad code gen on x86.
3402         Courtesy of Josh Wilmes <josh@hitchhiker.org>
3404 2002-01-09 17:24  dan
3406         * Configure.pl, config_h.in, core.ops, key.c, classes/perlint.pmc,
3407         classes/perlnum.pmc: This patch adds macros to the config.h file
3408         for INTVAL and NUMVAL printf formats.
3410         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3412 2002-01-08 22:55  ajgough
3414         * docs/vtables.pod: Clarify what get_string should do.
3416 2002-01-08 20:05  dan
3418         * key.c: Keep comments in sync.
3420         Courtesy of Simon Glover <scog@roe.ac.uk>
3422 2002-01-08 19:50  dan
3424         * memory.c, include/parrot/memory.h: Need a realloc
3426 2002-01-08 17:24  gregor
3428         * .cvsignore, Configure.pl, Makefile.in:
3429         Added 'reconfig' make target and corresponding --reconfig option to
3430         Configure.pl, so its very easy to re-run Configure.pl with the last
3431         (command-line) options you passed it.
3433 2002-01-08 16:33  dan
3435         * core.ops, make_vtable_ops.pl, Parrot/OpsFile.pm,
3436         lib/Parrot/OpsFile.pm: Add in, out, and inout parameters to teh ops
3437         in core.ops. Potential help for optimizers and JITters.
3439         Courtesy of gregor@linux1.kennedytech.com
3441 2002-01-08 16:32  dan
3443         * key.c: Grab key length from the right spot
3445         Courtesy of "Peter Gibbs" <peter@emkel.co.za>
3447 2002-01-08 13:27  ajgough
3449         * test_main.c: Fix slight thinko in realloc usage for reading from
3450         stdin.
3452 2002-01-08 11:34  ajgough
3454         * test_main.c: Allow test_parrot to read bytecode stream from
3455         stdin, adds -f command line option, with "-f -" doing the stdin
3456         stuff.
3458 2002-01-08 06:34  jgoff
3460         * key.c, include/parrot/key.h: key.c - Added simple implementation
3461         of buckets.  include/parrot/key.h - Added enum_key_bucket type
3463 2002-01-08 03:21  jgoff
3465         * include/parrot/key.h: Added an undef type to the key structure,
3466         so we can delete keys without confusion.
3468 2002-01-07 22:09  dan
3470         * key.c, packfile.c, string.c, include/parrot/key.h,
3471         include/parrot/packfile.h, include/parrot/string.h: Fix whines
3472         about index being redefined
3474         Courtesy of Nick Clark
3476 2002-01-07 21:15  dan
3478         * ops2pm.pl: Don't allow the same ops lib to be included twice.
3480         Courtesy of Steve Fink <steve@fink.com>
3482 2002-01-07 20:48  dan
3484         * Parrot/Test.pm, lib/Parrot/Test.pm: Report useful info for test
3485         failures
3487         Courtesy of "Brent Dax" <brentdax@cpan.org>
3489 2002-01-07 20:43  dan
3491         * docs/intro.pod: Missing a comma
3493         Courtesy of "coral" <coral@eekeek.org>
3495 2002-01-07 20:41  dan
3497         * global_setup.c: Quiet a warning
3499         Courtesy of Simon Glover <scog@roe.ac.uk>
3501 2002-01-07 18:58  gregor
3503         * t/op/.cvsignore:
3504         Ignore intermediate test files.
3506 2002-01-07 17:01  gregor
3508         * ops2c.pl:
3509         Print a warning if an .ops file is mentioned more than once on the
3510         command line.
3512 2002-01-07 16:12  ajgough
3514         * t/: op/pmc_perlhash.t, pmc/perlhash.t: A couple more hash tests,
3515         these shouldn't fail.
3517 2002-01-07 15:15  simon
3519         * t/: op/pmc_perlhash.t, pmc/perlhash.t:
3520         Stop segfaults.
3522 2002-01-07 15:11  simon
3524         * key.c:
3525         Fix zero-termination bug in hash function.
3527 2002-01-07 13:37  ajgough
3529         * MANIFEST, t/op/pmc_perlhash.t, t/pmc/perlhash.t: Added
3530         pmc_perlhash.t, one test currently fails, one passes, yin-yang fun.
3532 2002-01-07 11:53  brentdax
3534         * Configure.pl: Fixes the + thing in prompts, plus adds a synonym
3535         (:add{foo}) and a new deleting thing (:rem{foo})
3537 2002-01-07 11:43  simon
3539         * Configure.pl:
3540         Gobble the + before concatenating.
3542 2002-01-07 03:53  dan
3544         * Makefile.in: Dependency fix for new ops setup.
3546 2002-01-07 03:33  jgoff
3548         * classes/perlarray.pmc: Add negative indices, and fix a small
3549         allocation problem.
3551 2002-01-06 23:54  ajgough
3553         * hints/os2.pl: Makes the hints file take account of ldflags and
3554         ccflags being split.  This hints file is still very specific to
3555         builds with gnu tools, but a proper solution can wait.   Thanks to
3556         Nick Burch.
3558 2002-01-06 22:12  dan
3560         * Makefile.in, ops2c.pl, Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm:
3561             -changes Parrot::OpLib::core's dependencies to reflect the new
3562         selectable ops files    -allows some of the special forms of 'goto'
3563         inside the PREAMBLE of an opcode file
3565         Courtesy of "Brent Dax" <brentdax@cpan.org>
3567 2002-01-06 19:59  simon
3569         * Makefile.in:
3570         *cough*
3572 2002-01-06 18:19  dan
3574         * classes/perlhash.pmc: Fix some type issues.
3576         Courtesy of Josh Wilmes <josh@hitchhiker.org>
3578 2002-01-06 18:03  dan
3580         * Configure.pl, Makefile.in: It adds a prompt to Configure asking
3581         for a list of opcode files to use.  The default is everything
3582         available except for obscure.ops.
3584         In addition, it makes it so that if your answer to a question
3585         starts with '+', it will concatenate it to the default.  For
3586         example:
3588         What C compiler do you want to use? [cl] +HAHAHA!!!
3590         will result in $PConfig{cc} eq "cl HAHAHA!!!".  While that example
3591         is not terribly useful, it is quite useful with things like
3592         command-line flags and the like.
3594         Finally, it contains a couple tweaks so that my syntax-highlighting
3595         editor recognizes some heredocs correctly.  :^)
3597         Courtesy of "Brent Dax" <brentdax@cpan.org>
3599 2002-01-06 17:59  dan
3601         * KNOWN_ISSUES, MANIFEST, README: Doc Patches
3603         Courtesy of "Bryan C. Warnock" <bwarnock@raba.com>
3605 2002-01-06 17:58  dan
3607         * MANIFEST:  We're missing a couple of files from the MANIFEST.
3609         Courtesy of Simon Glover <scog@roe.ac.uk>
3611 2002-01-06 17:57  dan
3613         * ops2c.pl, Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm:   1.
3614         Compiler directives, etc. in files other than core.ops will now
3615         work.   2.  Compiler warnings will now display the file and line
3616         number of the  opcode file.
3618         Courtesy of "Brent Dax" <brentdax@cpan.org>
3620 2002-01-06 17:52  dan
3622         * languages/jako/jakoc: Fix breakage caused by iton/ntoi going away
3624         Courtesy of Simon Glover <scog@roe.ac.uk>
3626 2002-01-06 17:36  dan
3628         * docs/intro.pod: Lots of updates
3630         Courtesy of Simon Glover <scog@roe.ac.uk>
3632 2002-01-06 02:34  gregor
3634         * interpreter.c:
3635         Add some internal documentation on the theory of operation of the
3636         prederef code.
3638 2002-01-06 02:17  gregor
3640         * interpreter.c:
3641         Removed unnecessary include.
3643 2002-01-05 12:37  simon
3645         * classes/.cvsignore:
3646         Ignore generated .h files.
3648         Courtesy of: Josh Wilmes <josh@hitchhiker.org>
3650 2002-01-05 12:37  simon
3652         * Configure.pl:
3653         Make lcc happier by adding a dummy structure.
3655         Courtesy of: Josh Wilmes <josh@hitchhiker.org>
3657 2002-01-05 12:35  simon
3659         * global_setup.c, classes/perlundef.pmc, t/op/pmc.t, t/pmc/pmc.t:
3660         Make perlundef work. (And coincidentally stop segfaults in the
3661         tests :)
3663         Courtesy of: Jason Gloudon <perl@gloudon.com>
3665 2002-01-05 04:59  dan
3667         * t/: op/pmc.t, pmc/pmc.t: Undef tests added.
3669 2002-01-05 04:55  jgoff
3671         * classes/perlhash.pmc: Added perlhash class definition
3673 2002-01-05 04:48  dan
3675         * core.ops: Fix on 64 bit platforms with 32-bit opcode_t
3677         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3679 2002-01-05 03:57  jgoff
3681         * MANIFEST, Makefile.in, core.ops, global_setup.c, key.c,
3682         vtable.tbl, classes/Makefile.in, classes/default.pmc,
3683         include/parrot/key.h, include/parrot/pmc.h, t/op/pmc.t,
3684         t/pmc/pmc.t: Initial hash commit.
3686         core.ops - Adding set({i,n,s},p,s) and set(p,{i,n,s},s) operations.
3687          key.h  - Adding NUM_BUCKETS classes/default.pmc - Adding
3688         set_{integer,number,string}_index_s
3690         This does not yet do collision resolution, but will soon.
3692 2002-01-05 02:54  dan
3694         * interpreter.c: More unsigned fixes
3696         Courtesy of "Bryan C. Warnock" <bwarnock@raba.com>
3698 2002-01-04 22:13  dan
3700         * Configure.pl, hints/mswin32.pl: Makes config's building of the
3701         test programs happier.
3703         Courtesy of "Jason Diamond" <jason@injektilo.org>
3705 2002-01-04 19:00  dan
3707         * Configure.pl, Makefile.in, hints/darwin.pl: Add link flags as
3708         separate things
3710 2002-01-04 18:27  dan
3712         * Configure.pl, Makefile.in, classes/Makefile.in, hints/mswin32.pl:
3713         Fixes to get things configuring and building on Win32 Native.
3715         Courtesy of "Jason Diamond" <jason@injektilo.org>
3717 2002-01-04 17:39  dan
3719         * hints/vms.pl: debug cleanup
3721 2002-01-04 16:53  dan
3723         * docs/parrot.pod:  The enclosed patch brings the list of
3724         documentation in parrot.pod
3725          up to date.
3727         Courtesy of Simon Glover <scog@roe.ac.uk>
3729 2002-01-04 16:47  dan
3731         * test_main.c, Parrot/Jit/i386-linux.pm,
3732         lib/Parrot/Jit/i386-linux.pm: In an attempt to just keep knocking
3733         off warnings..
3735         Courtesy of Kevin Falcone <kevin@jibsheet.com>
3737 2002-01-04 16:44  dan
3739         * Configure.pl, Makefile.in: Fixed linking to use linker.
3741         Courtesy of Josh Wilmes <josh@hitchhiker.org>
3743 2002-01-04 16:39  dan
3745         * io/io_stdio.c: Added CVS tag info
3747 2002-01-04 16:35  dan
3749         * hints/cygwin.pl: Time for this. We need a sane linker, and ld2
3750         isn't it
3752 2002-01-04 16:26  dan
3754         * languages/miniperl/Miniperl/Tokenizer.pm: Quiet a warning in the
3755         Tokenizer test
3757         Courtesy of Jonathan Stowe <gellyfish@gellyfish.com>
3759 2002-01-04 16:17  dan
3761         * chartypes/unicode.c: Silence some warnings.
3763         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3765 2002-01-04 16:09  dan
3767         * classes/: genclass.pl, perlarray.pmc, perlint.pmc, perlnum.pmc,
3768         perlstring.pmc, perlundef.pmc:  - genclass.pl attempts to put $Id$
3769         into generated files
3770            but the $Id$ string gets mangled when it's committed.
3771            This patch fixes the existing .pmc files and fixes genclass.pl.
3773          - Makes capitalization in .pmc header match actual filenames
3775          - The command for calling genclass.pl in vtables.pod is incorrect,
3776            since it assumes you're running in classes/ but genclass.pl
3777         assumes
3778            it's being run from the main directory. I changed genclass.pl to
3779         not
3780            care.
3782         Courtesy of Steve Fink <steve@fink.com>
3784 2002-01-04 03:57  dan
3786         * MANIFEST, io/TODO, io/io_stdio.c: No wonder things worked for
3787         me--I *had* the files:wq!
3789 2002-01-04 03:40  dan
3791         * MANIFEST: Whoops--remove files not really there
3793 2002-01-04 03:37  dan
3795         * interpreter.c, stacks.c, include/parrot/stacks.h: The patch below
3796         my sig adds a new_stack() function to take care of the allocation
3797         and setup of "generic" stacks.
3799         Courtesy of "Brent Dax" <brentdax@cpan.org>
3801 2002-01-04 02:36  dan
3803         * core.ops:  The entry in core.ops for puts(s|sc) is missing a =cut
3804         and so
3805          writes a load of junk in core_ops.pod. Applied patch fixes.
3807         Courtesy of Simon Glover <scog@roe.ac.uk>
3809 2002-01-04 02:35  dan
3811         * classes/: perlint.pmc, perlnum.pmc, perlstring.pmc: The PerlInt
3812         logical-or is using get_integer instead of get_bool for logical
3813         operations. This patch corrects that.
3815         Perlnum and perlstring have working get_bool's, so the default
3816         logical_or and logical_and should be sufficient. The empty methods
3817         are pointed to the default logical_or.
3819         Courtesy of Jason Gloudon <perl@gloudon.com>
3821 2002-01-04 02:31  dan
3823         * Makefile.in: docs/Makefile should be removed by realclean, but
3824         isn't
3826         Courtesy of Kevin Falcone <kevin@jibsheet.com>
3828 2002-01-04 02:29  dan
3830         * classes/: Makefile.in, pmc2c.pl: PMC inheritance! Yay!
3832         Courtesy of Steve Fink <steve@fink.com>
3834 2002-01-04 00:51  dan
3836         * docs/vtables.pod: More docs
3838         Courtesy of Steve Fink <steve@fink.com>
3840 2002-01-04 00:47  dan
3842         * Configure.pl: Updated 64-bit patch
3844         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3846 2002-01-04 00:43  dan
3848         * Configure.pl: 64-bit Fix.
3850         Courtesy of "Bryan C. Warnock" <bwarnock@raba.com>
3852 2002-01-03 22:37  dan
3854         * MANIFEST, Makefile.in, interpreter.c, include/parrot/io.h,
3855         io/io.c, io/io_os.c: Code cleanup, started STDIO layer, started
3856         some buffering work.       Additional work on other layers.
3858         Courtesy of Melvin Smith <mrjoltcola@mindspring.com>
3860 2002-01-03 19:41  gregor
3862         * disassemble.pl, obscure.ops, packfile.c, pbc2c.pl:
3863         Updated copyright messages on top-level files.
3865 2002-01-03 04:23  robert
3867         * make.pl: Add author information.  Bonsai test.
3869 2002-01-03 04:02  dan
3871         * io/io_os.c: Twig Bonsai
3873 2002-01-03 03:45  dan
3875         * io/: io_os.c, io_os.c: Twig Bonsai
3877 2002-01-03 03:41  dan
3879         * io/io_os.c: Twig Bonsai
3881 2002-01-02 21:42  gregor
3883         * packfile.c, include/parrot/packfile.h:
3884         Get rid of warnings in packfile.[hc]
3886 2002-01-02 20:39  gregor
3888         * manicheck.pl:
3889         Bracketed translated patterns with ^ and $.
3891 2002-01-02 20:11  dan
3893         * io/io_os.c: silence a warning
3895 2002-01-02 19:52  grunblatt
3897         * jit.c, jit2h.pl, include/parrot/jit.h: Moved the definition of
3898         op_assembly to jit_struct.h, so that we get the real number of ops.
3899          Removed some warnings.
3901 2002-01-02 19:31  tom
3903         * string.c: Fix string transcoding so that it actually works.
3905         Patch from Peter Gibbs <peter@emkel.co.za>
3907 2002-01-02 19:20  gregor
3909         * manicheck.pl:
3910         A program to check the MANIFEST file, accounting for .cvsignore
3911         files.
3913 2002-01-02 19:19  dan
3915         * t/harness: twig bonsai
3917 2002-01-02 19:13  dan
3919         * t/harness: twig bonsai
3921 2002-01-02 18:54  dan
3923         * t/harness: Tweak to test Bonsai
3925 2002-01-02 16:27  dan
3927         * Configure.pl: Allow 64-bit build of parrot on systems with a
3928         mixed 32/64 bit perl
3930         Courtesy of David M. Lloyd <dmlloyd@tds.net>
3932 2002-01-02 15:33  simon
3934         * MANIFEST, docs/Makefile:
3935         Fixed up MANIFEST. (And I removed the Makefile in docs/)
3937         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
3939 2002-01-02 13:51  simon
3941         * Configure.pl:
3942         Die on broken manifest.
3944 2002-01-02 13:48  simon
3946         * jit2h.pl, examples/assembly/mops.pasm:
3947         Clear up JIT warnings.
3949         Courtesy of: Nick Clark <nick@unfortu.net>
3951 2002-01-02 04:10  dan
3953         * io/io.c, io/io_os.c, t/op/interp.t: IO stack now gets initialized
3954         only once, so new interp creation works again
3956         Courtesy of Melvin Smith <mrjoltcola@mindspring.com>
3958 2002-01-02 03:32  dan
3960         * t/op/interp.t: Stubbed the test out, since it's hanging at the
3961         moment.
3963 2002-01-02 00:55  dan
3965         * MANIFEST, Makefile.in, core.ops, include/parrot/io.h, io/io.c,
3966         io/io_os.c: Initial IO system patches
3968         Courtesy of <mrjoltcola@mindspring.com>
3970 2002-01-01 22:55  ajgough
3972         * classes/default.pmc: On second thoughts, and some prodding, the
3973         set_* methods now only set the appropriate part of the cache, and
3974         do nothing else.
3976 2002-01-01 22:29  ajgough
3978         * classes/default.pmc:  Wrote a whole host of default pmc methods.
3980          set_* create appropriate Perl* result.
3981          get_* simply grabs needed bit of cache.*_val
3983          Other methods do the rightest thing I can think of, at the moment.
3985          None yet cope with overflow, the modulus operation needs to be
3986         checked as
3987         I don't know quite which semantics we really want.
3989         Not tested yet.
3991 2002-01-01 20:23  dan
3993         * docs/Makefile, encodings/singlebyte.c, encodings/utf16.c,
3994         encodings/utf32.c, encodings/utf8.c, include/parrot/encoding.h: Got
3995         rid of unneeded tmp var and eliminated const from encode prototype
3996         since it does make changes to the string.
3998         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4000 2002-01-01 20:11  dan
4002         * Makefile.in: Make clean now tosses pdump.o
4004         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4006 2002-01-01 19:49  dan
4008         * pdump.c, test_main.c: Warnings cleanup
4010         Courtesy of Josh Wilmes <josh@sky.net>
4012 2002-01-01 19:45  dan
4014         * Configure.pl, Makefile.in, docs/.cvsignore, docs/Makefile.in,
4015         hints/mswin32.pl, languages/jako/Makefile.in,
4016         languages/scheme/Makefile.in: Makes cleanup better on non-Unix
4017         platforms
4019         Courtesy of "Jason Diamond" <jason@injektilo.org>
4021 2002-01-01 19:41  dan
4023         * include/parrot/register.h: Clean up some warnings
4025         Courtesy of Josh Wilmes <josh@hitchhiker.org>
4027 2002-01-01 19:10  simon
4029         * pbc2c.pl, Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm:
4030         Hack-around to enable compilation of code using vtable ops.
4032 2002-01-01 18:43  dan
4034         * encodings/: singlebyte.c, utf16.c, utf32.c, utf8.c: Toss <0
4035         checks on unsigned things
4037         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4039 2002-01-01 18:26  dan
4041         * runops_cores.c: More warning silences.
4043         Courtesy of Nicholas Clark <nick@unfortu.net>
4045 2002-01-01 18:25  dan
4047         * trace.c: Shuts up a warning.
4049         Courtesy of Nicholas Clark <nick@unfortu.net>
4051 2002-01-01 18:24  dan
4053         * encodings/singlebyte.c: Clean up some warnings.
4055         Courtesy of Nicholas Clark <nick@unfortu.net>
4057 2002-01-01 18:20  dan
4059         * Configure.pl: Hey, those PPros are really x86 systems! Who'dve
4060         thunk it?
4062         Courtesy of "Bryan C. Warnock" <bwarnock@raba.com>
4064 2002-01-01 18:17  dan
4066         * packfile.c: Warning cleanup
4068         Courtesy of Nicholas Clark <nick@unfortu.net>
4070 2002-01-01 17:53  dan
4072         * string.c: New string size should be based on output encoding's
4073         size, not input encoding's size.
4075         Courtesy of: "Peter Gibbs" <peter@emkel.co.za>
4077 2002-01-01 17:22  dan
4079         * Configure.pl, core.ops, interpreter.c, memory.c, runops_cores.c,
4080         string.c, test_main.c, trace.c, include/parrot/exceptions.h,
4081         include/parrot/interpreter.h, include/parrot/memory.h,
4082         include/parrot/oplib.h, include/parrot/string.h, t/op/string.t:
4083         Warnings fixups.
4085         Courtesy of Chip Turner <cturner@redhat.com>
4087 2002-01-01 17:09  dan
4089         * encodings/singlebyte.c, encodings/utf16.c, encodings/utf32.c,
4090         encodings/utf8.c, include/parrot/encoding.h: Some signed things are
4091         now unsigned, as is proper.
4093         Courtesy of: "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4094         Courtesy of: "Bryan C. Warnock" <bwarnock@raba.com>
4096 2002-01-01 16:59  dan
4098         * include/parrot/trace.h: Useless debugging prototype removed
4100         Courtesy of: "Bryan C. Warnock" <bwarnock@raba.com>
4102 2002-01-01 16:58  dan
4104         * MANIFEST: We forgot a file.
4106         Courtesy of "Bryan C. Warnock" <bwarnock@raba.com>
4108 2002-01-01 03:53  dan
4110         * Configure.pl: Okay, I give. Removed some warnings because the
4111         darned system headers were triggering them. Sloppy, sloppy
4112         coding...
4114 2002-01-01 03:48  dan
4116         * config_h.in: Add in an unsigned INTVAL.
4118         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4120 2002-01-01 03:46  dan
4122         * global_setup.c: Clean up some compiler warnings.
4124         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4126 2002-01-01 03:43  dan
4128         * ops2c.pl, Parrot/OpTrans.pm, Parrot/OpTrans/CPrederef.pm,
4129         lib/Parrot/OpTrans.pm, lib/Parrot/OpTrans/CPrederef.pm,
4130         include/parrot/op.h: Cleaned up some things to make the compiler
4131         happier.
4133         Courtesy of Nicholas Clark <nick@unfortu.net>
4135 2002-01-01 03:14  dan
4137         * Configure.pl: Quad updates.
4139         Courtesy of Nicholas Clark <nick@unfortu.net>
4141 2001-12-31 22:53  dan
4143         * include/parrot/op.h: Typedef had parameters backwards. Threw
4144         core.ops for a big whiny warnings loop.
4146 2001-12-31 22:37  dan
4148         * Makefile.in, resources.c: Tweaks to try and get things to build
4149         in the right order.
4151 2001-12-31 21:58  dan
4153         * Configure.pl: Stupid thinko fix
4155 2001-12-31 21:34  dan
4157         * Configure.pl, hints/mswin32.pl: Tweaks for Win32 builds
4159         Courtesy of: "Jason Diamond" <jason@injektilo.org>
4161 2001-12-31 21:32  dan
4163         * Configure.pl: Fix for non-gcc systems
4165 2001-12-31 20:22  dan
4167         * interpreter.c: Tweak so we can build on non-JIT platforms
4169 2001-12-31 20:11  dan
4171         * Configure.pl: Force the time on some copied files to be 'now' to
4172         make the Win builds much less annoying.
4174         Courtesy of "Jason Diamond" <jason@injektilo.org>
4176 2001-12-31 20:07  dan
4178         * Configure.pl: Nuke all object files in the parrot tree that
4179         matter when configuring.  Shouldn't be necessary with good
4180         dependencies in the makefile, but we don't have those yet.
4182 2001-12-31 20:00  gregor
4184         * chartypes/unicode.c:
4185         Silence unused variable warnings.
4187 2001-12-31 19:40  dan
4189         * Configure.pl: Minor Win32 tweaks. Tossed -Wtraditional, too
4191 2001-12-31 19:37  gregor
4193         * interpreter.c, jit.c, include/parrot/jit.h:
4194         Created a prototype for JIT functions and used it in interpreter.c.
4196 2001-12-31 19:31  dan
4198         * Configure.pl, test_gnuc.c: Better GCC detection (and version
4199         detection) with really cranky warnings if we find we're using it.
4201         Courtesy of: Nicholas Clark <nick@unfortu.net>
4203 2001-12-31 18:01  gregor
4205         * interpreter.c, include/parrot/interpreter.h, include/parrot/op.h:
4207         Fixed a few warnings wrt prototypes, etc.
4209 2001-12-31 17:23  dan
4211         * string.c: Silenced most of the compiler whines
4213 2001-12-31 17:15  gregor
4215         * Configure.pl:
4216         Get the ccname from either ccname or just cc config var.
4218 2001-12-31 17:14  gregor
4220         * Parrot/Op.pm, lib/Parrot/Op.pm:
4221         Another intermediate opbody notation. Could come in handy. Explicit
4222         types.
4224 2001-12-31 17:05  dan
4226         * string.c: Minor warnings update
4228 2001-12-31 17:00  dan
4230         * include/parrot/string.h: Warnings cleanup
4232 2001-12-31 16:00  simon
4234         * encodings/utf8.c, include/parrot/encoding.h:
4235         Remove a couple more.
4237 2001-12-31 15:58  simon
4239         * vtable_h.pl, include/parrot/global_setup.h, include/parrot/jit.h,
4240         include/parrot/op.h:
4241         Rid ourselves of a few warnings.
4243 2001-12-31 15:32  dan
4245         * Configure.pl: Made GCC ever so much pickier.
4247         Switch list courtesy of Jarkko.
4249 2001-12-31 15:22  dan
4251         * string.c: Tightened up initial allocation.
4253         Courtesy of:  "Peter Gibbs" <peter@emkel.co.za>
4255 2001-12-31 06:48  dan
4257         * Configure.pl: Minor Windows tweak
4259 2001-12-31 05:32  dan
4261         * core.ops: Unused temp variable tossed.
4263         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4265 2001-12-31 05:09  grunblatt
4267         * Configure.pl, Makefile.in, interpreter.c: Link jit.o only on
4268         supported plataforms
4270 2001-12-31 03:05  dan
4272         * Configure.pl, Makefile.in, classes/Makefile.in: Added in a
4273         platform-independent quote substitution for the makefiles.
4274         Hopefully this'll make the Win32 builds happier.
4276 2001-12-30 21:08  dan
4278         * string.c, include/parrot/string.h: More string system tweaks.
4280         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4282 2001-12-30 20:45  dan
4284         * core.ops: Some pod cleanup
4286         Courtesy of Josh Wilmes <josh@hitchhiker.org>
4288 2001-12-30 20:22  ajgough
4290         * docs/parrot_assembly.pod: removed ntoi and iton ops from docs, as
4291         we aren't using them right now.  Clarified the workings of set Px,
4292         Py and clone Px, Py.
4294 2001-12-30 20:15  grunblatt
4296         * jit.c, jit2h.pl, jit/i386/core.jit: Removed the warnings in jit.c
4297         Added readjit() to read *.jit files Updated core.jit to the new
4298         set_n_i
4300 2001-12-30 20:14  ajgough
4302         * examples/assembly/mops.pasm: Changed iton/ntoi to set.
4304 2001-12-30 19:52  dan
4306         * packfile.c, pdump.c, register.c, string.c, include/parrot/key.h,
4307         include/parrot/trace.h, platforms/generic.c: Compiler whine
4308         cleanups
4310         Courtesy of Josh Wilmes <josh@hitchhiker.org>
4312 2001-12-30 19:13  dan
4314         * Configure.pl, Makefile.in: Make GCC pickier by default.
4316         Courtesy of: Josh Wilmes <josh@hitchhiker.org>
4318 2001-12-30 18:41  dan
4320         * core.ops, t/op/integer.t, t/op/number.t: Transformed iton and
4321         ntoi opcodes to sets.
4323         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4325 2001-12-30 17:58  gregor
4327         * Makefile.in:
4328         'make' no longer builds the mops test. Use 'make mops' for that. To
4329         run the test, you can do 'make mopstest'.
4331 2001-12-30 17:30  gregor
4333         * Makefile.in:
4334         Fixed one oversight. 'make clean' was removing Parrot/Types.pm. Bad
4335         Gregor.
4337 2001-12-30 17:26  gregor
4339         * .cvsignore, Configure.pl, Makefile.in, VERSION, config_h.in,
4340         core.ops, interpreter.c, make_vtable_ops.pl, obscure.ops, ops2c.pl,
4341         Parrot/BuildUtil.pm, Parrot/OpsFile.pm, lib/Parrot/BuildUtil.pm,
4342         lib/Parrot/OpsFile.pm, include/parrot/oplib.h:
4343         Build enhancements. Originally to support building shared
4344         libraries, but now of broader impact.
4346           * .cvsignore: Ignore the blib/ directory, about which more later.
4348           * Configure.pl:
4350               * Got rid of TAB formatting and lined a few things up.
4352               * Added header comment with CVS Id variable, and a few other
4353                 block header comments.
4355               * Uses new Parrot::BuildUtil module to determine the Parrot
4356                 version.
4358               * Reworded a few messages, added a couple, and wrapped
4359         messages
4360                 to 79 columns.
4362               * Added 2002 to the Copyright statement.
4364               * Added new configure variables: VERSION, MAJOR, MINOR and
4365         PATCH
4367               NOTE: Please see the 'Alas perl5.7.2' comment. 5.7.2 is
4368         greater
4369               than 5.6.0, but the comment implies it isn't.
4371           * Makefile.in:
4373               * Added $(SO), $(A) and $(AR_CRS) defines for library
4374         building.
4376               * Added $(RM_RF) define for removing directory trees
4378               * Grouped generated files into two classes: "sticky" (made by
4379         configure,
4380                 persisting across 'make clean') and 'fluid' (made during
4381         the build
4382                 process, deleted by 'make clean').
4384               * Added header comments.
4386               * Added target for test_prog linked with shared library.
4388               * Added rules to build shared libraries in blib/lib. The
4389         libraries are
4390                 built with trailing version numbers in their file names,
4391         and then
4392                 symbolic links are created for shorter and no version tag
4393         variants.
4395               * Added some missing dependencies
4397               * Added some missing 'make clean' targets.
4399               * Added 'make realclean' target that deletes files created by
4400                 Configure.pl (including Makefile), forcing a re-configure.
4402               * Added a 'status' CVS target.
4404           * VERSION: New file, contains only the version. This version
4405         number is
4406             propagated to a few places, such as the core oplib version
4407         number. This
4408             reduces the amount of coordination that has to happen to get
4409         version
4410             number stuff throughout the tree in sync and updated prior to
4411         cutting
4412             a new release. Feel free to grep for '0.0.3' to see the other
4413         files
4414             that contain the version number (but, do that in a fresh CVS
4415         copy, or
4416             after doing 'make realclean').
4418           * config_h.in: Renamed PARROT_CORE_OPLIB_*_VERSION to
4419         PARROT_*_VERSION,
4420             since the oplib and Parrot itself share a version number now.
4421         Added
4422             PARROT_PATCH_VERSION (the third component) and PARROT_VERSION
4423         (a
4424             string).
4426           * core.ops: Uses new notation "VERSION = PARROT_VERSION" instead
4427         of
4428             specifying the version by hand. Non-core oplibs will set this
4429         to
4430             a quoted dot-string with three natural number components
4431         without
4432             leading zeros.
4434           * interpreter.c: Make use of PARROT_VERSION to simplify some
4435         sprintf()s, and
4436             to get the complete version number in the resulting strings
4437         (including the
4438             new PATCH portion).
4440           * make_vtable_ops.pl: Put the "VERSION = PARROT_VERSION" line int
4441         the
4442             generated file.
4444           * obscure.ops: Use the new "VERSION = PARROT_VERSION" technique.
4446           * ops2c.pl: Account for the PATCH version, too. This affects the
4447         name of the
4448             oplib init function, and the oplib info struct initializer.
4450           * Parrot/BuildUtil.pm: New file for reading in and validating the
4451         contents of
4452             the new VERSION file. Other build utilities could go here in
4453         futuer.
4455           * Parrot/OpsFile.pm:
4457               * Allow three components in version number, and require that
4458         the value
4459                 be in double quotes.
4461               * Allow "VERSION = PARROT_VERSION", substituting the shared
4462         Parrot
4463                 VERSION in that case.
4465           * include/parrot/oplib.h: Add the patch_version member.
4467 2001-12-30 12:16  simon
4469         * MANIFEST, Makefile.in:
4470         More stuff forgotten from MANIFEST.
4472 2001-12-30 12:13  simon
4474         * MANIFEST:
4475         Missing JIT file.
4477 2001-12-30 12:12  simon
4479         * jit2h.pl:
4480         Safety first.
4482 2001-12-30 12:12  simon
4484         * Makefile.in:
4485         Gragh.
4487 2001-12-30 12:04  simon
4489         * Makefile.in, core.ops, packfile.c, pbc2c.pl, string.c,
4490         classes/perlstring.pmc, encodings/singlebyte.c, encodings/utf16.c,
4491         encodings/utf32.c, encodings/utf8.c, include/parrot/encoding.h,
4492         include/parrot/string.h, t/op/string.t:
4493         * Expand the strings test suite to be more complete * Make string
4494         commands more consistent (i.e, now the only string command that
4495         actually changes the original is chopn) * Significantly reduce the
4496         number of memory allocations and eliminate reallocations.
4498         Courtesy of: David Jacobs <jacobsl001@hawaii.rr.com>
4500 2001-12-29 22:12  dan
4502         * interpreter.c, key.c, register.c, stacks.c, string.c,
4503         test_main.c, trace.c: Updates to match the coding standards.
4505         Courtesy of Bryan C. Warnock <bwarnock@raba.com>
4507 2001-12-29 20:42  grunblatt
4509         * jit2h.pl, Parrot/Jit/i386-bsd.pm, Parrot/Jit/i386-linux.pm,
4510         Parrot/Jit/i386-nojit.pm, jit/i386/core.jit, jit/i386/lib.jit,
4511         jit/i386/string.jit, lib/Parrot/Jit/i386-bsd.pm,
4512         lib/Parrot/Jit/i386-linux.pm, lib/Parrot/Jit/i386-nojit.pm: Allow
4513         us to write asm in *.jit files instead of hex.  Courtesy of: Rafael
4514         Kitover <caelum@debian.org>
4516 2001-12-28 21:20  dan
4518         * core.ops: Okay, now print takes a preceding file handle.
4520         I feel so dirty now.
4522 2001-12-28 20:46  dan
4524         * core.ops, t/op/hacks.t: Added in the readline op, as well as
4525         changing the open op to use fopen under the hood.
4527         THESE OPS ARE EVIL! AND TEMPORARY! USE FOR DEBUGGING PURPOSES ONLY!
4529 2001-12-28 18:20  ajgough
4531         * core.ops, make_vtable_ops.pl, string.c, classes/default.pmc,
4532         classes/perlstring.pmc, docs/parrot_assembly.pod, docs/strings.pod,
4533         include/parrot/exceptions.h, include/parrot/string.h,
4534         t/op/pmc_perlstring.t, t/op/string.t, t/pmc/perlstring.t: Added
4535         repeat op, so that "foo" x 10 can be done.  Filled in PerlString
4536         vtables appropriately.  Also tests for same, new pmc_perlstring.t
4537         to hold tests specific to PerlStrings, as the pmc.t file is taking
4538         too long to run and slowing down my thought processes.
4540         Changes to strings.c etc to take string functions.
4542         Some changes to the strings docs, but not yet complete.
4544         Also, PerlString was copying pointers to strings, rather than
4545         strings themselves, so some action-at-a-distance bugs were creeping
4546         in, I think I've fixed this so everything works nicely.
4548 2001-12-28 04:56  gregor
4550         * examples/assembly/pmcmops.pasm:
4551         PMC-using version of mops.pasm.
4553         Courtesy of: Bryan C. Warnock <bwarnock@raba.com>
4555 2001-12-28 04:56  gregor
4557         * examples/assembly/.cvsignore:
4558         Small tinkering. Removed old stuff, etc.
4560 2001-12-28 01:26  gregor
4562         * examples/mops/mops.scheme:
4563         Scheme example. Major GC thrashing on umb-scheme here. Probably due
4564         to the very un-scheme-like implementation.
4566 2001-12-28 01:19  gregor
4568         * examples/mops/mops.c:
4569         Some people's picky compilers don't like us redefineing time(), so
4570         we call it time_n().  :)
4572 2001-12-28 00:28  gregor
4574         * examples/mops/: README, mops.ps:
4575         Added a PostScript example and a README.
4577 2001-12-27 23:57  gregor
4579         * Makefile.in:
4580         Build the C mops translation in examples/mops/mops.c
4582 2001-12-27 23:56  gregor
4584         * examples/mops/: .cvsignore, mops.c, mops.pl, mops.py, mops.rb:
4585         Some translations of mops.pasm into other languages, for inner loop
4586         performance comparisons.
4588 2001-12-27 22:40  gregor
4590         * examples/assembly/mops.pasm:
4591         Fixed erroneous file name in header comment.
4593 2001-12-27 21:18  gregor
4595         * pbc2c.pl:
4596         One-liner to avoid no-op gotos to the next op.
4598 2001-12-27 21:06  gregor
4600         * runops_cores.c:
4601         Fixed -p (profiling). Slow runops core was doing unconditional
4602         tracing, when it should have been checking the flags.
4604 2001-12-27 18:50  ajgough
4606         * core.ops, string.c, chartypes/unicode.c, chartypes/usascii.c,
4607         classes/perlstring.pmc, include/parrot/chartype.h,
4608         include/parrot/string.h, t/op/pmc.t, t/op/string.t, t/pmc/pmc.t:
4609         dded get_digit() to chartypes  * Added string_bool() to strings  *
4610         Added if_s_ic op, to use same  * Added (PerlString)->get_bool stuff
4611         to perlstring.pmc  * Tests for above, also a for couple of other
4612         ops without tests
4614         The unicode chartype has only had placeholders added for get_digit,
4615         string_to_num has been updated to use type->get_digit rather than
4616         the previous ascii-isms.  Some remain, but we need to carefully
4617         define what we mean by a number before we let thousands of code
4618         points act as a minus sign.
4620 2001-12-27 18:32  dan
4622         * classes/: perlint.pmc, perlnum.pmc, perlstring.pmc: Silenced some
4623         compiler warnings.
4625         Courtesy of "David  Jacobs" <jacobsl001@hawaii.rr.com>
4627 2001-12-27 18:23  dan
4629         * t/op/bitwise.t: More tests.
4631         Courtesy of "David Jacobs" <jacobsl001@hawaii.rr.com>
4633 2001-12-27 17:08  gregor
4635         * MANIFEST, Makefile.in, config_h.in, core.ops, interpreter.c,
4636         make_vtable_ops.pl, obscure.ops, ops2c.pl, ops2pm.pl, test_main.c,
4637         trace.c, Parrot/OpsFile.pm, include/parrot/interp_guts.h,
4638         include/parrot/interpreter.h, include/parrot/oplib.h,
4639         lib/Parrot/OpsFile.pm, platforms/generic.c, platforms/generic.h,
4640         platforms/win32.c, platforms/win32.h:
4641         Initial code for dynamic loading of oplibs, applied for now to the
4642         loading of the core_prederef oplib when the -P flag is passed to
4643         test_parrot.
4645           * MANIFEST: Added entry for the new file include/parrot/oplib.h.
4647           * Makefile.in:
4649               * Added libcore_prederef_0_3.so to the shared target.
4650               * Added build rule for libcore_prederef_0_3.so.
4651               * Added dependencies on Parrot/OpsFile.pm and Parrot/Op.pm
4652                 to Parrot/OpLib/core.pm, core_ops.c and
4653                 core_ops_prederef.c.
4655           * config_h.in: Added defines for constants used to locate the
4656             core oplib's init function, and the core_prederef oplib for
4657             dynaloading.
4659           * core.ops: Added a VERSION = 0.3 line near the top. This is now
4660             required by Parrot/OpsFile.pm.
4662           * interpreter.c:
4664               * Added init_prederef() and stop_prederef() functions to load
4665                 and unload the core_prederef oplib when we are in prederef
4666                 mode.
4668                 NOTE: In all likelihood, the prederef stuff has a rapidly
4669                 dwindling time-to-live. The JIT should provide vastly
4670         superior
4671                 performance, and loading an alternate set of core_ops isn't
4672                 the real direction for the dynaloading stuff. Loading
4673                 *additional* ops is. It does provide a handy test case for
4674         the
4675                 general idea for now, though.
4677               * Gets the core copcode table, etc. via the core oplibs oplib
4678                 info pointer, as returned by the core oplib's init
4679         function.
4681           * ops2c.pl
4683               * Make use of the version, major version and minor version
4684                 stuff parsed by Parrot/OpsFile.pm
4686               * The only exported symbol in the generated files is the init
4687                 function now, since that returns an oplib info struct
4688                 pointer, and all the important stuff can be found there.
4690           * ops2pm.pl: Put the oplib version in the generated .pm file.
4692           * test_main.c: Small changes necessitated by changes in the names
4693             of some members of the interpreter struct.
4695           * trace.c: Small changes necessitated by changes in the names
4696             of some members of the interpreter struct.
4698           * Parrot/OpsFile.pm: Require a "VERSION = x.y" line before any
4699             ops are found.
4701           * include/parrot/interp_guts.h: Small changes necessitated by
4702             changes in the names of some members of the interpreter struct.
4704           * include/parrot/interpreter.h: Include the new
4705             include/parrot/oplib.h header. Small changes to the oplib-
4706             related members.
4708           * include/parrot/oplib.h: Define the type of the oplib init
4709             function, and the struct type for the oplib info.
4711           * platforms/*.[hc]: Remove the second argument to Parrot_dlopen()
4712             since not all platforms have it. For those that do, a default
4713             second argument is provided.
4715 2001-12-26 05:12  gregor
4717         * Configure.pl:
4718         Make jitarch calculation not get tripped up by extra components to
4719         archname.
4721 2001-12-24 21:23  gregor
4723         * jit.c, jit2h.pl, Parrot/Jit/i386-bsd.pm,
4724         Parrot/Jit/i386-linux.pm, Parrot/Jit/i386-nojit.pm,
4725         include/parrot/jit.h, jit/i386/core.jit, jit/i386/lib.jit,
4726         jit/i386/string.jit, lib/Parrot/Jit/i386-bsd.pm,
4727         lib/Parrot/Jit/i386-linux.pm, lib/Parrot/Jit/i386-nojit.pm:
4728         Some more JIT work from Daniel Grunblatt.
4730           * Ops added set_s_s, set_s_sc, bsr_i and eq_s_sc but using calls
4731         to C
4732             functions.
4734           * Added JUMP(END) to place the number of bytes to the end of the
4735         current
4736             op.
4738           * The *.jit files syntax changed.
4740           * Added jit/i386/lib.jit to place handly functions as jump that
4741         take as
4742             argument the address where is the opcode number to jump to.
4744           * There is a bug at some point, but I will start writing
4745             jit/i386/string.jit and jit/i386/stacks.jit so that we don't
4746         have use
4747             calls, which make the jit as slow as the interpreter.
4749         Courtesy of: Daniel Grunblatt <daniel@grunblatt.com.ar>
4751 2001-12-24 03:46  dan
4753         * Parrot/OpTrans.pm, Parrot/OpTrans/C.pm, Parrot/OpTrans/CGoto.pm,
4754         Parrot/OpTrans/CPrederef.pm, lib/Parrot/OpTrans.pm,
4755         lib/Parrot/OpTrans/C.pm, lib/Parrot/OpTrans/CGoto.pm,
4756         lib/Parrot/OpTrans/CPrederef.pm: Commented out the use warnings.
4757         Perls before 5.6.0 don't like it.
4759 2001-12-22 16:02  ajgough
4761         * t/op/stacks.t: stopped skipping tests we can run now.  added
4762         clonep tests.
4764 2001-12-21 21:13  gregor
4766         * jit2h.pl, Parrot/Jit/i386-bsd.pm, Parrot/Jit/i386-linux.pm,
4767         Parrot/Jit/i386-nojit.pm, lib/Parrot/Jit/i386-bsd.pm,
4768         lib/Parrot/Jit/i386-linux.pm, lib/Parrot/Jit/i386-nojit.pm:
4769         Fixed some package name goofs.
4771         Thanks to: Andy Dougherty <doughera@mail.lafayette.edu>
4773 2001-12-21 19:32  gregor
4775         * MANIFEST, Makefile.in, core.ops, interpreter.c,
4776         make_vtable_ops.pl, obscure.ops, ops2c-prederef.pl, ops2c.pl,
4777         pbc2c.pl, stacks.c, Parrot/Op.pm, Parrot/OpTrans.pm,
4778         Parrot/Opcode.pm, Parrot/OpsFile.pm, lib/Parrot/Op.pm,
4779         lib/Parrot/OpTrans.pm, lib/Parrot/Opcode.pm, lib/Parrot/OpsFile.pm,
4780         Parrot/OpTrans/C.pm, Parrot/OpTrans/CGoto.pm,
4781         Parrot/OpTrans/CPrederef.pm, docs/intro.pod, include/parrot/op.h,
4782         include/parrot/stacks.h, lib/Parrot/OpTrans/C.pm,
4783         lib/Parrot/OpTrans/CGoto.pm, lib/Parrot/OpTrans/CPrederef.pm:
4784         Changes to syntax of .ops files and refactoring of ops2c*.pl and
4785         pbc2c.pl.
4787           * Removed ops2c-prederef.pl
4789           * (unrelated) Removed vestigial Parrot/Opcode.pm file.
4791           * Added Parrot/OpTrans.pm, Parrot/OpTrans/C.pm (needed for old
4792             functionality of ops2c.pl), Parrot/OpTrans/CPrederef.pm (needed
4793             for old functionality of ops2c-prederef.pl), and
4794             Parrot/OpTrans/CGoto.pm (needed for functionality of pbc2c.pl).
4796             "OpTrans" == "Op Transformation"
4798           * Makefile.in modifications to call "ops2c.pl C" where it used
4799             to be just "ops2c.pl", and "ops2c.pl CPrederef" where it used
4800             to be "ops2c-prederef.pl".
4802           * core.ops and obscure.ops changes to syntax. Semantics are
4803             identical with previous version:
4805               return HALT         -->  HALT()
4806               return AUTO         -->  goto NEXT()
4807               return RETREL(...)  -->  goto OFFSET(...)
4808               return RESTART(*)   -->  restart NEXT()
4810             Also, pop_generic_entry() stuff (local var + 5 lines of code)
4811             for dest-less branch ops replaced with new notation "goto
4812         POP()",
4813             which uses the new pop_dest() function in stacks.c. This also
4814             allowed these ops to become 'inline' ops, since they no longer
4815             have local variables.
4817             The 'ret' op also became simplified to just "goto POP()", and
4818             also became an inline op.
4820           * interpreter.c reflects the change in type name:
4822               prederef_op_func_t   -->  op_func_prederef_t
4824             that occurred in include/parrot/op.h
4826           * make_vtable_ops.pl uses "goto NEXT()" where it used to use
4827             "return AUTO".
4829           * ops2c.pl is now generic. Its first argument is the last
4830             package name component of a subclass of Parrot::OpTrans. These
4831             subclasses all have full names of the form Parrot::OpTrans::*.
4832             An instance of the class is created and later consulted for
4833             various bits of information needed to generate the C code.
4835           * pbc2c.pl now uses an instance of Parrot::OpTrans::CGoto to
4836             contain its transformation rules.
4838           * stacks.c has a new function pop_dest() that pops a destination
4839             off the control stack. include/parrot/stacks.h has the
4840         prototype.
4842           * Parrot/Op.pm now supports the syntax generated by
4843         Parrot::OpsFile
4844             for the "goto POP" case.
4846             Also, the source() method now expects its second argument to be
4847             an object that ISA Parrot::OpTrans. Methods of this object are
4848             called to perform the substitutions.
4850           * Parrot/OpsFile.pm supports the change in notation mentioned
4851             above.
4853           * docs/intro.pod reflects these changes.
4855           * include/parrot/op.h: Renamed type prederef_op_func_t to
4856             op_func_prederef_t because it made the implementation of the
4857             shared ops2c.pl easier.
4859 2001-12-21 13:47  gregor
4861         * Configure.pl, config_h.in, interpreter.c, test_main.c:
4862         Both test_parrot (via test_main.c) and the intepreter itself (via
4863         interpreter.c) use the JIT_CAPABLE config to decide whether to
4864         actually attempt JIT operation, or to complain.
4866 2001-12-20 23:25  gregor
4868         * core.ops, make_vtable_ops.pl, obscure.ops, Parrot/OpsFile.pm,
4869         lib/Parrot/OpsFile.pm, docs/intro.pod, include/parrot/op.h:
4870         Changes to the format of *.ops files. An attempt to provide hints
4871         for future opfunc processing logic that wants to know if an opfunc
4872         is simple enough to JIT (e.g.) inline, or not.
4874         See the POD in Parrot/OpsFile.pm and the updated docs/intro.pod in
4875         addition to The Source in core.ops and Parrot/OpsFile.pm for more
4876         info.
4878 2001-12-20 21:28  gregor
4880         * Configure.pl, jit.c, jit2h.pl, include/parrot/jit.h,
4881         jit/i386/core.jit:
4882         More JIT stuff:
4884           * A fix to Gregor's last Configure.pl update.
4886           * Remove the need for hardcoded "\n" at the end of the "%f"
4887             format for printing floating-point numbers.
4889           * New, improved *.jit syntax for references to registers,
4890             e.g. INT_REG[n].
4892           * Support for C() improved.
4894         Courtesy of: Daniel Grunblatt <daniel@grunblatt.com.ar>
4896 2001-12-20 16:55  dan
4898         * MANIFEST: Added jit.c to the manifest.
4900 2001-12-20 15:24  simon
4902         * jit2h.pl:
4903         Off-by-one error fixed.
4905 2001-12-20 14:18  simon
4907         * jit/i386/core.jit:
4908         Just a noop. It's the only machine code I know.
4910 2001-12-20 13:10  gregor
4912         * Configure.pl, Makefile.in, jit2h.pl:
4913         Attempt to fix Win32 builds.
4915           * No more empty braces in include/parrot/jit_struct.h
4917         Also:
4919           * ${jitarchname} has the *bsd -> bsd substitution on it, but
4920         ${archname}
4921             does not.
4923 2001-12-20 11:56  simon
4925         * Makefile.in:
4926         De-cp
4928 2001-12-20 01:57  gregor
4930         * Configure.pl, MANIFEST, Makefile.in, interpreter.c, jit.c,
4931         jit2h.pl, test_main.c, Parrot/.cvsignore, Parrot/Jit/i386-bsd.pm,
4932         Parrot/Jit/i386-linux.pm, Parrot/Jit/i386-nojit.pm, docs/jit.pod,
4933         include/parrot/.cvsignore, include/parrot/interpreter.h,
4934         include/parrot/jit.h, jit/i386/core.jit, jit/i386/string.jit,
4935         lib/Parrot/Jit/i386-bsd.pm, lib/Parrot/Jit/i386-linux.pm,
4936         lib/Parrot/Jit/i386-nojit.pm:
4937         Initial JIT implementation.
4939           * Enabled with test_parrot -j. 20x speed boosts seen.
4941           * Unsupported archs mapped to i386-nojit. Don't do -j on them.
4943           * More to come.
4945         Courtesy of: Daniel Grunblatt <daniel@grunblatt.com.ar>
4947 2001-12-20 01:53  jgoff
4949         * MANIFEST, core.ops, t/op/key.t: MANIFEST - Removed t/op/key.t
4950         core.ops - Removed key operators, they should be hidden from the
4951         assembler.  t/op/key.t - No need to test the nonexistent key
4952         operators.
4954 2001-12-20 00:13  ajgough
4956         * core.ops, t/op/stacks.t: Added tests for entrytype op, noticed
4957         that asking for type of entry at depth causes segfault as stack is
4958         zero based, fixed cmp in core.ops to reflect this.  Last test is
4959         skipped as we don't do exceptions right yet.
4961 2001-12-19 19:11  ajgough
4963         * t/op/debuginfo.t: Added C<end> ops to debuginfo.t, as thier
4964         non-being was causing Irix "issues".
4966 2001-12-19 03:37  jgoff
4968         * languages/miniperl/Miniperl/t/: 001_tokenizer.t, 003_generator.t,
4969         004_combined.t: Changed tests to make sure they pass with the
4970         addition of the clone operator.
4972 2001-12-18 20:06  gregor
4974         * interpreter.c, include/parrot/interp_guts.h:
4975         Performance improvements to the predereferencing code path
4976         suggested to me over lunch yesterday by my friend John Kennedy.
4977         The goal is to remove the additional test in the inner loop that
4978         was checking for NULL to decide whether or not to call the
4979         prederef() function. Also moved pc & pc_prederef syncing outside
4980         the inner loop.
4982           * Changed the prototype of the prederef() function in
4983             interpreter.c to match that of an opfunc.
4985           * Instead of initializing the prederef void * array with NULL,
4986             we initialize it with pointers to prederef().
4988           * prederef() now returns the prederef_pc passed in, so that
4989             after predereferencing, the same location is executed, but now
4990             with the real code being called.
4992         Thanks to: John Kennedy
4994 2001-12-18 19:59  ajgough
4996         * t/: op/pmc.t, pmc/pmc.t: Added some more num -> string tests
4997         (including some more in the skipped string -> int tests).
4999 2001-12-18 07:06  jgoff
5001         * MANIFEST: Forgot to add classes/perlarray.pmc
5003 2001-12-18 07:05  jgoff
5005         * Makefile.in, core.ops, global_setup.c, vtable.tbl,
5006         classes/Makefile.in, classes/default.pmc, classes/perlarray.pmc,
5007         classes/perlint.pmc, classes/perlnum.pmc, classes/perlstring.pmc,
5008         classes/perlundef.pmc, include/parrot/pmc.h, t/op/pmc.t,
5009         t/pmc/pmc.t: Big update...  Makefile.in - Added
5010         classes/perlarray.pmc core.ops - Added new series of set() ops for
5011         arrays global_setup.c - Initialized perlarray classes/Makefile.in -
5012         Added perlarray.pmc classes/*.pmc - Added
5013         set_{integer,number,string}_index and
5014         get_{integer,number,string}_index include/parrot/pmc.h - Added new
5015         type t/op/pmc.t - Added basic array test
5017         classes/perlarray.pmc - Added
5019 2001-12-17 05:29  jgoff
5021         * languages/miniperl/Miniperl/Generator.pm: Altered miniperl code
5022         generator to use clone operator instead of set Px,Py
5024 2001-12-17 05:25  jgoff
5026         * core.ops, classes/perlint.pmc, classes/perlnum.pmc,
5027         classes/perlstring.pmc, t/op/pmc.t, t/pmc/pmc.t: Added clone
5028         PMC,PMC operator. Uses the clone() vtable entries.
5030 2001-12-17 04:51  jgoff
5032         * MANIFEST: Added miniperl test suite, removed old Miniperl/Test.pm
5033         entry
5035 2001-12-17 04:41  jgoff
5037         * languages/miniperl/Miniperl/Makefile.PL: Now in its proper
5038         directory...
5040 2001-12-17 04:41  jgoff
5042         * languages/miniperl/Makefile.PL: Moved it to the proper directory.
5044 2001-12-17 04:39  jgoff
5046         * languages/miniperl/: Makefile.PL, Miniperl.pm, miniperlc, mpc,
5047         Miniperl/Tokenizer.pm: Makefile.PL to let us run the test suite in
5048         t/
5050 2001-12-17 04:27  jgoff
5052         * languages/miniperl/Miniperl.pm: Latest version of the driver.
5053         Admittedly it's a little thin on true OO, but the algorithms are
5054         the key.
5056 2001-12-17 04:24  jgoff
5058         * languages/miniperl/Miniperl/t/: 001_tokenizer.t, 002_parser.t,
5059         003_generator.t, 004_combined.t: Much more comprehensive test suite
5060         for the codegen et al
5062 2001-12-17 04:22  jgoff
5064         * languages/miniperl/Miniperl/: Generator.pm, Parser.pm,
5065         Tokenizer.pm: Newer codegen, tightened up parser output, added hash
5066         key handling
5068 2001-12-17 04:20  jgoff
5070         * languages/miniperl/Miniperl/Test.pm: The newer test suite is much
5071         more comprehensive.
5073 2001-12-17 04:17  jgoff
5075         * languages/miniperl/foo.mpl: Test file that'll be outdated by
5076         changes to the new compiler
5078 2001-12-17 04:11  jgoff
5080         * languages/miniperl/t/: harness, 001_basic/basic.t: Moving testing
5081         files to Miniperl/
5083 2001-12-16 14:11  simon
5085         * classes/perlint.pmc, examples/assembly/mops_p.pasm, t/op/pmc.t,
5086         t/pmc/pmc.t:
5087         Fix bogus assumption that multiplying an integer by an integer
5088         yields an integer.
5090 2001-12-16 12:48  simon
5092         * make_vtable_ops.pl:
5093         Fixed op exploder.
5095 2001-12-16 12:45  simon
5097         * make_vtable_ops.pl, Parrot/Vtable.pm, lib/Parrot/Vtable.pm:
5098         Expand multimethod vtable ops.
5100 2001-12-16 12:04  simon
5102         * Makefile.in:
5103         Added 'cvsclean' which doesn't zap CVS/* directories.
5105 2001-12-15 01:50  dan
5107         * include/parrot/string.h: Fixed typo in string.h. lagnuage,
5108         indeed!
5110         Thanks to grunblatt fom #parrot for the catch
5112 2001-12-15 01:39  dan
5114         * .cvsignore, Configure.pl, MANIFEST, languages/jako/Makefile.in,
5115         languages/miniperl/.cvsignore, languages/miniperl/Makefile,
5116         languages/miniperl/Makefile.in,
5117         languages/miniperl/Miniperl/Test.pm, languages/scheme/.cvsignore,
5118         languages/scheme/Makefile, languages/scheme/Makefile.in: Build
5119         tweaks.
5121         Courtesy of: Jay McCarthy <jay@kenyamountain.com>
5123 2001-12-14 17:39  dan
5125         * t/op/trans.t: More trans tests.
5127         Courtesy of: Simon Glover <scog@roe.ac.uk>
5129 2001-12-14 07:41  robert
5131         * make.pl: - define MAKE macro - topological sort and subgraph
5132         order - start of timestamp stuff   (still badly broken)
5134 2001-12-14 06:06  jgoff
5136         * optimizer.pl: Hopefully this should do the trick..
5138 2001-12-14 06:04  jgoff
5140         * Parrot/Optimizer.pm, lib/Parrot/Optimizer.pm: Optimizer
5142           optimizer.pl is the stub, Parrot/Optimizer.pm is the driver.
5144           The optimizer performs its work on a file post-macro expansion.
5145           Run it on a .pasm file, preferably with some trivially reducible
5146         operations
5147           like 'add I0,5,-6' or 'mul I0,I1,0'
5149 2001-12-14 05:48  robert
5151         * Makefile.in: case error EXE -> exe
5153 2001-12-14 05:42  robert
5155         * Makefile.in: remove legacy PDISASM macro
5157 2001-12-14 04:01  dan
5159         * classes/Makefile.in, languages/Makefile.in: Makefile tweaks for
5160         better Win building
5162         Courtesy of: Garrett Goebel <garrett@scriptpro.com>
5164 2001-12-13 22:03  dan
5166         * Configure.pl, Makefile.in, Parrot/Test.pm,
5167         languages/scheme/Makefile, languages/scheme/Scheme/Test.pm,
5168         lib/Parrot/Test.pm: Parrot test prog's now a config variable, so we
5169         can change it without having to change the world.
5171 2001-12-13 21:57  dan
5173         * core.ops, interpreter.c, docs/parrot_assembly.pod,
5174         include/parrot/interpreter.h, t/op/debuginfo.t: Added current
5175         file/line/package to interp structure, with ops to get and set
5176         them. Now we can know where we are!
5178 2001-12-13 19:43  dan
5180         * Configure.pl, Makefile.in: Makefile tweaks to hopefully make
5181         WinXP builds work out of the box
5183 2001-12-13 17:05  dan
5185         * Makefile.in, Parrot/Test.pm, lib/Parrot/Test.pm: Change test prog
5186         name again--makes case-insensitive systems much happier.
5188 2001-12-13 16:21  dan
5190         * core.ops, key.c, string.c, test_main.c, trace.c,
5191         classes/Makefile.in, include/parrot/trace.h: Fixes to clean up
5192         compiler warnings
5194         Courtesy of: Josh Wilmes <josh@sky.net>
5196 2001-12-13 13:33  gregor
5198         * languages/jako/Makefile.in:
5199         Improved the method of calling the assembler.
5201 2001-12-13 13:30  gregor
5203         * languages/jako/Makefile.in:
5204         Improve the build process. It now works from the main parrot dir,
5205         and from the languages/jako directory. Now uses the .SUFFIXES
5206         target and generic build rules to reduce clutter in the
5207         Makefile.in.
5209 2001-12-13 13:29  gregor
5211         * languages/jako/.cvsignore:
5212         Ignore the (now generated Makefile), and don't ignore .list files
5213         anymore, since we aren't generating them.
5215 2001-12-13 13:11  gregor
5217         * Configure.pl, MANIFEST, Makefile.in, languages/.cvsignore,
5218         languages/Makefile.in, languages/jako/Makefile,
5219         languages/jako/Makefile.in:
5220         Added a 'languages' target to the top-level Makefile.in, and
5221         modified the jako build procedure to involve Makefile.in -->
5222         Makefile too (done by Configure.pl).
5224         NOTE: languages/jako and language/scheme are built.
5225         languages/miniperl wasn't building right, so it was left off for
5226         now.
5228 2001-12-13 12:15  gregor
5230         * MANIFEST:
5231         Added MAINTAINER file and mandelzoom.jako from languages/jako to
5232         the MANIFEST.
5234 2001-12-13 12:12  gregor
5236         * .cvsignore, MANIFEST, Makefile.in, core.ops, interpreter.c,
5237         ops2c-prederef.pl, ops2c.pl, test_main.c,
5238         include/parrot/interp_guts.h, include/parrot/interpreter.h,
5239         include/parrot/op.h, include/parrot/oplib/.cvsignore:
5240         Welcome to the Just-in-Time Predereferencing Patch!
5242         This patch implements a "predereferencing" mode for parrot. That
5243         means that a lot of the dereferencing you see in DO_OP and in the
5244         opfuncs is done up front (really, JIT) rather than as and each time
5245         we execute each op in the byte code stream.
5247         This works by creating an array of void pointers with the same
5248         number of elements as the byte code array. This array starts out
5249         life zero-initialized.  Each time we go to execute an op, we check
5250         first to see if we have a NULL pointer at *cur_opcode. If so, we
5251         know we haven't done our predereferencing yet (this is the JIT
5252         part), so we call the prederef() function with sufficient args that
5253         it can go look up opfunc pointers and op arg types and put the
5254         opfunc and arg pointers at cur_opcode[0] .. cur_opcode[N - 1],
5255         where N is the number of args (counting the op itself as one arg).
5257         We assume that sizeof(INTVAL) <= sizeof(void *), so we can continue
5258         to have inline INTVAL constants.
5260         I've been getting about a 22% speed increase over vanilla code path
5261         when I compile with -O0. Advantage decreases at -O9 here. I tested
5262         with mops.pbc, and also by temporarily putting the -P flag in
5263         Parrot/Test.pm and running all the tests. So, this code is as
5264         correct as the test suite can detect.
5266         Here's how it plays out in the code:
5268           * New script ops2c-prederef.pl
5270             Copy-paste code reuse from ops2c.pl. Modified to expect the
5271         args to give
5272             a void ** cur_opcode and to return a void **.
5274           * Modified ops2c.pl
5276               * opfuncs are now static. Who needs to call them by name from
5277         outside,
5278                 anyway? They are accessed via the opfunc table.
5280               * Some MACRO stuff to make things work whether we prederef or
5281         not. It
5282                 may be possible to get rid of these some day if other folks
5283         agree
5284                 that we should be using CODE object pointers + offsets as
5285         our PC
5286                 rather than raw pointers to either opcode_t's or (void *)'s
5287                 (depending on prederef mode or no).
5289           * core.ops modified to be usable to build both kinds of opfuncs.
5290         For now,
5291             this means:
5293               * calls to push_generic_entry(... cur_opcode ...) were
5294         changed to
5295                 push_generic_entry(... CUR_OPCODE ...), where CUR_OPCODE is
5296         a
5297                 macro that does the right thing in both kinds of ops.c
5298         files.
5300                 This is applicable to the bsr op. If we treated
5301         destinations as
5302                 (Code PMC + local offset) rather than as
5303         pointer-to-memory-somewhere,
5304                 this wouldn't be a big deal. We may need to do that at some
5305         point
5306                 anyway, so that when you jump around and return not only do
5307         you have
5308                 the right PC (pointer, today), but you also have the
5309         thread/interpreter
5310                 knowing what chunk of bytecode it is in at all times
5311         (assuming we'll
5312                 allow reflection, as in ops that query or affect the
5313         current CODE PMC).
5315               * runinterp was modified. Instead of copying the top-level
5316         PackFile struct
5317                 and blasting its byte_code pointer, we simply call runops
5318         on the new
5319                 interp, passing in the pointer to the current interp's code
5320         and the
5321                 offset into that code at which to start (this last arg used
5322         to be a
5323                 pointer PC, now its an offset PC).
5325           * include/parrot/op.h
5327               * new typedef for prederef opfuncs (they return void **)
5329           * include/parrot/interp_guts.h
5331               * New DO_OP_PREDEREF() macro described above.
5333           * include/parrot/interpreter.h
5335               * New prototype of runops() -- see below.
5337               * resume_addr field changed to resume_flag and resume_offset
5338         pair of fields.
5339                 We might be resuming from interp using prederef to one not
5340         or vice-versa,
5341                 so pointers between the two don't play nice together.
5342         Offsets are beautiful.
5344               * New PARROT_PREDEREF_FLAG constant
5346           * interpreter.c
5348               * include "parrot/oplib/core_ops_prederef.h"
5350               * prederef() function described above.
5352               * runops_prederef() runops variant. Uses DO_OP_PREDEREF()
5353         macro as its core.
5355               * runops() modified to take size_t CODE-relative offset PC
5356         rather than
5357                 pointer PC. This made other things workable and doesn't
5358         seem to have lost
5359                 anything important (IMO).
5361           * test_main.c
5363               * New flag '-P' to enable predereferencing.
5365           * Makefile modified to build core_ops_prederef.c from core.ops
5366         via
5367             ops2c-prederef.pl.
5369             BTW, also added missing $(INC)/interp_guts.h to H_FILES.
5371             Added core_ops_prederef$(O) to O_FILES
5373 2001-12-13 12:12  gregor
5375         * languages/jako/MAINTAINER:
5376         Thought it would be nice to put this right in the code...
5378 2001-12-13 04:36  jgoff
5380         * languages/miniperl/Miniperl/Generator.pm: Commented out
5381         debugging, fixed register spillover algorithm
5383 2001-12-13 04:23  jgoff
5385         * make.pl: Found and fixed obob in the parser (Wasn't parsing last
5386         line) Restructured a bit of the dependency generator to fix a
5387         different obob bug.
5389 2001-12-13 03:43  robert
5391         * MANIFEST, docs/opcodes.pod: remove old docs/opcodes.pod
5393 2001-12-13 03:03  jgoff
5395         * make.pl: Added make.pl
5397 2001-12-13 02:44  jgoff
5399         * languages/miniperl/Miniperl.pm: Nearly-complete 'make'
5400         replacement in perl.  Non-compliant bits - Takes absolutely -NO-
5401         special flags...                     - Dies on undefined macros
5402         such as $(PDISASM) in current make                     - Dies on
5403         recursive macro expansions                       (Doesn't test for
5404         mutual or multipart loops)                     - In general it
5405         seems to be a little less lenient...  Missing bits - File
5406         mod/creation times aren't being looked at              - Actions
5407         aren't being taken              - The few funky variables ($@, $<)
5408         aren't being dealt with Bugs - Line numbers are slipping a bit.
5410 2001-12-13 02:29  jgoff
5412         * languages/miniperl/Miniperl/: Generator.pm, Parser.pm:
5413         Reconstructing files to make the parser flow a little better.
5415 2001-12-13 00:51  dan
5417         * resources.c: Be a bit less wasteful with resources that don't
5418         need to be aligned
5420 2001-12-12 18:22  dan
5422         * Makefile.in: D'oh! Fixed looping makefile bug.
5424         Courtesy of: "Jaen Saul" <jaen@saul.ee>
5426 2001-12-12 16:23  jgoff
5428         * languages/miniperl/t/001_basic/basic1.scheme: Bogus entry
5430 2001-12-12 16:22  jgoff
5432         * MANIFEST: Manifest additions for languages/miniperl
5434 2001-12-12 16:19  jgoff
5436         * languages/miniperl/t/001_basic/: basic.t, basic1.scheme: Basic
5437         tests. These are left over from the Scheme suite and shouldn't be
5438         used yet.
5440 2001-12-12 16:18  jgoff
5442         * languages/miniperl/: Miniperl/Generator.pm, Miniperl/Parser.pm,
5443         Miniperl/Test.pm, Miniperl/Tokenizer.pm, t/harness: Miniperl base
5444         modules. Miniperl/ is where the real work gets done.  t/ is largely
5445         vacant because it isn't ready to survive real tests yet.
5447 2001-12-12 16:17  jgoff
5449         * languages/miniperl/: Makefile, Miniperl.pm, foo.mpl, miniperlc,
5450         mpc: Final go-round, hopefully.
5452         languages/miniperl/Makefile - Used basically to run tests, as there
5453         is nothing                               here that needs to be
5454         dynamically built.  languages/miniperl/Miniperl.pm - Stub module
5455         that calls the real Miniperl/ mods languages/miniperl/foo.mpl -
5456         Sample miniperl file.  languages/miniperl/miniperlc - Miniperl
5457         compiler stub
5459 2001-12-12 16:09  dan
5461         * Configure.pl: Setting a variable with the make command name is
5462         useful.
5464 2001-12-12 15:07  simon
5466         * Makefile.in, languages/jako/Makefile, languages/scheme/Makefile:
5467         Recursive make considered "ow, don't do that".
5469 2001-12-12 14:45  dan
5471         * Makefile.in: Makefile had some non-portable code. (Okay, a lot of
5472         non-portable code) Killing builds on Win32 native. Small patch
5473         applied which hopefully fixes it.
5475 2001-12-12 06:12  ajgough
5477         * classes/Makefile.in: perl is $(PERL), you know it makes sense.
5479 2001-12-12 06:08  ajgough
5481         * Makefile.in: perl is $(PERL).
5483 2001-12-12 06:00  ajgough
5485         * t/op/integer.t: Added tests to integer.t so that all permutations
5486         of arguments are actually called at some point.
5488 2001-12-12 05:18  ajgough
5490         * t/op/time.t: I can't sleep, but I don't see why parrot shouldn't.
5491          Tests for sleep i|ic
5493 2001-12-12 05:09  ajgough
5495         * t/op/stacks.t: Added pushp and popp register stack tests.
5497 2001-12-12 04:51  ajgough
5499         * t/op/stacks.t: Added tests for save and restore, for all register
5500         types.  Let there be Haiku.
5502 2001-12-12 04:27  ajgough
5504         * t/op/basic.t: bsr_i test.  You know you want it.
5506 2001-12-12 02:55  ajgough
5508         * MANIFEST: Added hints/os2.pl to MANIFEST.
5510 2001-12-12 02:52  jgoff
5512         * core.ops, key.c: Final checkin... These are actually the correct
5513         copies.
5515 2001-12-12 02:12  jgoff
5517         * include/parrot/key.h: key.c - Removed a few functions,
5518         generalized set_element_value and element_value         to accept
5519         KEY_PAIRs from core.ops include/parrot/key.h - Modified header.
5520         core.ops - Modified to accept the new return style.
5522         This is a prelude to adding virtual-table methods to allow hashing
5523         &c. Expect at least one or two more redesigns before this settles
5524         down. However, it still passes the original tests.
5526 2001-12-11 13:35  gregor
5528         * runops_cores.c:
5529         Fixed a typo.
5531 2001-12-11 12:03  gregor
5533         * .cvsignore:
5534         Don't ignore test_prog, but do ignore parrot.
5536 2001-12-11 12:03  gregor
5538         * classes/.cvsignore:
5539         Ignore the generated file default.h
5541 2001-12-11 04:07  jgoff
5543         * key.c: Key source
5545 2001-12-11 04:05  jgoff
5547         * include/parrot/key.h, t/op/key.t: Needed header file, new test
5549 2001-12-11 04:00  jgoff
5551         * core.ops: Added new key aggregate operations to core ops.
5553 2001-12-11 04:00  jgoff
5555         * include/parrot/parrot.h: Added key.h to header list
5557 2001-12-11 03:59  jgoff
5559         * MANIFEST: Added key.c, include/parrot/key.h, t/op/key.t
5561 2001-12-11 03:58  jgoff
5563         * Makefile.in: Added implementation of key aggregates.
5565 2001-12-08 23:07  simon
5567         * README:
5568         README good to go.
5570 2001-12-08 23:05  simon
5572         * Configure.pl, Makefile.in, README, Parrot/Test.pm,
5573         docs/intro.pod, languages/jako/Makefile, languages/scheme/Makefile,
5574         languages/scheme/Scheme/Test.pm, lib/Parrot/Test.pm:
5575         test_prog? What is test_prog?
5577 2001-12-08 22:57  simon
5579         * ChangeLog:
5581         Oops, the changelog commit was on *this* machine.
5583 2001-12-08 22:56  simon
5585         * NEWS:
5586         Updates to NEWS and ChangeLog pre-release.
5588 2001-12-08 22:07  simon
5590         * MANIFEST, Makefile.in, classes/Makefile.in, classes/default.pmc,
5591         classes/perlnum.pmc, classes/pmc2c.pl:
5592         Add "default" PMC vtable so you can inherit implied stuff.
5594 2001-12-08 21:24  simon
5596         * Parrot/PackFile.pm, docs/parrot.pod, docs/parrotbyte.pod,
5597         docs/vtables.pod, lib/Parrot/PackFile.pm:
5598         Getting the documentation up to scratch.
5600 2001-12-08 21:21  simon
5602         * classes/pmc2c.pl:
5603         Allow inheriting from default class.
5605 2001-12-07 20:43  gregor
5607         * examples/assembly/queens.pasm:
5608         Regenerated the file with the latest jakoc.
5610 2001-12-07 20:29  simon
5612         * core.ops, t/op/stacks.t:
5613         Rename "rotate" to "rotate_up".
5615 2001-12-07 20:15  simon
5617         * t/op/stacks.t:
5618         Some tests for rotate.
5620 2001-12-07 00:55  gregor
5622         * core.ops:
5623         Cast the result of the pointer arithmetic, since without the cast
5624         there are warnings with some compilers, and without the parens
5625         around the pointer arithmetic, precedence breaks the meaning and
5626         causes crashes.
5628 2001-12-06 23:37  simon
5630         * core.ops:
5631         Temporary. I prefer compiler warnings to segfaults, thanks.
5633 2001-12-06 23:34  simon
5635         * runops_cores.c:
5636         Make "trace" work again.
5638 2001-12-06 21:23  dan
5640         * Parrot/Test.pm, lib/Parrot/Test.pm: Undo twiddles to test.pm
5642 2001-12-06 21:22  dan
5644         * core.ops, packfile.c, Parrot/Test.pm, include/parrot/stacks.h,
5645         lib/Parrot/Test.pm: Fix up source issues that made Dec C unhappy
5647 2001-12-06 19:22  simon
5649         * core.ops:
5650         Yet another "How the *%$! did that compile?" moment.
5652 2001-12-06 18:28  dan
5654         * hints/vms.pl: Fix to build, with a HERE logical required
5656 2001-12-06 17:48  dan
5658         * core.ops, interpreter.c, pbc2c.pl, pdump.c, test_main.c,
5659         docs/parrot_assembly.pod, include/parrot/interpreter.h: Sensible
5660         changes to the interpreter--flags are now part of the interp
5661         structure.
5663         Courtesy of "Melvin Smith" <mrjoltcola@mindspring.com>
5665 2001-12-06 14:02  gregor
5667         * docs/intro.pod:
5668         s/little_languages/languages/ in Jako section.
5670 2001-12-06 13:15  simon
5672         * Makefile.in:
5673         Ensure the documentation gets made.
5675 2001-12-06 13:12  simon
5677         * MANIFEST, docs/intro.pod:
5678         Documentation! Added the "Some Assembly Required" article with
5679         minor updates.
5681 2001-12-06 00:39  simon
5683         * core.ops:
5684         More "eq" support.
5686         Courtesy of: Nguon Hao Ching <hao@netaxs.com>
5688 2001-12-06 00:37  simon
5690         * test_main.c:
5691         Add the "-d" debug flag. Doesn't actually *do* anything yet.
5693         Courtesy of: Melvin <mrjoltcola@mindspring.com>
5695 2001-12-06 00:11  tom
5697         * string.c, chartypes/unicode.c, chartypes/usascii.c,
5698         encodings/singlebyte.c, encodings/utf16.c, encodings/utf8.c,
5699         include/parrot/chartype.h, include/parrot/encoding.h,
5700         include/parrot/parrot.h: Moved string to number conversion code out
5701         of the encoding layer and into the main string layer as neither the
5702         encoding layer nor the character type layer knows enough on it's
5703         own to do the conversion correctly.
5705 2001-12-05 23:12  tom
5707         * Makefile.in: Rebuild the classes directory if any of the object
5708         files for the classes are missing rather than only when perlint.o
5709         is missing.
5711 2001-12-05 19:43  gregor
5713         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm:
5714           * Reworked the constantize_string() stuff a little bit because it
5715         was
5716             puking on things like "\033[H\033[2J\0" (which occurs in the
5717             languages/jako/mandelzoom.jako example).
5719 2001-12-05 19:39  gregor
5721         * languages/jako/: Makefile, mandelzoom.jako:
5722         Added 'mandelzoom' example.
5724 2001-12-05 19:38  gregor
5726         * languages/jako/jakoc:
5727           * Added sleep()
5729           * Changed some instances of die() to confess()
5731 2001-12-05 18:34  gregor
5733         * t/: op/pmc.t, pmc/pmc.t:
5734         s/sting->int/string->int/
5736 2001-12-05 18:08  gregor
5738         * Parrot/.cvsignore:
5739         Ignore PMC.pm
5741 2001-12-05 18:05  gregor
5743         * classes/.cvsignore:
5744         Ignore the generated files.
5746 2001-12-05 17:19  gregor
5748         * pbc2c.pl:
5749           * Reverted recent changes, since they broke the script. Real fix
5750         coming
5751             later.
5753 2001-12-05 17:03  simon
5755         * classes/Makefile.in:
5756         Remember: change Makefile.in, not Makefile. D'oh.
5758 2001-12-05 17:02  simon
5760         * Makefile.in:
5761         Ensure PMC.pm gets remade.
5763 2001-12-05 16:58  simon
5765         * MANIFEST, Makefile.in, classes/Makefile.in,
5766         classes/perlundef.pmc, include/parrot/pmc.h:
5767         Add perlundef class.
5769 2001-12-05 16:45  simon
5771         * core.ops:
5772         Document "new P0, foo"
5774 2001-12-05 16:43  simon
5776         * MANIFEST, Makefile.in, pbc2c.pl, pmc_pm.pl, Parrot/Assembler.pm,
5777         lib/Parrot/Assembler.pm, t/op/pmc.t, t/pmc/pmc.t:
5778         Allow assembler to know about PMC class names.
5780 2001-12-04 13:39  ajgough
5782         * MANIFEST: Added t/op/pmc.t to MANIFEST.
5784 2001-12-04 05:02  ajgough
5786         * classes/perlnum.pmc: Picky compiler pointed out probable thinko
5787         in perlnum.c
5789 2001-12-04 04:24  ajgough
5791         * encodings/singlebyte.c, t/op/pmc.t, t/pmc/pmc.t: A much less
5792         broken form of strtod and appropriate tests.  Does not yet check
5793         for overflow.
5795 2001-12-04 01:31  ajgough
5797         * string.c, encodings/singlebyte.c, encodings/utf16.c,
5798         encodings/utf8.c, include/parrot/encoding.h: Added length parameter
5799         to extract_num and extract_int string vtables, without this it
5800         would be impossible to have strings with nulls in while still
5801         knowing where they ended.
5803 2001-12-03 18:40  ajgough
5805         * string.c, classes/perlstring.pmc, encodings/singlebyte.c,
5806         encodings/utf16.c, encodings/utf8.c, include/parrot/encoding.h,
5807         include/parrot/string.h: Moved pmc string to number conversion into
5808         the string encoding tables.
5810 2001-12-03 00:21  ajgough
5812         * core.ops, t/op/pmc.t, t/pmc/pmc.t: Added set i, p and some tests
5813         for p-> integer.
5815 2001-12-02 23:09  jgoff
5817         * classes/Makefile.in: Removed some redundant targets.
5819 2001-12-02 19:02  ajgough
5821         * t/: op/pmc.t, pmc/pmc.t: Modified all pmc tests to make use of fp
5822         equality macro rather than using perl to generate expected output,
5823         all tests now have <<OUTPUT.
5825 2001-12-02 17:44  ajgough
5827         * t/op/trans.t: Upgraded fp_eq and fp_ne macros to be more useful
5828         for pmc.t as well.  Will probably move macros into another file at
5829         some point, although this might be best left until the tests are
5830         unperled.
5832 2001-12-02 06:16  jgoff
5834         * classes/pmc2c.pl: It wasn't properly setting the vtable index
5835         within Parrot_Perl{Class}_init.
5837 2001-12-02 06:09  jgoff
5839         * classes/Makefile.in: I seem to have removed *$(O) twice..
5841 2001-12-02 05:06  jgoff
5843         * Configure.pl, MANIFEST, Makefile.in: (Hopefully the last time...)
5844         Configure.pl - Removed '-I./include', added classes/Makefile
5845         generation MANIFEST     - Added classes/Makefile.in Makefile.in  -
5846         Removed old classes/* make stuff                Added target for
5847         classes/Makefile
5849 2001-12-02 04:48  jgoff
5851         * classes/Makefile.in: Going to be used shortly...
5853 2001-12-02 04:40  jgoff
5855         * docs/Makefile: Configure.pl - Added automatic makefile creation
5856         for docs/ and classes/                Removed '-I./include' because
5857         it was getting incorrectly                passed to classes/
5858         MANIFEST - added docs/Makefile.in, classes/Makefile.in Makefile.in
5859         - Removed classes/ build stuff, replaced with classes/Makefile.in
5860                     Added '-I./include' locally docs/Makefile - Should no
5861         longer be used, but I'm not brave enough to do a
5862         cvs delete.
5864 2001-12-02 01:21  ajgough
5866         * t/op/trans.t: Refactored trans math tests to have hard coded
5867         expected return values and be more ready to be unperled at some
5868         point in the future.  Added $fp_equality_macro which is a
5869         "nearly-equal-to" function.
5871 2001-12-02 01:18  ajgough
5873         * Makefile.in: Humph.  People really ought to use Makefile
5874         variables, s/perl/$(PERL)/ throughout.
5876 2001-12-01 18:15  jgoff
5878         * classes/: perlint.pmc, perlnum.pmc: Temporary patch until we
5879         figure out what to do vis-a-vis the lack of snprintf.
5881 2001-11-30 13:14  ajgough
5883         * t/op/: integer.t, number.t: Added tests for abs ops to number.t
5884         and integer.t
5886 2001-11-30 13:14  ajgough
5888         * core.ops: Added abs(i|n, i|ic|n|nc) ops to core.ops, using if <0
5889         -, else ... form.
5891 2001-11-30 10:36  simon
5893         * core.ops:
5894         Rewrite print_p to do the right thing.
5896 2001-11-30 06:21  jgoff
5898         * t/: op/pmc.t, pmc/pmc.t: New tests for integer/number/string
5899         concat,               integer/number/string math
5901 2001-11-30 06:20  jgoff
5903         * classes/: perlint.pmc, perlnum.pmc, perlstring.pmc:
5904         classes/perlint.pmc - Fixes and expanding for concat and math with
5905         strings classes/perlnum.pmc - Fixes and expanding for concat and
5906         math with strings classes/perlstring.pmc - Fixes and expanding for
5907         concat and math with strings
5909 2001-11-29 15:21  ajgough
5911         * hints/os2.pl: This is a hints file for os/2, I've set $c{perl} as
5912         $^X lies, which confused bash which make uses to run things when
5913         doing its stuff.
5915 2001-11-29 04:58  jgoff
5917         * classes/perlstring.pmc: Removed C++-style comments for good
5918         measure
5920 2001-11-29 04:51  jgoff
5922         * t/: op/pmc.t, pmc/pmc.t: New tests for PMC integers
5924 2001-11-29 04:28  jgoff
5926         * global_setup.c: Initialize PMC strings
5928 2001-11-29 04:25  jgoff
5930         * core.ops: Added set_p_s and set_p_sc, modified print_p to handle
5931         string PMCs.
5933 2001-11-29 04:24  jgoff
5935         * classes/: perlint.pmc, perlnum.pmc, perlstring.pmc: Changed PMC
5936         files to properly upgrade int to num, do calculations.  Also added
5937         basic string operations. Currently errors out on anything but set
5938         operations, but this will be fixed soon.
5940 2001-11-29 04:22  jgoff
5942         * Makefile.in: PMC .c files weren't getting cleaned out.
5944 2001-11-28 17:00  simon
5946         * t/harness:
5948         Make csh-glob happy.
5950         Courtesy of: Andy Dougherty: <doughera@lafayette.edu>
5952 2001-11-28 16:40  simon
5954         * classes/perlnum.pmc:
5956         De-C++
5958 2001-11-28 15:22  simon
5960         * string.c:
5962         Fixes Alex's string concat worry.
5964 2001-11-28 14:27  ajgough
5966         * t/op/string.t: test "null onto null" incorrectly passing as it
5967         produced no output.  Output provided.
5969 2001-11-28 11:14  simon
5971         * include/parrot/pmc.h:
5973         Placate AIX.
5975 2001-11-26 21:03  dan
5977         * MANIFEST, hints/darwin.pl: Tweaks to build on Mac OS X 10.1
5979 2001-11-26 17:29  simon
5981         * classes/perlint.pmc:
5983         Various subtle but non-showstopper bugs.
5985 2001-11-26 11:23  simon
5987         * classes/pmc2c.pl:
5989         Replace dependency on Text::Balanced
5991         Courtesy of: Bart Lateur <bart.lateur@pandora.be>
5993 2001-11-26 05:22  jgoff
5995         * global_setup.c: Last file that should need to be committed. I
5996         swear.
5998 2001-11-26 05:09  jgoff
6000         * core.ops: Let's try this again... Changes to core.ops required
6002 2001-11-26 04:58  jgoff
6004         * classes/perlint.pmc, classes/perlnum.pmc, t/op/pmc.t,
6005         t/pmc/pmc.t: Makefile.in - Added missing cleanup line for perl*.c
6006         core.ops - Added set(p,n|nc), modified print(p) global_setup.c -
6007         Uncommented PerlNum_init classes/perlint.pmc - Added set_number
6008         functions classes/perlnum.pmc - Set up basic number functions
6009         t/op/pmc.t - Added tests for set P0.<number> and {add,mul,sub,div}
6010         tests against numbers and numbers+integers
6012 2001-11-25 13:18  simon
6014         * Makefile.in:
6015         Windows XP make doesn't like $<
6017 2001-11-25 12:56  simon
6019         * MANIFEST, Makefile.in, classes/genclass.pl, classes/perlint.c,
6020         classes/perlint.pmc, classes/perlnum.c, classes/perlnum.pmc,
6021         classes/perlstring.c, classes/perlstring.pmc, classes/pmc2c.pl,
6022         examples/assembly/mops_p.pasm:
6023         PMC preprocessor.
6025         Courtesy of: Angel Faus <afaus@corp.vlex.com>
6027         I (Simon) also added a couple more integer methods, but no tests
6028         since I'm a Bad Person.
6030 2001-11-25 08:40  brentdax
6032         * ops2c.pl, Parrot/Op.pm, Parrot/OpsFile.pm, lib/Parrot/Op.pm,
6033         lib/Parrot/OpsFile.pm: Allow _ in op names
6035 2001-11-25 05:54  jgoff
6037         * classes/perlint.c, t/op/pmc.t, t/pmc/pmc.t: classes/perlint.c -
6038         Added basic math ops t/op/pmc.t - Added tests of basic math ops
6040 2001-11-23 18:27  simon
6042         * core.ops, classes/perlint.c, examples/assembly/mops_p.pasm:
6043         Add everything you need to make MOPS use PMCs.
6045 2001-11-23 18:06  simon
6047         * core.ops:
6048         Eh, you'll need this for rewriting mops.pasm.
6050 2001-11-23 17:55  simon
6052         * core.ops, classes/perlint.c, include/parrot/pmc.h, t/op/pmc.t,
6053         t/pmc/pmc.t:
6054         More work on integer PMCs.
6056 2001-11-23 17:29  simon
6058         * Makefile.in:
6059         Surprise! Whitespace! HLAGHLAGHLAGH
6061 2001-11-23 17:28  simon
6063         * Makefile.in, ops2c.pl, ops2pm.pl:
6064         Add vtables.ops to the core
6066         Courtesy of: Jeff Goff <jgoff@speakeasy.net>
6068 2001-11-22 18:39  simon
6070         * core.ops, global_setup.c, docs/parrot_assembly.pod, t/op/pmc.t,
6071         t/pmc/pmc.t:
6072         We can now create PMCs.
6074 2001-11-21 05:49  jgoff
6076         * Makefile.in: Makefile cleans up *.pasm *.pbc *.out
6078 2001-11-20 16:00  simon
6080         * docs/vtables.pod, include/parrot/pmc.h:
6081         Reorder PMC flags so there's a fixed number of user-defined flags.
6083         Courtesy of: Dave Mitchell <davem@fdgroup.co.uk>
6085 2001-11-19 03:39  jgoff
6087         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm, t/op/basic.t:
6088         Parrot/Assembler.pm - Allow "print 'foo'", and properly escape
6089         nested quotes.  t/op/basic.t - Add tests for single-quoted strings,
6090         escaped quotes, and proper                handling of newlines.
6092 2001-11-16 22:03  simon
6094         * classes/perlint.c:
6095         More work on the Perl Integer class. More needed, though.
6097 2001-11-16 21:57  simon
6099         * pmc.c, vtable.tbl, classes/genclass.pl, classes/perlint.c:
6100         Rename ->new to ->init, and rework pmc.c:pmc_new to fiddle it.
6102 2001-11-16 20:49  simon
6104         * interpreter.c, runops_cores.c, trace.c,
6105         include/parrot/runops_cores.h:
6106         Kill superfluous runops cores.
6108 2001-11-16 17:50  simon
6110         * MANIFEST, Makefile.in, classes/intclass.c, classes/perlint.c,
6111         classes/perlnum.c, classes/perlstring.c, classes/scalarclass.c,
6112         include/parrot/parrot.h, include/parrot/pmc.h:
6113         Skeleton for Perl scalar types, done right.
6115 2001-11-16 16:15  simon
6117         * classes/genclass.pl:
6118         This tidies up genclass to deal with the new-style multimethods.
6120 2001-11-16 15:29  simon
6122         * Makefile.in, make_vtable_ops.pl, vtable.tbl, Parrot/Vtable.pm,
6123         lib/Parrot/Vtable.pm, include/parrot/parrot.h:
6124         Rework multimethods to be *true* multimethods - that is, have
6125         different types.
6127 2001-11-15 22:29  simon
6129         * MANIFEST, Makefile.in, pmc.c:
6130         pmc.c linkage and support. Oh, and making it compile.
6132 2001-11-15 22:26  dan
6134         * t/op/interp.t: Forgot to tell CVS about the test...
6136 2001-11-15 22:10  dan
6138         * MANIFEST, Types_pm.in, core.ops, vtable_h.pl,
6139         docs/parrot_assembly.pod, include/parrot/string.h: Added in support
6140         for PMC registers for the interpreter.
6142         Added in the docs for the runinterp opcode.
6144         Added in code for both the newinterp and runinterp opcodes, so we
6145         can now create new interpreters from within parrot and have them do
6146         things. (Though we can't pass data back and forth. Yet)
6148 2001-11-15 21:24  simon
6150         * vtable.tbl, classes/scalarclass.c, docs/vtables.pod:
6151         More documentation, and other changes as discussed with Dan.
6153 2001-11-15 19:51  simon
6155         * classes/scalarclass.c:
6156         De-cut-and-pasto.
6158 2001-11-15 19:50  simon
6160         * classes/scalarclass.c:
6161         A little code tidiness.
6163 2001-11-15 19:33  simon
6165         * include/parrot/pmc.h:
6166         Missed this in the previous commit - un-constantize the base for
6167         user-defined PMC flags.
6169 2001-11-15 19:28  simon
6171         * classes/scalarclass.c:
6172         Hey look, sanity.
6174 2001-11-15 17:09  simon
6176         * classes/scalarclass.c:
6177         It seems I have completely forgotten how to write C.
6179 2001-11-15 16:53  simon
6181         * docs/vtables.pod:
6182         Start of the PMC classes documentation.
6184 2001-11-15 14:46  simon
6186         * classes/scalarclass.c:
6187         Changing to use a Perl-style struct instead of the union cache.
6189 2001-11-13 23:56  tom
6191         * string.c: Removed leading _ from string_index as function names
6192         starting with _ are reserved to implementors by the C standard.
6194         Also fixed string_index to use the encoding routines instead of
6195         assuming a single byte encoding.
6197 2001-11-13 12:59  jgoff
6199         * string.c: Patched string_concat to accept null strings.  That
6200         test was failing. Nothing to do with ord().
6202 2001-11-13 12:43  jgoff
6204         * string.c: string_ord function, string_concat fixes
6206 2001-11-13 04:52  jgoff
6208         * core.ops: Added ord to core.ops
6210 2001-11-13 04:35  jgoff
6212         * docs/strings.pod, include/parrot/exceptions.h,
6213         include/parrot/string.h, t/op/string.t: core.ops - Added ord
6214         operator, documentation string.c - Added string_ord, _string_index
6215         (_string_index is a static helper)              Patched
6216         string_concat to handle null strings properly.  docs/strings.pod -
6217         Description of string_ord include/parrot/exceptions.h - Added
6218         ORD_OUT_OF_STRING exception include/parrot/string.h - Added
6219         string_ord() t/op/string.t - Added full set of test for
6220         ord_i_(s|sc)(_(i|ic))?
6222         string.c contains a bit of documentation explaining the logic
6223         behind _string_index, primarily having to do with multiple encoding
6224         formats.
6226 2001-11-12 22:30  simon
6228         * t/op/macro.t:
6229         Count 'em.
6231 2001-11-12 22:28  simon
6233         * Makefile.in:
6234         Add a rule to compile "platform"
6236 2001-11-12 22:26  simon
6238         * Makefile.in:
6239         Tidy up distclean target.
6241 2001-11-12 16:54  dan
6243         * MANIFEST, Parrot/Assembler.pm, lib/Parrot/Assembler.pm,
6244         t/op/macro.t: Fixes to the assembler's macro facility and a test
6246         Courtesy of: Jeff <jgoff@speakeasy.net>
6248 2001-11-12 16:50  dan
6250         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm: Allow input from
6251         stdin
6253         Courtesy of: Jeff <jgoff@speakeasy.net>
6255 2001-11-12 16:36  dan
6257         * Parrot/Test.pm, lib/Parrot/Test.pm: Fix to make test work on
6258         CygWin
6260         Courtesy of: Alex Gough <alexander.gough@st-hughs.oxford.ac.uk>
6262 2001-11-12 11:22  simon
6264         * examples/assembly/mops.pasm:
6266         Trivial tightening of mops loop.
6268 2001-11-07 23:57  ajgough
6270         * docs/tests.pod: This is a basic quide to writing tests with
6271         assembler.
6273 2001-11-07 22:29  dan
6275         * stacks.c: Added a little documentation on the cleanup parameter
6276         for an entry
6278 2001-11-07 14:43  dan
6280         * MANIFEST, platforms/generic.c, platforms/linux.c,
6281         platforms/linux.h: Portability patches.
6283         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
6285 2001-11-06 19:51  tom
6287         * Makefile.in: Clean up object files in the subdirectories as well
6288         as those in the top level directory.
6290         Enhanced version of patch from Daniel Grunblatt
6291         <daniel@grunblatt.com.ar>
6293 2001-11-06 16:14  dan
6295         * Configure.pl, MANIFEST, Makefile.in, core.ops,
6296         platforms/generic.c, platforms/generic.h: Made things a bit more
6297         platform-independent. Makefile still needs work to pick up changes
6298         to the platform-specific files.
6300 2001-11-05 21:32  dan
6302         * docs/parrot_assembly.pod: Added docs for the GC control ops
6304 2001-11-04 02:52  gregor
6306         * platforms/: win32.c, win32.h:
6307           * win32 dynamic loading functions.
6309         Courtesy of Jason Diamond <jason@injektilo.org>
6311 2001-11-04 00:04  brentdax
6313         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm: Assembler fixes:
6314         allows an absolute path to be used and gives a useful error message
6315         if the original source file can't be found
6317 2001-11-02 12:37  gregor
6319         * platforms/: linux.c, linux.h:
6320           * Beginning of dynamic loading support. Linux only for now.
6322 2001-11-02 12:13  gregor
6324         * MANIFEST, time.c, include/parrot/time.h:
6325           * Removed time.[hc], since they have been superseded by the new
6326         platform
6327             stuff.
6329 2001-11-02 12:11  gregor
6331         * Configure.pl, Makefile.in, core.ops, vtable.tbl,
6332         classes/intclass.c, classes/scalarclass.c, hints/mswin32.pl,
6333         include/parrot/parrot.h, platforms/linux.c, platforms/linux.h,
6334         platforms/win32.c, platforms/win32.h:
6335         Patch from Jason Diamond to make win32 platform stuff work:
6337         * Modified Configure.pl, mswin32.pl, and Makefile.in so that the
6338         platform specific files in the platforms directory gets copied to
6339         the correct directories. The Makefile will re-copy the platform.h
6340         and .c files if the original is modified.
6342         * #include platform.h in parrot.h instead of time.h.
6344         * Removed time.h and time.obj from the Makefile. time.h and time.c
6345         aren't being used anymore since that code was moved to linux.c and
6346         win32.c.
6348         * Renamed the BOOL typedef in parrot.h to BOOLVAL (inspired by
6349         INTVAL and FLOATVAL). This was conflicting with the BOOL typedef in
6350         windows.h. This required updating several files besides parrot.h.
6352         * Added a DEFAULT_OPEN_MODE to linux.h and win32.h and used that
6353         instead of the missing identifiers (on Windows) in core.ops in the
6354         calls to open.
6356         * Added Parrot_sleep and Parrot_setenv to both the linux and win32
6357         platform files and called those from core.ops. The Linux code for
6358         these functions came from core.ops so they should hopefully work.
6360         Courtesy of Jason Diamond <jason@injektilo.org>
6362 2001-11-02 06:43  brentdax
6364         * Makefile.in, hints/mswin32.pl: Fix classes/intclass.obj building
6365         for Win32 (courtesy of Jason Diamond <jason@injektilo.org>)
6367 2001-11-02 02:26  gregor
6369         * .cvsignore, MANIFEST, include/parrot/.cvsignore,
6370         platforms/linux.c, platforms/linux.h, platforms/win32.c,
6371         platforms/win32.h:
6372           * Beginnings of platform support files in platform/*.[hc]
6374 2001-11-01 23:37  tom
6376         * classes/intclass.c: Added missing *'s to STRING arguments and
6377         return values to avoid compiler warnings.
6379 2001-11-01 22:21  gregor
6381         * MANIFEST, Makefile.in, core.ops, obscure.ops, time.c,
6382         include/parrot/parrot.h, include/parrot/time.h:
6383         Initial "fix" of time(n) op for Win32:
6385           * Initial Win32 code Courtesy of Richard J Cox <rjcox@cix.co.uk>
6387           * time.c and include/parrot/time.h
6389             First attempt at getting this working across platforms. The
6390             macro WIN32 being tested might not be right.
6392           * New functions Parrot_intval_time() and Parrot_floatval_time()
6393             wrap the appropriate functionality depending upon platform.
6394             Changed core.ops to call these.
6396         Added obscure.ops with obscure transcendental ops.
6398         Added simple file I/O ops (close, open, read, write):
6400           * Initial versions Courtesy of Jeff <jgoff@speakeasy.net>
6402           * I changed some arg ordering stuff.
6404           * I added read/write of INTVALs and FLOATVALs.
6406         Added environment variable ops (getenv, setenv)
6408         Added system error ops (err(i) and err(s) for accessing errno and
6409         strerr().
6411         Moved print ops in with other "temporary" developer ops, since
6412         they'll move to a devel.ops or temp.ops oplib once we have oplibs.
6414 2001-10-31 22:51  tom
6416         * MANIFEST, Makefile.in, chartype.c, encoding.c, global_setup.c,
6417         packfile.c, string.c, strnative.c, strutf16.c, strutf32.c,
6418         strutf8.c, transcode.c, chartypes/unicode.c, chartypes/usascii.c,
6419         encodings/singlebyte.c, encodings/utf16.c, encodings/utf32.c,
6420         encodings/utf8.c, include/parrot/chartype.h,
6421         include/parrot/encoding.h, include/parrot/exceptions.h,
6422         include/parrot/parrot.h, include/parrot/string.h,
6423         include/parrot/strnative.h, include/parrot/strutf16.h,
6424         include/parrot/strutf32.h, include/parrot/strutf8.h,
6425         include/parrot/transcode.h: Reworked the string code in line with
6426         Dan's latest design that separates character sets from encodings.
6428 2001-10-31 19:53  dan
6430         * docs/parrot_assembly.pod: Finished I/O section of docs
6432 2001-10-31 16:51  dan
6434         * core.ops, docs/parrot_assembly.pod, include/parrot/parrot.h:
6435         Moved includes out of core.ops and into parrot.h where they belong
6436         (suitably guarded with #ifdefs). Also some updates to
6437         parrot_assembly.pod
6439 2001-10-30 21:43  dan
6441         * core.ops, stacks.c, docs/parrot_assembly.pod,
6442         include/parrot/stacks.h: Added entrytype opcode to fetch the type
6443         of the entry on the stack
6445 2001-10-29 18:30  dan
6447         * stacks.c: You can turn off stack entry type validation on pop by
6448         passing in a type of 0 now. (For those cases where you just want to
6449         throw the darned thing away)
6451 2001-10-29 14:37  gregor
6453         * core.ops, languages/jako/jakoc:
6454           * New variants of the save ops to save constants on the stack.
6455         This is
6456             useful for saving zero arg and result counts on the stack, for
6457         example.
6459           * Modified jakoc to to adapt to the newly announced calling
6460         conventions.
6461             Even though Jako source code appears to show subroutines with
6462         fixed
6463             numbers of arguments and results, they are implemented with the
6464             variable count calling convention. Future modifications will be
6465         needed
6466             to ensure that an exception is raised if the stack frame is of
6467         the
6468             wrong size (or, at least that we pop the complete frame off).
6469         We'll
6470             also have to make more changes to support the true
6471         fixed-arg-count
6472             and fixed-result-count parts of the calling convention spec.
6474 2001-10-28 16:53  simon
6476         * MANIFEST, stacks.c, classes/scalarclass.c,
6477         include/parrot/stacks.h:
6478         Unbelievably bad errors of mine, plus a type incompatibility of
6479         Dan's.
6481 2001-10-28 08:30  simon
6483         * classes/scalarclass.c:
6484         Beginning of a scalar class.
6486 2001-10-28 08:29  simon
6488         * make_vtable_ops.pl, vtable.tbl, Parrot/Vtable.pm,
6489         lib/Parrot/Vtable.pm, classes/genclass.pl, classes/intclass.c,
6490         include/parrot/pmc.h:
6491         This fixes the problem with vtables and pointer arithmetic.
6493 2001-10-26 19:58  dan
6495         * core.ops, interpreter.c, stacks.c, include/parrot/interpreter.h,
6496         include/parrot/stacks.h: Split the generic stack into a user push
6497         stack and a control stack
6499 2001-10-26 02:59  bdwheele
6501         * Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm: [no log message]
6503 2001-10-24 20:27  dan
6505         * languages/scheme/: Makefile, Scheme.pm, schemec,
6506         Scheme/Generator.pm, Scheme/Parser.pm, Scheme/Test.pm,
6507         Scheme/Tokenizer.pm, t/harness, t/arith/basic.t, t/arith/logic.t,
6508         t/arith/nested.t, t/io/basic.t, t/logic/basic.t: Added the mini
6509         Scheme compiler
6511 2001-10-24 20:23  dan
6513         * MANIFEST, pdump.c, docs/parrot_assembly.pod: Update for
6514         interpreter needs in pdump.c. Added scheme bits to manifest
6516 2001-10-24 16:43  gregor
6518         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm:
6519           * Make the assembler handle octal character code escapes in
6520         string
6521             constants.
6523 2001-10-24 15:56  dan
6525         * MANIFEST, examples/assembly/life.pasm: Added an example in to
6526         play the game of life
6528 2001-10-24 15:54  dan
6530         * core.ops: Added sleep. We'll need to override this to do events
6531         properly anyway, so...
6533 2001-10-24 14:03  gregor
6535         * Makefile.in, pbc2c.pl, pdump.c:
6536           * Adapt pdump.c and pbc2c.pl to the new requirement to pass
6537         interpreter
6538             pointer into string functions.
6540         Courtesy of: Ryan O'Neil <talisman580@yahoo.com>
6542 2001-10-23 20:09  gregor
6544         * languages/jako/jakoc:
6545           * Terminological refinement in regexp capture comment.
6547 2001-10-23 15:23  simon
6549         * classes/genclass.pl:
6550         Use a saner ANSI C construct to make MIPSPro happy.
6552         Courtesy of: Alex Gough <alexander.gough@st-hughs.oxford.ac.uk>
6554 2001-10-23 00:34  tom
6556         * core.ops, string.c, strnative.c, strutf16.c, strutf32.c,
6557         strutf8.c, include/parrot/string.h: Make sure the interpreter
6558         structure is passed to the transcoder as necessary, including
6559         passing it to string_compare().
6561 2001-10-23 00:32  tom
6563         * Makefile.in: Make pdump build again by including resources.o in
6564         the link.
6566 2001-10-22 22:43  dan
6568         * core.ops, packfile.c, string.c, strnative.c, strutf16.c,
6569         strutf32.c, strutf8.c, test_main.c, transcode.c,
6570         include/parrot/packfile.h, include/parrot/parrot.h,
6571         include/parrot/resources.h, include/parrot/string.h,
6572         include/parrot/transcode.h: Everything now uses the allocators and
6573         deallocators in resources.c.
6575         Unfortunately we lost standalone string-test mode, but I can cope
6576         with that.
6578         Please note that until we have a real allocation/deallocation/GC
6579         system, this'll leak. A *lot*.
6581 2001-10-22 20:27  dan
6583         * MANIFEST, Makefile.in, pmc.c, resources.c,
6584         include/parrot/resources.h: First cut to handle arena allocation of
6585         PMC headers. (Amongst other things)
6587 2001-10-22 19:02  dan
6589         * Configure.pl, config_h.in, register.c, include/parrot/register.h:
6590         Now each register type has its own mask macro, which is the right
6591         thing to do.
6593         Patch courtesy of Jason Gloudon <perl@gloudon.com>
6595 2001-10-21 23:40  tom
6597         * stacks.c, t/op/stacks.t: Fix bug in handling of rollover to a new
6598         stack chunk and add a test to test this rollover in future.
6600         Courtesy of Jason Gloudon <perl@gloudon.com>.
6602 2001-10-21 19:14  dan
6604         * include/parrot/string.h: Changed string 'unused' field to the
6605         language field.
6607 2001-10-21 18:18  gregor
6609         * languages/jako/: Makefile, mops.jako:
6610           * Makefile: 'clean' target removes .list files, too. And, it does
6611         rm -f
6612             with wildcards rather than listing things explicitly.
6614           * mops.jako actually prints out the
6615         millions-of-operations-per-second
6616             (mops) value instead of just the operations-per-second value.
6618 2001-10-21 18:03  simon
6620         * classes/intclass.o:
6621         *smack*! WRONG!
6623 2001-10-21 17:47  simon
6625         * MANIFEST, Makefile.in, make_vtable_ops.pl, pmc.c, vtable_h.pl,
6626         Parrot/Vtable.pm, classes/genclass.pl, classes/intclass.c,
6627         classes/intclass.o, include/parrot/parrot.h, include/parrot/pmc.h,
6628         lib/Parrot/Vtable.pm:
6629         Initial work on PMCs. Explanation to follow
6631 2001-10-21 15:20  gregor
6633         * examples/assembly/queens.pasm:
6634           * Modernize the calling conventions in queens.pasm. It was using
6635         swap,
6636             which now must be rotate. Also, changed to use return values on
6637         the
6638             stack instead of in I0.
6640 2001-10-19 18:14  gregor
6642         * core.ops, stacks.c, include/parrot/stacks.h,
6643         languages/jako/jakoc:
6644         Per Dan's request, replacing 'swap' op by 'rotate'.
6646           * core.ops: Replaced 'swap()' by 'rotate(i|ic)'.
6648           * stacks.c and stacks.h: Removed swap-related functions from my
6649             prior commit, replacing them with stack_depth(), stack_entry()
6650             and rotate_entries().
6652             NOTE: The stack_depth() and rotate_entries() routines could
6653             be made more efficient through the caching of the sum of chunk
6654             'used' members from lower chunks in a field in the upper
6655             chunks. Also, if the interpreter's stack_base was changed to
6656             hold the pointer to the *top* chunk (since we usually come
6657             at the stack from the top down) instead of the *bottom*
6658             chunk. The code here at least works, and we can decide about
6659             bigger changes separately.
6661             For now, rotate only handles rotates in one direction and
6662             of magnituded one. A fully general rotate would do handle
6663             rotates in both directions and of arbitrary amounts. Again,
6664             this implementation is sufficient for current applications,
6665             and a feature-complete version can be developed if this turns
6666             out to be otherwise the right type of implementation.
6668             This change includes a new exception for ERROR_STACK_SHALLOW,
6669             meaning "not-empty-yet-not-deep-enough-for-what-you-asked".
6671           * jakoc: Changed the calling convention to use rotate instead
6672             of swap (of course). Also changed the convention for return
6673             value passing to use the stack as well.
6675 2001-10-19 13:36  gregor
6677         * MANIFEST, core.ops, disassemble.pl, stacks.c,
6678         examples/assembly/queens.pasm, include/parrot/stacks.h,
6679         languages/jako/.cvsignore, languages/jako/Makefile,
6680         languages/jako/bench.jako, languages/jako/euclid.jako,
6681         languages/jako/fact.jako, languages/jako/jakoc,
6682         languages/jako/mandelbrot.jako, languages/jako/mops.jako,
6683         languages/jako/primes.jako, languages/jako/queens.jako,
6684         languages/jako/sub.jako:
6685           * New stack functions push_entry(), pop_entry() and swap_entry().
6686             The first two exist for the support of the last one. These
6687             functions don't care what is in the stack entries. These exist
6688             to support the new 'swap' op (see next bullet).
6690           * New op 'swap' for swapping the top two elements on the stack.
6691             This is necessary for passing arguments to functions, since
6692             the return address will be on top of any arguments that have
6693             been pushed on the stack. This way, you can use a (swap, pop)
6694             pair to retrieve each argument (for subroutine linkage).
6696           * Disassembler now prints numbers in decimal by default, with
6697             a new '-x' flag to turn on hexadecimal display. Since other
6698             members of the Parrot Tool Set use decimal by default, this
6699             makes it easier to compare output from the various tools.
6701           * Jako compiler has more explanatory comments and the following
6702             new features:
6704               * Lexically scoped variables.
6706               * Subroutines that take arguments and return values:
6708                   sub int foo(int bar) {
6709                     if (bar == 1) {
6710                       return 42;
6711                     } else {
6712                       return 13;
6713                     }
6714                   }
6715               * ... if (...) and ... unless (...) statement modifiers
6716                 can be used on next, last and redo.
6718               * Bitwise and (&, &=) and or (|, |=) ops.
6720               * Type names are just 'int', 'num', 'str', and 'poly' now.
6721                 The old long names 'integer', 'number', 'string', and
6722                 'polytype' are no longer valid.
6724               * Integer variable assignments can now use 0b (binary),
6725                 0 (octal) and 0x (hexadecimal) radix prefixes on literals.
6727           * New Jako and Parrot assembly examples queens.{jako,pasm} for
6728             solving the eight-queens problem. The assembly example is a
6729             hand-modified version of the assembly code produced by the
6730             Jako compiler from queens.jako. A few unnecessary ops have
6731             been removed, lots of unnecessary labels have been removed,
6732             and all the Jako source code comments have been removed.
6734           * Makefile and .cvsignore in languages/jako modified so that
6735             the assembler produces listings when assembling the programs,
6736             yet the *.list files are ignored by CVS.
6738           * Made the default target in languages/jako/Makefile 'all'.
6740           * Modified some of the Jako examples to use some of the new
6741             features of Jako, such as subroutines and lexical variable
6742             scoping.
6744 2001-10-19 02:43  gregor
6746         * runops_cores.c, include/parrot/runops_cores.h:
6747         Bug fix (gcc doesn't complain, but MIPSpro does):
6749           * Added missing extern to runops_cores array declaration in
6750             include/parrot/runops_cores.h
6752           * Also added 'const' there and in runops_cores.c
6754 2001-10-18 15:18  gregor
6756         * .cvsignore, include/parrot/oplib/.cvsignore:
6757           * Ignore the vtable-related generated files.
6759 2001-10-18 15:14  gregor
6761         * core.ops:
6762           * left and right shifts now allow the 2nd argument to be a
6763         constant.
6765 2001-10-18 14:55  simon
6767         * make_vtable_ops.pl:
6768         This is C, not Perl. How on earth did that even compile?
6770 2001-10-18 14:54  simon
6772         * make_vtable_ops.pl:
6773         More vtable ops.
6775 2001-10-18 12:33  simon
6777         * Makefile.in, make_vtable_ops.pl, vtable.tbl:
6778         Initial stab at vtable opcode creation stuff.
6780 2001-10-18 02:15  gregor
6782         * MANIFEST, Makefile.in, interpreter.c, runops_cores.c, trace.c,
6783         include/parrot/interpreter.h, include/parrot/runops_cores.h,
6784         include/parrot/trace.h: Preparation for autogenerated runops cores:
6786           * Split tracing and runops core stuff out of interpreter.c into
6787             trace.c and runops_cores.c
6789           * Similar split of stuff from include/parrot/interpreter.h
6791           * Manifest and Makefile.in updates to make things still compile.
6793 2001-10-18 01:21  gregor
6795         * Makefile.in, ops2c.pl, ops2pm.pl, pbc2c.pl: Bug fixes:
6797           * Makefile.in: examples/assembly/mops.c depends on pbc2c.pl
6799           * Makefile.in: Parrot/OpLib/core.pm depends on ops2pm.pl
6801           * ops2c.pl: Added second arg to mkdir (perl 5.005_02 complains)
6803           * ops2pm.pl: Added second arg to mkdir (perl 5.005_02 complains)
6805           * pbc2c.pl: Removed explicit include of <math.h>, replacing it
6806         with
6807             copy of $ops->preamble.
6809 2001-10-17 22:32  bdwheele
6811         * interpreter.c: Moved op dump code into trace_op_dump, per Dan's
6812         request.
6814 2001-10-17 22:08  gregor
6816         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm:
6817           * Now handles label-and-comment-only lines.
6819 2001-10-17 22:04  bdwheele
6821         * interpreter.c: added more comprehensive trace output
6823 2001-10-17 16:50  tom
6825         * Makefile.in: Removed the explicit rule for building mops.o from
6826         mops.c so that the implicit rule for compiling C files is used
6827         instead. This means that the chosen C flags are used, including any
6828         optimisation options.
6830 2001-10-17 15:24  tom
6832         * core.ops, Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm: Enhanced the
6833         op explosion logic to be able to handle exploding this:
6835           sub(i, i|ic, i|ic)
6837         into these:
6839           sub(i, i, i)
6840           sub(i, i, ic)
6841           sub(i, ic, i)
6843         without also generating this unwanted version:
6845           sub(i, ic, ic)
6847         The enhanced version rejects any expansion where there is more than
6848         one expanded argument and all the expanded arguments are constants.
6850 2001-10-17 14:20  simon
6852         * Makefile.in, ops2c.pl, ops2pm.pl, examples/assembly/Makefile:
6853         Build fixes to use correct Perl version and ensure that things are
6854         running in the right directory.
6856         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
6858 2001-10-17 13:16  simon
6860         * Makefile.in:
6861         core.pm is more critical than that.
6863 2001-10-17 13:05  simon
6865         * core.ops, Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm:
6866         "Explode" ops into multiple versions for different parameters.
6868         Courtesy of: Tom Hughes <tom@compton.nu>
6870 2001-10-17 12:54  simon
6872         * Makefile.in:
6873         Fix dependencies and cleaning.
6875 2001-10-17 12:45  simon
6877         * Configure.pl, Makefile.in:
6878         Fixes to make Parrot compile without the temporary build hack
6880         Courtesy of: Jason Gloudon <perl@gloudon.com>
6882 2001-10-16 20:43  gregor
6884         * Makefile.in:
6885           * Fixed dependencies for building Parrot/OpLib/core.pm
6887 2001-10-16 19:35  bdwheele
6889         * core.ops, t/op/string.t: Changed set s,sc to use string_copy &
6890         added test, thanks to Alex Gough
6892 2001-10-16 16:49  bdwheele
6894         * core.ops: added opcode variants for constants and 3 arg concat
6896 2001-10-16 15:12  bdwheele
6898         * core.ops: added "set Sx,Sy" as a string copy to match the other
6899         register-to-register copies available
6901 2001-10-16 13:09  gregor
6903         * core.ops:
6904           * Added #include <sys/time.h> in the preamble for gettimeofday().
6906 2001-10-16 13:09  gregor
6908         * Makefile.in:
6909           * Removed cd t; make, which no longer applies
6911 2001-10-16 03:18  bdwheele
6913         * core.ops: fix save & restore operations to push correct type onto
6914         stack. [good eye to Jason Gloudon for noticing this]
6916 2001-10-16 01:38  bdwheele
6918         * core.ops, register.c, examples/assembly/fact.pasm,
6919         include/parrot/register.h: send in the clones:  clone routines for
6920         parrot + example program
6922 2001-10-15 22:37  gregor
6924         * MANIFEST, Makefile.in, examples/assembly/.cvsignore,
6925         examples/assembly/Makefile, examples/assembly/bsr.pasm,
6926         examples/assembly/call.pasm, examples/assembly/euclid.pasm,
6927         examples/assembly/jump.pasm, examples/assembly/local_label.pasm,
6928         examples/assembly/mops.pasm, examples/assembly/stack.pasm,
6929         examples/assembly/substr.pasm, examples/assembly/trace.pasm,
6930         t/.cvsignore, t/Makefile, t/call.pasm, t/euclid.pasm, t/jump.pasm,
6931         t/local_label.pasm, t/test.pasm, t/test2.pasm, t/test3.pasm,
6932         t/test4.pasm, t/test5.pasm, t/trace.pasm:
6933           * Moved examples from t/*.pasm to examples/assembly/*.pasm, with
6934         some
6935             renames so the names match what they demonstrate.
6937 2001-10-15 22:18  gregor
6939         * core.ops, t/test.pasm:
6940           * time_n uses gettimeofday() to get sub-second times.
6942           * t/test.pasm uses time_n directly rather than doing int stuff
6943         and
6944             converting to num later.
6946 2001-10-15 12:28  gregor
6948         * t/: test.pasm, test2.pasm, trace.pasm:
6949           * t/test.pasm prints using string constants instead of string
6950         regs.
6952           * t/test2.pasm assembles (using implicit op modes)
6954           * t/trace.pasm updated for new behavior of trace_ic, which does
6955         not
6956             require an 'end' after 'trace'.
6958 2001-10-15 00:47  gregor
6960         * core.ops, interpreter.c, test_main.c,
6961         include/parrot/interpreter.h, t/test.pasm:   * New interpreter flag
6962         PARROT_PROFILE_FLAG
6964           * New runops cores to handle profiling
6966           * Support for -p flag in test_prog to enable profiling
6968           * New profile_ic op to control profiling at run-time
6970 2001-10-14 21:54  gregor
6972         * core.ops, Parrot/OpsFile.pm, docs/.cvsignore, docs/Makefile,
6973         lib/Parrot/OpsFile.pm: Integrated op documentation.
6975           * core.ops now contains POD documentation of ops, interspersed
6976         with the
6977             ops themselves
6979           * Ops are organized into POD =head2 sections
6981           * Parrot/OpsFile.pm now treats the preamble of the ops file as
6982         anything
6983             up to the first POD directive OR op definition.
6985           * docs/Makefile now generates core_ops.pod from core.ops vi
6986         perldoc -u.
6988 2001-10-14 11:58  simon
6990         * Makefile.in:
6991         Unbreak Digital Un^W^WTru64
6993 2001-10-14 11:00  simon
6995         * Configure.pl:
6996         Remove weird typo.
6998 2001-10-14 10:56  tom
7000         * Configure.pl: Stop Configure trying to make op_info.c and op.h as
7001         op_info.c no longer exists and op.h is no longer a generated file.
7003 2001-10-14 10:54  tom
7005         * Makefile.in: Added vtable.h to the list of things removed by the
7006         clean target.
7008 2001-10-14 01:43  gregor
7010         * .cvsignore, MANIFEST, Makefile.in, basic_opcodes.ops,
7011         build_interp_starter.pl, core.ops, disassemble.pl, interpreter.c,
7012         make_op_header.pl, memory.c, opcheck.pl, opcode_table, ops2c.pl,
7013         ops2pm.pl, packfile.c, pbc2c.pl, process_opfunc.pl,
7014         Parrot/Assembler.pm, Parrot/Op.pm, Parrot/OpsFile.pm,
7015         Parrot/OpLib/.cvsignore, lib/Parrot/Assembler.pm, lib/Parrot/Op.pm,
7016         lib/Parrot/OpsFile.pm, lib/Parrot/OpLib/.cvsignore,
7017         include/parrot/.cvsignore, include/parrot/interp_guts.h,
7018         include/parrot/interpreter.h, include/parrot/op.h,
7019         include/parrot/oplib/.cvsignore, t/.cvsignore, t/Makefile,
7020         t/euclid.pasm, t/test.pasm, t/op/integer.t, t/op/number.t,
7021         t/op/stacks.t, t/op/string.t, t/op/trans.t:
7022         Moby Patch:
7024           * basic_opcodes.ops and opcode_table replaced by core.ops
7026           * process_opfunc.pl replaced by Parrot/OpsFile.pm, Parrot/Op.pm,
7027             and ops2c.pl. These convert *.ops to *_ops.c and
7028             include/parrot/oplib/*_ops.h
7030           * New ops2pm.pl converts *.ops to Parrot/OpLib/*.pm
7032           * disassemble.pl modified to use
7034           * interpreter.c modified to use structures in core_ops.c instead
7035             of the old op_info and op_func stuff. We're not yet to the
7036             point of handling multiple oplibs at a time, but we are getting
7037             there...
7039             Fingerprinting stuff disabled for now. We used to go off
7040             opcode_table. We need to rethink this. I have some ideas to
7041             make it unnecessary, but it remains to be seen whether others
7042             will like the direction they take us.
7044             Termination condition for while(){} loop in runops is now
7045             (pc) instead of (*pc). Any op can cause a HALT by returning
7046             a NULL pointer. Ops end, bounds and trace all do this. So, now
7047             the 'end' op body is actually executed, although all it does
7048             is HALT.
7050           * Makefile.in modified to perform a test build using pbc2c.pl,
7051             which is the bytecode --> C compiler I've posted to the
7052             list before.
7054           * Op full names are now autogenerated. Op root names must not
7055             contain underscores, so some op renamings have happened.
7056             Such as clear_i becoming cleari.
7058 2001-10-13 11:49  simon
7060         * Configure.pl, MANIFEST:
7061         Make parrot actually build again.
7063 2001-10-12 21:34  dan
7065         * docs/parrot_assembly.pod: Added docs for the new save/restore/bsr
7066         opcodes
7068 2001-10-12 20:56  dan
7070         * MANIFEST, Makefile.in, basic_opcodes.ops, interpreter.c,
7071         opcode_table, process_opfunc.pl, stacks.c, include/parrot/stacks.h,
7072         t/test3.pasm, t/test4.pasm, t/test5.pasm: Changes to support
7073         generic stack now in. We also have subroutines, of a simple sort!
7075 2001-10-12 19:15  tom
7077         * t/op/string.t: Improved string comparison tests try all string
7078         combinations with each of the comparison ops.
7080 2001-10-12 19:09  dan
7082         * interpreter.c: Properly sets up generic stack now
7084 2001-10-12 19:09  dan
7086         * include/parrot/interpreter.h: Fixed stack chunk struct type in
7087         interpreter structure
7089 2001-10-12 18:59  dan
7091         * stacks.c, include/parrot/parrot.h, include/parrot/stacks.h: More
7092         changes to get the generic stack working
7094 2001-10-12 18:59  dan
7096         * Configure.pl, MANIFEST, config_h.in, testparrotsizes_c.in,
7097         hints/vms.pl: Made the changes to figure out mask bits for various
7098         register and stack chunks
7100 2001-10-11 22:09  dan
7102         * docs/parrot_assembly.pod: Tossed the parameter for return
7104 2001-10-11 19:28  tom
7106         * strnative.c: Assignment, not comparison.  (Plus formatted for
7107         coding standards)
7109         Courtesy of Bryan C. Warnock
7111 2001-10-10 19:21  tom
7113         * basic_opcodes.ops, opcode_table, string.c, strnative.c,
7114         strutf16.c, strutf32.c, strutf8.c, docs/strings.pod,
7115         include/parrot/string.h, t/op/string.t: Added support for string
7116         comparisons and extended the comparison ops to include comparison
7117         of strings.
7119 2001-10-10 17:58  dan
7121         * MANIFEST: Shouldn't have added vtable.h to the manifest...
7123 2001-10-10 17:54  dan
7125         * MANIFEST, stacks.c, vtable_h.pl, Parrot/Vtable.pm,
7126         lib/Parrot/Vtable.pm: Now spits out the #defines for the various
7127         vtable type entries properly
7129 2001-10-10 15:37  dan
7131         * Parrot/Vtable.pm, lib/Parrot/Vtable.pm: Re-enabled change to
7132         parse new vtable.tbl file now that I've actually checked *in* the
7133         new format vtable.tbl file...
7135 2001-10-10 15:32  dan
7137         * vtable.tbl: New Column to indicate the type of the vtabel entry
7138         so we can know how many slots it takes
7140 2001-10-10 05:26  thgibbs
7142         * Parrot/Vtable.pm, lib/Parrot/Vtable.pm, vtable_h.pl: Patch to
7143         allow parrot to compile.  PACKAGE is not defined, therefore, I
7144         added a struct before it to have it not complain until we define
7145         PACKAGE.  Also, there was an extra shift in Vtable.pm and a missing
7146         semicolon at the end of the struct declaration.
7148 2001-10-10 05:09  thgibbs
7150         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm: This patch makes
7151         string constants of the form U"string" become unicode encoded
7152         parrot strings and the form N"string" become native encoded parrot
7153         strings.
7155         Courtesy of: Tom Hughes <tom@compton.nu>
7157 2001-10-10 04:55  dan
7159         * vtable_h.pl, Parrot/Vtable.pm, lib/Parrot/Vtable.pm: Start of
7160         support for generating the vtable function table offset macros
7162 2001-10-10 01:05  simon
7164         * t/op/integer.t:
7165         The test for cmod_i was using the 'mod Ix, Ix, Ix' form which
7166         compiles into the mod op, not the cmod_i op, hence wasn't testing
7167         what it thought it was.
7169         Courtesy of: Alex Gough <alexander.gough@st-hughs.oxford.ac.uk>
7171 2001-10-09 03:45  thgibbs
7173         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm: Patch to allow
7174         assembler to generate unicode strings.
7176         Courtesy of: Tom Hughes <tom@compton.nu>
7178 2001-10-08 19:30  brentdax
7180         * Configure.pl, test_c.in, hints/vms.pl: Cleaner VMS support, more
7181         info for Parrot::Config to remember, more flexible test.c stuff
7183 2001-10-08 15:04  gregor
7185         * basic_opcodes.ops:
7186           * Removed trash from early mod_i experiments (pardon our dust)
7188 2001-10-08 14:56  gregor
7190         * basic_opcodes.ops:
7191           * Fixed a couple of typos.
7193 2001-10-08 14:45  gregor
7195         * basic_opcodes.ops, opcode_table, t/op/integer.t, t/op/number.t:
7196         Arithmetic enhancements:
7198           * Renamed existing mod_i as cmod_i and added "corrected" mod_i:
7200             NOTE: This "uncorrected mod" algorithm uses the C language's
7201         built-in
7202             mod operator (x % y), which is
7204                 ... the remainder when x is divided by y, and thus is zero
7205         when y
7206                 divides x exactly.
7207                 ...
7208                 The direction of truncation for / and teh sign of the
7209         result for %
7210                 are machine-dependent for negative operands, as is the
7211         action taken
7212                 on overflow or underflow.
7213                                                                      --
7214         [1], page 41
7216             Also:
7218                 ... if the second operand is 0, the result is undefined.
7219         Otherwise, it
7220                 is always true that (a/b)*b + a%b is equal to z. I both
7221         operands are
7222                 non-negative, then teh remainder is non-negative and
7223         smaller than the
7224                 divisor; if not, it is guaranteed only that the absolute
7225         value of the
7226                 remainder is smaller than the absolute value of the
7227         divisor.
7228                                                                      --
7229         [1], page 205
7231             This op is provided for those who need it (such as
7232         speed-sensitive
7233             applications with heavy use of mod, but using it only with
7234         positive
7235             arguments), but a more mathematically useful numeric mod based
7236         on
7237             floor(x/y) and defined with y == 0 is provided by the mod_i op.
7239               [1] Brian W. Kernighan and Dennis M. Ritchie, *The C
7240         Programming
7241                   Language*, Second Edition. Prentice Hall, 1988.
7243           * Added "corrected" mod_i:
7245             NOTE: This "corrected mod" algorithm is based on the C code on
7246         page 70
7247             of [1]. Assuming correct behavior of C's built-in mod operator
7248         (%) with
7249             positive arguments, this algorithm implements a mathematically
7250         convenient
7251             version of mod, defined thus:
7253               x mod y = x - y * floor(x / y)
7255             For more information on this definition of mod, see section 3.4
7256         of [2],
7257             pages 81-85.
7259             References:
7261               [1] Donald E. Knuth, *MMIXware: A RISC Computer for the Third
7262                   Millennium* Springer, 1999.
7264               [2] Ronald L. Graham, Donald E. Knuth and Oren Patashnik,
7265         *Concrete
7266                   Mathematics*, Second Edition. Addison-Wesley, 1994.
7268           * Added mod_n, using the same formula as above, but with FLOATVAL
7269             arguments.
7271           * Added cmod_n, using the C math library's fmod() function:
7273             NOTE: This "uncorrected mod" algorithm uses the built-in C math
7274         library's
7275             fmod() function, which computes
7277                 ... the remainder of dividing x by y. The return value is x
7278         - n * y,
7279                 where n is the quotient of x / y, rounded towards zero to
7280         an
7281                 integer.
7282                                                 -- fmod() manpage on RedHat
7283         Linux 7.0
7285             In addition, fmod() returns
7287                 the remainder, unless y is zero, when the function fails
7288         and errno
7289                 is set.
7291             According to page 251 of [1], the result when y is zero is
7292         implementation-
7293             defined.
7295             This op is provided for those who need it, but a more
7296         mathematically
7297             useful numeric mod based on floor(x/y) instead of truncate(x/y)
7298         and
7299             defined with y == 0 is provided by the mod_n op.
7301               [1] Brian W. Kernighan and Dennis M. Ritchie, *The C
7302         Programming
7303                   Language*, Second Edition. Prentice Hall, 1988.
7305           * Added and modified tests as appropriate for the above.
7307 2001-10-08 08:49  thgibbs
7309         * include/parrot/exceptions.h, include/parrot/parrot.h,
7310         include/parrot/string.h, include/parrot/strutf16.h,
7311         include/parrot/strutf32.h, include/parrot/strutf8.h,
7312         include/parrot/transcode.h, include/parrot/unicode.h, MANIFEST,
7313         Makefile.in, global_setup.c, string.c, strnative.c, transcode.c,
7314         strutf16.c, strutf32.c, strutf8.c: Added code to handle unicode
7315         strings for utf8, utf16, and utf32.
7317         Courtesy of: Tom Hughes <tom@compton.nu>
7319 2001-10-08 08:10  thgibbs
7321         * memory.c: Fixed uninitialized variables.
7323         Courtesy of: Bryan C. Warnock <bwarnock@raba.com>
7325 2001-10-08 01:21  gregor
7327         * packfile.c:   * Casting a return value
7329           * Potential uninitialized variable fix
7331         Courtesy of Bryan C. Warnock <bwarnock@raba.com>
7333 2001-10-08 01:15  gregor
7335         * packfile.c, test_main.c: One of Bryan's languishing patches (with
7336         a few tweaks of my own):
7338           * Line wrapping
7340           * Printf format fixes
7342         Courtesy of: Bryan C. Warnock <bwarnock@raba.com>
7344 2001-10-07 22:39  thgibbs
7346         * build_interp_starter.pl: No longer adds (void*) casts to
7347         interp_guts.c function table as they are not necessary in ANSI C.
7349 2001-10-07 16:27  gregor
7351         * basic_opcodes.ops, interpreter.c, opcode_table,
7352         process_opfunc.pl, test_main.c, include/parrot/interpreter.h,
7353         t/trace.pasm:
7354           * Two new ops, trace_ic and bounds_ic that twiddle bits in
7355             interpreter->flags and set interpreter->resume_addr.
7357           * Two new runops core variants, so now we cover the relevant
7358             flag space over {trace, notrace} x {boundscheck, noboundscheck}
7360           * Runops core selection that converts the flags into an index
7361         into
7362             a core table (runops_cores) to get the core function pointer.
7364           * A new trace_op variant that doesn't do bounds checking (used by
7365             the non-bounds-checking-but-tracing runops core).
7367           * PC is passed into the cores so that they can be used when
7368             resuming (they used to assume starting at the beginning of the
7369             code, which would thwart resumption).
7371           * runops() itself is changed to have a while() loop in it so that
7372             any time we drop out of the core, we'll resume if we have an
7373             interpreter->resume_addr set (after reselecting the core,
7374         though).
7376           * process_opfunc.pl has a new "macro": RESUME(), that sets up
7377             interpreter->resume_addr. This is used by the new ops. The new
7378             ops still return the new PC as the next op (which MUST be an
7379             'end' op to force the core loop to terminate -- *pc being false
7380             is the only termination condition we can count on for all
7381         cores).
7383           * New interpreter flag: PARROT_BOUNDS_FLAG, used to control
7384             bounds checking core selection.
7386           * test_prog now has a '-b' flag in addition to the '-t' flag.
7387         Now,
7388             bounds checking is off by default (I saw a performance boost:
7389             6.3 Mop/s with -b, 7.0 Mop/s without).
7391           * A new sample/test program: t/trace.pasm that twiddles the trace
7392             flag while it is running.
7394 2001-10-07 15:41  gregor
7396         * .cvsignore, Makefile.in, build_interp_starter.pl, interpreter.c,
7397         include/parrot/.cvsignore, include/parrot/interpreter.h:
7398         Now that 0.0.2 is released, I can clear out the backlog of approved
7399         but uncommitted patches. Here's one Dan approved on 2001-09-21
7400         (Simplified DO_OP):
7402           * test_prog and pdump are linked with only the files the need,
7403         not
7404             al the files.
7406           * build_interp_starter.pl writes out op_info.[hc], too. These
7407         files
7408             contain op name, arg count and arg type information. This will
7409         be
7410             useful for multiple things in the future, including better
7411         trace
7412             output and the crystalizing loader.
7414           * The DO_OP macro is now simpler and doesn't require explicit
7415             temporaries.
7417           * interpreter.c is modified to use the new op info in tracing
7418         output.
7420           * The interpreter just points its opcode_funcs and opcode_info
7421             members at the default tables rather than allocating memory on
7422             the fly.
7424 2001-10-07 03:58  thgibbs
7426         * include/parrot/.cvsignore, vtable_h.pl: Minor updates fixing a
7427         comment and adding vtable.h to .cvsignore as it is produced by
7428         vtable_h.in
7430 2001-10-06 20:58  thgibbs
7432         * vtable.tbl: Added * to REGEX type.
7434         Courtesy of Bryan C. Warnock <bwarnock@raba.com>
7436 2001-10-06 13:41  simon
7438         * MANIFEST, Makefile.in, vtable.tbl, vtable_h.pl, Parrot/Vtable.pm,
7439         include/parrot/parrot.h, lib/Parrot/Vtable.pm:
7440         Framework for vtable functions.
7442 2001-10-06 06:52  thgibbs
7444         * make_op_header.pl: Removed confusing and unused typedef.
7446 2001-10-06 06:31  thgibbs
7448         * Parrot/Opcode.pm, lib/Parrot/Opcode.pm: Removed variables that
7449         are no longer used.
7451 2001-10-06 06:26  thgibbs
7453         * disassemble.pl: Changed intval to op in disassembler.
7455 2001-10-06 06:21  thgibbs
7457         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm: Fixed typo with
7458         Assembler, local labels, and integer constants.
7460 2001-10-06 03:11  ask
7462         * Makefile.in: make `make test` actually run the tests on
7463         darwin/macosx
7465 2001-10-06 02:04  thgibbs
7467         * Parrot/Assembler.pm, Parrot/Opcode.pm, Parrot/PackFile.pm,
7468         Parrot/String.pm, Parrot/PackFile/ConstTable.pm,
7469         Parrot/PackFile/Constant.pm, include/parrot/packfile.h,
7470         include/parrot/register.h, lib/Parrot/Assembler.pm,
7471         lib/Parrot/Opcode.pm, lib/Parrot/PackFile.pm, lib/Parrot/String.pm,
7472         lib/Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/Constant.pm,
7473         t/op/integer.t: No, it didn't mess anything up.  I just forgot to
7474         type make. :)
7476 2001-10-06 02:02  thgibbs
7478         * Parrot/Assembler.pm, Parrot/Opcode.pm, Parrot/PackFile.pm,
7479         Parrot/String.pm, Parrot/PackFile/ConstTable.pm,
7480         Parrot/PackFile/Constant.pm, include/parrot/packfile.h,
7481         include/parrot/register.h, lib/Parrot/Assembler.pm,
7482         lib/Parrot/Opcode.pm, lib/Parrot/PackFile.pm, lib/Parrot/String.pm,
7483         lib/Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/Constant.pm,
7484         t/op/integer.t: oops...this messed something up.  I must have
7485         missed something in the patch...I have reverted.
7487 2001-10-06 01:57  thgibbs
7489         * Parrot/Assembler.pm, Parrot/Opcode.pm, Parrot/PackFile.pm,
7490         Parrot/String.pm, Parrot/PackFile/ConstTable.pm,
7491         Parrot/PackFile/Constant.pm, include/parrot/packfile.h,
7492         include/parrot/register.h, lib/Parrot/Assembler.pm,
7493         lib/Parrot/Opcode.pm, lib/Parrot/PackFile.pm, lib/Parrot/String.pm,
7494         lib/Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/Constant.pm,
7495         t/op/integer.t, Types_pm.in, basic_opcodes.ops, config_h.in,
7496         memory.c, packfile.c, process_opfunc.pl, strnative.c, test_main.c:
7497         This patch ensures that all bytecode is of type opcode_t except for
7498         the constant table constants.  That means that almost all of the
7499         INTVALs in the code were replaced with opcode_t and the i pack type
7500         was replaced with the op pack type in calls to pack_arg and such.
7501         Also, since it has been declared that ALL integer constants are to
7502         be 32 bits, some test cases were changed to ensure that an integer
7503         constant was no bigger than 2 ** 31.
7505         process_opfunc.pl was also cleaned up to no longer look at either
7506         opcode_table or interp_guts.h but gather all of its information
7507         from Opcode.pm.
7509         The Assembler.pm module was changed to do late binding of arguments
7510         so that 0 could be treated like 0.0 without having to be so
7511         declared.  Also, only strings now use the [sc:N] intermediate form
7512         as it was unnecessary for integer and float types.
7514 2001-10-05 21:59  gregor
7516         * MANIFEST, languages/jako/Makefile:
7517         Fixed things due to the movement of little_languages/* to
7518         languages/jako.
7520 2001-10-05 18:31  gregor
7522         * MANIFEST:
7523         Updated MANIFEST to reflect recent additions for Jako.
7525 2001-10-05 17:54  gregor
7527         * languages/jako/: Makefile, bench.jako, euclid.jako, fact.jako,
7528         fib.jako, hello.jako, jakoc, leibniz.jako, mandelbrot.jako,
7529         mops.jako, primes.jako, sub.jako:
7530           * Compiler:
7532               * User-defined subroutines.
7533               * Generates assembly code with the Jako code in comments.
7534               * "end;" no longer required at the end of programs.
7535               * Better handling of const-reg and reg-const.
7536               * Optimizes const-const operations to compile-time
7537         evaluations.
7538               * Constants in addition to variables.
7539               * Arithmetic fixes.
7540               * Allow leading minus signs in integer and number constants
7541         (ahem).
7542               * goto's.
7544           * New sample programs:
7546               * leibniz.jako (based on Greg McCarroll's leibniz.pasm
7547         example)
7548               * mandelbrot.jako (based on Leon Brocard's translation of
7549         Glenn Rhodes' C code)
7550               * mops.jako (based on t/test.pasm)
7551               * primes.jako (based on Leon Brocard's primes.pasm example)
7552               * sub.jako (demonstrates a simple user-defined subroutine)
7554 2001-10-05 12:54  gregor
7556         * Parrot/Opcode.pm, lib/Parrot/Opcode.pm:
7557           * Removed mysterious extra copy of code after POD.
7559 2001-10-05 12:46  gregor
7561         * basic_opcodes.ops, t/op/string.t:
7562           * Enabled the previously SKIPped test of printing string regs
7563         after
7564             clear_s
7566           * Made print_s do nothing if the STRING pointer in the register
7567         file
7568             is NULL.
7570 2001-10-04 21:19  dan
7572         * Configure.pl: VMS tweaks
7574 2001-10-04 21:17  dan
7576         * hints/vms.pl: Hints file for VMS
7578 2001-10-04 00:58  bdwheele
7580         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm: fixed but in
7581         Assembler which stopped equates from working.
7583 2001-10-03 21:50  gregor
7585         * Makefile.in, docs/.cvsignore, docs/Makefile, docs/parrotbyte.pod:
7587           * More documentation updates for the packfile stuff.
7589 2001-10-03 21:37  gregor
7591         * docs/parrotbyte.pod:
7592           * Pointed the reader at Parrot::PackFile.
7594 2001-10-03 21:34  gregor
7596         * Parrot/PackFile.pm, lib/Parrot/PackFile.pm:
7597           * Updated documentation to match current implementation.
7599 2001-10-03 18:30  gregor
7601         * .cvsignore, disassemble.pl, Parrot/Assembler.pm,
7602         lib/Parrot/Assembler.pm, t/call.pasm, t/euclid.pasm,
7603         t/local_label.pasm, t/test.pasm, t/test2.pasm, t/test3.pasm,
7604         t/op/basic.t:
7605           * Added new syntax to the assembler to allow square-bracket
7606             arithmetic expressions involving (global) labels, the current
7607             instructions base address ('@'), numeric constants (not
7608         equates)
7609             and basic arithmetic operators (+, -, *, / -- although + and -
7610             are likely to be the only ones used in practice).
7612           * Fixed a bug in Parrot/Assemble.pl that caused macro expansion
7613         to
7614             fail (argument passing wasn't working).
7616           * Enabled t/op/basic.t's last test, which is actually a copy of
7617         the
7618             code from t/call.pasm. Now all tests there are enabled and
7619         working.
7621           * Added new example/test program t/call.pasm to demonstrate
7622         working
7623             macros and poor-man's subroutine calls
7625           * Added header comments to t/*.pasm
7627 2001-10-03 18:00  simon
7629         * ChangeLog:
7630         Needed, since it's in the MANIFEST.
7632 2001-10-03 17:56  simon
7634         * t/op/: string.t, time.t:
7635         Small fixes to help Win32 on its way.
7637 2001-10-03 17:41  simon
7639         * MANIFEST, README:
7640         Oops. Tiny bugs.
7642 2001-10-03 17:39  simon
7644         * MANIFEST, NEWS, README:
7645         README, NEWS and MANIFEST? Could it be time for Parrot 0.0.2? I
7646         think so!
7648 2001-10-03 17:21  simon
7650         * basic_opcodes.ops, interpreter.c, packfile.c:
7651         Evil printf bandaid (which allows Sparc64 to pass tests)
7653         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
7655 2001-10-03 16:58  simon
7657         * string.c, t/op/string.t:
7658         chop fixes for n < 0 and tests
7660         Courtesy of: Alex Gough <alex@rcon.org>
7662 2001-10-03 15:51  thgibbs
7664         * interpreter.c: Changed an occurrence of INTVAL to opcode_t
7666         Courtesy of: Bryan C. Warnock <bwarnock@raba.com>
7668 2001-10-02 17:48  dan
7670         * include/parrot/stacks.h: Fix typo in function name
7672 2001-10-02 17:35  dan
7674         * include/parrot/stacks.h: changed to support new stack stuff
7675         coming after 0.02
7677 2001-10-02 15:01  simon
7679         * Configure.pl, Types_pm.in, basic_opcodes.ops, config_h.in,
7680         interpreter.c, make_op_header.pl, memory.c, packfile.c,
7681         process_opfunc.pl, register.c, string.c, strnative.c,
7682         Parrot/Opcode.pm, Parrot/PackFile.pm, Parrot/String.pm,
7683         lib/Parrot/Opcode.pm, lib/Parrot/PackFile.pm, lib/Parrot/String.pm,
7684         Parrot/PackFile/ConstTable.pm, Parrot/PackFile/Constant.pm,
7685         docs/overview.pod, docs/strings.pod, include/parrot/interpreter.h,
7686         include/parrot/memory.h, include/parrot/packfile.h,
7687         include/parrot/parrot.h, include/parrot/register.h,
7688         include/parrot/stacks.h, include/parrot/string.h,
7689         lib/Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/Constant.pm:
7691         The Great Renaming.
7693 2001-10-02 12:49  gregor
7695         * process_opfunc.pl:
7696           * Fixed a tyop:  s/string/integer/ for INT_CONST expansion
7698 2001-10-02 12:40  simon
7700         * basic_opcodes.ops, process_opfunc.pl, register.c,
7701         include/parrot/register.h:
7702         Move preprocessing of register accessors to process_opfunc.pl
7704         Courtesy of: Jason Gloudon <perl@gloudon.com>
7706 2001-10-02 01:20  ask
7708         * README: add a few lines about lists.
7710 2001-10-01 23:00  brentdax
7712         * Configure.pl, Makefile.in, hints/mswin32.pl: Make 'make clean'
7713         work on Win32 (courtesy of Mattia Barbon <mbarbon@dsi.unive.it>)
7715 2001-10-01 22:50  brentdax
7717         * Configure.pl, test_c.in: More changes for 64-bit compatibility
7719 2001-10-01 21:51  simon
7721         * process_opfunc.pl:
7722         Michael Fischer's patch broke conditionals.
7724 2001-10-01 15:38  simon
7726         * process_opfunc.pl:
7727         Small hack to keep process_opfunc.pl from generating extra return()
7728         statements.
7730         Courtesy of: Michael Fischer <michael@visv.net>
7732 2001-10-01 15:32  simon
7734         * Parrot/Opcode.pm, lib/Parrot/Opcode.pm:
7735         Documentation fix.
7737         Courtesy of: Josh Wilmes <josh@hitchhiker.org>
7739 2001-10-01 01:49  simon
7741         * packfile.c:
7742         Simon is an idiot. Don't trust him with your code.
7744         Courtesy of: Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
7746 2001-10-01 00:59  simon
7748         * Parrot/String.pm, lib/Parrot/String.pm:
7749         Was in manifest, but not in CVS.
7751 2001-09-30 21:25  simon
7753         * MANIFEST, Types_pm.in, assemble.pl, basic_opcodes.ops,
7754         disassemble.pl, packfile.c, pdump.c, process_opfunc.pl,
7755         Parrot/Assembler.pm, Parrot/PackFile.pm,
7756         Parrot/PackFile/ConstTable.pm, Parrot/PackFile/Constant.pm,
7757         Parrot/PackFile/FixupTable.pm, lib/Parrot/Assembler.pm,
7758         lib/Parrot/PackFile.pm, lib/Parrot/PackFile/ConstTable.pm,
7759         lib/Parrot/PackFile/Constant.pm, lib/Parrot/PackFile/FixupTable.pm,
7760         include/parrot/packfile.h, include/parrot/string.h:
7761         Move NVs to the constant table.    * Changes to Types_pm.in to make
7762         life easier for some of the      packing/etc. I'm doing elsewhere.
7763         Also, we now pack 'n' as      'i'.
7765           * Moved the guts of assemble.pl to Parrot/Assembler.pm so that
7766             eventually we can use all these tools together inside scripts
7767             rather than call out to the shell to run the programs.
7769           * As I was tracking down problems, I converted the internal
7770             documentation of the assembler to POD from comments.
7772           * Changed the numeric regexp in the assembler to detect leading
7773             signs and trailing exponents.
7775           * Updated basic_opcodes.ops to fetch numeric constants from the
7776             constant table.
7778           * Enhanced the disassembler in a number of ways to make my life
7779             easier while tracking down bugs (try it out). It now puts in
7780             labels for ops that are the destinations of flow control ops.
7782           * packfile.c now has a TRACE_PACKFILE switch that can be set
7783             to get it to print info as it processes. I needed this while
7784             debugging, but I can remove it or change it before committing
7785             if its a problem.
7787           * Updated pdump.c because it was missing a call to init_world().
7789           * Updated process_opfunc.pl to deal with numeric constants
7790             being stored in the constant table instead of inline.
7792           * Added multiple type support to Parrot/PackFile/Constant.pm
7794           * Added Parrot/String.pm, to be used for constants.
7796           * Added packfile.[hc] functions for allocating new constants
7797             of various types.
7799           * Made string_copy visible to the world in parrot/string.h.
7801         Wow.
7803         Courtesy of: Gregor N. Purdy <gregor@focusresearch.com>
7805 2001-09-29 15:56  gregor
7807         * languages/jako/Makefile:
7808         Removed assumption that '.' is on the path.
7810 2001-09-29 15:55  gregor
7812         * languages/jako/Makefile:
7813         Removed references to leibnitz test program.
7815 2001-09-29 15:21  thgibbs
7817         * t/op/trans.t, basic_opcodes.ops: Added NV casts to transcendental
7818         math ops args to work on Solaris.
7820 2001-09-27 15:15  thgibbs
7822         * assemble.pl: Added case insensitive matches to hex and binary
7823         characters
7825         Courtesy of: Johnathan Scott Duff <duff@cbi.tamucc.edu>
7827 2001-09-27 04:46  thgibbs
7829         * assemble.pl: This patch makes integer constants of the form
7830         0b[01]+ work with perl 5.005.  The oct function in versions of perl
7831         before 5.6 did not handle the 0b numeric prefix; therefore, it was
7832         returning 0.  To fix this, I added a from_binary function that
7833         would take a binary string and return its decimal representation.
7834         Now, instead of blindly calilng oct, it makes a distinction between
7835         0/0x numbers and 0b numbers.
7837 2001-09-26 19:30  thgibbs
7839         * assemble.pl: Error now returns a non-zero status
7841         Courtesy of: Andrew Kuchling <akuchlin@mems-exchange.org>
7843 2001-09-26 19:13  gregor
7845         * MANIFEST, Makefile.in, basic_opcodes.ops, bytecode.c,
7846         interpreter.c, packfile.c, pdump.c, test_main.c,
7847         include/parrot/bytecode.h, include/parrot/interpreter.h,
7848         include/parrot/packfile.h, include/parrot/parrot.h, t/op/integer.t,
7849         t/op/stacks.t:
7850           * bytecode.[hc] removed. packfile.[hc] are the interface to the
7851             packfile/bytecode file from C. May be renamed in the future.
7853           * packfile.[hc] changed to use 'struct PackFile *', etc. instead
7854             of 'PackFile *', just like the interpreter, etc.
7856           * Constants are accessed via the interpreter's 'code' member
7857             (struct PackFile * code). Macros PCONST(i) and PNCONST are
7858             provided to access constants by index and the number of
7859             constants, respectively (assumes a variable 'interpreter' of
7860             the appropriate type is in scope).
7862           * Byte Code is accessed via the interpreter's 'code' member.
7864           * Changed PackFile_Constant to point to a STRING instead of
7865         having
7866             members for the string_make() arguments. Also has a 'type' IV
7867             in preparation for allowing multiple types of constants in
7868             const_table.
7870           * Removed hardcoded example program from test_main.c. We have
7871             plenty of test programs elsewhere.
7873           * test_prog now uses a PackFile to deal with the program before
7874             sending it on to the interpreter.
7876           * Added missing 'end' ops to some tests in t/op/integer.t and
7877             t/op/stacks.t.
7879 2001-09-26 18:38  thgibbs
7881         * assemble.pl: Separated code into functions and added comments.
7883 2001-09-26 18:29  simon
7885         * config_h.in:
7886         Fix 64-bit chunk-base issue.
7888 2001-09-26 06:55  thgibbs
7890         * t/op/bitwise.t: Added end to bitwise tests.
7892 2001-09-26 00:54  dan
7894         * docs/parrot_assembly.pod: Added in the base for threading, I/O,
7895         and interpreter creation. Skeleton only, but it's something to peer
7896         at.
7898 2001-09-25 21:44  thgibbs
7900         * t/op/trans.t: Removed loops in transcendtal op test.
7902 2001-09-25 10:12  simon
7904         * MANIFEST, t/op/basic.t, t/op/bitwise.t, t/op/integer.t,
7905         t/op/string.t, t/op/time.t:
7906         More tests
7908         Courtesy of: Alex Gough <alex@rcon.org>
7910 2001-09-24 19:08  gregor
7912         * t/op/number.t:
7913           * Enabled the clear_n test.
7915 2001-09-24 18:56  gregor
7917         * Parrot/.cvsignore:
7918           * Ignore the generated Types.pm file.
7920 2001-09-24 18:52  gregor
7922         * languages/jako/Makefile, t/op/number.t:
7923           * No need to skip the inc and dec numeric tests anymore. I fixed
7924         the
7925             assembler earlier today.
7927 2001-09-24 18:21  simon
7929         * MANIFEST, t/op/stacks.t:
7930         Oops.
7932 2001-09-24 18:19  simon
7934         * build_interp_starter.pl, interpreter.c, string.c, Parrot/Test.pm,
7935         include/parrot/exceptions.h, include/parrot/interpreter.h,
7936         lib/Parrot/Test.pm, t/op/string.t:
7937         1) captured error output, so can test errors, this might be bad,
7938         not sure.  2) basic tests for register stack frames, including some
7939         errors 3) I think we can stop skipping one of the string tests 4) I
7940         added some more substr tests, but substr was broken, so 5) changed
7941         substr to work with out of range values, or 6) throw an error if
7942         they're far too silly
7944         Courtesy of: Alex Gough <alex@rcon.org>
7946 2001-09-24 17:27  gregor
7948         * basic_opcodes.ops, opcode_table, t/op/number.t:
7949           * Op set_n was missing. Added it and a test for it. We now have
7950         the
7951             same int and num ops, except mod is int-only.
7953 2001-09-24 17:01  gregor
7955         * assemble.pl:
7956           * Fixed a typo: s/Line/line/
7958 2001-09-24 16:02  gregor
7960         * basic_opcodes.ops:
7961           * Fixed dec_n_nc opcode, which had += where it should have had
7962         -=.
7964 2001-09-24 15:34  gregor
7966         * assemble.pl:
7967           * Fixed handling of constants starting with '0' that should not
7968         be
7969             sent through oct(). For example 'set N2 0.1' was being
7970         interpreted
7971             as 'set N2 0' (naughty).
7973             As reported by Leon Brocard <acme@astray.com> in the comments
7974         of
7975             his mandelbrot.pasm example.
7977 2001-09-24 02:21  bdwheele
7979         * assemble.pl: fixed dumb code when --include was not specified.
7981 2001-09-24 02:17  simon
7983         * assemble.pl:
7984         Shit-sweeping.
7986 2001-09-24 01:56  bdwheele
7988         * assemble.pl: * Added --include=dir option to assembler to provide
7989         a path to look for included files.  * Error message of a macro is
7990         defined inside of a macro
7992 2001-09-23 21:29  bdwheele
7994         * assemble.pl: Added __FILE__ equate, fixed __LINE__ equate.
7996 2001-09-23 15:50  simon
7998         * Configure.pl:
7999         Fixed typo. Parrot might work again on non-8.3 filesystems. :)
8001 2001-09-23 02:03  ask
8003         * Configure.pl, test_c.in: fix missing newline at the end of test.c
8004         Courtesy of: acme@astray.com (Leon Brocard)
8006         rename 'test' executable used in Configure process to test_siz.
8008 2001-09-23 01:03  simon
8010         * process_opfunc.pl:
8011         iPaq fix. No, really.
8013 2001-09-23 00:47  simon
8015         * MANIFEST:
8016         Missed several, in fact.
8018 2001-09-23 00:46  simon
8020         * MANIFEST:
8021         Missed one.
8023 2001-09-22 21:13  simon
8025         * assemble.pl:
8026         Assembler register numbering rigour.
8028         Courtesy of: Leon Brocard <acme@astray.com>
8030 2001-09-22 18:20  simon
8032         * Makefile.in, lib/Test/More.pm, lib/Test/Simple.pm,
8033         lib/Test/Utils.pm:
8034         I'm sick of having to install Test::More everywhere. Temporary
8035         measure until we remove this silly dependency.
8037         Also a typo in Makefile.in which suggests some things were only
8038         happening correctly by sheer chance. :)
8040 2001-09-22 18:06  simon
8042         * README:
8043         test.pasm is dead, long like make test.
8045 2001-09-22 17:47  simon
8047         * t/op/number.t:
8048         De-fang overzealous floating point test.
8050 2001-09-22 17:39  simon
8052         * process_opfunc.pl:
8053         Remove hard-coded NV size assumption. Tru64 is nearly there!
8055 2001-09-22 17:18  simon
8057         * assemble.pl, disassemble.pl:
8058         More portability fixups.
8060 2001-09-22 16:44  simon
8062         * assemble.pl, Parrot/PackFile/Constant.pm,
8063         lib/Parrot/PackFile/Constant.pm:
8064         And I *think* this fixes Tru64.
8066 2001-09-22 16:37  simon
8068         * Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/ConstTable.pm:
8070         Oops.
8072 2001-09-22 16:36  simon
8074         * Parrot/PackFile.pm, Parrot/PackFile/ConstTable.pm,
8075         Parrot/PackFile/Constant.pm, lib/Parrot/PackFile.pm,
8076         lib/Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/Constant.pm:
8078         More removal of hard-coded pack formats.
8080 2001-09-22 15:21  simon
8082         * assemble.pl:
8084         Grrr. Why isn't this working?
8086 2001-09-22 15:18  simon
8088         * Parrot/PackFile.pm, Parrot/PackFile/ConstTable.pm,
8089         lib/Parrot/PackFile.pm, lib/Parrot/PackFile/ConstTable.pm:
8091         Make assemble use the PackFile modules; also fixed some bugs in
8092         them.
8094 2001-09-22 14:38  simon
8096         * Configure.pl, MANIFEST, Types_pm.in, assemble.pl, disassemble.pl:
8098         Abstract the argument and opcode packing types and functions out
8099         into a separate module. This *should* help us maintain consistency
8100         when we change the various types.
8102 2001-09-22 00:46  brentdax
8104         * Configure.pl: Delete test.o (or its equivalent) after Configure's
8105         test program finishes.
8107 2001-09-21 21:24  brentdax
8109         * Parrot/Test.pm, lib/Parrot/Test.pm: Fix error with \ as path
8110         separator (courtesy of Mattia Barbon <mbarbon@dsi.unive.it>)
8112 2001-09-21 21:09  gregor
8114         * Parrot/PackFile/ConstTable.pm, Parrot/PackFile/Constant.pm,
8115         lib/Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/Constant.pm:
8117           * Fixed pad calculation (similar to recent bug fix on C library)
8119 2001-09-21 20:23  simon
8121         * disassemble.pl:
8122         Pack types and sizes have gone askew.
8124 2001-09-21 20:18  brentdax
8126         * Configure.pl: Fix typo in setting stuff from the C test program
8128 2001-09-21 10:25  simon
8130         * basic_opcodes.ops, process_opfunc.pl:
8131         Document patches.
8133         Courtesy of: Leon Brocard <acme@astray.com>
8135 2001-09-21 06:06  ask
8137         * Config_pm.in, assemble.pl: fix 5.005_03.
8139 2001-09-21 06:03  ask
8141         * Configure.pl: make the ivsize detection work for us normal people
8142         without . in our PATH.  :-)
8144 2001-09-21 05:56  brentdax
8146         * test_main.c: Change _read to read for portability to Tru64
8147         (Damien Neil <neild@misago.org> and likely many others)
8149 2001-09-21 05:46  ask
8151         * Makefile.in: "update" target to update from cvs.
8153 2001-09-21 05:44  brentdax
8155         * Configure.pl, test_c.in: Fix issues with ivsize and nvsize
8157 2001-09-21 02:43  brentdax
8159         * Configure.pl: Fix a typo that forced the -g flag on
8161 2001-09-20 22:41  dan
8163         * packfile.c: Had some no-value returns. Naughty
8165 2001-09-20 22:40  dan
8167         * t/test.pasm: Added labels to output
8169 2001-09-20 15:39  simon
8171         * Parrot/Opcode.pm, Parrot/Test.pm, lib/Parrot/Opcode.pm,
8172         lib/Parrot/Test.pm:
8173         This patch does two only somewhat related things.
8175         Parrot/Opcode.pm:  Change the hard-wired assumption that sizeof(nv)
8176         = 2*sizeof(iv) to a PConfig-type computed value.
8178         Parrot/Test.pm:  Change it to run with the perl that was used to
8179         generate this version of Parrot.  This is useful if, for example,
8180         you want to use bleadperl to build and test parrot (e.g. to try out
8181         various 64-bit options) but you still have a 5.6.x (or 5.005_xx)
8182         installed as the default 'perl' on your system.  Since perl-5.7.x
8183         is installed 'version-only', a plain 'perl' is quite likely to pick
8184         up the older perl in such cases. Such an older perl might well not
8185         understand pack('q') used in the assembler.
8187         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
8189 2001-09-20 15:14  gregor
8191         * packfile.c:
8192           * Fixed a typo in pad calculation that throwing off unpack and
8193         pack.
8195 2001-09-20 15:03  thgibbs
8197         * t/op/integer.t: Removed overflow tests from integer.t.  set_i_ic
8198         tests now cover all registers.
8200         Courtesy of: Damien Neil neild@misago.org
8202 2001-09-20 14:48  thgibbs
8204         * process_opfunc.pl: Changed process_opfunc.pl to work on 64 bit
8205         machines.
8207 2001-09-20 14:35  simon
8209         * Configure.pl, assemble.pl:
8210         Pack IVs correctly.
8212         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
8214 2001-09-20 14:06  gregor
8216         * languages/jako/jakoc:
8217           * Fixed a tyop in the string interpolation regex.
8219         Courtesy of Michael L Maraist <maraist@UDel.Edu>
8221 2001-09-20 13:56  gregor
8223         * languages/jako/jakoc:
8224           * Updated jakoc to work with the single-destination comp ops.
8226 2001-09-20 05:08  bdwheele
8228         * assemble.pl: macro expansion.  Here's the test macro I was using:
8230         # this uses I32,I31 as temporaries.  # macro must be preceeded by a
8231         label.  testi       macro   num,got,want    print   "Test #"
8232         print   num     print   "..."   set     I32,want        set
8233         I31,got         eq      I32,I31,$ok     print   "NG\n"  branch
8234         $end $ok:       print   "OK\n" $end:    endm
8236         It is invoked as:
8238         Test1:  testi   1,I3,I2
8240 2001-09-20 03:52  dan
8242         * stacks.c, include/parrot/stacks.h: Preliminary files for the
8243         generic stack support
8245 2001-09-20 02:49  bdwheele
8247         * assemble.pl: Added include processing to assemble.pl  the syntax
8248         is: include 'file.to.include'
8250 2001-09-19 23:57  thgibbs
8252         * t/op/integer.t, t/op/number.t, assemble.pl, opcode_table: Fixed
8253         opcode_table listing of if_i_ic and if_n_ic.  Dan had changed the
8254         function to only use 2 args, but the opcode_table still had three
8255         listed.  Fixed integer.t and number.t to use the new comparison
8256         operators.  Improved assemble.pl ability to grok operators by
8257         constructing a function set and comparing operator types.
8259 2001-09-19 22:42  dan
8261         * assemble.pl: Binmodes the output filehandles now. (No more
8262         bytecode munching...)
8264 2001-09-19 22:32  dan
8266         * Configure.pl, basic_opcodes.ops, opcode_table, process_opfunc.pl,
8267         t/euclid.pasm, t/test.pasm, t/test2.pasm: Changed opcodes so
8268         conditional branches take a single argument, and fall through
8269         otherwise.
8271 2001-09-19 21:19  thgibbs
8273         * memory.c: Added explanation of mem_allocate_aligned give by Dan
8274         Sugalski
8276         Courtesy of: Josh Wilmes <josh@hitchhiker.org>
8278 2001-09-19 21:04  thgibbs
8280         * include/parrot/interpreter.h, Configure.pl,
8281         build_interp_starter.pl, bytecode.c, config_h.in, interpreter.c,
8282         process_opfunc.pl: Changed opcode_t from a union to a configurable
8283         type.
8285 2001-09-19 20:54  thgibbs
8287         * assemble.pl: Missed a couple of changes for 64 bit portability.
8289 2001-09-19 20:37  gregor
8291         * packfile.c, include/parrot/packfile.h:
8292           * Added "methods" for setting and getting all the various
8293         attributes,
8294             probably sufficient for an assembler to use the library.
8296 2001-09-19 20:04  thgibbs
8298         * assemble.pl: Modifications to run on 64 bit platforms.  To run on
8299         a 64 bit platform manually change the  setting for 'i' from 'l' to
8300         'q'.  This should be automatically done by a Configure setting in
8301         the near future.
8303 2001-09-19 19:10  thgibbs
8305         * config_h.in: changed c++ comment to c comment.
8307         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
8309 2001-09-19 17:48  gregor
8311         * .cvsignore, MANIFEST, Makefile.in, packfile.c, pdump.c,
8312         include/parrot/packfile.h:
8313           * C code for dealing with PackFiles as if they were objects.
8314         Mostly
8315             read-only interface for now, but it would not be hard to make
8316         it
8317             read-write. [packfile.c, include/parrot/packfile.h]
8319           * PackFile Dumping program that falls short of disassembling, but
8320             tests the above code and provides a hex listing of the byte
8321         code
8322             contents of the PackFile. [pdump.c]
8324           * New Makefile target 'pdump' for the above program, and related
8325             Makefile.in changes.
8327           * Updated MANIFEST to reflect the added files
8329           * Update .cvsignore to ignore pdump.
8331 2001-09-19 14:55  thgibbs
8333         * MANIFEST: Added number.t and trans.t to MANIFEST
8335 2001-09-19 05:40  thgibbs
8337         * process_opfunc.pl: Now taking & of opcode_t instead of i member
8338         of union opcode_t.  I hope this will be more portable for set_n_nc.
8340 2001-09-19 05:39  thgibbs
8342         * t/op/integer.t: Added end to test 1.
8344 2001-09-19 00:09  thgibbs
8346         * t/op/number.t: Added end to each test
8348 2001-09-19 00:00  simon
8350         * t/op/number.t:
8351         Number tests! Wooo!
8353         Courtesy of: Damien Neil <neild@misago.org>
8355 2001-09-18 23:52  thgibbs
8357         * interpreter.c: Added casts to appropriate types to make -Wall not
8358         complain on certain printf formats
8360 2001-09-18 23:31  thgibbs
8362         * t/op/integer.t: Added end to each test.
8364 2001-09-18 22:54  thgibbs
8366         * t/op/trans.t: Added trans.t for transcendental math function
8367         tests.
8369 2001-09-18 22:28  simon
8371         * MANIFEST:
8372         MANIFEST updates. (And notice how I carefully snuck in the
8373         t/op/integer.t there...)
8375         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
8377 2001-09-18 22:26  simon
8379         * t/: integer.t, op/integer.t:
8380         Except it doesn't go there. Duh.
8382 2001-09-18 22:25  simon
8384         * t/integer.t:
8385         Tests for integer ops.
8387         Courtesy of: Damien Neil <neild@misago.org>
8389 2001-09-18 22:03  thgibbs
8391         * include/parrot/bytecode.h, include/parrot/interpreter.h,
8392         build_interp_starter.pl, bytecode.c, config_h.in, interpreter.c,
8393         make_op_header.pl, process_opfunc.pl, test_main.c: Changed IV to
8394         opcode_t union for operators.  This required a few perl script
8395         changes to output the correct type.  There were also some changes
8396         to allow -pedantic in gcc
8398 2001-09-18 21:07  gregor
8400         * disassemble.pl, Parrot/PackFile.pm,
8401         Parrot/PackFile/ConstTable.pm, Parrot/PackFile/Constant.pm,
8402         lib/Parrot/PackFile.pm, lib/Parrot/PackFile/ConstTable.pm,
8403         lib/Parrot/PackFile/Constant.pm:
8404         Converted the disassembler to use the Parrot::PackFile Perl classes
8405         to do its job.
8407 2001-09-18 19:18  brentdax
8409         * Makefile.in: Fix missing functions for real this time.  (I
8410         swear!)
8412 2001-09-18 18:49  brentdax
8414         * Configure.pl: Remove unnecessary -I.. (courtesy of Andy Dougherty
8415         <doughera@lafayette.edu>}
8417 2001-09-18 18:47  brentdax
8419         * Makefile.in: Fix bugs with missing math, etc. functions
8421 2001-09-18 14:42  thgibbs
8423         * strnative.c: Sorry Simon...forgot bustart was a void* not a
8424         char*.
8426 2001-09-18 13:59  thgibbs
8428         * strnative.c: Removed unnecessary IV cast in concat.
8430 2001-09-18 13:58  thgibbs
8432         * t/op/string.t: Removed unnecessary IV cast in concat.  Added end
8433         to concat test in string.t
8435 2001-09-18 12:07  gregor
8437         * languages/jako/jakoc:
8438           * var num ... no longer requires assignment
8439           * automatic casting between int and num
8440           * Fixed an error message
8442         Courtesy of: Simon Cozens <simon@cvs.perl.org>
8444 2001-09-18 11:57  simon
8446         * TODO:
8447         Gonna have to start thinking of more things to do, soon.
8449 2001-09-18 10:42  simon
8451         * opcode_table:
8452         Introduce a little more tidiness into the opcode table.
8454 2001-09-18 03:06  gregor
8456         * basic_opcodes.ops, opcode_table, t/euclid.pasm:
8457         Resurrected register-const ops per Dan's request.
8459 2001-09-18 02:20  gregor
8461         * .cvsignore, Configure.pl, MANIFEST, Makefile.in,
8462         build_interp_starter.pl, bytecode.h, events.h, exceptions.h,
8463         global_setup.h, interpreter.h, io.h, memory.h, parrot.h,
8464         process_opfunc.pl, register.h, stacks.h, string.h, strnative.h:
8465         Committed some files that were missed in the last *.h moving
8466         commit.
8468 2001-09-18 02:17  gregor
8470         * include/parrot/.cvsignore: Fixed a typo in .cvsignore.
8472 2001-09-18 02:16  gregor
8474         * include/parrot/: .cvsignore, bytecode.h, events.h, exceptions.h,
8475         global_setup.h, interpreter.h, io.h, memory.h, parrot.h,
8476         register.h, stacks.h, string.h, strnative.h: Added .cvsignore file
8477         missed in last commit for the move of *.h to include/parrot.
8479 2001-09-18 01:32  simon
8481         * t/Makefile:
8482         Trivial "clean" target to t/Makefile.
8484 2001-09-18 01:32  simon
8486         * assemble.pl, build_interp_starter.pl, disassemble.pl,
8487         Parrot/Opcode.pm, lib/Parrot/Opcode.pm:
8488         Change icky Digest::MD5 for nice simple unpack()
8490         Courtesy of: Jonathan Scott Duff <duff@cbi.tamucc.edu>
8492 2001-09-18 00:35  simon
8494         * basic_opcodes.ops, opcode_table, docs/parrot_assembly.pod,
8495         t/op/string.t:
8496         New concat op. Hey, if I'm going to talk about it in an article,
8497         better implement it...
8499 2001-09-17 22:54  gregor
8501         * MANIFEST, Parrot/PackFile.pm, Parrot/PackFile/ConstTable.pm,
8502         Parrot/PackFile/Constant.pm, Parrot/PackFile/FixupTable.pm,
8503         lib/Parrot/PackFile.pm, lib/Parrot/PackFile/ConstTable.pm,
8504         lib/Parrot/PackFile/Constant.pm, lib/Parrot/PackFile/FixupTable.pm:
8506         Functions for reading, writing and manipulating Parrot Pack Files.
8507         NOTE: This is a proposed term based on the fact that the file
8508         contains more than just byte code, and another language (Java)
8509         calls its binary files by a broader notion of what's in them (Class
8510         Files). Since Perl has packages, and since we use pack() to write
8511         them, we'll call them PackFiles (at least for now).
8513         That does, however, beg the question of file extension. Should we
8514         name the files "foo.pack" instead of "foo.pbc"?
8516 2001-09-17 20:23  thgibbs
8518         * interpreter.c, test_main.c: Uncuddled else statements for coding
8519         standard.
8521 2001-09-17 19:57  gregor
8523         * Parrot/Opcode.pm, lib/Parrot/Opcode.pm:
8524         Added a $revision variable, parsing of the CVS Id line in
8525         opcode_table and a &revision() subroutine.
8527 2001-09-17 19:53  gregor
8529         * opcode_table:
8530         Added a CVS Id tag to it.
8532 2001-09-17 18:58  thgibbs
8534         * interpreter.c: Cleared interpreter flags on creation.
8536 2001-09-17 18:38  gregor
8538         * build_interp_starter.pl, bytecode.c, bytecode.h, interpreter.c,
8539         interpreter.h, test_main.c:
8540           * Provides macros in interp_guts.h for setting up arrays with
8541             op names and op arg counts (done via build_interp_starter.pl).
8543             These are used in the op tracing
8545           * The functions in bytecode.[hc] pass around a pointer to the
8546         length
8547             of the bytecode so that later when we get to runops, we know
8548             how much bytecode we've got and we can detect out-of-bounds
8549             jumping. The documentation is updated, too.
8551           * runops in interpreter.c now looks at interpreter->flags to
8552             decide if the core of runops should be runops_trace_core or
8553             runops_notrace_core. These new functions contain just the
8554             while-loop portion of runops. A new function runops_generic
8555             does any other setup (such as checking the bytecode
8556             fingerprint) or wrapup (such as complaining if we ended up
8557             out-of-bounds). NOTE: I didn't know what we should do for
8558             functions in here that are not part of the api, so I gave
8559             them docs with 'TODO' marks mentioning they really aren't
8560             part of the api. Guidance appreciated.
8562           * test_main.c now checks for '-t' arg and sets the tracing flag
8563             on its interpreter instance as appropriate.
8565 2001-09-17 17:47  bdwheele
8567         * assemble.pl: added some default equates, and if they're sub
8568         references, they are computed each time it is referenced.
8570 2001-09-17 16:15  dan
8572         * interpreter.h:
8574         Added flags to the interpreter structure and defined a few.
8576 2001-09-17 15:51  simon
8578         * bytecode.h, string.h:
8579         VAR_SCOPE on globals.
8581 2001-09-17 15:20  simon
8583         * MANIFEST:
8584         Parrot/Opcode.pm, Parrot/Test.pm into MANIFEST.
8586 2001-09-17 15:05  gregor
8588         * t/jump.pasm, MANIFEST:
8589         Added a test program to demonstrate jump_i.
8591 2001-09-17 14:44  thgibbs
8593         * register.c: Fixed register pop not using correct offset (off by
8594         one).
8596         Courtesy of: Philip Kendall <pak@ast.cam.ac.uk>
8598 2001-09-17 13:56  thgibbs
8600         * interpreter.c, register.c: Added code to call Parrot_clear_s
8601         during initialization and Parrot_clear_s and Parrot_clear_p when a
8602         new stack frame is pushed.
8604 2001-09-17 13:51  gregor
8606         * languages/jako/: Makefile, bench.jako, euclid.jako, fact.jako,
8607         fib.jako, hello.jako: Added bench.pasm to "clean"
8609 2001-09-17 13:49  gregor
8611         * languages/jako/: jakoc, Makefile:
8612         Added CVS Id tag.
8614 2001-09-17 13:49  gregor
8616         * languages/jako/jakoc:
8617         Code streamlining.
8619         Courtesy of: Buggs <buggs-perl6@splashground.de>
8621 2001-09-17 13:29  gregor
8623         * MANIFEST, opcheck.pl:
8624         Added an opcode_table checker to make sure that all opcodes listed
8625         there conform to a simple set of naming rules (rules themselves, of
8626         course, are subject to change).
8628 2001-09-17 13:23  thgibbs
8630         * string.c: Modified string.c to correctly use the return value of
8631         realloc.
8633 2001-09-17 05:26  brentdax
8635         * Makefile.in: Making the Makefile smarter
8637 2001-09-16 23:06  brentdax
8639         * hints/mswin32.pl: Finishing the Configure hints
8641 2001-09-16 23:05  brentdax
8643         * Configure.pl, Makefile.in, parrot.h, test_main.c,
8644         Parrot/Opcode.pm, lib/Parrot/Opcode.pm: Win32 compatibility,
8645         Configure hints, 5.005 compatibility, MANIFEST checking
8647 2001-09-16 19:25  bdwheele
8649         * assemble.pl: parrot assembly equates
8651 2001-09-16 18:03  gregor
8653         * Makefile.in:
8654         Added 'test' target to run new test suite.
8656 2001-09-16 17:33  simon
8658         * basic_opcodes.ops:
8659         'not' was being !, rather than ~. Too many Perl programmers here, I
8660         suspect.
8662         Courtesy of: Tom Hughes <tom@compton.nu>
8664 2001-09-16 17:21  simon
8666         * Parrot/Test.pm, lib/Parrot/Test.pm, t/harness, t/op/basic.t,
8667         t/op/string.t:
8668         A *real* test suite!
8670         Courtesy of: "Mattia Barbon" <mbarbon@dsi.unive.it>
8672 2001-09-16 16:49  gregor
8674         * basic_opcodes.ops, opcode_table:
8675         At Dan's request, my new register-constant comparison ops have been
8676         removed.
8678 2001-09-16 16:40  gregor
8680         * languages/jako/jakoc:
8681         Fixed a copy-paste error in one of jakoc's error messages.
8683         Courtesy of: Buggs <buggs-perl6-list@splashground.de>
8685 2001-09-16 16:37  gregor
8687         * languages/jako/jakoc:
8688         Modified comparison implementation to use temporary registers in
8689         the case of register-constant and constant-register comparisons.
8690         This will allow the compiler to emit code that works when the
8691         constant-comparison ops are backed out of Parrot. If the ops ever
8692         make their way back in, then jakoc can emit more efficient code
8693         again.
8695 2001-09-16 16:19  bdwheele
8697         * assemble.pl, t/local_label.pasm: Added local labels ($whatever)
8698         ... though not subroutine based like the documentation wants, they
8699         are local to the last non-local label defined.
8701 2001-09-16 14:02  simon
8703         * MANIFEST:
8704         And remember, when you add stuff, keep the manifest up to date.
8706 2001-09-16 02:55  ask
8708         * Makefile.in: a "shared" target for building libparrot.so
8710 2001-09-16 02:45  thgibbs
8712         * bytecode.c, bytecode.h, events.h, exceptions.h, global_setup.c,
8713         global_setup.h, interpreter.c, interpreter.h, io.h,
8714         make_op_header.pl, memory.c, memory.h, parrot.c, parrot.h,
8715         process_opfunc.pl, register.c, register.h, stacks.h, string.c,
8716         string.h, strnative.c, strnative.h, test_main.c: Updated files to
8717         use the coding standard PDD.  Also changed Perl_Interp to
8718         Parrot_Interp.
8720 2001-09-16 02:21  ask
8722         * README: emphasise the bits about the license not being worked out
8723         yet.
8725 2001-09-15 22:21  simon
8727         * process_opfunc.pl:
8728         basic_opcodes.c should *scream* that it's autogenerated.
8730 2001-09-15 21:58  gregor
8732         * languages/jako/Makefile:
8733         Fixed Makefile to use 'jakoc' instead of 'jako_compiler.pl' to
8734         compile.
8736 2001-09-15 21:58  gregor
8738         * languages/jako/: jako_compiler.pl, jakoc:
8739         Renamed the Jako compiler to jakoc from jako_compiler.pl
8741 2001-09-15 21:51  gregor
8743         * languages/jako/: Makefile, bench.jako, euclid.jako,
8744         jako_compiler.pl:
8745         Added a new bench.jako example based on Leon Brocard's Bench.java.
8747         Jako Compiler:   * fix a bug in assignment handling   * add some
8748         more conditionals to while and if   * revert to using implicit
8749         opcodes in a few cases that were broken     before the assembler
8750         patch went in recently.
8752 2001-09-15 21:46  gregor
8754         * assemble.pl, basic_opcodes.ops, opcode_table:
8755         New ops for register-constant INTEGER comparisons:
8757           {eq,ne,lt,le,gt,ge}_ic_ic
8759         New ops for register-register and register-constant NUMERIC
8760         comparisons:
8762           eq_nc_ic
8763           {ne,lt,le,gt,ge}_{n,nc}_ic
8765         Assembler:
8767           Allow uppercase and underscores in labels.
8769           Tweaks to the op infer code to make it work with the examples
8770         I've been
8771           creating.
8773 2001-09-15 19:16  thgibbs
8775         * README: Updated README to include Configure.pl
8777 2001-09-15 17:05  simon
8779         * build_interp_starter.pl:
8780         Casting happiness
8782         Courtesy of: Jarkko Hietaniemi <jhi@cc.hut.fi>
8784 2001-09-15 16:45  simon
8786         * assemble.pl:
8787         And the same again: Parrot/Opcode.pm wasn't "..-aware".
8789 2001-09-15 16:40  simon
8791         * t/Makefile:
8792         The Parrot/Opcode.pm dependency means we need to do -I.. in the
8793         test Makefile
8795 2001-09-15 12:26  simon
8797         * memory.c:
8798         Fixed to match the coding standards.
8800         Courtesy of: Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
8802 2001-09-15 01:57  ask
8804         * Configure.pl, Makefile.in, Parrot/Opcode.pm,
8805         lib/Parrot/Opcode.pm: make the Makefile use the perl that was used
8806         to run Configure.pl
8808 2001-09-15 01:48  ask
8810         * Parrot/Opcode.pm, lib/Parrot/Opcode.pm: if we need perl 5.6, just
8811         say so. :-)
8813 2001-09-15 01:42  gregor
8815         * languages/jako/: euclid.jako, fact.jako, fib.jako,
8816         jako_compiler.pl:
8817         Compiler: Added variable interpolation in double-quoted strings.
8818         Examples: Made use of variable interpolation.
8820 2001-09-15 01:28  gregor
8822         * Parrot/.cvsignore:
8823         Ignore the Config.pm generated file.
8825 2001-09-15 01:22  gregor
8827         * languages/jako/: .cvsignore, Makefile, euclid.jako, fact.jako,
8828         fib.jako, hello.jako, jako_compiler.pl:
8829         gnp: Added some more sample Jako files and added many more
8830         operators to the compiler. Preparations for supporting all the Math
8831         and bitwise ops.
8833 2001-09-14 19:06  simon
8835         * assemble.pl, build_interp_starter.pl, disassemble.pl,
8836         make_op_header.pl, process_opfunc.pl, Parrot/Opcode.pm,
8837         lib/Parrot/Opcode.pm:
8838         Move common table reading stuff to a module.
8840         Courtesy of: Damien Neil <neild@misago.org>
8842 2001-09-14 17:42  simon
8844         * .cvsignore:
8845         More .cvsignore foo.
8847 2001-09-14 17:40  simon
8849         * assemble.pl, config_h.in:
8850         De-coredump
8852         Courtesy of: Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
8854 2001-09-14 17:38  simon
8856         * assemble.pl, t/Makefile:
8857         Make assemble.pl look in its parent directory if the data files it
8858         needs aren't in the current one. Plus a Makefile that lets "make
8859         foo.pbc" work in t/
8861         Courtesy of: Rocco Caputo <troc@netrus.net>
8863 2001-09-14 16:29  simon
8865         * make_op_header.pl:
8866         Wildly experimental patch to make Parrot compile on FreeBSD. (And
8867         probably segfault everywhere else.)
8869 2001-09-14 15:58  dan
8871         * languages/jako/: euclid.jako, jako_compiler.pl:
8873         Added in the first mini-language that targets Parrot.
8875         Courtesy of: "Gregor N. Purdy" <gregor@focusresearch.com>
8877 2001-09-14 15:20  dan
8879         * memory.c: Was misaligning returned memory. Fixed.
8881 2001-09-14 15:08  simon
8883         * Makefile.in, basic_opcodes.ops, bytecode.c, global_setup.c,
8884         interpreter.c, interpreter.h, memory.c, parrot.c, parrot.h,
8885         register.c, register.h, string.c, string.h, strnative.c,
8886         test_main.c:
8887         Fixes to include <parrot/foo.h>
8889         Courtesy of: Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
8891 2001-09-14 12:05  simon
8893         * strnative.c:
8894         Appease Tru64.
8896 2001-09-14 12:01  simon
8898         * memory.c:
8899         Appease Tru64.
8901 2001-09-14 11:54  simon
8903         * interpreter.c:
8904         Remove lvalue cast.
8906 2001-09-14 11:45  simon
8908         * Configure.pl:
8909         Be 5.005 friendly.
8911 2001-09-14 11:39  simon
8913         * Configure.pl:
8914         Tru64 cc doesn't like -Wall
8916 2001-09-14 10:57  simon
8918         * Config_pm.in, Configure.pl, MANIFEST, Makefile, Makefile.in,
8919         assemble.pl, build_interp_starter.pl, bytecode.c, bytecode.h,
8920         config.h.in, config_h.in, disassemble.pl, interpreter.c:
8921         Configure now generates Makefile
8923         Courtesy of: Brent Dax <brentdax@cpan.org>
8925 2001-09-14 10:08  simon
8927         * t/test3.pasm:
8928         Add "end"
8930         Courtesy of: Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
8932 2001-09-14 10:07  simon
8934         * assemble.pl:
8935                 * uses Getopt::Long for options.  -c is now --checksyntax.
8936         I wasn't
8937         sure how to keep compatible (patches welcome!)         * options
8938         include:                 --help                 --version
8939               --verbose                 --output=file
8940         --listing=file                 --checksyntax         * produces
8941         verbose listing of what the assembler saw :)  Only one nitpick with
8942         it:  unknown symbols are given as 0xffffffff, unfortunately, this
8943         includes symbols which may be defined later in the file (i.e.
8944         forward jumps).
8946         Courtesy of: Brian Wheeler <bdwheele@indiana.edu>
8948 2001-09-14 10:06  simon
8950         * strnative.c:
8951         substr growth fixup
8953         Courtesy of: Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
8955 2001-09-14 10:03  simon
8957         * bytecode.c, global_setup.c, interpreter.c, memory.c, memory.h,
8958         register.c, string.c, strnative.c, test_main.c:
8959         Coding standards conformance
8961         Courtesy of Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
8963 2001-09-14 09:46  simon
8965         * assemble.pl:
8966         Make the assembler grok transcendental maths again.  Courtesy of:
8967         Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
8969 2001-09-13 17:29  simon
8971         * assemble.pl:
8972         Better opcode guessing, from Brian Wheeler. (Again!)
8974 2001-09-13 17:20  dan
8976         * docs/parrot_assembly.pod:
8978         Took out duplicate entries for iton, ntoi, and tostring.
8980 2001-09-13 17:16  simon
8982         * assemble.pl, basic_opcodes.ops, opcode_table:
8983         From Brian Wheeler:
8985         This patch gives the assembler support of '\a','\n','\r','\t', and
8986         '\\' in string constants.
8988         In addition, it changes (for all registers) "I reg %li is ..." to
8989         just the value of the register.  Printing constants is also
8990         supported, but alas, you have to specify the type (print_sc,
8991         print_ic, print_nc).
8993 2001-09-13 15:38  simon
8995         * assemble.pl:
8996         Why don't I actually *test* this stuff before applying it, eh?
8998 2001-09-13 15:34  simon
9000         * TODO, t/euclid.pasm:
9001         From: "Gregor N. Purdy" <gregor@focusresearch.com> Subject: [patch
9002         (really)] Removed opcode qualifers t/euclid.pasm to exercise opcode
9003         inference
9005 2001-09-13 14:42  simon
9007         * assemble.pl:
9008         A new assembler, from Brian Wheeler.
9010 2001-09-13 09:44  simon
9012         * basic_opcodes.ops, interpreter.h, parrot.h, strnative.c,
9013         test_main.c:
9014         Two more from Tom Hughes:     Patch to fix C++ style comments
9015         Patch to remove use of structure constant/cast
9017 2001-09-13 09:39  simon
9019         * TODO, docs/strings.pod:
9020         Update string docs.
9022 2001-09-13 09:36  simon
9024         * Makefile, basic_opcodes.ops:
9025         Tom Hughes      Patch to link with the maths library Tom Hughes
9026          Patch to fix += on rvalue
9028 2001-09-13 08:57  simon
9030         * MANIFEST:
9031         I guess nobody's been using the nightly builds...
9033 2001-09-13 08:27  simon
9035         * assemble.pl, basic_opcodes.ops, opcode_table:
9036         Bitwise ops, from Brian Wheeler.
9038 2001-09-13 08:23  simon
9040         * .cvsignore, t/.cvsignore:
9041         .cvsignore's, from Gregor Purdy.
9043 2001-09-13 08:22  simon
9045         * Makefile:
9046         Euclidean test and test output rearranging from Gregor Purdy.
9048 2001-09-13 08:21  simon
9050         * assemble.pl, basic_opcodes.ops, disassemble.pl, opcode_table:
9051         Math ops from Gibbs Tanton.
9053 2001-09-13 08:14  simon
9055         * basic_opcodes.ops, opcode_table, string.c, string.h, strnative.c,
9056         t/test2.pasm:
9057         String substr op; also rearranged "encoding" to be a vtable
9058         pointer, not an array index. Haven't changed docs to reflect this,
9059         oops.
9061         Simon
9063 2001-09-12 19:48  dan
9065         * t/euclid.pasm: Implementation of Euclid's Algorithm, courtesy of
9066         Gregor Purdy
9068 2001-09-12 19:39  dan
9070         * basic_opcodes.ops, opcode_table: From Gregor Purdy. Adds mod_i.
9072 2001-09-12 19:23  dan
9074         * interpreter.h, parrot.h: Quick placeholder entry for string
9075         function tables
9077 2001-09-12 18:58  dan
9079         * memory.c: Added in a cast to make gcc happy.
9081 2001-09-12 16:44  dan
9083         * docs/parrot_assembly.pod:
9085         PDD describing parrot's assembly language and the opcodes in it
9087 2001-09-12 14:20  dan
9089         * memory.c:
9090         Fixed alignment issues with allocation
9092 2001-09-12 10:54  simon
9094         * Makefile, assemble.pl, bytecode.c, disassemble.pl,
9095         make_op_header.pl, opcode_table, process_opfunc.pl:
9096         Brian Wheeler's big patch:
9098         * Changes the opcode_table file to provide additional information
9099         about the operands.  Case shouldn't be a problem since that data
9100         never becomes a C symbol [this is pretty much as before]
9102         * Padding errors solved:  assemble.pl and bytecode.c were padding
9103         the constants incorrectly.  It should have been 4-(size % 4), not
9104         just (size % 4).  It is now fixed in both places.
9106         * assembler has less special cases, and should be easier to hang
9107         error checking on
9109         * disassembler dumps constant table and the format is a bit
9110         prettier, including register names, etc.
9112 2001-09-11 23:21  dan
9114         * build_interp_starter.pl, interpreter.c:
9116         Abstracted the runops function core into a macro for easy
9117         replacement later.
9119 2001-09-11 10:43  simon
9121         * Configure.pl, MANIFEST, Makefile, config.h, config.h.in:
9122         Configure system from Brent Dax <brentdax@cpan.org>
9124 2001-09-11 09:38  simon
9126         * assemble.pl, test.pbc:
9127         From: Bryan C. Warnock <bwarnock@raba.com> Subject: Patch:
9128         assembler deferred output
9130         Also got rid of the bytecode, since that's probably way out of
9131         date.
9133 2001-09-11 09:26  simon
9135         * basic_opcodes.ops, opcode_table, t/test2.pasm:
9136         From: Bryan C. Warnock <bwarnock@raba.com> Subject: length_s_i
9137         patch
9139 2001-09-10 23:20  simon
9141         * MANIFEST:
9142         And that move needs a MANIFEST change. So many things to remember!
9144 2001-09-10 23:18  simon
9146         * t/: test.pasm, test2.pasm, test3.pasm:
9147         Move tests to t/. (Oh, CVS doesn't work the way I think it does.)
9149 2001-09-10 23:18  simon
9151         * test.pasm, test2.pasm, test3.pasm:
9152         Move tests to t/
9154 2001-09-10 23:04  dan
9156         * test3.pasm:
9158         Register push/pop test
9160 2001-09-10 22:47  simon
9162         * basic_opcodes.ops, bytecode.c, parrot.h, test_main.c:
9163         Fix up format warnings, from Sam Tregar <sam@tregar.com>.
9164         (Modified to avoid conflict with Dan's changes.)
9166 2001-09-10 22:45  dan
9168         * disassemble.pl:
9170         Happier about blanks in opcode_table
9172 2001-09-10 22:40  dan
9174         * interpreter.c, register.c:
9176         Yanked out debugging code, since these work OK. The bug I want is
9177         elsewhere.
9179 2001-09-10 22:30  simon
9181         * MANIFEST:
9182         Uhm. We want make_op_header.pl. We really, really do.
9184 2001-09-10 22:26  simon
9186         * Makefile, TODO, assemble.pl, basic_opcodes.ops,
9187         build_interp_starter.pl, disassemble.pl, make_op_header.pl,
9188         opcode_table, process_opfunc.pl:
9189         Automatic opcode numbering, from Leon Brocard <acme@astray.com>.
9190         This means we can add lots more opcodes without fiddling about with
9191         the numbers. Hooray!
9193         Don't forget that "end" needs to be op zero, else the interpreter
9194         falls off the end of the code. This is Bad, and I wonder if there's
9195         a way around it.
9197 2001-09-10 19:49  simon
9199         * MANIFEST, make_op_table_build.pl:
9200         Hey! This doesn't do anything...
9202 2001-09-10 19:46  simon
9204         * Makefile:
9205         "clean" target cleanup from Bryan C. Warnock <bwarnock@raba.com>.
9207 2001-09-10 18:31  simon
9209         * MANIFEST:
9210         You know what this means...
9212 2001-09-10 18:30  simon
9214         * assemble.pl:
9215         "use strict" patch from Leon Brocard <acme@astray.com>. Hey, why
9216         wait for a release...? :)
9218 2001-09-10 18:13  simon
9220         * interpreter.c:
9221         Bad Dan! No cookie!
9223 2001-09-10 17:56  simon
9225         * README:
9226         A *real* README file, which doesn't claim it isn't for public
9227         consumption.
9229 2001-09-10 17:02  simon
9231         * TODO:
9232         More things to do.
9234 2001-09-10 16:56  dan
9236         * TODO: Added in assembler gripe. Also added a few blank lines for
9237         clarity
9239 2001-09-10 16:49  dan
9241         * register.h, register.c: Renamed the core functions so the opcodes
9242         can find 'em OK. (There were some conflicts)
9244 2001-09-10 16:48  dan
9246         * basic_opcodes.ops, opcode_table: Added register window ops
9248 2001-09-10 11:07  simon
9250         * TODO:
9251         Trivial TODO list.
9253 2001-09-10 11:05  simon
9255         * test.pbc, test2.pasm, test_main.c: Other string bits and pieces;
9256         note "-s" flag to test prog.
9258 2001-09-10 11:01  simon
9260         * docs/strings.pod:
9261         New string documentation.
9263 2001-09-10 11:01  simon
9265         * basic_opcodes.ops, opcode_table:
9266         String ops.
9268 2001-09-10 10:53  simon
9270         * global_setup.c:
9271         More string fu.
9273 2001-09-10 10:51  simon
9275         * memory.h:
9276         Just some more aliases for now. Used by string handling stuff.
9278 2001-09-10 10:50  simon
9280         * assemble.pl, bytecode.c, bytecode.h:
9281         Temporary hack to store string constants in bytecode and recreate
9282         them at runtime.
9284 2001-09-10 10:48  simon
9286         * op.h:
9287         op.h is now generated by the Makefile; remove it.
9289 2001-09-10 10:47  simon
9291         * Makefile:
9292         clean and op.h Makefile targets.
9294 2001-09-10 10:45  simon
9296         * string.c, string.h, strnative.c:
9297         More string vtable stuff.
9299 2001-09-07 21:07  dan
9301         * assemble.pl:
9303         Much less picky about whitespace in the opcode_table now. (Doesn't
9304         whine on blank lines)
9306 2001-09-07 16:23  dan
9308         * Makefile, assemble.pl, global_setup.h, interpreter.c,
9309         interpreter.h, opcode_table, parrot.h, test.pasm: (Here's hoping
9310         this takes) Added global_setup.h to declare init_world function
9312         Moved variable declarations out of the interpreter loop for small
9313         speed boost.
9315         Changed end opcode to now be opcode #0. A function is provided for
9316         it, but isn't ever executed.
9318         When the interpreter sees an opcode 0 in the stream it means the
9319         end of stream. Things were coring on Cygwin otherwise. (I think I
9320         was dereferencing a zero, which is bad)
9322 2001-09-06 22:07  dan
9324         * basic_opcodes.ops, process_opfunc.pl:
9326         Minor tweaks to basic_opcodes.ops to fix some NV issues. The rest
9327         are minor changes now that things are in a fixed state.
9329 2001-09-06 16:13  dan
9331         * basic_opcodes.c, test_opcodes.c:
9332         test_opcodes.c is now irrelevant--they're all in basic_opcodes.ops.
9334         basic_opcodes.c is now autogenerated from basic_opcodes.ops, and
9335         should be nuked. So it is. :)
9337 2001-09-06 03:35  dan
9339         * basic_opcodes.ops, build_interp_starter.pl, process_opfunc.pl:
9340         Scripts to build the header file that holds the function table
9341         creation code, as well as the script to turn an opcode file to C
9342         source. (And the basic opcode functions turned into an opcode
9343         source file)
9345 2001-09-06 03:31  dan
9347         * Makefile, interpreter.c:
9348         Changes to support the autogeneration of the opcode function
9349         pointer table in interpreter.c, along with the changes to the
9350         Makefile needed.
9352 2001-09-05 13:27  simon
9354         * bytecode.c, config.h, docs/opcodes.pod, docs/overview.pod,
9355         docs/parrotbyte.pod, docs/vtables.pod:
9356         Added stubs for the documents; working on them this week. (What's
9357         left of it.) config.h change is just to type VTABLE, and the
9358         bytecode thing you might want to revoke. It's apidoc for the
9359         functions in there.
9361 2001-09-03 18:26  simon
9363         * docs/strings.pod:
9364         A start on the string API documentation.
9366 2001-09-03 17:43  simon
9368         * opcode_table:
9369         Since we specify the opcode number, we can rearrange to a more
9370         human-friendly ordering.
9372 2001-09-03 17:42  simon
9374         * basic_opcodes.c:
9375         Coupl'a logic bugs. (I think)
9377 2001-09-03 17:41  simon
9379         * string.c, string.h, strnative.c:
9380         Tidying up the string vtables.
9382 2001-09-03 17:38  simon
9384         * make_op_header.pl:
9385         Spit out the whole of op.h, not just the bit in the middle.
9387 2001-08-29 13:16  ask
9389         * README: it seems like we indeed can commit. What about sending
9390         commit mails?
9392 2001-08-29 13:07  simon
9394         * Makefile, README, assemble.pl, basic_opcodes.c, bytecode.c,
9395         bytecode.h, config.h, disassemble.pl, events.h, exceptions.h,
9396         global_setup.c, interpreter.c, interpreter.h, io.h,
9397         make_op_header.pl, make_op_table_build.pl, memory.c, memory.h,
9398         op.h, opcode_table, parrot.c, parrot.h, register.c, register.h,
9399         stacks.h, string.c, string.h, strnative.c, strnative.h, test.pasm,
9400         test.pbc, test_main.c, test_opcodes.c:
9401         Initial checkin of Simon's work directory - Dan, feel free to nuke.
9402          I'm still working on the string stuff, though.
9404 2001-08-29 12:44  ask
9406         * README: update README with list address
9408 2001-08-29 12:36  ask
9410         * README: first readme.