fix codetest failure - ASSERT_ARGS does not have a ; after and
[parrot.git] / ChangeLog
blobd46eaccfdc0e3922e3c93ed8d6d2bd6c8698628e
1 #1 $Id$
3 2010.08.17     mikehh
4     * Released 2.7.0
5     See NEWS for more.
7 2010.07.10     coke
8         * Released 2.6.0
9         See NEWS for more.
11 2010.06.15     Gerd
12         * Released 2.5.0
13         See NEWS for more.
15 2010.05.18     Whiteknight
16         * Released 2.4.0
17         See NEWS for more
19 2010.04.20     Gerd
20         * Released 2.3.0
21         See NEWS for more.
23 2010.03.16     cotto
24         * Released 2.2.0
25         See NEWS for more.
27 2010.02.16     darbelo
28         * Released 2.1.0
29         See NEWS for more.
31 2010.01.19     chromatic
32         * Released 2.0.0
33         See NEWS for more.
35 2009.12.15     Gerd
36         * Released 1.9.0
37         See NEWS for more.
39 2009.11.17     barney
40         * Released 1.8.0
41         See NEWS for more.
43 2009.10.20     dukeleto
44         * Released 1.7.0
45         See NEWS for more.
47 2009.9.15     particle
48         * Released 1.6.0
49         See NEWS for more.
51 2009.8.18     Whiteknight
52         * Released 1.5.0
53         See NEWS for more.
55 2009.7.21     cotto
56         * Released 1.4.0
57         See NEWS for more.
59 2009.06.16    Whiteknight
60         * Released 1.3.0
61         See NEWS for more.
63 2009.05.19    Infinoid
64         * Released 1.2.0
65         See NEWS for more.
67 2009.04.21    fperrad
68         * Released 1.1.0
69         See NEWS for more.
71 2009.03.17    allison
72         * Released 1.0.0
73         See NEWS for more.
75 2009.02.17    kjs
76         * Released 0.9.1
77         See NEWS for more.
79 2009.01.20    chromatic
80         * Released 0.9.0
81         See NEWS for more.
83 2008.12.16    Whiteknight
84         * Released 0.8.2
85         See NEWS for more.
87 2008.11.18    chromatic
88         * Released 0.8.1
89         See NEWS for more.
91 2008.10.21    particle
92         * Released 0.8.0
93         See NEWS for more.
95 2008.09.16    pmichaud
96         * Released 0.7.1
97         See NEWS for more.
99 2008.08.19    rgrjr
100         * Released 0.7.0
101         See NEWS for more.
103 2008.07.15    barney
104         * Released 0.6.4
105         See NEWS for more.
107 2008.06.17    smash
108         * Released 0.6.3
109         See NEWS for more.
111 2008.05.20    chromatic
112         * Released 0.6.2
113         See NEWS for more.
115 2008.04.15    particle
116         * Released 0.6.1
117         See NEWS for more.
119 2008.03.18    bernhard
120         * Released 0.6.0
121         See NEWS for more.
123 2008.02.20    pmichaud
124         * Released 0.5.3
125         See NEWS for more.
127 2008.01.15    rgrjr
128         * Released 0.5.2
129         See NEWS for more.
131 2007.12.18    jonathan
132         * Released 0.5.1
133         See NEWS for more.
135 2007.11.20    chromatic
136         * Released 0.5.0
137         See NEWS for more.
139 2007.10.17    coke
140         * Released 0.4.17
141         See NEWS for more.
143 2007.09.18    particle
144         * Released 0.4.16
145         See NEWS for more.
147 2007.08.22    pmichaud
148         * Released 0.4.15
149         See NEWS for more.
151 2007.07.17    particle
152         * Released 0.4.14
153         See NEWS for more.
155 2007.06.19    allison
156         * Released 0.4.13
157         See NEWS for more.
159 2007.05.15    chromatic
160         * Released 0.4.12
161         See NEWS for more.
163 2007.04.17    mdiep
164         * Released 0.4.11
165         See NEWS for more.
167 2007.03.20    coke
168         * Released 0.4.10
169         See NEWS for more.
171 2007.3.10     coke
172         * removed parakeet
174 2007.02.22    pmichaud
175         * Released 0.4.9
176         See NEWS for more.
178 2007.01.17    chromatic
179         * changed 'name' method on namespaces to 'get_name' per pdd21
181 2007.01.16    particle
182         * Released 0.4.8
183         See NEWS for more.
185 2006.12.12    particle
186         * added C<isnull> opcode
188 2006.11.14    chip
189         * Released 0.4.7
190         See NEWS for more.
192 2006.11.07      tewk
193         * added :init pragma functionality to subs
195 2006.10.28      jonathan
196         * added :vtable pragma functionality to subs
198 2006.09.18    chromatic
199         * added Parrot::Embed under ext/Parrot-Embed
201 2006.08.18    leo
202         * remove the None PMC - if needed it can trivially be reimplemented
203           in languages from r14189
205 2006.08.16    creiss
206         Merged Software Transactional Memory branch into trunk, adds:
207         * several new opcodes whose names start with stm_
208         * read-only PMC support
209         * several new PMC types (whose names start with STM*)
210         * support for threads (again)
212 2006.08.08    chip
213         * Released 0.4.6
214         See NEWS for more.
216 2006.08.02    chip
217         * opcodes: "in PMC" is no longer a synonym for "invar PMC";
218         there are opcodes now that want the real "in PMC".
219         * namespace and global opcodes now accept name arrays again, as
220         well as keys; the corresponding namespace PMC methods are gone.
222 2006.07.21    leo
223         * Parrot_exit, Parrot_on_exit take now an Interp * argument
225 2006.07.25    chip
226         * add experimental op find_type_i_p
227         * fix longstanding bug that sometimes didn't encode pasm keys as
228         Key PMCs (specifically "[S0]" and "['stringliteral']").
230 2006.07.24    chip
231         further implementation of new pdd21:
232         * new opcodes {get,set}*global
233           (old {find,store}*global will be supported for a short while)
235 2006.07.20    audreyt
236         * --maintainer prerequesites are now bison 2.2+ and flex 2.5.3x
237           (or some such --leo)
238           (at the moment code is checking for 2.0 -- ambs)
240 2006.07.17    chip
241         partial implementation of new pdd21:
242         * old: "get_namespace KEY".  new: "get_hll_namespace KEY"
243         * get_namespace and find_global opcodes no longer accept arrays
244           of strings.  To use arrays, call namespace object methods.
246 2006.06.19    leo
247         * Released 0.4.5
248         See NEWS for more.
250 2006.06.03    leo
251         * I and N registers are never cleared to 0 / 0.0 on subroutine entry
253 2006.05.14    leo
254         * Released 0.4.4
255         See NEWS for more.
257 2006.04.30    bernhard
258         * Make the Perl PMCs dynamic and move them to src/dynpmc
260 2006.04.02    leo
261         * Released 0.4.3
262         See NEWS for more.
264 2006.03.06    leo
265         * Shifted argument type bits left by 2 according to r11754
266           change of docs/pdds/pdd03_calling_conventions.pod
267         * if you are creating PASM then code needs adjustment
269 2006.02.22    leo
270         * Released 0.4.2
271         See NEWS for more.
273 2006.01.16    bernhard
274          * rename src/dynclasses to src/dynpmc
275          * rename src/classes to src/pmc
277 2006.01.15    leo
279          * find_global and friends returns a .Null PMC instead of .Undef on
280           lookup failure, iff lookup exceptions are off
282 2006.01.08    leo
283         * Released 0.4.1
284         See NEWS for more.
286 2005.12.28    particle
287         * renamed all .imc files to .pir
288         * modified all doc references to .pir as well
290 2005.12.13    particle
291         * moved jit/ directory to src/jit/
293 2005.12.12    particle
294         * moved io/ directory to src/io/
295         * moved classes/ directory to src/classes/
296         * moved dynclasses/ directory to src/dynclasses/
298 2005.12.08    particle
299         * moved types/ directory to src/types/
300         * moved pf/ directory to src/packfile/
301         * moved ops/ directory to src/ops/
303 2005.12.08    particle
304         * moved charset/ directory to src/charset/
305         * moved encodings/ directory to src/encodings/
307 2005.12.07    particle
308         * moved imcc/ directory to compilers/imcc/
310 2005.12.06    particle
311         * moved util/ directory to tools/util/
312         * removed imcc/examples/ directory
313         * moved ast/ directory to compilers/ast/
315 2005.12.05    particle
316         * moved imcc/docs/ directory to docs/imcc/
317         * moved build_tools/ directory to tools/build/
318         * modified MANIFEST, MANIFEST.generated, and MANIFEST.SKIP
320 2005.12.04    leo
321         * Released 0.4.0
322         * See NEWS for changes
324 2005.11.06    leo
325         * Released 0.3.1
326         * See NEWS for changes
328 2005.10.01    leo
329         * Released 0.3.0
330         * See NEWS for changes
332 2005.08.05    leo
333         * Released 0.2.3
334         * See NEWS for changes
336 2005.07.03    leo
337         * Released 0.2.2
338         * See NEWS for changes
340 2005.06.04    leo
341         * Released 0.2.1
342         * allow short names for object attributes
343         * string encoding and charset can now be set independently
344         * experimental mmap IO layer for slurping files
345         * enable compile opcode support for compilers written in PASM/PIR
346         * improved HLL support with .HLL and n_operators pragmas
347         * simplified hash code
348         * more strength reduce optimizations
349         * distinct debug and trace flag settings
350         * glob support in PGE
351         * new character classification opcodes and interfaces
352         * numerous bug fixes and enhancements
354 2005-05-08    leo
355         * Released 0.2.0
356         * parrot repository is now under subversion
357         * MMD (Multi Method Dispatch) enhanced
358         * new unary and infix opcodes that return new result PMCs
359         * dynamic scalar PMCs inherit now almost all from Parrot core PMCs
360         * more unification of PMCs and ParrotObjects
361         * tailcalls for functions and methods
362         * PGE (Parrot Grammar Engine) reworked
363         * Pugs creates Parrot code and Pugs is a registered compiler now
364         * new languages/lisp
365         * the usual bug fixes and improvements
367 2005-03-06    leo
368         * Released 0.1.2
369         * big rewrite of string code, not yet finished but ...
370         * partial implementation of a generational garbage collector
371         * indirect register frame addressing
372         * .return(args) PIR syntax
373         * moved most of the Python code to dynclasses
374         * a lot more Python functionality
375         * precalculate opcodes with all constants
376         * PGE - Parrot Grammar Engine
377         * scalar classes refactoring
378         * much more tests and big test system cleanup
379         * improved documentation
380         * and as always a lot more
382 2004-10-09    leo
383         * Released 0.1.1
384         * Need Perl 5.6 now for building
385         * Basic AST support, PAST file parser, bits of code generation
386         * BigInt PMC using GMP
387         * Complex PMC
388         * Dynamic loading improved including bundles of PMC classes
389         * Experimental support for "make install"
390         * IA64 and hppa JIT support
391         * ICU unicode support
392         * IO layer handling code
393         * IO readline and buffered IO fixes
394         * Incremental GC
395         * Internal pythonic functions: filter, map, reduce, max, min ...
396         * Languages updates for m4, tcl, perl6, regex. New parakeet language.
397         * Library updates, Stream and SDL library
398         * MMD - multi method dispatch for binary vtable methods
399         * Many new array PMCs
400         * Method call syntax in PIR obj."meth"(...)
401         * More OS stuff: stat, exec, system, gmtime, piped read and write
402         * New Python PMCs like Enumerate, None
403         * Non-branching compare opcodes
404         * PIR support for += and friends
405         * Python language subdir
406         * Python types mapped to existing PMCs
407         * Slices and range support
408         * Tons of bug fixes, documentation updates, new tests
409         * Win32 COFF exec support
410         * ... and a lot more
412 2004-02-29    leo
413         * Released 0.1.0
414         * "Ladies and gentlemen, I give you... objects!"
415         * Huge documentation overhaul
416         * More supported platforms, s. PLATFORMS
417         * Basic thread support for pthread based architectures
418         * Basic event handling for timers and signals including:
419         * PASM callbacks for NCI (native C) functions.
420         * Improved platform configuration
421         * COW stacks now working, stacks code redone
422         * Structure handling vastly improved
423         * Random PMC and rand primitives
424         * Better subroutine call syntax in PIR
425         * Make PIR subroutines compliant with pdd03
426         * Improved profiling (DOD, GC timings)
427         * Hash code improvements, incl. random key order support
428         * Experimental freeze/thaw code for some PMC types
429         * IO improvements for buffered layer and Win32
430         * String iterators
431         * String bitwise vtables
432         * Many new opcodes
433         * Support for JIT, where malloced memory isn't executable
434         * Priority DOD scheme for objects that need timely destruction
435         * Improved bytecode loading (e.g. onLoad functions)
436         * Language updates: forth, Perl6/P6C, m4
437         * Libraries: Getopt_Long, SDL, Dumper, Sort
438         * new JAPH examples
439         * Unified imcc and parrot test handling
440         * Many new tests (make test reports 1386 tests)
441         * Numerous bug fixes
444 2003-10-31    leo
445         * Released 0.0.13
446         * Yep thirteen - haunted by the ghost of 0.0.12
447         * Build imcc as parrot
448         * Objects more finished
449         * Delegate vtable methods to byte code
450         * Binary multi-method dispatching
451         * Isa and does methods for PMCs
452         * Call byte code from C
453         * Start of extension interface
454         * Experimental struct handling
455         * Catch access to NULL PMCs
456         * Experimental network socket interface code and opcodes
457         * IO fixes and improvements
458         * Dynamic opcode libraries
459         * Fix-assigned opcode numbers
460         * Argument flattening for function calls
461         * More native call interface (NCI) signatures
462         * Ncurses, postgres, and pcre interface libraries
463         * Forth language is vastly improved
464         * BSD and Win32 build improvements
465         * Many new tests and fixes
467 2003-10-22    melvin
468         * imcc moved from parrot/languages/ to parrot/
470 2003-09-20    sfink
472         * updated the native_pbc test files (from Leo)
473         * built 0.0.11.1 release tarball
475 2003-09-20    sfink
477         * CHANGES BUNDLED INTO 0.0.11:
478         * Executable output
479         * Dynamic PMC registration
480         * Trial exception system
481         * Beginnings of object system
482         * Iterators
483         * Ordered hashes
484         * I/O system improvements
485         * References
486         * Documentation for basic PMC types
487         * IMCC support of Parrot Calling Conventions
488         * Runtime loading of chartypes (and other string improvements)
489         * Conditional breakpoints
490         * Dramatically accelerated sweeps for finalizable objects
491         * Small PMCs (PMCs split into core and extensions)
492         * Loadable bytecode packfiles
493         * Constant PMCs
494         * Sub variants that deal with the stack correctly
495         * Switched runops core
496         * Line numbers in warnings
497         * Environment access
498         * Many documentation cleanups
499         * Conversion to CPS style!
500         * BASIC debugger and many other wacky features
501         * Filename, line number parsing support in IMCC
503 2003-07-21 17:31 chromatic
504         * applied copyright patch from Josh Wilmes
506 2003-06-14 13:50 dan
507         * Moved the registers out of the context structure, since they
508           really aren't context
509         * Changed the register stack frames to hold only 16 registers
510           rather than 32, added half-set push and pop ops, and reworked
511           the full set push/pops to do two half-set push/pops. Should
512           speed up saving register data on calls, since we usually only
513           care about the top half of the registers anyway.
514         * Started committing some of the new class/object framework
515         * Remembered to finally start updating the Changelog
517 2003-03-18 03:50  ask
519         * Various files
520           Update Yet Another copyright statements to reflect the (no longer
521           so) shiny new year.
523 2003-03-11 22:06  chip
525         * Configure.pl: print help on non-option command line args
527 2002-12-18 20:38  sfink: changes since 0.0.8
529         - Allow suppression of cgoto core to save memory during compile
530         * Native function calling interface
531         * Major rewrite of stack and list aggregates
532         - Scalar PMC added
533         * Scratchpads implemented
534         - Win32 libraries
535         - Internal memory subsystem documentation
536         * Preliminary DotGNU support
537         - Packfile fingerprinting
538         * Buffer/PMC unification (into PObjs)
539         * stabs debugging information support
540         * Major Jako overhaul, including:
541           - imcc integration
542           - native function calling
543         - Perl6 string interpolation
544         - languages/regex now targets IMCC
545         * Optional Lea memory allocator
546         * Full sprintf implementation
547         * Many, many new tests
548         * Miniparrot
549         - exchange ops
550         - runtime-controllable gc debugging
551         * PMC properties
552         - Crash info
553         * JIT: various improvements
554           - register usage tracking
555           - block register allocation
556           - optimizations
557           - more jitted ops
558           - restartable
559           - architecture abstraction layer
560           - debugging via GDB
561         * Beginning support for extensible packfiles
562         * Much better key support, generally
563         * splice()
564         * Restructured PMC hierarchy with better functionality inheritance
565         * IMCC: many, many improvements. See imcc/ChangeLog
566         * Perl6: index map grep join reverse defined
567         * Scheme with functions!
570 2002-03-19 22:54  nicholas
572         * docs/running.pod: Patch from Simon Glover <scog@amnh.org>:
574          We can now get usage information for test_parrot without having to
575          grep the source.
577 2002-03-19 22:53  simon
579         * Configure.pl:
580         Parrot is called parrot.
582 2002-03-19 22:53  nicholas
584         * docs/tests.pod: Patch from Simon Glover <scog@amnh.org>:
586          1. There are tests in t/pmc as well as t/op now.
587          2. Adds a comment about Parrot::Test
589 2002-03-19 18:09  dan
591         * Configure.pl, examples/assembly/life.pasm: Toss a prompt that
592         messes up automated builds
594         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
596 2002-03-19 00:33  mrjoltcola
598         * core.ops: Doc cleanup from Simon Glover.
600 2002-03-18 23:52  mrjoltcola
602         * io/io_unix.c: Typo fix for invalid lvalue caught by David Loyd.
604 2002-03-18 22:09  dan
606         * include/parrot/resources.h: Checked in old version
608 2002-03-18 20:17  dan
610         * include/parrot/resources.h: Forgot a prototype
612 2002-03-18 20:15  dan
614         * resources.c: D'oh! Thinko, fixed.
616         Courtesy of "Peter Gibbs" <peter@emkel.co.za>
618 2002-03-18 17:33  josh
620         * Configure.pl: Lowering the bar a bit.
622 2002-03-18 17:33  sfink
624         * languages/regex/: MAINTAINER, Makefile, README, regex.pl,
625         test.pl, lib/Regex.pm, lib/Regex/AsmOps.pm, lib/Regex/CodeGen.pm,
626         lib/Regex/Generate.pm, lib/Regex/Grammar.pm, lib/Regex/Grammar.y,
627         lib/Regex/Optimize.pm, lib/Regex/Parse.pm, lib/Regex/Pasm.pm,
628         lib/Regex/PreOptimize.pm, lib/Regex/RegexOps.pm,
629         lib/Regex/Rewrite.pm, lib/Regex/CodeGen/Re.pm,
630         lib/Regex/CodeGen/Rx.pm, lib/Regex/Rewrite/Re.pm,
631         lib/Regex/Rewrite/Rx.pm, lib/Regex/Rewrite/Stackless.pm,
632         t/example.t: Whoops, wrong time to check this in.
634 2002-03-18 16:42  dan
636         * memory.c, resources.c: Partial fix for GC's memory trouncing. At
637         least we consider the PMC and Buffer free pools worth collecting,
638         and initialize the Buffer pool stuff.  Still not 100% correct,
639         though.
641 2002-03-18 15:35  simon
643         * packfile.c:
644         Fix format arg bug.
646 2002-03-18 07:45  brentdax
648         * Configure.pl: Warn if you're using 64-bit ints on a 32-bit
649         system.
651 2002-03-18 00:09  sfink
653         * languages/regex/: MAINTAINER, Makefile, README, regex.pl,
654         test.pl, lib/Regex.pm, lib/Regex/AsmOps.pm, lib/Regex/CodeGen.pm,
655         lib/Regex/Generate.pm, lib/Regex/Grammar.pm, lib/Regex/Grammar.y,
656         lib/Regex/Optimize.pm, lib/Regex/Parse.pm, lib/Regex/Pasm.pm,
657         lib/Regex/PreOptimize.pm, lib/Regex/RegexOps.pm,
658         lib/Regex/Rewrite.pm, lib/Regex/CodeGen/Re.pm,
659         lib/Regex/CodeGen/Rx.pm, lib/Regex/Rewrite/Re.pm,
660         lib/Regex/Rewrite/Rx.pm, lib/Regex/Rewrite/Stackless.pm,
661         t/example.t: Buggy 1st version of regex compiler implementation.
662         Warning: the test code depends on features of the assembler that do
663         not yet exist.
665 2002-03-17 21:35  ajgough
667         * types/: bignum.c, bignum_atest.pl: Added a couple of quick routes
668         through addition and subtraction.  Also added the ability to run
669         all the tests, including the ones which deal with overflow and
670         underflow.  These fail, but that's expected.  Soon they'll pass.
671         Then I'll show them.  Yesssssss.  Tessssssssts my precioussssss,
672         passsssssssings tesssstsssss.
674 2002-03-17 20:06  ajgough
676         * types/: bignum.c, bignum.h, bignum_test.pl: Modified
677         check_(under|over)flow to test bignumbers, rather than values.
678         context now carries E_limit, from which max and min exp are found.
680         Added a default-context-creating function (although this isn't the
681         same as either of the default contexts defined in the eda).
683 2002-03-17 13:31  ajgough
685         * types/: bignum.c, bignum.h: Made BN_round and BN_iround so that
686         exported version matches prototypes of other public functions.
688 2002-03-17 06:44  josh
690         * chartype.c, encoding.c, memory.c, misc.c, packdump.c, packfile.c,
691         packout.c, resources.c, string.c, include/parrot/encoding.h: Some
692         last-minute re-indenting.
694 2002-03-17 05:07  mrjoltcola
696         * io/io_unix.c: Clear up unsigned compare caught by Solaris GCC.
698 2002-03-16 23:17  nicholas
700         * classes/default.pmc: Patch from Simon Glover <scog@amnh.org> to
701         remove warnings:
703          default.pmc: In function `Parrot_default_get_integer_keyed':
704          default.pmc:50: warning: control reaches end of non-void function
705          default.pmc: In function `Parrot_default_get_number_keyed':
706          default.pmc:58: warning: control reaches end of non-void function
707          default.pmc: In function `Parrot_default_get_string_keyed':
708          default.pmc:67: warning: control reaches end of non-void function
709          default.pmc: In function `Parrot_default_get_pmc_keyed':
710          default.pmc:87: warning: control reaches end of non-void function
712 2002-03-16 18:50  ajgough
714         * types/: bignum.c, bignum.h: Lots of prototypes changed in
715         readiness for nicely telling your caller about any oddness you've
716         caused in the persuit of flow.
718 2002-03-16 17:38  dan
720         * interpreter.c, resources.c, docs/pdds/pdd09_gc.pod,
721         include/parrot/interpreter.h, include/parrot/resources.h: Now we
722         can control the GC and DOD, to stop it when we don't really want
723         it.
725 2002-03-16 16:58  dan
727         * resources.c, vtable.tbl, classes/default.pmc,
728         include/parrot/resources.h: Added the last code to let PMCs control
729         their marking at DOD time
731 2002-03-16 16:57  ajgough
733         * types/bignum.c: Ok, I worked out how to not have lots of tabs.  I
734         feel a little more virtuous now.  Really I do.  You might not
735         believe me, but you should.  perl -pne 's/\t/        /g', if you're
736         curious.
738 2002-03-16 16:57  josh
740         * packfile.c, packout.c: M-x untabify is my new friend.
742 2002-03-16 16:50  josh
744         * trace.c, resources.c: Minor whitespace tweak for the benefit of
745         check_source_standards.pl
747 2002-03-16 16:50  ajgough
749         * types/: bignum.c, bignum.h: More documentation, separate
750         functions into public and private sorts, some initial stuff to cope
751         with over and underflow correctly.
753 2002-03-16 16:49  josh
755         * resources.c: Re-indented (sorry bout the big diff)
757 2002-03-16 16:47  bdwheele
759         * examples/assembly/fact.pasm: This fixes fact.pasm so it will
760         assemble again, both with Simon's new assembler and with the old
761         one.
763 2002-03-16 16:33  mrjoltcola
765         * io/TODO: Get the TODO up-to-date for 0.0.4.
767 2002-03-16 16:11  josh
769         * Configure.pl: Patch from Nicholas Clark <nick@unfortu.net>: stops
770         silly people (such as me) running Configure with
771         /usr/local/bin/perl (which is 5.004_05) and not realising their
772         mistake until the pmc subdirectory, where the first qr// is
773         encountered.
775         Syntax error messages don't tell you what you did wrong. This does:
777         /usr/local/bin/perl Configure.pl Perl 5.00503 required--this is
778         only version 5.00405, stopped at Configure.pl line 10.
780 2002-03-16 14:38  ajgough
782         * Makefile.in: Small fix to Makefile.in to keep Irix make happy
783         with commenting.
785 2002-03-16 11:45  simon
787         * MANIFEST, examples/assembly/xml_parser.pasm:
788         Added Clint Pierce's XML parser.
790 2002-03-15 22:24  simon
792         * packout.c:
793         Don't need that function.
795 2002-03-15 21:56  simon
797         * Makefile.in, include/parrot/packfile.h:
798         Rebuild packout.o, since it'll be used for the Packfile XS module
800 2002-03-15 19:45  dan
802         * include/parrot/: memory.h, pmc.h: Another add-in for GC
804 2002-03-14 19:48  dan
806         * core.ops: No string to int for some reason
808 2002-03-14 18:45  dan
810         * string.c, t/op/string.t: Fix 0-length substr problem
812 2002-03-14 14:46  dan
814         * core.ops, interpreter.c, resources.c, classes/array.pmc,
815         classes/perlarray.pmc, examples/assembly/life.pasm,
816         include/parrot/interpreter.h, include/parrot/resources.h: Added in
817         a counter for copied memory, with a display in life.pasm
819 2002-03-14 03:16  mrjoltcola
821         * MANIFEST: Update MANIFEST courtesy of Simon Glover.
823 2002-03-13 23:43  simon
825         * packfile.c:
826         Oops.
828 2002-03-13 23:43  simon
830         * packfile.c:
831         Hangs head in shame.
833 2002-03-13 21:31  simon
835         * MANIFEST:
836         FAQ moved.
838 2002-03-13 18:06  simon
840         * string.c:
842         Fix string_compare screw-up.
844 2002-03-13 18:02  brentdax
846         * docs/: parrot.pod, ParrotFAQ.htm, faq.pod: Move the FAQ into POD
847         and add a new question/answer pair.
849 2002-03-12 22:53  mrjoltcola
851         * io.ops: Quick and dirty read ops for PIO. No warranty provided.
853 2002-03-12 22:48  mrjoltcola
855         * examples/assembly/io2.pasm: Quick and dirty read ops for PIO. No
856         warranty provided.
858 2002-03-12 22:29  ajgough
860         * docs/pdds/pdd14_bignum.pod: Ooops, it is #14, really.
862 2002-03-12 22:24  ajgough
864         * docs/pdds/pdd14_bignum.pod: Creation of bignumber pdd, update to
865         version 1.1, Don't know if this is the correct number, but I don't
866         want this stuck on my harddrive where it will get lost, so 14 it is
867         :)
869 2002-03-12 11:35  simon
871         * MANIFEST, packdump.c, packout.c:
873         Just so the functionality doesn't disappear.
875 2002-03-12 11:33  simon
877         * Makefile.in, chartype.c, encoding.c, packfile.c,
878         chartypes/unicode.c, chartypes/usascii.c, encodings/singlebyte.c,
879         encodings/utf16.c, encodings/utf32.c, encodings/utf8.c,
880         include/parrot/chartype.h, include/parrot/encoding.h,
881         include/parrot/packfile.h:
883         Packfile axing.
885 2002-03-11 23:06  nicholas
887         * core.ops: Patch from Simon Glover <scog@roe.ac.uk>:
889           Core.ops documentation nits
891 2002-03-11 23:05  nicholas
893         * t/pmc/pmc.t: Patch from Simon Glover <scog@roe.ac.uk>:
895           Most of the PerlUndef tests in pmc.t appear to have been added
896         twice.
897           Enclosed patch removes the duplicates.
899 2002-03-10 23:40  nicholas
901         * t/pmc/perlstring.t: Patch from Simon Glover <scog@amnh.org>:
903          More tests for the PerlString test-suite.
905 2002-03-10 23:40  nicholas
907         * t/op/time.t: Patch from Simon Glover <scog@amnh.org>:
909         test for sleep with negative argument
911 2002-03-10 21:58  nicholas
913         * t/op/rx.t: Patch from Simon Glover <scog@amnh.org>:
915          Enclosed patch fixes up a few more holes in our test coverage.
917 2002-03-10 21:18  mrjoltcola
919         * classes/array.pmc, classes/default.pmc, classes/intqueue.pmc,
920         classes/parrotpointer.pmc, classes/perlarray.pmc,
921         classes/perlhash.pmc, classes/perlint.pmc, classes/perlnum.pmc,
922         classes/perlstring.pmc, classes/perlundef.pmc,
923         include/parrot/pmc.h, core.ops, pmc.c, vtable.tbl: Add size
924         argument to the init() vtable method so PMCs have the option to
925         know how to size themselves at creation. size could be N elements
926         or a byte count, depending on the PMC or it may simply be ignored.
927         Overloaded 'new' opcode for optional arg.
929 2002-03-10 21:15  mrjoltcola
931         * lib/Parrot/Assembler.pm: Minor patch to the assembler for the
932         new_p_ic_ic opcode to work same as new_p_ic (looks up a named
933         class).
935         Also added small hack for .sub directive (which simply translates
936         to a label, however we might eventually want to collect these to
937         validate bsr calls.
939 2002-03-10 15:09  ajgough
941         * types/: bignum.c, bignum.h, bignum_atest.pl, bignum_test.pl:
942         Added round_floor and round_ceiling.  3403 tests pass, none fail.
944 2002-03-10 03:56  ajgough
946         * types/: bignum.c, bignum_atest.pl: Added extended stuff to
947         divide, divide integer and remainder.  All filled in functions now
948         have special values capability.
950         Much remains to be done though, and the pdd needs to catch up.
952 2002-03-10 01:36  ajgough
954         * types/bignum.c: Added extended stuff to _add, _subtract.
956 2002-03-10 00:14  nicholas
958         * t/op/: integer.t, number.t: Patch from Simon Glover
959         <scog@roe.ac.uk>:
961          The enclosed patch fixes a few of the holes in our test coverage
962          uncovered by Josh Wilmes
964 2002-03-09 23:03  ajgough
966         * types/: bignum.c, bignum.h: Modified compare to work with
967         extended values.  Made a couple of changes here and there to allow
968         BN_comp to take a context, so that an is_zero check doesn't clobber
969         negative zeros.
971 2002-03-09 22:19  ajgough
973         * types/: bignum.c, bignum.h, bignum_atest.pl, bignum_test.pl:
974         Unary plus now copes with special values.
976 2002-03-09 04:25  ajgough
978         * types/: bignum.c, bignum_atest.pl, bignum_test.pl: Exception
979         traps and flags are now enabled and tested for all the standard
980         tests for all the functions which are currently implemented.  Test
981         harness faffed with to allow these to be tested.
983 2002-03-09 02:29  josh
985         * encodings/singlebyte.c, encodings/utf16.c, encodings/utf32.c,
986         encodings/utf8.c, chartypes/unicode.c, chartypes/usascii.c:
987         Re-indented
989 2002-03-09 02:22  josh
991         * config_h.in: tab-blastin'
993 2002-03-09 02:21  josh
995         * check_source_standards.pl: Play nicer with M-x compile- don't
996         bother giving line numbers for things you don't want to look at.
998 2002-03-09 02:10  josh
1000         * examples/mops/mops.c: re-indented
1002 2002-03-09 02:07  josh
1004         * classes/pmc2c.pl: Use the usual header so that we can detect the
1005         autogeneratedness.
1007 2002-03-09 02:05  josh
1009         * jit2h.pl: Avoid accidental /* inside a comment, which generates a
1010         compiler warning
1012 2002-03-09 01:59  josh
1014         * io/: io.c, io_stdio.c, io_unix.c, io_win32.c: Another large
1015         patch- re-indent io/*.c.
1017 2002-03-09 01:52  ajgough
1019         * types/: bignum.c, bignum.h, bignum_test.pl: Added handling of
1020         special values to the string conversion functions, some other
1021         functions now need context (to let -0 pass through really_zero)
1022         which have also been added.
1024 2002-03-09 01:47  josh
1026         * test_main.c: Re-indented.
1028 2002-03-09 01:41  josh
1030         * rx.c: killed a stray tab
1032 2002-03-09 01:38  josh
1034         * rx.c: Re-indented.
1036 2002-03-09 01:36  josh
1038         * misc.c: Oops, some tabs remained- cleaned up.
1040 2002-03-09 01:31  josh
1042         * misc.c: Re-indented (major patch, sorry)
1044 2002-03-09 00:59  josh
1046         * embed.c: Re-indented.
1048 2002-03-08 23:08  simon
1050         * MANIFEST, docs/pdds/pdd10_embedding.pod,
1051         docs/pdds/pdd11_extending.pod, docs/pdds/pdd12_assembly.pod,
1052         docs/pdds/pdd13_bytecode.pod:
1053         Placeholder PDDs.
1055 2002-03-08 21:12  ajgough
1057         * include/parrot/string.h: Added private flags to string.h, mostly
1058         so that other GCed stuff can also have its very own private flags.
1060 2002-03-08 19:53  simon
1062         * MANIFEST:
1063         Great PDD Renaming
1065 2002-03-08 19:41  robert
1067         * docs/pdds/: pdd0.pod, pdd1.pod, pdd2.pod, pdd4.pod, pdd5.pod,
1068         pdd6.pod, pdd7.pod: Renamed...
1070 2002-03-08 18:51  simon
1072         * MANIFEST, docs/pdds/pdd08_keys.pod:
1073         Add keys PDD.
1075 2002-03-08 18:20  ajgough
1077         * types/: bignum.c, bignum.h, bignum_atest.pl, bignum_test.pl:
1078         Introduced exception handlers and exception flags to context, will
1079         allow support of extended standard.  Unified exception checking
1080         mechanism (sort of) and made minimal changes to bulk of code to use
1081         this.  Tests pass, I'm happy, and further changes will happen more
1082         gradually.
1084 2002-03-08 04:38  josh
1086         * interpreter.c, string.c, testparrotsizes_c.in: More indenting
1087         tweaks.
1089 2002-03-08 04:37  josh
1091         * platforms/: generic.c, generic.h, win32.c, win32.h: Re-indented
1093 2002-03-08 04:24  josh
1095         * embed.c: A bit more re-indenting
1097 2002-03-08 04:20  josh
1099         * embed.c: Indenting fixes
1101 2002-03-08 04:14  josh
1103         * jit.c: Re-indented (run_indent.pl)
1105 2002-03-08 03:36  josh
1107         * ops2c.pl: Fix the line numbers which get reported while compiling
1108         core_ops*.c
1110 2002-03-08 03:22  josh
1112         * packfile.c: -1552 cc: WARNING File = packfile.c, Line = 1537
1113         The variable "type" is set but never used.
1115               opcode_t type;
1117 2002-03-08 03:04  josh
1119         * resources.c, stacks.c, string.c, io/io.c, io/io_stdio.c,
1120         io/io_unix.c: Clean up unused and set-but-not-referenced variables
1121         noticed by the sgi compiler.
1123 2002-03-08 03:02  josh
1125         * misc.c: Fixes this warning (SGI) cc-1188 cc: WARNING File =
1126         misc.c, Line = 417   The indicated type qualifier is meaningless on
1127         cast type.
1130         (const char) 'f');
1131                                                                          ^
1133 2002-03-08 02:55  josh
1135         * Makefile.in: Clean up one of the object files it was missing
1137 2002-03-08 01:15  josh
1139         * include/parrot/interpreter.h: Fixes the following error (tcc):
1140         "./include/parrot/interpreter.h", line 27: Error:   [Syntax]: Extra
1141         comma at end of list.
1143 2002-03-06 22:15  simon
1145         * stacks.c:
1146         Tidy up stack chunk allocation.
1148 2002-03-06 21:00  simon
1150         * interpreter.c:
1151         Create strings only once we've got string register heads set up.
1153 2002-03-06 20:31  simon
1155         * classes/perlarray.pmc:
1156         malloc(0) considered harmful.
1158 2002-03-06 20:24  simon
1160         * include/parrot/resources.h:
1161         I like it when Parrot compiles.
1163 2002-03-06 17:02  dan
1165         * classes/array.pmc: Changed over to data pointing to a Buffer.
1167 2002-03-06 15:45  dan
1169         * core.ops, embed.c, exceptions.c, interpreter.c, memory.c,
1170         packfile.c, pbc2c.pl, pdump.c, resources.c,
1171         include/parrot/interpreter.h, include/parrot/memory.h,
1172         include/parrot/resources.h, io/io.c: Three quick things: 1) INTVALs
1173         and opcode_t > longs will now be even more suspect than what they
1174         were beforehand.  2) Feel free to bicker with names.  I don't think
1175         we've come to *any* sort of agreement with these, although we
1176         really, really, need to.  3) I forget the third thing.  4) But I
1177         thought of a fourth.  5) I've now remembered the third thing: IIRC,
1178         ANSI C states that enums will fit within the smallest type (int or
1179         greater) that can hold the values. Is that actually correct, and
1180         does it state whether unsigned is preferred to signed for
1181         non-negative enums? 6) Since I'm no longer constrained by "three"
1182         or "quick", I'm going size_t happy for a lot of memory-related
1183         storage.  (That's good.  No sense wasting the size or performance
1184         of an UINTVAL for strange values of UINTVAL.)  I'm also using it in
1185         a couple other internal things (like the GC stat counters, seen
1186         here).  Size and performance, again, and unpromotable to a bigint,
1187         so we know that we (theoretically) will wrap.  However, size_t
1188         isn't the best choice for the type.  (Not that there's anything
1189         wrong with size_t, just that it shouldn't be called size_t.)  Any
1190         thoughts?  I was thinking of just doing unsigned int, because,
1191         IIRC, int is usually the natural word size, and will be most
1192         efficient.  Thoughts? 7) I forgot what the fourth thing I thought
1193         of was while writing down the others.  Sorry.
1195         Courtesy of  "Bryan C. Warnock" <Bryan.Warnock@raba.com>
1197 2002-03-06 15:26  dan
1199         * memory.c, resources.c, string.c, classes/perlarray.pmc,
1200         include/parrot/resources.h: Now we allocate generic Buffers from
1201         arenas too
1203 2002-03-05 21:42  brentdax
1205         * Configure.pl: Minor cleanup and enhancements.
1207 2002-03-05 21:25  dan
1209         * resources.c: non-special GC now works with PMCs
1211 2002-03-05 19:48  brentdax
1213         * Configure.pl, DEVELOPING, MANIFEST, config_h.in, test_main.c:
1214         Parrot now "knows" if it's a development version or a release
1215         version.  See the instructions in the DEVELOPING file.
1217 2002-03-05 18:05  brentdax
1219         * MANIFEST: pasm.vim wasn't in the manifest.
1221 2002-03-05 17:57  simon
1223         * Makefile.in:
1224         Now, through much evilness, make distclean and make cvsclean work
1225         again.
1227 2002-03-05 17:38  dan
1229         * memory.c, resources.c, docs/pdds/pdd09_gc.pod,
1230         include/parrot/interpreter.h, include/parrot/pmc.h,
1231         include/parrot/resources.h: PMC tracing complete
1233 2002-03-05 16:28  gregor
1235         * languages/jako/Makefile.in:
1236         Changed -I ../../ to -I ../../lib when calling the assembler, since
1237         the perl modules have moved.
1239 2002-03-05 05:30  josh
1241         * packfile.c, pdump.c, pmc.c, register.c, rxstacks.c, stacks.c,
1242         string.c: More re-indenting via run_indent.pl.
1244 2002-03-05 05:17  josh
1246         * runops_cores.c, trace.c, warnings.c: Re-indented (via
1247         run_indent.pl)
1249 2002-03-05 04:26  josh
1251         * key.c, memory.c, test_gnuc.c, testparrotfuncptr.c: Re-indented
1252         using run_indent.pl and some minor tweaking.
1254 2002-03-05 04:21  josh
1256         * chartype.c, encoding.c, exceptions.c, global_setup.c,
1257         interpreter.c: Re-indented using run_indent.pl and some minor
1258         tweaking.
1260 2002-03-05 03:30  josh
1262         * include/parrot/trace.h: These functions are no longer used (or
1263         even implemented)
1265 2002-03-04 18:21  josh
1267         * include/parrot/trace.h: Fix a typo in the argument type.
1269         Patch from <daniel.ritz@gmx.ch>
1271 2002-03-04 03:39  josh
1273         * check_source_standards.pl, jit2h.pl: Add the "autogenerated file"
1274         header to jit_struct.h so we don't try to check it for conformance.
1275          (no way will it conform)
1277 2002-03-04 03:38  josh
1279         * include/parrot/: chartype.h, interpreter.h, io.h, rx.h, trace.h,
1280         unicode.h, warnings.h: Remove some remaining tabs and split some of
1281         the remaining long lines.
1283 2002-03-04 03:17  josh
1285         * include/parrot/: chartype.h, embed.h, encoding.h, exceptions.h,
1286         global_setup.h, interpreter.h, io.h, jit.h, key.h, memory.h,
1287         misc.h, op.h, oplib.h, packfile.h, parrot.h, pmc.h, register.h,
1288         resources.h, runops_cores.h, rx.h, rxstacks.h, stacks.h, string.h,
1289         string_funcs.h, trace.h, warnings.h: This is the first batch of
1290         re-indenting.   This patch is the result of running run_indent.pl
1291         on the header files and manually tweaking the results where errors
1292         were noticed.   This should get us closed, but some refinement may
1293         follow.
1295 2002-03-04 03:06  josh
1297         * resources.c: Return without parens, as mentioned in PDD 7
1299 2002-03-04 03:01  josh
1301         * core.ops: POD fixes.
1303 2002-03-04 02:58  josh
1305         * config_h.in, ops2c.pl, classes/pmc2c.pl: More consistent headers
1306         on autogenerated files- used by the check_source_standards.pl
1307         script (for now) to exempt autogenerated files from the checks.
1309 2002-03-04 02:51  josh
1311         * embed.c, key.c, pmc.c, resources.c, rx.c, testparrotfuncptr.c,
1312         warnings.c: Added the editor "boilerplate" footer to a few files
1313         which were missing it.
1315 2002-03-04 02:34  josh
1317         * check_source_standards.pl, interpreter.c, jit.c, test_gnuc.c,
1318         include/parrot/io.h, include/parrot/parrot.h, io/io_win32.c: Fixes
1319         c preprocessor directive indentation to comply with pdd 7.
1321         (also fixes the check for this indentation in
1322         check_source_standards.pl)
1324 2002-03-04 02:32  josh
1326         * lib/Parrot/Test.pm: Fixes this error seen on perl 5.005_02 on
1327         irix.
1329         perl t/harness t/op/basic..........Use of uninitialized value at
1330         lib/Parrot/Test.pm line 81.  #     Failed test (t/op/basic.t at
1331         line 6) #          got: undef #     expected: ''
1333 2002-03-04 02:30  josh
1335         * MANIFEST, run_indent.pl, docs/pdds/pdd07_codingstd.pod,
1336         docs/pdds/pdd7.pod: Added documentation and code to invoke the GNU
1337         "indent" program to enforce some of the code style standards
1338         outlined in PDD 7.
1340         Usage: ./run_indent.pl <file>
1342 2002-03-03 19:04  simon
1344         * examples/mops/mops.c:
1345         Let's make it compile, huh?
1347 2002-03-03 19:04  simon
1349         * examples/mops/mops.cs:
1350         I R AN IDIOT
1352 2002-03-03 18:11  simon
1354         * examples/mops/mops.cs, examples/mops/mops.il, MANIFEST:
1355         Added C# and MS-IL versions of mops tester.
1357 2002-03-03 14:52  simon
1359         * core.ops:
1360         Add a sub() op to make mops_p work.
1362 2002-03-02 18:12  nicholas
1364         * examples/mops/mops.c, include/parrot/embed.h,
1365         include/parrot/interp_guts.h, include/parrot/jit.h,
1366         include/parrot/misc.h, include/parrot/packfile.h,
1367         include/parrot/rx.h, include/parrot/warnings.h,
1368         platforms/generic.c, platforms/generic.h, platforms/win32.c,
1369         platforms/win32.h, types/bignum.c, types/bignum.h: Patch from Josh
1370         Wilmes to add the emacs and vim "ending boilerplate" that sets the
1371         indent variables correctly.
1373 2002-03-02 17:41  nicholas
1375         * resources.c: Patch from Josh Wilmes <josh@hitchhiker.org>: Little
1376         patch to fix a compiler warning.
1378 2002-03-01 22:35  dan
1380         * memory.c, resources.c, include/parrot/pmc.h,
1381         include/parrot/resources.h: PMCs now come out of arenas.
1383 2002-03-01 06:15  dan
1385         * string.c:
1386         A non-existing buffer + a non-existing buffer should be a
1387         non-existing buffer, not "", which is really '\0'.
1389         Courtesy of "Bryan C. Warnock" <Bryan.Warnock@raba.com>
1391 2002-03-01 06:02  dan
1393         * classes/: array.pmc, perlarray.pmc, perlhash.pmc, perlstring.pmc:
1395         TMTOWTDI, but strcmp is probably the worse.
1397         Courtesy of "Bryan C. Warnock" <Bryan.Warnock@raba.com>
1399 2002-03-01 02:32  brentdax
1401         * embed.c: Debug mode now prints out the GC data.
1403 2002-02-28 23:44  dan
1405         * core.ops, resources.c, include/parrot/resources.h: Added collect
1406         and sweep opcodes
1408 2002-02-28 22:58  dan
1410         * docs/pdds/: pdd06_pasm.pod, pdd6.pod: Add docs for interpinfo
1411         opcode
1413 2002-02-28 22:50  dan
1415         * core.ops, interpreter.c, resources.c,
1416         examples/assembly/life.pasm, include/parrot/interpreter.h,
1417         include/parrot/resources.h: Add some stat gathering to the resource
1418         allocation code.
1420         Also add an interpreter info retrieval op, and teach it about the
1421         different things it can retrieve.
1423         Finally, add some stat info to life.pasm as an example
1425 2002-02-28 21:27  dan
1427         * editor/pasm.vim: VIM mode commands for parrot assembly files
1429         Courtesy of Scott Beck <scott@gossamer-threads.com>
1431 2002-02-28 19:20  dan
1433         * examples/assembly/life.pasm: Fix a creeping string length leak.
1435         Courtesy of  "Bryan C. Warnock" <Bryan.Warnock@raba.com>
1437 2002-02-28 18:26  dan
1439         * string.c: When you clone a constant, it ain't constant no mo'.
1441         Cocurtesy of "Bryan C. Warnock" <Bryan.Warnock@raba.com>
1443 2002-02-28 00:51  dan
1445         * MANIFEST: Add missing files
1447         Courtesy of "Bryan C. Warnock" <Bryan.Warnock@raba.com>
1449 2002-02-28 00:49  dan
1451         * docs/pdds/: pdd0.pod, pdd00_pdd.pod: The pod version of PDD 0 in
1452         CVS seems to have several chunks missing out of it, too.  This
1453         patch is simply an administrative patch, with the differences
1454         between my last version, and the one currently in there.  There
1455         will be a forthcoming patch for some minor tweaking to the PDD, but
1456         I wanted a common baseline before I make any (potential) semantic
1457         changes.
1459         There's only one semi-major change, which noone needs to worry
1460         about just yet.  That's a change from PDD Format 1 to PDD Format
1461         6.0 - rationale can be found under 'Standard (Version #)' of the
1462         STANDARDS TRACK infomation.  Don't worry about this yet, because it
1463         should be 6.0.0, and we need to discuss Perl versus Parrot with
1464         PDDs.
1466         Courtesy of "Bryan C. Warnock" <bwarnock@raba.com>
1468 2002-02-28 00:27  dan
1470         * packfile.c, resources.c, examples/assembly/life.pasm,
1471         include/parrot/register.h, include/parrot/resources.h,
1472         include/parrot/string.h: First pass of semi-full GC. (Strings only,
1473         no PMCs yet)
1475         This patch now implements a real copying collector. We trace from
1476         our root set and compact the contents of Buffer structs.
1478         Todo:
1480         *) It's very STRING-centric and doesn't handle memory stuffed in
1481         Buffers.  But, then, we don't have pool allocation for Buffers
1482         either, and we need to have that soonish for this to work.
1484         *) Doesn't trace PMCs, so if you trigger a collection and there's
1485         memory or STRING structs only accessible from PMCs, you'll fail
1486         horribly. That needs fixing too
1488         *) Better algorithms for when to trace or collect vs when to just
1489         go allocate more memory from the system. Should probably be more
1490         cache friendly too.
1492 2002-02-27 21:04  dan
1494         * jit.c, memory.c, resources.c, string.c, docs/pdds/pdd09_gc.pod,
1495         examples/assembly/life.pasm, include/parrot/resources.h,
1496         include/parrot/string.h, include/parrot/string_funcs.h,
1497         jit/i386/core.jit: Start of GC in
1499 2002-02-26 16:41  dan
1501         * jit/i386/string.jit: Fix a typo
1503         Courtesy of Jonathan Stowe <gellyfish@gellyfish.com>
1505 2002-02-26 16:37  dan
1507         * interpreter.c: Fix solaris test failures
1509         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1511 2002-02-26 16:36  dan
1513         * include/parrot/: interp_guts.h, io.h, packfile.h, rx.h,
1514         unicode.h, warnings.h: Fixes various warts in header files, such
1515         as: * macros   -added parens to prevent problems with operator
1516         precedence   -removed ; at end * removed SSIZE_MAX, since ssize_t
1517         is no longer used * added some more INLINE definitions for MSVC and
1518         C99 compilers
1520         Courtesy of Brian Lee Ray <blray@ualr.edu>
1522 2002-02-26 16:20  dan
1524         * Configure.pl: Turns out we were using a warning flag which
1525         doesn't exist on 2.7.  Simple tweak though:
1527         Courtesy of  Josh Wilmes <josh@hitchhiker.org>
1529 2002-02-25 22:58  dan
1531         * MANIFEST, docs/pdds/pdd09_gc.pod: Add docs of GC
1533 2002-02-25 17:36  dan
1535         * include/parrot/pmc.h: Fix the bits
1537 2002-02-23 21:57  dan
1539         * include/parrot/resources.h: Another 1.5% never hurts
1541 2002-02-23 21:44  dan
1543         * global_setup.c, memory.c, resources.c, string.c,
1544         include/parrot/resources.h: Allocate STRING headers from an arena
1545         with freelist rather than with the system malloc. First step in a
1546         good (or even a bad) GC system.
1548 2002-02-23 20:37  brentdax
1550         * misc.c: lint has been doing Evil and Wrong things to misc.c.
1552 2002-02-22 14:59  ajgough
1554         * types/bignum.c: BN_multiply split into BN_multiply and
1555         BN_imultiply, the internal version to be used by idivide so that
1556         rounding isn't performed during intermediate stages of division.
1558         following test scripts now all pass: divide divideint add multiply
1559         subtract remainder compare rounding plus minus (these are all the
1560         operations currently implemented, rescale and power must still be
1561         written, so don't pass right now).
1563 2002-02-22 13:13  ajgough
1565         * types/bignum_atest.pl: Test harness modified to understand
1566         comments better, and be able to run unary (and rounding) tests.
1567         Currently a few rounding tests fail, which are being investigated.
1569 2002-02-22 01:41  dan
1571         * key.c: Although there's more work being done on the key stuff and
1572         this isn't the final fix, applying this patch does get parrot to
1573         build with two more compilers, so it's probably worthwhile.
1575         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1577 2002-02-22 00:53  dan
1579         * config_h.in, misc.c, include/parrot/embed.h,
1580         include/parrot/exceptions.h, include/parrot/interpreter.h,
1581         include/parrot/io.h, include/parrot/parrot.h, include/parrot/pmc.h,
1582         include/parrot/resources.h, include/parrot/rx.h,
1583         include/parrot/string.h, include/parrot/unicode.h,
1584         include/parrot/warnings.h, io/io_stdio.c, io/io_unix.c,
1585         io/io_win32.c: Fixes the following (lcc) warnings:
1587           - interpreter.c:470: warning: expression with no effect elided
1588                (related to the way warnings flags were defined)
1590           - misc.c:352: warning: unreachable code
1591             misc.c:483: warning: unreachable code
1592                (i introduced these with some overzealous de-linting)
1594           - numerous warnings like this:
1595             io/io_unix.c:383: warning: conversion from pointer to void' to
1596         pointer to
1597             pointer to struct _ParrotIO function(pointer to struct
1598         Parrot_Interp,pointer
1599             to struct _ParrotIOLayer,pointer to const char,pointer to const
1600         char,pointer
1601             to pointer to void)' is compiler dependent
1603         Fixes the following nits:    - remove bad indenting (tabs) in the
1604         includes
1606         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1608 2002-02-21 21:12  ajgough
1610         * types/: bignum.c, bignum.h: These might look like massive
1611         changes, but really it's just he imposition of coding standards.
1612         The file still isn't entirely compliant, but is now much more so.
1614         Also changed:
1616          o a few more comments
1617          o BN_compare uses internal BN_comp to compare
1618          o lost_digits behaviour is now correct (test harness modified to
1619         test
1620            this).
1622         All binary functions now pass all the tests in the basic standard.
1623         Unary functions not yet tested, will be soon.
1625 2002-02-21 18:20  dan
1627         * lib/Parrot/OpTrans/CPrederef.pm: The "inline" bit of that patch
1628         was no longer needed, and the ssize_t thing really shouldn't be
1629         needed either.
1631         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1633 2002-02-21 18:15  dan
1635         * Configure.pl, embed.c, pdump.c, hints/mswin32.pl,
1636         include/parrot/parrot.h: this patch adds support for the freely
1637         available borland c++ 5.5.1 compiler
1639         depends on: - josh's patch to remove ssize_t from CPrederef.pm -
1640         working borland compiler (compiler must know where to find headers
1641         and libs) - Perl's Config.pm modified to use cc='bcc32.exe' not of
1642         cc='cl.exe' - a working make utility (borland make doesn't work,
1643         nmake does)
1645         changes: - add bcc in hints/mswin32.pl - clean up for msvc++ in
1646         hints/mswin32.pl - remove a space from Configure.pl (very very
1647         important for bcc) - add a O_BINARY flag to open() in pdump.c,
1648         embed.c (required by bcc) - define O_BINARY 0 when it's not defined
1649         (win32 knows it, linux not)
1651         and the why: - parrot is MUCH faster when compiled with borland c
1652         (make test on p2-450, 320MB):   * msvc++: 313 seconds   * bcc: 251
1653         seconds
1655         Courtesy of "Ritz Daniel" <daniel_ritz@gmx.ch>
1657 2002-02-21 18:09  dan
1659         * jit.c, testparrotfuncptr.c, trace.c, classes/array.pmc, io/io.c,
1660         io/io_stdio.c, io/io_unix.c, io/io_win32.c: This patch removes
1661         cuddled elses, as required by PDD 7.
1663         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1665 2002-02-21 18:04  dan
1667         * MANIFEST, Makefile.in, check_source_standards.pl: This patch adds
1668         a new Makefile target called "check_source".  This target scans all
1669         the .c and .h files in the directory and checks for conformance to
1670         a number of the standards outlined in PDD 7.
1672         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1674 2002-02-21 16:38  ajgough
1676         * types/: bignum.c, bignum.h, bignum_atest.pl: Modifications to
1677         allow arithmetic with numbers with a fixed fractional part, buffer
1678         structures now more ready to be integrated into the parrot memory
1679         allocation game, test harness modified to allow lost_digits
1680         condition to be checked.  Some more comments.
1682 2002-02-21 15:53  simon
1684         * io/io_unix.c:
1685         Fix typo
1687         Courtesy of: "David M. Lloyd" <dmlloyd@tds.net>
1689 2002-02-20 16:41  dan
1691         * MANIFEST, docs/pdds/pdd_template.pod: Added in template PDD
1693 2002-02-18 18:25  dan
1695         * MANIFEST, lib_deps.pl: Added in lib_deps.pl and MANIFEST change.
1697         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1699 2002-02-18 18:21  dan
1701         * lib/Parrot/OpTrans/CPrederef.pm: this is a quick fix for
1702         CPrederef.pm to make to generated code compile with the MS
1703         compiler.
1705         fixes: - ms compiler allows inline only for c++, for c there's
1706         __inline - ms header files knows nothing about ssize_t
1708         Courtesy of "Ritz Daniel" <daniel_ritz@gmx.ch>
1710 2002-02-18 17:49  dan
1712         * MANIFEST: Add the PDDs
1714 2002-02-18 17:47  dan
1716         * docs/pdds/: pdd07_codingstd.pod, pdd7.pod: Added in PDD 7, the
1717         coding standards PDD.
1719 2002-02-18 17:40  dan
1721         * docs/pdds/: pdd06_pasm.pod, pdd6.pod: Updated to latest rev
1723 2002-02-18 12:41  gregor
1725         * test_main.c:
1726         Remove warning about exit() not being declared.
1728 2002-02-18 08:29  simon
1730         * misc.c, warnings.c, include/parrot/misc.h,
1731         include/parrot/warnings.h:
1732         This patch adds some missing const's to silence a number of gcc
1733         warnings.
1735         Courtesy of: Josh Wilmes <josh@hitchhiker.org>
1737 2002-02-18 08:26  simon
1739         * Makefile.in, core.ops, embed.c, interpreter.c, key.c, misc.c,
1740         ops2c.pl, packfile.c, pdump.c, stacks.c, string.c,
1741         classes/array.pmc, classes/perlarray.pmc, classes/perlhash.pmc,
1742         include/parrot/parrot.h, include/parrot/rx.h,
1743         include/parrot/stacks.h, io/io_stdio.c, io/io_unix.c,
1744         lib/Parrot/OpTrans/CPrederef.pm:
1745            - add makefile target and script to test for external libc
1746         dependencies
1747            - fix return values in hash and array PMCs (returning 0 in a
1748         void func)
1749            - remove unnecessary data pointer <=> function pointer
1750         conversions
1751              outside of the JIT code.
1752            - move the definition of the "INLINE" macro out of the rx header
1753         and make
1754              available for general use on C++ compilers and gcc.
1755            - remove a few unused variables
1757         Courtesy of: Josh Wilmes <josh@hitchhiker.org>
1759 2002-02-17 16:29  simon
1761         * docs/pdds/: pdd0.pod, pdd00_pdd.pod, pdd01_overview.pod,
1762         pdd02_vtables.pod, pdd04_datatypes.pod, pdd05_opfunc.pod,
1763         pdd06_pasm.pod, pdd1.pod, pdd2.pod, pdd4.pod, pdd5.pod, pdd6.pod:
1764         We're organised and responsible. Honest.
1766 2002-02-17 02:46  sfink
1768         * Makefile.in: Remove $^ for nmake compatibility.
1770 2002-02-16 09:20  brentdax
1772         * config_h.in, test_main.c, include/parrot/chartype.h,
1773         include/parrot/embed.h, include/parrot/encoding.h,
1774         include/parrot/string.h, include/parrot/string_funcs.h: Better
1775         embedding exposure and hiding, part 1.
1777 2002-02-16 04:38  dan
1779         * Makefile.in, core.ops, interpreter.c, pbc2c.pl, pdump.c,
1780         runops_cores.c, docs/running.pod, lib/Parrot/OpTrans/C.pm,
1781         lib/Parrot/OpTrans/CGoto.pm, lib/Parrot/OpTrans/CPrederef.pm:
1782         Anyway, here's a patch to repair pbc2c.pl, combined with removing
1783         typecasts in various places throughout the code. It probably won't
1784         work for Windows yet. The libparrot.a target might need to be
1785         modified to at least prevent it from confusing make on Windows; I
1786         don't know.
1788         Preliminary instructions for using pbc2c.pl are in
1789         docs/running.pod.  I'll try to do better later.
1791         Courtesy of Steve Fink <steve@fink.com>
1793 2002-02-16 04:15  dan
1795         * exceptions.c, include/parrot/exceptions.h: Warnings cleaned up
1797         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1799 2002-02-16 00:03  simon
1801         * classes/: perlarray.pmc, perlhash.pmc:
1803         pmc is already defined!
1805 2002-02-15 23:20  brentdax
1807         * Configure.pl, config_h.in, exceptions.c, pmc.c,
1808         include/parrot/exceptions.h: Far more informative panic messages.
1810 2002-02-15 03:24  dan
1812         * lib/Parrot/: Op.pm, OpsFile.pm, OpTrans/CPrederef.pm: Here's a
1813         much more extensive patch that fixes it to work properly, and
1814         deletes a bazillion casts as well.  It also points to the question
1815         "can we make the byte_code be an opcode_t* already?"
1817         Oh, and it makes some of the formatting prettier, so it's gotta be
1818         good.
1820         Courtesy of * Steve Fink <steve@fink.com>
1822 2002-02-15 02:30  dan
1824         * Makefile.in, core.ops, embed.c, misc.c, packfile.c, rx.ops,
1825         stacks.c: I've tweaked the "lint" target somewhat and fixed a few
1826         of the things it finds.  Attaching the patch as well as the current
1827         lint output.
1829         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1831 2002-02-15 01:59  dan
1833         * t/pmc/: array.t, perlhash.t: Disable non-functional bits for the
1834         moment.
1836 2002-02-15 01:48  dan
1838         * t/pmc/perlarray.t: Skip tests for features that need twiddling
1840 2002-02-15 01:40  dan
1842         * t/op/rx.t: Skip a test that's waiting for us to rejig some array
1843         things
1845 2002-02-14 23:30  dan
1847         * resources.c: Added comment for buffer tag routine. D'oh!
1849 2002-02-14 23:28  dan
1851         * resources.c, include/parrot/resources.h: Added buffer mark
1852         routine for GC
1854 2002-02-14 23:17  dan
1856         * memory.c, classes/array.pmc, classes/perlarray.pmc,
1857         include/parrot/memory.h, include/parrot/string.h, t/pmc/perlhash.t:
1858         Rejigged memory system a bit. Now should be ready for the horror
1859         that is garbage collection.
1861 2002-02-14 19:33  gregor
1863         * ops2c.pl, include/parrot/oplib.h:
1864         Added code to automatically generate a function within an oplib to
1865         lookup opinfos given the op name. This will come in handy in future
1866         when we want to twiddle opcode tables at run time and possibly at
1867         startup time.
1869 2002-02-14 19:25  gregor
1871         * examples/assembly/queens.pasm:
1872         Regenerated queens.pasm from queens.jako since the clone_* stuff
1873         went away.
1875 2002-02-14 17:12  dan
1877         * resources.c, include/parrot/resources.h: Finished up the
1878         interface for memory and tracked interpreter thingies.
1880 2002-02-14 16:53  dan
1882         * memory.c, include/parrot/memory.h: intercept free and realloc
1884 2002-02-14 05:53  dan
1886         * interpreter.c, runops_cores.c: The type changes in struct
1887         Packfile break the pointer math used in a few places to calculate
1888         the address of the end of the loaded byte code. This causes
1889         segfaults in build_asm in jit.c when using -j. It also breaks the
1890         bounds checking on opcode address in runops_slow_core.
1892         The patch adds the necessary cast to correct the code_end
1893         calculations.
1895         Courtesy of Jason Gloudon <perl@gloudon.com>
1897 2002-02-14 01:01  ajgough
1899         * types/: bignum.c, bignum.h, bignum_test.pl: Added support for
1900         BigInt operations (I think), tests for normal operation continue to
1901         pass.  Also a shed load of comments.
1903 2002-02-13 01:34  ajgough
1905         * types/: bignum.c, bignum.h, bignum_atest.pl, bignum_test.pl: This
1906         is a (mostly) working bignumber library.  There remains much work
1907         to do though, some functions are not yet implemented and headers
1908         need to find their way to the correct place RSN.  Also support for
1909         bigints and a sensible error reporting mechanism are needed.
1911 2002-02-12 18:51  dan
1913         * misc.c: Fix some warnings
1915 2002-02-12 17:10  dan
1917         * misc.c: Run through indent -kr -nce so I can read it
1919 2002-02-12 16:49  dan
1921         * misc.c: Need standard header/footer comments
1923 2002-02-11 20:32  simon
1925         * classes/array.pmc:
1926         get and set pmc methods.
1928 2002-02-11 20:19  simon
1930         * classes/array.pmc:
1931         Maybe the keys aren't integer...
1933 2002-02-11 20:03  simon
1935         * core.ops, vtable.tbl, classes/default.pmc:
1936         {g,s}et_pmc_keyed
1938 2002-02-11 19:07  simon
1940         * vtable.tbl, classes/default.pmc:
1941         Add set_pmc. Usee with caution.
1943 2002-02-11 18:20  dan
1945         * classes/: array.pmc, perlarray.pmc: Patch array classes to
1946         compile
1948 2002-02-11 17:59  simon
1950         * core.ops, embed.c, global_setup.c, key.c, rx.ops,
1951         classes/perlarray.pmc, classes/perlhash.pmc:
1952         Make it compile.
1954 2002-02-11 17:57  simon
1956         * packfile.c, include/parrot/packfile.h:
1957         Reduce warnings
1959         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
1961 2002-02-11 17:55  dan
1963         * docs/parrot_assembly.pod: Document some key ops
1965 2002-02-11 09:20  brentdax
1967         * pmc.c, include/parrot/exceptions.h: Adding a panic ought to be
1968         disgustingly easy.
1970 2002-02-11 00:34  simon
1972         * core.ops, include/parrot/exceptions.h:
1973         This is what keyed set ops look like. Remember, however, that for
1974         keyed functions, all operands must be PMCs. set(PMC, PMC, INT)
1975         means $1 = $2[$3], not $1[$2] = $3. set(PMC,PMC,PMC) is so
1976         obviously ambiguous that you ought to use the 4-arg version
1977         instead.
1979 2002-02-10 23:12  jgoff
1981         * classes/: array.pmc, perlarray.pmc: Properly allocate
1982         SELF->data's array of PMC* data in array and perlarray.pmc.  This
1983         isn't tested yet, but should be fairly straightforward.  PerlHash
1984         needs to be finished before the system will compile again, and that
1985         should be done in the next few days.
1987 2002-02-09 04:46  jgoff
1989         * classes/: array.pmc, default.pmc, intqueue.pmc,
1990         parrotpointer.pmc, perlarray.pmc, perlhash.pmc, perlundef.pmc:
1991         Added basic _keyed member functions.  Unfortunately this still
1992         doesn't fix the problems that are causing the build to break. It's
1993         a start though. I'm not implementing the PMC add functions just
1994         yet.
1996 2002-02-08 15:59  simon
1998         * classes/array.pmc:
1999         Some more work on getting the array stuff up to date.
2001 2002-02-08 12:23  simon
2003         * classes/array.pmc, classes/perlhash.pmc, include/parrot/key.h,
2004         lib/Parrot/Vtable.pm:
2005         Got array->get_integer_keyed doing what I think it ought to. One
2006         down, all the rest to go.
2008 2002-02-08 11:47  simon
2010         * vtable.tbl:
2011         Although I didn't intend it to be quite that broken...
2013 2002-02-08 11:42  simon
2015         * vtable.tbl, include/parrot/parrot.h, lib/Parrot/Vtable.pm:
2016         Completely break Parrot, but at least we get the key stuff right
2017         for now.
2019 2002-02-08 06:25  dan
2021         * hints/darwin.pl: Silences the warning about passing in
2022         -flat_namespace to the compile.  That's a link-only flag.
2024 2002-02-08 04:52  jgoff
2026         * classes/: array.pmc, default.pmc, intqueue.pmc,
2027         parrotpointer.pmc, perlarray.pmc, perlhash.pmc, perlint.pmc,
2028         perlnum.pmc, perlstring.pmc, perlundef.pmc: Filled in missing
2029         return values in *.pmc, added some missing casts to the repeat_foo
2030         members, and deleted the _index members from the perlscalar
2031         classes.  Basic cleanup, and getting ready for _keyed functions.
2033 2002-02-07 04:49  mrjoltcola
2035         * examples/assembly/bsr.pasm: Elaborated on the bsr/ret example,
2036         added a nested subroutine call.
2038 2002-02-07 04:32  jgoff
2040         * vtable.tbl, lib/Parrot/Vtable.pm: vtable.tbl got some minor
2041         changes in order to give the whitespace rules a little workout, and
2042         do a little bit more testing. No actual structural changes were
2043         made.  lib/Parrot/Vtable.pm got an interface change, and more
2044         importantly should be ready to support the new '_keyed' attribute,
2045         which will work roughly thus: PMC* src_value gets remapped to 'PMC*
2046         src_value' followed by 'KEY* src_key'.  This will be how the new
2047         _keyed operators will function, and those should be written within
2048         a few days.
2050 2002-02-06 18:00  doughera
2052         * misc.c: Change C++-style comments to C comments (again).  Remove
2053         unused perl5 code that was in #if 0/#endif.
2055 2002-02-06 17:59  doughera
2057         * warnings.c: Add trailing newline.
2059 2002-02-06 04:14  mrjoltcola
2061         * include/parrot/io.h, io/io.c: Minor cleanup.
2063 2002-02-06 03:11  mrjoltcola
2065         * examples/assembly/io1.pasm, io/io.c, io/io_win32.c: Tied up a
2066         couple of loose end in win32 IO stuff. Open behaves now but needs
2067         more work.
2069 2002-02-05 21:02  brentdax
2071         * classes/pmc2c.pl: Length on whoami init was always 7--a problem
2072         which showed up in Purify builds.
2074 2002-02-05 17:15  simon
2076         * misc.c:
2077         Warning fixes.
2079         Courtesy of: Jonathan Stowe <gellyfish@gellyfish.com>
2081 2002-02-05 17:08  doughera
2083         * misc.c: Avoid C++-style comments.
2085 2002-02-05 17:07  doughera
2087         * lib/Parrot/Jit/sun4Generic.pm: Generated assembly programs were
2088         not valid assembler for Sun's /usr/ccs/bin/as.  Now they are,
2089         thanks to Jason Gloudon <perl@gloudon.com>.
2091 2002-02-05 14:04  simon
2093         * misc.c:
2094         Make the problem different, perhaps even better.
2096 2002-02-05 13:49  simon
2098         * misc.c:
2099         Possibly fix a `short int' is promoted to `int' when passed through
2100         `...' scary error, possibly make things absolutely worse.
2102 2002-02-05 13:15  simon
2104         * Configure.pl:
2105         Placate Tru64.
2107 2002-02-05 13:12  simon
2109         * warnings.c:
2110         Not going to get far without this one...
2112 2002-02-05 11:41  simon
2114         * string.c:
2115         Don't barf when handed null pointers.
2117 2002-02-05 10:04  simon
2119         * misc.c, include/parrot/misc.h:
2120         Fix some trivial bugs in warnings code.
2122 2002-02-05 09:27  simon
2124         * misc.c:
2125         Oops, forgot this one; also added %P support.
2127 2002-02-05 09:20  simon
2129         * MANIFEST, Makefile.in, core.ops, embed.c, interpreter.c,
2130         test_main.c, classes/perlundef.pmc, include/parrot/embed.h,
2131         include/parrot/interpreter.h, include/parrot/misc.h,
2132         include/parrot/parrot.h, include/parrot/warnings.h:
2133         Warnings support.
2135         Courtesy of: Brent Dax <brentdax@cpan.org>
2137 2002-02-05 05:41  jgoff
2139         * vtable.tbl, lib/Parrot/Vtable.pm, t/pmc/perlstring.t: Changed the
2140         format of vtable.tbl to get rid of the tab-dependence.  The format
2141         now looks roughly like this:
2143         init() # 'void' and 'unique' are assumed INTVAL type ( ) # 'unique'
2144         is assumed str void concatenate (PMC* value, PMC* dest) # Nothing
2145         assumed here, but note the C-like prototyping.  Also had to disable
2146         one test that depended upon 'concat_p_p_s', which isn't necessary
2147         anyway.
2149         Vtable.pm will change again when the type '_keyed' is added,
2150         because that requires remapping parameters slightly differently
2151         again.  Also, note that it assumes 'value' is the first parameter
2152         in the list. This assumption will go away at the same time.
2154 2002-02-04 16:57  ajgough
2156         * core.ops, t/pmc/perlstring.t, t/pmc/pmc.t: More tests for pmc
2157         functions.  Thanks to Simon Glover.
2159 2002-02-04 02:47  ajgough
2161         * hints/os2.pl: Removes a flag from the os/2 hints file that isn't
2162         needed.  I suspect that the entire hints file isn't really needed,
2163         but there's no one to actually tell us this.
2165 2002-02-02 15:45  ask
2167         * docs/ParrotFAQ.htm: fix internal links
2169 2002-02-02 04:06  jgoff
2171         * classes/: array.pmc, intqueue.pmc, perlarray.pmc, perlhash.pmc:
2172         Moving the internal KEY structure from the cache.struct_val member,
2173         where it doesn't really belong, to the internal SELF->data member.
2174         This frees up the cache/type members for other usage.
2176         This is the first step in moving PMCs to the point where we can do
2177         multidimensional PMC handles. The next step is to change the
2178         assembler to accept the syntax of 'set P0["foo"],7'.
2180 2002-02-02 00:13  nicholas
2182         * include/parrot/global_setup.h: Patch from Jonathan Stowe to
2183         prototype Parrot_Array_class_init
2185 2002-02-02 00:13  nicholas
2187         * embed.c: Casts to tidy up warnings from Jonathan Stowe Change
2188         time to sum_time to avoid warning on FreeBSD about tracking a
2189         global [No, this warning does not appear on Linux. Yes, it is real
2190         :-)]
2192 2002-02-01 23:02  nicholas
2194         * embed.c: Fix fprintf format warning in Parrot_runcode. From Simon
2195         Glover
2197 2002-02-01 20:20  nicholas
2199         * t/pmc/pmc.t: Add end at end of asm in test (from Simon Glover)
2201 2002-02-01 18:20  nicholas
2203         * lib/Parrot/Test.pm: Env.pm on 5.005_03 doesn't do a use vars for
2204         you
2206 2002-02-01 13:22  nicholas
2208         * MANIFEST: Add docs/embed.pod and t/op/ifunless.t
2210 2002-02-01 12:19  simon
2212         * core.ops, t/op/ifunless.t, t/op/integer.t:
2213         Added "unless" op.
2215 2002-02-01 12:11  simon
2217         * lib/Parrot/Test.pm:
2218         Remove a warning.
2220 2002-02-01 01:38  nicholas
2222         * MANIFEST, MANIFEST.SKIP, Makefile.in: Add a MANIFEST.SKIP file,
2223         and a manitest target to Makefile.in that lets one test the
2224         manifest.
2226 2002-02-01 00:03  dan
2228         * core.ops, global_setup.c, include/parrot/pmc.h: More setup for
2229         PMC dynaloading
2231 2002-01-31 21:46  gregor
2233         * Configure.pl, Makefile.in, hints/mswin32.pl:
2234         A few more things are now configable, so we are closer to win32
2235         shared library builds. Not there yet, but closer.
2237 2002-01-31 21:00  dan
2239         * global_setup.c, classes/pmc2c.pl, include/parrot/global_setup.h,
2240         include/parrot/pmc.h: First step in dynamically loading PMC classes
2242 2002-01-31 19:38  dan
2244         * Makefile.in: Dependencies in the Makefile are currently too broad
2245         brush.  I don't enjoy waiting for everything to recompile every
2246         time I try to tweak the jit. The only file that #includes
2247         jit_struct.h is jit.c, so I feel that the Makefile dependencies
2248         should reflect this, and not cause a gratuitous recompile of
2249         everything.  There are probably other auto-generated header files
2250         that world+dog should not depend on.
2252         Courtesy of  Nicholas Clark <nick@unfortu.net>
2254 2002-01-31 19:03  gregor
2256         * Makefile.in, lib/Parrot/Test.pm, t/harness:
2257         Added two new make targets:
2259           * testp: Like 'make test', but passes -P to t/harness, so you get
2260         to
2261             see how broken predereferencing is.
2263           * testj: Like 'make test', but passes -j to t/harness, so you get
2264         to
2265             see how broken JIT is.
2267         Now, anyone who wants to see how good all three ways of running are
2268         can do so, at the cost of about 3x the time.
2270 2002-01-31 17:09  brentdax
2272         * embed.c, test_main.c: Implement the ARGV-in-P0 thing.
2274 2002-01-31 03:41  grunblatt
2276         * docs/jit.pod: Update jit.pod
2278 2002-01-31 03:20  grunblatt
2280         * jit/i386/core.jit: Hold this until we get an assemble tool,
2281         because of the different objdump problems.
2283 2002-01-31 03:13  grunblatt
2285         * Configure.pl, lib/Parrot/Jit/sun4-solaris.pm,
2286         lib/Parrot/Jit/sun4Generic.pm: Use dis intead of objdump.  Courtesy
2287         of: Jason Gloudon <perl@gloudon.com>
2289 2002-01-31 02:22  grunblatt
2291         * jit/i386/core.jit: Continue if the register is null
2293 2002-01-30 23:50  grunblatt
2295         * lib/Parrot/Jit/: alpha-bsd.pm, alpha-linux.pm, alphaGeneric.pm,
2296         i386-bsd.pm, i386-linux.pm, i386Generic.pm, sun4-solaris.pm,
2297         sun4Generic.pm: Move the AS and OBJDUMP constants to each os
2298         specific file.
2300 2002-01-30 23:35  mrjoltcola
2302         * io/io_win32.c: Change implementation of isatty on win32,
2303         suggested by Hong Zhang.
2305 2002-01-30 23:19  sfink
2307         * jit2h.pl, lib/Parrot/Op.pm, lib/Parrot/OpsFile.pm: Added
2308         Op::may_jump boolean method.
2310         Replaced jit2h's hardcoded pattern match to decide what ops might
2311         change the control flow.
2313 2002-01-30 22:13  dan
2315         * Configure.pl, MANIFEST, testparrotfuncptr.c: This patch allows
2316         parrot to mostly-build with tcc.  It allows one to skip compiling
2317         the JIT stuff (by specifying --define jitcapable=0), and it
2318         introduces a test program which gives a friendlier error in this
2319         case for compilers which are as picky as tcc is about function
2320         pointer conversion.
2322         If anyone figures out the proper way to cast these function
2323         pointers this may not be necessary.
2325         Courtesy of Josh Wilmes <josh@hitchhiker.org>
2327 2002-01-30 20:54  dan
2329         * docs/running.pod, lib/Parrot/Test.pm: I'm being anal again.
2330         Here's an update to docs/running.pod to better reflect the current
2331         state (both the test_parrot and assemble.pl improvements, plus
2332         documentation of a few more things.) And also a speling fiks
2333         s/POST_MORTERM/POST_MORTEM/.
2335         I could also replace some "perl foo" calls with "./foo" if someone
2336         wanted to set the executable flag in CVS on assemble.pl,
2337         optimize.pl, etc.
2339         Courtesy of Steve Fink <steve@fink.com>
2341 2002-01-30 20:43  dan
2343         * core.ops: find_global doesn't work, so stub out the wrong code
2345 2002-01-30 19:08  dan
2347         * lib/Parrot/Assembler.pm:  fixes the POD in Parrot::Assember so
2348         that perldoc
2349          can read it and just tidies it up generally. It also adds
2350         documentation
2351          for the constantize_integer and constantize_number functions.
2353         Courtesy of Simon Glover <scog@roe.ac.uk>
2355 2002-01-30 18:02  dan
2357         * assemble.pl, disassemble.pl, optimizer.pl, pbc2c.pl,
2358         classes/genclass.pl, classes/pmc2c.pl,
2359         languages/scheme/Scheme/Test.pm:  Many of the Perl scripts in the
2360         distribution (including assemble.pl !)
2361          can no longer find the Parrot::* modules. Enclosed patch fixes
2362         (although
2363          it would be nice if there were an easier way to do this).
2365         Courtesy of  Simon Glover <scog@roe.ac.uk>
2367 2002-01-30 16:00  mrjoltcola
2369         * io/io_win32.c: Correct function calls for win32_fdopen and arg
2370         types.
2372 2002-01-30 15:50  mrjoltcola
2374         * io/io_unix.c: Minor bug fix for fdopen flag arg type.
2376 2002-01-30 15:42  grunblatt
2378         * pbc2c.pl, examples/assembly/Makefile: Updates related to moving
2379         files around
2381 2002-01-30 15:38  grunblatt
2383         * MANIFEST: Enclosed patch adds the new SPARC-based JIT files to
2384         the manifest,  and also puts it back into alphabetical order.
2386         Courtesy of: Simon Glover <scog@roe.ac.uk>
2388 2002-01-30 14:41  nicholas
2390         * embed.c: Patch from Simon Glover to clean up warnings where
2391         prototype is () not (void)
2393 2002-01-30 13:54  nicholas
2395         * include/parrot/embed.h, test_main.c: Add void as an explicit
2396         parameter in test_main.c's usage(), version(void) and embed.h's
2397         Parrot_new() Without these gcc moans: include/parrot/embed.h:34:
2398         warning: function declaration isn't a prototype
2400 2002-01-30 12:08  simon
2402         * lib/Parrot/.cvsignore:
2403         Ignore generated Perl modules.
2405 2002-01-30 12:07  simon
2407         * t/harness:
2408         Run the PMC tests as well.
2410 2002-01-30 12:04  simon
2412         * MANIFEST:
2413         Fix MANIFEST after recent t/pmc rejig.
2415 2002-01-30 11:42  simon
2417         * lib/Parrot/Test.pm:
2418         Report non-zero exit codes.
2420         Courtesy of: Michael G Schwern <schwern@pobox.com>
2422 2002-01-30 11:39  simon
2424         * t/op/rx.t:
2425         Skip final test, TODO doesn't work yet.
2427 2002-01-30 09:54  brentdax
2429         * docs/embed.pod: Leon Brocard was kind enough to explain to me how
2430         predereferencing works.
2432 2002-01-30 09:38  brentdax
2434         * docs/: embed.pod, parrot.pod: Document this newfangled embedding
2435         subsystem.
2437 2002-01-30 09:37  brentdax
2439         * include/parrot/embed.h: Fix a mistake, clear up a warning.
2441 2002-01-30 09:37  brentdax
2443         * config_h.in: Expose another flag for embedders.
2445 2002-01-30 05:07  jgoff
2447         * make_vtable_ops.pl, t/harness: Both files didn't know of the new
2448         location for Parrot/, and t/harness wasn't able to run the new
2449         op/pmc tests. Both problems fixed, so I think I'm going to declare
2450         the build suitable for public consumption.
2452 2002-01-30 04:34  robert
2454         * docs/Makefile.in: update for CVS movement
2456 2002-01-30 04:32  robert
2458         * Makefile.in: Adjust for CVS reorganization.  (This time, edit the
2459         .in file, not the real Makefile)
2461 2002-01-30 04:20  robert
2463         * Configure.pl, jit2h.pl, ops2c.pl, ops2pm.pl, pmc_pm.pl,
2464         vtable_h.pl, classes/pmc2c.pl, include/parrot/parrot.h: Updates
2465         related to moving files around
2467 2002-01-30 04:10  robert
2469         * MANIFEST: Update MANIFEST to reflect CVS reorg.
2471 2002-01-30 04:07  robert
2473         * Configure.pl: Add './lib' to our @INC because Parrot/* moved.
2475 2002-01-30 03:56  robert
2477         * Parrot/: .cvsignore, Assembler.pm, BuildUtil.pm, Op.pm,
2478         OpTrans.pm, OpsFile.pm, Optimizer.pm, PackFile.pm, String.pm,
2479         Test.pm, Vtable.pm, Jit/alpha-bsd.pm, Jit/alpha-linux.pm,
2480         Jit/alphaGeneric.pm, Jit/i386-bsd.pm, Jit/i386-linux.pm,
2481         Jit/i386-nojit.pm, Jit/i386Generic.pm, Jit/sun4-solaris.pm,
2482         Jit/sun4Generic.pm, OpLib/.cvsignore, OpTrans/C.pm,
2483         OpTrans/CGoto.pm, OpTrans/CPrederef.pm, PackFile/ConstTable.pm,
2484         PackFile/Constant.pm, PackFile/FixupTable.pm: Moved Parrot/* to
2485         lib/Parrot/
2487 2002-01-30 03:46  robert
2489         * languages/miniperl/miniperlc: renamed to mpc
2491 2002-01-30 03:45  robert
2493         * t/op/: pmc.t, pmc_array.t, pmc_perlarray.t, pmc_perlhash.t,
2494         pmc_perlstring.t: Moved to t/op/pmc/
2496 2002-01-30 03:40  robert
2498         * include/parrot/register_funcs.h: Renamed to regfuncs.h
2500 2002-01-30 03:14  jgoff
2502         * classes/perlarray.pmc, t/op/pmc_perlarray.t, t/pmc/perlarray.t:
2503         Fixed some problems with PerlArray and added tests.  Previously,
2504         only integers could be accessed by negative indices.  After this
2505         change, all basic types can be accessed by negative indices, and
2506         they can also be set at negative indices.
2508 2002-01-29 22:13  brentdax
2510         * TODO: Just look at the stupid diff.
2512 2002-01-29 21:53  simon
2514         * TODO, docs/vtables.pod:
2515         New TODO, and tiny addition to vtables.pod
2517 2002-01-29 21:47  mrjoltcola
2519         * include/parrot/io.h, io/io_unix.c: Minor bug fix in io_unix.
2521 2002-01-29 21:38  mrjoltcola
2523         * Makefile.in: Makefile.in tweak for io depend.
2525 2002-01-29 21:15  brentdax
2527         * embed.c: Fix a segfault and some profiling formatting nits.
2529 2002-01-29 20:54  brentdax
2531         * pmc.c: Oops.
2533 2002-01-29 20:50  brentdax
2535         * pmc.c, include/parrot/exceptions.h: Exceptions are better than
2536         segfaults.
2538 2002-01-29 20:17  mrjoltcola
2540         * interpreter.c, core.ops, io.ops: CVS missed this.
2542 2002-01-29 20:17  mrjoltcola
2544         * io/io.c: These should have gone in Sunday with the rest. CVS is
2545         out to get me.
2547 2002-01-29 18:39  brentdax
2549         * platforms/win32.h: Fix Win32 whoops.
2551 2002-01-29 18:29  brentdax
2553         * embed.c, include/parrot/embed.h: A couple minor embedding fixes.
2555 2002-01-29 17:51  simon
2557         * MANIFEST, Makefile.in, config_h.in, embed.c, test_main.c,
2558         include/parrot/embed.h, include/parrot/parrot.h:
2559         Embedding support. Cool.
2561         Courtesy of: <brentdax@cpan.org>
2563 2002-01-29 15:40  grunblatt
2565         * Configure.pl: Detect if we can use "objdump".  Courtesy of: Jason
2566         Gloudon <perl@gloudon.com>
2568 2002-01-29 14:42  simon
2570         * include/parrot/parrot.h:
2571         Platform stuff has to be included *after* system headers.
2573 2002-01-29 14:05  grunblatt
2575         * interpreter.c, jit.c, Parrot/Jit/sun4-solaris.pm,
2576         Parrot/Jit/sun4Generic.pm, lib/Parrot/Jit/sun4-solaris.pm,
2577         lib/Parrot/Jit/sun4Generic.pm, include/parrot/jit.h,
2578         jit/sun4/core.jit, jit/sun4/lib.jit, jit/sun4/string.jit: Added
2579         support for SPARC.  Courtesy of: Jason Gloudon <perl@gloudon.com>
2581 2002-01-29 10:56  simon
2583         * platforms/generic.h:
2584         If we don't have a S_ISREG, produce something close to it.
2586 2002-01-29 06:01  dan
2588         * MANIFEST, README, LICENSES/Artistic: Finally added licenses
2590 2002-01-29 04:38  jgoff
2592         * classes/array.pmc: Forgot to remove some C++-isms from the
2593         get_{foo}_index routines.
2595 2002-01-29 04:26  jgoff
2597         * MANIFEST, Makefile.in, global_setup.c, classes/Makefile.in,
2598         classes/array.pmc, include/parrot/pmc.h, t/op/pmc_array.t,
2599         t/pmc/array.t: Added array class that languages other than perl can
2600         use for a basis.  It has no features like preextension, and the
2601         array index starts at 0.
2603         MANIFEST - added classes/array.pmc and t/op/pmc_array.t Makefile.in
2604         and classes/Makefile.in - Added array.pmc to the makefile.
2605         (Assuming rules like .pmc.o are portable (or even possible) I might
2606         alter classes/Makefile.in to autobuild the appropriate files.
2608 2002-01-29 02:32  dan
2610         * MANIFEST, Parrot/Test.pm, lib/Parrot/Test.pm,
2611         lib/Test/Builder.pm, lib/Test/More.pm, lib/Test/Simple.pm,
2612         lib/Test/Utils.pm, t/op/interp.t, t/op/macro.t, t/op/pmc.t,
2613         t/op/rx.t, t/op/stacks.t, t/pmc/pmc.t:
2614             Update to Test::More 0.41 which adds Test::Builder
2616             Delete the vestigal Test::Utils
2618             Change Parrot::Test so it uses Test::Builder instead of Evil
2619         Wrappers
2620             around Test::More
2622             output_* now returns whether the test passes or fails
2624             Parrot::Test no longer exports Test::More's functions.  Instead
2625         they
2626             can simply be used together.  The few tests which used
2627         Test::More
2628             features (ie. skip) have 'use Test::More' added.
2630             I ditched the export_to_level() crutch.  Do we expect parrot to
2631         work on
2632             5.004?  (literally 5.004, not 5.004_04)
2634         Courtesy of Michael G Schwern <schwern@pobox.com>
2636 2002-01-28 21:04  dan
2638         * docs/overview.pod:  There is no opcodes.pod; I'm assuming the
2639         pointer should actually be to
2640          parrot_assembly.pod, as the canonical documentation.
2642         Courtesy of Simon Glover <scog@roe.ac.uk>
2644 2002-01-28 20:21  dan
2646         * languages/jako/jakoc, t/op/stacks.t: Toss the last traces of
2647         clone[inps]
2649 2002-01-28 19:18  dan
2651         * core.ops, register.c: clone[insp] is dead
2653 2002-01-28 17:46  grunblatt
2655         * Parrot/Jit/i386Generic.pm, lib/Parrot/Jit/i386Generic.pm,
2656         jit/i386/core.jit: Fix to make the jit work in linux yet again.
2658 2002-01-28 16:45  dan
2660         * MANIFEST, README.OS_X: Added Mac OS X specific readme documenting
2661         the requirement for fink at the moment.
2663 2002-01-28 15:59  simon
2665         * test_main.c:
2666         People might try and run a directory file, with spectacular
2667         results.  We don't want that. No.
2669 2002-01-28 14:58  doughera
2671         * core.ops: Avoid C++-style comments.
2673 2002-01-28 14:16  grunblatt
2675         * jit.c, io/io.c: Changed jit.c to fit the way registers are
2676         accessed.  Readded the pio_(stdin|stdout|stderr) to make builds
2677         work again.
2679 2002-01-28 13:47  doughera
2681         * include/parrot/register.h: Avoid C++-style comment.
2683 2002-01-28 06:03  dan
2685         * MANIFEST, core.ops, interpreter.c, key.c, register.c, trace.c,
2686         Parrot/OpTrans/C.pm, Parrot/OpTrans/CGoto.pm,
2687         lib/Parrot/OpTrans/C.pm, lib/Parrot/OpTrans/CGoto.pm,
2688         docs/parrot_assembly.pod, include/parrot/interpreter.h,
2689         include/parrot/parrot.h, include/parrot/regfuncs.h,
2690         include/parrot/register.h, include/parrot/register_funcs.h,
2691         include/parrot/string.h, include/parrot/string_funcs.h: Registers
2692         are now stored in the interpreter structure itself, rather than
2693         just a pointer to the top of the register structure. Pushes and
2694         pops now involve memcpys, but register access has one fewer
2695         dereference.
2697         Fails four of the register stack tests, though, so not perfect.
2698         Needs fixing, but this is a good place to start.
2700 2002-01-28 04:40  mrjoltcola
2702         * test_main.c: cvs commit missed this. ??
2704 2002-01-28 04:27  mrjoltcola
2706         * examples/assembly/io1.pasm, include/parrot/exceptions.h,
2707         include/parrot/interpreter.h, include/parrot/io.h, io/io.c,
2708         io/io_stdio.c, io/io_unix.c, io/io_win32.c: ParrotIO local to each
2709         interpreter now (at least in theory).  IO handle array added.  Misc
2710         bug fixes in layer handling.  Changed any IO_ constants to PIO_ so
2711         we don't conflict         with system libraries.  Still have broken
2712         stuff in win32 and stdio layer.
2714 2002-01-28 04:01  mrjoltcola
2716         * include/parrot/chartype.h: Typo in chartype.h include guard.
2718 2002-01-28 03:41  mrjoltcola
2720         * t/op/interp.t: Fix flag for interp so we don't get "info"
2721         messages which break tests.
2723 2002-01-28 01:54  dan
2725         * include/parrot/string.h: A few more buffer/string flags
2727 2002-01-27 11:33  nicholas
2729         * chartypes/unicode.c: Cast unsigned argument to int in call to
2730         isdigit to silence gcc warning.
2732 2002-01-26 23:18  grunblatt
2734         * Parrot/Jit/i386Generic.pm, lib/Parrot/Jit/i386Generic.pm: Turn
2735         off that flag.
2737 2002-01-26 23:17  grunblatt
2739         * Parrot/Jit/i386Generic.pm, lib/Parrot/Jit/i386Generic.pm,
2740         jit/i386/core.jit: [no log message]
2742 2002-01-26 22:18  simon
2744         * jit/i386/core.jit:
2745         Jumping to 0x0 is a recipe for segfaults.
2747 2002-01-26 18:35  simon
2749         * t/harness:
2750         Allow user to select which tests to harness
2752         Courtesy of: Nicholas Clark <nick@unfortu.net>
2754 2002-01-26 17:20  grunblatt
2756         * Parrot/Jit/i386-linux.pm, Parrot/Jit/i386Generic.pm,
2757         lib/Parrot/Jit/i386-linux.pm, lib/Parrot/Jit/i386Generic.pm: Patch
2758         to make the jit work in linux again.
2760 2002-01-26 16:52  dan
2762         * Configure.pl, hints/darwin.pl: Add -Wno-shadow, as Darwin's
2763         headers can't cope with this. Darwin-only
2765 2002-01-26 16:04  dan
2767         * include/parrot/parrot.h: Quick note to remind folks that this
2768         isn't the file they're looking for if they're writing extensions or
2769         embedding parrot.
2771         Courtesy of Andy Dougherty <doughera@lafayette.edu>
2773 2002-01-26 00:41  mrjoltcola
2775         * MANIFEST: Oopsy.
2777 2002-01-26 00:37  mrjoltcola
2779         * docs/ParrotFAQ.htm: Parrot FAQ : Created and maintained by Adam
2780         Turoff
2782 2002-01-25 01:31  grunblatt
2784         * jit/alpha/core.jit: There is no neg or fneg.
2786 2002-01-25 01:27  grunblatt
2788         * core.ops, Parrot/Jit/alphaGeneric.pm, Parrot/Jit/i386Generic.pm,
2789         lib/Parrot/Jit/alphaGeneric.pm, lib/Parrot/Jit/i386Generic.pm,
2790         jit/alpha/core.jit, jit/i386/core.jit, t/op/integer.t,
2791         t/op/number.t: Added Parrot_neg.  Erase t.s
2793 2002-01-24 23:26  dan
2795         * interpreter.c: Best make sure unused elements are NULL
2797 2002-01-24 23:24  dan
2799         * interpreter.c: Fix stupid thinko
2801 2002-01-24 18:37  doughera
2803         * Makefile.in: Add a few missing dollar signs in the lifetest
2804         section so that ${exe} and the like get properly interpolated.
2806 2002-01-24 18:15  mrjoltcola
2808         * docs/: .cvsignore, Makefile.in, parrot.pod: Fix pod generation
2809         for io.ops file. Add reference to it in parrot.pod.  Courtesy of
2810         Simon Glover <scog@roe.ac.uk>
2812 2002-01-24 06:43  mrjoltcola
2814         * io/io_stdio.c: Oops.
2816 2002-01-24 06:34  mrjoltcola
2818         * include/parrot/io.h, io/TODO, io/io.c, io/io_stdio.c: Did a bit
2819         of work on the buffering layer.  Decided to use shared read/write
2820         buffer (as do most implementations) for now since its the simplest
2821         way to keep everything synced, (flush on seeks, flush read on
2822         writes, etc.)
2824 2002-01-24 03:38  mrjoltcola
2826         * test_main.c: Cleaned up option handling code a bit for main().
2828 2002-01-23 23:22  dan
2830         * interpreter.c, include/parrot/interpreter.h,
2831         include/parrot/resources.h: Now each interpreter gets its own hash
2832         for globals.
2834 2002-01-23 20:45  dan
2836         * Configure.pl: Fix a warning when there's no - in an architecture
2838 2002-01-22 23:57  grunblatt
2840         * docs/running.pod: [no log message]
2842 2002-01-22 20:29  doughera
2844         * KNOWN_ISSUES: long doubles don't work on SPARC either.  It
2845         appears to be a generic problem (if sizeof(long double) >
2846         sizeof(double)), not an x86-specific one.
2848 2002-01-22 16:57  doughera
2850         * runops_cores.c: Change variable name from time to starttime to
2851         avoid gcc warning about variable name shadowing.
2853 2002-01-22 16:55  doughera
2855         * classes/pmc2c.pl: Include class_init prototype too.
2857 2002-01-22 16:01  doughera
2859         * MANIFEST: [no log message]
2861 2002-01-22 01:04  ajgough
2863         * global_setup.c, classes/default.pmc, classes/intqueue.pmc,
2864         classes/parrotpointer.pmc, classes/perlarray.pmc,
2865         classes/perlhash.pmc, classes/perlint.pmc, classes/perlnum.pmc,
2866         classes/perlstring.pmc, classes/perlundef.pmc, classes/pmc2c.pl,
2867         include/parrot/global_setup.h: Patch from Nick Clark to quieten
2868         warnings from pmc files.  Message-ID:
2869         <20020121224719.GE1726@Bagpuss.unfortu.net>
2871 2002-01-22 00:53  ajgough
2873         * test_main.c: Clears up a couple of warnings in test_main.c.
2874         Thanks to Nick Clark.  Message-ID:
2875         <20020121190457.GB1726@Bagpuss.unfortu.net>
2877 2002-01-22 00:47  ajgough
2879         * string.c, chartypes/unicode.c, chartypes/usascii.c,
2880         include/parrot/chartype.h: Cause all codepoints to be treated as
2881         UNITVALS, and get_digit to return INTVAL, just in case. (Thanks to
2882         Nick Clark, see also: Message-ID:
2883         <20020121214137.GC2371@Bagpuss.unfortu.net> )
2885 2002-01-22 00:24  dan
2887         * key.c: We do mandate an ANSI conformant C compiler, don't we?
2889         Appended patch cures these warnings:
2891         key.c: In function `debug_key': key.c:29: warning: int format,
2892         INTVAL arg (arg 3) key.c:33: warning: int format, INTVAL arg (arg
2893         3) key.c:33: warning: int format, INTVAL arg (arg 4) key.c:36:
2894         warning: int format, INTVAL arg (arg 3) key.c:36: warning: int
2895         format, INTVAL arg (arg 4)
2897         Courtesy of Nicholas Clark <nick@unfortu.net>
2899 2002-01-21 12:41  mrjoltcola
2901         * MANIFEST, io.ops: For some reason cvs commit didn't get this, may
2902         be clock skew.
2904 2002-01-21 06:37  mrjoltcola
2906         * io/io.c: Cleanup a warning
2908 2002-01-21 06:28  mrjoltcola
2910         * examples/assembly/io1.pasm, include/parrot/io.h, io/io.c,
2911         io/io_stdio.c, io/io_unix.c, io/io_win32.c: Added 32/64 bit seek
2912         ops. Various other IO twiddlings.
2914 2002-01-21 03:25  grunblatt
2916         * Makefile.in: Use $jitcpuarch instead of $cpuarch.  Thanks to
2917         Melvin Smith for the catch up.
2919 2002-01-20 23:13  sfink
2921         * stacks.c: Fixed logic errors, need tests
2923 2002-01-20 22:17  brentdax
2925         * rx.c, rx.ops, include/parrot/rx.h, t/op/rx.t: Make /m work and
2926         prepare for /i to work.
2928 2002-01-20 20:52  grunblatt
2930         * Configure.pl, MANIFEST, Makefile.in, interpreter.c, jit.c,
2931         jit2h.pl, Parrot/Jit/alpha-bsd.pm, Parrot/Jit/alpha-linux.pm,
2932         Parrot/Jit/alphaGeneric.pm, Parrot/Jit/i386-bsd.pm,
2933         Parrot/Jit/i386-linux.pm, lib/Parrot/Jit/alpha-bsd.pm,
2934         lib/Parrot/Jit/alpha-linux.pm, lib/Parrot/Jit/alphaGeneric.pm,
2935         lib/Parrot/Jit/i386-bsd.pm, lib/Parrot/Jit/i386-linux.pm,
2936         Parrot/Jit/i386Generic.pm, lib/Parrot/Jit/i386Generic.pm,
2937         include/parrot/jit.h, jit/alpha/core.jit, jit/alpha/lib.jit,
2938         jit/alpha/string.jit:
2939         - Added support for ALPHA, by now linux and bsd.
2941         - Reduced jit2h.pl execution time by precompiling the call to the
2942         unimplemented op.
2944         - Reduced the duplicated code in Parrot/Jit/*.pm by adding
2945         Parrot/Jit/${cpuarch}Generic.pm
2947         - Changed the way to detect quads to what is written in "man
2948         perlfunc".
2950 2002-01-20 17:23  brentdax
2952         * rx.ops: There's no such thing as rx_allocateinfo.
2954 2002-01-19 08:26  brentdax
2956         * pbc2c.pl: Stop this stupid "hard-code the new oplib" stuff.
2958 2002-01-19 07:12  mrjoltcola
2960         * MANIFEST, core.ops, io.ops, pbc2c.pl: Separate pure ParrotIO ops
2961         into io.ops, leave the STDIO wrappers        in core.ops until they
2962         disappear.  Added debug op for switching on VM debug flag
2964 2002-01-19 01:55  mrjoltcola
2966         * include/parrot/io.h, io/TODO, io/io.c, io/io_stdio.c,
2967         io/io_unix.c, io/io_win32.c: Added a few more Win32 layer calls
2969 2002-01-19 00:55  brentdax
2971         * Makefile.in, rx.c, rx.ops, rxstacks.c, include/parrot/rx.h,
2972         include/parrot/rxstacks.h: Add regex-specific stacks for
2973         efficiency.
2975 2002-01-18 23:58  dan
2977         * Configure.pl: I think the optimal fix here is simply to remove
2978         -ansi -pedantic.  -ansi may well have some uses, but even the gcc
2979         man pages say "There is no reason to use this option [-pedantic];
2980         it exists only to satisfy pedants."
2982         Courtesy of Andy Dougherty <doughera@lafayette.edu>
2984 2002-01-18 23:23  dan
2986         * MANIFEST, docs/parrot.pod, docs/running.pod: This patch add
2987         docs/running.pod, which lists the various executables Parrot
2988         currently includes, examples of running them, and mentions of where
2989         they fail to work. It's more of a cry for help than a useful
2990         reference. :-) I've been having trouble recently when making
2991         changes in figuring out whether I broke anything, because any
2992         non-default way of running the system seems to be already broken. I
2993         can't tell what brokenness is expected and what isn't.
2995         Courtesy of  Steve Fink <steve@fink.com>
2997 2002-01-15 22:13  brentdax
2999         * include/parrot/rx.h, rx.c, rx.ops: Remove the last vestiges of
3000         substring use and enhance performance.
3002 2002-01-15 21:03  ajgough
3004         * string.c: Fix problem with string_transcode, &dest not being
3005         updated if src was already in desired encoding.
3007 2002-01-15 16:54  brentdax
3009         * rx.c, rx.ops, include/parrot/rx.h: Hunt down and destroy
3010         warnings.  Leaves only one warning, at rx.ops line 409, that I
3011         can't manage to get rid of.
3013 2002-01-15 16:50  dan
3015         * pbc2c.pl: Pointer arithmetic not quite right in the generated
3016         code.  Also patches pbc2c.pl to work with rx.ops.
3018         Courtesy of Jason Gloudon <perl@gloudon.com>
3020 2002-01-15 16:15  dan
3022         * classes/Makefile.in: All the C files in classes/ weren't being
3023         compiled with an of the gcc warnings flags. With this patch they
3024         are, and there are an awful lot of warnings, more than I could hope
3025         to understand and clear up (within any sensible time period before
3026         submitting a rash of patches, by which time everyone else would
3027         have moved the code on)
3029         Courtesy of Nicholas Clark <nick@unfortu.net>
3031 2002-01-15 16:10  dan
3033         * core.ops, ops2c.pl, Parrot/Op.pm, Parrot/OpTrans.pm,
3034         Parrot/OpsFile.pm, lib/Parrot/Op.pm, lib/Parrot/OpTrans.pm,
3035         lib/Parrot/OpsFile.pm, Parrot/OpTrans/C.pm,
3036         Parrot/OpTrans/CGoto.pm, Parrot/OpTrans/CPrederef.pm,
3037         lib/Parrot/OpTrans/C.pm, lib/Parrot/OpTrans/CGoto.pm,
3038         lib/Parrot/OpTrans/CPrederef.pm, chartypes/unicode.c,
3039         chartypes/usascii.c: This patch adds a few more macros for .ops
3040         files to use. In addition to the existing
3042          goto OFFSET(...)
3043          goto ADDRESS(...)
3044          goto POP()
3045          goto NEXT()
3047         it adds
3049          expr OFFSET(...)
3050          expr ADDRESS(...)
3051          expr POP()
3052          expr NEXT()
3054         This is intended mainly for use in helper functions in .ops files,
3055         but also for ops that need to eg push the address of the next
3056         opcode onto a stack. The only place this currently happens (outside
3057         of my private code) is in the bsr opcode, which previously
3058         hardcoded the computation.
3060         This patch also makes ops2c.pl move the CUR_OPCODE #define a bit
3061         higher in the generated file so that it can be used by static
3062         functions in the preamble.
3064         Finally, I ran into a parentheses matching problem -- should goto
3065         OFFSET(...) rewrite    \bgoto\s+OFFSET\((.*)\) or
3066         \bgoto\s+OFFSET\((.*?)\)
3068         It was done inconsistently for the different calculations, and of
3069         course neither are correct because you really want matching
3070         parentheses. But that seems like too much bother. (Currently,
3071         there's only one place that uses anything other than $n in the
3072         parentheses, and that's the enternative() op.) So I made them all
3073         .*? but emulated recent POD by also allowing (( ... )) (that's two
3074         parenthesis with a space padding the body.)
3076         The generated core_ops.c and core_ops_prederef.c files after this
3077         patch are identical except for the CUR_OPCODE and REL_PC macros
3078         getting moved a little higher, and the bsr in the regular path (not
3079         prederef) uses 'CUR_OPCODE' instead of the hardcoded 'cur_opcode'.
3081         In summary, this is a big wad of meaningless changes for the
3082         current code. But it will make adding some opcodes easier in the
3083         future, and cleans up a small nit in the current bsr.
3085         Courtesy of Steve Fink <steve@fink.com>
3087 2002-01-15 08:48  brentdax
3089         * include/parrot/rx.h: Bitmaps can now include chars >255 (well,
3090         sort of).
3092 2002-01-15 08:45  brentdax
3094         * rx.c, rx.ops: Bitmaps can now include chars >255 (well, sort of).
3096 2002-01-15 05:00  brentdax
3098         * rx.ops: Speed up rx_literal--roughly doubles benchmark
3099         performance.
3101 2002-01-14 20:18  dan
3103         * vtable.tbl, vtable_h.pl: Clean up a zillion warnings
3105         Courtesy of Nicholas Clark <nick@unfortu.net>
3107 2002-01-14 20:03  dan
3109         * Configure.pl, MANIFEST, Makefile.in, core.ops, exceptions.c,
3110         global_setup.c, interpreter.c, key.c, ops2c.pl, register.c,
3111         runops_cores.c, rx.ops, stacks.c, string.c, test_main.c, trace.c,
3112         chartypes/unicode.c, chartypes/usascii.c, classes/default.pmc,
3113         classes/parrotpointer.pmc, classes/perlarray.pmc,
3114         classes/perlhash.pmc, classes/perlint.pmc, classes/perlnum.pmc,
3115         classes/perlstring.pmc, classes/perlundef.pmc,
3116         encodings/singlebyte.c, encodings/utf16.c, encodings/utf32.c,
3117         encodings/utf8.c, include/parrot/exceptions.h, include/parrot/io.h,
3118         include/parrot/parrot.h, include/parrot/rx.h, io/io_stdio.c,
3119         io/io_win32.c, platforms/win32.c, platforms/win32.h, t/op/pmc.t,
3120         t/op/pmc_perlhash.t, t/op/rx.t, t/pmc/perlhash.t, t/pmc/pmc.t: This
3121         patch cleans up most of the MSVC-warnings when using warning level
3122         4 (the highest, one above the default level 3). It turns off two
3123         level-4 warnings for 'unreferenced formal parameter' and 'named
3124         type definition in parentheses', the latter of which was turning up
3125         warnings in MS VC headers.  Level 4 warnings also helped me find a
3126         couple of other lurking bugs in the parrot code.
3128         Replaces the various fprintf/exit combos with calls to
3129         internal_exception, which uses var_args to emulate printf. Various
3130         exception types were added as well. These are probably temporary
3131         until a real exception system arrives.
3133         Fixed some places in the IO code where wrong functions were being
3134         called, or put into the vtable.
3136         Courtesy of "Michel Lambert" <mlambert@legendent.com>
3138 2002-01-14 19:00  dan
3140         * MANIFEST: D'oh! Forgot a file.
3142         Courtesy of Andy Dougherty <doughera@lafayette.edu>
3144 2002-01-14 18:44  brentdax
3146         * rx.c, rx.ops, include/parrot/rx.h: Use bitmaps where it makes
3147         sense (and a few other enhancements to regexes).
3149 2002-01-14 07:07  brentdax
3151         * interpreter.c, runops_cores.c, test_main.c,
3152         include/parrot/interpreter.h: Make profiling a little more useful.
3154 2002-01-13 19:44  dan
3156         * Configure.pl: Turn off unsed things warnings for now
3158 2002-01-13 19:39  dan
3160         * key.c, classes/perlarray.pmc: key.c:   intialize KEY.keys
3162         classes/perlarray.c:  * get_string: is casting
3163         SELF->cache.struct_val to a STRING*,    while all other methods are
3164         using it as a KEY*; don't know    what a perlarray stringifies to,
3165         so replacing with NULL  * get_bool: the default behaviour does not
3166         look right to me
3168         Courtesy of "Mattia Barbon" <mbarbon@dsi.unive.it>
3170 2002-01-13 19:37  dan
3172         * Makefile.in, classes/Makefile.in: Makefile.in:   (Re)add ld_debug
3173         flags to LDFLAGS, so that Configure.pl --debugging   works with
3174         MSVC
3176         classes/Makefile.in   make easier to add pmb2c.pl flags to all
3177         pmc2c calls
3179         Courtesy of "Mattia Barbon" <mbarbon@dsi.unive.it>
3181 2002-01-13 19:36  dan
3183         * io/io_win32.c:   according to my MSVC docs, you should use
3184         _tcslen only after
3185           #including tchar.h
3187         Courtesy of  "Mattia Barbon" <mbarbon@dsi.unive.it>
3189 2002-01-13 19:35  dan
3191         * docs/intro.pod: Doc tweak.
3193         Courtesy of Simon Glover <scog@roe.ac.uk>
3195 2002-01-13 19:34  dan
3197         * t/: op/pmc_perlstring.t, pmc/perlstring.t:  Enclosed test checks
3198         that
3200           if Px, ...
3202          works with PerlString PMCs; these should be false if they are "",
3203         0, or
3204          are undefined, and true in every other case.
3206         Courtesy of Simon Glover <scog@roe.ac.uk>
3208 2002-01-13 19:23  dan
3210         * Configure.pl, config_h.in, core.ops, classes/perlnum.pmc: Change
3211         NUMVAL_FMT to FLOATVAL_FMT.
3213         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3215 2002-01-13 17:45  jgoff
3217         * Makefile.in, global_setup.c, classes/Makefile.in,
3218         classes/intqueue.pmc, include/parrot/pmc.h, t/op/pmc.t,
3219         t/pmc/pmc.t: IntQueue is for an upcoming article on perl.com on
3220         designing your own classes.
3222 2002-01-13 08:47  simon
3224         * interpreter.c, Parrot/OpTrans/CPrederef.pm,
3225         lib/Parrot/OpTrans/CPrederef.pm:
3226         Fix bsr in prederef mode.
3228         Courtesy of: Jason Gloudon <perl@gloudon.com>
3230 2002-01-12 15:33  dan
3232         * interpreter.c, key.c, packfile.c, register.c, resources.c,
3233         string.c, encodings/singlebyte.c, encodings/utf32.c,
3234         include/parrot/parrot.h, io/io.c, io/io_stdio.c, io/io_unix.c:
3235         Silence most of the unused variable warnings.
3237         Courtesy of Nicholas Clark <nick@unfortu.net>
3239 2002-01-12 15:18  dan
3241         * rx.ops: This patch fixes a warning and also changes an 'int' to
3242         an 'INTVAL'.  All tests should pass on Solaris.
3244         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3246 2002-01-12 15:13  dan
3248         * interpreter.c, string.c, test_main.c, classes/parrotpointer.pmc,
3249         examples/assembly/life.pasm, include/parrot/interpreter.h,
3250         include/parrot/io.h, io/io.c, io/io_stdio.c, io/io_unix.c,
3251         io/io_win32.c: More IO work. (Plus some misc twiddles)
3253         Courtesy of Melvin Smith <mrjoltcola@mindspring.com>
3255 2002-01-12 01:14  dan
3257         * include/parrot/string.h: fix a missing name
3259 2002-01-12 00:39  grunblatt
3261         * include/parrot/string.h: Few typos.
3263 2002-01-12 00:16  grunblatt
3265         * jit.c, jit2h.pl, jit/i386/core.jit: Added support for opcodes
3266         that change the program control flow.
3268 2002-01-11 23:53  brentdax
3270         * classes/parrotpointer.pmc: Tell the GC to keep its hands out of a
3271         ParrotPointer's guts.
3273 2002-01-11 23:03  dan
3275         * include/parrot/string.h: flags for the buffers, for GC
3277 2002-01-11 22:31  dan
3279         * include/parrot/pmc.h: PMC flag docs. Those'd be good...
3281 2002-01-11 22:21  dan
3283         * include/parrot/pmc.h: Started with PMC flags
3285 2002-01-11 19:33  dan
3287         * config_h.in, memory.c, resources.c, string.c,
3288         include/parrot/resources.h: Beginnings of a memory allocation/gc
3289         system. Without the GC part.
3291 2002-01-11 18:05  dan
3293         * core.ops: Make sure constant pushes are right on mixed 32/64 bit
3294         systems
3296         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3298 2002-01-11 17:50  dan
3300         * core.ops, pbc2c.pl, Parrot/OpTrans/CGoto.pm,
3301         lib/Parrot/OpTrans/CGoto.pm, include/parrot/interpreter.h: Here is
3302         a patch that makes pbc2c generated code work with the bsr opcode.
3303         It creates a new opcode 'enternative', and uses this to support a
3304         mixed model of interpretation and execution of compiled C code.
3306         Courtesy of Jason Gloudon <perl@gloudon.com>
3308 2002-01-11 17:48  dan
3310         * Makefile.in: Add life as a potential .exe target
3312 2002-01-11 17:30  dan
3314         * include/parrot/resources.h: Start of arena stuff for GC
3316 2002-01-11 05:34  brentdax
3318         * rx.ops: Docs modifications.
3320 2002-01-11 04:19  brentdax
3322         * rx.ops, include/parrot/rx.h: Remove unnecessary evilness from
3323         regular expressions.
3325 2002-01-11 03:44  grunblatt
3327         * jit/i386/core.jit: off by one.
3329 2002-01-11 02:25  dan
3331         * Makefile.in, examples/assembly/life.pasm: Tweak to life benchmark
3333         Courtesy of Steve Fink <steve@fink.com>
3335 2002-01-11 00:32  brentdax
3337         * MANIFEST: Forgot to put parrotpointer.pmc in the MANIFEST.
3339 2002-01-10 23:22  ajgough
3341         * string.c, docs/strings.pod: Removed all the nul termination code,
3342         as this is in general a bad idea.  Note added to docs/strings.pod
3343         to warn people away from assuming termination.
3345 2002-01-10 23:14  dan
3347         * core.ops, interpreter.c, jit.c, rx.c, rx.ops, stacks.c,
3348         testparrotsizes_c.in, include/parrot/interpreter.h,
3349         include/parrot/rx.h, include/parrot/stacks.h: Much nicer stack
3350         implementation
3352         Courtesy of Steve Fink <steve@fink.com>
3354 2002-01-10 22:48  dan
3356         * core.ops: Fix 'basic' test 1 for sizeof(opcode_t) !=
3357         sizeof(INTVAL)
3359         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3361 2002-01-10 22:46  dan
3363         * key.c, classes/perlhash.pmc, t/op/pmc_perlhash.t,
3364         t/pmc/perlhash.t:  Well, actually two bugs.
3366          The first is an off-by-one error in key.c than can cause parrot
3367          to segfault if hash % NUM_BUCKETS happens to be zero.
3369          The other is a bug in the PerlHash init() code that causes new
3370         PerlHash
3371          PMCs to start with the wrong size.
3373          Both fixed below; also tests to prevent them recurring.
3375         Courtesy of Simon Glover <scog@roe.ac.uk>
3377 2002-01-10 22:30  dan
3379         * classes/default.pmc, classes/perlarray.pmc, t/op/pmc_perlarray.t,
3380         t/pmc/perlarray.t:  The enclosed patch allows one to use the if op
3381         with a PerlArray,
3383         Courtesy of Simon Glover <scog@roe.ac.uk>
3385 2002-01-10 21:31  dan
3387         * examples/assembly/life.pasm: Tweaked to be a benchmarkable thing
3389 2002-01-10 20:30  grunblatt
3391         * jit.c, jit2h.pl, Parrot/Jit/i386-bsd.pm,
3392         Parrot/Jit/i386-linux.pm, lib/Parrot/Jit/i386-bsd.pm,
3393         lib/Parrot/Jit/i386-linux.pm, jit/i386/core.jit, jit/i386/lib.jit:
3394         All the op codes that doesn't change the program control flow now
3395         work in the JIT by calling the code generated by the compiler when
3396         the op is not in core.jit TODO:     * Make all the ops that change
3397         the program control flow (and are not on core.jit) work.      *
3398         Remove the dispatch payload.
3400 2002-01-10 17:13  dan
3402         * classes/parrotpointer.pmc: This patch fixes parrotpointer.pmc,
3403         which tries to return 0 from a void function.
3405         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3407 2002-01-10 17:12  dan
3409         * t/op/macro.t: Skip tests, don't comment them out.
3411         Courtesy of Simon Glover <scog@roe.ac.uk>
3413 2002-01-10 17:10  dan
3415         * rx.c: This fixes a couple of nits in rx.c:
3417            1. There's no newline at the end, which makes gcc unhappy.
3418            2. We should use NULL, not 0 or "", for creating null pointers.
3420         Courtesy of Simon Glover <scog@roe.ac.uk>
3422 2002-01-10 17:09  dan
3424         * MANIFEST:  Adds rx.t, removes duplicated rx.c and puts everything
3425         back in
3426          alphabetical order.
3428         Courtesy of Simon Glover <scog@roe.ac.uk>
3430 2002-01-10 16:54  ajgough
3432         * resources.c: Made free_string check that there was a string to
3433         free.  In reponse to a bug spotted by Joshua Nye.
3435 2002-01-09 22:44  dan
3437         * global_setup.c: Forgot the setup
3439 2002-01-09 22:35  dan
3441         * rx.ops: Forgot this one
3443 2002-01-09 22:35  dan
3445         * MANIFEST, Makefile.in, rx.c, string.c, include/parrot/pmc.h,
3446         include/parrot/rx.h, t/op/rx.t: Preliminary regex implementation.
3447         Tests don't work, though.
3449         Courtesy of "Brent Dax" <brentdax@cpan.org>
3451 2002-01-09 21:48  dan
3453         * t/: op/pmc_perlarray.t, pmc/perlarray.t: Whoops, forgot that
3455 2002-01-09 21:22  dan
3457         * classes/Makefile.in, classes/parrotpointer.pmc, Makefile.in:
3458         Generic pointer holder class
3460         Courtesy of "Brent Dax" <brentdax@cpan.org>
3462 2002-01-09 21:19  dan
3464         * MANIFEST, classes/perlarray.pmc, t/op/pmc.t, t/pmc/pmc.t: Array
3465         patches.
3467 2002-01-09 19:54  dan
3469         * io/io_unix.c: Whoops. Forgot one
3471 2002-01-09 19:43  dan
3473         * key.c, classes/perlhash.pmc, t/op/pmc_perlhash.t,
3474         t/pmc/perlhash.t: Fix hash crash bugs
3476         Courtesy of Simon Glover <scog@roe.ac.uk>
3478 2002-01-09 19:13  dan
3480         * memory.c: Signedness whoops.
3482         Courtesy of Simon Glover <scog@roe.ac.uk>
3484 2002-01-09 18:23  dan
3486         * MANIFEST, Makefile.in, include/parrot/io.h, io/io.c, io/io_os.c,
3487         io/io_stdio.c, io/io_win32.c: Changes:
3489         -Minor layer cleanups -Win32 layer added (mostly stubs for now) but
3490         will be using the   Win32 API and company rather than the unix-ish
3491         fake ones.  -stdin/stdout/stderr Win32 specific code added. Rather
3492         than use   0,1,2, Microsoft says use GetStdHandle(), etc. so that
3493         stuff is   there. Soon we should be able to start using these
3494         rather than   fprintf(stderr, ...) and remove stdio linkage.
3496         Courtesy of <mrjoltcola@mindspring.com>
3498 2002-01-09 17:26  dan
3500         * test_main.c: Fixes bad code gen on x86.
3502         Courtesy of Josh Wilmes <josh@hitchhiker.org>
3504 2002-01-09 17:24  dan
3506         * Configure.pl, config_h.in, core.ops, key.c, classes/perlint.pmc,
3507         classes/perlnum.pmc: This patch adds macros to the config.h file
3508         for INTVAL and NUMVAL printf formats.
3510         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3512 2002-01-08 22:55  ajgough
3514         * docs/vtables.pod: Clarify what get_string should do.
3516 2002-01-08 20:05  dan
3518         * key.c: Keep comments in sync.
3520         Courtesy of Simon Glover <scog@roe.ac.uk>
3522 2002-01-08 19:50  dan
3524         * memory.c, include/parrot/memory.h: Need a realloc
3526 2002-01-08 17:24  gregor
3528         * .cvsignore, Configure.pl, Makefile.in:
3529         Added 'reconfig' make target and corresponding --reconfig option to
3530         Configure.pl, so its very easy to re-run Configure.pl with the last
3531         (command-line) options you passed it.
3533 2002-01-08 16:33  dan
3535         * core.ops, make_vtable_ops.pl, Parrot/OpsFile.pm,
3536         lib/Parrot/OpsFile.pm: Add in, out, and inout parameters to teh ops
3537         in core.ops. Potential help for optimizers and JITters.
3539         Courtesy of gregor@linux1.kennedytech.com
3541 2002-01-08 16:32  dan
3543         * key.c: Grab key length from the right spot
3545         Courtesy of "Peter Gibbs" <peter@emkel.co.za>
3547 2002-01-08 13:27  ajgough
3549         * test_main.c: Fix slight thinko in realloc usage for reading from
3550         stdin.
3552 2002-01-08 11:34  ajgough
3554         * test_main.c: Allow test_parrot to read bytecode stream from
3555         stdin, adds -f command line option, with "-f -" doing the stdin
3556         stuff.
3558 2002-01-08 06:34  jgoff
3560         * key.c, include/parrot/key.h: key.c - Added simple implementation
3561         of buckets.  include/parrot/key.h - Added enum_key_bucket type
3563 2002-01-08 03:21  jgoff
3565         * include/parrot/key.h: Added an undef type to the key structure,
3566         so we can delete keys without confusion.
3568 2002-01-07 22:09  dan
3570         * key.c, packfile.c, string.c, include/parrot/key.h,
3571         include/parrot/packfile.h, include/parrot/string.h: Fix whines
3572         about index being redefined
3574         Courtesy of Nick Clark
3576 2002-01-07 21:15  dan
3578         * ops2pm.pl: Don't allow the same ops lib to be included twice.
3580         Courtesy of Steve Fink <steve@fink.com>
3582 2002-01-07 20:48  dan
3584         * Parrot/Test.pm, lib/Parrot/Test.pm: Report useful info for test
3585         failures
3587         Courtesy of "Brent Dax" <brentdax@cpan.org>
3589 2002-01-07 20:43  dan
3591         * docs/intro.pod: Missing a comma
3593         Courtesy of "coral" <coral@eekeek.org>
3595 2002-01-07 20:41  dan
3597         * global_setup.c: Quiet a warning
3599         Courtesy of Simon Glover <scog@roe.ac.uk>
3601 2002-01-07 18:58  gregor
3603         * t/op/.cvsignore:
3604         Ignore intermediate test files.
3606 2002-01-07 17:01  gregor
3608         * ops2c.pl:
3609         Print a warning if an .ops file is mentioned more than once on the
3610         command line.
3612 2002-01-07 16:12  ajgough
3614         * t/: op/pmc_perlhash.t, pmc/perlhash.t: A couple more hash tests,
3615         these shouldn't fail.
3617 2002-01-07 15:15  simon
3619         * t/: op/pmc_perlhash.t, pmc/perlhash.t:
3620         Stop segfaults.
3622 2002-01-07 15:11  simon
3624         * key.c:
3625         Fix zero-termination bug in hash function.
3627 2002-01-07 13:37  ajgough
3629         * MANIFEST, t/op/pmc_perlhash.t, t/pmc/perlhash.t: Added
3630         pmc_perlhash.t, one test currently fails, one passes, yin-yang fun.
3632 2002-01-07 11:53  brentdax
3634         * Configure.pl: Fixes the + thing in prompts, plus adds a synonym
3635         (:add{foo}) and a new deleting thing (:rem{foo})
3637 2002-01-07 11:43  simon
3639         * Configure.pl:
3640         Gobble the + before concatenating.
3642 2002-01-07 03:53  dan
3644         * Makefile.in: Dependency fix for new ops setup.
3646 2002-01-07 03:33  jgoff
3648         * classes/perlarray.pmc: Add negative indices, and fix a small
3649         allocation problem.
3651 2002-01-06 23:54  ajgough
3653         * hints/os2.pl: Makes the hints file take account of ldflags and
3654         ccflags being split.  This hints file is still very specific to
3655         builds with gnu tools, but a proper solution can wait.   Thanks to
3656         Nick Burch.
3658 2002-01-06 22:12  dan
3660         * Makefile.in, ops2c.pl, Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm:
3661             -changes Parrot::OpLib::core's dependencies to reflect the new
3662         selectable ops files    -allows some of the special forms of 'goto'
3663         inside the PREAMBLE of an opcode file
3665         Courtesy of "Brent Dax" <brentdax@cpan.org>
3667 2002-01-06 19:59  simon
3669         * Makefile.in:
3670         *cough*
3672 2002-01-06 18:19  dan
3674         * classes/perlhash.pmc: Fix some type issues.
3676         Courtesy of Josh Wilmes <josh@hitchhiker.org>
3678 2002-01-06 18:03  dan
3680         * Configure.pl, Makefile.in: It adds a prompt to Configure asking
3681         for a list of opcode files to use.  The default is everything
3682         available except for obscure.ops.
3684         In addition, it makes it so that if your answer to a question
3685         starts with '+', it will concatenate it to the default.  For
3686         example:
3688         What C compiler do you want to use? [cl] +HAHAHA!!!
3690         will result in $PConfig{cc} eq "cl HAHAHA!!!".  While that example
3691         is not terribly useful, it is quite useful with things like
3692         command-line flags and the like.
3694         Finally, it contains a couple tweaks so that my syntax-highlighting
3695         editor recognizes some heredocs correctly.  :^)
3697         Courtesy of "Brent Dax" <brentdax@cpan.org>
3699 2002-01-06 17:59  dan
3701         * KNOWN_ISSUES, MANIFEST, README: Doc Patches
3703         Courtesy of "Bryan C. Warnock" <bwarnock@raba.com>
3705 2002-01-06 17:58  dan
3707         * MANIFEST:  We're missing a couple of files from the MANIFEST.
3709         Courtesy of Simon Glover <scog@roe.ac.uk>
3711 2002-01-06 17:57  dan
3713         * ops2c.pl, Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm:   1.
3714         Compiler directives, etc. in files other than core.ops will now
3715         work.   2.  Compiler warnings will now display the file and line
3716         number of the  opcode file.
3718         Courtesy of "Brent Dax" <brentdax@cpan.org>
3720 2002-01-06 17:52  dan
3722         * languages/jako/jakoc: Fix breakage caused by iton/ntoi going away
3724         Courtesy of Simon Glover <scog@roe.ac.uk>
3726 2002-01-06 17:36  dan
3728         * docs/intro.pod: Lots of updates
3730         Courtesy of Simon Glover <scog@roe.ac.uk>
3732 2002-01-06 02:34  gregor
3734         * interpreter.c:
3735         Add some internal documentation on the theory of operation of the
3736         prederef code.
3738 2002-01-06 02:17  gregor
3740         * interpreter.c:
3741         Removed unnecessary include.
3743 2002-01-05 12:37  simon
3745         * classes/.cvsignore:
3746         Ignore generated .h files.
3748         Courtesy of: Josh Wilmes <josh@hitchhiker.org>
3750 2002-01-05 12:37  simon
3752         * Configure.pl:
3753         Make lcc happier by adding a dummy structure.
3755         Courtesy of: Josh Wilmes <josh@hitchhiker.org>
3757 2002-01-05 12:35  simon
3759         * global_setup.c, classes/perlundef.pmc, t/op/pmc.t, t/pmc/pmc.t:
3760         Make perlundef work. (And coincidentally stop segfaults in the
3761         tests :)
3763         Courtesy of: Jason Gloudon <perl@gloudon.com>
3765 2002-01-05 04:59  dan
3767         * t/: op/pmc.t, pmc/pmc.t: Undef tests added.
3769 2002-01-05 04:55  jgoff
3771         * classes/perlhash.pmc: Added perlhash class definition
3773 2002-01-05 04:48  dan
3775         * core.ops: Fix on 64 bit platforms with 32-bit opcode_t
3777         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3779 2002-01-05 03:57  jgoff
3781         * MANIFEST, Makefile.in, core.ops, global_setup.c, key.c,
3782         vtable.tbl, classes/Makefile.in, classes/default.pmc,
3783         include/parrot/key.h, include/parrot/pmc.h, t/op/pmc.t,
3784         t/pmc/pmc.t: Initial hash commit.
3786         core.ops - Adding set({i,n,s},p,s) and set(p,{i,n,s},s) operations.
3787          key.h  - Adding NUM_BUCKETS classes/default.pmc - Adding
3788         set_{integer,number,string}_index_s
3790         This does not yet do collision resolution, but will soon.
3792 2002-01-05 02:54  dan
3794         * interpreter.c: More unsigned fixes
3796         Courtesy of "Bryan C. Warnock" <bwarnock@raba.com>
3798 2002-01-04 22:13  dan
3800         * Configure.pl, hints/mswin32.pl: Makes config's building of the
3801         test programs happier.
3803         Courtesy of "Jason Diamond" <jason@injektilo.org>
3805 2002-01-04 19:00  dan
3807         * Configure.pl, Makefile.in, hints/darwin.pl: Add link flags as
3808         separate things
3810 2002-01-04 18:27  dan
3812         * Configure.pl, Makefile.in, classes/Makefile.in, hints/mswin32.pl:
3813         Fixes to get things configuring and building on Win32 Native.
3815         Courtesy of "Jason Diamond" <jason@injektilo.org>
3817 2002-01-04 17:39  dan
3819         * hints/vms.pl: debug cleanup
3821 2002-01-04 16:53  dan
3823         * docs/parrot.pod:  The enclosed patch brings the list of
3824         documentation in parrot.pod
3825          up to date.
3827         Courtesy of Simon Glover <scog@roe.ac.uk>
3829 2002-01-04 16:47  dan
3831         * test_main.c, Parrot/Jit/i386-linux.pm,
3832         lib/Parrot/Jit/i386-linux.pm: In an attempt to just keep knocking
3833         off warnings..
3835         Courtesy of Kevin Falcone <kevin@jibsheet.com>
3837 2002-01-04 16:44  dan
3839         * Configure.pl, Makefile.in: Fixed linking to use linker.
3841         Courtesy of Josh Wilmes <josh@hitchhiker.org>
3843 2002-01-04 16:39  dan
3845         * io/io_stdio.c: Added CVS tag info
3847 2002-01-04 16:35  dan
3849         * hints/cygwin.pl: Time for this. We need a sane linker, and ld2
3850         isn't it
3852 2002-01-04 16:26  dan
3854         * languages/miniperl/Miniperl/Tokenizer.pm: Quiet a warning in the
3855         Tokenizer test
3857         Courtesy of Jonathan Stowe <gellyfish@gellyfish.com>
3859 2002-01-04 16:17  dan
3861         * chartypes/unicode.c: Silence some warnings.
3863         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3865 2002-01-04 16:09  dan
3867         * classes/: genclass.pl, perlarray.pmc, perlint.pmc, perlnum.pmc,
3868         perlstring.pmc, perlundef.pmc:  - genclass.pl attempts to put the Id mark
3869         into generated files
3870            but the Id mark string gets mangled when it's committed.
3871            This patch fixes the existing .pmc files and fixes genclass.pl.
3873          - Makes capitalization in .pmc header match actual filenames
3875          - The command for calling genclass.pl in vtables.pod is incorrect,
3876            since it assumes you're running in classes/ but genclass.pl
3877         assumes
3878            it's being run from the main directory. I changed genclass.pl to
3879         not
3880            care.
3882         Courtesy of Steve Fink <steve@fink.com>
3884 2002-01-04 03:57  dan
3886         * MANIFEST, io/TODO, io/io_stdio.c: No wonder things worked for
3887         me--I *had* the files:wq!
3889 2002-01-04 03:40  dan
3891         * MANIFEST: Whoops--remove files not really there
3893 2002-01-04 03:37  dan
3895         * interpreter.c, stacks.c, include/parrot/stacks.h: The patch below
3896         my sig adds a new_stack() function to take care of the allocation
3897         and setup of "generic" stacks.
3899         Courtesy of "Brent Dax" <brentdax@cpan.org>
3901 2002-01-04 02:36  dan
3903         * core.ops:  The entry in core.ops for puts(s|sc) is missing a =cut
3904         and so
3905          writes a load of junk in core_ops.pod. Applied patch fixes.
3907         Courtesy of Simon Glover <scog@roe.ac.uk>
3909 2002-01-04 02:35  dan
3911         * classes/: perlint.pmc, perlnum.pmc, perlstring.pmc: The PerlInt
3912         logical-or is using get_integer instead of get_bool for logical
3913         operations. This patch corrects that.
3915         Perlnum and perlstring have working get_bool's, so the default
3916         logical_or and logical_and should be sufficient. The empty methods
3917         are pointed to the default logical_or.
3919         Courtesy of Jason Gloudon <perl@gloudon.com>
3921 2002-01-04 02:31  dan
3923         * Makefile.in: docs/Makefile should be removed by realclean, but
3924         isn't
3926         Courtesy of Kevin Falcone <kevin@jibsheet.com>
3928 2002-01-04 02:29  dan
3930         * classes/: Makefile.in, pmc2c.pl: PMC inheritance! Yay!
3932         Courtesy of Steve Fink <steve@fink.com>
3934 2002-01-04 00:51  dan
3936         * docs/vtables.pod: More docs
3938         Courtesy of Steve Fink <steve@fink.com>
3940 2002-01-04 00:47  dan
3942         * Configure.pl: Updated 64-bit patch
3944         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3946 2002-01-04 00:43  dan
3948         * Configure.pl: 64-bit Fix.
3950         Courtesy of "Bryan C. Warnock" <bwarnock@raba.com>
3952 2002-01-03 22:37  dan
3954         * MANIFEST, Makefile.in, interpreter.c, include/parrot/io.h,
3955         io/io.c, io/io_os.c: Code cleanup, started STDIO layer, started
3956         some buffering work.       Additional work on other layers.
3958         Courtesy of Melvin Smith <mrjoltcola@mindspring.com>
3960 2002-01-03 19:41  gregor
3962         * disassemble.pl, obscure.ops, packfile.c, pbc2c.pl:
3963         Updated copyright messages on top-level files.
3965 2002-01-03 04:23  robert
3967         * make.pl: Add author information.  Bonsai test.
3969 2002-01-03 04:02  dan
3971         * io/io_os.c: Twig Bonsai
3973 2002-01-03 03:45  dan
3975         * io/: io_os.c, io_os.c: Twig Bonsai
3977 2002-01-03 03:41  dan
3979         * io/io_os.c: Twig Bonsai
3981 2002-01-02 21:42  gregor
3983         * packfile.c, include/parrot/packfile.h:
3984         Get rid of warnings in packfile.[hc]
3986 2002-01-02 20:39  gregor
3988         * manicheck.pl:
3989         Bracketed translated patterns with ^ and $.
3991 2002-01-02 20:11  dan
3993         * io/io_os.c: silence a warning
3995 2002-01-02 19:52  grunblatt
3997         * jit.c, jit2h.pl, include/parrot/jit.h: Moved the definition of
3998         op_assembly to jit_struct.h, so that we get the real number of ops.
3999          Removed some warnings.
4001 2002-01-02 19:31  tom
4003         * string.c: Fix string transcoding so that it actually works.
4005         Patch from Peter Gibbs <peter@emkel.co.za>
4007 2002-01-02 19:20  gregor
4009         * manicheck.pl:
4010         A program to check the MANIFEST file, accounting for .cvsignore
4011         files.
4013 2002-01-02 19:19  dan
4015         * t/harness: twig bonsai
4017 2002-01-02 19:13  dan
4019         * t/harness: twig bonsai
4021 2002-01-02 18:54  dan
4023         * t/harness: Tweak to test Bonsai
4025 2002-01-02 16:27  dan
4027         * Configure.pl: Allow 64-bit build of parrot on systems with a
4028         mixed 32/64 bit perl
4030         Courtesy of David M. Lloyd <dmlloyd@tds.net>
4032 2002-01-02 15:33  simon
4034         * MANIFEST, docs/Makefile:
4035         Fixed up MANIFEST. (And I removed the Makefile in docs/)
4037         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
4039 2002-01-02 13:51  simon
4041         * Configure.pl:
4042         Die on broken manifest.
4044 2002-01-02 13:48  simon
4046         * jit2h.pl, examples/assembly/mops.pasm:
4047         Clear up JIT warnings.
4049         Courtesy of: Nick Clark <nick@unfortu.net>
4051 2002-01-02 04:10  dan
4053         * io/io.c, io/io_os.c, t/op/interp.t: IO stack now gets initialized
4054         only once, so new interp creation works again
4056         Courtesy of Melvin Smith <mrjoltcola@mindspring.com>
4058 2002-01-02 03:32  dan
4060         * t/op/interp.t: Stubbed the test out, since it's hanging at the
4061         moment.
4063 2002-01-02 00:55  dan
4065         * MANIFEST, Makefile.in, core.ops, include/parrot/io.h, io/io.c,
4066         io/io_os.c: Initial IO system patches
4068         Courtesy of <mrjoltcola@mindspring.com>
4070 2002-01-01 22:55  ajgough
4072         * classes/default.pmc: On second thoughts, and some prodding, the
4073         set_* methods now only set the appropriate part of the cache, and
4074         do nothing else.
4076 2002-01-01 22:29  ajgough
4078         * classes/default.pmc:  Wrote a whole host of default pmc methods.
4080          set_* create appropriate Perl* result.
4081          get_* simply grabs needed bit of cache.*_val
4083          Other methods do the rightest thing I can think of, at the moment.
4085          None yet cope with overflow, the modulus operation needs to be
4086         checked as
4087         I don't know quite which semantics we really want.
4089         Not tested yet.
4091 2002-01-01 20:23  dan
4093         * docs/Makefile, encodings/singlebyte.c, encodings/utf16.c,
4094         encodings/utf32.c, encodings/utf8.c, include/parrot/encoding.h: Got
4095         rid of unneeded tmp var and eliminated const from encode prototype
4096         since it does make changes to the string.
4098         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4100 2002-01-01 20:11  dan
4102         * Makefile.in: Make clean now tosses pdump.o
4104         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4106 2002-01-01 19:49  dan
4108         * pdump.c, test_main.c: Warnings cleanup
4110         Courtesy of Josh Wilmes <josh@sky.net>
4112 2002-01-01 19:45  dan
4114         * Configure.pl, Makefile.in, docs/.cvsignore, docs/Makefile.in,
4115         hints/mswin32.pl, languages/jako/Makefile.in,
4116         languages/scheme/Makefile.in: Makes cleanup better on non-Unix
4117         platforms
4119         Courtesy of "Jason Diamond" <jason@injektilo.org>
4121 2002-01-01 19:41  dan
4123         * include/parrot/register.h: Clean up some warnings
4125         Courtesy of Josh Wilmes <josh@hitchhiker.org>
4127 2002-01-01 19:10  simon
4129         * pbc2c.pl, Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm:
4130         Hack-around to enable compilation of code using vtable ops.
4132 2002-01-01 18:43  dan
4134         * encodings/: singlebyte.c, utf16.c, utf32.c, utf8.c: Toss <0
4135         checks on unsigned things
4137         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4139 2002-01-01 18:26  dan
4141         * runops_cores.c: More warning silences.
4143         Courtesy of Nicholas Clark <nick@unfortu.net>
4145 2002-01-01 18:25  dan
4147         * trace.c: Shuts up a warning.
4149         Courtesy of Nicholas Clark <nick@unfortu.net>
4151 2002-01-01 18:24  dan
4153         * encodings/singlebyte.c: Clean up some warnings.
4155         Courtesy of Nicholas Clark <nick@unfortu.net>
4157 2002-01-01 18:20  dan
4159         * Configure.pl: Hey, those PPros are really x86 systems! Who'dve
4160         thunk it?
4162         Courtesy of "Bryan C. Warnock" <bwarnock@raba.com>
4164 2002-01-01 18:17  dan
4166         * packfile.c: Warning cleanup
4168         Courtesy of Nicholas Clark <nick@unfortu.net>
4170 2002-01-01 17:53  dan
4172         * string.c: New string size should be based on output encoding's
4173         size, not input encoding's size.
4175         Courtesy of: "Peter Gibbs" <peter@emkel.co.za>
4177 2002-01-01 17:22  dan
4179         * Configure.pl, core.ops, interpreter.c, memory.c, runops_cores.c,
4180         string.c, test_main.c, trace.c, include/parrot/exceptions.h,
4181         include/parrot/interpreter.h, include/parrot/memory.h,
4182         include/parrot/oplib.h, include/parrot/string.h, t/op/string.t:
4183         Warnings fixups.
4185         Courtesy of Chip Turner <cturner@redhat.com>
4187 2002-01-01 17:09  dan
4189         * encodings/singlebyte.c, encodings/utf16.c, encodings/utf32.c,
4190         encodings/utf8.c, include/parrot/encoding.h: Some signed things are
4191         now unsigned, as is proper.
4193         Courtesy of: "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4194         Courtesy of: "Bryan C. Warnock" <bwarnock@raba.com>
4196 2002-01-01 16:59  dan
4198         * include/parrot/trace.h: Useless debugging prototype removed
4200         Courtesy of: "Bryan C. Warnock" <bwarnock@raba.com>
4202 2002-01-01 16:58  dan
4204         * MANIFEST: We forgot a file.
4206         Courtesy of "Bryan C. Warnock" <bwarnock@raba.com>
4208 2002-01-01 03:53  dan
4210         * Configure.pl: Okay, I give. Removed some warnings because the
4211         darned system headers were triggering them. Sloppy, sloppy
4212         coding...
4214 2002-01-01 03:48  dan
4216         * config_h.in: Add in an unsigned INTVAL.
4218         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4220 2002-01-01 03:46  dan
4222         * global_setup.c: Clean up some compiler warnings.
4224         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4226 2002-01-01 03:43  dan
4228         * ops2c.pl, Parrot/OpTrans.pm, Parrot/OpTrans/CPrederef.pm,
4229         lib/Parrot/OpTrans.pm, lib/Parrot/OpTrans/CPrederef.pm,
4230         include/parrot/op.h: Cleaned up some things to make the compiler
4231         happier.
4233         Courtesy of Nicholas Clark <nick@unfortu.net>
4235 2002-01-01 03:14  dan
4237         * Configure.pl: Quad updates.
4239         Courtesy of Nicholas Clark <nick@unfortu.net>
4241 2001-12-31 22:53  dan
4243         * include/parrot/op.h: Typedef had parameters backwards. Threw
4244         core.ops for a big whiny warnings loop.
4246 2001-12-31 22:37  dan
4248         * Makefile.in, resources.c: Tweaks to try and get things to build
4249         in the right order.
4251 2001-12-31 21:58  dan
4253         * Configure.pl: Stupid thinko fix
4255 2001-12-31 21:34  dan
4257         * Configure.pl, hints/mswin32.pl: Tweaks for Win32 builds
4259         Courtesy of: "Jason Diamond" <jason@injektilo.org>
4261 2001-12-31 21:32  dan
4263         * Configure.pl: Fix for non-gcc systems
4265 2001-12-31 20:22  dan
4267         * interpreter.c: Tweak so we can build on non-JIT platforms
4269 2001-12-31 20:11  dan
4271         * Configure.pl: Force the time on some copied files to be 'now' to
4272         make the Win builds much less annoying.
4274         Courtesy of "Jason Diamond" <jason@injektilo.org>
4276 2001-12-31 20:07  dan
4278         * Configure.pl: Nuke all object files in the parrot tree that
4279         matter when configuring.  Shouldn't be necessary with good
4280         dependencies in the makefile, but we don't have those yet.
4282 2001-12-31 20:00  gregor
4284         * chartypes/unicode.c:
4285         Silence unused variable warnings.
4287 2001-12-31 19:40  dan
4289         * Configure.pl: Minor Win32 tweaks. Tossed -Wtraditional, too
4291 2001-12-31 19:37  gregor
4293         * interpreter.c, jit.c, include/parrot/jit.h:
4294         Created a prototype for JIT functions and used it in interpreter.c.
4296 2001-12-31 19:31  dan
4298         * Configure.pl, test_gnuc.c: Better GCC detection (and version
4299         detection) with really cranky warnings if we find we're using it.
4301         Courtesy of: Nicholas Clark <nick@unfortu.net>
4303 2001-12-31 18:01  gregor
4305         * interpreter.c, include/parrot/interpreter.h, include/parrot/op.h:
4307         Fixed a few warnings wrt prototypes, etc.
4309 2001-12-31 17:23  dan
4311         * string.c: Silenced most of the compiler whines
4313 2001-12-31 17:15  gregor
4315         * Configure.pl:
4316         Get the ccname from either ccname or just cc config var.
4318 2001-12-31 17:14  gregor
4320         * Parrot/Op.pm, lib/Parrot/Op.pm:
4321         Another intermediate opbody notation. Could come in handy. Explicit
4322         types.
4324 2001-12-31 17:05  dan
4326         * string.c: Minor warnings update
4328 2001-12-31 17:00  dan
4330         * include/parrot/string.h: Warnings cleanup
4332 2001-12-31 16:00  simon
4334         * encodings/utf8.c, include/parrot/encoding.h:
4335         Remove a couple more.
4337 2001-12-31 15:58  simon
4339         * vtable_h.pl, include/parrot/global_setup.h, include/parrot/jit.h,
4340         include/parrot/op.h:
4341         Rid ourselves of a few warnings.
4343 2001-12-31 15:32  dan
4345         * Configure.pl: Made GCC ever so much pickier.
4347         Switch list courtesy of Jarkko.
4349 2001-12-31 15:22  dan
4351         * string.c: Tightened up initial allocation.
4353         Courtesy of:  "Peter Gibbs" <peter@emkel.co.za>
4355 2001-12-31 06:48  dan
4357         * Configure.pl: Minor Windows tweak
4359 2001-12-31 05:32  dan
4361         * core.ops: Unused temp variable tossed.
4363         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4365 2001-12-31 05:09  grunblatt
4367         * Configure.pl, Makefile.in, interpreter.c: Link jit.o only on
4368         supported plataforms
4370 2001-12-31 03:05  dan
4372         * Configure.pl, Makefile.in, classes/Makefile.in: Added in a
4373         platform-independent quote substitution for the makefiles.
4374         Hopefully this'll make the Win32 builds happier.
4376 2001-12-30 21:08  dan
4378         * string.c, include/parrot/string.h: More string system tweaks.
4380         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4382 2001-12-30 20:45  dan
4384         * core.ops: Some pod cleanup
4386         Courtesy of Josh Wilmes <josh@hitchhiker.org>
4388 2001-12-30 20:22  ajgough
4390         * docs/parrot_assembly.pod: removed ntoi and iton ops from docs, as
4391         we aren't using them right now.  Clarified the workings of set Px,
4392         Py and clone Px, Py.
4394 2001-12-30 20:15  grunblatt
4396         * jit.c, jit2h.pl, jit/i386/core.jit: Removed the warnings in jit.c
4397         Added readjit() to read *.jit files Updated core.jit to the new
4398         set_n_i
4400 2001-12-30 20:14  ajgough
4402         * examples/assembly/mops.pasm: Changed iton/ntoi to set.
4404 2001-12-30 19:52  dan
4406         * packfile.c, pdump.c, register.c, string.c, include/parrot/key.h,
4407         include/parrot/trace.h, platforms/generic.c: Compiler whine
4408         cleanups
4410         Courtesy of Josh Wilmes <josh@hitchhiker.org>
4412 2001-12-30 19:13  dan
4414         * Configure.pl, Makefile.in: Make GCC pickier by default.
4416         Courtesy of: Josh Wilmes <josh@hitchhiker.org>
4418 2001-12-30 18:41  dan
4420         * core.ops, t/op/integer.t, t/op/number.t: Transformed iton and
4421         ntoi opcodes to sets.
4423         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4425 2001-12-30 17:58  gregor
4427         * Makefile.in:
4428         'make' no longer builds the mops test. Use 'make mops' for that. To
4429         run the test, you can do 'make mopstest'.
4431 2001-12-30 17:30  gregor
4433         * Makefile.in:
4434         Fixed one oversight. 'make clean' was removing Parrot/Types.pm. Bad
4435         Gregor.
4437 2001-12-30 17:26  gregor
4439         * .cvsignore, Configure.pl, Makefile.in, VERSION, config_h.in,
4440         core.ops, interpreter.c, make_vtable_ops.pl, obscure.ops, ops2c.pl,
4441         Parrot/BuildUtil.pm, Parrot/OpsFile.pm, lib/Parrot/BuildUtil.pm,
4442         lib/Parrot/OpsFile.pm, include/parrot/oplib.h:
4443         Build enhancements. Originally to support building shared
4444         libraries, but now of broader impact.
4446           * .cvsignore: Ignore the blib/ directory, about which more later.
4448           * Configure.pl:
4450               * Got rid of TAB formatting and lined a few things up.
4452               * Added header comment with CVS Id variable, and a few other
4453                 block header comments.
4455               * Uses new Parrot::BuildUtil module to determine the Parrot
4456                 version.
4458               * Reworded a few messages, added a couple, and wrapped
4459         messages
4460                 to 79 columns.
4462               * Added 2002 to the Copyright statement.
4464               * Added new configure variables: VERSION, MAJOR, MINOR and
4465         PATCH
4467               NOTE: Please see the 'Alas perl5.7.2' comment. 5.7.2 is
4468         greater
4469               than 5.6.0, but the comment implies it isn't.
4471           * Makefile.in:
4473               * Added $(SO), $(A) and $(AR_CRS) defines for library
4474         building.
4476               * Added $(RM_RF) define for removing directory trees
4478               * Grouped generated files into two classes: "sticky" (made by
4479         configure,
4480                 persisting across 'make clean') and 'fluid' (made during
4481         the build
4482                 process, deleted by 'make clean').
4484               * Added header comments.
4486               * Added target for test_prog linked with shared library.
4488               * Added rules to build shared libraries in blib/lib. The
4489         libraries are
4490                 built with trailing version numbers in their file names,
4491         and then
4492                 symbolic links are created for shorter and no version tag
4493         variants.
4495               * Added some missing dependencies
4497               * Added some missing 'make clean' targets.
4499               * Added 'make realclean' target that deletes files created by
4500                 Configure.pl (including Makefile), forcing a re-configure.
4502               * Added a 'status' CVS target.
4504           * VERSION: New file, contains only the version. This version
4505         number is
4506             propagated to a few places, such as the core oplib version
4507         number. This
4508             reduces the amount of coordination that has to happen to get
4509         version
4510             number stuff throughout the tree in sync and updated prior to
4511         cutting
4512             a new release. Feel free to grep for '0.0.3' to see the other
4513         files
4514             that contain the version number (but, do that in a fresh CVS
4515         copy, or
4516             after doing 'make realclean').
4518           * config_h.in: Renamed PARROT_CORE_OPLIB_*_VERSION to
4519         PARROT_*_VERSION,
4520             since the oplib and Parrot itself share a version number now.
4521         Added
4522             PARROT_PATCH_VERSION (the third component) and PARROT_VERSION
4523         (a
4524             string).
4526           * core.ops: Uses new notation "VERSION = PARROT_VERSION" instead
4527         of
4528             specifying the version by hand. Non-core oplibs will set this
4529         to
4530             a quoted dot-string with three natural number components
4531         without
4532             leading zeros.
4534           * interpreter.c: Make use of PARROT_VERSION to simplify some
4535         sprintf()s, and
4536             to get the complete version number in the resulting strings
4537         (including the
4538             new PATCH portion).
4540           * make_vtable_ops.pl: Put the "VERSION = PARROT_VERSION" line int
4541         the
4542             generated file.
4544           * obscure.ops: Use the new "VERSION = PARROT_VERSION" technique.
4546           * ops2c.pl: Account for the PATCH version, too. This affects the
4547         name of the
4548             oplib init function, and the oplib info struct initializer.
4550           * Parrot/BuildUtil.pm: New file for reading in and validating the
4551         contents of
4552             the new VERSION file. Other build utilities could go here in
4553         futuer.
4555           * Parrot/OpsFile.pm:
4557               * Allow three components in version number, and require that
4558         the value
4559                 be in double quotes.
4561               * Allow "VERSION = PARROT_VERSION", substituting the shared
4562         Parrot
4563                 VERSION in that case.
4565           * include/parrot/oplib.h: Add the patch_version member.
4567 2001-12-30 12:16  simon
4569         * MANIFEST, Makefile.in:
4570         More stuff forgotten from MANIFEST.
4572 2001-12-30 12:13  simon
4574         * MANIFEST:
4575         Missing JIT file.
4577 2001-12-30 12:12  simon
4579         * jit2h.pl:
4580         Safety first.
4582 2001-12-30 12:12  simon
4584         * Makefile.in:
4585         Gragh.
4587 2001-12-30 12:04  simon
4589         * Makefile.in, core.ops, packfile.c, pbc2c.pl, string.c,
4590         classes/perlstring.pmc, encodings/singlebyte.c, encodings/utf16.c,
4591         encodings/utf32.c, encodings/utf8.c, include/parrot/encoding.h,
4592         include/parrot/string.h, t/op/string.t:
4593         * Expand the strings test suite to be more complete * Make string
4594         commands more consistent (i.e, now the only string command that
4595         actually changes the original is chopn) * Significantly reduce the
4596         number of memory allocations and eliminate reallocations.
4598         Courtesy of: David Jacobs <jacobsl001@hawaii.rr.com>
4600 2001-12-29 22:12  dan
4602         * interpreter.c, key.c, register.c, stacks.c, string.c,
4603         test_main.c, trace.c: Updates to match the coding standards.
4605         Courtesy of Bryan C. Warnock <bwarnock@raba.com>
4607 2001-12-29 20:42  grunblatt
4609         * jit2h.pl, Parrot/Jit/i386-bsd.pm, Parrot/Jit/i386-linux.pm,
4610         Parrot/Jit/i386-nojit.pm, jit/i386/core.jit, jit/i386/lib.jit,
4611         jit/i386/string.jit, lib/Parrot/Jit/i386-bsd.pm,
4612         lib/Parrot/Jit/i386-linux.pm, lib/Parrot/Jit/i386-nojit.pm: Allow
4613         us to write asm in *.jit files instead of hex.  Courtesy of: Rafael
4614         Kitover <caelum@debian.org>
4616 2001-12-28 21:20  dan
4618         * core.ops: Okay, now print takes a preceding file handle.
4620         I feel so dirty now.
4622 2001-12-28 20:46  dan
4624         * core.ops, t/op/hacks.t: Added in the readline op, as well as
4625         changing the open op to use fopen under the hood.
4627         THESE OPS ARE EVIL! AND TEMPORARY! USE FOR DEBUGGING PURPOSES ONLY!
4629 2001-12-28 18:20  ajgough
4631         * core.ops, make_vtable_ops.pl, string.c, classes/default.pmc,
4632         classes/perlstring.pmc, docs/parrot_assembly.pod, docs/strings.pod,
4633         include/parrot/exceptions.h, include/parrot/string.h,
4634         t/op/pmc_perlstring.t, t/op/string.t, t/pmc/perlstring.t: Added
4635         repeat op, so that "foo" x 10 can be done.  Filled in PerlString
4636         vtables appropriately.  Also tests for same, new pmc_perlstring.t
4637         to hold tests specific to PerlStrings, as the pmc.t file is taking
4638         too long to run and slowing down my thought processes.
4640         Changes to strings.c etc to take string functions.
4642         Some changes to the strings docs, but not yet complete.
4644         Also, PerlString was copying pointers to strings, rather than
4645         strings themselves, so some action-at-a-distance bugs were creeping
4646         in, I think I've fixed this so everything works nicely.
4648 2001-12-28 04:56  gregor
4650         * examples/assembly/pmcmops.pasm:
4651         PMC-using version of mops.pasm.
4653         Courtesy of: Bryan C. Warnock <bwarnock@raba.com>
4655 2001-12-28 04:56  gregor
4657         * examples/assembly/.cvsignore:
4658         Small tinkering. Removed old stuff, etc.
4660 2001-12-28 01:26  gregor
4662         * examples/mops/mops.scheme:
4663         Scheme example. Major GC thrashing on umb-scheme here. Probably due
4664         to the very un-scheme-like implementation.
4666 2001-12-28 01:19  gregor
4668         * examples/mops/mops.c:
4669         Some people's picky compilers don't like us redefineing time(), so
4670         we call it time_n().  :)
4672 2001-12-28 00:28  gregor
4674         * examples/mops/: README, mops.ps:
4675         Added a PostScript example and a README.
4677 2001-12-27 23:57  gregor
4679         * Makefile.in:
4680         Build the C mops translation in examples/mops/mops.c
4682 2001-12-27 23:56  gregor
4684         * examples/mops/: .cvsignore, mops.c, mops.pl, mops.py, mops.rb:
4685         Some translations of mops.pasm into other languages, for inner loop
4686         performance comparisons.
4688 2001-12-27 22:40  gregor
4690         * examples/assembly/mops.pasm:
4691         Fixed erroneous file name in header comment.
4693 2001-12-27 21:18  gregor
4695         * pbc2c.pl:
4696         One-liner to avoid no-op gotos to the next op.
4698 2001-12-27 21:06  gregor
4700         * runops_cores.c:
4701         Fixed -p (profiling). Slow runops core was doing unconditional
4702         tracing, when it should have been checking the flags.
4704 2001-12-27 18:50  ajgough
4706         * core.ops, string.c, chartypes/unicode.c, chartypes/usascii.c,
4707         classes/perlstring.pmc, include/parrot/chartype.h,
4708         include/parrot/string.h, t/op/pmc.t, t/op/string.t, t/pmc/pmc.t:
4709         dded get_digit() to chartypes  * Added string_bool() to strings  *
4710         Added if_s_ic op, to use same  * Added (PerlString)->get_bool stuff
4711         to perlstring.pmc  * Tests for above, also a for couple of other
4712         ops without tests
4714         The unicode chartype has only had placeholders added for get_digit,
4715         string_to_num has been updated to use type->get_digit rather than
4716         the previous ascii-isms.  Some remain, but we need to carefully
4717         define what we mean by a number before we let thousands of code
4718         points act as a minus sign.
4720 2001-12-27 18:32  dan
4722         * classes/: perlint.pmc, perlnum.pmc, perlstring.pmc: Silenced some
4723         compiler warnings.
4725         Courtesy of "David  Jacobs" <jacobsl001@hawaii.rr.com>
4727 2001-12-27 18:23  dan
4729         * t/op/bitwise.t: More tests.
4731         Courtesy of "David Jacobs" <jacobsl001@hawaii.rr.com>
4733 2001-12-27 17:08  gregor
4735         * MANIFEST, Makefile.in, config_h.in, core.ops, interpreter.c,
4736         make_vtable_ops.pl, obscure.ops, ops2c.pl, ops2pm.pl, test_main.c,
4737         trace.c, Parrot/OpsFile.pm, include/parrot/interp_guts.h,
4738         include/parrot/interpreter.h, include/parrot/oplib.h,
4739         lib/Parrot/OpsFile.pm, platforms/generic.c, platforms/generic.h,
4740         platforms/win32.c, platforms/win32.h:
4741         Initial code for dynamic loading of oplibs, applied for now to the
4742         loading of the core_prederef oplib when the -P flag is passed to
4743         test_parrot.
4745           * MANIFEST: Added entry for the new file include/parrot/oplib.h.
4747           * Makefile.in:
4749               * Added libcore_prederef_0_3.so to the shared target.
4750               * Added build rule for libcore_prederef_0_3.so.
4751               * Added dependencies on Parrot/OpsFile.pm and Parrot/Op.pm
4752                 to Parrot/OpLib/core.pm, core_ops.c and
4753                 core_ops_prederef.c.
4755           * config_h.in: Added defines for constants used to locate the
4756             core oplib's init function, and the core_prederef oplib for
4757             dynaloading.
4759           * core.ops: Added a VERSION = 0.3 line near the top. This is now
4760             required by Parrot/OpsFile.pm.
4762           * interpreter.c:
4764               * Added init_prederef() and stop_prederef() functions to load
4765                 and unload the core_prederef oplib when we are in prederef
4766                 mode.
4768                 NOTE: In all likelihood, the prederef stuff has a rapidly
4769                 dwindling time-to-live. The JIT should provide vastly
4770         superior
4771                 performance, and loading an alternate set of core_ops isn't
4772                 the real direction for the dynaloading stuff. Loading
4773                 *additional* ops is. It does provide a handy test case for
4774         the
4775                 general idea for now, though.
4777               * Gets the core copcode table, etc. via the core oplibs oplib
4778                 info pointer, as returned by the core oplib's init
4779         function.
4781           * ops2c.pl
4783               * Make use of the version, major version and minor version
4784                 stuff parsed by Parrot/OpsFile.pm
4786               * The only exported symbol in the generated files is the init
4787                 function now, since that returns an oplib info struct
4788                 pointer, and all the important stuff can be found there.
4790           * ops2pm.pl: Put the oplib version in the generated .pm file.
4792           * test_main.c: Small changes necessitated by changes in the names
4793             of some members of the interpreter struct.
4795           * trace.c: Small changes necessitated by changes in the names
4796             of some members of the interpreter struct.
4798           * Parrot/OpsFile.pm: Require a "VERSION = x.y" line before any
4799             ops are found.
4801           * include/parrot/interp_guts.h: Small changes necessitated by
4802             changes in the names of some members of the interpreter struct.
4804           * include/parrot/interpreter.h: Include the new
4805             include/parrot/oplib.h header. Small changes to the oplib-
4806             related members.
4808           * include/parrot/oplib.h: Define the type of the oplib init
4809             function, and the struct type for the oplib info.
4811           * platforms/*.[hc]: Remove the second argument to Parrot_dlopen()
4812             since not all platforms have it. For those that do, a default
4813             second argument is provided.
4815 2001-12-26 05:12  gregor
4817         * Configure.pl:
4818         Make jitarch calculation not get tripped up by extra components to
4819         archname.
4821 2001-12-24 21:23  gregor
4823         * jit.c, jit2h.pl, Parrot/Jit/i386-bsd.pm,
4824         Parrot/Jit/i386-linux.pm, Parrot/Jit/i386-nojit.pm,
4825         include/parrot/jit.h, jit/i386/core.jit, jit/i386/lib.jit,
4826         jit/i386/string.jit, lib/Parrot/Jit/i386-bsd.pm,
4827         lib/Parrot/Jit/i386-linux.pm, lib/Parrot/Jit/i386-nojit.pm:
4828         Some more JIT work from Daniel Grunblatt.
4830           * Ops added set_s_s, set_s_sc, bsr_i and eq_s_sc but using calls
4831         to C
4832             functions.
4834           * Added JUMP(END) to place the number of bytes to the end of the
4835         current
4836             op.
4838           * The *.jit files syntax changed.
4840           * Added jit/i386/lib.jit to place handly functions as jump that
4841         take as
4842             argument the address where is the opcode number to jump to.
4844           * There is a bug at some point, but I will start writing
4845             jit/i386/string.jit and jit/i386/stacks.jit so that we don't
4846         have use
4847             calls, which make the jit as slow as the interpreter.
4849         Courtesy of: Daniel Grunblatt <daniel@grunblatt.com.ar>
4851 2001-12-24 03:46  dan
4853         * Parrot/OpTrans.pm, Parrot/OpTrans/C.pm, Parrot/OpTrans/CGoto.pm,
4854         Parrot/OpTrans/CPrederef.pm, lib/Parrot/OpTrans.pm,
4855         lib/Parrot/OpTrans/C.pm, lib/Parrot/OpTrans/CGoto.pm,
4856         lib/Parrot/OpTrans/CPrederef.pm: Commented out the use warnings.
4857         Perls before 5.6.0 don't like it.
4859 2001-12-22 16:02  ajgough
4861         * t/op/stacks.t: stopped skipping tests we can run now.  added
4862         clonep tests.
4864 2001-12-21 21:13  gregor
4866         * jit2h.pl, Parrot/Jit/i386-bsd.pm, Parrot/Jit/i386-linux.pm,
4867         Parrot/Jit/i386-nojit.pm, lib/Parrot/Jit/i386-bsd.pm,
4868         lib/Parrot/Jit/i386-linux.pm, lib/Parrot/Jit/i386-nojit.pm:
4869         Fixed some package name goofs.
4871         Thanks to: Andy Dougherty <doughera@mail.lafayette.edu>
4873 2001-12-21 19:32  gregor
4875         * MANIFEST, Makefile.in, core.ops, interpreter.c,
4876         make_vtable_ops.pl, obscure.ops, ops2c-prederef.pl, ops2c.pl,
4877         pbc2c.pl, stacks.c, Parrot/Op.pm, Parrot/OpTrans.pm,
4878         Parrot/Opcode.pm, Parrot/OpsFile.pm, lib/Parrot/Op.pm,
4879         lib/Parrot/OpTrans.pm, lib/Parrot/Opcode.pm, lib/Parrot/OpsFile.pm,
4880         Parrot/OpTrans/C.pm, Parrot/OpTrans/CGoto.pm,
4881         Parrot/OpTrans/CPrederef.pm, docs/intro.pod, include/parrot/op.h,
4882         include/parrot/stacks.h, lib/Parrot/OpTrans/C.pm,
4883         lib/Parrot/OpTrans/CGoto.pm, lib/Parrot/OpTrans/CPrederef.pm:
4884         Changes to syntax of .ops files and refactoring of ops2c*.pl and
4885         pbc2c.pl.
4887           * Removed ops2c-prederef.pl
4889           * (unrelated) Removed vestigial Parrot/Opcode.pm file.
4891           * Added Parrot/OpTrans.pm, Parrot/OpTrans/C.pm (needed for old
4892             functionality of ops2c.pl), Parrot/OpTrans/CPrederef.pm (needed
4893             for old functionality of ops2c-prederef.pl), and
4894             Parrot/OpTrans/CGoto.pm (needed for functionality of pbc2c.pl).
4896             "OpTrans" == "Op Transformation"
4898           * Makefile.in modifications to call "ops2c.pl C" where it used
4899             to be just "ops2c.pl", and "ops2c.pl CPrederef" where it used
4900             to be "ops2c-prederef.pl".
4902           * core.ops and obscure.ops changes to syntax. Semantics are
4903             identical with previous version:
4905               return HALT         -->  HALT()
4906               return AUTO         -->  goto NEXT()
4907               return RETREL(...)  -->  goto OFFSET(...)
4908               return RESTART(*)   -->  restart NEXT()
4910             Also, pop_generic_entry() stuff (local var + 5 lines of code)
4911             for dest-less branch ops replaced with new notation "goto
4912         POP()",
4913             which uses the new pop_dest() function in stacks.c. This also
4914             allowed these ops to become 'inline' ops, since they no longer
4915             have local variables.
4917             The 'ret' op also became simplified to just "goto POP()", and
4918             also became an inline op.
4920           * interpreter.c reflects the change in type name:
4922               prederef_op_func_t   -->  op_func_prederef_t
4924             that occurred in include/parrot/op.h
4926           * make_vtable_ops.pl uses "goto NEXT()" where it used to use
4927             "return AUTO".
4929           * ops2c.pl is now generic. Its first argument is the last
4930             package name component of a subclass of Parrot::OpTrans. These
4931             subclasses all have full names of the form Parrot::OpTrans::*.
4932             An instance of the class is created and later consulted for
4933             various bits of information needed to generate the C code.
4935           * pbc2c.pl now uses an instance of Parrot::OpTrans::CGoto to
4936             contain its transformation rules.
4938           * stacks.c has a new function pop_dest() that pops a destination
4939             off the control stack. include/parrot/stacks.h has the
4940         prototype.
4942           * Parrot/Op.pm now supports the syntax generated by
4943         Parrot::OpsFile
4944             for the "goto POP" case.
4946             Also, the source() method now expects its second argument to be
4947             an object that ISA Parrot::OpTrans. Methods of this object are
4948             called to perform the substitutions.
4950           * Parrot/OpsFile.pm supports the change in notation mentioned
4951             above.
4953           * docs/intro.pod reflects these changes.
4955           * include/parrot/op.h: Renamed type prederef_op_func_t to
4956             op_func_prederef_t because it made the implementation of the
4957             shared ops2c.pl easier.
4959 2001-12-21 13:47  gregor
4961         * Configure.pl, config_h.in, interpreter.c, test_main.c:
4962         Both test_parrot (via test_main.c) and the intepreter itself (via
4963         interpreter.c) use the JIT_CAPABLE config to decide whether to
4964         actually attempt JIT operation, or to complain.
4966 2001-12-20 23:25  gregor
4968         * core.ops, make_vtable_ops.pl, obscure.ops, Parrot/OpsFile.pm,
4969         lib/Parrot/OpsFile.pm, docs/intro.pod, include/parrot/op.h:
4970         Changes to the format of *.ops files. An attempt to provide hints
4971         for future opfunc processing logic that wants to know if an opfunc
4972         is simple enough to JIT (e.g.) inline, or not.
4974         See the POD in Parrot/OpsFile.pm and the updated docs/intro.pod in
4975         addition to The Source in core.ops and Parrot/OpsFile.pm for more
4976         info.
4978 2001-12-20 21:28  gregor
4980         * Configure.pl, jit.c, jit2h.pl, include/parrot/jit.h,
4981         jit/i386/core.jit:
4982         More JIT stuff:
4984           * A fix to Gregor's last Configure.pl update.
4986           * Remove the need for hardcoded "\n" at the end of the "%f"
4987             format for printing floating-point numbers.
4989           * New, improved *.jit syntax for references to registers,
4990             e.g. INT_REG[n].
4992           * Support for C() improved.
4994         Courtesy of: Daniel Grunblatt <daniel@grunblatt.com.ar>
4996 2001-12-20 16:55  dan
4998         * MANIFEST: Added jit.c to the manifest.
5000 2001-12-20 15:24  simon
5002         * jit2h.pl:
5003         Off-by-one error fixed.
5005 2001-12-20 14:18  simon
5007         * jit/i386/core.jit:
5008         Just a noop. It's the only machine code I know.
5010 2001-12-20 13:10  gregor
5012         * Configure.pl, Makefile.in, jit2h.pl:
5013         Attempt to fix Win32 builds.
5015           * No more empty braces in include/parrot/jit_struct.h
5017         Also:
5019           * ${jitarchname} has the *bsd -> bsd substitution on it, but
5020         ${archname}
5021             does not.
5023 2001-12-20 11:56  simon
5025         * Makefile.in:
5026         De-cp
5028 2001-12-20 01:57  gregor
5030         * Configure.pl, MANIFEST, Makefile.in, interpreter.c, jit.c,
5031         jit2h.pl, test_main.c, Parrot/.cvsignore, Parrot/Jit/i386-bsd.pm,
5032         Parrot/Jit/i386-linux.pm, Parrot/Jit/i386-nojit.pm, docs/jit.pod,
5033         include/parrot/.cvsignore, include/parrot/interpreter.h,
5034         include/parrot/jit.h, jit/i386/core.jit, jit/i386/string.jit,
5035         lib/Parrot/Jit/i386-bsd.pm, lib/Parrot/Jit/i386-linux.pm,
5036         lib/Parrot/Jit/i386-nojit.pm:
5037         Initial JIT implementation.
5039           * Enabled with test_parrot -j. 20x speed boosts seen.
5041           * Unsupported archs mapped to i386-nojit. Don't do -j on them.
5043           * More to come.
5045         Courtesy of: Daniel Grunblatt <daniel@grunblatt.com.ar>
5047 2001-12-20 01:53  jgoff
5049         * MANIFEST, core.ops, t/op/key.t: MANIFEST - Removed t/op/key.t
5050         core.ops - Removed key operators, they should be hidden from the
5051         assembler.  t/op/key.t - No need to test the nonexistent key
5052         operators.
5054 2001-12-20 00:13  ajgough
5056         * core.ops, t/op/stacks.t: Added tests for entrytype op, noticed
5057         that asking for type of entry at depth causes segfault as stack is
5058         zero based, fixed cmp in core.ops to reflect this.  Last test is
5059         skipped as we don't do exceptions right yet.
5061 2001-12-19 19:11  ajgough
5063         * t/op/debuginfo.t: Added C<end> ops to debuginfo.t, as thier
5064         non-being was causing Irix "issues".
5066 2001-12-19 03:37  jgoff
5068         * languages/miniperl/Miniperl/t/: 001_tokenizer.t, 003_generator.t,
5069         004_combined.t: Changed tests to make sure they pass with the
5070         addition of the clone operator.
5072 2001-12-18 20:06  gregor
5074         * interpreter.c, include/parrot/interp_guts.h:
5075         Performance improvements to the predereferencing code path
5076         suggested to me over lunch yesterday by my friend John Kennedy.
5077         The goal is to remove the additional test in the inner loop that
5078         was checking for NULL to decide whether or not to call the
5079         prederef() function. Also moved pc & pc_prederef syncing outside
5080         the inner loop.
5082           * Changed the prototype of the prederef() function in
5083             interpreter.c to match that of an opfunc.
5085           * Instead of initializing the prederef void * array with NULL,
5086             we initialize it with pointers to prederef().
5088           * prederef() now returns the prederef_pc passed in, so that
5089             after predereferencing, the same location is executed, but now
5090             with the real code being called.
5092         Thanks to: John Kennedy
5094 2001-12-18 19:59  ajgough
5096         * t/: op/pmc.t, pmc/pmc.t: Added some more num -> string tests
5097         (including some more in the skipped string -> int tests).
5099 2001-12-18 07:06  jgoff
5101         * MANIFEST: Forgot to add classes/perlarray.pmc
5103 2001-12-18 07:05  jgoff
5105         * Makefile.in, core.ops, global_setup.c, vtable.tbl,
5106         classes/Makefile.in, classes/default.pmc, classes/perlarray.pmc,
5107         classes/perlint.pmc, classes/perlnum.pmc, classes/perlstring.pmc,
5108         classes/perlundef.pmc, include/parrot/pmc.h, t/op/pmc.t,
5109         t/pmc/pmc.t: Big update...  Makefile.in - Added
5110         classes/perlarray.pmc core.ops - Added new series of set() ops for
5111         arrays global_setup.c - Initialized perlarray classes/Makefile.in -
5112         Added perlarray.pmc classes/*.pmc - Added
5113         set_{integer,number,string}_index and
5114         get_{integer,number,string}_index include/parrot/pmc.h - Added new
5115         type t/op/pmc.t - Added basic array test
5117         classes/perlarray.pmc - Added
5119 2001-12-17 05:29  jgoff
5121         * languages/miniperl/Miniperl/Generator.pm: Altered miniperl code
5122         generator to use clone operator instead of set Px,Py
5124 2001-12-17 05:25  jgoff
5126         * core.ops, classes/perlint.pmc, classes/perlnum.pmc,
5127         classes/perlstring.pmc, t/op/pmc.t, t/pmc/pmc.t: Added clone
5128         PMC,PMC operator. Uses the clone() vtable entries.
5130 2001-12-17 04:51  jgoff
5132         * MANIFEST: Added miniperl test suite, removed old Miniperl/Test.pm
5133         entry
5135 2001-12-17 04:41  jgoff
5137         * languages/miniperl/Miniperl/Makefile.PL: Now in its proper
5138         directory...
5140 2001-12-17 04:41  jgoff
5142         * languages/miniperl/Makefile.PL: Moved it to the proper directory.
5144 2001-12-17 04:39  jgoff
5146         * languages/miniperl/: Makefile.PL, Miniperl.pm, miniperlc, mpc,
5147         Miniperl/Tokenizer.pm: Makefile.PL to let us run the test suite in
5148         t/
5150 2001-12-17 04:27  jgoff
5152         * languages/miniperl/Miniperl.pm: Latest version of the driver.
5153         Admittedly it's a little thin on true OO, but the algorithms are
5154         the key.
5156 2001-12-17 04:24  jgoff
5158         * languages/miniperl/Miniperl/t/: 001_tokenizer.t, 002_parser.t,
5159         003_generator.t, 004_combined.t: Much more comprehensive test suite
5160         for the codegen et al
5162 2001-12-17 04:22  jgoff
5164         * languages/miniperl/Miniperl/: Generator.pm, Parser.pm,
5165         Tokenizer.pm: Newer codegen, tightened up parser output, added hash
5166         key handling
5168 2001-12-17 04:20  jgoff
5170         * languages/miniperl/Miniperl/Test.pm: The newer test suite is much
5171         more comprehensive.
5173 2001-12-17 04:17  jgoff
5175         * languages/miniperl/foo.mpl: Test file that'll be outdated by
5176         changes to the new compiler
5178 2001-12-17 04:11  jgoff
5180         * languages/miniperl/t/: harness, 001_basic/basic.t: Moving testing
5181         files to Miniperl/
5183 2001-12-16 14:11  simon
5185         * classes/perlint.pmc, examples/assembly/mops_p.pasm, t/op/pmc.t,
5186         t/pmc/pmc.t:
5187         Fix bogus assumption that multiplying an integer by an integer
5188         yields an integer.
5190 2001-12-16 12:48  simon
5192         * make_vtable_ops.pl:
5193         Fixed op exploder.
5195 2001-12-16 12:45  simon
5197         * make_vtable_ops.pl, Parrot/Vtable.pm, lib/Parrot/Vtable.pm:
5198         Expand multimethod vtable ops.
5200 2001-12-16 12:04  simon
5202         * Makefile.in:
5203         Added 'cvsclean' which doesn't zap CVS/* directories.
5205 2001-12-15 01:50  dan
5207         * include/parrot/string.h: Fixed typo in string.h. lagnuage,
5208         indeed!
5210         Thanks to grunblatt fom #parrot for the catch
5212 2001-12-15 01:39  dan
5214         * .cvsignore, Configure.pl, MANIFEST, languages/jako/Makefile.in,
5215         languages/miniperl/.cvsignore, languages/miniperl/Makefile,
5216         languages/miniperl/Makefile.in,
5217         languages/miniperl/Miniperl/Test.pm, languages/scheme/.cvsignore,
5218         languages/scheme/Makefile, languages/scheme/Makefile.in: Build
5219         tweaks.
5221         Courtesy of: Jay McCarthy <jay@kenyamountain.com>
5223 2001-12-14 17:39  dan
5225         * t/op/trans.t: More trans tests.
5227         Courtesy of: Simon Glover <scog@roe.ac.uk>
5229 2001-12-14 07:41  robert
5231         * make.pl: - define MAKE macro - topological sort and subgraph
5232         order - start of timestamp stuff   (still badly broken)
5234 2001-12-14 06:06  jgoff
5236         * optimizer.pl: Hopefully this should do the trick..
5238 2001-12-14 06:04  jgoff
5240         * Parrot/Optimizer.pm, lib/Parrot/Optimizer.pm: Optimizer
5242           optimizer.pl is the stub, Parrot/Optimizer.pm is the driver.
5244           The optimizer performs its work on a file post-macro expansion.
5245           Run it on a .pasm file, preferably with some trivially reducible
5246         operations
5247           like 'add I0,5,-6' or 'mul I0,I1,0'
5249 2001-12-14 05:48  robert
5251         * Makefile.in: case error EXE -> exe
5253 2001-12-14 05:42  robert
5255         * Makefile.in: remove legacy PDISASM macro
5257 2001-12-14 04:01  dan
5259         * classes/Makefile.in, languages/Makefile.in: Makefile tweaks for
5260         better Win building
5262         Courtesy of: Garrett Goebel <garrett@scriptpro.com>
5264 2001-12-13 22:03  dan
5266         * Configure.pl, Makefile.in, Parrot/Test.pm,
5267         languages/scheme/Makefile, languages/scheme/Scheme/Test.pm,
5268         lib/Parrot/Test.pm: Parrot test prog's now a config variable, so we
5269         can change it without having to change the world.
5271 2001-12-13 21:57  dan
5273         * core.ops, interpreter.c, docs/parrot_assembly.pod,
5274         include/parrot/interpreter.h, t/op/debuginfo.t: Added current
5275         file/line/package to interp structure, with ops to get and set
5276         them. Now we can know where we are!
5278 2001-12-13 19:43  dan
5280         * Configure.pl, Makefile.in: Makefile tweaks to hopefully make
5281         WinXP builds work out of the box
5283 2001-12-13 17:05  dan
5285         * Makefile.in, Parrot/Test.pm, lib/Parrot/Test.pm: Change test prog
5286         name again--makes case-insensitive systems much happier.
5288 2001-12-13 16:21  dan
5290         * core.ops, key.c, string.c, test_main.c, trace.c,
5291         classes/Makefile.in, include/parrot/trace.h: Fixes to clean up
5292         compiler warnings
5294         Courtesy of: Josh Wilmes <josh@sky.net>
5296 2001-12-13 13:33  gregor
5298         * languages/jako/Makefile.in:
5299         Improved the method of calling the assembler.
5301 2001-12-13 13:30  gregor
5303         * languages/jako/Makefile.in:
5304         Improve the build process. It now works from the main parrot dir,
5305         and from the languages/jako directory. Now uses the .SUFFIXES
5306         target and generic build rules to reduce clutter in the
5307         Makefile.in.
5309 2001-12-13 13:29  gregor
5311         * languages/jako/.cvsignore:
5312         Ignore the (now generated Makefile), and don't ignore .list files
5313         anymore, since we aren't generating them.
5315 2001-12-13 13:11  gregor
5317         * Configure.pl, MANIFEST, Makefile.in, languages/.cvsignore,
5318         languages/Makefile.in, languages/jako/Makefile,
5319         languages/jako/Makefile.in:
5320         Added a 'languages' target to the top-level Makefile.in, and
5321         modified the jako build procedure to involve Makefile.in -->
5322         Makefile too (done by Configure.pl).
5324         NOTE: languages/jako and language/scheme are built.
5325         languages/miniperl wasn't building right, so it was left off for
5326         now.
5328 2001-12-13 12:15  gregor
5330         * MANIFEST:
5331         Added MAINTAINER file and mandelzoom.jako from languages/jako to
5332         the MANIFEST.
5334 2001-12-13 12:12  gregor
5336         * .cvsignore, MANIFEST, Makefile.in, core.ops, interpreter.c,
5337         ops2c-prederef.pl, ops2c.pl, test_main.c,
5338         include/parrot/interp_guts.h, include/parrot/interpreter.h,
5339         include/parrot/op.h, include/parrot/oplib/.cvsignore:
5340         Welcome to the Just-in-Time Predereferencing Patch!
5342         This patch implements a "predereferencing" mode for parrot. That
5343         means that a lot of the dereferencing you see in DO_OP and in the
5344         opfuncs is done up front (really, JIT) rather than as and each time
5345         we execute each op in the byte code stream.
5347         This works by creating an array of void pointers with the same
5348         number of elements as the byte code array. This array starts out
5349         life zero-initialized.  Each time we go to execute an op, we check
5350         first to see if we have a NULL pointer at *cur_opcode. If so, we
5351         know we haven't done our predereferencing yet (this is the JIT
5352         part), so we call the prederef() function with sufficient args that
5353         it can go look up opfunc pointers and op arg types and put the
5354         opfunc and arg pointers at cur_opcode[0] .. cur_opcode[N - 1],
5355         where N is the number of args (counting the op itself as one arg).
5357         We assume that sizeof(INTVAL) <= sizeof(void *), so we can continue
5358         to have inline INTVAL constants.
5360         I've been getting about a 22% speed increase over vanilla code path
5361         when I compile with -O0. Advantage decreases at -O9 here. I tested
5362         with mops.pbc, and also by temporarily putting the -P flag in
5363         Parrot/Test.pm and running all the tests. So, this code is as
5364         correct as the test suite can detect.
5366         Here's how it plays out in the code:
5368           * New script ops2c-prederef.pl
5370             Copy-paste code reuse from ops2c.pl. Modified to expect the
5371         args to give
5372             a void ** cur_opcode and to return a void **.
5374           * Modified ops2c.pl
5376               * opfuncs are now static. Who needs to call them by name from
5377         outside,
5378                 anyway? They are accessed via the opfunc table.
5380               * Some MACRO stuff to make things work whether we prederef or
5381         not. It
5382                 may be possible to get rid of these some day if other folks
5383         agree
5384                 that we should be using CODE object pointers + offsets as
5385         our PC
5386                 rather than raw pointers to either opcode_t's or (void *)'s
5387                 (depending on prederef mode or no).
5389           * core.ops modified to be usable to build both kinds of opfuncs.
5390         For now,
5391             this means:
5393               * calls to push_generic_entry(... cur_opcode ...) were
5394         changed to
5395                 push_generic_entry(... CUR_OPCODE ...), where CUR_OPCODE is
5396         a
5397                 macro that does the right thing in both kinds of ops.c
5398         files.
5400                 This is applicable to the bsr op. If we treated
5401         destinations as
5402                 (Code PMC + local offset) rather than as
5403         pointer-to-memory-somewhere,
5404                 this wouldn't be a big deal. We may need to do that at some
5405         point
5406                 anyway, so that when you jump around and return not only do
5407         you have
5408                 the right PC (pointer, today), but you also have the
5409         thread/interpreter
5410                 knowing what chunk of bytecode it is in at all times
5411         (assuming we'll
5412                 allow reflection, as in ops that query or affect the
5413         current CODE PMC).
5415               * runinterp was modified. Instead of copying the top-level
5416         PackFile struct
5417                 and blasting its byte_code pointer, we simply call runops
5418         on the new
5419                 interp, passing in the pointer to the current interp's code
5420         and the
5421                 offset into that code at which to start (this last arg used
5422         to be a
5423                 pointer PC, now its an offset PC).
5425           * include/parrot/op.h
5427               * new typedef for prederef opfuncs (they return void **)
5429           * include/parrot/interp_guts.h
5431               * New DO_OP_PREDEREF() macro described above.
5433           * include/parrot/interpreter.h
5435               * New prototype of runops() -- see below.
5437               * resume_addr field changed to resume_flag and resume_offset
5438         pair of fields.
5439                 We might be resuming from interp using prederef to one not
5440         or vice-versa,
5441                 so pointers between the two don't play nice together.
5442         Offsets are beautiful.
5444               * New PARROT_PREDEREF_FLAG constant
5446           * interpreter.c
5448               * include "parrot/oplib/core_ops_prederef.h"
5450               * prederef() function described above.
5452               * runops_prederef() runops variant. Uses DO_OP_PREDEREF()
5453         macro as its core.
5455               * runops() modified to take size_t CODE-relative offset PC
5456         rather than
5457                 pointer PC. This made other things workable and doesn't
5458         seem to have lost
5459                 anything important (IMO).
5461           * test_main.c
5463               * New flag '-P' to enable predereferencing.
5465           * Makefile modified to build core_ops_prederef.c from core.ops
5466         via
5467             ops2c-prederef.pl.
5469             BTW, also added missing $(INC)/interp_guts.h to H_FILES.
5471             Added core_ops_prederef$(O) to O_FILES
5473 2001-12-13 12:12  gregor
5475         * languages/jako/MAINTAINER:
5476         Thought it would be nice to put this right in the code...
5478 2001-12-13 04:36  jgoff
5480         * languages/miniperl/Miniperl/Generator.pm: Commented out
5481         debugging, fixed register spillover algorithm
5483 2001-12-13 04:23  jgoff
5485         * make.pl: Found and fixed obob in the parser (Wasn't parsing last
5486         line) Restructured a bit of the dependency generator to fix a
5487         different obob bug.
5489 2001-12-13 03:43  robert
5491         * MANIFEST, docs/opcodes.pod: remove old docs/opcodes.pod
5493 2001-12-13 03:03  jgoff
5495         * make.pl: Added make.pl
5497 2001-12-13 02:44  jgoff
5499         * languages/miniperl/Miniperl.pm: Nearly-complete 'make'
5500         replacement in perl.  Non-compliant bits - Takes absolutely -NO-
5501         special flags...                     - Dies on undefined macros
5502         such as $(PDISASM) in current make                     - Dies on
5503         recursive macro expansions                       (Doesn't test for
5504         mutual or multipart loops)                     - In general it
5505         seems to be a little less lenient...  Missing bits - File
5506         mod/creation times aren't being looked at              - Actions
5507         aren't being taken              - The few funky variables ($@, $<)
5508         aren't being dealt with Bugs - Line numbers are slipping a bit.
5510 2001-12-13 02:29  jgoff
5512         * languages/miniperl/Miniperl/: Generator.pm, Parser.pm:
5513         Reconstructing files to make the parser flow a little better.
5515 2001-12-13 00:51  dan
5517         * resources.c: Be a bit less wasteful with resources that don't
5518         need to be aligned
5520 2001-12-12 18:22  dan
5522         * Makefile.in: D'oh! Fixed looping makefile bug.
5524         Courtesy of: "Jaen Saul" <jaen@saul.ee>
5526 2001-12-12 16:23  jgoff
5528         * languages/miniperl/t/001_basic/basic1.scheme: Bogus entry
5530 2001-12-12 16:22  jgoff
5532         * MANIFEST: Manifest additions for languages/miniperl
5534 2001-12-12 16:19  jgoff
5536         * languages/miniperl/t/001_basic/: basic.t, basic1.scheme: Basic
5537         tests. These are left over from the Scheme suite and shouldn't be
5538         used yet.
5540 2001-12-12 16:18  jgoff
5542         * languages/miniperl/: Miniperl/Generator.pm, Miniperl/Parser.pm,
5543         Miniperl/Test.pm, Miniperl/Tokenizer.pm, t/harness: Miniperl base
5544         modules. Miniperl/ is where the real work gets done.  t/ is largely
5545         vacant because it isn't ready to survive real tests yet.
5547 2001-12-12 16:17  jgoff
5549         * languages/miniperl/: Makefile, Miniperl.pm, foo.mpl, miniperlc,
5550         mpc: Final go-round, hopefully.
5552         languages/miniperl/Makefile - Used basically to run tests, as there
5553         is nothing                               here that needs to be
5554         dynamically built.  languages/miniperl/Miniperl.pm - Stub module
5555         that calls the real Miniperl/ mods languages/miniperl/foo.mpl -
5556         Sample miniperl file.  languages/miniperl/miniperlc - Miniperl
5557         compiler stub
5559 2001-12-12 16:09  dan
5561         * Configure.pl: Setting a variable with the make command name is
5562         useful.
5564 2001-12-12 15:07  simon
5566         * Makefile.in, languages/jako/Makefile, languages/scheme/Makefile:
5567         Recursive make considered "ow, don't do that".
5569 2001-12-12 14:45  dan
5571         * Makefile.in: Makefile had some non-portable code. (Okay, a lot of
5572         non-portable code) Killing builds on Win32 native. Small patch
5573         applied which hopefully fixes it.
5575 2001-12-12 06:12  ajgough
5577         * classes/Makefile.in: perl is $(PERL), you know it makes sense.
5579 2001-12-12 06:08  ajgough
5581         * Makefile.in: perl is $(PERL).
5583 2001-12-12 06:00  ajgough
5585         * t/op/integer.t: Added tests to integer.t so that all permutations
5586         of arguments are actually called at some point.
5588 2001-12-12 05:18  ajgough
5590         * t/op/time.t: I can't sleep, but I don't see why parrot shouldn't.
5591          Tests for sleep i|ic
5593 2001-12-12 05:09  ajgough
5595         * t/op/stacks.t: Added pushp and popp register stack tests.
5597 2001-12-12 04:51  ajgough
5599         * t/op/stacks.t: Added tests for save and restore, for all register
5600         types.  Let there be Haiku.
5602 2001-12-12 04:27  ajgough
5604         * t/op/basic.t: bsr_i test.  You know you want it.
5606 2001-12-12 02:55  ajgough
5608         * MANIFEST: Added hints/os2.pl to MANIFEST.
5610 2001-12-12 02:52  jgoff
5612         * core.ops, key.c: Final checkin... These are actually the correct
5613         copies.
5615 2001-12-12 02:12  jgoff
5617         * include/parrot/key.h: key.c - Removed a few functions,
5618         generalized set_element_value and element_value         to accept
5619         KEY_PAIRs from core.ops include/parrot/key.h - Modified header.
5620         core.ops - Modified to accept the new return style.
5622         This is a prelude to adding virtual-table methods to allow hashing
5623         &c. Expect at least one or two more redesigns before this settles
5624         down. However, it still passes the original tests.
5626 2001-12-11 13:35  gregor
5628         * runops_cores.c:
5629         Fixed a typo.
5631 2001-12-11 12:03  gregor
5633         * .cvsignore:
5634         Don't ignore test_prog, but do ignore parrot.
5636 2001-12-11 12:03  gregor
5638         * classes/.cvsignore:
5639         Ignore the generated file default.h
5641 2001-12-11 04:07  jgoff
5643         * key.c: Key source
5645 2001-12-11 04:05  jgoff
5647         * include/parrot/key.h, t/op/key.t: Needed header file, new test
5649 2001-12-11 04:00  jgoff
5651         * core.ops: Added new key aggregate operations to core ops.
5653 2001-12-11 04:00  jgoff
5655         * include/parrot/parrot.h: Added key.h to header list
5657 2001-12-11 03:59  jgoff
5659         * MANIFEST: Added key.c, include/parrot/key.h, t/op/key.t
5661 2001-12-11 03:58  jgoff
5663         * Makefile.in: Added implementation of key aggregates.
5665 2001-12-08 23:07  simon
5667         * README:
5668         README good to go.
5670 2001-12-08 23:05  simon
5672         * Configure.pl, Makefile.in, README, Parrot/Test.pm,
5673         docs/intro.pod, languages/jako/Makefile, languages/scheme/Makefile,
5674         languages/scheme/Scheme/Test.pm, lib/Parrot/Test.pm:
5675         test_prog? What is test_prog?
5677 2001-12-08 22:57  simon
5679         * ChangeLog:
5681         Oops, the changelog commit was on *this* machine.
5683 2001-12-08 22:56  simon
5685         * NEWS:
5686         Updates to NEWS and ChangeLog pre-release.
5688 2001-12-08 22:07  simon
5690         * MANIFEST, Makefile.in, classes/Makefile.in, classes/default.pmc,
5691         classes/perlnum.pmc, classes/pmc2c.pl:
5692         Add "default" PMC vtable so you can inherit implied stuff.
5694 2001-12-08 21:24  simon
5696         * Parrot/PackFile.pm, docs/parrot.pod, docs/parrotbyte.pod,
5697         docs/vtables.pod, lib/Parrot/PackFile.pm:
5698         Getting the documentation up to scratch.
5700 2001-12-08 21:21  simon
5702         * classes/pmc2c.pl:
5703         Allow inheriting from default class.
5705 2001-12-07 20:43  gregor
5707         * examples/assembly/queens.pasm:
5708         Regenerated the file with the latest jakoc.
5710 2001-12-07 20:29  simon
5712         * core.ops, t/op/stacks.t:
5713         Rename "rotate" to "rotate_up".
5715 2001-12-07 20:15  simon
5717         * t/op/stacks.t:
5718         Some tests for rotate.
5720 2001-12-07 00:55  gregor
5722         * core.ops:
5723         Cast the result of the pointer arithmetic, since without the cast
5724         there are warnings with some compilers, and without the parens
5725         around the pointer arithmetic, precedence breaks the meaning and
5726         causes crashes.
5728 2001-12-06 23:37  simon
5730         * core.ops:
5731         Temporary. I prefer compiler warnings to segfaults, thanks.
5733 2001-12-06 23:34  simon
5735         * runops_cores.c:
5736         Make "trace" work again.
5738 2001-12-06 21:23  dan
5740         * Parrot/Test.pm, lib/Parrot/Test.pm: Undo twiddles to test.pm
5742 2001-12-06 21:22  dan
5744         * core.ops, packfile.c, Parrot/Test.pm, include/parrot/stacks.h,
5745         lib/Parrot/Test.pm: Fix up source issues that made Dec C unhappy
5747 2001-12-06 19:22  simon
5749         * core.ops:
5750         Yet another "How the *%$! did that compile?" moment.
5752 2001-12-06 18:28  dan
5754         * hints/vms.pl: Fix to build, with a HERE logical required
5756 2001-12-06 17:48  dan
5758         * core.ops, interpreter.c, pbc2c.pl, pdump.c, test_main.c,
5759         docs/parrot_assembly.pod, include/parrot/interpreter.h: Sensible
5760         changes to the interpreter--flags are now part of the interp
5761         structure.
5763         Courtesy of "Melvin Smith" <mrjoltcola@mindspring.com>
5765 2001-12-06 14:02  gregor
5767         * docs/intro.pod:
5768         s/little_languages/languages/ in Jako section.
5770 2001-12-06 13:15  simon
5772         * Makefile.in:
5773         Ensure the documentation gets made.
5775 2001-12-06 13:12  simon
5777         * MANIFEST, docs/intro.pod:
5778         Documentation! Added the "Some Assembly Required" article with
5779         minor updates.
5781 2001-12-06 00:39  simon
5783         * core.ops:
5784         More "eq" support.
5786         Courtesy of: Nguon Hao Ching <hao@netaxs.com>
5788 2001-12-06 00:37  simon
5790         * test_main.c:
5791         Add the "-d" debug flag. Doesn't actually *do* anything yet.
5793         Courtesy of: Melvin <mrjoltcola@mindspring.com>
5795 2001-12-06 00:11  tom
5797         * string.c, chartypes/unicode.c, chartypes/usascii.c,
5798         encodings/singlebyte.c, encodings/utf16.c, encodings/utf8.c,
5799         include/parrot/chartype.h, include/parrot/encoding.h,
5800         include/parrot/parrot.h: Moved string to number conversion code out
5801         of the encoding layer and into the main string layer as neither the
5802         encoding layer nor the character type layer knows enough on it's
5803         own to do the conversion correctly.
5805 2001-12-05 23:12  tom
5807         * Makefile.in: Rebuild the classes directory if any of the object
5808         files for the classes are missing rather than only when perlint.o
5809         is missing.
5811 2001-12-05 19:43  gregor
5813         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm:
5814           * Reworked the constantize_string() stuff a little bit because it
5815         was
5816             puking on things like "\033[H\033[2J\0" (which occurs in the
5817             languages/jako/mandelzoom.jako example).
5819 2001-12-05 19:39  gregor
5821         * languages/jako/: Makefile, mandelzoom.jako:
5822         Added 'mandelzoom' example.
5824 2001-12-05 19:38  gregor
5826         * languages/jako/jakoc:
5827           * Added sleep()
5829           * Changed some instances of die() to confess()
5831 2001-12-05 18:34  gregor
5833         * t/: op/pmc.t, pmc/pmc.t:
5834         s/sting->int/string->int/
5836 2001-12-05 18:08  gregor
5838         * Parrot/.cvsignore:
5839         Ignore PMC.pm
5841 2001-12-05 18:05  gregor
5843         * classes/.cvsignore:
5844         Ignore the generated files.
5846 2001-12-05 17:19  gregor
5848         * pbc2c.pl:
5849           * Reverted recent changes, since they broke the script. Real fix
5850         coming
5851             later.
5853 2001-12-05 17:03  simon
5855         * classes/Makefile.in:
5856         Remember: change Makefile.in, not Makefile. D'oh.
5858 2001-12-05 17:02  simon
5860         * Makefile.in:
5861         Ensure PMC.pm gets remade.
5863 2001-12-05 16:58  simon
5865         * MANIFEST, Makefile.in, classes/Makefile.in,
5866         classes/perlundef.pmc, include/parrot/pmc.h:
5867         Add perlundef class.
5869 2001-12-05 16:45  simon
5871         * core.ops:
5872         Document "new P0, foo"
5874 2001-12-05 16:43  simon
5876         * MANIFEST, Makefile.in, pbc2c.pl, pmc_pm.pl, Parrot/Assembler.pm,
5877         lib/Parrot/Assembler.pm, t/op/pmc.t, t/pmc/pmc.t:
5878         Allow assembler to know about PMC class names.
5880 2001-12-04 13:39  ajgough
5882         * MANIFEST: Added t/op/pmc.t to MANIFEST.
5884 2001-12-04 05:02  ajgough
5886         * classes/perlnum.pmc: Picky compiler pointed out probable thinko
5887         in perlnum.c
5889 2001-12-04 04:24  ajgough
5891         * encodings/singlebyte.c, t/op/pmc.t, t/pmc/pmc.t: A much less
5892         broken form of strtod and appropriate tests.  Does not yet check
5893         for overflow.
5895 2001-12-04 01:31  ajgough
5897         * string.c, encodings/singlebyte.c, encodings/utf16.c,
5898         encodings/utf8.c, include/parrot/encoding.h: Added length parameter
5899         to extract_num and extract_int string vtables, without this it
5900         would be impossible to have strings with nulls in while still
5901         knowing where they ended.
5903 2001-12-03 18:40  ajgough
5905         * string.c, classes/perlstring.pmc, encodings/singlebyte.c,
5906         encodings/utf16.c, encodings/utf8.c, include/parrot/encoding.h,
5907         include/parrot/string.h: Moved pmc string to number conversion into
5908         the string encoding tables.
5910 2001-12-03 00:21  ajgough
5912         * core.ops, t/op/pmc.t, t/pmc/pmc.t: Added set i, p and some tests
5913         for p-> integer.
5915 2001-12-02 23:09  jgoff
5917         * classes/Makefile.in: Removed some redundant targets.
5919 2001-12-02 19:02  ajgough
5921         * t/: op/pmc.t, pmc/pmc.t: Modified all pmc tests to make use of fp
5922         equality macro rather than using perl to generate expected output,
5923         all tests now have <<OUTPUT.
5925 2001-12-02 17:44  ajgough
5927         * t/op/trans.t: Upgraded fp_eq and fp_ne macros to be more useful
5928         for pmc.t as well.  Will probably move macros into another file at
5929         some point, although this might be best left until the tests are
5930         unperled.
5932 2001-12-02 06:16  jgoff
5934         * classes/pmc2c.pl: It wasn't properly setting the vtable index
5935         within Parrot_Perl{Class}_init.
5937 2001-12-02 06:09  jgoff
5939         * classes/Makefile.in: I seem to have removed *$(O) twice..
5941 2001-12-02 05:06  jgoff
5943         * Configure.pl, MANIFEST, Makefile.in: (Hopefully the last time...)
5944         Configure.pl - Removed '-I./include', added classes/Makefile
5945         generation MANIFEST     - Added classes/Makefile.in Makefile.in  -
5946         Removed old classes/* make stuff                Added target for
5947         classes/Makefile
5949 2001-12-02 04:48  jgoff
5951         * classes/Makefile.in: Going to be used shortly...
5953 2001-12-02 04:40  jgoff
5955         * docs/Makefile: Configure.pl - Added automatic makefile creation
5956         for docs/ and classes/                Removed '-I./include' because
5957         it was getting incorrectly                passed to classes/
5958         MANIFEST - added docs/Makefile.in, classes/Makefile.in Makefile.in
5959         - Removed classes/ build stuff, replaced with classes/Makefile.in
5960                     Added '-I./include' locally docs/Makefile - Should no
5961         longer be used, but I'm not brave enough to do a
5962         cvs delete.
5964 2001-12-02 01:21  ajgough
5966         * t/op/trans.t: Refactored trans math tests to have hard coded
5967         expected return values and be more ready to be unperled at some
5968         point in the future.  Added $fp_equality_macro which is a
5969         "nearly-equal-to" function.
5971 2001-12-02 01:18  ajgough
5973         * Makefile.in: Humph.  People really ought to use Makefile
5974         variables, s/perl/$(PERL)/ throughout.
5976 2001-12-01 18:15  jgoff
5978         * classes/: perlint.pmc, perlnum.pmc: Temporary patch until we
5979         figure out what to do vis-a-vis the lack of snprintf.
5981 2001-11-30 13:14  ajgough
5983         * t/op/: integer.t, number.t: Added tests for abs ops to number.t
5984         and integer.t
5986 2001-11-30 13:14  ajgough
5988         * core.ops: Added abs(i|n, i|ic|n|nc) ops to core.ops, using if <0
5989         -, else ... form.
5991 2001-11-30 10:36  simon
5993         * core.ops:
5994         Rewrite print_p to do the right thing.
5996 2001-11-30 06:21  jgoff
5998         * t/: op/pmc.t, pmc/pmc.t: New tests for integer/number/string
5999         concat,               integer/number/string math
6001 2001-11-30 06:20  jgoff
6003         * classes/: perlint.pmc, perlnum.pmc, perlstring.pmc:
6004         classes/perlint.pmc - Fixes and expanding for concat and math with
6005         strings classes/perlnum.pmc - Fixes and expanding for concat and
6006         math with strings classes/perlstring.pmc - Fixes and expanding for
6007         concat and math with strings
6009 2001-11-29 15:21  ajgough
6011         * hints/os2.pl: This is a hints file for os/2, I've set $c{perl} as
6012         $^X lies, which confused bash which make uses to run things when
6013         doing its stuff.
6015 2001-11-29 04:58  jgoff
6017         * classes/perlstring.pmc: Removed C++-style comments for good
6018         measure
6020 2001-11-29 04:51  jgoff
6022         * t/: op/pmc.t, pmc/pmc.t: New tests for PMC integers
6024 2001-11-29 04:28  jgoff
6026         * global_setup.c: Initialize PMC strings
6028 2001-11-29 04:25  jgoff
6030         * core.ops: Added set_p_s and set_p_sc, modified print_p to handle
6031         string PMCs.
6033 2001-11-29 04:24  jgoff
6035         * classes/: perlint.pmc, perlnum.pmc, perlstring.pmc: Changed PMC
6036         files to properly upgrade int to num, do calculations.  Also added
6037         basic string operations. Currently errors out on anything but set
6038         operations, but this will be fixed soon.
6040 2001-11-29 04:22  jgoff
6042         * Makefile.in: PMC .c files weren't getting cleaned out.
6044 2001-11-28 17:00  simon
6046         * t/harness:
6048         Make csh-glob happy.
6050         Courtesy of: Andy Dougherty: <doughera@lafayette.edu>
6052 2001-11-28 16:40  simon
6054         * classes/perlnum.pmc:
6056         De-C++
6058 2001-11-28 15:22  simon
6060         * string.c:
6062         Fixes Alex's string concat worry.
6064 2001-11-28 14:27  ajgough
6066         * t/op/string.t: test "null onto null" incorrectly passing as it
6067         produced no output.  Output provided.
6069 2001-11-28 11:14  simon
6071         * include/parrot/pmc.h:
6073         Placate AIX.
6075 2001-11-26 21:03  dan
6077         * MANIFEST, hints/darwin.pl: Tweaks to build on Mac OS X 10.1
6079 2001-11-26 17:29  simon
6081         * classes/perlint.pmc:
6083         Various subtle but non-showstopper bugs.
6085 2001-11-26 11:23  simon
6087         * classes/pmc2c.pl:
6089         Replace dependency on Text::Balanced
6091         Courtesy of: Bart Lateur <bart.lateur@pandora.be>
6093 2001-11-26 05:22  jgoff
6095         * global_setup.c: Last file that should need to be committed. I
6096         swear.
6098 2001-11-26 05:09  jgoff
6100         * core.ops: Let's try this again... Changes to core.ops required
6102 2001-11-26 04:58  jgoff
6104         * classes/perlint.pmc, classes/perlnum.pmc, t/op/pmc.t,
6105         t/pmc/pmc.t: Makefile.in - Added missing cleanup line for perl*.c
6106         core.ops - Added set(p,n|nc), modified print(p) global_setup.c -
6107         Uncommented PerlNum_init classes/perlint.pmc - Added set_number
6108         functions classes/perlnum.pmc - Set up basic number functions
6109         t/op/pmc.t - Added tests for set P0.<number> and {add,mul,sub,div}
6110         tests against numbers and numbers+integers
6112 2001-11-25 13:18  simon
6114         * Makefile.in:
6115         Windows XP make doesn't like $<
6117 2001-11-25 12:56  simon
6119         * MANIFEST, Makefile.in, classes/genclass.pl, classes/perlint.c,
6120         classes/perlint.pmc, classes/perlnum.c, classes/perlnum.pmc,
6121         classes/perlstring.c, classes/perlstring.pmc, classes/pmc2c.pl,
6122         examples/assembly/mops_p.pasm:
6123         PMC preprocessor.
6125         Courtesy of: Angel Faus <afaus@corp.vlex.com>
6127         I (Simon) also added a couple more integer methods, but no tests
6128         since I'm a Bad Person.
6130 2001-11-25 08:40  brentdax
6132         * ops2c.pl, Parrot/Op.pm, Parrot/OpsFile.pm, lib/Parrot/Op.pm,
6133         lib/Parrot/OpsFile.pm: Allow _ in op names
6135 2001-11-25 05:54  jgoff
6137         * classes/perlint.c, t/op/pmc.t, t/pmc/pmc.t: classes/perlint.c -
6138         Added basic math ops t/op/pmc.t - Added tests of basic math ops
6140 2001-11-23 18:27  simon
6142         * core.ops, classes/perlint.c, examples/assembly/mops_p.pasm:
6143         Add everything you need to make MOPS use PMCs.
6145 2001-11-23 18:06  simon
6147         * core.ops:
6148         Eh, you'll need this for rewriting mops.pasm.
6150 2001-11-23 17:55  simon
6152         * core.ops, classes/perlint.c, include/parrot/pmc.h, t/op/pmc.t,
6153         t/pmc/pmc.t:
6154         More work on integer PMCs.
6156 2001-11-23 17:29  simon
6158         * Makefile.in:
6159         Surprise! Whitespace! HLAGHLAGHLAGH
6161 2001-11-23 17:28  simon
6163         * Makefile.in, ops2c.pl, ops2pm.pl:
6164         Add vtables.ops to the core
6166         Courtesy of: Jeff Goff <jgoff@speakeasy.net>
6168 2001-11-22 18:39  simon
6170         * core.ops, global_setup.c, docs/parrot_assembly.pod, t/op/pmc.t,
6171         t/pmc/pmc.t:
6172         We can now create PMCs.
6174 2001-11-21 05:49  jgoff
6176         * Makefile.in: Makefile cleans up *.pasm *.pbc *.out
6178 2001-11-20 16:00  simon
6180         * docs/vtables.pod, include/parrot/pmc.h:
6181         Reorder PMC flags so there's a fixed number of user-defined flags.
6183         Courtesy of: Dave Mitchell <davem@fdgroup.co.uk>
6185 2001-11-19 03:39  jgoff
6187         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm, t/op/basic.t:
6188         Parrot/Assembler.pm - Allow "print 'foo'", and properly escape
6189         nested quotes.  t/op/basic.t - Add tests for single-quoted strings,
6190         escaped quotes, and proper                handling of newlines.
6192 2001-11-16 22:03  simon
6194         * classes/perlint.c:
6195         More work on the Perl Integer class. More needed, though.
6197 2001-11-16 21:57  simon
6199         * pmc.c, vtable.tbl, classes/genclass.pl, classes/perlint.c:
6200         Rename ->new to ->init, and rework pmc.c:pmc_new to fiddle it.
6202 2001-11-16 20:49  simon
6204         * interpreter.c, runops_cores.c, trace.c,
6205         include/parrot/runops_cores.h:
6206         Kill superfluous runops cores.
6208 2001-11-16 17:50  simon
6210         * MANIFEST, Makefile.in, classes/intclass.c, classes/perlint.c,
6211         classes/perlnum.c, classes/perlstring.c, classes/scalarclass.c,
6212         include/parrot/parrot.h, include/parrot/pmc.h:
6213         Skeleton for Perl scalar types, done right.
6215 2001-11-16 16:15  simon
6217         * classes/genclass.pl:
6218         This tidies up genclass to deal with the new-style multimethods.
6220 2001-11-16 15:29  simon
6222         * Makefile.in, make_vtable_ops.pl, vtable.tbl, Parrot/Vtable.pm,
6223         lib/Parrot/Vtable.pm, include/parrot/parrot.h:
6224         Rework multimethods to be *true* multimethods - that is, have
6225         different types.
6227 2001-11-15 22:29  simon
6229         * MANIFEST, Makefile.in, pmc.c:
6230         pmc.c linkage and support. Oh, and making it compile.
6232 2001-11-15 22:26  dan
6234         * t/op/interp.t: Forgot to tell CVS about the test...
6236 2001-11-15 22:10  dan
6238         * MANIFEST, Types_pm.in, core.ops, vtable_h.pl,
6239         docs/parrot_assembly.pod, include/parrot/string.h: Added in support
6240         for PMC registers for the interpreter.
6242         Added in the docs for the runinterp opcode.
6244         Added in code for both the newinterp and runinterp opcodes, so we
6245         can now create new interpreters from within parrot and have them do
6246         things. (Though we can't pass data back and forth. Yet)
6248 2001-11-15 21:24  simon
6250         * vtable.tbl, classes/scalarclass.c, docs/vtables.pod:
6251         More documentation, and other changes as discussed with Dan.
6253 2001-11-15 19:51  simon
6255         * classes/scalarclass.c:
6256         De-cut-and-pasto.
6258 2001-11-15 19:50  simon
6260         * classes/scalarclass.c:
6261         A little code tidiness.
6263 2001-11-15 19:33  simon
6265         * include/parrot/pmc.h:
6266         Missed this in the previous commit - un-constantize the base for
6267         user-defined PMC flags.
6269 2001-11-15 19:28  simon
6271         * classes/scalarclass.c:
6272         Hey look, sanity.
6274 2001-11-15 17:09  simon
6276         * classes/scalarclass.c:
6277         It seems I have completely forgotten how to write C.
6279 2001-11-15 16:53  simon
6281         * docs/vtables.pod:
6282         Start of the PMC classes documentation.
6284 2001-11-15 14:46  simon
6286         * classes/scalarclass.c:
6287         Changing to use a Perl-style struct instead of the union cache.
6289 2001-11-13 23:56  tom
6291         * string.c: Removed leading _ from string_index as function names
6292         starting with _ are reserved to implementors by the C standard.
6294         Also fixed string_index to use the encoding routines instead of
6295         assuming a single byte encoding.
6297 2001-11-13 12:59  jgoff
6299         * string.c: Patched string_concat to accept null strings.  That
6300         test was failing. Nothing to do with ord().
6302 2001-11-13 12:43  jgoff
6304         * string.c: string_ord function, string_concat fixes
6306 2001-11-13 04:52  jgoff
6308         * core.ops: Added ord to core.ops
6310 2001-11-13 04:35  jgoff
6312         * docs/strings.pod, include/parrot/exceptions.h,
6313         include/parrot/string.h, t/op/string.t: core.ops - Added ord
6314         operator, documentation string.c - Added string_ord, _string_index
6315         (_string_index is a static helper)              Patched
6316         string_concat to handle null strings properly.  docs/strings.pod -
6317         Description of string_ord include/parrot/exceptions.h - Added
6318         ORD_OUT_OF_STRING exception include/parrot/string.h - Added
6319         string_ord() t/op/string.t - Added full set of test for
6320         ord_i_(s|sc)(_(i|ic))?
6322         string.c contains a bit of documentation explaining the logic
6323         behind _string_index, primarily having to do with multiple encoding
6324         formats.
6326 2001-11-12 22:30  simon
6328         * t/op/macro.t:
6329         Count 'em.
6331 2001-11-12 22:28  simon
6333         * Makefile.in:
6334         Add a rule to compile "platform"
6336 2001-11-12 22:26  simon
6338         * Makefile.in:
6339         Tidy up distclean target.
6341 2001-11-12 16:54  dan
6343         * MANIFEST, Parrot/Assembler.pm, lib/Parrot/Assembler.pm,
6344         t/op/macro.t: Fixes to the assembler's macro facility and a test
6346         Courtesy of: Jeff <jgoff@speakeasy.net>
6348 2001-11-12 16:50  dan
6350         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm: Allow input from
6351         stdin
6353         Courtesy of: Jeff <jgoff@speakeasy.net>
6355 2001-11-12 16:36  dan
6357         * Parrot/Test.pm, lib/Parrot/Test.pm: Fix to make test work on
6358         CygWin
6360         Courtesy of: Alex Gough <alexander.gough@st-hughs.oxford.ac.uk>
6362 2001-11-12 11:22  simon
6364         * examples/assembly/mops.pasm:
6366         Trivial tightening of mops loop.
6368 2001-11-07 23:57  ajgough
6370         * docs/tests.pod: This is a basic quide to writing tests with
6371         assembler.
6373 2001-11-07 22:29  dan
6375         * stacks.c: Added a little documentation on the cleanup parameter
6376         for an entry
6378 2001-11-07 14:43  dan
6380         * MANIFEST, platforms/generic.c, platforms/linux.c,
6381         platforms/linux.h: Portability patches.
6383         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
6385 2001-11-06 19:51  tom
6387         * Makefile.in: Clean up object files in the subdirectories as well
6388         as those in the top level directory.
6390         Enhanced version of patch from Daniel Grunblatt
6391         <daniel@grunblatt.com.ar>
6393 2001-11-06 16:14  dan
6395         * Configure.pl, MANIFEST, Makefile.in, core.ops,
6396         platforms/generic.c, platforms/generic.h: Made things a bit more
6397         platform-independent. Makefile still needs work to pick up changes
6398         to the platform-specific files.
6400 2001-11-05 21:32  dan
6402         * docs/parrot_assembly.pod: Added docs for the GC control ops
6404 2001-11-04 02:52  gregor
6406         * platforms/: win32.c, win32.h:
6407           * win32 dynamic loading functions.
6409         Courtesy of Jason Diamond <jason@injektilo.org>
6411 2001-11-04 00:04  brentdax
6413         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm: Assembler fixes:
6414         allows an absolute path to be used and gives a useful error message
6415         if the original source file can't be found
6417 2001-11-02 12:37  gregor
6419         * platforms/: linux.c, linux.h:
6420           * Beginning of dynamic loading support. Linux only for now.
6422 2001-11-02 12:13  gregor
6424         * MANIFEST, time.c, include/parrot/time.h:
6425           * Removed time.[hc], since they have been superseded by the new
6426         platform
6427             stuff.
6429 2001-11-02 12:11  gregor
6431         * Configure.pl, Makefile.in, core.ops, vtable.tbl,
6432         classes/intclass.c, classes/scalarclass.c, hints/mswin32.pl,
6433         include/parrot/parrot.h, platforms/linux.c, platforms/linux.h,
6434         platforms/win32.c, platforms/win32.h:
6435         Patch from Jason Diamond to make win32 platform stuff work:
6437         * Modified Configure.pl, mswin32.pl, and Makefile.in so that the
6438         platform specific files in the platforms directory gets copied to
6439         the correct directories. The Makefile will re-copy the platform.h
6440         and .c files if the original is modified.
6442         * #include platform.h in parrot.h instead of time.h.
6444         * Removed time.h and time.obj from the Makefile. time.h and time.c
6445         aren't being used anymore since that code was moved to linux.c and
6446         win32.c.
6448         * Renamed the BOOL typedef in parrot.h to BOOLVAL (inspired by
6449         INTVAL and FLOATVAL). This was conflicting with the BOOL typedef in
6450         windows.h. This required updating several files besides parrot.h.
6452         * Added a DEFAULT_OPEN_MODE to linux.h and win32.h and used that
6453         instead of the missing identifiers (on Windows) in core.ops in the
6454         calls to open.
6456         * Added Parrot_sleep and Parrot_setenv to both the linux and win32
6457         platform files and called those from core.ops. The Linux code for
6458         these functions came from core.ops so they should hopefully work.
6460         Courtesy of Jason Diamond <jason@injektilo.org>
6462 2001-11-02 06:43  brentdax
6464         * Makefile.in, hints/mswin32.pl: Fix classes/intclass.obj building
6465         for Win32 (courtesy of Jason Diamond <jason@injektilo.org>)
6467 2001-11-02 02:26  gregor
6469         * .cvsignore, MANIFEST, include/parrot/.cvsignore,
6470         platforms/linux.c, platforms/linux.h, platforms/win32.c,
6471         platforms/win32.h:
6472           * Beginnings of platform support files in platform/*.[hc]
6474 2001-11-01 23:37  tom
6476         * classes/intclass.c: Added missing *'s to STRING arguments and
6477         return values to avoid compiler warnings.
6479 2001-11-01 22:21  gregor
6481         * MANIFEST, Makefile.in, core.ops, obscure.ops, time.c,
6482         include/parrot/parrot.h, include/parrot/time.h:
6483         Initial "fix" of time(n) op for Win32:
6485           * Initial Win32 code Courtesy of Richard J Cox <rjcox@cix.co.uk>
6487           * time.c and include/parrot/time.h
6489             First attempt at getting this working across platforms. The
6490             macro WIN32 being tested might not be right.
6492           * New functions Parrot_intval_time() and Parrot_floatval_time()
6493             wrap the appropriate functionality depending upon platform.
6494             Changed core.ops to call these.
6496         Added obscure.ops with obscure transcendental ops.
6498         Added simple file I/O ops (close, open, read, write):
6500           * Initial versions Courtesy of Jeff <jgoff@speakeasy.net>
6502           * I changed some arg ordering stuff.
6504           * I added read/write of INTVALs and FLOATVALs.
6506         Added environment variable ops (getenv, setenv)
6508         Added system error ops (err(i) and err(s) for accessing errno and
6509         strerr().
6511         Moved print ops in with other "temporary" developer ops, since
6512         they'll move to a devel.ops or temp.ops oplib once we have oplibs.
6514 2001-10-31 22:51  tom
6516         * MANIFEST, Makefile.in, chartype.c, encoding.c, global_setup.c,
6517         packfile.c, string.c, strnative.c, strutf16.c, strutf32.c,
6518         strutf8.c, transcode.c, chartypes/unicode.c, chartypes/usascii.c,
6519         encodings/singlebyte.c, encodings/utf16.c, encodings/utf32.c,
6520         encodings/utf8.c, include/parrot/chartype.h,
6521         include/parrot/encoding.h, include/parrot/exceptions.h,
6522         include/parrot/parrot.h, include/parrot/string.h,
6523         include/parrot/strnative.h, include/parrot/strutf16.h,
6524         include/parrot/strutf32.h, include/parrot/strutf8.h,
6525         include/parrot/transcode.h: Reworked the string code in line with
6526         Dan's latest design that separates character sets from encodings.
6528 2001-10-31 19:53  dan
6530         * docs/parrot_assembly.pod: Finished I/O section of docs
6532 2001-10-31 16:51  dan
6534         * core.ops, docs/parrot_assembly.pod, include/parrot/parrot.h:
6535         Moved includes out of core.ops and into parrot.h where they belong
6536         (suitably guarded with #ifdefs). Also some updates to
6537         parrot_assembly.pod
6539 2001-10-30 21:43  dan
6541         * core.ops, stacks.c, docs/parrot_assembly.pod,
6542         include/parrot/stacks.h: Added entrytype opcode to fetch the type
6543         of the entry on the stack
6545 2001-10-29 18:30  dan
6547         * stacks.c: You can turn off stack entry type validation on pop by
6548         passing in a type of 0 now. (For those cases where you just want to
6549         throw the darned thing away)
6551 2001-10-29 14:37  gregor
6553         * core.ops, languages/jako/jakoc:
6554           * New variants of the save ops to save constants on the stack.
6555         This is
6556             useful for saving zero arg and result counts on the stack, for
6557         example.
6559           * Modified jakoc to to adapt to the newly announced calling
6560         conventions.
6561             Even though Jako source code appears to show subroutines with
6562         fixed
6563             numbers of arguments and results, they are implemented with the
6564             variable count calling convention. Future modifications will be
6565         needed
6566             to ensure that an exception is raised if the stack frame is of
6567         the
6568             wrong size (or, at least that we pop the complete frame off).
6569         We'll
6570             also have to make more changes to support the true
6571         fixed-arg-count
6572             and fixed-result-count parts of the calling convention spec.
6574 2001-10-28 16:53  simon
6576         * MANIFEST, stacks.c, classes/scalarclass.c,
6577         include/parrot/stacks.h:
6578         Unbelievably bad errors of mine, plus a type incompatibility of
6579         Dan's.
6581 2001-10-28 08:30  simon
6583         * classes/scalarclass.c:
6584         Beginning of a scalar class.
6586 2001-10-28 08:29  simon
6588         * make_vtable_ops.pl, vtable.tbl, Parrot/Vtable.pm,
6589         lib/Parrot/Vtable.pm, classes/genclass.pl, classes/intclass.c,
6590         include/parrot/pmc.h:
6591         This fixes the problem with vtables and pointer arithmetic.
6593 2001-10-26 19:58  dan
6595         * core.ops, interpreter.c, stacks.c, include/parrot/interpreter.h,
6596         include/parrot/stacks.h: Split the generic stack into a user push
6597         stack and a control stack
6599 2001-10-26 02:59  bdwheele
6601         * Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm: [no log message]
6603 2001-10-24 20:27  dan
6605         * languages/scheme/: Makefile, Scheme.pm, schemec,
6606         Scheme/Generator.pm, Scheme/Parser.pm, Scheme/Test.pm,
6607         Scheme/Tokenizer.pm, t/harness, t/arith/basic.t, t/arith/logic.t,
6608         t/arith/nested.t, t/io/basic.t, t/logic/basic.t: Added the mini
6609         Scheme compiler
6611 2001-10-24 20:23  dan
6613         * MANIFEST, pdump.c, docs/parrot_assembly.pod: Update for
6614         interpreter needs in pdump.c. Added scheme bits to manifest
6616 2001-10-24 16:43  gregor
6618         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm:
6619           * Make the assembler handle octal character code escapes in
6620         string
6621             constants.
6623 2001-10-24 15:56  dan
6625         * MANIFEST, examples/assembly/life.pasm: Added an example in to
6626         play the game of life
6628 2001-10-24 15:54  dan
6630         * core.ops: Added sleep. We'll need to override this to do events
6631         properly anyway, so...
6633 2001-10-24 14:03  gregor
6635         * Makefile.in, pbc2c.pl, pdump.c:
6636           * Adapt pdump.c and pbc2c.pl to the new requirement to pass
6637         interpreter
6638             pointer into string functions.
6640         Courtesy of: Ryan O'Neil <talisman580@yahoo.com>
6642 2001-10-23 20:09  gregor
6644         * languages/jako/jakoc:
6645           * Terminological refinement in regexp capture comment.
6647 2001-10-23 15:23  simon
6649         * classes/genclass.pl:
6650         Use a saner ANSI C construct to make MIPSPro happy.
6652         Courtesy of: Alex Gough <alexander.gough@st-hughs.oxford.ac.uk>
6654 2001-10-23 00:34  tom
6656         * core.ops, string.c, strnative.c, strutf16.c, strutf32.c,
6657         strutf8.c, include/parrot/string.h: Make sure the interpreter
6658         structure is passed to the transcoder as necessary, including
6659         passing it to string_compare().
6661 2001-10-23 00:32  tom
6663         * Makefile.in: Make pdump build again by including resources.o in
6664         the link.
6666 2001-10-22 22:43  dan
6668         * core.ops, packfile.c, string.c, strnative.c, strutf16.c,
6669         strutf32.c, strutf8.c, test_main.c, transcode.c,
6670         include/parrot/packfile.h, include/parrot/parrot.h,
6671         include/parrot/resources.h, include/parrot/string.h,
6672         include/parrot/transcode.h: Everything now uses the allocators and
6673         deallocators in resources.c.
6675         Unfortunately we lost standalone string-test mode, but I can cope
6676         with that.
6678         Please note that until we have a real allocation/deallocation/GC
6679         system, this'll leak. A *lot*.
6681 2001-10-22 20:27  dan
6683         * MANIFEST, Makefile.in, pmc.c, resources.c,
6684         include/parrot/resources.h: First cut to handle arena allocation of
6685         PMC headers. (Amongst other things)
6687 2001-10-22 19:02  dan
6689         * Configure.pl, config_h.in, register.c, include/parrot/register.h:
6690         Now each register type has its own mask macro, which is the right
6691         thing to do.
6693         Patch courtesy of Jason Gloudon <perl@gloudon.com>
6695 2001-10-21 23:40  tom
6697         * stacks.c, t/op/stacks.t: Fix bug in handling of rollover to a new
6698         stack chunk and add a test to test this rollover in future.
6700         Courtesy of Jason Gloudon <perl@gloudon.com>.
6702 2001-10-21 19:14  dan
6704         * include/parrot/string.h: Changed string 'unused' field to the
6705         language field.
6707 2001-10-21 18:18  gregor
6709         * languages/jako/: Makefile, mops.jako:
6710           * Makefile: 'clean' target removes .list files, too. And, it does
6711         rm -f
6712             with wildcards rather than listing things explicitly.
6714           * mops.jako actually prints out the
6715         millions-of-operations-per-second
6716             (mops) value instead of just the operations-per-second value.
6718 2001-10-21 18:03  simon
6720         * classes/intclass.o:
6721         *smack*! WRONG!
6723 2001-10-21 17:47  simon
6725         * MANIFEST, Makefile.in, make_vtable_ops.pl, pmc.c, vtable_h.pl,
6726         Parrot/Vtable.pm, classes/genclass.pl, classes/intclass.c,
6727         classes/intclass.o, include/parrot/parrot.h, include/parrot/pmc.h,
6728         lib/Parrot/Vtable.pm:
6729         Initial work on PMCs. Explanation to follow
6731 2001-10-21 15:20  gregor
6733         * examples/assembly/queens.pasm:
6734           * Modernize the calling conventions in queens.pasm. It was using
6735         swap,
6736             which now must be rotate. Also, changed to use return values on
6737         the
6738             stack instead of in I0.
6740 2001-10-19 18:14  gregor
6742         * core.ops, stacks.c, include/parrot/stacks.h,
6743         languages/jako/jakoc:
6744         Per Dan's request, replacing 'swap' op by 'rotate'.
6746           * core.ops: Replaced 'swap()' by 'rotate(i|ic)'.
6748           * stacks.c and stacks.h: Removed swap-related functions from my
6749             prior commit, replacing them with stack_depth(), stack_entry()
6750             and rotate_entries().
6752             NOTE: The stack_depth() and rotate_entries() routines could
6753             be made more efficient through the caching of the sum of chunk
6754             'used' members from lower chunks in a field in the upper
6755             chunks. Also, if the interpreter's stack_base was changed to
6756             hold the pointer to the *top* chunk (since we usually come
6757             at the stack from the top down) instead of the *bottom*
6758             chunk. The code here at least works, and we can decide about
6759             bigger changes separately.
6761             For now, rotate only handles rotates in one direction and
6762             of magnituded one. A fully general rotate would do handle
6763             rotates in both directions and of arbitrary amounts. Again,
6764             this implementation is sufficient for current applications,
6765             and a feature-complete version can be developed if this turns
6766             out to be otherwise the right type of implementation.
6768             This change includes a new exception for ERROR_STACK_SHALLOW,
6769             meaning "not-empty-yet-not-deep-enough-for-what-you-asked".
6771           * jakoc: Changed the calling convention to use rotate instead
6772             of swap (of course). Also changed the convention for return
6773             value passing to use the stack as well.
6775 2001-10-19 13:36  gregor
6777         * MANIFEST, core.ops, disassemble.pl, stacks.c,
6778         examples/assembly/queens.pasm, include/parrot/stacks.h,
6779         languages/jako/.cvsignore, languages/jako/Makefile,
6780         languages/jako/bench.jako, languages/jako/euclid.jako,
6781         languages/jako/fact.jako, languages/jako/jakoc,
6782         languages/jako/mandelbrot.jako, languages/jako/mops.jako,
6783         languages/jako/primes.jako, languages/jako/queens.jako,
6784         languages/jako/sub.jako:
6785           * New stack functions push_entry(), pop_entry() and swap_entry().
6786             The first two exist for the support of the last one. These
6787             functions don't care what is in the stack entries. These exist
6788             to support the new 'swap' op (see next bullet).
6790           * New op 'swap' for swapping the top two elements on the stack.
6791             This is necessary for passing arguments to functions, since
6792             the return address will be on top of any arguments that have
6793             been pushed on the stack. This way, you can use a (swap, pop)
6794             pair to retrieve each argument (for subroutine linkage).
6796           * Disassembler now prints numbers in decimal by default, with
6797             a new '-x' flag to turn on hexadecimal display. Since other
6798             members of the Parrot Tool Set use decimal by default, this
6799             makes it easier to compare output from the various tools.
6801           * Jako compiler has more explanatory comments and the following
6802             new features:
6804               * Lexically scoped variables.
6806               * Subroutines that take arguments and return values:
6808                   sub int foo(int bar) {
6809                     if (bar == 1) {
6810                       return 42;
6811                     } else {
6812                       return 13;
6813                     }
6814                   }
6815               * ... if (...) and ... unless (...) statement modifiers
6816                 can be used on next, last and redo.
6818               * Bitwise and (&, &=) and or (|, |=) ops.
6820               * Type names are just 'int', 'num', 'str', and 'poly' now.
6821                 The old long names 'integer', 'number', 'string', and
6822                 'polytype' are no longer valid.
6824               * Integer variable assignments can now use 0b (binary),
6825                 0 (octal) and 0x (hexadecimal) radix prefixes on literals.
6827           * New Jako and Parrot assembly examples queens.{jako,pasm} for
6828             solving the eight-queens problem. The assembly example is a
6829             hand-modified version of the assembly code produced by the
6830             Jako compiler from queens.jako. A few unnecessary ops have
6831             been removed, lots of unnecessary labels have been removed,
6832             and all the Jako source code comments have been removed.
6834           * Makefile and .cvsignore in languages/jako modified so that
6835             the assembler produces listings when assembling the programs,
6836             yet the *.list files are ignored by CVS.
6838           * Made the default target in languages/jako/Makefile 'all'.
6840           * Modified some of the Jako examples to use some of the new
6841             features of Jako, such as subroutines and lexical variable
6842             scoping.
6844 2001-10-19 02:43  gregor
6846         * runops_cores.c, include/parrot/runops_cores.h:
6847         Bug fix (gcc doesn't complain, but MIPSpro does):
6849           * Added missing extern to runops_cores array declaration in
6850             include/parrot/runops_cores.h
6852           * Also added 'const' there and in runops_cores.c
6854 2001-10-18 15:18  gregor
6856         * .cvsignore, include/parrot/oplib/.cvsignore:
6857           * Ignore the vtable-related generated files.
6859 2001-10-18 15:14  gregor
6861         * core.ops:
6862           * left and right shifts now allow the 2nd argument to be a
6863         constant.
6865 2001-10-18 14:55  simon
6867         * make_vtable_ops.pl:
6868         This is C, not Perl. How on earth did that even compile?
6870 2001-10-18 14:54  simon
6872         * make_vtable_ops.pl:
6873         More vtable ops.
6875 2001-10-18 12:33  simon
6877         * Makefile.in, make_vtable_ops.pl, vtable.tbl:
6878         Initial stab at vtable opcode creation stuff.
6880 2001-10-18 02:15  gregor
6882         * MANIFEST, Makefile.in, interpreter.c, runops_cores.c, trace.c,
6883         include/parrot/interpreter.h, include/parrot/runops_cores.h,
6884         include/parrot/trace.h: Preparation for autogenerated runops cores:
6886           * Split tracing and runops core stuff out of interpreter.c into
6887             trace.c and runops_cores.c
6889           * Similar split of stuff from include/parrot/interpreter.h
6891           * Manifest and Makefile.in updates to make things still compile.
6893 2001-10-18 01:21  gregor
6895         * Makefile.in, ops2c.pl, ops2pm.pl, pbc2c.pl: Bug fixes:
6897           * Makefile.in: examples/assembly/mops.c depends on pbc2c.pl
6899           * Makefile.in: Parrot/OpLib/core.pm depends on ops2pm.pl
6901           * ops2c.pl: Added second arg to mkdir (perl 5.005_02 complains)
6903           * ops2pm.pl: Added second arg to mkdir (perl 5.005_02 complains)
6905           * pbc2c.pl: Removed explicit include of <math.h>, replacing it
6906         with
6907             copy of $ops->preamble.
6909 2001-10-17 22:32  bdwheele
6911         * interpreter.c: Moved op dump code into trace_op_dump, per Dan's
6912         request.
6914 2001-10-17 22:08  gregor
6916         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm:
6917           * Now handles label-and-comment-only lines.
6919 2001-10-17 22:04  bdwheele
6921         * interpreter.c: added more comprehensive trace output
6923 2001-10-17 16:50  tom
6925         * Makefile.in: Removed the explicit rule for building mops.o from
6926         mops.c so that the implicit rule for compiling C files is used
6927         instead. This means that the chosen C flags are used, including any
6928         optimisation options.
6930 2001-10-17 15:24  tom
6932         * core.ops, Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm: Enhanced the
6933         op explosion logic to be able to handle exploding this:
6935           sub(i, i|ic, i|ic)
6937         into these:
6939           sub(i, i, i)
6940           sub(i, i, ic)
6941           sub(i, ic, i)
6943         without also generating this unwanted version:
6945           sub(i, ic, ic)
6947         The enhanced version rejects any expansion where there is more than
6948         one expanded argument and all the expanded arguments are constants.
6950 2001-10-17 14:20  simon
6952         * Makefile.in, ops2c.pl, ops2pm.pl, examples/assembly/Makefile:
6953         Build fixes to use correct Perl version and ensure that things are
6954         running in the right directory.
6956         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
6958 2001-10-17 13:16  simon
6960         * Makefile.in:
6961         core.pm is more critical than that.
6963 2001-10-17 13:05  simon
6965         * core.ops, Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm:
6966         "Explode" ops into multiple versions for different parameters.
6968         Courtesy of: Tom Hughes <tom@compton.nu>
6970 2001-10-17 12:54  simon
6972         * Makefile.in:
6973         Fix dependencies and cleaning.
6975 2001-10-17 12:45  simon
6977         * Configure.pl, Makefile.in:
6978         Fixes to make Parrot compile without the temporary build hack
6980         Courtesy of: Jason Gloudon <perl@gloudon.com>
6982 2001-10-16 20:43  gregor
6984         * Makefile.in:
6985           * Fixed dependencies for building Parrot/OpLib/core.pm
6987 2001-10-16 19:35  bdwheele
6989         * core.ops, t/op/string.t: Changed set s,sc to use string_copy &
6990         added test, thanks to Alex Gough
6992 2001-10-16 16:49  bdwheele
6994         * core.ops: added opcode variants for constants and 3 arg concat
6996 2001-10-16 15:12  bdwheele
6998         * core.ops: added "set Sx,Sy" as a string copy to match the other
6999         register-to-register copies available
7001 2001-10-16 13:09  gregor
7003         * core.ops:
7004           * Added #include <sys/time.h> in the preamble for gettimeofday().
7006 2001-10-16 13:09  gregor
7008         * Makefile.in:
7009           * Removed cd t; make, which no longer applies
7011 2001-10-16 03:18  bdwheele
7013         * core.ops: fix save & restore operations to push correct type onto
7014         stack. [good eye to Jason Gloudon for noticing this]
7016 2001-10-16 01:38  bdwheele
7018         * core.ops, register.c, examples/assembly/fact.pasm,
7019         include/parrot/register.h: send in the clones:  clone routines for
7020         parrot + example program
7022 2001-10-15 22:37  gregor
7024         * MANIFEST, Makefile.in, examples/assembly/.cvsignore,
7025         examples/assembly/Makefile, examples/assembly/bsr.pasm,
7026         examples/assembly/call.pasm, examples/assembly/euclid.pasm,
7027         examples/assembly/jump.pasm, examples/assembly/local_label.pasm,
7028         examples/assembly/mops.pasm, examples/assembly/stack.pasm,
7029         examples/assembly/substr.pasm, examples/assembly/trace.pasm,
7030         t/.cvsignore, t/Makefile, t/call.pasm, t/euclid.pasm, t/jump.pasm,
7031         t/local_label.pasm, t/test.pasm, t/test2.pasm, t/test3.pasm,
7032         t/test4.pasm, t/test5.pasm, t/trace.pasm:
7033           * Moved examples from t/*.pasm to examples/assembly/*.pasm, with
7034         some
7035             renames so the names match what they demonstrate.
7037 2001-10-15 22:18  gregor
7039         * core.ops, t/test.pasm:
7040           * time_n uses gettimeofday() to get sub-second times.
7042           * t/test.pasm uses time_n directly rather than doing int stuff
7043         and
7044             converting to num later.
7046 2001-10-15 12:28  gregor
7048         * t/: test.pasm, test2.pasm, trace.pasm:
7049           * t/test.pasm prints using string constants instead of string
7050         regs.
7052           * t/test2.pasm assembles (using implicit op modes)
7054           * t/trace.pasm updated for new behavior of trace_ic, which does
7055         not
7056             require an 'end' after 'trace'.
7058 2001-10-15 00:47  gregor
7060         * core.ops, interpreter.c, test_main.c,
7061         include/parrot/interpreter.h, t/test.pasm:   * New interpreter flag
7062         PARROT_PROFILE_FLAG
7064           * New runops cores to handle profiling
7066           * Support for -p flag in test_prog to enable profiling
7068           * New profile_ic op to control profiling at run-time
7070 2001-10-14 21:54  gregor
7072         * core.ops, Parrot/OpsFile.pm, docs/.cvsignore, docs/Makefile,
7073         lib/Parrot/OpsFile.pm: Integrated op documentation.
7075           * core.ops now contains POD documentation of ops, interspersed
7076         with the
7077             ops themselves
7079           * Ops are organized into POD =head2 sections
7081           * Parrot/OpsFile.pm now treats the preamble of the ops file as
7082         anything
7083             up to the first POD directive OR op definition.
7085           * docs/Makefile now generates core_ops.pod from core.ops vi
7086         perldoc -u.
7088 2001-10-14 11:58  simon
7090         * Makefile.in:
7091         Unbreak Digital Un^W^WTru64
7093 2001-10-14 11:00  simon
7095         * Configure.pl:
7096         Remove weird typo.
7098 2001-10-14 10:56  tom
7100         * Configure.pl: Stop Configure trying to make op_info.c and op.h as
7101         op_info.c no longer exists and op.h is no longer a generated file.
7103 2001-10-14 10:54  tom
7105         * Makefile.in: Added vtable.h to the list of things removed by the
7106         clean target.
7108 2001-10-14 01:43  gregor
7110         * .cvsignore, MANIFEST, Makefile.in, basic_opcodes.ops,
7111         build_interp_starter.pl, core.ops, disassemble.pl, interpreter.c,
7112         make_op_header.pl, memory.c, opcheck.pl, opcode_table, ops2c.pl,
7113         ops2pm.pl, packfile.c, pbc2c.pl, process_opfunc.pl,
7114         Parrot/Assembler.pm, Parrot/Op.pm, Parrot/OpsFile.pm,
7115         Parrot/OpLib/.cvsignore, lib/Parrot/Assembler.pm, lib/Parrot/Op.pm,
7116         lib/Parrot/OpsFile.pm, lib/Parrot/OpLib/.cvsignore,
7117         include/parrot/.cvsignore, include/parrot/interp_guts.h,
7118         include/parrot/interpreter.h, include/parrot/op.h,
7119         include/parrot/oplib/.cvsignore, t/.cvsignore, t/Makefile,
7120         t/euclid.pasm, t/test.pasm, t/op/integer.t, t/op/number.t,
7121         t/op/stacks.t, t/op/string.t, t/op/trans.t:
7122         Moby Patch:
7124           * basic_opcodes.ops and opcode_table replaced by core.ops
7126           * process_opfunc.pl replaced by Parrot/OpsFile.pm, Parrot/Op.pm,
7127             and ops2c.pl. These convert *.ops to *_ops.c and
7128             include/parrot/oplib/*_ops.h
7130           * New ops2pm.pl converts *.ops to Parrot/OpLib/*.pm
7132           * disassemble.pl modified to use
7134           * interpreter.c modified to use structures in core_ops.c instead
7135             of the old op_info and op_func stuff. We're not yet to the
7136             point of handling multiple oplibs at a time, but we are getting
7137             there...
7139             Fingerprinting stuff disabled for now. We used to go off
7140             opcode_table. We need to rethink this. I have some ideas to
7141             make it unnecessary, but it remains to be seen whether others
7142             will like the direction they take us.
7144             Termination condition for while(){} loop in runops is now
7145             (pc) instead of (*pc). Any op can cause a HALT by returning
7146             a NULL pointer. Ops end, bounds and trace all do this. So, now
7147             the 'end' op body is actually executed, although all it does
7148             is HALT.
7150           * Makefile.in modified to perform a test build using pbc2c.pl,
7151             which is the bytecode --> C compiler I've posted to the
7152             list before.
7154           * Op full names are now autogenerated. Op root names must not
7155             contain underscores, so some op renamings have happened.
7156             Such as clear_i becoming cleari.
7158 2001-10-13 11:49  simon
7160         * Configure.pl, MANIFEST:
7161         Make parrot actually build again.
7163 2001-10-12 21:34  dan
7165         * docs/parrot_assembly.pod: Added docs for the new save/restore/bsr
7166         opcodes
7168 2001-10-12 20:56  dan
7170         * MANIFEST, Makefile.in, basic_opcodes.ops, interpreter.c,
7171         opcode_table, process_opfunc.pl, stacks.c, include/parrot/stacks.h,
7172         t/test3.pasm, t/test4.pasm, t/test5.pasm: Changes to support
7173         generic stack now in. We also have subroutines, of a simple sort!
7175 2001-10-12 19:15  tom
7177         * t/op/string.t: Improved string comparison tests try all string
7178         combinations with each of the comparison ops.
7180 2001-10-12 19:09  dan
7182         * interpreter.c: Properly sets up generic stack now
7184 2001-10-12 19:09  dan
7186         * include/parrot/interpreter.h: Fixed stack chunk struct type in
7187         interpreter structure
7189 2001-10-12 18:59  dan
7191         * stacks.c, include/parrot/parrot.h, include/parrot/stacks.h: More
7192         changes to get the generic stack working
7194 2001-10-12 18:59  dan
7196         * Configure.pl, MANIFEST, config_h.in, testparrotsizes_c.in,
7197         hints/vms.pl: Made the changes to figure out mask bits for various
7198         register and stack chunks
7200 2001-10-11 22:09  dan
7202         * docs/parrot_assembly.pod: Tossed the parameter for return
7204 2001-10-11 19:28  tom
7206         * strnative.c: Assignment, not comparison.  (Plus formatted for
7207         coding standards)
7209         Courtesy of Bryan C. Warnock
7211 2001-10-10 19:21  tom
7213         * basic_opcodes.ops, opcode_table, string.c, strnative.c,
7214         strutf16.c, strutf32.c, strutf8.c, docs/strings.pod,
7215         include/parrot/string.h, t/op/string.t: Added support for string
7216         comparisons and extended the comparison ops to include comparison
7217         of strings.
7219 2001-10-10 17:58  dan
7221         * MANIFEST: Shouldn't have added vtable.h to the manifest...
7223 2001-10-10 17:54  dan
7225         * MANIFEST, stacks.c, vtable_h.pl, Parrot/Vtable.pm,
7226         lib/Parrot/Vtable.pm: Now spits out the #defines for the various
7227         vtable type entries properly
7229 2001-10-10 15:37  dan
7231         * Parrot/Vtable.pm, lib/Parrot/Vtable.pm: Re-enabled change to
7232         parse new vtable.tbl file now that I've actually checked *in* the
7233         new format vtable.tbl file...
7235 2001-10-10 15:32  dan
7237         * vtable.tbl: New Column to indicate the type of the vtabel entry
7238         so we can know how many slots it takes
7240 2001-10-10 05:26  thgibbs
7242         * Parrot/Vtable.pm, lib/Parrot/Vtable.pm, vtable_h.pl: Patch to
7243         allow parrot to compile.  PACKAGE is not defined, therefore, I
7244         added a struct before it to have it not complain until we define
7245         PACKAGE.  Also, there was an extra shift in Vtable.pm and a missing
7246         semicolon at the end of the struct declaration.
7248 2001-10-10 05:09  thgibbs
7250         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm: This patch makes
7251         string constants of the form U"string" become unicode encoded
7252         parrot strings and the form N"string" become native encoded parrot
7253         strings.
7255         Courtesy of: Tom Hughes <tom@compton.nu>
7257 2001-10-10 04:55  dan
7259         * vtable_h.pl, Parrot/Vtable.pm, lib/Parrot/Vtable.pm: Start of
7260         support for generating the vtable function table offset macros
7262 2001-10-10 01:05  simon
7264         * t/op/integer.t:
7265         The test for cmod_i was using the 'mod Ix, Ix, Ix' form which
7266         compiles into the mod op, not the cmod_i op, hence wasn't testing
7267         what it thought it was.
7269         Courtesy of: Alex Gough <alexander.gough@st-hughs.oxford.ac.uk>
7271 2001-10-09 03:45  thgibbs
7273         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm: Patch to allow
7274         assembler to generate unicode strings.
7276         Courtesy of: Tom Hughes <tom@compton.nu>
7278 2001-10-08 19:30  brentdax
7280         * Configure.pl, test_c.in, hints/vms.pl: Cleaner VMS support, more
7281         info for Parrot::Config to remember, more flexible test.c stuff
7283 2001-10-08 15:04  gregor
7285         * basic_opcodes.ops:
7286           * Removed trash from early mod_i experiments (pardon our dust)
7288 2001-10-08 14:56  gregor
7290         * basic_opcodes.ops:
7291           * Fixed a couple of typos.
7293 2001-10-08 14:45  gregor
7295         * basic_opcodes.ops, opcode_table, t/op/integer.t, t/op/number.t:
7296         Arithmetic enhancements:
7298           * Renamed existing mod_i as cmod_i and added "corrected" mod_i:
7300             NOTE: This "uncorrected mod" algorithm uses the C language's
7301         built-in
7302             mod operator (x % y), which is
7304                 ... the remainder when x is divided by y, and thus is zero
7305         when y
7306                 divides x exactly.
7307                 ...
7308                 The direction of truncation for / and teh sign of the
7309         result for %
7310                 are machine-dependent for negative operands, as is the
7311         action taken
7312                 on overflow or underflow.
7313                                                                      --
7314         [1], page 41
7316             Also:
7318                 ... if the second operand is 0, the result is undefined.
7319         Otherwise, it
7320                 is always true that (a/b)*b + a%b is equal to z. I both
7321         operands are
7322                 non-negative, then teh remainder is non-negative and
7323         smaller than the
7324                 divisor; if not, it is guaranteed only that the absolute
7325         value of the
7326                 remainder is smaller than the absolute value of the
7327         divisor.
7328                                                                      --
7329         [1], page 205
7331             This op is provided for those who need it (such as
7332         speed-sensitive
7333             applications with heavy use of mod, but using it only with
7334         positive
7335             arguments), but a more mathematically useful numeric mod based
7336         on
7337             floor(x/y) and defined with y == 0 is provided by the mod_i op.
7339               [1] Brian W. Kernighan and Dennis M. Ritchie, *The C
7340         Programming
7341                   Language*, Second Edition. Prentice Hall, 1988.
7343           * Added "corrected" mod_i:
7345             NOTE: This "corrected mod" algorithm is based on the C code on
7346         page 70
7347             of [1]. Assuming correct behavior of C's built-in mod operator
7348         (%) with
7349             positive arguments, this algorithm implements a mathematically
7350         convenient
7351             version of mod, defined thus:
7353               x mod y = x - y * floor(x / y)
7355             For more information on this definition of mod, see section 3.4
7356         of [2],
7357             pages 81-85.
7359             References:
7361               [1] Donald E. Knuth, *MMIXware: A RISC Computer for the Third
7362                   Millennium* Springer, 1999.
7364               [2] Ronald L. Graham, Donald E. Knuth and Oren Patashnik,
7365         *Concrete
7366                   Mathematics*, Second Edition. Addison-Wesley, 1994.
7368           * Added mod_n, using the same formula as above, but with FLOATVAL
7369             arguments.
7371           * Added cmod_n, using the C math library's fmod() function:
7373             NOTE: This "uncorrected mod" algorithm uses the built-in C math
7374         library's
7375             fmod() function, which computes
7377                 ... the remainder of dividing x by y. The return value is x
7378         - n * y,
7379                 where n is the quotient of x / y, rounded towards zero to
7380         an
7381                 integer.
7382                                                 -- fmod() manpage on RedHat
7383         Linux 7.0
7385             In addition, fmod() returns
7387                 the remainder, unless y is zero, when the function fails
7388         and errno
7389                 is set.
7391             According to page 251 of [1], the result when y is zero is
7392         implementation-
7393             defined.
7395             This op is provided for those who need it, but a more
7396         mathematically
7397             useful numeric mod based on floor(x/y) instead of truncate(x/y)
7398         and
7399             defined with y == 0 is provided by the mod_n op.
7401               [1] Brian W. Kernighan and Dennis M. Ritchie, *The C
7402         Programming
7403                   Language*, Second Edition. Prentice Hall, 1988.
7405           * Added and modified tests as appropriate for the above.
7407 2001-10-08 08:49  thgibbs
7409         * include/parrot/exceptions.h, include/parrot/parrot.h,
7410         include/parrot/string.h, include/parrot/strutf16.h,
7411         include/parrot/strutf32.h, include/parrot/strutf8.h,
7412         include/parrot/transcode.h, include/parrot/unicode.h, MANIFEST,
7413         Makefile.in, global_setup.c, string.c, strnative.c, transcode.c,
7414         strutf16.c, strutf32.c, strutf8.c: Added code to handle unicode
7415         strings for utf8, utf16, and utf32.
7417         Courtesy of: Tom Hughes <tom@compton.nu>
7419 2001-10-08 08:10  thgibbs
7421         * memory.c: Fixed uninitialized variables.
7423         Courtesy of: Bryan C. Warnock <bwarnock@raba.com>
7425 2001-10-08 01:21  gregor
7427         * packfile.c:   * Casting a return value
7429           * Potential uninitialized variable fix
7431         Courtesy of Bryan C. Warnock <bwarnock@raba.com>
7433 2001-10-08 01:15  gregor
7435         * packfile.c, test_main.c: One of Bryan's languishing patches (with
7436         a few tweaks of my own):
7438           * Line wrapping
7440           * Printf format fixes
7442         Courtesy of: Bryan C. Warnock <bwarnock@raba.com>
7444 2001-10-07 22:39  thgibbs
7446         * build_interp_starter.pl: No longer adds (void*) casts to
7447         interp_guts.c function table as they are not necessary in ANSI C.
7449 2001-10-07 16:27  gregor
7451         * basic_opcodes.ops, interpreter.c, opcode_table,
7452         process_opfunc.pl, test_main.c, include/parrot/interpreter.h,
7453         t/trace.pasm:
7454           * Two new ops, trace_ic and bounds_ic that twiddle bits in
7455             interpreter->flags and set interpreter->resume_addr.
7457           * Two new runops core variants, so now we cover the relevant
7458             flag space over {trace, notrace} x {boundscheck, noboundscheck}
7460           * Runops core selection that converts the flags into an index
7461         into
7462             a core table (runops_cores) to get the core function pointer.
7464           * A new trace_op variant that doesn't do bounds checking (used by
7465             the non-bounds-checking-but-tracing runops core).
7467           * PC is passed into the cores so that they can be used when
7468             resuming (they used to assume starting at the beginning of the
7469             code, which would thwart resumption).
7471           * runops() itself is changed to have a while() loop in it so that
7472             any time we drop out of the core, we'll resume if we have an
7473             interpreter->resume_addr set (after reselecting the core,
7474         though).
7476           * process_opfunc.pl has a new "macro": RESUME(), that sets up
7477             interpreter->resume_addr. This is used by the new ops. The new
7478             ops still return the new PC as the next op (which MUST be an
7479             'end' op to force the core loop to terminate -- *pc being false
7480             is the only termination condition we can count on for all
7481         cores).
7483           * New interpreter flag: PARROT_BOUNDS_FLAG, used to control
7484             bounds checking core selection.
7486           * test_prog now has a '-b' flag in addition to the '-t' flag.
7487         Now,
7488             bounds checking is off by default (I saw a performance boost:
7489             6.3 Mop/s with -b, 7.0 Mop/s without).
7491           * A new sample/test program: t/trace.pasm that twiddles the trace
7492             flag while it is running.
7494 2001-10-07 15:41  gregor
7496         * .cvsignore, Makefile.in, build_interp_starter.pl, interpreter.c,
7497         include/parrot/.cvsignore, include/parrot/interpreter.h:
7498         Now that 0.0.2 is released, I can clear out the backlog of approved
7499         but uncommitted patches. Here's one Dan approved on 2001-09-21
7500         (Simplified DO_OP):
7502           * test_prog and pdump are linked with only the files the need,
7503         not
7504             al the files.
7506           * build_interp_starter.pl writes out op_info.[hc], too. These
7507         files
7508             contain op name, arg count and arg type information. This will
7509         be
7510             useful for multiple things in the future, including better
7511         trace
7512             output and the crystalizing loader.
7514           * The DO_OP macro is now simpler and doesn't require explicit
7515             temporaries.
7517           * interpreter.c is modified to use the new op info in tracing
7518         output.
7520           * The interpreter just points its opcode_funcs and opcode_info
7521             members at the default tables rather than allocating memory on
7522             the fly.
7524 2001-10-07 03:58  thgibbs
7526         * include/parrot/.cvsignore, vtable_h.pl: Minor updates fixing a
7527         comment and adding vtable.h to .cvsignore as it is produced by
7528         vtable_h.in
7530 2001-10-06 20:58  thgibbs
7532         * vtable.tbl: Added * to REGEX type.
7534         Courtesy of Bryan C. Warnock <bwarnock@raba.com>
7536 2001-10-06 13:41  simon
7538         * MANIFEST, Makefile.in, vtable.tbl, vtable_h.pl, Parrot/Vtable.pm,
7539         include/parrot/parrot.h, lib/Parrot/Vtable.pm:
7540         Framework for vtable functions.
7542 2001-10-06 06:52  thgibbs
7544         * make_op_header.pl: Removed confusing and unused typedef.
7546 2001-10-06 06:31  thgibbs
7548         * Parrot/Opcode.pm, lib/Parrot/Opcode.pm: Removed variables that
7549         are no longer used.
7551 2001-10-06 06:26  thgibbs
7553         * disassemble.pl: Changed intval to op in disassembler.
7555 2001-10-06 06:21  thgibbs
7557         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm: Fixed typo with
7558         Assembler, local labels, and integer constants.
7560 2001-10-06 03:11  ask
7562         * Makefile.in: make `make test` actually run the tests on
7563         darwin/macosx
7565 2001-10-06 02:04  thgibbs
7567         * Parrot/Assembler.pm, Parrot/Opcode.pm, Parrot/PackFile.pm,
7568         Parrot/String.pm, Parrot/PackFile/ConstTable.pm,
7569         Parrot/PackFile/Constant.pm, include/parrot/packfile.h,
7570         include/parrot/register.h, lib/Parrot/Assembler.pm,
7571         lib/Parrot/Opcode.pm, lib/Parrot/PackFile.pm, lib/Parrot/String.pm,
7572         lib/Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/Constant.pm,
7573         t/op/integer.t: No, it didn't mess anything up.  I just forgot to
7574         type make. :)
7576 2001-10-06 02:02  thgibbs
7578         * Parrot/Assembler.pm, Parrot/Opcode.pm, Parrot/PackFile.pm,
7579         Parrot/String.pm, Parrot/PackFile/ConstTable.pm,
7580         Parrot/PackFile/Constant.pm, include/parrot/packfile.h,
7581         include/parrot/register.h, lib/Parrot/Assembler.pm,
7582         lib/Parrot/Opcode.pm, lib/Parrot/PackFile.pm, lib/Parrot/String.pm,
7583         lib/Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/Constant.pm,
7584         t/op/integer.t: oops...this messed something up.  I must have
7585         missed something in the patch...I have reverted.
7587 2001-10-06 01:57  thgibbs
7589         * Parrot/Assembler.pm, Parrot/Opcode.pm, Parrot/PackFile.pm,
7590         Parrot/String.pm, Parrot/PackFile/ConstTable.pm,
7591         Parrot/PackFile/Constant.pm, include/parrot/packfile.h,
7592         include/parrot/register.h, lib/Parrot/Assembler.pm,
7593         lib/Parrot/Opcode.pm, lib/Parrot/PackFile.pm, lib/Parrot/String.pm,
7594         lib/Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/Constant.pm,
7595         t/op/integer.t, Types_pm.in, basic_opcodes.ops, config_h.in,
7596         memory.c, packfile.c, process_opfunc.pl, strnative.c, test_main.c:
7597         This patch ensures that all bytecode is of type opcode_t except for
7598         the constant table constants.  That means that almost all of the
7599         INTVALs in the code were replaced with opcode_t and the i pack type
7600         was replaced with the op pack type in calls to pack_arg and such.
7601         Also, since it has been declared that ALL integer constants are to
7602         be 32 bits, some test cases were changed to ensure that an integer
7603         constant was no bigger than 2 ** 31.
7605         process_opfunc.pl was also cleaned up to no longer look at either
7606         opcode_table or interp_guts.h but gather all of its information
7607         from Opcode.pm.
7609         The Assembler.pm module was changed to do late binding of arguments
7610         so that 0 could be treated like 0.0 without having to be so
7611         declared.  Also, only strings now use the [sc:N] intermediate form
7612         as it was unnecessary for integer and float types.
7614 2001-10-05 21:59  gregor
7616         * MANIFEST, languages/jako/Makefile:
7617         Fixed things due to the movement of little_languages/* to
7618         languages/jako.
7620 2001-10-05 18:31  gregor
7622         * MANIFEST:
7623         Updated MANIFEST to reflect recent additions for Jako.
7625 2001-10-05 17:54  gregor
7627         * languages/jako/: Makefile, bench.jako, euclid.jako, fact.jako,
7628         fib.jako, hello.jako, jakoc, leibniz.jako, mandelbrot.jako,
7629         mops.jako, primes.jako, sub.jako:
7630           * Compiler:
7632               * User-defined subroutines.
7633               * Generates assembly code with the Jako code in comments.
7634               * "end;" no longer required at the end of programs.
7635               * Better handling of const-reg and reg-const.
7636               * Optimizes const-const operations to compile-time
7637         evaluations.
7638               * Constants in addition to variables.
7639               * Arithmetic fixes.
7640               * Allow leading minus signs in integer and number constants
7641         (ahem).
7642               * goto's.
7644           * New sample programs:
7646               * leibniz.jako (based on Greg McCarroll's leibniz.pasm
7647         example)
7648               * mandelbrot.jako (based on Leon Brocard's translation of
7649         Glenn Rhodes' C code)
7650               * mops.jako (based on t/test.pasm)
7651               * primes.jako (based on Leon Brocard's primes.pasm example)
7652               * sub.jako (demonstrates a simple user-defined subroutine)
7654 2001-10-05 12:54  gregor
7656         * Parrot/Opcode.pm, lib/Parrot/Opcode.pm:
7657           * Removed mysterious extra copy of code after POD.
7659 2001-10-05 12:46  gregor
7661         * basic_opcodes.ops, t/op/string.t:
7662           * Enabled the previously SKIPped test of printing string regs
7663         after
7664             clear_s
7666           * Made print_s do nothing if the STRING pointer in the register
7667         file
7668             is NULL.
7670 2001-10-04 21:19  dan
7672         * Configure.pl: VMS tweaks
7674 2001-10-04 21:17  dan
7676         * hints/vms.pl: Hints file for VMS
7678 2001-10-04 00:58  bdwheele
7680         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm: fixed but in
7681         Assembler which stopped equates from working.
7683 2001-10-03 21:50  gregor
7685         * Makefile.in, docs/.cvsignore, docs/Makefile, docs/parrotbyte.pod:
7687           * More documentation updates for the packfile stuff.
7689 2001-10-03 21:37  gregor
7691         * docs/parrotbyte.pod:
7692           * Pointed the reader at Parrot::PackFile.
7694 2001-10-03 21:34  gregor
7696         * Parrot/PackFile.pm, lib/Parrot/PackFile.pm:
7697           * Updated documentation to match current implementation.
7699 2001-10-03 18:30  gregor
7701         * .cvsignore, disassemble.pl, Parrot/Assembler.pm,
7702         lib/Parrot/Assembler.pm, t/call.pasm, t/euclid.pasm,
7703         t/local_label.pasm, t/test.pasm, t/test2.pasm, t/test3.pasm,
7704         t/op/basic.t:
7705           * Added new syntax to the assembler to allow square-bracket
7706             arithmetic expressions involving (global) labels, the current
7707             instructions base address ('@'), numeric constants (not
7708         equates)
7709             and basic arithmetic operators (+, -, *, / -- although + and -
7710             are likely to be the only ones used in practice).
7712           * Fixed a bug in Parrot/Assemble.pl that caused macro expansion
7713         to
7714             fail (argument passing wasn't working).
7716           * Enabled t/op/basic.t's last test, which is actually a copy of
7717         the
7718             code from t/call.pasm. Now all tests there are enabled and
7719         working.
7721           * Added new example/test program t/call.pasm to demonstrate
7722         working
7723             macros and poor-man's subroutine calls
7725           * Added header comments to t/*.pasm
7727 2001-10-03 18:00  simon
7729         * ChangeLog:
7730         Needed, since it's in the MANIFEST.
7732 2001-10-03 17:56  simon
7734         * t/op/: string.t, time.t:
7735         Small fixes to help Win32 on its way.
7737 2001-10-03 17:41  simon
7739         * MANIFEST, README:
7740         Oops. Tiny bugs.
7742 2001-10-03 17:39  simon
7744         * MANIFEST, NEWS, README:
7745         README, NEWS and MANIFEST? Could it be time for Parrot 0.0.2? I
7746         think so!
7748 2001-10-03 17:21  simon
7750         * basic_opcodes.ops, interpreter.c, packfile.c:
7751         Evil printf bandaid (which allows Sparc64 to pass tests)
7753         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
7755 2001-10-03 16:58  simon
7757         * string.c, t/op/string.t:
7758         chop fixes for n < 0 and tests
7760         Courtesy of: Alex Gough <alex@rcon.org>
7762 2001-10-03 15:51  thgibbs
7764         * interpreter.c: Changed an occurrence of INTVAL to opcode_t
7766         Courtesy of: Bryan C. Warnock <bwarnock@raba.com>
7768 2001-10-02 17:48  dan
7770         * include/parrot/stacks.h: Fix typo in function name
7772 2001-10-02 17:35  dan
7774         * include/parrot/stacks.h: changed to support new stack stuff
7775         coming after 0.02
7777 2001-10-02 15:01  simon
7779         * Configure.pl, Types_pm.in, basic_opcodes.ops, config_h.in,
7780         interpreter.c, make_op_header.pl, memory.c, packfile.c,
7781         process_opfunc.pl, register.c, string.c, strnative.c,
7782         Parrot/Opcode.pm, Parrot/PackFile.pm, Parrot/String.pm,
7783         lib/Parrot/Opcode.pm, lib/Parrot/PackFile.pm, lib/Parrot/String.pm,
7784         Parrot/PackFile/ConstTable.pm, Parrot/PackFile/Constant.pm,
7785         docs/overview.pod, docs/strings.pod, include/parrot/interpreter.h,
7786         include/parrot/memory.h, include/parrot/packfile.h,
7787         include/parrot/parrot.h, include/parrot/register.h,
7788         include/parrot/stacks.h, include/parrot/string.h,
7789         lib/Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/Constant.pm:
7791         The Great Renaming.
7793 2001-10-02 12:49  gregor
7795         * process_opfunc.pl:
7796           * Fixed a tyop:  s/string/integer/ for INT_CONST expansion
7798 2001-10-02 12:40  simon
7800         * basic_opcodes.ops, process_opfunc.pl, register.c,
7801         include/parrot/register.h:
7802         Move preprocessing of register accessors to process_opfunc.pl
7804         Courtesy of: Jason Gloudon <perl@gloudon.com>
7806 2001-10-02 01:20  ask
7808         * README: add a few lines about lists.
7810 2001-10-01 23:00  brentdax
7812         * Configure.pl, Makefile.in, hints/mswin32.pl: Make 'make clean'
7813         work on Win32 (courtesy of Mattia Barbon <mbarbon@dsi.unive.it>)
7815 2001-10-01 22:50  brentdax
7817         * Configure.pl, test_c.in: More changes for 64-bit compatibility
7819 2001-10-01 21:51  simon
7821         * process_opfunc.pl:
7822         Michael Fischer's patch broke conditionals.
7824 2001-10-01 15:38  simon
7826         * process_opfunc.pl:
7827         Small hack to keep process_opfunc.pl from generating extra return()
7828         statements.
7830         Courtesy of: Michael Fischer <michael@visv.net>
7832 2001-10-01 15:32  simon
7834         * Parrot/Opcode.pm, lib/Parrot/Opcode.pm:
7835         Documentation fix.
7837         Courtesy of: Josh Wilmes <josh@hitchhiker.org>
7839 2001-10-01 01:49  simon
7841         * packfile.c:
7842         Simon is an idiot. Don't trust him with your code.
7844         Courtesy of: Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
7846 2001-10-01 00:59  simon
7848         * Parrot/String.pm, lib/Parrot/String.pm:
7849         Was in manifest, but not in CVS.
7851 2001-09-30 21:25  simon
7853         * MANIFEST, Types_pm.in, assemble.pl, basic_opcodes.ops,
7854         disassemble.pl, packfile.c, pdump.c, process_opfunc.pl,
7855         Parrot/Assembler.pm, Parrot/PackFile.pm,
7856         Parrot/PackFile/ConstTable.pm, Parrot/PackFile/Constant.pm,
7857         Parrot/PackFile/FixupTable.pm, lib/Parrot/Assembler.pm,
7858         lib/Parrot/PackFile.pm, lib/Parrot/PackFile/ConstTable.pm,
7859         lib/Parrot/PackFile/Constant.pm, lib/Parrot/PackFile/FixupTable.pm,
7860         include/parrot/packfile.h, include/parrot/string.h:
7861         Move NVs to the constant table.    * Changes to Types_pm.in to make
7862         life easier for some of the      packing/etc. I'm doing elsewhere.
7863         Also, we now pack 'n' as      'i'.
7865           * Moved the guts of assemble.pl to Parrot/Assembler.pm so that
7866             eventually we can use all these tools together inside scripts
7867             rather than call out to the shell to run the programs.
7869           * As I was tracking down problems, I converted the internal
7870             documentation of the assembler to POD from comments.
7872           * Changed the numeric regexp in the assembler to detect leading
7873             signs and trailing exponents.
7875           * Updated basic_opcodes.ops to fetch numeric constants from the
7876             constant table.
7878           * Enhanced the disassembler in a number of ways to make my life
7879             easier while tracking down bugs (try it out). It now puts in
7880             labels for ops that are the destinations of flow control ops.
7882           * packfile.c now has a TRACE_PACKFILE switch that can be set
7883             to get it to print info as it processes. I needed this while
7884             debugging, but I can remove it or change it before committing
7885             if its a problem.
7887           * Updated pdump.c because it was missing a call to init_world().
7889           * Updated process_opfunc.pl to deal with numeric constants
7890             being stored in the constant table instead of inline.
7892           * Added multiple type support to Parrot/PackFile/Constant.pm
7894           * Added Parrot/String.pm, to be used for constants.
7896           * Added packfile.[hc] functions for allocating new constants
7897             of various types.
7899           * Made string_copy visible to the world in parrot/string.h.
7901         Wow.
7903         Courtesy of: Gregor N. Purdy <gregor@focusresearch.com>
7905 2001-09-29 15:56  gregor
7907         * languages/jako/Makefile:
7908         Removed assumption that '.' is on the path.
7910 2001-09-29 15:55  gregor
7912         * languages/jako/Makefile:
7913         Removed references to leibnitz test program.
7915 2001-09-29 15:21  thgibbs
7917         * t/op/trans.t, basic_opcodes.ops: Added NV casts to transcendental
7918         math ops args to work on Solaris.
7920 2001-09-27 15:15  thgibbs
7922         * assemble.pl: Added case insensitive matches to hex and binary
7923         characters
7925         Courtesy of: Johnathan Scott Duff <duff@cbi.tamucc.edu>
7927 2001-09-27 04:46  thgibbs
7929         * assemble.pl: This patch makes integer constants of the form
7930         0b[01]+ work with perl 5.005.  The oct function in versions of perl
7931         before 5.6 did not handle the 0b numeric prefix; therefore, it was
7932         returning 0.  To fix this, I added a from_binary function that
7933         would take a binary string and return its decimal representation.
7934         Now, instead of blindly calilng oct, it makes a distinction between
7935         0/0x numbers and 0b numbers.
7937 2001-09-26 19:30  thgibbs
7939         * assemble.pl: Error now returns a non-zero status
7941         Courtesy of: Andrew Kuchling <akuchlin@mems-exchange.org>
7943 2001-09-26 19:13  gregor
7945         * MANIFEST, Makefile.in, basic_opcodes.ops, bytecode.c,
7946         interpreter.c, packfile.c, pdump.c, test_main.c,
7947         include/parrot/bytecode.h, include/parrot/interpreter.h,
7948         include/parrot/packfile.h, include/parrot/parrot.h, t/op/integer.t,
7949         t/op/stacks.t:
7950           * bytecode.[hc] removed. packfile.[hc] are the interface to the
7951             packfile/bytecode file from C. May be renamed in the future.
7953           * packfile.[hc] changed to use 'struct PackFile *', etc. instead
7954             of 'PackFile *', just like the interpreter, etc.
7956           * Constants are accessed via the interpreter's 'code' member
7957             (struct PackFile * code). Macros PCONST(i) and PNCONST are
7958             provided to access constants by index and the number of
7959             constants, respectively (assumes a variable 'interpreter' of
7960             the appropriate type is in scope).
7962           * Byte Code is accessed via the interpreter's 'code' member.
7964           * Changed PackFile_Constant to point to a STRING instead of
7965         having
7966             members for the string_make() arguments. Also has a 'type' IV
7967             in preparation for allowing multiple types of constants in
7968             const_table.
7970           * Removed hardcoded example program from test_main.c. We have
7971             plenty of test programs elsewhere.
7973           * test_prog now uses a PackFile to deal with the program before
7974             sending it on to the interpreter.
7976           * Added missing 'end' ops to some tests in t/op/integer.t and
7977             t/op/stacks.t.
7979 2001-09-26 18:38  thgibbs
7981         * assemble.pl: Separated code into functions and added comments.
7983 2001-09-26 18:29  simon
7985         * config_h.in:
7986         Fix 64-bit chunk-base issue.
7988 2001-09-26 06:55  thgibbs
7990         * t/op/bitwise.t: Added end to bitwise tests.
7992 2001-09-26 00:54  dan
7994         * docs/parrot_assembly.pod: Added in the base for threading, I/O,
7995         and interpreter creation. Skeleton only, but it's something to peer
7996         at.
7998 2001-09-25 21:44  thgibbs
8000         * t/op/trans.t: Removed loops in transcendtal op test.
8002 2001-09-25 10:12  simon
8004         * MANIFEST, t/op/basic.t, t/op/bitwise.t, t/op/integer.t,
8005         t/op/string.t, t/op/time.t:
8006         More tests
8008         Courtesy of: Alex Gough <alex@rcon.org>
8010 2001-09-24 19:08  gregor
8012         * t/op/number.t:
8013           * Enabled the clear_n test.
8015 2001-09-24 18:56  gregor
8017         * Parrot/.cvsignore:
8018           * Ignore the generated Types.pm file.
8020 2001-09-24 18:52  gregor
8022         * languages/jako/Makefile, t/op/number.t:
8023           * No need to skip the inc and dec numeric tests anymore. I fixed
8024         the
8025             assembler earlier today.
8027 2001-09-24 18:21  simon
8029         * MANIFEST, t/op/stacks.t:
8030         Oops.
8032 2001-09-24 18:19  simon
8034         * build_interp_starter.pl, interpreter.c, string.c, Parrot/Test.pm,
8035         include/parrot/exceptions.h, include/parrot/interpreter.h,
8036         lib/Parrot/Test.pm, t/op/string.t:
8037         1) captured error output, so can test errors, this might be bad,
8038         not sure.  2) basic tests for register stack frames, including some
8039         errors 3) I think we can stop skipping one of the string tests 4) I
8040         added some more substr tests, but substr was broken, so 5) changed
8041         substr to work with out of range values, or 6) throw an error if
8042         they're far too silly
8044         Courtesy of: Alex Gough <alex@rcon.org>
8046 2001-09-24 17:27  gregor
8048         * basic_opcodes.ops, opcode_table, t/op/number.t:
8049           * Op set_n was missing. Added it and a test for it. We now have
8050         the
8051             same int and num ops, except mod is int-only.
8053 2001-09-24 17:01  gregor
8055         * assemble.pl:
8056           * Fixed a typo: s/Line/line/
8058 2001-09-24 16:02  gregor
8060         * basic_opcodes.ops:
8061           * Fixed dec_n_nc opcode, which had += where it should have had
8062         -=.
8064 2001-09-24 15:34  gregor
8066         * assemble.pl:
8067           * Fixed handling of constants starting with '0' that should not
8068         be
8069             sent through oct(). For example 'set N2 0.1' was being
8070         interpreted
8071             as 'set N2 0' (naughty).
8073             As reported by Leon Brocard <acme@astray.com> in the comments
8074         of
8075             his mandelbrot.pasm example.
8077 2001-09-24 02:21  bdwheele
8079         * assemble.pl: fixed dumb code when --include was not specified.
8081 2001-09-24 02:17  simon
8083         * assemble.pl:
8084         Shit-sweeping.
8086 2001-09-24 01:56  bdwheele
8088         * assemble.pl: * Added --include=dir option to assembler to provide
8089         a path to look for included files.  * Error message of a macro is
8090         defined inside of a macro
8092 2001-09-23 21:29  bdwheele
8094         * assemble.pl: Added __FILE__ equate, fixed __LINE__ equate.
8096 2001-09-23 15:50  simon
8098         * Configure.pl:
8099         Fixed typo. Parrot might work again on non-8.3 filesystems. :)
8101 2001-09-23 02:03  ask
8103         * Configure.pl, test_c.in: fix missing newline at the end of test.c
8104         Courtesy of: acme@astray.com (Leon Brocard)
8106         rename 'test' executable used in Configure process to test_siz.
8108 2001-09-23 01:03  simon
8110         * process_opfunc.pl:
8111         iPaq fix. No, really.
8113 2001-09-23 00:47  simon
8115         * MANIFEST:
8116         Missed several, in fact.
8118 2001-09-23 00:46  simon
8120         * MANIFEST:
8121         Missed one.
8123 2001-09-22 21:13  simon
8125         * assemble.pl:
8126         Assembler register numbering rigour.
8128         Courtesy of: Leon Brocard <acme@astray.com>
8130 2001-09-22 18:20  simon
8132         * Makefile.in, lib/Test/More.pm, lib/Test/Simple.pm,
8133         lib/Test/Utils.pm:
8134         I'm sick of having to install Test::More everywhere. Temporary
8135         measure until we remove this silly dependency.
8137         Also a typo in Makefile.in which suggests some things were only
8138         happening correctly by sheer chance. :)
8140 2001-09-22 18:06  simon
8142         * README:
8143         test.pasm is dead, long like make test.
8145 2001-09-22 17:47  simon
8147         * t/op/number.t:
8148         De-fang overzealous floating point test.
8150 2001-09-22 17:39  simon
8152         * process_opfunc.pl:
8153         Remove hard-coded NV size assumption. Tru64 is nearly there!
8155 2001-09-22 17:18  simon
8157         * assemble.pl, disassemble.pl:
8158         More portability fixups.
8160 2001-09-22 16:44  simon
8162         * assemble.pl, Parrot/PackFile/Constant.pm,
8163         lib/Parrot/PackFile/Constant.pm:
8164         And I *think* this fixes Tru64.
8166 2001-09-22 16:37  simon
8168         * Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/ConstTable.pm:
8170         Oops.
8172 2001-09-22 16:36  simon
8174         * Parrot/PackFile.pm, Parrot/PackFile/ConstTable.pm,
8175         Parrot/PackFile/Constant.pm, lib/Parrot/PackFile.pm,
8176         lib/Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/Constant.pm:
8178         More removal of hard-coded pack formats.
8180 2001-09-22 15:21  simon
8182         * assemble.pl:
8184         Grrr. Why isn't this working?
8186 2001-09-22 15:18  simon
8188         * Parrot/PackFile.pm, Parrot/PackFile/ConstTable.pm,
8189         lib/Parrot/PackFile.pm, lib/Parrot/PackFile/ConstTable.pm:
8191         Make assemble use the PackFile modules; also fixed some bugs in
8192         them.
8194 2001-09-22 14:38  simon
8196         * Configure.pl, MANIFEST, Types_pm.in, assemble.pl, disassemble.pl:
8198         Abstract the argument and opcode packing types and functions out
8199         into a separate module. This *should* help us maintain consistency
8200         when we change the various types.
8202 2001-09-22 00:46  brentdax
8204         * Configure.pl: Delete test.o (or its equivalent) after Configure's
8205         test program finishes.
8207 2001-09-21 21:24  brentdax
8209         * Parrot/Test.pm, lib/Parrot/Test.pm: Fix error with \ as path
8210         separator (courtesy of Mattia Barbon <mbarbon@dsi.unive.it>)
8212 2001-09-21 21:09  gregor
8214         * Parrot/PackFile/ConstTable.pm, Parrot/PackFile/Constant.pm,
8215         lib/Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/Constant.pm:
8217           * Fixed pad calculation (similar to recent bug fix on C library)
8219 2001-09-21 20:23  simon
8221         * disassemble.pl:
8222         Pack types and sizes have gone askew.
8224 2001-09-21 20:18  brentdax
8226         * Configure.pl: Fix typo in setting stuff from the C test program
8228 2001-09-21 10:25  simon
8230         * basic_opcodes.ops, process_opfunc.pl:
8231         Document patches.
8233         Courtesy of: Leon Brocard <acme@astray.com>
8235 2001-09-21 06:06  ask
8237         * Config_pm.in, assemble.pl: fix 5.005_03.
8239 2001-09-21 06:03  ask
8241         * Configure.pl: make the ivsize detection work for us normal people
8242         without . in our PATH.  :-)
8244 2001-09-21 05:56  brentdax
8246         * test_main.c: Change _read to read for portability to Tru64
8247         (Damien Neil <neild@misago.org> and likely many others)
8249 2001-09-21 05:46  ask
8251         * Makefile.in: "update" target to update from cvs.
8253 2001-09-21 05:44  brentdax
8255         * Configure.pl, test_c.in: Fix issues with ivsize and nvsize
8257 2001-09-21 02:43  brentdax
8259         * Configure.pl: Fix a typo that forced the -g flag on
8261 2001-09-20 22:41  dan
8263         * packfile.c: Had some no-value returns. Naughty
8265 2001-09-20 22:40  dan
8267         * t/test.pasm: Added labels to output
8269 2001-09-20 15:39  simon
8271         * Parrot/Opcode.pm, Parrot/Test.pm, lib/Parrot/Opcode.pm,
8272         lib/Parrot/Test.pm:
8273         This patch does two only somewhat related things.
8275         Parrot/Opcode.pm:  Change the hard-wired assumption that sizeof(nv)
8276         = 2*sizeof(iv) to a PConfig-type computed value.
8278         Parrot/Test.pm:  Change it to run with the perl that was used to
8279         generate this version of Parrot.  This is useful if, for example,
8280         you want to use bleadperl to build and test parrot (e.g. to try out
8281         various 64-bit options) but you still have a 5.6.x (or 5.005_xx)
8282         installed as the default 'perl' on your system.  Since perl-5.7.x
8283         is installed 'version-only', a plain 'perl' is quite likely to pick
8284         up the older perl in such cases. Such an older perl might well not
8285         understand pack('q') used in the assembler.
8287         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
8289 2001-09-20 15:14  gregor
8291         * packfile.c:
8292           * Fixed a typo in pad calculation that throwing off unpack and
8293         pack.
8295 2001-09-20 15:03  thgibbs
8297         * t/op/integer.t: Removed overflow tests from integer.t.  set_i_ic
8298         tests now cover all registers.
8300         Courtesy of: Damien Neil neild@misago.org
8302 2001-09-20 14:48  thgibbs
8304         * process_opfunc.pl: Changed process_opfunc.pl to work on 64 bit
8305         machines.
8307 2001-09-20 14:35  simon
8309         * Configure.pl, assemble.pl:
8310         Pack IVs correctly.
8312         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
8314 2001-09-20 14:06  gregor
8316         * languages/jako/jakoc:
8317           * Fixed a tyop in the string interpolation regex.
8319         Courtesy of Michael L Maraist <maraist@UDel.Edu>
8321 2001-09-20 13:56  gregor
8323         * languages/jako/jakoc:
8324           * Updated jakoc to work with the single-destination comp ops.
8326 2001-09-20 05:08  bdwheele
8328         * assemble.pl: macro expansion.  Here's the test macro I was using:
8330         # this uses I32,I31 as temporaries.  # macro must be preceeded by a
8331         label.  testi       macro   num,got,want    print   "Test #"
8332         print   num     print   "..."   set     I32,want        set
8333         I31,got         eq      I32,I31,$ok     print   "NG\n"  branch
8334         $end $ok:       print   "OK\n" $end:    endm
8336         It is invoked as:
8338         Test1:  testi   1,I3,I2
8340 2001-09-20 03:52  dan
8342         * stacks.c, include/parrot/stacks.h: Preliminary files for the
8343         generic stack support
8345 2001-09-20 02:49  bdwheele
8347         * assemble.pl: Added include processing to assemble.pl  the syntax
8348         is: include 'file.to.include'
8350 2001-09-19 23:57  thgibbs
8352         * t/op/integer.t, t/op/number.t, assemble.pl, opcode_table: Fixed
8353         opcode_table listing of if_i_ic and if_n_ic.  Dan had changed the
8354         function to only use 2 args, but the opcode_table still had three
8355         listed.  Fixed integer.t and number.t to use the new comparison
8356         operators.  Improved assemble.pl ability to grok operators by
8357         constructing a function set and comparing operator types.
8359 2001-09-19 22:42  dan
8361         * assemble.pl: Binmodes the output filehandles now. (No more
8362         bytecode munching...)
8364 2001-09-19 22:32  dan
8366         * Configure.pl, basic_opcodes.ops, opcode_table, process_opfunc.pl,
8367         t/euclid.pasm, t/test.pasm, t/test2.pasm: Changed opcodes so
8368         conditional branches take a single argument, and fall through
8369         otherwise.
8371 2001-09-19 21:19  thgibbs
8373         * memory.c: Added explanation of mem_allocate_aligned give by Dan
8374         Sugalski
8376         Courtesy of: Josh Wilmes <josh@hitchhiker.org>
8378 2001-09-19 21:04  thgibbs
8380         * include/parrot/interpreter.h, Configure.pl,
8381         build_interp_starter.pl, bytecode.c, config_h.in, interpreter.c,
8382         process_opfunc.pl: Changed opcode_t from a union to a configurable
8383         type.
8385 2001-09-19 20:54  thgibbs
8387         * assemble.pl: Missed a couple of changes for 64 bit portability.
8389 2001-09-19 20:37  gregor
8391         * packfile.c, include/parrot/packfile.h:
8392           * Added "methods" for setting and getting all the various
8393         attributes,
8394             probably sufficient for an assembler to use the library.
8396 2001-09-19 20:04  thgibbs
8398         * assemble.pl: Modifications to run on 64 bit platforms.  To run on
8399         a 64 bit platform manually change the  setting for 'i' from 'l' to
8400         'q'.  This should be automatically done by a Configure setting in
8401         the near future.
8403 2001-09-19 19:10  thgibbs
8405         * config_h.in: changed c++ comment to c comment.
8407         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
8409 2001-09-19 17:48  gregor
8411         * .cvsignore, MANIFEST, Makefile.in, packfile.c, pdump.c,
8412         include/parrot/packfile.h:
8413           * C code for dealing with PackFiles as if they were objects.
8414         Mostly
8415             read-only interface for now, but it would not be hard to make
8416         it
8417             read-write. [packfile.c, include/parrot/packfile.h]
8419           * PackFile Dumping program that falls short of disassembling, but
8420             tests the above code and provides a hex listing of the byte
8421         code
8422             contents of the PackFile. [pdump.c]
8424           * New Makefile target 'pdump' for the above program, and related
8425             Makefile.in changes.
8427           * Updated MANIFEST to reflect the added files
8429           * Update .cvsignore to ignore pdump.
8431 2001-09-19 14:55  thgibbs
8433         * MANIFEST: Added number.t and trans.t to MANIFEST
8435 2001-09-19 05:40  thgibbs
8437         * process_opfunc.pl: Now taking & of opcode_t instead of i member
8438         of union opcode_t.  I hope this will be more portable for set_n_nc.
8440 2001-09-19 05:39  thgibbs
8442         * t/op/integer.t: Added end to test 1.
8444 2001-09-19 00:09  thgibbs
8446         * t/op/number.t: Added end to each test
8448 2001-09-19 00:00  simon
8450         * t/op/number.t:
8451         Number tests! Wooo!
8453         Courtesy of: Damien Neil <neild@misago.org>
8455 2001-09-18 23:52  thgibbs
8457         * interpreter.c: Added casts to appropriate types to make -Wall not
8458         complain on certain printf formats
8460 2001-09-18 23:31  thgibbs
8462         * t/op/integer.t: Added end to each test.
8464 2001-09-18 22:54  thgibbs
8466         * t/op/trans.t: Added trans.t for transcendental math function
8467         tests.
8469 2001-09-18 22:28  simon
8471         * MANIFEST:
8472         MANIFEST updates. (And notice how I carefully snuck in the
8473         t/op/integer.t there...)
8475         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
8477 2001-09-18 22:26  simon
8479         * t/: integer.t, op/integer.t:
8480         Except it doesn't go there. Duh.
8482 2001-09-18 22:25  simon
8484         * t/integer.t:
8485         Tests for integer ops.
8487         Courtesy of: Damien Neil <neild@misago.org>
8489 2001-09-18 22:03  thgibbs
8491         * include/parrot/bytecode.h, include/parrot/interpreter.h,
8492         build_interp_starter.pl, bytecode.c, config_h.in, interpreter.c,
8493         make_op_header.pl, process_opfunc.pl, test_main.c: Changed IV to
8494         opcode_t union for operators.  This required a few perl script
8495         changes to output the correct type.  There were also some changes
8496         to allow -pedantic in gcc
8498 2001-09-18 21:07  gregor
8500         * disassemble.pl, Parrot/PackFile.pm,
8501         Parrot/PackFile/ConstTable.pm, Parrot/PackFile/Constant.pm,
8502         lib/Parrot/PackFile.pm, lib/Parrot/PackFile/ConstTable.pm,
8503         lib/Parrot/PackFile/Constant.pm:
8504         Converted the disassembler to use the Parrot::PackFile Perl classes
8505         to do its job.
8507 2001-09-18 19:18  brentdax
8509         * Makefile.in: Fix missing functions for real this time.  (I
8510         swear!)
8512 2001-09-18 18:49  brentdax
8514         * Configure.pl: Remove unnecessary -I.. (courtesy of Andy Dougherty
8515         <doughera@lafayette.edu>}
8517 2001-09-18 18:47  brentdax
8519         * Makefile.in: Fix bugs with missing math, etc. functions
8521 2001-09-18 14:42  thgibbs
8523         * strnative.c: Sorry Simon...forgot bustart was a void* not a
8524         char*.
8526 2001-09-18 13:59  thgibbs
8528         * strnative.c: Removed unnecessary IV cast in concat.
8530 2001-09-18 13:58  thgibbs
8532         * t/op/string.t: Removed unnecessary IV cast in concat.  Added end
8533         to concat test in string.t
8535 2001-09-18 12:07  gregor
8537         * languages/jako/jakoc:
8538           * var num ... no longer requires assignment
8539           * automatic casting between int and num
8540           * Fixed an error message
8542         Courtesy of: Simon Cozens <simon@cvs.perl.org>
8544 2001-09-18 11:57  simon
8546         * TODO:
8547         Gonna have to start thinking of more things to do, soon.
8549 2001-09-18 10:42  simon
8551         * opcode_table:
8552         Introduce a little more tidiness into the opcode table.
8554 2001-09-18 03:06  gregor
8556         * basic_opcodes.ops, opcode_table, t/euclid.pasm:
8557         Resurrected register-const ops per Dan's request.
8559 2001-09-18 02:20  gregor
8561         * .cvsignore, Configure.pl, MANIFEST, Makefile.in,
8562         build_interp_starter.pl, bytecode.h, events.h, exceptions.h,
8563         global_setup.h, interpreter.h, io.h, memory.h, parrot.h,
8564         process_opfunc.pl, register.h, stacks.h, string.h, strnative.h:
8565         Committed some files that were missed in the last *.h moving
8566         commit.
8568 2001-09-18 02:17  gregor
8570         * include/parrot/.cvsignore: Fixed a typo in .cvsignore.
8572 2001-09-18 02:16  gregor
8574         * include/parrot/: .cvsignore, bytecode.h, events.h, exceptions.h,
8575         global_setup.h, interpreter.h, io.h, memory.h, parrot.h,
8576         register.h, stacks.h, string.h, strnative.h: Added .cvsignore file
8577         missed in last commit for the move of *.h to include/parrot.
8579 2001-09-18 01:32  simon
8581         * t/Makefile:
8582         Trivial "clean" target to t/Makefile.
8584 2001-09-18 01:32  simon
8586         * assemble.pl, build_interp_starter.pl, disassemble.pl,
8587         Parrot/Opcode.pm, lib/Parrot/Opcode.pm:
8588         Change icky Digest::MD5 for nice simple unpack()
8590         Courtesy of: Jonathan Scott Duff <duff@cbi.tamucc.edu>
8592 2001-09-18 00:35  simon
8594         * basic_opcodes.ops, opcode_table, docs/parrot_assembly.pod,
8595         t/op/string.t:
8596         New concat op. Hey, if I'm going to talk about it in an article,
8597         better implement it...
8599 2001-09-17 22:54  gregor
8601         * MANIFEST, Parrot/PackFile.pm, Parrot/PackFile/ConstTable.pm,
8602         Parrot/PackFile/Constant.pm, Parrot/PackFile/FixupTable.pm,
8603         lib/Parrot/PackFile.pm, lib/Parrot/PackFile/ConstTable.pm,
8604         lib/Parrot/PackFile/Constant.pm, lib/Parrot/PackFile/FixupTable.pm:
8606         Functions for reading, writing and manipulating Parrot Pack Files.
8607         NOTE: This is a proposed term based on the fact that the file
8608         contains more than just byte code, and another language (Java)
8609         calls its binary files by a broader notion of what's in them (Class
8610         Files). Since Perl has packages, and since we use pack() to write
8611         them, we'll call them PackFiles (at least for now).
8613         That does, however, beg the question of file extension. Should we
8614         name the files "foo.pack" instead of "foo.pbc"?
8616 2001-09-17 20:23  thgibbs
8618         * interpreter.c, test_main.c: Uncuddled else statements for coding
8619         standard.
8621 2001-09-17 19:57  gregor
8623         * Parrot/Opcode.pm, lib/Parrot/Opcode.pm:
8624         Added a $revision variable, parsing of the CVS Id line in
8625         opcode_table and a &revision() subroutine.
8627 2001-09-17 19:53  gregor
8629         * opcode_table:
8630         Added a CVS Id tag to it.
8632 2001-09-17 18:58  thgibbs
8634         * interpreter.c: Cleared interpreter flags on creation.
8636 2001-09-17 18:38  gregor
8638         * build_interp_starter.pl, bytecode.c, bytecode.h, interpreter.c,
8639         interpreter.h, test_main.c:
8640           * Provides macros in interp_guts.h for setting up arrays with
8641             op names and op arg counts (done via build_interp_starter.pl).
8643             These are used in the op tracing
8645           * The functions in bytecode.[hc] pass around a pointer to the
8646         length
8647             of the bytecode so that later when we get to runops, we know
8648             how much bytecode we've got and we can detect out-of-bounds
8649             jumping. The documentation is updated, too.
8651           * runops in interpreter.c now looks at interpreter->flags to
8652             decide if the core of runops should be runops_trace_core or
8653             runops_notrace_core. These new functions contain just the
8654             while-loop portion of runops. A new function runops_generic
8655             does any other setup (such as checking the bytecode
8656             fingerprint) or wrapup (such as complaining if we ended up
8657             out-of-bounds). NOTE: I didn't know what we should do for
8658             functions in here that are not part of the api, so I gave
8659             them docs with 'TODO' marks mentioning they really aren't
8660             part of the api. Guidance appreciated.
8662           * test_main.c now checks for '-t' arg and sets the tracing flag
8663             on its interpreter instance as appropriate.
8665 2001-09-17 17:47  bdwheele
8667         * assemble.pl: added some default equates, and if they're sub
8668         references, they are computed each time it is referenced.
8670 2001-09-17 16:15  dan
8672         * interpreter.h:
8674         Added flags to the interpreter structure and defined a few.
8676 2001-09-17 15:51  simon
8678         * bytecode.h, string.h:
8679         VAR_SCOPE on globals.
8681 2001-09-17 15:20  simon
8683         * MANIFEST:
8684         Parrot/Opcode.pm, Parrot/Test.pm into MANIFEST.
8686 2001-09-17 15:05  gregor
8688         * t/jump.pasm, MANIFEST:
8689         Added a test program to demonstrate jump_i.
8691 2001-09-17 14:44  thgibbs
8693         * register.c: Fixed register pop not using correct offset (off by
8694         one).
8696         Courtesy of: Philip Kendall <pak@ast.cam.ac.uk>
8698 2001-09-17 13:56  thgibbs
8700         * interpreter.c, register.c: Added code to call Parrot_clear_s
8701         during initialization and Parrot_clear_s and Parrot_clear_p when a
8702         new stack frame is pushed.
8704 2001-09-17 13:51  gregor
8706         * languages/jako/: Makefile, bench.jako, euclid.jako, fact.jako,
8707         fib.jako, hello.jako: Added bench.pasm to "clean"
8709 2001-09-17 13:49  gregor
8711         * languages/jako/: jakoc, Makefile:
8712         Added CVS Id tag.
8714 2001-09-17 13:49  gregor
8716         * languages/jako/jakoc:
8717         Code streamlining.
8719         Courtesy of: Buggs <buggs-perl6@splashground.de>
8721 2001-09-17 13:29  gregor
8723         * MANIFEST, opcheck.pl:
8724         Added an opcode_table checker to make sure that all opcodes listed
8725         there conform to a simple set of naming rules (rules themselves, of
8726         course, are subject to change).
8728 2001-09-17 13:23  thgibbs
8730         * string.c: Modified string.c to correctly use the return value of
8731         realloc.
8733 2001-09-17 05:26  brentdax
8735         * Makefile.in: Making the Makefile smarter
8737 2001-09-16 23:06  brentdax
8739         * hints/mswin32.pl: Finishing the Configure hints
8741 2001-09-16 23:05  brentdax
8743         * Configure.pl, Makefile.in, parrot.h, test_main.c,
8744         Parrot/Opcode.pm, lib/Parrot/Opcode.pm: Win32 compatibility,
8745         Configure hints, 5.005 compatibility, MANIFEST checking
8747 2001-09-16 19:25  bdwheele
8749         * assemble.pl: parrot assembly equates
8751 2001-09-16 18:03  gregor
8753         * Makefile.in:
8754         Added 'test' target to run new test suite.
8756 2001-09-16 17:33  simon
8758         * basic_opcodes.ops:
8759         'not' was being !, rather than ~. Too many Perl programmers here, I
8760         suspect.
8762         Courtesy of: Tom Hughes <tom@compton.nu>
8764 2001-09-16 17:21  simon
8766         * Parrot/Test.pm, lib/Parrot/Test.pm, t/harness, t/op/basic.t,
8767         t/op/string.t:
8768         A *real* test suite!
8770         Courtesy of: "Mattia Barbon" <mbarbon@dsi.unive.it>
8772 2001-09-16 16:49  gregor
8774         * basic_opcodes.ops, opcode_table:
8775         At Dan's request, my new register-constant comparison ops have been
8776         removed.
8778 2001-09-16 16:40  gregor
8780         * languages/jako/jakoc:
8781         Fixed a copy-paste error in one of jakoc's error messages.
8783         Courtesy of: Buggs <buggs-perl6-list@splashground.de>
8785 2001-09-16 16:37  gregor
8787         * languages/jako/jakoc:
8788         Modified comparison implementation to use temporary registers in
8789         the case of register-constant and constant-register comparisons.
8790         This will allow the compiler to emit code that works when the
8791         constant-comparison ops are backed out of Parrot. If the ops ever
8792         make their way back in, then jakoc can emit more efficient code
8793         again.
8795 2001-09-16 16:19  bdwheele
8797         * assemble.pl, t/local_label.pasm: Added local labels ($whatever)
8798         ... though not subroutine based like the documentation wants, they
8799         are local to the last non-local label defined.
8801 2001-09-16 14:02  simon
8803         * MANIFEST:
8804         And remember, when you add stuff, keep the manifest up to date.
8806 2001-09-16 02:55  ask
8808         * Makefile.in: a "shared" target for building libparrot.so
8810 2001-09-16 02:45  thgibbs
8812         * bytecode.c, bytecode.h, events.h, exceptions.h, global_setup.c,
8813         global_setup.h, interpreter.c, interpreter.h, io.h,
8814         make_op_header.pl, memory.c, memory.h, parrot.c, parrot.h,
8815         process_opfunc.pl, register.c, register.h, stacks.h, string.c,
8816         string.h, strnative.c, strnative.h, test_main.c: Updated files to
8817         use the coding standard PDD.  Also changed Perl_Interp to
8818         Parrot_Interp.
8820 2001-09-16 02:21  ask
8822         * README: emphasise the bits about the license not being worked out
8823         yet.
8825 2001-09-15 22:21  simon
8827         * process_opfunc.pl:
8828         basic_opcodes.c should *scream* that it's autogenerated.
8830 2001-09-15 21:58  gregor
8832         * languages/jako/Makefile:
8833         Fixed Makefile to use 'jakoc' instead of 'jako_compiler.pl' to
8834         compile.
8836 2001-09-15 21:58  gregor
8838         * languages/jako/: jako_compiler.pl, jakoc:
8839         Renamed the Jako compiler to jakoc from jako_compiler.pl
8841 2001-09-15 21:51  gregor
8843         * languages/jako/: Makefile, bench.jako, euclid.jako,
8844         jako_compiler.pl:
8845         Added a new bench.jako example based on Leon Brocard's Bench.java.
8847         Jako Compiler:   * fix a bug in assignment handling   * add some
8848         more conditionals to while and if   * revert to using implicit
8849         opcodes in a few cases that were broken     before the assembler
8850         patch went in recently.
8852 2001-09-15 21:46  gregor
8854         * assemble.pl, basic_opcodes.ops, opcode_table:
8855         New ops for register-constant INTEGER comparisons:
8857           {eq,ne,lt,le,gt,ge}_ic_ic
8859         New ops for register-register and register-constant NUMERIC
8860         comparisons:
8862           eq_nc_ic
8863           {ne,lt,le,gt,ge}_{n,nc}_ic
8865         Assembler:
8867           Allow uppercase and underscores in labels.
8869           Tweaks to the op infer code to make it work with the examples
8870         I've been
8871           creating.
8873 2001-09-15 19:16  thgibbs
8875         * README: Updated README to include Configure.pl
8877 2001-09-15 17:05  simon
8879         * build_interp_starter.pl:
8880         Casting happiness
8882         Courtesy of: Jarkko Hietaniemi <jhi@cc.hut.fi>
8884 2001-09-15 16:45  simon
8886         * assemble.pl:
8887         And the same again: Parrot/Opcode.pm wasn't "..-aware".
8889 2001-09-15 16:40  simon
8891         * t/Makefile:
8892         The Parrot/Opcode.pm dependency means we need to do -I.. in the
8893         test Makefile
8895 2001-09-15 12:26  simon
8897         * memory.c:
8898         Fixed to match the coding standards.
8900         Courtesy of: Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
8902 2001-09-15 01:57  ask
8904         * Configure.pl, Makefile.in, Parrot/Opcode.pm,
8905         lib/Parrot/Opcode.pm: make the Makefile use the perl that was used
8906         to run Configure.pl
8908 2001-09-15 01:48  ask
8910         * Parrot/Opcode.pm, lib/Parrot/Opcode.pm: if we need perl 5.6, just
8911         say so. :-)
8913 2001-09-15 01:42  gregor
8915         * languages/jako/: euclid.jako, fact.jako, fib.jako,
8916         jako_compiler.pl:
8917         Compiler: Added variable interpolation in double-quoted strings.
8918         Examples: Made use of variable interpolation.
8920 2001-09-15 01:28  gregor
8922         * Parrot/.cvsignore:
8923         Ignore the Config.pm generated file.
8925 2001-09-15 01:22  gregor
8927         * languages/jako/: .cvsignore, Makefile, euclid.jako, fact.jako,
8928         fib.jako, hello.jako, jako_compiler.pl:
8929         gnp: Added some more sample Jako files and added many more
8930         operators to the compiler. Preparations for supporting all the Math
8931         and bitwise ops.
8933 2001-09-14 19:06  simon
8935         * assemble.pl, build_interp_starter.pl, disassemble.pl,
8936         make_op_header.pl, process_opfunc.pl, Parrot/Opcode.pm,
8937         lib/Parrot/Opcode.pm:
8938         Move common table reading stuff to a module.
8940         Courtesy of: Damien Neil <neild@misago.org>
8942 2001-09-14 17:42  simon
8944         * .cvsignore:
8945         More .cvsignore foo.
8947 2001-09-14 17:40  simon
8949         * assemble.pl, config_h.in:
8950         De-coredump
8952         Courtesy of: Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
8954 2001-09-14 17:38  simon
8956         * assemble.pl, t/Makefile:
8957         Make assemble.pl look in its parent directory if the data files it
8958         needs aren't in the current one. Plus a Makefile that lets "make
8959         foo.pbc" work in t/
8961         Courtesy of: Rocco Caputo <troc@netrus.net>
8963 2001-09-14 16:29  simon
8965         * make_op_header.pl:
8966         Wildly experimental patch to make Parrot compile on FreeBSD. (And
8967         probably segfault everywhere else.)
8969 2001-09-14 15:58  dan
8971         * languages/jako/: euclid.jako, jako_compiler.pl:
8973         Added in the first mini-language that targets Parrot.
8975         Courtesy of: "Gregor N. Purdy" <gregor@focusresearch.com>
8977 2001-09-14 15:20  dan
8979         * memory.c: Was misaligning returned memory. Fixed.
8981 2001-09-14 15:08  simon
8983         * Makefile.in, basic_opcodes.ops, bytecode.c, global_setup.c,
8984         interpreter.c, interpreter.h, memory.c, parrot.c, parrot.h,
8985         register.c, register.h, string.c, string.h, strnative.c,
8986         test_main.c:
8987         Fixes to include <parrot/foo.h>
8989         Courtesy of: Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
8991 2001-09-14 12:05  simon
8993         * strnative.c:
8994         Appease Tru64.
8996 2001-09-14 12:01  simon
8998         * memory.c:
8999         Appease Tru64.
9001 2001-09-14 11:54  simon
9003         * interpreter.c:
9004         Remove lvalue cast.
9006 2001-09-14 11:45  simon
9008         * Configure.pl:
9009         Be 5.005 friendly.
9011 2001-09-14 11:39  simon
9013         * Configure.pl:
9014         Tru64 cc doesn't like -Wall
9016 2001-09-14 10:57  simon
9018         * Config_pm.in, Configure.pl, MANIFEST, Makefile, Makefile.in,
9019         assemble.pl, build_interp_starter.pl, bytecode.c, bytecode.h,
9020         config.h.in, config_h.in, disassemble.pl, interpreter.c:
9021         Configure now generates Makefile
9023         Courtesy of: Brent Dax <brentdax@cpan.org>
9025 2001-09-14 10:08  simon
9027         * t/test3.pasm:
9028         Add "end"
9030         Courtesy of: Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
9032 2001-09-14 10:07  simon
9034         * assemble.pl:
9035                 * uses Getopt::Long for options.  -c is now --checksyntax.
9036         I wasn't
9037         sure how to keep compatible (patches welcome!)         * options
9038         include:                 --help                 --version
9039               --verbose                 --output=file
9040         --listing=file                 --checksyntax         * produces
9041         verbose listing of what the assembler saw :)  Only one nitpick with
9042         it:  unknown symbols are given as 0xffffffff, unfortunately, this
9043         includes symbols which may be defined later in the file (i.e.
9044         forward jumps).
9046         Courtesy of: Brian Wheeler <bdwheele@indiana.edu>
9048 2001-09-14 10:06  simon
9050         * strnative.c:
9051         substr growth fixup
9053         Courtesy of: Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
9055 2001-09-14 10:03  simon
9057         * bytecode.c, global_setup.c, interpreter.c, memory.c, memory.h,
9058         register.c, string.c, strnative.c, test_main.c:
9059         Coding standards conformance
9061         Courtesy of Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
9063 2001-09-14 09:46  simon
9065         * assemble.pl:
9066         Make the assembler grok transcendental maths again.  Courtesy of:
9067         Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
9069 2001-09-13 17:29  simon
9071         * assemble.pl:
9072         Better opcode guessing, from Brian Wheeler. (Again!)
9074 2001-09-13 17:20  dan
9076         * docs/parrot_assembly.pod:
9078         Took out duplicate entries for iton, ntoi, and tostring.
9080 2001-09-13 17:16  simon
9082         * assemble.pl, basic_opcodes.ops, opcode_table:
9083         From Brian Wheeler:
9085         This patch gives the assembler support of '\a','\n','\r','\t', and
9086         '\\' in string constants.
9088         In addition, it changes (for all registers) "I reg %li is ..." to
9089         just the value of the register.  Printing constants is also
9090         supported, but alas, you have to specify the type (print_sc,
9091         print_ic, print_nc).
9093 2001-09-13 15:38  simon
9095         * assemble.pl:
9096         Why don't I actually *test* this stuff before applying it, eh?
9098 2001-09-13 15:34  simon
9100         * TODO, t/euclid.pasm:
9101         From: "Gregor N. Purdy" <gregor@focusresearch.com> Subject: [patch
9102         (really)] Removed opcode qualifers t/euclid.pasm to exercise opcode
9103         inference
9105 2001-09-13 14:42  simon
9107         * assemble.pl:
9108         A new assembler, from Brian Wheeler.
9110 2001-09-13 09:44  simon
9112         * basic_opcodes.ops, interpreter.h, parrot.h, strnative.c,
9113         test_main.c:
9114         Two more from Tom Hughes:     Patch to fix C++ style comments
9115         Patch to remove use of structure constant/cast
9117 2001-09-13 09:39  simon
9119         * TODO, docs/strings.pod:
9120         Update string docs.
9122 2001-09-13 09:36  simon
9124         * Makefile, basic_opcodes.ops:
9125         Tom Hughes      Patch to link with the maths library Tom Hughes
9126          Patch to fix += on rvalue
9128 2001-09-13 08:57  simon
9130         * MANIFEST:
9131         I guess nobody's been using the nightly builds...
9133 2001-09-13 08:27  simon
9135         * assemble.pl, basic_opcodes.ops, opcode_table:
9136         Bitwise ops, from Brian Wheeler.
9138 2001-09-13 08:23  simon
9140         * .cvsignore, t/.cvsignore:
9141         .cvsignore's, from Gregor Purdy.
9143 2001-09-13 08:22  simon
9145         * Makefile:
9146         Euclidean test and test output rearranging from Gregor Purdy.
9148 2001-09-13 08:21  simon
9150         * assemble.pl, basic_opcodes.ops, disassemble.pl, opcode_table:
9151         Math ops from Gibbs Tanton.
9153 2001-09-13 08:14  simon
9155         * basic_opcodes.ops, opcode_table, string.c, string.h, strnative.c,
9156         t/test2.pasm:
9157         String substr op; also rearranged "encoding" to be a vtable
9158         pointer, not an array index. Haven't changed docs to reflect this,
9159         oops.
9161         Simon
9163 2001-09-12 19:48  dan
9165         * t/euclid.pasm: Implementation of Euclid's Algorithm, courtesy of
9166         Gregor Purdy
9168 2001-09-12 19:39  dan
9170         * basic_opcodes.ops, opcode_table: From Gregor Purdy. Adds mod_i.
9172 2001-09-12 19:23  dan
9174         * interpreter.h, parrot.h: Quick placeholder entry for string
9175         function tables
9177 2001-09-12 18:58  dan
9179         * memory.c: Added in a cast to make gcc happy.
9181 2001-09-12 16:44  dan
9183         * docs/parrot_assembly.pod:
9185         PDD describing parrot's assembly language and the opcodes in it
9187 2001-09-12 14:20  dan
9189         * memory.c:
9190         Fixed alignment issues with allocation
9192 2001-09-12 10:54  simon
9194         * Makefile, assemble.pl, bytecode.c, disassemble.pl,
9195         make_op_header.pl, opcode_table, process_opfunc.pl:
9196         Brian Wheeler's big patch:
9198         * Changes the opcode_table file to provide additional information
9199         about the operands.  Case shouldn't be a problem since that data
9200         never becomes a C symbol [this is pretty much as before]
9202         * Padding errors solved:  assemble.pl and bytecode.c were padding
9203         the constants incorrectly.  It should have been 4-(size % 4), not
9204         just (size % 4).  It is now fixed in both places.
9206         * assembler has less special cases, and should be easier to hang
9207         error checking on
9209         * disassembler dumps constant table and the format is a bit
9210         prettier, including register names, etc.
9212 2001-09-11 23:21  dan
9214         * build_interp_starter.pl, interpreter.c:
9216         Abstracted the runops function core into a macro for easy
9217         replacement later.
9219 2001-09-11 10:43  simon
9221         * Configure.pl, MANIFEST, Makefile, config.h, config.h.in:
9222         Configure system from Brent Dax <brentdax@cpan.org>
9224 2001-09-11 09:38  simon
9226         * assemble.pl, test.pbc:
9227         From: Bryan C. Warnock <bwarnock@raba.com> Subject: Patch:
9228         assembler deferred output
9230         Also got rid of the bytecode, since that's probably way out of
9231         date.
9233 2001-09-11 09:26  simon
9235         * basic_opcodes.ops, opcode_table, t/test2.pasm:
9236         From: Bryan C. Warnock <bwarnock@raba.com> Subject: length_s_i
9237         patch
9239 2001-09-10 23:20  simon
9241         * MANIFEST:
9242         And that move needs a MANIFEST change. So many things to remember!
9244 2001-09-10 23:18  simon
9246         * t/: test.pasm, test2.pasm, test3.pasm:
9247         Move tests to t/. (Oh, CVS doesn't work the way I think it does.)
9249 2001-09-10 23:18  simon
9251         * test.pasm, test2.pasm, test3.pasm:
9252         Move tests to t/
9254 2001-09-10 23:04  dan
9256         * test3.pasm:
9258         Register push/pop test
9260 2001-09-10 22:47  simon
9262         * basic_opcodes.ops, bytecode.c, parrot.h, test_main.c:
9263         Fix up format warnings, from Sam Tregar <sam@tregar.com>.
9264         (Modified to avoid conflict with Dan's changes.)
9266 2001-09-10 22:45  dan
9268         * disassemble.pl:
9270         Happier about blanks in opcode_table
9272 2001-09-10 22:40  dan
9274         * interpreter.c, register.c:
9276         Yanked out debugging code, since these work OK. The bug I want is
9277         elsewhere.
9279 2001-09-10 22:30  simon
9281         * MANIFEST:
9282         Uhm. We want make_op_header.pl. We really, really do.
9284 2001-09-10 22:26  simon
9286         * Makefile, TODO, assemble.pl, basic_opcodes.ops,
9287         build_interp_starter.pl, disassemble.pl, make_op_header.pl,
9288         opcode_table, process_opfunc.pl:
9289         Automatic opcode numbering, from Leon Brocard <acme@astray.com>.
9290         This means we can add lots more opcodes without fiddling about with
9291         the numbers. Hooray!
9293         Don't forget that "end" needs to be op zero, else the interpreter
9294         falls off the end of the code. This is Bad, and I wonder if there's
9295         a way around it.
9297 2001-09-10 19:49  simon
9299         * MANIFEST, make_op_table_build.pl:
9300         Hey! This doesn't do anything...
9302 2001-09-10 19:46  simon
9304         * Makefile:
9305         "clean" target cleanup from Bryan C. Warnock <bwarnock@raba.com>.
9307 2001-09-10 18:31  simon
9309         * MANIFEST:
9310         You know what this means...
9312 2001-09-10 18:30  simon
9314         * assemble.pl:
9315         "use strict" patch from Leon Brocard <acme@astray.com>. Hey, why
9316         wait for a release...? :)
9318 2001-09-10 18:13  simon
9320         * interpreter.c:
9321         Bad Dan! No cookie!
9323 2001-09-10 17:56  simon
9325         * README:
9326         A *real* README file, which doesn't claim it isn't for public
9327         consumption.
9329 2001-09-10 17:02  simon
9331         * TODO:
9332         More things to do.
9334 2001-09-10 16:56  dan
9336         * TODO: Added in assembler gripe. Also added a few blank lines for
9337         clarity
9339 2001-09-10 16:49  dan
9341         * register.h, register.c: Renamed the core functions so the opcodes
9342         can find 'em OK. (There were some conflicts)
9344 2001-09-10 16:48  dan
9346         * basic_opcodes.ops, opcode_table: Added register window ops
9348 2001-09-10 11:07  simon
9350         * TODO:
9351         Trivial TODO list.
9353 2001-09-10 11:05  simon
9355         * test.pbc, test2.pasm, test_main.c: Other string bits and pieces;
9356         note "-s" flag to test prog.
9358 2001-09-10 11:01  simon
9360         * docs/strings.pod:
9361         New string documentation.
9363 2001-09-10 11:01  simon
9365         * basic_opcodes.ops, opcode_table:
9366         String ops.
9368 2001-09-10 10:53  simon
9370         * global_setup.c:
9371         More string fu.
9373 2001-09-10 10:51  simon
9375         * memory.h:
9376         Just some more aliases for now. Used by string handling stuff.
9378 2001-09-10 10:50  simon
9380         * assemble.pl, bytecode.c, bytecode.h:
9381         Temporary hack to store string constants in bytecode and recreate
9382         them at runtime.
9384 2001-09-10 10:48  simon
9386         * op.h:
9387         op.h is now generated by the Makefile; remove it.
9389 2001-09-10 10:47  simon
9391         * Makefile:
9392         clean and op.h Makefile targets.
9394 2001-09-10 10:45  simon
9396         * string.c, string.h, strnative.c:
9397         More string vtable stuff.
9399 2001-09-07 21:07  dan
9401         * assemble.pl:
9403         Much less picky about whitespace in the opcode_table now. (Doesn't
9404         whine on blank lines)
9406 2001-09-07 16:23  dan
9408         * Makefile, assemble.pl, global_setup.h, interpreter.c,
9409         interpreter.h, opcode_table, parrot.h, test.pasm: (Here's hoping
9410         this takes) Added global_setup.h to declare init_world function
9412         Moved variable declarations out of the interpreter loop for small
9413         speed boost.
9415         Changed end opcode to now be opcode #0. A function is provided for
9416         it, but isn't ever executed.
9418         When the interpreter sees an opcode 0 in the stream it means the
9419         end of stream. Things were coring on Cygwin otherwise. (I think I
9420         was dereferencing a zero, which is bad)
9422 2001-09-06 22:07  dan
9424         * basic_opcodes.ops, process_opfunc.pl:
9426         Minor tweaks to basic_opcodes.ops to fix some NV issues. The rest
9427         are minor changes now that things are in a fixed state.
9429 2001-09-06 16:13  dan
9431         * basic_opcodes.c, test_opcodes.c:
9432         test_opcodes.c is now irrelevant--they're all in basic_opcodes.ops.
9434         basic_opcodes.c is now autogenerated from basic_opcodes.ops, and
9435         should be nuked. So it is. :)
9437 2001-09-06 03:35  dan
9439         * basic_opcodes.ops, build_interp_starter.pl, process_opfunc.pl:
9440         Scripts to build the header file that holds the function table
9441         creation code, as well as the script to turn an opcode file to C
9442         source. (And the basic opcode functions turned into an opcode
9443         source file)
9445 2001-09-06 03:31  dan
9447         * Makefile, interpreter.c:
9448         Changes to support the autogeneration of the opcode function
9449         pointer table in interpreter.c, along with the changes to the
9450         Makefile needed.
9452 2001-09-05 13:27  simon
9454         * bytecode.c, config.h, docs/opcodes.pod, docs/overview.pod,
9455         docs/parrotbyte.pod, docs/vtables.pod:
9456         Added stubs for the documents; working on them this week. (What's
9457         left of it.) config.h change is just to type VTABLE, and the
9458         bytecode thing you might want to revoke. It's apidoc for the
9459         functions in there.
9461 2001-09-03 18:26  simon
9463         * docs/strings.pod:
9464         A start on the string API documentation.
9466 2001-09-03 17:43  simon
9468         * opcode_table:
9469         Since we specify the opcode number, we can rearrange to a more
9470         human-friendly ordering.
9472 2001-09-03 17:42  simon
9474         * basic_opcodes.c:
9475         Coupl'a logic bugs. (I think)
9477 2001-09-03 17:41  simon
9479         * string.c, string.h, strnative.c:
9480         Tidying up the string vtables.
9482 2001-09-03 17:38  simon
9484         * make_op_header.pl:
9485         Spit out the whole of op.h, not just the bit in the middle.
9487 2001-08-29 13:16  ask
9489         * README: it seems like we indeed can commit. What about sending
9490         commit mails?
9492 2001-08-29 13:07  simon
9494         * Makefile, README, assemble.pl, basic_opcodes.c, bytecode.c,
9495         bytecode.h, config.h, disassemble.pl, events.h, exceptions.h,
9496         global_setup.c, interpreter.c, interpreter.h, io.h,
9497         make_op_header.pl, make_op_table_build.pl, memory.c, memory.h,
9498         op.h, opcode_table, parrot.c, parrot.h, register.c, register.h,
9499         stacks.h, string.c, string.h, strnative.c, strnative.h, test.pasm,
9500         test.pbc, test_main.c, test_opcodes.c:
9501         Initial checkin of Simon's work directory - Dan, feel free to nuke.
9502          I'm still working on the string stuff, though.
9504 2001-08-29 12:44  ask
9506         * README: update README with list address
9508 2001-08-29 12:36  ask
9510         * README: first readme.