Add svn:ignore
[parrot.git] / ChangeLog
blobc03905dbfda9512676e6924a04d764e85d5e1265
1 #1 $Id$
3 2006.09.18    chromatic
4         * added Parrot::Embed under ext/Parrot-Embed
6 2006.08.18    leo
7         * remove the None PMC - if needed it can trivially be reimplemented
8           in languages from r14189
10 2006.08.16    creiss
11         Merged Software Transactional Memory branch into trunk, adds:
12         * several new opcodes whose names start with stm_
13         * read-only PMC support
14         * several new PMC types (whose names start with STM*)
15         * support for threads (again)
17 2006.08.08    chip
18         * Released 0.4.6
19         See NEWS for more.
21 2006.08.02    chip
22         * opcodes: "in PMC" is no longer a synonym for "invar PMC";
23         there are opcodes now that want the real "in PMC".
24         * namespace and global opcodes now accept name arrays again, as
25         well as keys; the corresponding namespace PMC methods are gone.
27 2006.07.21    leo
28         * Parrot_exit, Parrot_on_exit take now an Interp * argument
30 2006.07.25    chip
31         * add experimental op find_type_i_p
32         * fix longstanding bug that sometimes didn't encode pasm keys as
33         Key PMCs (specifically "[S0]" and "['stringliteral']").
35 2006.07.24    chip
36         further implementation of new pdd21:
37         * new opcodes {get,set}*global
38           (old {find,store}*global will be supported for a short while)
40 2006.07.20    audreyt
41         * --maintainer prerequesites are now bison 2.2+ and flex 2.5.3x
42           (or some such --leo) 
43           (at the moment code is checking for 2.0 -- ambs)
45 2006.07.17    chip
46         partial implementation of new pdd21:
47         * old: "get_namespace KEY".  new: "get_hll_namespace KEY"
48         * get_namespace and find_global opcodes no longer accept arrays
49           of strings.  To use arrays, call namespace object methods.
51 2006.06.19    leo
52         * Released 0.4.5
53         See NEWS for more.
55 2006.06.03    leo
56         * I and N registers are never cleared to 0 / 0.0 on subroutine entry
58 2006.05.14    leo
59         * Released 0.4.4
60         See NEWS for more.
62 2006.04.30    bernhard
63         * Make the Perl PMCs dynamic and move them to src/dynpmc
65 2006.04.02    leo
66         * Released 0.4.3
67         See NEWS for more.
69 2006.03.06    leo
70         * Shifted argument type bits left by 2 according to r11754
71           change of docs/pdds/pdd03_calling_conventions.pod
72         * if you are creating PASM then code needs adjustment  
74 2006.02.22    leo
75         * Released 0.4.2
76         See NEWS for more.
78 2006.01.16    bernhard
79          * rename src/dynclasses to src/dynpmc 
80          * rename src/classes to src/pmc 
82 2006.01.15    leo
84          * find_global and friends returns a .Null PMC instead of .Undef on
85           lookup failure, iff lookup exceptions are off
87 2006.01.08    leo
88         * Released 0.4.1
89         See NEWS for more.
91 2005.12.28    particle
92         * renamed all .imc files to .pir
93         * modified all doc references to .pir as well
95 2005.12.13    particle
96         * moved jit/ directory to src/jit/
98 2005.12.12    particle
99         * moved io/ directory to src/io/
100         * moved classes/ directory to src/classes/
101         * moved dynclasses/ directory to src/dynclasses/
103 2005.12.08    particle
104         * moved types/ directory to src/types/
105         * moved pf/ directory to src/packfile/
106         * moved ops/ directory to src/ops/
108 2005.12.08    particle
109         * moved charset/ directory to src/charset/
110         * moved encodings/ directory to src/encodings/
112 2005.12.07    particle
113         * moved imcc/ directory to compilers/imcc/
115 2005.12.06    particle
116         * moved util/ directory to tools/util/
117         * removed imcc/examples/ directory
118         * moved ast/ directory to compilers/ast/
120 2005.12.05    particle
121         * moved imcc/docs/ directory to docs/imcc/
122         * moved build_tools/ directory to tools/build/
123         * modified MANIFEST, MANIFEST.generated, and MANIFEST.SKIP
125 2005.12.04    leo
126         * Released 0.4.0
127         * See NEWS for changes
129 2005.11.06    leo
130         * Released 0.3.1
131         * See NEWS for changes
133 2005.10.01    leo
134         * Released 0.3.0
135         * See NEWS for changes
137 2005.08.05    leo
138         * Released 0.2.3
139         * See NEWS for changes
141 2005.07.03    leo
142         * Released 0.2.2
143         * See NEWS for changes
145 2005.06.04    leo
146         * Released 0.2.1
147         * allow short names for object attributes
148         * string encoding and charset can now be set independently
149         * experimental mmap IO layer for slurping files
150         * enable compile opcode support for compilers written in PASM/PIR
151         * improved HLL support with .HLL and n_operators pragmas
152         * simplified hash code
153         * more strength reduce optimizations
154         * distinct debug and trace flag settings
155         * glob support in PGE
156         * new character classification opcodes and interfaces
157         * numerous bug fixes and enhancements
159 2005-05-08    leo
160         * Released 0.2.0
161         * parrot repository is now under subversion
162         * MMD (Multi Method Dispatch) enhanced
163         * new unary and infix opcodes that return new result PMCs
164         * dynamic scalar PMCs inherit now almost all from Parrot core PMCs
165         * more unification of PMCs and ParrotObjects
166         * tailcalls for functions and methods
167         * PGE (Parrot Grammar Engine) reworked
168         * Pugs creates Parrot code and Pugs is a registered compiler now
169         * new languages/lisp
170         * the usual bug fixes and improvements
172 2005-03-06    leo
173         * Released 0.1.2
174         * big rewrite of string code, not yet finished but ...
175         * partial implementation of a generational garbage collector
176         * indirect register frame addressing
177         * .return(args) PIR syntax
178         * moved most of the Python code to dynclasses
179         * a lot more Python functionality
180         * precalculate opcodes with all constants
181         * PGE - Parrot Grammar Engine
182         * scalar classes refactoring
183         * much more tests and big test system cleanup
184         * improved documentation
185         * and as always a lot more
187 2004-10-09    leo
188         * Released 0.1.1
189         * Need Perl 5.6 now for building
190         * Basic AST support, PAST file parser, bits of code generation
191         * BigInt PMC using GMP
192         * Complex PMC
193         * Dynamic loading improved including bundles of PMC classes
194         * Experimental support for "make install"
195         * IA64 and hppa JIT support
196         * ICU unicode support
197         * IO layer handling code
198         * IO readline and buffered IO fixes
199         * Incremental GC
200         * Internal pythonic functions: filter, map, reduce, max, min ...
201         * Languages updates for m4, tcl, perl6, regex. New parakeet language.
202         * Library updates, Stream and SDL library
203         * MMD - multi method dispatch for binary vtable methods
204         * Many new array PMCs
205         * Method call syntax in PIR obj."meth"(...)
206         * More OS stuff: stat, exec, system, gmtime, piped read and write
207         * New Python PMCs like Enumerate, None
208         * Non-branching compare opcodes
209         * PIR support for += and friends
210         * Python language subdir
211         * Python types mapped to existing PMCs
212         * Slices and range support
213         * Tons of bug fixes, documentation updates, new tests
214         * Win32 COFF exec support
215         * ... and a lot more
217 2004-02-29    leo
218         * Released 0.1.0
219         * "Ladies and gentlemen, I give you... objects!"
220         * Huge documentation overhaul
221         * More supported platforms, s. PLATFORMS
222         * Basic thread support for pthread based architectures
223         * Basic event handling for timers and signals including:
224         * PASM callbacks for NCI (native C) functions.
225         * Improved platform configuration
226         * COW stacks now working, stacks code redone
227         * Structure handling vastly improved
228         * Random PMC and rand primitives
229         * Better subroutine call syntax in PIR
230         * Make PIR subroutines compliant with pdd03
231         * Improved profiling (DOD, GC timings)
232         * Hash code improvements, incl. random key order support
233         * Experimental freeze/thaw code for some PMC types
234         * IO improvements for buffered layer and Win32
235         * String iterators
236         * String bitwise vtables
237         * Many new opcodes
238         * Support for JIT, where malloced memory isn't executable
239         * Priority DOD scheme for objects that need timely destruction
240         * Improved bytecode loading (e.g. onLoad functions)
241         * Language updates: forth, Perl6/P6C, m4
242         * Libraries: Getopt_Long, SDL, Dumper, Sort
243         * new JAPH examples
244         * Unified imcc and parrot test handling
245         * Many new tests (make test reports 1386 tests)
246         * Numerous bug fixes
249 2003-10-31    leo
250         * Released 0.0.13
251         * Yep thirteen - haunted by the ghost of 0.0.12
252         * Build imcc as parrot
253         * Objects more finished
254         * Delegate vtable methods to byte code
255         * Binary multi-method dispatching
256         * Isa and does methods for PMCs
257         * Call byte code from C
258         * Start of extension interface
259         * Experimental struct handling
260         * Catch access to NULL PMCs
261         * Experimental network socket interface code and opcodes
262         * IO fixes and improvements
263         * Dynamic opcode libraries
264         * Fix-assigned opcode numbers
265         * Argument flattening for function calls
266         * More native call interface (NCI) signatures
267         * Ncurses, postgres, and pcre interface libraries
268         * Forth language is vastly improved
269         * BSD and Win32 build improvements
270         * Many new tests and fixes
272 2003-10-22    melvin
273         * imcc moved from parrot/languages/ to parrot/
275 2003-09-20    sfink
277         * updated the native_pbc test files (from Leo)
278         * built 0.0.11.1 release tarball
280 2003-09-20    sfink
282         * CHANGES BUNDLED INTO 0.0.11:
283         * Executable output
284         * Dynamic PMC registration
285         * Trial exception system
286         * Beginnings of object system
287         * Iterators
288         * Ordered hashes
289         * I/O system improvements
290         * References
291         * Documentation for basic PMC types
292         * IMCC support of Parrot Calling Conventions
293         * Runtime loading of chartypes (and other string improvements)
294         * Conditional breakpoints
295         * Dramatically accelerated sweeps for finalizable objects
296         * Small PMCs (PMCs split into core and extensions)
297         * Loadable bytecode packfiles
298         * Constant PMCs
299         * Sub variants that deal with the stack correctly
300         * Switched runops core
301         * Line numbers in warnings
302         * Environment access
303         * Many documentation cleanups
304         * Conversion to CPS style!
305         * BASIC debugger and many other wacky features
306         * Filename, line number parsing support in IMCC
308 2003-07-21 17:31 chromatic
309         * applied copyright patch from Josh Wilmes
311 2003-06-14 13:50 dan
312         * Moved the registers out of the context structure, since they
313           really aren't context
314         * Changed the register stack frames to hold only 16 registers
315           rather than 32, added half-set push and pop ops, and reworked
316           the full set push/pops to do two half-set push/pops. Should
317           speed up saving register data on calls, since we usually only
318           care about the top half of the registers anyway.
319         * Started committing some of the new class/object framework
320         * Remembered to finally start updating the Changelog
322 2003-03-18 03:50  ask
324         * Various files
325           Update Yet Another copyright statements to reflect the (no longer
326           so) shiny new year.
328 2003-03-11 22:06  chip
330         * Configure.pl: print help on non-option command line args
332 2002-12-18 20:38  sfink: changes since 0.0.8
334         - Allow suppression of cgoto core to save memory during compile
335         * Native function calling interface
336         * Major rewrite of stack and list aggregates
337         - Scalar PMC added
338         * Scratchpads implemented
339         - Win32 libraries
340         - Internal memory subsystem documentation
341         * Preliminary DotGNU support
342         - Packfile fingerprinting
343         * Buffer/PMC unification (into PObjs)
344         * stabs debugging information support
345         * Major Jako overhaul, including:
346           - imcc integration
347           - native function calling
348         - Perl6 string interpolation
349         - languages/regex now targets IMCC
350         * Optional Lea memory allocator
351         * Full sprintf implementation
352         * Many, many new tests
353         * Miniparrot
354         - exchange ops
355         - runtime-controllable gc debugging
356         * PMC properties
357         - Crash info
358         * JIT: various improvements
359           - register usage tracking
360           - block register allocation
361           - optimizations
362           - more jitted ops
363           - restartable
364           - architecture abstraction layer
365           - debugging via GDB
366         * Beginning support for extensible packfiles
367         * Much better key support, generally
368         * splice()
369         * Restructured PMC hierarchy with better functionality inheritance
370         * IMCC: many, many improvements. See imcc/ChangeLog
371         * Perl6: index map grep join reverse defined
372         * Scheme with functions!
375 2002-03-19 22:54  nicholas
377         * docs/running.pod: Patch from Simon Glover <scog@amnh.org>:
379          We can now get usage information for test_parrot without having to
380          grep the source.
382 2002-03-19 22:53  simon
384         * Configure.pl:
385         Parrot is called parrot.
387 2002-03-19 22:53  nicholas
389         * docs/tests.pod: Patch from Simon Glover <scog@amnh.org>:
391          1. There are tests in t/pmc as well as t/op now.
392          2. Adds a comment about Parrot::Test
394 2002-03-19 18:09  dan
396         * Configure.pl, examples/assembly/life.pasm: Toss a prompt that
397         messes up automated builds
399         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
401 2002-03-19 00:33  mrjoltcola
403         * core.ops: Doc cleanup from Simon Glover.
405 2002-03-18 23:52  mrjoltcola
407         * io/io_unix.c: Typo fix for invalid lvalue caught by David Loyd.
409 2002-03-18 22:09  dan
411         * include/parrot/resources.h: Checked in old version
413 2002-03-18 20:17  dan
415         * include/parrot/resources.h: Forgot a prototype
417 2002-03-18 20:15  dan
419         * resources.c: D'oh! Thinko, fixed.
421         Courtesy of "Peter Gibbs" <peter@emkel.co.za>
423 2002-03-18 17:33  josh
425         * Configure.pl: Lowering the bar a bit.
427 2002-03-18 17:33  sfink
429         * languages/regex/: MAINTAINER, Makefile, README, regex.pl,
430         test.pl, lib/Regex.pm, lib/Regex/AsmOps.pm, lib/Regex/CodeGen.pm,
431         lib/Regex/Generate.pm, lib/Regex/Grammar.pm, lib/Regex/Grammar.y,
432         lib/Regex/Optimize.pm, lib/Regex/Parse.pm, lib/Regex/Pasm.pm,
433         lib/Regex/PreOptimize.pm, lib/Regex/RegexOps.pm,
434         lib/Regex/Rewrite.pm, lib/Regex/CodeGen/Re.pm,
435         lib/Regex/CodeGen/Rx.pm, lib/Regex/Rewrite/Re.pm,
436         lib/Regex/Rewrite/Rx.pm, lib/Regex/Rewrite/Stackless.pm,
437         t/example.t: Whoops, wrong time to check this in.
439 2002-03-18 16:42  dan
441         * memory.c, resources.c: Partial fix for GC's memory trouncing. At
442         least we consider the PMC and Buffer free pools worth collecting,
443         and initialize the Buffer pool stuff.  Still not 100% correct,
444         though.
446 2002-03-18 15:35  simon
448         * packfile.c:
449         Fix format arg bug.
451 2002-03-18 07:45  brentdax
453         * Configure.pl: Warn if you're using 64-bit ints on a 32-bit
454         system.
456 2002-03-18 00:09  sfink
458         * languages/regex/: MAINTAINER, Makefile, README, regex.pl,
459         test.pl, lib/Regex.pm, lib/Regex/AsmOps.pm, lib/Regex/CodeGen.pm,
460         lib/Regex/Generate.pm, lib/Regex/Grammar.pm, lib/Regex/Grammar.y,
461         lib/Regex/Optimize.pm, lib/Regex/Parse.pm, lib/Regex/Pasm.pm,
462         lib/Regex/PreOptimize.pm, lib/Regex/RegexOps.pm,
463         lib/Regex/Rewrite.pm, lib/Regex/CodeGen/Re.pm,
464         lib/Regex/CodeGen/Rx.pm, lib/Regex/Rewrite/Re.pm,
465         lib/Regex/Rewrite/Rx.pm, lib/Regex/Rewrite/Stackless.pm,
466         t/example.t: Buggy 1st version of regex compiler implementation.
467         Warning: the test code depends on features of the assembler that do
468         not yet exist.
470 2002-03-17 21:35  ajgough
472         * types/: bignum.c, bignum_atest.pl: Added a couple of quick routes
473         through addition and subtraction.  Also added the ability to run
474         all the tests, including the ones which deal with overflow and
475         underflow.  These fail, but that's expected.  Soon they'll pass.
476         Then I'll show them.  Yesssssss.  Tessssssssts my precioussssss,
477         passsssssssings tesssstsssss.
479 2002-03-17 20:06  ajgough
481         * types/: bignum.c, bignum.h, bignum_test.pl: Modified
482         check_(under|over)flow to test bignumbers, rather than values.
483         context now carries E_limit, from which max and min exp are found.
485         Added a default-context-creating function (although this isn't the
486         same as either of the default contexts defined in the eda).
488 2002-03-17 13:31  ajgough
490         * types/: bignum.c, bignum.h: Made BN_round and BN_iround so that
491         exported version matches prototypes of other public functions.
493 2002-03-17 06:44  josh
495         * chartype.c, encoding.c, memory.c, misc.c, packdump.c, packfile.c,
496         packout.c, resources.c, string.c, include/parrot/encoding.h: Some
497         last-minute re-indenting.
499 2002-03-17 05:07  mrjoltcola
501         * io/io_unix.c: Clear up unsigned compare caught by Solaris GCC.
503 2002-03-16 23:17  nicholas
505         * classes/default.pmc: Patch from Simon Glover <scog@amnh.org> to
506         remove warnings:
508          default.pmc: In function `Parrot_default_get_integer_keyed':
509          default.pmc:50: warning: control reaches end of non-void function
510          default.pmc: In function `Parrot_default_get_number_keyed':
511          default.pmc:58: warning: control reaches end of non-void function
512          default.pmc: In function `Parrot_default_get_string_keyed':
513          default.pmc:67: warning: control reaches end of non-void function
514          default.pmc: In function `Parrot_default_get_pmc_keyed':
515          default.pmc:87: warning: control reaches end of non-void function
517 2002-03-16 18:50  ajgough
519         * types/: bignum.c, bignum.h: Lots of prototypes changed in
520         readiness for nicely telling your caller about any oddness you've
521         caused in the persuit of flow.
523 2002-03-16 17:38  dan
525         * interpreter.c, resources.c, docs/pdds/pdd09_gc.pod,
526         include/parrot/interpreter.h, include/parrot/resources.h: Now we
527         can control the GC and DOD, to stop it when we don't really want
528         it.
530 2002-03-16 16:58  dan
532         * resources.c, vtable.tbl, classes/default.pmc,
533         include/parrot/resources.h: Added the last code to let PMCs control
534         their marking at DOD time
536 2002-03-16 16:57  ajgough
538         * types/bignum.c: Ok, I worked out how to not have lots of tabs.  I
539         feel a little more virtuous now.  Really I do.  You might not
540         believe me, but you should.  perl -pne 's/\t/        /g', if you're
541         curious.
543 2002-03-16 16:57  josh
545         * packfile.c, packout.c: M-x untabify is my new friend.
547 2002-03-16 16:50  josh
549         * trace.c, resources.c: Minor whitespace tweak for the benefit of
550         check_source_standards.pl
552 2002-03-16 16:50  ajgough
554         * types/: bignum.c, bignum.h: More documentation, separate
555         functions into public and private sorts, some initial stuff to cope
556         with over and underflow correctly.
558 2002-03-16 16:49  josh
560         * resources.c: Re-indented (sorry bout the big diff)
562 2002-03-16 16:47  bdwheele
564         * examples/assembly/fact.pasm: This fixes fact.pasm so it will
565         assemble again, both with Simon's new assembler and with the old
566         one.
568 2002-03-16 16:33  mrjoltcola
570         * io/TODO: Get the TODO up-to-date for 0.0.4.
572 2002-03-16 16:11  josh
574         * Configure.pl: Patch from Nicholas Clark <nick@unfortu.net>: stops
575         silly people (such as me) running Configure with
576         /usr/local/bin/perl (which is 5.004_05) and not realising their
577         mistake until the pmc subdirectory, where the first qr// is
578         encountered.
580         Syntax error messages don't tell you what you did wrong. This does:
582         /usr/local/bin/perl Configure.pl Perl 5.00503 required--this is
583         only version 5.00405, stopped at Configure.pl line 10.
585 2002-03-16 14:38  ajgough
587         * Makefile.in: Small fix to Makefile.in to keep Irix make happy
588         with commenting.
590 2002-03-16 11:45  simon
592         * MANIFEST, examples/assembly/xml_parser.pasm:
593         Added Clint Pierce's XML parser.
595 2002-03-15 22:24  simon
597         * packout.c:
598         Don't need that function.
600 2002-03-15 21:56  simon
602         * Makefile.in, include/parrot/packfile.h:
603         Rebuild packout.o, since it'll be used for the Packfile XS module
605 2002-03-15 19:45  dan
607         * include/parrot/: memory.h, pmc.h: Another add-in for GC
609 2002-03-14 19:48  dan
611         * core.ops: No string to int for some reason
613 2002-03-14 18:45  dan
615         * string.c, t/op/string.t: Fix 0-length substr problem
617 2002-03-14 14:46  dan
619         * core.ops, interpreter.c, resources.c, classes/array.pmc,
620         classes/perlarray.pmc, examples/assembly/life.pasm,
621         include/parrot/interpreter.h, include/parrot/resources.h: Added in
622         a counter for copied memory, with a display in life.pasm
624 2002-03-14 03:16  mrjoltcola
626         * MANIFEST: Update MANIFEST courtesy of Simon Glover.
628 2002-03-13 23:43  simon
630         * packfile.c:
631         Oops.
633 2002-03-13 23:43  simon
635         * packfile.c:
636         Hangs head in shame.
638 2002-03-13 21:31  simon
640         * MANIFEST:
641         FAQ moved.
643 2002-03-13 18:06  simon
645         * string.c:
647         Fix string_compare screw-up.
649 2002-03-13 18:02  brentdax
651         * docs/: parrot.pod, ParrotFAQ.htm, faq.pod: Move the FAQ into POD
652         and add a new question/answer pair.
654 2002-03-12 22:53  mrjoltcola
656         * io.ops: Quick and dirty read ops for PIO. No warranty provided.
658 2002-03-12 22:48  mrjoltcola
660         * examples/assembly/io2.pasm: Quick and dirty read ops for PIO. No
661         warranty provided.
663 2002-03-12 22:29  ajgough
665         * docs/pdds/pdd14_bignum.pod: Ooops, it is #14, really.
667 2002-03-12 22:24  ajgough
669         * docs/pdds/pdd14_bignum.pod: Creation of bignumber pdd, update to
670         version 1.1, Don't know if this is the correct number, but I don't
671         want this stuck on my harddrive where it will get lost, so 14 it is
672         :)
674 2002-03-12 11:35  simon
676         * MANIFEST, packdump.c, packout.c:
678         Just so the functionality doesn't disappear.
680 2002-03-12 11:33  simon
682         * Makefile.in, chartype.c, encoding.c, packfile.c,
683         chartypes/unicode.c, chartypes/usascii.c, encodings/singlebyte.c,
684         encodings/utf16.c, encodings/utf32.c, encodings/utf8.c,
685         include/parrot/chartype.h, include/parrot/encoding.h,
686         include/parrot/packfile.h:
688         Packfile axing.
690 2002-03-11 23:06  nicholas
692         * core.ops: Patch from Simon Glover <scog@roe.ac.uk>:
694           Core.ops documentation nits
696 2002-03-11 23:05  nicholas
698         * t/pmc/pmc.t: Patch from Simon Glover <scog@roe.ac.uk>:
700           Most of the PerlUndef tests in pmc.t appear to have been added
701         twice.
702           Enclosed patch removes the duplicates.
704 2002-03-10 23:40  nicholas
706         * t/pmc/perlstring.t: Patch from Simon Glover <scog@amnh.org>:
708          More tests for the PerlString test-suite.
710 2002-03-10 23:40  nicholas
712         * t/op/time.t: Patch from Simon Glover <scog@amnh.org>:
714         test for sleep with negative argument
716 2002-03-10 21:58  nicholas
718         * t/op/rx.t: Patch from Simon Glover <scog@amnh.org>:
720          Enclosed patch fixes up a few more holes in our test coverage.
722 2002-03-10 21:18  mrjoltcola
724         * classes/array.pmc, classes/default.pmc, classes/intqueue.pmc,
725         classes/parrotpointer.pmc, classes/perlarray.pmc,
726         classes/perlhash.pmc, classes/perlint.pmc, classes/perlnum.pmc,
727         classes/perlstring.pmc, classes/perlundef.pmc,
728         include/parrot/pmc.h, core.ops, pmc.c, vtable.tbl: Add size
729         argument to the init() vtable method so PMCs have the option to
730         know how to size themselves at creation. size could be N elements
731         or a byte count, depending on the PMC or it may simply be ignored.
732         Overloaded 'new' opcode for optional arg.
734 2002-03-10 21:15  mrjoltcola
736         * lib/Parrot/Assembler.pm: Minor patch to the assembler for the
737         new_p_ic_ic opcode to work same as new_p_ic (looks up a named
738         class).
740         Also added small hack for .sub directive (which simply translates
741         to a label, however we might eventually want to collect these to
742         validate bsr calls.
744 2002-03-10 15:09  ajgough
746         * types/: bignum.c, bignum.h, bignum_atest.pl, bignum_test.pl:
747         Added round_floor and round_ceiling.  3403 tests pass, none fail.
749 2002-03-10 03:56  ajgough
751         * types/: bignum.c, bignum_atest.pl: Added extended stuff to
752         divide, divide integer and remainder.  All filled in functions now
753         have special values capability.
755         Much remains to be done though, and the pdd needs to catch up.
757 2002-03-10 01:36  ajgough
759         * types/bignum.c: Added extended stuff to _add, _subtract.
761 2002-03-10 00:14  nicholas
763         * t/op/: integer.t, number.t: Patch from Simon Glover
764         <scog@roe.ac.uk>:
766          The enclosed patch fixes a few of the holes in our test coverage
767          uncovered by Josh Wilmes
769 2002-03-09 23:03  ajgough
771         * types/: bignum.c, bignum.h: Modified compare to work with
772         extended values.  Made a couple of changes here and there to allow
773         BN_comp to take a context, so that an is_zero check doesn't clobber
774         negative zeros.
776 2002-03-09 22:19  ajgough
778         * types/: bignum.c, bignum.h, bignum_atest.pl, bignum_test.pl:
779         Unary plus now copes with special values.
781 2002-03-09 04:25  ajgough
783         * types/: bignum.c, bignum_atest.pl, bignum_test.pl: Exception
784         traps and flags are now enabled and tested for all the standard
785         tests for all the functions which are currently implemented.  Test
786         harness faffed with to allow these to be tested.
788 2002-03-09 02:29  josh
790         * encodings/singlebyte.c, encodings/utf16.c, encodings/utf32.c,
791         encodings/utf8.c, chartypes/unicode.c, chartypes/usascii.c:
792         Re-indented
794 2002-03-09 02:22  josh
796         * config_h.in: tab-blastin'
798 2002-03-09 02:21  josh
800         * check_source_standards.pl: Play nicer with M-x compile- don't
801         bother giving line numbers for things you don't want to look at.
803 2002-03-09 02:10  josh
805         * examples/mops/mops.c: re-indented
807 2002-03-09 02:07  josh
809         * classes/pmc2c.pl: Use the usual header so that we can detect the
810         autogeneratedness.
812 2002-03-09 02:05  josh
814         * jit2h.pl: Avoid accidental /* inside a comment, which generates a
815         compiler warning
817 2002-03-09 01:59  josh
819         * io/: io.c, io_stdio.c, io_unix.c, io_win32.c: Another large
820         patch- re-indent io/*.c.
822 2002-03-09 01:52  ajgough
824         * types/: bignum.c, bignum.h, bignum_test.pl: Added handling of
825         special values to the string conversion functions, some other
826         functions now need context (to let -0 pass through really_zero)
827         which have also been added.
829 2002-03-09 01:47  josh
831         * test_main.c: Re-indented.
833 2002-03-09 01:41  josh
835         * rx.c: killed a stray tab
837 2002-03-09 01:38  josh
839         * rx.c: Re-indented.
841 2002-03-09 01:36  josh
843         * misc.c: Oops, some tabs remained- cleaned up.
845 2002-03-09 01:31  josh
847         * misc.c: Re-indented (major patch, sorry)
849 2002-03-09 00:59  josh
851         * embed.c: Re-indented.
853 2002-03-08 23:08  simon
855         * MANIFEST, docs/pdds/pdd10_embedding.pod,
856         docs/pdds/pdd11_extending.pod, docs/pdds/pdd12_assembly.pod,
857         docs/pdds/pdd13_bytecode.pod:
858         Placeholder PDDs.
860 2002-03-08 21:12  ajgough
862         * include/parrot/string.h: Added private flags to string.h, mostly
863         so that other GCed stuff can also have its very own private flags.
865 2002-03-08 19:53  simon
867         * MANIFEST:
868         Great PDD Renaming
870 2002-03-08 19:41  robert
872         * docs/pdds/: pdd0.pod, pdd1.pod, pdd2.pod, pdd4.pod, pdd5.pod,
873         pdd6.pod, pdd7.pod: Renamed...
875 2002-03-08 18:51  simon
877         * MANIFEST, docs/pdds/pdd08_keys.pod:
878         Add keys PDD.
880 2002-03-08 18:20  ajgough
882         * types/: bignum.c, bignum.h, bignum_atest.pl, bignum_test.pl:
883         Introduced exception handlers and exception flags to context, will
884         allow support of extended standard.  Unified exception checking
885         mechanism (sort of) and made minimal changes to bulk of code to use
886         this.  Tests pass, I'm happy, and further changes will happen more
887         gradually.
889 2002-03-08 04:38  josh
891         * interpreter.c, string.c, testparrotsizes_c.in: More indenting
892         tweaks.
894 2002-03-08 04:37  josh
896         * platforms/: generic.c, generic.h, win32.c, win32.h: Re-indented
898 2002-03-08 04:24  josh
900         * embed.c: A bit more re-indenting
902 2002-03-08 04:20  josh
904         * embed.c: Indenting fixes
906 2002-03-08 04:14  josh
908         * jit.c: Re-indented (run_indent.pl)
910 2002-03-08 03:36  josh
912         * ops2c.pl: Fix the line numbers which get reported while compiling
913         core_ops*.c
915 2002-03-08 03:22  josh
917         * packfile.c: -1552 cc: WARNING File = packfile.c, Line = 1537
918         The variable "type" is set but never used.
920               opcode_t type;
922 2002-03-08 03:04  josh
924         * resources.c, stacks.c, string.c, io/io.c, io/io_stdio.c,
925         io/io_unix.c: Clean up unused and set-but-not-referenced variables
926         noticed by the sgi compiler.
928 2002-03-08 03:02  josh
930         * misc.c: Fixes this warning (SGI) cc-1188 cc: WARNING File =
931         misc.c, Line = 417   The indicated type qualifier is meaningless on
932         cast type.
935         (const char) 'f');
936                                                                          ^
938 2002-03-08 02:55  josh
940         * Makefile.in: Clean up one of the object files it was missing
942 2002-03-08 01:15  josh
944         * include/parrot/interpreter.h: Fixes the following error (tcc):
945         "./include/parrot/interpreter.h", line 27: Error:   [Syntax]: Extra
946         comma at end of list.
948 2002-03-06 22:15  simon
950         * stacks.c:
951         Tidy up stack chunk allocation.
953 2002-03-06 21:00  simon
955         * interpreter.c:
956         Create strings only once we've got string register heads set up.
958 2002-03-06 20:31  simon
960         * classes/perlarray.pmc:
961         malloc(0) considered harmful.
963 2002-03-06 20:24  simon
965         * include/parrot/resources.h:
966         I like it when Parrot compiles.
968 2002-03-06 17:02  dan
970         * classes/array.pmc: Changed over to data pointing to a Buffer.
972 2002-03-06 15:45  dan
974         * core.ops, embed.c, exceptions.c, interpreter.c, memory.c,
975         packfile.c, pbc2c.pl, pdump.c, resources.c,
976         include/parrot/interpreter.h, include/parrot/memory.h,
977         include/parrot/resources.h, io/io.c: Three quick things: 1) INTVALs
978         and opcode_t > longs will now be even more suspect than what they
979         were beforehand.  2) Feel free to bicker with names.  I don't think
980         we've come to *any* sort of agreement with these, although we
981         really, really, need to.  3) I forget the third thing.  4) But I
982         thought of a fourth.  5) I've now remembered the third thing: IIRC,
983         ANSI C states that enums will fit within the smallest type (int or
984         greater) that can hold the values. Is that actually correct, and
985         does it state whether unsigned is preferred to signed for
986         non-negative enums? 6) Since I'm no longer constrained by "three"
987         or "quick", I'm going size_t happy for a lot of memory-related
988         storage.  (That's good.  No sense wasting the size or performance
989         of an UINTVAL for strange values of UINTVAL.)  I'm also using it in
990         a couple other internal things (like the GC stat counters, seen
991         here).  Size and performance, again, and unpromotable to a bigint,
992         so we know that we (theoretically) will wrap.  However, size_t
993         isn't the best choice for the type.  (Not that there's anything
994         wrong with size_t, just that it shouldn't be called size_t.)  Any
995         thoughts?  I was thinking of just doing unsigned int, because,
996         IIRC, int is usually the natural word size, and will be most
997         efficient.  Thoughts? 7) I forgot what the fourth thing I thought
998         of was while writing down the others.  Sorry.
1000         Courtesy of  "Bryan C. Warnock" <Bryan.Warnock@raba.com>
1002 2002-03-06 15:26  dan
1004         * memory.c, resources.c, string.c, classes/perlarray.pmc,
1005         include/parrot/resources.h: Now we allocate generic Buffers from
1006         arenas too
1008 2002-03-05 21:42  brentdax
1010         * Configure.pl: Minor cleanup and enhancements.
1012 2002-03-05 21:25  dan
1014         * resources.c: non-special GC now works with PMCs
1016 2002-03-05 19:48  brentdax
1018         * Configure.pl, DEVELOPING, MANIFEST, config_h.in, test_main.c:
1019         Parrot now "knows" if it's a development version or a release
1020         version.  See the instructions in the DEVELOPING file.
1022 2002-03-05 18:05  brentdax
1024         * MANIFEST: pasm.vim wasn't in the manifest.
1026 2002-03-05 17:57  simon
1028         * Makefile.in:
1029         Now, through much evilness, make distclean and make cvsclean work
1030         again.
1032 2002-03-05 17:38  dan
1034         * memory.c, resources.c, docs/pdds/pdd09_gc.pod,
1035         include/parrot/interpreter.h, include/parrot/pmc.h,
1036         include/parrot/resources.h: PMC tracing complete
1038 2002-03-05 16:28  gregor
1040         * languages/jako/Makefile.in:
1041         Changed -I ../../ to -I ../../lib when calling the assembler, since
1042         the perl modules have moved.
1044 2002-03-05 05:30  josh
1046         * packfile.c, pdump.c, pmc.c, register.c, rxstacks.c, stacks.c,
1047         string.c: More re-indenting via run_indent.pl.
1049 2002-03-05 05:17  josh
1051         * runops_cores.c, trace.c, warnings.c: Re-indented (via
1052         run_indent.pl)
1054 2002-03-05 04:26  josh
1056         * key.c, memory.c, test_gnuc.c, testparrotfuncptr.c: Re-indented
1057         using run_indent.pl and some minor tweaking.
1059 2002-03-05 04:21  josh
1061         * chartype.c, encoding.c, exceptions.c, global_setup.c,
1062         interpreter.c: Re-indented using run_indent.pl and some minor
1063         tweaking.
1065 2002-03-05 03:30  josh
1067         * include/parrot/trace.h: These functions are no longer used (or
1068         even implemented)
1070 2002-03-04 18:21  josh
1072         * include/parrot/trace.h: Fix a typo in the argument type.
1074         Patch from <daniel.ritz@gmx.ch>
1076 2002-03-04 03:39  josh
1078         * check_source_standards.pl, jit2h.pl: Add the "autogenerated file"
1079         header to jit_struct.h so we don't try to check it for conformance.
1080          (no way will it conform)
1082 2002-03-04 03:38  josh
1084         * include/parrot/: chartype.h, interpreter.h, io.h, rx.h, trace.h,
1085         unicode.h, warnings.h: Remove some remaining tabs and split some of
1086         the remaining long lines.
1088 2002-03-04 03:17  josh
1090         * include/parrot/: chartype.h, embed.h, encoding.h, exceptions.h,
1091         global_setup.h, interpreter.h, io.h, jit.h, key.h, memory.h,
1092         misc.h, op.h, oplib.h, packfile.h, parrot.h, pmc.h, register.h,
1093         resources.h, runops_cores.h, rx.h, rxstacks.h, stacks.h, string.h,
1094         string_funcs.h, trace.h, warnings.h: This is the first batch of
1095         re-indenting.   This patch is the result of running run_indent.pl
1096         on the header files and manually tweaking the results where errors
1097         were noticed.   This should get us closed, but some refinement may
1098         follow.
1100 2002-03-04 03:06  josh
1102         * resources.c: Return without parens, as mentioned in PDD 7
1104 2002-03-04 03:01  josh
1106         * core.ops: POD fixes.
1108 2002-03-04 02:58  josh
1110         * config_h.in, ops2c.pl, classes/pmc2c.pl: More consistent headers
1111         on autogenerated files- used by the check_source_standards.pl
1112         script (for now) to exempt autogenerated files from the checks.
1114 2002-03-04 02:51  josh
1116         * embed.c, key.c, pmc.c, resources.c, rx.c, testparrotfuncptr.c,
1117         warnings.c: Added the editor "boilerplate" footer to a few files
1118         which were missing it.
1120 2002-03-04 02:34  josh
1122         * check_source_standards.pl, interpreter.c, jit.c, test_gnuc.c,
1123         include/parrot/io.h, include/parrot/parrot.h, io/io_win32.c: Fixes
1124         c preprocessor directive indentation to comply with pdd 7.
1126         (also fixes the check for this indentation in
1127         check_source_standards.pl)
1129 2002-03-04 02:32  josh
1131         * lib/Parrot/Test.pm: Fixes this error seen on perl 5.005_02 on
1132         irix.
1134         perl t/harness t/op/basic..........Use of uninitialized value at
1135         lib/Parrot/Test.pm line 81.  #     Failed test (t/op/basic.t at
1136         line 6) #          got: undef #     expected: ''
1138 2002-03-04 02:30  josh
1140         * MANIFEST, run_indent.pl, docs/pdds/pdd07_codingstd.pod,
1141         docs/pdds/pdd7.pod: Added documentation and code to invoke the GNU
1142         "indent" program to enforce some of the code style standards
1143         outlined in PDD 7.
1145         Usage: ./run_indent.pl <file>
1147 2002-03-03 19:04  simon
1149         * examples/mops/mops.c:
1150         Let's make it compile, huh?
1152 2002-03-03 19:04  simon
1154         * examples/mops/mops.cs:
1155         I R AN IDIOT
1157 2002-03-03 18:11  simon
1159         * examples/mops/mops.cs, examples/mops/mops.il, MANIFEST:
1160         Added C# and MS-IL versions of mops tester.
1162 2002-03-03 14:52  simon
1164         * core.ops:
1165         Add a sub() op to make mops_p work.
1167 2002-03-02 18:12  nicholas
1169         * examples/mops/mops.c, include/parrot/embed.h,
1170         include/parrot/interp_guts.h, include/parrot/jit.h,
1171         include/parrot/misc.h, include/parrot/packfile.h,
1172         include/parrot/rx.h, include/parrot/warnings.h,
1173         platforms/generic.c, platforms/generic.h, platforms/win32.c,
1174         platforms/win32.h, types/bignum.c, types/bignum.h: Patch from Josh
1175         Wilmes to add the emacs and vim "ending boilerplate" that sets the
1176         indent variables correctly.
1178 2002-03-02 17:41  nicholas
1180         * resources.c: Patch from Josh Wilmes <josh@hitchhiker.org>: Little
1181         patch to fix a compiler warning.
1183 2002-03-01 22:35  dan
1185         * memory.c, resources.c, include/parrot/pmc.h,
1186         include/parrot/resources.h: PMCs now come out of arenas.
1188 2002-03-01 06:15  dan
1190         * string.c:
1191         A non-existing buffer + a non-existing buffer should be a
1192         non-existing buffer, not "", which is really '\0'.
1194         Courtesy of "Bryan C. Warnock" <Bryan.Warnock@raba.com>
1196 2002-03-01 06:02  dan
1198         * classes/: array.pmc, perlarray.pmc, perlhash.pmc, perlstring.pmc:
1200         TMTOWTDI, but strcmp is probably the worse.
1202         Courtesy of "Bryan C. Warnock" <Bryan.Warnock@raba.com>
1204 2002-03-01 02:32  brentdax
1206         * embed.c: Debug mode now prints out the GC data.
1208 2002-02-28 23:44  dan
1210         * core.ops, resources.c, include/parrot/resources.h: Added collect
1211         and sweep opcodes
1213 2002-02-28 22:58  dan
1215         * docs/pdds/: pdd06_pasm.pod, pdd6.pod: Add docs for interpinfo
1216         opcode
1218 2002-02-28 22:50  dan
1220         * core.ops, interpreter.c, resources.c,
1221         examples/assembly/life.pasm, include/parrot/interpreter.h,
1222         include/parrot/resources.h: Add some stat gathering to the resource
1223         allocation code.
1225         Also add an interpreter info retrieval op, and teach it about the
1226         different things it can retrieve.
1228         Finally, add some stat info to life.pasm as an example
1230 2002-02-28 21:27  dan
1232         * editor/pasm.vim: VIM mode commands for parrot assembly files
1234         Courtesy of Scott Beck <scott@gossamer-threads.com>
1236 2002-02-28 19:20  dan
1238         * examples/assembly/life.pasm: Fix a creeping string length leak.
1240         Courtesy of  "Bryan C. Warnock" <Bryan.Warnock@raba.com>
1242 2002-02-28 18:26  dan
1244         * string.c: When you clone a constant, it ain't constant no mo'.
1246         Cocurtesy of "Bryan C. Warnock" <Bryan.Warnock@raba.com>
1248 2002-02-28 00:51  dan
1250         * MANIFEST: Add missing files
1252         Courtesy of "Bryan C. Warnock" <Bryan.Warnock@raba.com>
1254 2002-02-28 00:49  dan
1256         * docs/pdds/: pdd0.pod, pdd00_pdd.pod: The pod version of PDD 0 in
1257         CVS seems to have several chunks missing out of it, too.  This
1258         patch is simply an administrative patch, with the differences
1259         between my last version, and the one currently in there.  There
1260         will be a forthcoming patch for some minor tweaking to the PDD, but
1261         I wanted a common baseline before I make any (potential) semantic
1262         changes.
1264         There's only one semi-major change, which noone needs to worry
1265         about just yet.  That's a change from PDD Format 1 to PDD Format
1266         6.0 - rationale can be found under 'Standard (Version #)' of the
1267         STANDARDS TRACK infomation.  Don't worry about this yet, because it
1268         should be 6.0.0, and we need to discuss Perl versus Parrot with
1269         PDDs.
1271         Courtesy of "Bryan C. Warnock" <bwarnock@raba.com>
1273 2002-02-28 00:27  dan
1275         * packfile.c, resources.c, examples/assembly/life.pasm,
1276         include/parrot/register.h, include/parrot/resources.h,
1277         include/parrot/string.h: First pass of semi-full GC. (Strings only,
1278         no PMCs yet)
1280         This patch now implements a real copying collector. We trace from
1281         our root set and compact the contents of Buffer structs.
1283         Todo:
1285         *) It's very STRING-centric and doesn't handle memory stuffed in
1286         Buffers.  But, then, we don't have pool allocation for Buffers
1287         either, and we need to have that soonish for this to work.
1289         *) Doesn't trace PMCs, so if you trigger a collection and there's
1290         memory or STRING structs only accessible from PMCs, you'll fail
1291         horribly. That needs fixing too
1293         *) Better algorithms for when to trace or collect vs when to just
1294         go allocate more memory from the system. Should probably be more
1295         cache friendly too.
1297 2002-02-27 21:04  dan
1299         * jit.c, memory.c, resources.c, string.c, docs/pdds/pdd09_gc.pod,
1300         examples/assembly/life.pasm, include/parrot/resources.h,
1301         include/parrot/string.h, include/parrot/string_funcs.h,
1302         jit/i386/core.jit: Start of GC in
1304 2002-02-26 16:41  dan
1306         * jit/i386/string.jit: Fix a typo
1308         Courtesy of Jonathan Stowe <gellyfish@gellyfish.com>
1310 2002-02-26 16:37  dan
1312         * interpreter.c: Fix solaris test failures
1314         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1316 2002-02-26 16:36  dan
1318         * include/parrot/: interp_guts.h, io.h, packfile.h, rx.h,
1319         unicode.h, warnings.h: Fixes various warts in header files, such
1320         as: * macros   -added parens to prevent problems with operator
1321         precedence   -removed ; at end * removed SSIZE_MAX, since ssize_t
1322         is no longer used * added some more INLINE definitions for MSVC and
1323         C99 compilers
1325         Courtesy of Brian Lee Ray <blray@ualr.edu>
1327 2002-02-26 16:20  dan
1329         * Configure.pl: Turns out we were using a warning flag which
1330         doesn't exist on 2.7.  Simple tweak though:
1332         Courtesy of  Josh Wilmes <josh@hitchhiker.org>
1334 2002-02-25 22:58  dan
1336         * MANIFEST, docs/pdds/pdd09_gc.pod: Add docs of GC
1338 2002-02-25 17:36  dan
1340         * include/parrot/pmc.h: Fix the bits
1342 2002-02-23 21:57  dan
1344         * include/parrot/resources.h: Another 1.5% never hurts
1346 2002-02-23 21:44  dan
1348         * global_setup.c, memory.c, resources.c, string.c,
1349         include/parrot/resources.h: Allocate STRING headers from an arena
1350         with freelist rather than with the system malloc. First step in a
1351         good (or even a bad) GC system.
1353 2002-02-23 20:37  brentdax
1355         * misc.c: lint has been doing Evil and Wrong things to misc.c.
1357 2002-02-22 14:59  ajgough
1359         * types/bignum.c: BN_multiply split into BN_multiply and
1360         BN_imultiply, the internal version to be used by idivide so that
1361         rounding isn't performed during intermediate stages of division.
1363         following test scripts now all pass: divide divideint add multiply
1364         subtract remainder compare rounding plus minus (these are all the
1365         operations currently implemented, rescale and power must still be
1366         written, so don't pass right now).
1368 2002-02-22 13:13  ajgough
1370         * types/bignum_atest.pl: Test harness modified to understand
1371         comments better, and be able to run unary (and rounding) tests.
1372         Currently a few rounding tests fail, which are being investigated.
1374 2002-02-22 01:41  dan
1376         * key.c: Although there's more work being done on the key stuff and
1377         this isn't the final fix, applying this patch does get parrot to
1378         build with two more compilers, so it's probably worthwhile.
1380         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1382 2002-02-22 00:53  dan
1384         * config_h.in, misc.c, include/parrot/embed.h,
1385         include/parrot/exceptions.h, include/parrot/interpreter.h,
1386         include/parrot/io.h, include/parrot/parrot.h, include/parrot/pmc.h,
1387         include/parrot/resources.h, include/parrot/rx.h,
1388         include/parrot/string.h, include/parrot/unicode.h,
1389         include/parrot/warnings.h, io/io_stdio.c, io/io_unix.c,
1390         io/io_win32.c: Fixes the following (lcc) warnings:
1392           - interpreter.c:470: warning: expression with no effect elided
1393                (related to the way warnings flags were defined)
1395           - misc.c:352: warning: unreachable code
1396             misc.c:483: warning: unreachable code
1397                (i introduced these with some overzealous de-linting)
1399           - numerous warnings like this:
1400             io/io_unix.c:383: warning: conversion from pointer to void' to
1401         pointer to
1402             pointer to struct _ParrotIO function(pointer to struct
1403         Parrot_Interp,pointer
1404             to struct _ParrotIOLayer,pointer to const char,pointer to const
1405         char,pointer
1406             to pointer to void)' is compiler dependent
1408         Fixes the following nits:    - remove bad indenting (tabs) in the
1409         includes
1411         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1413 2002-02-21 21:12  ajgough
1415         * types/: bignum.c, bignum.h: These might look like massive
1416         changes, but really it's just he imposition of coding standards.
1417         The file still isn't entirely compliant, but is now much more so.
1419         Also changed:
1421          o a few more comments
1422          o BN_compare uses internal BN_comp to compare
1423          o lost_digits behaviour is now correct (test harness modified to
1424         test
1425            this).
1427         All binary functions now pass all the tests in the basic standard.
1428         Unary functions not yet tested, will be soon.
1430 2002-02-21 18:20  dan
1432         * lib/Parrot/OpTrans/CPrederef.pm: The "inline" bit of that patch
1433         was no longer needed, and the ssize_t thing really shouldn't be
1434         needed either.
1436         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1438 2002-02-21 18:15  dan
1440         * Configure.pl, embed.c, pdump.c, hints/mswin32.pl,
1441         include/parrot/parrot.h: this patch adds support for the freely
1442         available borland c++ 5.5.1 compiler
1444         depends on: - josh's patch to remove ssize_t from CPrederef.pm -
1445         working borland compiler (compiler must know where to find headers
1446         and libs) - Perl's Config.pm modified to use cc='bcc32.exe' not of
1447         cc='cl.exe' - a working make utility (borland make doesn't work,
1448         nmake does)
1450         changes: - add bcc in hints/mswin32.pl - clean up for msvc++ in
1451         hints/mswin32.pl - remove a space from Configure.pl (very very
1452         important for bcc) - add a O_BINARY flag to open() in pdump.c,
1453         embed.c (required by bcc) - define O_BINARY 0 when it's not defined
1454         (win32 knows it, linux not)
1456         and the why: - parrot is MUCH faster when compiled with borland c
1457         (make test on p2-450, 320MB):   * msvc++: 313 seconds   * bcc: 251
1458         seconds
1460         Courtesy of "Ritz Daniel" <daniel_ritz@gmx.ch>
1462 2002-02-21 18:09  dan
1464         * jit.c, testparrotfuncptr.c, trace.c, classes/array.pmc, io/io.c,
1465         io/io_stdio.c, io/io_unix.c, io/io_win32.c: This patch removes
1466         cuddled elses, as required by PDD 7.
1468         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1470 2002-02-21 18:04  dan
1472         * MANIFEST, Makefile.in, check_source_standards.pl: This patch adds
1473         a new Makefile target called "check_source".  This target scans all
1474         the .c and .h files in the directory and checks for conformance to
1475         a number of the standards outlined in PDD 7.
1477         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1479 2002-02-21 16:38  ajgough
1481         * types/: bignum.c, bignum.h, bignum_atest.pl: Modifications to
1482         allow arithmetic with numbers with a fixed fractional part, buffer
1483         structures now more ready to be integrated into the parrot memory
1484         allocation game, test harness modified to allow lost_digits
1485         condition to be checked.  Some more comments.
1487 2002-02-21 15:53  simon
1489         * io/io_unix.c:
1490         Fix typo
1492         Courtesy of: "David M. Lloyd" <dmlloyd@tds.net>
1494 2002-02-20 16:41  dan
1496         * MANIFEST, docs/pdds/pdd_template.pod: Added in template PDD
1498 2002-02-18 18:25  dan
1500         * MANIFEST, lib_deps.pl: Added in lib_deps.pl and MANIFEST change.
1502         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1504 2002-02-18 18:21  dan
1506         * lib/Parrot/OpTrans/CPrederef.pm: this is a quick fix for
1507         CPrederef.pm to make to generated code compile with the MS
1508         compiler.
1510         fixes: - ms compiler allows inline only for c++, for c there's
1511         __inline - ms header files knows nothing about ssize_t
1513         Courtesy of "Ritz Daniel" <daniel_ritz@gmx.ch>
1515 2002-02-18 17:49  dan
1517         * MANIFEST: Add the PDDs
1519 2002-02-18 17:47  dan
1521         * docs/pdds/: pdd07_codingstd.pod, pdd7.pod: Added in PDD 7, the
1522         coding standards PDD.
1524 2002-02-18 17:40  dan
1526         * docs/pdds/: pdd06_pasm.pod, pdd6.pod: Updated to latest rev
1528 2002-02-18 12:41  gregor
1530         * test_main.c:
1531         Remove warning about exit() not being declared.
1533 2002-02-18 08:29  simon
1535         * misc.c, warnings.c, include/parrot/misc.h,
1536         include/parrot/warnings.h:
1537         This patch adds some missing const's to silence a number of gcc
1538         warnings.
1540         Courtesy of: Josh Wilmes <josh@hitchhiker.org>
1542 2002-02-18 08:26  simon
1544         * Makefile.in, core.ops, embed.c, interpreter.c, key.c, misc.c,
1545         ops2c.pl, packfile.c, pdump.c, stacks.c, string.c,
1546         classes/array.pmc, classes/perlarray.pmc, classes/perlhash.pmc,
1547         include/parrot/parrot.h, include/parrot/rx.h,
1548         include/parrot/stacks.h, io/io_stdio.c, io/io_unix.c,
1549         lib/Parrot/OpTrans/CPrederef.pm:
1550            - add makefile target and script to test for external libc
1551         dependencies
1552            - fix return values in hash and array PMCs (returning 0 in a
1553         void func)
1554            - remove unnecessary data pointer <=> function pointer
1555         conversions
1556              outside of the JIT code.
1557            - move the definition of the "INLINE" macro out of the rx header
1558         and make
1559              available for general use on C++ compilers and gcc.
1560            - remove a few unused variables
1562         Courtesy of: Josh Wilmes <josh@hitchhiker.org>
1564 2002-02-17 16:29  simon
1566         * docs/pdds/: pdd0.pod, pdd00_pdd.pod, pdd01_overview.pod,
1567         pdd02_vtables.pod, pdd04_datatypes.pod, pdd05_opfunc.pod,
1568         pdd06_pasm.pod, pdd1.pod, pdd2.pod, pdd4.pod, pdd5.pod, pdd6.pod:
1569         We're organised and responsible. Honest.
1571 2002-02-17 02:46  sfink
1573         * Makefile.in: Remove $^ for nmake compatibility.
1575 2002-02-16 09:20  brentdax
1577         * config_h.in, test_main.c, include/parrot/chartype.h,
1578         include/parrot/embed.h, include/parrot/encoding.h,
1579         include/parrot/string.h, include/parrot/string_funcs.h: Better
1580         embedding exposure and hiding, part 1.
1582 2002-02-16 04:38  dan
1584         * Makefile.in, core.ops, interpreter.c, pbc2c.pl, pdump.c,
1585         runops_cores.c, docs/running.pod, lib/Parrot/OpTrans/C.pm,
1586         lib/Parrot/OpTrans/CGoto.pm, lib/Parrot/OpTrans/CPrederef.pm:
1587         Anyway, here's a patch to repair pbc2c.pl, combined with removing
1588         typecasts in various places throughout the code. It probably won't
1589         work for Windows yet. The libparrot.a target might need to be
1590         modified to at least prevent it from confusing make on Windows; I
1591         don't know.
1593         Preliminary instructions for using pbc2c.pl are in
1594         docs/running.pod.  I'll try to do better later.
1596         Courtesy of Steve Fink <steve@fink.com>
1598 2002-02-16 04:15  dan
1600         * exceptions.c, include/parrot/exceptions.h: Warnings cleaned up
1602         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1604 2002-02-16 00:03  simon
1606         * classes/: perlarray.pmc, perlhash.pmc:
1608         pmc is already defined!
1610 2002-02-15 23:20  brentdax
1612         * Configure.pl, config_h.in, exceptions.c, pmc.c,
1613         include/parrot/exceptions.h: Far more informative panic messages.
1615 2002-02-15 03:24  dan
1617         * lib/Parrot/: Op.pm, OpsFile.pm, OpTrans/CPrederef.pm: Here's a
1618         much more extensive patch that fixes it to work properly, and
1619         deletes a bazillion casts as well.  It also points to the question
1620         "can we make the byte_code be an opcode_t* already?"
1622         Oh, and it makes some of the formatting prettier, so it's gotta be
1623         good.
1625         Courtesy of * Steve Fink <steve@fink.com>
1627 2002-02-15 02:30  dan
1629         * Makefile.in, core.ops, embed.c, misc.c, packfile.c, rx.ops,
1630         stacks.c: I've tweaked the "lint" target somewhat and fixed a few
1631         of the things it finds.  Attaching the patch as well as the current
1632         lint output.
1634         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1636 2002-02-15 01:59  dan
1638         * t/pmc/: array.t, perlhash.t: Disable non-functional bits for the
1639         moment.
1641 2002-02-15 01:48  dan
1643         * t/pmc/perlarray.t: Skip tests for features that need twiddling
1645 2002-02-15 01:40  dan
1647         * t/op/rx.t: Skip a test that's waiting for us to rejig some array
1648         things
1650 2002-02-14 23:30  dan
1652         * resources.c: Added comment for buffer tag routine. D'oh!
1654 2002-02-14 23:28  dan
1656         * resources.c, include/parrot/resources.h: Added buffer mark
1657         routine for GC
1659 2002-02-14 23:17  dan
1661         * memory.c, classes/array.pmc, classes/perlarray.pmc,
1662         include/parrot/memory.h, include/parrot/string.h, t/pmc/perlhash.t:
1663         Rejigged memory system a bit. Now should be ready for the horror
1664         that is garbage collection.
1666 2002-02-14 19:33  gregor
1668         * ops2c.pl, include/parrot/oplib.h:
1669         Added code to automatically generate a function within an oplib to
1670         lookup opinfos given the op name. This will come in handy in future
1671         when we want to twiddle opcode tables at run time and possibly at
1672         startup time.
1674 2002-02-14 19:25  gregor
1676         * examples/assembly/queens.pasm:
1677         Regenerated queens.pasm from queens.jako since the clone_* stuff
1678         went away.
1680 2002-02-14 17:12  dan
1682         * resources.c, include/parrot/resources.h: Finished up the
1683         interface for memory and tracked interpreter thingies.
1685 2002-02-14 16:53  dan
1687         * memory.c, include/parrot/memory.h: intercept free and realloc
1689 2002-02-14 05:53  dan
1691         * interpreter.c, runops_cores.c: The type changes in struct
1692         Packfile break the pointer math used in a few places to calculate
1693         the address of the end of the loaded byte code. This causes
1694         segfaults in build_asm in jit.c when using -j. It also breaks the
1695         bounds checking on opcode address in runops_slow_core.
1697         The patch adds the necessary cast to correct the code_end
1698         calculations.
1700         Courtesy of Jason Gloudon <perl@gloudon.com>
1702 2002-02-14 01:01  ajgough
1704         * types/: bignum.c, bignum.h, bignum_test.pl: Added support for
1705         BigInt operations (I think), tests for normal operation continue to
1706         pass.  Also a shed load of comments.
1708 2002-02-13 01:34  ajgough
1710         * types/: bignum.c, bignum.h, bignum_atest.pl, bignum_test.pl: This
1711         is a (mostly) working bignumber library.  There remains much work
1712         to do though, some functions are not yet implemented and headers
1713         need to find their way to the correct place RSN.  Also support for
1714         bigints and a sensible error reporting mechanism are needed.
1716 2002-02-12 18:51  dan
1718         * misc.c: Fix some warnings
1720 2002-02-12 17:10  dan
1722         * misc.c: Run through indent -kr -nce so I can read it
1724 2002-02-12 16:49  dan
1726         * misc.c: Need standard header/footer comments
1728 2002-02-11 20:32  simon
1730         * classes/array.pmc:
1731         get and set pmc methods.
1733 2002-02-11 20:19  simon
1735         * classes/array.pmc:
1736         Maybe the keys aren't integer...
1738 2002-02-11 20:03  simon
1740         * core.ops, vtable.tbl, classes/default.pmc:
1741         {g,s}et_pmc_keyed
1743 2002-02-11 19:07  simon
1745         * vtable.tbl, classes/default.pmc:
1746         Add set_pmc. Usee with caution.
1748 2002-02-11 18:20  dan
1750         * classes/: array.pmc, perlarray.pmc: Patch array classes to
1751         compile
1753 2002-02-11 17:59  simon
1755         * core.ops, embed.c, global_setup.c, key.c, rx.ops,
1756         classes/perlarray.pmc, classes/perlhash.pmc:
1757         Make it compile.
1759 2002-02-11 17:57  simon
1761         * packfile.c, include/parrot/packfile.h:
1762         Reduce warnings
1764         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
1766 2002-02-11 17:55  dan
1768         * docs/parrot_assembly.pod: Document some key ops
1770 2002-02-11 09:20  brentdax
1772         * pmc.c, include/parrot/exceptions.h: Adding a panic ought to be
1773         disgustingly easy.
1775 2002-02-11 00:34  simon
1777         * core.ops, include/parrot/exceptions.h:
1778         This is what keyed set ops look like. Remember, however, that for
1779         keyed functions, all operands must be PMCs. set(PMC, PMC, INT)
1780         means $1 = $2[$3], not $1[$2] = $3. set(PMC,PMC,PMC) is so
1781         obviously ambiguous that you ought to use the 4-arg version
1782         instead.
1784 2002-02-10 23:12  jgoff
1786         * classes/: array.pmc, perlarray.pmc: Properly allocate
1787         SELF->data's array of PMC* data in array and perlarray.pmc.  This
1788         isn't tested yet, but should be fairly straightforward.  PerlHash
1789         needs to be finished before the system will compile again, and that
1790         should be done in the next few days.
1792 2002-02-09 04:46  jgoff
1794         * classes/: array.pmc, default.pmc, intqueue.pmc,
1795         parrotpointer.pmc, perlarray.pmc, perlhash.pmc, perlundef.pmc:
1796         Added basic _keyed member functions.  Unfortunately this still
1797         doesn't fix the problems that are causing the build to break. It's
1798         a start though. I'm not implementing the PMC add functions just
1799         yet.
1801 2002-02-08 15:59  simon
1803         * classes/array.pmc:
1804         Some more work on getting the array stuff up to date.
1806 2002-02-08 12:23  simon
1808         * classes/array.pmc, classes/perlhash.pmc, include/parrot/key.h,
1809         lib/Parrot/Vtable.pm:
1810         Got array->get_integer_keyed doing what I think it ought to. One
1811         down, all the rest to go.
1813 2002-02-08 11:47  simon
1815         * vtable.tbl:
1816         Although I didn't intend it to be quite that broken...
1818 2002-02-08 11:42  simon
1820         * vtable.tbl, include/parrot/parrot.h, lib/Parrot/Vtable.pm:
1821         Completely break Parrot, but at least we get the key stuff right
1822         for now.
1824 2002-02-08 06:25  dan
1826         * hints/darwin.pl: Silences the warning about passing in
1827         -flat_namespace to the compile.  That's a link-only flag.
1829 2002-02-08 04:52  jgoff
1831         * classes/: array.pmc, default.pmc, intqueue.pmc,
1832         parrotpointer.pmc, perlarray.pmc, perlhash.pmc, perlint.pmc,
1833         perlnum.pmc, perlstring.pmc, perlundef.pmc: Filled in missing
1834         return values in *.pmc, added some missing casts to the repeat_foo
1835         members, and deleted the _index members from the perlscalar
1836         classes.  Basic cleanup, and getting ready for _keyed functions.
1838 2002-02-07 04:49  mrjoltcola
1840         * examples/assembly/bsr.pasm: Elaborated on the bsr/ret example,
1841         added a nested subroutine call.
1843 2002-02-07 04:32  jgoff
1845         * vtable.tbl, lib/Parrot/Vtable.pm: vtable.tbl got some minor
1846         changes in order to give the whitespace rules a little workout, and
1847         do a little bit more testing. No actual structural changes were
1848         made.  lib/Parrot/Vtable.pm got an interface change, and more
1849         importantly should be ready to support the new '_keyed' attribute,
1850         which will work roughly thus: PMC* src_value gets remapped to 'PMC*
1851         src_value' followed by 'KEY* src_key'.  This will be how the new
1852         _keyed operators will function, and those should be written within
1853         a few days.
1855 2002-02-06 18:00  doughera
1857         * misc.c: Change C++-style comments to C comments (again).  Remove
1858         unused perl5 code that was in #if 0/#endif.
1860 2002-02-06 17:59  doughera
1862         * warnings.c: Add trailing newline.
1864 2002-02-06 04:14  mrjoltcola
1866         * include/parrot/io.h, io/io.c: Minor cleanup.
1868 2002-02-06 03:11  mrjoltcola
1870         * examples/assembly/io1.pasm, io/io.c, io/io_win32.c: Tied up a
1871         couple of loose end in win32 IO stuff. Open behaves now but needs
1872         more work.
1874 2002-02-05 21:02  brentdax
1876         * classes/pmc2c.pl: Length on whoami init was always 7--a problem
1877         which showed up in Purify builds.
1879 2002-02-05 17:15  simon
1881         * misc.c:
1882         Warning fixes.
1884         Courtesy of: Jonathan Stowe <gellyfish@gellyfish.com>
1886 2002-02-05 17:08  doughera
1888         * misc.c: Avoid C++-style comments.
1890 2002-02-05 17:07  doughera
1892         * lib/Parrot/Jit/sun4Generic.pm: Generated assembly programs were
1893         not valid assembler for Sun's /usr/ccs/bin/as.  Now they are,
1894         thanks to Jason Gloudon <perl@gloudon.com>.
1896 2002-02-05 14:04  simon
1898         * misc.c:
1899         Make the problem different, perhaps even better.
1901 2002-02-05 13:49  simon
1903         * misc.c:
1904         Possibly fix a `short int' is promoted to `int' when passed through
1905         `...' scary error, possibly make things absolutely worse.
1907 2002-02-05 13:15  simon
1909         * Configure.pl:
1910         Placate Tru64.
1912 2002-02-05 13:12  simon
1914         * warnings.c:
1915         Not going to get far without this one...
1917 2002-02-05 11:41  simon
1919         * string.c:
1920         Don't barf when handed null pointers.
1922 2002-02-05 10:04  simon
1924         * misc.c, include/parrot/misc.h:
1925         Fix some trivial bugs in warnings code.
1927 2002-02-05 09:27  simon
1929         * misc.c:
1930         Oops, forgot this one; also added %P support.
1932 2002-02-05 09:20  simon
1934         * MANIFEST, Makefile.in, core.ops, embed.c, interpreter.c,
1935         test_main.c, classes/perlundef.pmc, include/parrot/embed.h,
1936         include/parrot/interpreter.h, include/parrot/misc.h,
1937         include/parrot/parrot.h, include/parrot/warnings.h:
1938         Warnings support.
1940         Courtesy of: Brent Dax <brentdax@cpan.org>
1942 2002-02-05 05:41  jgoff
1944         * vtable.tbl, lib/Parrot/Vtable.pm, t/pmc/perlstring.t: Changed the
1945         format of vtable.tbl to get rid of the tab-dependence.  The format
1946         now looks roughly like this:
1948         init() # 'void' and 'unique' are assumed INTVAL type ( ) # 'unique'
1949         is assumed str void concatenate (PMC* value, PMC* dest) # Nothing
1950         assumed here, but note the C-like prototyping.  Also had to disable
1951         one test that depended upon 'concat_p_p_s', which isn't necessary
1952         anyway.
1954         Vtable.pm will change again when the type '_keyed' is added,
1955         because that requires remapping parameters slightly differently
1956         again.  Also, note that it assumes 'value' is the first parameter
1957         in the list. This assumption will go away at the same time.
1959 2002-02-04 16:57  ajgough
1961         * core.ops, t/pmc/perlstring.t, t/pmc/pmc.t: More tests for pmc
1962         functions.  Thanks to Simon Glover.
1964 2002-02-04 02:47  ajgough
1966         * hints/os2.pl: Removes a flag from the os/2 hints file that isn't
1967         needed.  I suspect that the entire hints file isn't really needed,
1968         but there's no one to actually tell us this.
1970 2002-02-02 15:45  ask
1972         * docs/ParrotFAQ.htm: fix internal links
1974 2002-02-02 04:06  jgoff
1976         * classes/: array.pmc, intqueue.pmc, perlarray.pmc, perlhash.pmc:
1977         Moving the internal KEY structure from the cache.struct_val member,
1978         where it doesn't really belong, to the internal SELF->data member.
1979         This frees up the cache/type members for other usage.
1981         This is the first step in moving PMCs to the point where we can do
1982         multidimensional PMC handles. The next step is to change the
1983         assembler to accept the syntax of 'set P0["foo"],7'.
1985 2002-02-02 00:13  nicholas
1987         * include/parrot/global_setup.h: Patch from Jonathan Stowe to
1988         prototype Parrot_Array_class_init
1990 2002-02-02 00:13  nicholas
1992         * embed.c: Casts to tidy up warnings from Jonathan Stowe Change
1993         time to sum_time to avoid warning on FreeBSD about tracking a
1994         global [No, this warning does not appear on Linux. Yes, it is real
1995         :-)]
1997 2002-02-01 23:02  nicholas
1999         * embed.c: Fix fprintf format warning in Parrot_runcode. From Simon
2000         Glover
2002 2002-02-01 20:20  nicholas
2004         * t/pmc/pmc.t: Add end at end of asm in test (from Simon Glover)
2006 2002-02-01 18:20  nicholas
2008         * lib/Parrot/Test.pm: Env.pm on 5.005_03 doesn't do a use vars for
2009         you
2011 2002-02-01 13:22  nicholas
2013         * MANIFEST: Add docs/embed.pod and t/op/ifunless.t
2015 2002-02-01 12:19  simon
2017         * core.ops, t/op/ifunless.t, t/op/integer.t:
2018         Added "unless" op.
2020 2002-02-01 12:11  simon
2022         * lib/Parrot/Test.pm:
2023         Remove a warning.
2025 2002-02-01 01:38  nicholas
2027         * MANIFEST, MANIFEST.SKIP, Makefile.in: Add a MANIFEST.SKIP file,
2028         and a manitest target to Makefile.in that lets one test the
2029         manifest.
2031 2002-02-01 00:03  dan
2033         * core.ops, global_setup.c, include/parrot/pmc.h: More setup for
2034         PMC dynaloading
2036 2002-01-31 21:46  gregor
2038         * Configure.pl, Makefile.in, hints/mswin32.pl:
2039         A few more things are now configable, so we are closer to win32
2040         shared library builds. Not there yet, but closer.
2042 2002-01-31 21:00  dan
2044         * global_setup.c, classes/pmc2c.pl, include/parrot/global_setup.h,
2045         include/parrot/pmc.h: First step in dynamically loading PMC classes
2047 2002-01-31 19:38  dan
2049         * Makefile.in: Dependencies in the Makefile are currently too broad
2050         brush.  I don't enjoy waiting for everything to recompile every
2051         time I try to tweak the jit. The only file that #includes
2052         jit_struct.h is jit.c, so I feel that the Makefile dependencies
2053         should reflect this, and not cause a gratuitous recompile of
2054         everything.  There are probably other auto-generated header files
2055         that world+dog should not depend on.
2057         Courtesy of  Nicholas Clark <nick@unfortu.net>
2059 2002-01-31 19:03  gregor
2061         * Makefile.in, lib/Parrot/Test.pm, t/harness:
2062         Added two new make targets:
2064           * testp: Like 'make test', but passes -P to t/harness, so you get
2065         to
2066             see how broken predereferencing is.
2068           * testj: Like 'make test', but passes -j to t/harness, so you get
2069         to
2070             see how broken JIT is.
2072         Now, anyone who wants to see how good all three ways of running are
2073         can do so, at the cost of about 3x the time.
2075 2002-01-31 17:09  brentdax
2077         * embed.c, test_main.c: Implement the ARGV-in-P0 thing.
2079 2002-01-31 03:41  grunblatt
2081         * docs/jit.pod: Update jit.pod
2083 2002-01-31 03:20  grunblatt
2085         * jit/i386/core.jit: Hold this until we get an assemble tool,
2086         because of the different objdump problems.
2088 2002-01-31 03:13  grunblatt
2090         * Configure.pl, lib/Parrot/Jit/sun4-solaris.pm,
2091         lib/Parrot/Jit/sun4Generic.pm: Use dis intead of objdump.  Courtesy
2092         of: Jason Gloudon <perl@gloudon.com>
2094 2002-01-31 02:22  grunblatt
2096         * jit/i386/core.jit: Continue if the register is null
2098 2002-01-30 23:50  grunblatt
2100         * lib/Parrot/Jit/: alpha-bsd.pm, alpha-linux.pm, alphaGeneric.pm,
2101         i386-bsd.pm, i386-linux.pm, i386Generic.pm, sun4-solaris.pm,
2102         sun4Generic.pm: Move the AS and OBJDUMP constants to each os
2103         specific file.
2105 2002-01-30 23:35  mrjoltcola
2107         * io/io_win32.c: Change implementation of isatty on win32,
2108         suggested by Hong Zhang.
2110 2002-01-30 23:19  sfink
2112         * jit2h.pl, lib/Parrot/Op.pm, lib/Parrot/OpsFile.pm: Added
2113         Op::may_jump boolean method.
2115         Replaced jit2h's hardcoded pattern match to decide what ops might
2116         change the control flow.
2118 2002-01-30 22:13  dan
2120         * Configure.pl, MANIFEST, testparrotfuncptr.c: This patch allows
2121         parrot to mostly-build with tcc.  It allows one to skip compiling
2122         the JIT stuff (by specifying --define jitcapable=0), and it
2123         introduces a test program which gives a friendlier error in this
2124         case for compilers which are as picky as tcc is about function
2125         pointer conversion.
2127         If anyone figures out the proper way to cast these function
2128         pointers this may not be necessary.
2130         Courtesy of Josh Wilmes <josh@hitchhiker.org>
2132 2002-01-30 20:54  dan
2134         * docs/running.pod, lib/Parrot/Test.pm: I'm being anal again.
2135         Here's an update to docs/running.pod to better reflect the current
2136         state (both the test_parrot and assemble.pl improvements, plus
2137         documentation of a few more things.) And also a speling fiks
2138         s/POST_MORTERM/POST_MORTEM/.
2140         I could also replace some "perl foo" calls with "./foo" if someone
2141         wanted to set the executable flag in CVS on assemble.pl,
2142         optimize.pl, etc.
2144         Courtesy of Steve Fink <steve@fink.com>
2146 2002-01-30 20:43  dan
2148         * core.ops: find_global doesn't work, so stub out the wrong code
2150 2002-01-30 19:08  dan
2152         * lib/Parrot/Assembler.pm:  fixes the POD in Parrot::Assember so
2153         that perldoc
2154          can read it and just tidies it up generally. It also adds
2155         documentation
2156          for the constantize_integer and constantize_number functions.
2158         Courtesy of Simon Glover <scog@roe.ac.uk>
2160 2002-01-30 18:02  dan
2162         * assemble.pl, disassemble.pl, optimizer.pl, pbc2c.pl,
2163         classes/genclass.pl, classes/pmc2c.pl,
2164         languages/scheme/Scheme/Test.pm:  Many of the Perl scripts in the
2165         distribution (including assemble.pl !)
2166          can no longer find the Parrot::* modules. Enclosed patch fixes
2167         (although
2168          it would be nice if there were an easier way to do this).
2170         Courtesy of  Simon Glover <scog@roe.ac.uk>
2172 2002-01-30 16:00  mrjoltcola
2174         * io/io_win32.c: Correct function calls for win32_fdopen and arg
2175         types.
2177 2002-01-30 15:50  mrjoltcola
2179         * io/io_unix.c: Minor bug fix for fdopen flag arg type.
2181 2002-01-30 15:42  grunblatt
2183         * pbc2c.pl, examples/assembly/Makefile: Updates related to moving
2184         files around
2186 2002-01-30 15:38  grunblatt
2188         * MANIFEST: Enclosed patch adds the new SPARC-based JIT files to
2189         the manifest,  and also puts it back into alphabetical order.
2191         Courtesy of: Simon Glover <scog@roe.ac.uk>
2193 2002-01-30 14:41  nicholas
2195         * embed.c: Patch from Simon Glover to clean up warnings where
2196         prototype is () not (void)
2198 2002-01-30 13:54  nicholas
2200         * include/parrot/embed.h, test_main.c: Add void as an explicit
2201         parameter in test_main.c's usage(), version(void) and embed.h's
2202         Parrot_new() Without these gcc moans: include/parrot/embed.h:34:
2203         warning: function declaration isn't a prototype
2205 2002-01-30 12:08  simon
2207         * lib/Parrot/.cvsignore:
2208         Ignore generated Perl modules.
2210 2002-01-30 12:07  simon
2212         * t/harness:
2213         Run the PMC tests as well.
2215 2002-01-30 12:04  simon
2217         * MANIFEST:
2218         Fix MANIFEST after recent t/pmc rejig.
2220 2002-01-30 11:42  simon
2222         * lib/Parrot/Test.pm:
2223         Report non-zero exit codes.
2225         Courtesy of: Michael G Schwern <schwern@pobox.com>
2227 2002-01-30 11:39  simon
2229         * t/op/rx.t:
2230         Skip final test, TODO doesn't work yet.
2232 2002-01-30 09:54  brentdax
2234         * docs/embed.pod: Leon Brocard was kind enough to explain to me how
2235         predereferencing works.
2237 2002-01-30 09:38  brentdax
2239         * docs/: embed.pod, parrot.pod: Document this newfangled embedding
2240         subsystem.
2242 2002-01-30 09:37  brentdax
2244         * include/parrot/embed.h: Fix a mistake, clear up a warning.
2246 2002-01-30 09:37  brentdax
2248         * config_h.in: Expose another flag for embedders.
2250 2002-01-30 05:07  jgoff
2252         * make_vtable_ops.pl, t/harness: Both files didn't know of the new
2253         location for Parrot/, and t/harness wasn't able to run the new
2254         op/pmc tests. Both problems fixed, so I think I'm going to declare
2255         the build suitable for public consumption.
2257 2002-01-30 04:34  robert
2259         * docs/Makefile.in: update for CVS movement
2261 2002-01-30 04:32  robert
2263         * Makefile.in: Adjust for CVS reorganization.  (This time, edit the
2264         .in file, not the real Makefile)
2266 2002-01-30 04:20  robert
2268         * Configure.pl, jit2h.pl, ops2c.pl, ops2pm.pl, pmc_pm.pl,
2269         vtable_h.pl, classes/pmc2c.pl, include/parrot/parrot.h: Updates
2270         related to moving files around
2272 2002-01-30 04:10  robert
2274         * MANIFEST: Update MANIFEST to reflect CVS reorg.
2276 2002-01-30 04:07  robert
2278         * Configure.pl: Add './lib' to our @INC because Parrot/* moved.
2280 2002-01-30 03:56  robert
2282         * Parrot/: .cvsignore, Assembler.pm, BuildUtil.pm, Op.pm,
2283         OpTrans.pm, OpsFile.pm, Optimizer.pm, PackFile.pm, String.pm,
2284         Test.pm, Vtable.pm, Jit/alpha-bsd.pm, Jit/alpha-linux.pm,
2285         Jit/alphaGeneric.pm, Jit/i386-bsd.pm, Jit/i386-linux.pm,
2286         Jit/i386-nojit.pm, Jit/i386Generic.pm, Jit/sun4-solaris.pm,
2287         Jit/sun4Generic.pm, OpLib/.cvsignore, OpTrans/C.pm,
2288         OpTrans/CGoto.pm, OpTrans/CPrederef.pm, PackFile/ConstTable.pm,
2289         PackFile/Constant.pm, PackFile/FixupTable.pm: Moved Parrot/* to
2290         lib/Parrot/
2292 2002-01-30 03:46  robert
2294         * languages/miniperl/miniperlc: renamed to mpc
2296 2002-01-30 03:45  robert
2298         * t/op/: pmc.t, pmc_array.t, pmc_perlarray.t, pmc_perlhash.t,
2299         pmc_perlstring.t: Moved to t/op/pmc/
2301 2002-01-30 03:40  robert
2303         * include/parrot/register_funcs.h: Renamed to regfuncs.h
2305 2002-01-30 03:14  jgoff
2307         * classes/perlarray.pmc, t/op/pmc_perlarray.t, t/pmc/perlarray.t:
2308         Fixed some problems with PerlArray and added tests.  Previously,
2309         only integers could be accessed by negative indices.  After this
2310         change, all basic types can be accessed by negative indices, and
2311         they can also be set at negative indices.
2313 2002-01-29 22:13  brentdax
2315         * TODO: Just look at the stupid diff.
2317 2002-01-29 21:53  simon
2319         * TODO, docs/vtables.pod:
2320         New TODO, and tiny addition to vtables.pod
2322 2002-01-29 21:47  mrjoltcola
2324         * include/parrot/io.h, io/io_unix.c: Minor bug fix in io_unix.
2326 2002-01-29 21:38  mrjoltcola
2328         * Makefile.in: Makefile.in tweak for io depend.
2330 2002-01-29 21:15  brentdax
2332         * embed.c: Fix a segfault and some profiling formatting nits.
2334 2002-01-29 20:54  brentdax
2336         * pmc.c: Oops.
2338 2002-01-29 20:50  brentdax
2340         * pmc.c, include/parrot/exceptions.h: Exceptions are better than
2341         segfaults.
2343 2002-01-29 20:17  mrjoltcola
2345         * interpreter.c, core.ops, io.ops: CVS missed this.
2347 2002-01-29 20:17  mrjoltcola
2349         * io/io.c: These should have gone in Sunday with the rest. CVS is
2350         out to get me.
2352 2002-01-29 18:39  brentdax
2354         * platforms/win32.h: Fix Win32 whoops.
2356 2002-01-29 18:29  brentdax
2358         * embed.c, include/parrot/embed.h: A couple minor embedding fixes.
2360 2002-01-29 17:51  simon
2362         * MANIFEST, Makefile.in, config_h.in, embed.c, test_main.c,
2363         include/parrot/embed.h, include/parrot/parrot.h:
2364         Embedding support. Cool.
2366         Courtesy of: <brentdax@cpan.org>
2368 2002-01-29 15:40  grunblatt
2370         * Configure.pl: Detect if we can use "objdump".  Courtesy of: Jason
2371         Gloudon <perl@gloudon.com>
2373 2002-01-29 14:42  simon
2375         * include/parrot/parrot.h:
2376         Platform stuff has to be included *after* system headers.
2378 2002-01-29 14:05  grunblatt
2380         * interpreter.c, jit.c, Parrot/Jit/sun4-solaris.pm,
2381         Parrot/Jit/sun4Generic.pm, lib/Parrot/Jit/sun4-solaris.pm,
2382         lib/Parrot/Jit/sun4Generic.pm, include/parrot/jit.h,
2383         jit/sun4/core.jit, jit/sun4/lib.jit, jit/sun4/string.jit: Added
2384         support for SPARC.  Courtesy of: Jason Gloudon <perl@gloudon.com>
2386 2002-01-29 10:56  simon
2388         * platforms/generic.h:
2389         If we don't have a S_ISREG, produce something close to it.
2391 2002-01-29 06:01  dan
2393         * MANIFEST, README, LICENSES/Artistic: Finally added licenses
2395 2002-01-29 04:38  jgoff
2397         * classes/array.pmc: Forgot to remove some C++-isms from the
2398         get_{foo}_index routines.
2400 2002-01-29 04:26  jgoff
2402         * MANIFEST, Makefile.in, global_setup.c, classes/Makefile.in,
2403         classes/array.pmc, include/parrot/pmc.h, t/op/pmc_array.t,
2404         t/pmc/array.t: Added array class that languages other than perl can
2405         use for a basis.  It has no features like preextension, and the
2406         array index starts at 0.
2408         MANIFEST - added classes/array.pmc and t/op/pmc_array.t Makefile.in
2409         and classes/Makefile.in - Added array.pmc to the makefile.
2410         (Assuming rules like .pmc.o are portable (or even possible) I might
2411         alter classes/Makefile.in to autobuild the appropriate files.
2413 2002-01-29 02:32  dan
2415         * MANIFEST, Parrot/Test.pm, lib/Parrot/Test.pm,
2416         lib/Test/Builder.pm, lib/Test/More.pm, lib/Test/Simple.pm,
2417         lib/Test/Utils.pm, t/op/interp.t, t/op/macro.t, t/op/pmc.t,
2418         t/op/rx.t, t/op/stacks.t, t/pmc/pmc.t:
2419             Update to Test::More 0.41 which adds Test::Builder
2421             Delete the vestigal Test::Utils
2423             Change Parrot::Test so it uses Test::Builder instead of Evil
2424         Wrappers
2425             around Test::More
2427             output_* now returns whether the test passes or fails
2429             Parrot::Test no longer exports Test::More's functions.  Instead
2430         they
2431             can simply be used together.  The few tests which used
2432         Test::More
2433             features (ie. skip) have 'use Test::More' added.
2435             I ditched the export_to_level() crutch.  Do we expect parrot to
2436         work on
2437             5.004?  (literally 5.004, not 5.004_04)
2439         Courtesy of Michael G Schwern <schwern@pobox.com>
2441 2002-01-28 21:04  dan
2443         * docs/overview.pod:  There is no opcodes.pod; I'm assuming the
2444         pointer should actually be to
2445          parrot_assembly.pod, as the canonical documentation.
2447         Courtesy of Simon Glover <scog@roe.ac.uk>
2449 2002-01-28 20:21  dan
2451         * languages/jako/jakoc, t/op/stacks.t: Toss the last traces of
2452         clone[inps]
2454 2002-01-28 19:18  dan
2456         * core.ops, register.c: clone[insp] is dead
2458 2002-01-28 17:46  grunblatt
2460         * Parrot/Jit/i386Generic.pm, lib/Parrot/Jit/i386Generic.pm,
2461         jit/i386/core.jit: Fix to make the jit work in linux yet again.
2463 2002-01-28 16:45  dan
2465         * MANIFEST, README.OS_X: Added Mac OS X specific readme documenting
2466         the requirement for fink at the moment.
2468 2002-01-28 15:59  simon
2470         * test_main.c:
2471         People might try and run a directory file, with spectacular
2472         results.  We don't want that. No.
2474 2002-01-28 14:58  doughera
2476         * core.ops: Avoid C++-style comments.
2478 2002-01-28 14:16  grunblatt
2480         * jit.c, io/io.c: Changed jit.c to fit the way registers are
2481         accessed.  Readded the pio_(stdin|stdout|stderr) to make builds
2482         work again.
2484 2002-01-28 13:47  doughera
2486         * include/parrot/register.h: Avoid C++-style comment.
2488 2002-01-28 06:03  dan
2490         * MANIFEST, core.ops, interpreter.c, key.c, register.c, trace.c,
2491         Parrot/OpTrans/C.pm, Parrot/OpTrans/CGoto.pm,
2492         lib/Parrot/OpTrans/C.pm, lib/Parrot/OpTrans/CGoto.pm,
2493         docs/parrot_assembly.pod, include/parrot/interpreter.h,
2494         include/parrot/parrot.h, include/parrot/regfuncs.h,
2495         include/parrot/register.h, include/parrot/register_funcs.h,
2496         include/parrot/string.h, include/parrot/string_funcs.h: Registers
2497         are now stored in the interpreter structure itself, rather than
2498         just a pointer to the top of the register structure. Pushes and
2499         pops now involve memcpys, but register access has one fewer
2500         dereference.
2502         Fails four of the register stack tests, though, so not perfect.
2503         Needs fixing, but this is a good place to start.
2505 2002-01-28 04:40  mrjoltcola
2507         * test_main.c: cvs commit missed this. ??
2509 2002-01-28 04:27  mrjoltcola
2511         * examples/assembly/io1.pasm, include/parrot/exceptions.h,
2512         include/parrot/interpreter.h, include/parrot/io.h, io/io.c,
2513         io/io_stdio.c, io/io_unix.c, io/io_win32.c: ParrotIO local to each
2514         interpreter now (at least in theory).  IO handle array added.  Misc
2515         bug fixes in layer handling.  Changed any IO_ constants to PIO_ so
2516         we don't conflict         with system libraries.  Still have broken
2517         stuff in win32 and stdio layer.
2519 2002-01-28 04:01  mrjoltcola
2521         * include/parrot/chartype.h: Typo in chartype.h include guard.
2523 2002-01-28 03:41  mrjoltcola
2525         * t/op/interp.t: Fix flag for interp so we don't get "info"
2526         messages which break tests.
2528 2002-01-28 01:54  dan
2530         * include/parrot/string.h: A few more buffer/string flags
2532 2002-01-27 11:33  nicholas
2534         * chartypes/unicode.c: Cast unsigned argument to int in call to
2535         isdigit to silence gcc warning.
2537 2002-01-26 23:18  grunblatt
2539         * Parrot/Jit/i386Generic.pm, lib/Parrot/Jit/i386Generic.pm: Turn
2540         off that flag.
2542 2002-01-26 23:17  grunblatt
2544         * Parrot/Jit/i386Generic.pm, lib/Parrot/Jit/i386Generic.pm,
2545         jit/i386/core.jit: [no log message]
2547 2002-01-26 22:18  simon
2549         * jit/i386/core.jit:
2550         Jumping to 0x0 is a recipe for segfaults.
2552 2002-01-26 18:35  simon
2554         * t/harness:
2555         Allow user to select which tests to harness
2557         Courtesy of: Nicholas Clark <nick@unfortu.net>
2559 2002-01-26 17:20  grunblatt
2561         * Parrot/Jit/i386-linux.pm, Parrot/Jit/i386Generic.pm,
2562         lib/Parrot/Jit/i386-linux.pm, lib/Parrot/Jit/i386Generic.pm: Patch
2563         to make the jit work in linux again.
2565 2002-01-26 16:52  dan
2567         * Configure.pl, hints/darwin.pl: Add -Wno-shadow, as Darwin's
2568         headers can't cope with this. Darwin-only
2570 2002-01-26 16:04  dan
2572         * include/parrot/parrot.h: Quick note to remind folks that this
2573         isn't the file they're looking for if they're writing extensions or
2574         embedding parrot.
2576         Courtesy of Andy Dougherty <doughera@lafayette.edu>
2578 2002-01-26 00:41  mrjoltcola
2580         * MANIFEST: Oopsy.
2582 2002-01-26 00:37  mrjoltcola
2584         * docs/ParrotFAQ.htm: Parrot FAQ : Created and maintained by Adam
2585         Turoff
2587 2002-01-25 01:31  grunblatt
2589         * jit/alpha/core.jit: There is no neg or fneg.
2591 2002-01-25 01:27  grunblatt
2593         * core.ops, Parrot/Jit/alphaGeneric.pm, Parrot/Jit/i386Generic.pm,
2594         lib/Parrot/Jit/alphaGeneric.pm, lib/Parrot/Jit/i386Generic.pm,
2595         jit/alpha/core.jit, jit/i386/core.jit, t/op/integer.t,
2596         t/op/number.t: Added Parrot_neg.  Erase t.s
2598 2002-01-24 23:26  dan
2600         * interpreter.c: Best make sure unused elements are NULL
2602 2002-01-24 23:24  dan
2604         * interpreter.c: Fix stupid thinko
2606 2002-01-24 18:37  doughera
2608         * Makefile.in: Add a few missing dollar signs in the lifetest
2609         section so that ${exe} and the like get properly interpolated.
2611 2002-01-24 18:15  mrjoltcola
2613         * docs/: .cvsignore, Makefile.in, parrot.pod: Fix pod generation
2614         for io.ops file. Add reference to it in parrot.pod.  Courtesy of
2615         Simon Glover <scog@roe.ac.uk>
2617 2002-01-24 06:43  mrjoltcola
2619         * io/io_stdio.c: Oops.
2621 2002-01-24 06:34  mrjoltcola
2623         * include/parrot/io.h, io/TODO, io/io.c, io/io_stdio.c: Did a bit
2624         of work on the buffering layer.  Decided to use shared read/write
2625         buffer (as do most implementations) for now since its the simplest
2626         way to keep everything synced, (flush on seeks, flush read on
2627         writes, etc.)
2629 2002-01-24 03:38  mrjoltcola
2631         * test_main.c: Cleaned up option handling code a bit for main().
2633 2002-01-23 23:22  dan
2635         * interpreter.c, include/parrot/interpreter.h,
2636         include/parrot/resources.h: Now each interpreter gets its own hash
2637         for globals.
2639 2002-01-23 20:45  dan
2641         * Configure.pl: Fix a warning when there's no - in an architecture
2643 2002-01-22 23:57  grunblatt
2645         * docs/running.pod: [no log message]
2647 2002-01-22 20:29  doughera
2649         * KNOWN_ISSUES: long doubles don't work on SPARC either.  It
2650         appears to be a generic problem (if sizeof(long double) >
2651         sizeof(double)), not an x86-specific one.
2653 2002-01-22 16:57  doughera
2655         * runops_cores.c: Change variable name from time to starttime to
2656         avoid gcc warning about variable name shadowing.
2658 2002-01-22 16:55  doughera
2660         * classes/pmc2c.pl: Include class_init prototype too.
2662 2002-01-22 16:01  doughera
2664         * MANIFEST: [no log message]
2666 2002-01-22 01:04  ajgough
2668         * global_setup.c, classes/default.pmc, classes/intqueue.pmc,
2669         classes/parrotpointer.pmc, classes/perlarray.pmc,
2670         classes/perlhash.pmc, classes/perlint.pmc, classes/perlnum.pmc,
2671         classes/perlstring.pmc, classes/perlundef.pmc, classes/pmc2c.pl,
2672         include/parrot/global_setup.h: Patch from Nick Clark to quieten
2673         warnings from pmc files.  Message-ID:
2674         <20020121224719.GE1726@Bagpuss.unfortu.net>
2676 2002-01-22 00:53  ajgough
2678         * test_main.c: Clears up a couple of warnings in test_main.c.
2679         Thanks to Nick Clark.  Message-ID:
2680         <20020121190457.GB1726@Bagpuss.unfortu.net>
2682 2002-01-22 00:47  ajgough
2684         * string.c, chartypes/unicode.c, chartypes/usascii.c,
2685         include/parrot/chartype.h: Cause all codepoints to be treated as
2686         UNITVALS, and get_digit to return INTVAL, just in case. (Thanks to
2687         Nick Clark, see also: Message-ID:
2688         <20020121214137.GC2371@Bagpuss.unfortu.net> )
2690 2002-01-22 00:24  dan
2692         * key.c: We do mandate an ANSI conformant C compiler, don't we?
2694         Appended patch cures these warnings:
2696         key.c: In function `debug_key': key.c:29: warning: int format,
2697         INTVAL arg (arg 3) key.c:33: warning: int format, INTVAL arg (arg
2698         3) key.c:33: warning: int format, INTVAL arg (arg 4) key.c:36:
2699         warning: int format, INTVAL arg (arg 3) key.c:36: warning: int
2700         format, INTVAL arg (arg 4)
2702         Courtesy of Nicholas Clark <nick@unfortu.net>
2704 2002-01-21 12:41  mrjoltcola
2706         * MANIFEST, io.ops: For some reason cvs commit didn't get this, may
2707         be clock skew.
2709 2002-01-21 06:37  mrjoltcola
2711         * io/io.c: Cleanup a warning
2713 2002-01-21 06:28  mrjoltcola
2715         * examples/assembly/io1.pasm, include/parrot/io.h, io/io.c,
2716         io/io_stdio.c, io/io_unix.c, io/io_win32.c: Added 32/64 bit seek
2717         ops. Various other IO twiddlings.
2719 2002-01-21 03:25  grunblatt
2721         * Makefile.in: Use $jitcpuarch instead of $cpuarch.  Thanks to
2722         Melvin Smith for the catch up.
2724 2002-01-20 23:13  sfink
2726         * stacks.c: Fixed logic errors, need tests
2728 2002-01-20 22:17  brentdax
2730         * rx.c, rx.ops, include/parrot/rx.h, t/op/rx.t: Make /m work and
2731         prepare for /i to work.
2733 2002-01-20 20:52  grunblatt
2735         * Configure.pl, MANIFEST, Makefile.in, interpreter.c, jit.c,
2736         jit2h.pl, Parrot/Jit/alpha-bsd.pm, Parrot/Jit/alpha-linux.pm,
2737         Parrot/Jit/alphaGeneric.pm, Parrot/Jit/i386-bsd.pm,
2738         Parrot/Jit/i386-linux.pm, lib/Parrot/Jit/alpha-bsd.pm,
2739         lib/Parrot/Jit/alpha-linux.pm, lib/Parrot/Jit/alphaGeneric.pm,
2740         lib/Parrot/Jit/i386-bsd.pm, lib/Parrot/Jit/i386-linux.pm,
2741         Parrot/Jit/i386Generic.pm, lib/Parrot/Jit/i386Generic.pm,
2742         include/parrot/jit.h, jit/alpha/core.jit, jit/alpha/lib.jit,
2743         jit/alpha/string.jit:
2744         - Added support for ALPHA, by now linux and bsd.
2746         - Reduced jit2h.pl execution time by precompiling the call to the
2747         unimplemented op.
2749         - Reduced the duplicated code in Parrot/Jit/*.pm by adding
2750         Parrot/Jit/${cpuarch}Generic.pm
2752         - Changed the way to detect quads to what is written in "man
2753         perlfunc".
2755 2002-01-20 17:23  brentdax
2757         * rx.ops: There's no such thing as rx_allocateinfo.
2759 2002-01-19 08:26  brentdax
2761         * pbc2c.pl: Stop this stupid "hard-code the new oplib" stuff.
2763 2002-01-19 07:12  mrjoltcola
2765         * MANIFEST, core.ops, io.ops, pbc2c.pl: Separate pure ParrotIO ops
2766         into io.ops, leave the STDIO wrappers        in core.ops until they
2767         disappear.  Added debug op for switching on VM debug flag
2769 2002-01-19 01:55  mrjoltcola
2771         * include/parrot/io.h, io/TODO, io/io.c, io/io_stdio.c,
2772         io/io_unix.c, io/io_win32.c: Added a few more Win32 layer calls
2774 2002-01-19 00:55  brentdax
2776         * Makefile.in, rx.c, rx.ops, rxstacks.c, include/parrot/rx.h,
2777         include/parrot/rxstacks.h: Add regex-specific stacks for
2778         efficiency.
2780 2002-01-18 23:58  dan
2782         * Configure.pl: I think the optimal fix here is simply to remove
2783         -ansi -pedantic.  -ansi may well have some uses, but even the gcc
2784         man pages say "There is no reason to use this option [-pedantic];
2785         it exists only to satisfy pedants."
2787         Courtesy of Andy Dougherty <doughera@lafayette.edu>
2789 2002-01-18 23:23  dan
2791         * MANIFEST, docs/parrot.pod, docs/running.pod: This patch add
2792         docs/running.pod, which lists the various executables Parrot
2793         currently includes, examples of running them, and mentions of where
2794         they fail to work. It's more of a cry for help than a useful
2795         reference. :-) I've been having trouble recently when making
2796         changes in figuring out whether I broke anything, because any
2797         non-default way of running the system seems to be already broken. I
2798         can't tell what brokenness is expected and what isn't.
2800         Courtesy of  Steve Fink <steve@fink.com>
2802 2002-01-15 22:13  brentdax
2804         * include/parrot/rx.h, rx.c, rx.ops: Remove the last vestiges of
2805         substring use and enhance performance.
2807 2002-01-15 21:03  ajgough
2809         * string.c: Fix problem with string_transcode, &dest not being
2810         updated if src was already in desired encoding.
2812 2002-01-15 16:54  brentdax
2814         * rx.c, rx.ops, include/parrot/rx.h: Hunt down and destroy
2815         warnings.  Leaves only one warning, at rx.ops line 409, that I
2816         can't manage to get rid of.
2818 2002-01-15 16:50  dan
2820         * pbc2c.pl: Pointer arithmetic not quite right in the generated
2821         code.  Also patches pbc2c.pl to work with rx.ops.
2823         Courtesy of Jason Gloudon <perl@gloudon.com>
2825 2002-01-15 16:15  dan
2827         * classes/Makefile.in: All the C files in classes/ weren't being
2828         compiled with an of the gcc warnings flags. With this patch they
2829         are, and there are an awful lot of warnings, more than I could hope
2830         to understand and clear up (within any sensible time period before
2831         submitting a rash of patches, by which time everyone else would
2832         have moved the code on)
2834         Courtesy of Nicholas Clark <nick@unfortu.net>
2836 2002-01-15 16:10  dan
2838         * core.ops, ops2c.pl, Parrot/Op.pm, Parrot/OpTrans.pm,
2839         Parrot/OpsFile.pm, lib/Parrot/Op.pm, lib/Parrot/OpTrans.pm,
2840         lib/Parrot/OpsFile.pm, Parrot/OpTrans/C.pm,
2841         Parrot/OpTrans/CGoto.pm, Parrot/OpTrans/CPrederef.pm,
2842         lib/Parrot/OpTrans/C.pm, lib/Parrot/OpTrans/CGoto.pm,
2843         lib/Parrot/OpTrans/CPrederef.pm, chartypes/unicode.c,
2844         chartypes/usascii.c: This patch adds a few more macros for .ops
2845         files to use. In addition to the existing
2847          goto OFFSET(...)
2848          goto ADDRESS(...)
2849          goto POP()
2850          goto NEXT()
2852         it adds
2854          expr OFFSET(...)
2855          expr ADDRESS(...)
2856          expr POP()
2857          expr NEXT()
2859         This is intended mainly for use in helper functions in .ops files,
2860         but also for ops that need to eg push the address of the next
2861         opcode onto a stack. The only place this currently happens (outside
2862         of my private code) is in the bsr opcode, which previously
2863         hardcoded the computation.
2865         This patch also makes ops2c.pl move the CUR_OPCODE #define a bit
2866         higher in the generated file so that it can be used by static
2867         functions in the preamble.
2869         Finally, I ran into a parentheses matching problem -- should goto
2870         OFFSET(...) rewrite    \bgoto\s+OFFSET\((.*)\) or
2871         \bgoto\s+OFFSET\((.*?)\)
2873         It was done inconsistently for the different calculations, and of
2874         course neither are correct because you really want matching
2875         parentheses. But that seems like too much bother. (Currently,
2876         there's only one place that uses anything other than $n in the
2877         parentheses, and that's the enternative() op.) So I made them all
2878         .*? but emulated recent POD by also allowing (( ... )) (that's two
2879         parenthesis with a space padding the body.)
2881         The generated core_ops.c and core_ops_prederef.c files after this
2882         patch are identical except for the CUR_OPCODE and REL_PC macros
2883         getting moved a little higher, and the bsr in the regular path (not
2884         prederef) uses 'CUR_OPCODE' instead of the hardcoded 'cur_opcode'.
2886         In summary, this is a big wad of meaningless changes for the
2887         current code. But it will make adding some opcodes easier in the
2888         future, and cleans up a small nit in the current bsr.
2890         Courtesy of Steve Fink <steve@fink.com>
2892 2002-01-15 08:48  brentdax
2894         * include/parrot/rx.h: Bitmaps can now include chars >255 (well,
2895         sort of).
2897 2002-01-15 08:45  brentdax
2899         * rx.c, rx.ops: Bitmaps can now include chars >255 (well, sort of).
2901 2002-01-15 05:00  brentdax
2903         * rx.ops: Speed up rx_literal--roughly doubles benchmark
2904         performance.
2906 2002-01-14 20:18  dan
2908         * vtable.tbl, vtable_h.pl: Clean up a zillion warnings
2910         Courtesy of Nicholas Clark <nick@unfortu.net>
2912 2002-01-14 20:03  dan
2914         * Configure.pl, MANIFEST, Makefile.in, core.ops, exceptions.c,
2915         global_setup.c, interpreter.c, key.c, ops2c.pl, register.c,
2916         runops_cores.c, rx.ops, stacks.c, string.c, test_main.c, trace.c,
2917         chartypes/unicode.c, chartypes/usascii.c, classes/default.pmc,
2918         classes/parrotpointer.pmc, classes/perlarray.pmc,
2919         classes/perlhash.pmc, classes/perlint.pmc, classes/perlnum.pmc,
2920         classes/perlstring.pmc, classes/perlundef.pmc,
2921         encodings/singlebyte.c, encodings/utf16.c, encodings/utf32.c,
2922         encodings/utf8.c, include/parrot/exceptions.h, include/parrot/io.h,
2923         include/parrot/parrot.h, include/parrot/rx.h, io/io_stdio.c,
2924         io/io_win32.c, platforms/win32.c, platforms/win32.h, t/op/pmc.t,
2925         t/op/pmc_perlhash.t, t/op/rx.t, t/pmc/perlhash.t, t/pmc/pmc.t: This
2926         patch cleans up most of the MSVC-warnings when using warning level
2927         4 (the highest, one above the default level 3). It turns off two
2928         level-4 warnings for 'unreferenced formal parameter' and 'named
2929         type definition in parentheses', the latter of which was turning up
2930         warnings in MS VC headers.  Level 4 warnings also helped me find a
2931         couple of other lurking bugs in the parrot code.
2933         Replaces the various fprintf/exit combos with calls to
2934         internal_exception, which uses var_args to emulate printf. Various
2935         exception types were added as well. These are probably temporary
2936         until a real exception system arrives.
2938         Fixed some places in the IO code where wrong functions were being
2939         called, or put into the vtable.
2941         Courtesy of "Michel Lambert" <mlambert@legendent.com>
2943 2002-01-14 19:00  dan
2945         * MANIFEST: D'oh! Forgot a file.
2947         Courtesy of Andy Dougherty <doughera@lafayette.edu>
2949 2002-01-14 18:44  brentdax
2951         * rx.c, rx.ops, include/parrot/rx.h: Use bitmaps where it makes
2952         sense (and a few other enhancements to regexes).
2954 2002-01-14 07:07  brentdax
2956         * interpreter.c, runops_cores.c, test_main.c,
2957         include/parrot/interpreter.h: Make profiling a little more useful.
2959 2002-01-13 19:44  dan
2961         * Configure.pl: Turn off unsed things warnings for now
2963 2002-01-13 19:39  dan
2965         * key.c, classes/perlarray.pmc: key.c:   intialize KEY.keys
2967         classes/perlarray.c:  * get_string: is casting
2968         SELF->cache.struct_val to a STRING*,    while all other methods are
2969         using it as a KEY*; don't know    what a perlarray stringifies to,
2970         so replacing with NULL  * get_bool: the default behaviour does not
2971         look right to me
2973         Courtesy of "Mattia Barbon" <mbarbon@dsi.unive.it>
2975 2002-01-13 19:37  dan
2977         * Makefile.in, classes/Makefile.in: Makefile.in:   (Re)add ld_debug
2978         flags to LDFLAGS, so that Configure.pl --debugging   works with
2979         MSVC
2981         classes/Makefile.in   make easier to add pmb2c.pl flags to all
2982         pmc2c calls
2984         Courtesy of "Mattia Barbon" <mbarbon@dsi.unive.it>
2986 2002-01-13 19:36  dan
2988         * io/io_win32.c:   according to my MSVC docs, you should use
2989         _tcslen only after
2990           #including tchar.h
2992         Courtesy of  "Mattia Barbon" <mbarbon@dsi.unive.it>
2994 2002-01-13 19:35  dan
2996         * docs/intro.pod: Doc tweak.
2998         Courtesy of Simon Glover <scog@roe.ac.uk>
3000 2002-01-13 19:34  dan
3002         * t/: op/pmc_perlstring.t, pmc/perlstring.t:  Enclosed test checks
3003         that
3005           if Px, ...
3007          works with PerlString PMCs; these should be false if they are "",
3008         0, or
3009          are undefined, and true in every other case.
3011         Courtesy of Simon Glover <scog@roe.ac.uk>
3013 2002-01-13 19:23  dan
3015         * Configure.pl, config_h.in, core.ops, classes/perlnum.pmc: Change
3016         NUMVAL_FMT to FLOATVAL_FMT.
3018         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3020 2002-01-13 17:45  jgoff
3022         * Makefile.in, global_setup.c, classes/Makefile.in,
3023         classes/intqueue.pmc, include/parrot/pmc.h, t/op/pmc.t,
3024         t/pmc/pmc.t: IntQueue is for an upcoming article on perl.com on
3025         designing your own classes.
3027 2002-01-13 08:47  simon
3029         * interpreter.c, Parrot/OpTrans/CPrederef.pm,
3030         lib/Parrot/OpTrans/CPrederef.pm:
3031         Fix bsr in prederef mode.
3033         Courtesy of: Jason Gloudon <perl@gloudon.com>
3035 2002-01-12 15:33  dan
3037         * interpreter.c, key.c, packfile.c, register.c, resources.c,
3038         string.c, encodings/singlebyte.c, encodings/utf32.c,
3039         include/parrot/parrot.h, io/io.c, io/io_stdio.c, io/io_unix.c:
3040         Silence most of the unused variable warnings.
3042         Courtesy of Nicholas Clark <nick@unfortu.net>
3044 2002-01-12 15:18  dan
3046         * rx.ops: This patch fixes a warning and also changes an 'int' to
3047         an 'INTVAL'.  All tests should pass on Solaris.
3049         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3051 2002-01-12 15:13  dan
3053         * interpreter.c, string.c, test_main.c, classes/parrotpointer.pmc,
3054         examples/assembly/life.pasm, include/parrot/interpreter.h,
3055         include/parrot/io.h, io/io.c, io/io_stdio.c, io/io_unix.c,
3056         io/io_win32.c: More IO work. (Plus some misc twiddles)
3058         Courtesy of Melvin Smith <mrjoltcola@mindspring.com>
3060 2002-01-12 01:14  dan
3062         * include/parrot/string.h: fix a missing name
3064 2002-01-12 00:39  grunblatt
3066         * include/parrot/string.h: Few typos.
3068 2002-01-12 00:16  grunblatt
3070         * jit.c, jit2h.pl, jit/i386/core.jit: Added support for opcodes
3071         that change the program control flow.
3073 2002-01-11 23:53  brentdax
3075         * classes/parrotpointer.pmc: Tell the GC to keep its hands out of a
3076         ParrotPointer's guts.
3078 2002-01-11 23:03  dan
3080         * include/parrot/string.h: flags for the buffers, for GC
3082 2002-01-11 22:31  dan
3084         * include/parrot/pmc.h: PMC flag docs. Those'd be good...
3086 2002-01-11 22:21  dan
3088         * include/parrot/pmc.h: Started with PMC flags
3090 2002-01-11 19:33  dan
3092         * config_h.in, memory.c, resources.c, string.c,
3093         include/parrot/resources.h: Beginnings of a memory allocation/gc
3094         system. Without the GC part.
3096 2002-01-11 18:05  dan
3098         * core.ops: Make sure constant pushes are right on mixed 32/64 bit
3099         systems
3101         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3103 2002-01-11 17:50  dan
3105         * core.ops, pbc2c.pl, Parrot/OpTrans/CGoto.pm,
3106         lib/Parrot/OpTrans/CGoto.pm, include/parrot/interpreter.h: Here is
3107         a patch that makes pbc2c generated code work with the bsr opcode.
3108         It creates a new opcode 'enternative', and uses this to support a
3109         mixed model of interpretation and execution of compiled C code.
3111         Courtesy of Jason Gloudon <perl@gloudon.com>
3113 2002-01-11 17:48  dan
3115         * Makefile.in: Add life as a potential .exe target
3117 2002-01-11 17:30  dan
3119         * include/parrot/resources.h: Start of arena stuff for GC
3121 2002-01-11 05:34  brentdax
3123         * rx.ops: Docs modifications.
3125 2002-01-11 04:19  brentdax
3127         * rx.ops, include/parrot/rx.h: Remove unnecessary evilness from
3128         regular expressions.
3130 2002-01-11 03:44  grunblatt
3132         * jit/i386/core.jit: off by one.
3134 2002-01-11 02:25  dan
3136         * Makefile.in, examples/assembly/life.pasm: Tweak to life benchmark
3138         Courtesy of Steve Fink <steve@fink.com>
3140 2002-01-11 00:32  brentdax
3142         * MANIFEST: Forgot to put parrotpointer.pmc in the MANIFEST.
3144 2002-01-10 23:22  ajgough
3146         * string.c, docs/strings.pod: Removed all the nul termination code,
3147         as this is in general a bad idea.  Note added to docs/strings.pod
3148         to warn people away from assuming termination.
3150 2002-01-10 23:14  dan
3152         * core.ops, interpreter.c, jit.c, rx.c, rx.ops, stacks.c,
3153         testparrotsizes_c.in, include/parrot/interpreter.h,
3154         include/parrot/rx.h, include/parrot/stacks.h: Much nicer stack
3155         implementation
3157         Courtesy of Steve Fink <steve@fink.com>
3159 2002-01-10 22:48  dan
3161         * core.ops: Fix 'basic' test 1 for sizeof(opcode_t) !=
3162         sizeof(INTVAL)
3164         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3166 2002-01-10 22:46  dan
3168         * key.c, classes/perlhash.pmc, t/op/pmc_perlhash.t,
3169         t/pmc/perlhash.t:  Well, actually two bugs.
3171          The first is an off-by-one error in key.c than can cause parrot
3172          to segfault if hash % NUM_BUCKETS happens to be zero.
3174          The other is a bug in the PerlHash init() code that causes new
3175         PerlHash
3176          PMCs to start with the wrong size.
3178          Both fixed below; also tests to prevent them recurring.
3180         Courtesy of Simon Glover <scog@roe.ac.uk>
3182 2002-01-10 22:30  dan
3184         * classes/default.pmc, classes/perlarray.pmc, t/op/pmc_perlarray.t,
3185         t/pmc/perlarray.t:  The enclosed patch allows one to use the if op
3186         with a PerlArray,
3188         Courtesy of Simon Glover <scog@roe.ac.uk>
3190 2002-01-10 21:31  dan
3192         * examples/assembly/life.pasm: Tweaked to be a benchmarkable thing
3194 2002-01-10 20:30  grunblatt
3196         * jit.c, jit2h.pl, Parrot/Jit/i386-bsd.pm,
3197         Parrot/Jit/i386-linux.pm, lib/Parrot/Jit/i386-bsd.pm,
3198         lib/Parrot/Jit/i386-linux.pm, jit/i386/core.jit, jit/i386/lib.jit:
3199         All the op codes that doesn't change the program control flow now
3200         work in the JIT by calling the code generated by the compiler when
3201         the op is not in core.jit TODO:     * Make all the ops that change
3202         the program control flow (and are not on core.jit) work.      *
3203         Remove the dispatch payload.
3205 2002-01-10 17:13  dan
3207         * classes/parrotpointer.pmc: This patch fixes parrotpointer.pmc,
3208         which tries to return 0 from a void function.
3210         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3212 2002-01-10 17:12  dan
3214         * t/op/macro.t: Skip tests, don't comment them out.
3216         Courtesy of Simon Glover <scog@roe.ac.uk>
3218 2002-01-10 17:10  dan
3220         * rx.c: This fixes a couple of nits in rx.c:
3222            1. There's no newline at the end, which makes gcc unhappy.
3223            2. We should use NULL, not 0 or "", for creating null pointers.
3225         Courtesy of Simon Glover <scog@roe.ac.uk>
3227 2002-01-10 17:09  dan
3229         * MANIFEST:  Adds rx.t, removes duplicated rx.c and puts everything
3230         back in
3231          alphabetical order.
3233         Courtesy of Simon Glover <scog@roe.ac.uk>
3235 2002-01-10 16:54  ajgough
3237         * resources.c: Made free_string check that there was a string to
3238         free.  In reponse to a bug spotted by Joshua Nye.
3240 2002-01-09 22:44  dan
3242         * global_setup.c: Forgot the setup
3244 2002-01-09 22:35  dan
3246         * rx.ops: Forgot this one
3248 2002-01-09 22:35  dan
3250         * MANIFEST, Makefile.in, rx.c, string.c, include/parrot/pmc.h,
3251         include/parrot/rx.h, t/op/rx.t: Preliminary regex implementation.
3252         Tests don't work, though.
3254         Courtesy of "Brent Dax" <brentdax@cpan.org>
3256 2002-01-09 21:48  dan
3258         * t/: op/pmc_perlarray.t, pmc/perlarray.t: Whoops, forgot that
3260 2002-01-09 21:22  dan
3262         * classes/Makefile.in, classes/parrotpointer.pmc, Makefile.in:
3263         Generic pointer holder class
3265         Courtesy of "Brent Dax" <brentdax@cpan.org>
3267 2002-01-09 21:19  dan
3269         * MANIFEST, classes/perlarray.pmc, t/op/pmc.t, t/pmc/pmc.t: Array
3270         patches.
3272 2002-01-09 19:54  dan
3274         * io/io_unix.c: Whoops. Forgot one
3276 2002-01-09 19:43  dan
3278         * key.c, classes/perlhash.pmc, t/op/pmc_perlhash.t,
3279         t/pmc/perlhash.t: Fix hash crash bugs
3281         Courtesy of Simon Glover <scog@roe.ac.uk>
3283 2002-01-09 19:13  dan
3285         * memory.c: Signedness whoops.
3287         Courtesy of Simon Glover <scog@roe.ac.uk>
3289 2002-01-09 18:23  dan
3291         * MANIFEST, Makefile.in, include/parrot/io.h, io/io.c, io/io_os.c,
3292         io/io_stdio.c, io/io_win32.c: Changes:
3294         -Minor layer cleanups -Win32 layer added (mostly stubs for now) but
3295         will be using the   Win32 API and company rather than the unix-ish
3296         fake ones.  -stdin/stdout/stderr Win32 specific code added. Rather
3297         than use   0,1,2, Microsoft says use GetStdHandle(), etc. so that
3298         stuff is   there. Soon we should be able to start using these
3299         rather than   fprintf(stderr, ...) and remove stdio linkage.
3301         Courtesy of <mrjoltcola@mindspring.com>
3303 2002-01-09 17:26  dan
3305         * test_main.c: Fixes bad code gen on x86.
3307         Courtesy of Josh Wilmes <josh@hitchhiker.org>
3309 2002-01-09 17:24  dan
3311         * Configure.pl, config_h.in, core.ops, key.c, classes/perlint.pmc,
3312         classes/perlnum.pmc: This patch adds macros to the config.h file
3313         for INTVAL and NUMVAL printf formats.
3315         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3317 2002-01-08 22:55  ajgough
3319         * docs/vtables.pod: Clarify what get_string should do.
3321 2002-01-08 20:05  dan
3323         * key.c: Keep comments in sync.
3325         Courtesy of Simon Glover <scog@roe.ac.uk>
3327 2002-01-08 19:50  dan
3329         * memory.c, include/parrot/memory.h: Need a realloc
3331 2002-01-08 17:24  gregor
3333         * .cvsignore, Configure.pl, Makefile.in:
3334         Added 'reconfig' make target and corresponding --reconfig option to
3335         Configure.pl, so its very easy to re-run Configure.pl with the last
3336         (command-line) options you passed it.
3338 2002-01-08 16:33  dan
3340         * core.ops, make_vtable_ops.pl, Parrot/OpsFile.pm,
3341         lib/Parrot/OpsFile.pm: Add in, out, and inout parameters to teh ops
3342         in core.ops. Potential help for optimizers and JITters.
3344         Courtesy of gregor@linux1.kennedytech.com
3346 2002-01-08 16:32  dan
3348         * key.c: Grab key length from the right spot
3350         Courtesy of "Peter Gibbs" <peter@emkel.co.za>
3352 2002-01-08 13:27  ajgough
3354         * test_main.c: Fix slight thinko in realloc usage for reading from
3355         stdin.
3357 2002-01-08 11:34  ajgough
3359         * test_main.c: Allow test_parrot to read bytecode stream from
3360         stdin, adds -f command line option, with "-f -" doing the stdin
3361         stuff.
3363 2002-01-08 06:34  jgoff
3365         * key.c, include/parrot/key.h: key.c - Added simple implementation
3366         of buckets.  include/parrot/key.h - Added enum_key_bucket type
3368 2002-01-08 03:21  jgoff
3370         * include/parrot/key.h: Added an undef type to the key structure,
3371         so we can delete keys without confusion.
3373 2002-01-07 22:09  dan
3375         * key.c, packfile.c, string.c, include/parrot/key.h,
3376         include/parrot/packfile.h, include/parrot/string.h: Fix whines
3377         about index being redefined
3379         Courtesy of Nick Clark
3381 2002-01-07 21:15  dan
3383         * ops2pm.pl: Don't allow the same ops lib to be included twice.
3385         Courtesy of Steve Fink <steve@fink.com>
3387 2002-01-07 20:48  dan
3389         * Parrot/Test.pm, lib/Parrot/Test.pm: Report useful info for test
3390         failures
3392         Courtesy of "Brent Dax" <brentdax@cpan.org>
3394 2002-01-07 20:43  dan
3396         * docs/intro.pod: Missing a comma
3398         Courtesy of "coral" <coral@eekeek.org>
3400 2002-01-07 20:41  dan
3402         * global_setup.c: Quiet a warning
3404         Courtesy of Simon Glover <scog@roe.ac.uk>
3406 2002-01-07 18:58  gregor
3408         * t/op/.cvsignore:
3409         Ignore intermediate test files.
3411 2002-01-07 17:01  gregor
3413         * ops2c.pl:
3414         Print a warning if an .ops file is mentioned more than once on the
3415         command line.
3417 2002-01-07 16:12  ajgough
3419         * t/: op/pmc_perlhash.t, pmc/perlhash.t: A couple more hash tests,
3420         these shouldn't fail.
3422 2002-01-07 15:15  simon
3424         * t/: op/pmc_perlhash.t, pmc/perlhash.t:
3425         Stop segfaults.
3427 2002-01-07 15:11  simon
3429         * key.c:
3430         Fix zero-termination bug in hash function.
3432 2002-01-07 13:37  ajgough
3434         * MANIFEST, t/op/pmc_perlhash.t, t/pmc/perlhash.t: Added
3435         pmc_perlhash.t, one test currently fails, one passes, yin-yang fun.
3437 2002-01-07 11:53  brentdax
3439         * Configure.pl: Fixes the + thing in prompts, plus adds a synonym
3440         (:add{foo}) and a new deleting thing (:rem{foo})
3442 2002-01-07 11:43  simon
3444         * Configure.pl:
3445         Gobble the + before concatenating.
3447 2002-01-07 03:53  dan
3449         * Makefile.in: Dependency fix for new ops setup.
3451 2002-01-07 03:33  jgoff
3453         * classes/perlarray.pmc: Add negative indices, and fix a small
3454         allocation problem.
3456 2002-01-06 23:54  ajgough
3458         * hints/os2.pl: Makes the hints file take account of ldflags and
3459         ccflags being split.  This hints file is still very specific to
3460         builds with gnu tools, but a proper solution can wait.   Thanks to
3461         Nick Burch.
3463 2002-01-06 22:12  dan
3465         * Makefile.in, ops2c.pl, Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm:
3466             -changes Parrot::OpLib::core's dependencies to reflect the new
3467         selectable ops files    -allows some of the special forms of 'goto'
3468         inside the PREAMBLE of an opcode file
3470         Courtesy of "Brent Dax" <brentdax@cpan.org>
3472 2002-01-06 19:59  simon
3474         * Makefile.in:
3475         *cough*
3477 2002-01-06 18:19  dan
3479         * classes/perlhash.pmc: Fix some type issues.
3481         Courtesy of Josh Wilmes <josh@hitchhiker.org>
3483 2002-01-06 18:03  dan
3485         * Configure.pl, Makefile.in: It adds a prompt to Configure asking
3486         for a list of opcode files to use.  The default is everything
3487         available except for obscure.ops.
3489         In addition, it makes it so that if your answer to a question
3490         starts with '+', it will concatenate it to the default.  For
3491         example:
3493         What C compiler do you want to use? [cl] +HAHAHA!!!
3495         will result in $PConfig{cc} eq "cl HAHAHA!!!".  While that example
3496         is not terribly useful, it is quite useful with things like
3497         command-line flags and the like.
3499         Finally, it contains a couple tweaks so that my syntax-highlighting
3500         editor recognizes some heredocs correctly.  :^)
3502         Courtesy of "Brent Dax" <brentdax@cpan.org>
3504 2002-01-06 17:59  dan
3506         * KNOWN_ISSUES, MANIFEST, README: Doc Patches
3508         Courtesy of "Bryan C. Warnock" <bwarnock@raba.com>
3510 2002-01-06 17:58  dan
3512         * MANIFEST:  We're missing a couple of files from the MANIFEST.
3514         Courtesy of Simon Glover <scog@roe.ac.uk>
3516 2002-01-06 17:57  dan
3518         * ops2c.pl, Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm:   1.
3519         Compiler directives, etc. in files other than core.ops will now
3520         work.   2.  Compiler warnings will now display the file and line
3521         number of the  opcode file.
3523         Courtesy of "Brent Dax" <brentdax@cpan.org>
3525 2002-01-06 17:52  dan
3527         * languages/jako/jakoc: Fix breakage caused by iton/ntoi going away
3529         Courtesy of Simon Glover <scog@roe.ac.uk>
3531 2002-01-06 17:36  dan
3533         * docs/intro.pod: Lots of updates
3535         Courtesy of Simon Glover <scog@roe.ac.uk>
3537 2002-01-06 02:34  gregor
3539         * interpreter.c:
3540         Add some internal documentation on the theory of operation of the
3541         prederef code.
3543 2002-01-06 02:17  gregor
3545         * interpreter.c:
3546         Removed unnecessary include.
3548 2002-01-05 12:37  simon
3550         * classes/.cvsignore:
3551         Ignore generated .h files.
3553         Courtesy of: Josh Wilmes <josh@hitchhiker.org>
3555 2002-01-05 12:37  simon
3557         * Configure.pl:
3558         Make lcc happier by adding a dummy structure.
3560         Courtesy of: Josh Wilmes <josh@hitchhiker.org>
3562 2002-01-05 12:35  simon
3564         * global_setup.c, classes/perlundef.pmc, t/op/pmc.t, t/pmc/pmc.t:
3565         Make perlundef work. (And coincidentally stop segfaults in the
3566         tests :)
3568         Courtesy of: Jason Gloudon <perl@gloudon.com>
3570 2002-01-05 04:59  dan
3572         * t/: op/pmc.t, pmc/pmc.t: Undef tests added.
3574 2002-01-05 04:55  jgoff
3576         * classes/perlhash.pmc: Added perlhash class definition
3578 2002-01-05 04:48  dan
3580         * core.ops: Fix on 64 bit platforms with 32-bit opcode_t
3582         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3584 2002-01-05 03:57  jgoff
3586         * MANIFEST, Makefile.in, core.ops, global_setup.c, key.c,
3587         vtable.tbl, classes/Makefile.in, classes/default.pmc,
3588         include/parrot/key.h, include/parrot/pmc.h, t/op/pmc.t,
3589         t/pmc/pmc.t: Initial hash commit.
3591         core.ops - Adding set({i,n,s},p,s) and set(p,{i,n,s},s) operations.
3592          key.h  - Adding NUM_BUCKETS classes/default.pmc - Adding
3593         set_{integer,number,string}_index_s
3595         This does not yet do collision resolution, but will soon.
3597 2002-01-05 02:54  dan
3599         * interpreter.c: More unsigned fixes
3601         Courtesy of "Bryan C. Warnock" <bwarnock@raba.com>
3603 2002-01-04 22:13  dan
3605         * Configure.pl, hints/mswin32.pl: Makes config's building of the
3606         test programs happier.
3608         Courtesy of "Jason Diamond" <jason@injektilo.org>
3610 2002-01-04 19:00  dan
3612         * Configure.pl, Makefile.in, hints/darwin.pl: Add link flags as
3613         separate things
3615 2002-01-04 18:27  dan
3617         * Configure.pl, Makefile.in, classes/Makefile.in, hints/mswin32.pl:
3618         Fixes to get things configuring and building on Win32 Native.
3620         Courtesy of "Jason Diamond" <jason@injektilo.org>
3622 2002-01-04 17:39  dan
3624         * hints/vms.pl: debug cleanup
3626 2002-01-04 16:53  dan
3628         * docs/parrot.pod:  The enclosed patch brings the list of
3629         documentation in parrot.pod
3630          up to date.
3632         Courtesy of Simon Glover <scog@roe.ac.uk>
3634 2002-01-04 16:47  dan
3636         * test_main.c, Parrot/Jit/i386-linux.pm,
3637         lib/Parrot/Jit/i386-linux.pm: In an attempt to just keep knocking
3638         off warnings..
3640         Courtesy of Kevin Falcone <kevin@jibsheet.com>
3642 2002-01-04 16:44  dan
3644         * Configure.pl, Makefile.in: Fixed linking to use linker.
3646         Courtesy of Josh Wilmes <josh@hitchhiker.org>
3648 2002-01-04 16:39  dan
3650         * io/io_stdio.c: Added CVS tag info
3652 2002-01-04 16:35  dan
3654         * hints/cygwin.pl: Time for this. We need a sane linker, and ld2
3655         isn't it
3657 2002-01-04 16:26  dan
3659         * languages/miniperl/Miniperl/Tokenizer.pm: Quiet a warning in the
3660         Tokenizer test
3662         Courtesy of Jonathan Stowe <gellyfish@gellyfish.com>
3664 2002-01-04 16:17  dan
3666         * chartypes/unicode.c: Silence some warnings.
3668         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3670 2002-01-04 16:09  dan
3672         * classes/: genclass.pl, perlarray.pmc, perlint.pmc, perlnum.pmc,
3673         perlstring.pmc, perlundef.pmc:  - genclass.pl attempts to put $Id$
3674         into generated files
3675            but the $Id$ string gets mangled when it's committed.
3676            This patch fixes the existing .pmc files and fixes genclass.pl.
3678          - Makes capitalization in .pmc header match actual filenames
3680          - The command for calling genclass.pl in vtables.pod is incorrect,
3681            since it assumes you're running in classes/ but genclass.pl
3682         assumes
3683            it's being run from the main directory. I changed genclass.pl to
3684         not
3685            care.
3687         Courtesy of Steve Fink <steve@fink.com>
3689 2002-01-04 03:57  dan
3691         * MANIFEST, io/TODO, io/io_stdio.c: No wonder things worked for
3692         me--I *had* the files:wq!
3694 2002-01-04 03:40  dan
3696         * MANIFEST: Whoops--remove files not really there
3698 2002-01-04 03:37  dan
3700         * interpreter.c, stacks.c, include/parrot/stacks.h: The patch below
3701         my sig adds a new_stack() function to take care of the allocation
3702         and setup of "generic" stacks.
3704         Courtesy of "Brent Dax" <brentdax@cpan.org>
3706 2002-01-04 02:36  dan
3708         * core.ops:  The entry in core.ops for puts(s|sc) is missing a =cut
3709         and so
3710          writes a load of junk in core_ops.pod. Applied patch fixes.
3712         Courtesy of Simon Glover <scog@roe.ac.uk>
3714 2002-01-04 02:35  dan
3716         * classes/: perlint.pmc, perlnum.pmc, perlstring.pmc: The PerlInt
3717         logical-or is using get_integer instead of get_bool for logical
3718         operations. This patch corrects that.
3720         Perlnum and perlstring have working get_bool's, so the default
3721         logical_or and logical_and should be sufficient. The empty methods
3722         are pointed to the default logical_or.
3724         Courtesy of Jason Gloudon <perl@gloudon.com>
3726 2002-01-04 02:31  dan
3728         * Makefile.in: docs/Makefile should be removed by realclean, but
3729         isn't
3731         Courtesy of Kevin Falcone <kevin@jibsheet.com>
3733 2002-01-04 02:29  dan
3735         * classes/: Makefile.in, pmc2c.pl: PMC inheritance! Yay!
3737         Courtesy of Steve Fink <steve@fink.com>
3739 2002-01-04 00:51  dan
3741         * docs/vtables.pod: More docs
3743         Courtesy of Steve Fink <steve@fink.com>
3745 2002-01-04 00:47  dan
3747         * Configure.pl: Updated 64-bit patch
3749         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3751 2002-01-04 00:43  dan
3753         * Configure.pl: 64-bit Fix.
3755         Courtesy of "Bryan C. Warnock" <bwarnock@raba.com>
3757 2002-01-03 22:37  dan
3759         * MANIFEST, Makefile.in, interpreter.c, include/parrot/io.h,
3760         io/io.c, io/io_os.c: Code cleanup, started STDIO layer, started
3761         some buffering work.       Additional work on other layers.
3763         Courtesy of Melvin Smith <mrjoltcola@mindspring.com>
3765 2002-01-03 19:41  gregor
3767         * disassemble.pl, obscure.ops, packfile.c, pbc2c.pl:
3768         Updated copyright messages on top-level files.
3770 2002-01-03 04:23  robert
3772         * make.pl: Add author information.  Bonsai test.
3774 2002-01-03 04:02  dan
3776         * io/io_os.c: Twig Bonsai
3778 2002-01-03 03:45  dan
3780         * io/: io_os.c, io_os.c: Twig Bonsai
3782 2002-01-03 03:41  dan
3784         * io/io_os.c: Twig Bonsai
3786 2002-01-02 21:42  gregor
3788         * packfile.c, include/parrot/packfile.h:
3789         Get rid of warnings in packfile.[hc]
3791 2002-01-02 20:39  gregor
3793         * manicheck.pl:
3794         Bracketed translated patterns with ^ and $.
3796 2002-01-02 20:11  dan
3798         * io/io_os.c: silence a warning
3800 2002-01-02 19:52  grunblatt
3802         * jit.c, jit2h.pl, include/parrot/jit.h: Moved the definition of
3803         op_assembly to jit_struct.h, so that we get the real number of ops.
3804          Removed some warnings.
3806 2002-01-02 19:31  tom
3808         * string.c: Fix string transcoding so that it actually works.
3810         Patch from Peter Gibbs <peter@emkel.co.za>
3812 2002-01-02 19:20  gregor
3814         * manicheck.pl:
3815         A program to check the MANIFEST file, accounting for .cvsignore
3816         files.
3818 2002-01-02 19:19  dan
3820         * t/harness: twig bonsai
3822 2002-01-02 19:13  dan
3824         * t/harness: twig bonsai
3826 2002-01-02 18:54  dan
3828         * t/harness: Tweak to test Bonsai
3830 2002-01-02 16:27  dan
3832         * Configure.pl: Allow 64-bit build of parrot on systems with a
3833         mixed 32/64 bit perl
3835         Courtesy of David M. Lloyd <dmlloyd@tds.net>
3837 2002-01-02 15:33  simon
3839         * MANIFEST, docs/Makefile:
3840         Fixed up MANIFEST. (And I removed the Makefile in docs/)
3842         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
3844 2002-01-02 13:51  simon
3846         * Configure.pl:
3847         Die on broken manifest.
3849 2002-01-02 13:48  simon
3851         * jit2h.pl, examples/assembly/mops.pasm:
3852         Clear up JIT warnings.
3854         Courtesy of: Nick Clark <nick@unfortu.net>
3856 2002-01-02 04:10  dan
3858         * io/io.c, io/io_os.c, t/op/interp.t: IO stack now gets initialized
3859         only once, so new interp creation works again
3861         Courtesy of Melvin Smith <mrjoltcola@mindspring.com>
3863 2002-01-02 03:32  dan
3865         * t/op/interp.t: Stubbed the test out, since it's hanging at the
3866         moment.
3868 2002-01-02 00:55  dan
3870         * MANIFEST, Makefile.in, core.ops, include/parrot/io.h, io/io.c,
3871         io/io_os.c: Initial IO system patches
3873         Courtesy of <mrjoltcola@mindspring.com>
3875 2002-01-01 22:55  ajgough
3877         * classes/default.pmc: On second thoughts, and some prodding, the
3878         set_* methods now only set the appropriate part of the cache, and
3879         do nothing else.
3881 2002-01-01 22:29  ajgough
3883         * classes/default.pmc:  Wrote a whole host of default pmc methods.
3885          set_* create appropriate Perl* result.
3886          get_* simply grabs needed bit of cache.*_val
3888          Other methods do the rightest thing I can think of, at the moment.
3890          None yet cope with overflow, the modulus operation needs to be
3891         checked as
3892         I don't know quite which semantics we really want.
3894         Not tested yet.
3896 2002-01-01 20:23  dan
3898         * docs/Makefile, encodings/singlebyte.c, encodings/utf16.c,
3899         encodings/utf32.c, encodings/utf8.c, include/parrot/encoding.h: Got
3900         rid of unneeded tmp var and eliminated const from encode prototype
3901         since it does make changes to the string.
3903         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
3905 2002-01-01 20:11  dan
3907         * Makefile.in: Make clean now tosses pdump.o
3909         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
3911 2002-01-01 19:49  dan
3913         * pdump.c, test_main.c: Warnings cleanup
3915         Courtesy of Josh Wilmes <josh@sky.net>
3917 2002-01-01 19:45  dan
3919         * Configure.pl, Makefile.in, docs/.cvsignore, docs/Makefile.in,
3920         hints/mswin32.pl, languages/jako/Makefile.in,
3921         languages/scheme/Makefile.in: Makes cleanup better on non-Unix
3922         platforms
3924         Courtesy of "Jason Diamond" <jason@injektilo.org>
3926 2002-01-01 19:41  dan
3928         * include/parrot/register.h: Clean up some warnings
3930         Courtesy of Josh Wilmes <josh@hitchhiker.org>
3932 2002-01-01 19:10  simon
3934         * pbc2c.pl, Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm:
3935         Hack-around to enable compilation of code using vtable ops.
3937 2002-01-01 18:43  dan
3939         * encodings/: singlebyte.c, utf16.c, utf32.c, utf8.c: Toss <0
3940         checks on unsigned things
3942         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
3944 2002-01-01 18:26  dan
3946         * runops_cores.c: More warning silences.
3948         Courtesy of Nicholas Clark <nick@unfortu.net>
3950 2002-01-01 18:25  dan
3952         * trace.c: Shuts up a warning.
3954         Courtesy of Nicholas Clark <nick@unfortu.net>
3956 2002-01-01 18:24  dan
3958         * encodings/singlebyte.c: Clean up some warnings.
3960         Courtesy of Nicholas Clark <nick@unfortu.net>
3962 2002-01-01 18:20  dan
3964         * Configure.pl: Hey, those PPros are really x86 systems! Who'dve
3965         thunk it?
3967         Courtesy of "Bryan C. Warnock" <bwarnock@raba.com>
3969 2002-01-01 18:17  dan
3971         * packfile.c: Warning cleanup
3973         Courtesy of Nicholas Clark <nick@unfortu.net>
3975 2002-01-01 17:53  dan
3977         * string.c: New string size should be based on output encoding's
3978         size, not input encoding's size.
3980         Courtesy of: "Peter Gibbs" <peter@emkel.co.za>
3982 2002-01-01 17:22  dan
3984         * Configure.pl, core.ops, interpreter.c, memory.c, runops_cores.c,
3985         string.c, test_main.c, trace.c, include/parrot/exceptions.h,
3986         include/parrot/interpreter.h, include/parrot/memory.h,
3987         include/parrot/oplib.h, include/parrot/string.h, t/op/string.t:
3988         Warnings fixups.
3990         Courtesy of Chip Turner <cturner@redhat.com>
3992 2002-01-01 17:09  dan
3994         * encodings/singlebyte.c, encodings/utf16.c, encodings/utf32.c,
3995         encodings/utf8.c, include/parrot/encoding.h: Some signed things are
3996         now unsigned, as is proper.
3998         Courtesy of: "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
3999         Courtesy of: "Bryan C. Warnock" <bwarnock@raba.com>
4001 2002-01-01 16:59  dan
4003         * include/parrot/trace.h: Useless debugging prototype removed
4005         Courtesy of: "Bryan C. Warnock" <bwarnock@raba.com>
4007 2002-01-01 16:58  dan
4009         * MANIFEST: We forgot a file.
4011         Courtesy of "Bryan C. Warnock" <bwarnock@raba.com>
4013 2002-01-01 03:53  dan
4015         * Configure.pl: Okay, I give. Removed some warnings because the
4016         darned system headers were triggering them. Sloppy, sloppy
4017         coding...
4019 2002-01-01 03:48  dan
4021         * config_h.in: Add in an unsigned INTVAL.
4023         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4025 2002-01-01 03:46  dan
4027         * global_setup.c: Clean up some compiler warnings.
4029         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4031 2002-01-01 03:43  dan
4033         * ops2c.pl, Parrot/OpTrans.pm, Parrot/OpTrans/CPrederef.pm,
4034         lib/Parrot/OpTrans.pm, lib/Parrot/OpTrans/CPrederef.pm,
4035         include/parrot/op.h: Cleaned up some things to make the compiler
4036         happier.
4038         Courtesy of Nicholas Clark <nick@unfortu.net>
4040 2002-01-01 03:14  dan
4042         * Configure.pl: Quad updates.
4044         Courtesy of Nicholas Clark <nick@unfortu.net>
4046 2001-12-31 22:53  dan
4048         * include/parrot/op.h: Typedef had parameters backwards. Threw
4049         core.ops for a big whiny warnings loop.
4051 2001-12-31 22:37  dan
4053         * Makefile.in, resources.c: Tweaks to try and get things to build
4054         in the right order.
4056 2001-12-31 21:58  dan
4058         * Configure.pl: Stupid thinko fix
4060 2001-12-31 21:34  dan
4062         * Configure.pl, hints/mswin32.pl: Tweaks for Win32 builds
4064         Courtesy of: "Jason Diamond" <jason@injektilo.org>
4066 2001-12-31 21:32  dan
4068         * Configure.pl: Fix for non-gcc systems
4070 2001-12-31 20:22  dan
4072         * interpreter.c: Tweak so we can build on non-JIT platforms
4074 2001-12-31 20:11  dan
4076         * Configure.pl: Force the time on some copied files to be 'now' to
4077         make the Win builds much less annoying.
4079         Courtesy of "Jason Diamond" <jason@injektilo.org>
4081 2001-12-31 20:07  dan
4083         * Configure.pl: Nuke all object files in the parrot tree that
4084         matter when configuring.  Shouldn't be necessary with good
4085         dependencies in the makefile, but we don't have those yet.
4087 2001-12-31 20:00  gregor
4089         * chartypes/unicode.c:
4090         Silence unused variable warnings.
4092 2001-12-31 19:40  dan
4094         * Configure.pl: Minor Win32 tweaks. Tossed -Wtraditional, too
4096 2001-12-31 19:37  gregor
4098         * interpreter.c, jit.c, include/parrot/jit.h:
4099         Created a prototype for JIT functions and used it in interpreter.c.
4101 2001-12-31 19:31  dan
4103         * Configure.pl, test_gnuc.c: Better GCC detection (and version
4104         detection) with really cranky warnings if we find we're using it.
4106         Courtesy of: Nicholas Clark <nick@unfortu.net>
4108 2001-12-31 18:01  gregor
4110         * interpreter.c, include/parrot/interpreter.h, include/parrot/op.h:
4112         Fixed a few warnings wrt prototypes, etc.
4114 2001-12-31 17:23  dan
4116         * string.c: Silenced most of the compiler whines
4118 2001-12-31 17:15  gregor
4120         * Configure.pl:
4121         Get the ccname from either ccname or just cc config var.
4123 2001-12-31 17:14  gregor
4125         * Parrot/Op.pm, lib/Parrot/Op.pm:
4126         Another intermediate opbody notation. Could come in handy. Explicit
4127         types.
4129 2001-12-31 17:05  dan
4131         * string.c: Minor warnings update
4133 2001-12-31 17:00  dan
4135         * include/parrot/string.h: Warnings cleanup
4137 2001-12-31 16:00  simon
4139         * encodings/utf8.c, include/parrot/encoding.h:
4140         Remove a couple more.
4142 2001-12-31 15:58  simon
4144         * vtable_h.pl, include/parrot/global_setup.h, include/parrot/jit.h,
4145         include/parrot/op.h:
4146         Rid ourselves of a few warnings.
4148 2001-12-31 15:32  dan
4150         * Configure.pl: Made GCC ever so much pickier.
4152         Switch list courtesy of Jarkko.
4154 2001-12-31 15:22  dan
4156         * string.c: Tightened up initial allocation.
4158         Courtesy of:  "Peter Gibbs" <peter@emkel.co.za>
4160 2001-12-31 06:48  dan
4162         * Configure.pl: Minor Windows tweak
4164 2001-12-31 05:32  dan
4166         * core.ops: Unused temp variable tossed.
4168         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4170 2001-12-31 05:09  grunblatt
4172         * Configure.pl, Makefile.in, interpreter.c: Link jit.o only on
4173         supported plataforms
4175 2001-12-31 03:05  dan
4177         * Configure.pl, Makefile.in, classes/Makefile.in: Added in a
4178         platform-independent quote substitution for the makefiles.
4179         Hopefully this'll make the Win32 builds happier.
4181 2001-12-30 21:08  dan
4183         * string.c, include/parrot/string.h: More string system tweaks.
4185         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4187 2001-12-30 20:45  dan
4189         * core.ops: Some pod cleanup
4191         Courtesy of Josh Wilmes <josh@hitchhiker.org>
4193 2001-12-30 20:22  ajgough
4195         * docs/parrot_assembly.pod: removed ntoi and iton ops from docs, as
4196         we aren't using them right now.  Clarified the workings of set Px,
4197         Py and clone Px, Py.
4199 2001-12-30 20:15  grunblatt
4201         * jit.c, jit2h.pl, jit/i386/core.jit: Removed the warnings in jit.c
4202         Added readjit() to read *.jit files Updated core.jit to the new
4203         set_n_i
4205 2001-12-30 20:14  ajgough
4207         * examples/assembly/mops.pasm: Changed iton/ntoi to set.
4209 2001-12-30 19:52  dan
4211         * packfile.c, pdump.c, register.c, string.c, include/parrot/key.h,
4212         include/parrot/trace.h, platforms/generic.c: Compiler whine
4213         cleanups
4215         Courtesy of Josh Wilmes <josh@hitchhiker.org>
4217 2001-12-30 19:13  dan
4219         * Configure.pl, Makefile.in: Make GCC pickier by default.
4221         Courtesy of: Josh Wilmes <josh@hitchhiker.org>
4223 2001-12-30 18:41  dan
4225         * core.ops, t/op/integer.t, t/op/number.t: Transformed iton and
4226         ntoi opcodes to sets.
4228         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4230 2001-12-30 17:58  gregor
4232         * Makefile.in:
4233         'make' no longer builds the mops test. Use 'make mops' for that. To
4234         run the test, you can do 'make mopstest'.
4236 2001-12-30 17:30  gregor
4238         * Makefile.in:
4239         Fixed one oversight. 'make clean' was removing Parrot/Types.pm. Bad
4240         Gregor.
4242 2001-12-30 17:26  gregor
4244         * .cvsignore, Configure.pl, Makefile.in, VERSION, config_h.in,
4245         core.ops, interpreter.c, make_vtable_ops.pl, obscure.ops, ops2c.pl,
4246         Parrot/BuildUtil.pm, Parrot/OpsFile.pm, lib/Parrot/BuildUtil.pm,
4247         lib/Parrot/OpsFile.pm, include/parrot/oplib.h:
4248         Build enhancements. Originally to support building shared
4249         libraries, but now of broader impact.
4251           * .cvsignore: Ignore the blib/ directory, about which more later.
4253           * Configure.pl:
4255               * Got rid of TAB formatting and lined a few things up.
4257               * Added header comment with CVS Id variable, and a few other
4258                 block header comments.
4260               * Uses new Parrot::BuildUtil module to determine the Parrot
4261                 version.
4263               * Reworded a few messages, added a couple, and wrapped
4264         messages
4265                 to 79 columns.
4267               * Added 2002 to the Copyright statement.
4269               * Added new configure variables: VERSION, MAJOR, MINOR and
4270         PATCH
4272               NOTE: Please see the 'Alas perl5.7.2' comment. 5.7.2 is
4273         greater
4274               than 5.6.0, but the comment implies it isn't.
4276           * Makefile.in:
4278               * Added $(SO), $(A) and $(AR_CRS) defines for library
4279         building.
4281               * Added $(RM_RF) define for removing directory trees
4283               * Grouped generated files into two classes: "sticky" (made by
4284         configure,
4285                 persisting across 'make clean') and 'fluid' (made during
4286         the build
4287                 process, deleted by 'make clean').
4289               * Added header comments.
4291               * Added target for test_prog linked with shared library.
4293               * Added rules to build shared libraries in blib/lib. The
4294         libraries are
4295                 built with trailing version numbers in their file names,
4296         and then
4297                 symbolic links are created for shorter and no version tag
4298         variants.
4300               * Added some missing dependencies
4302               * Added some missing 'make clean' targets.
4304               * Added 'make realclean' target that deletes files created by
4305                 Configure.pl (including Makefile), forcing a re-configure.
4307               * Added a 'status' CVS target.
4309           * VERSION: New file, contains only the version. This version
4310         number is
4311             propagated to a few places, such as the core oplib version
4312         number. This
4313             reduces the amount of coordination that has to happen to get
4314         version
4315             number stuff throughout the tree in sync and updated prior to
4316         cutting
4317             a new release. Feel free to grep for '0.0.3' to see the other
4318         files
4319             that contain the version number (but, do that in a fresh CVS
4320         copy, or
4321             after doing 'make realclean').
4323           * config_h.in: Renamed PARROT_CORE_OPLIB_*_VERSION to
4324         PARROT_*_VERSION,
4325             since the oplib and Parrot itself share a version number now.
4326         Added
4327             PARROT_PATCH_VERSION (the third component) and PARROT_VERSION
4328         (a
4329             string).
4331           * core.ops: Uses new notation "VERSION = PARROT_VERSION" instead
4332         of
4333             specifying the version by hand. Non-core oplibs will set this
4334         to
4335             a quoted dot-string with three natural number components
4336         without
4337             leading zeros.
4339           * interpreter.c: Make use of PARROT_VERSION to simplify some
4340         sprintf()s, and
4341             to get the complete version number in the resulting strings
4342         (including the
4343             new PATCH portion).
4345           * make_vtable_ops.pl: Put the "VERSION = PARROT_VERSION" line int
4346         the
4347             generated file.
4349           * obscure.ops: Use the new "VERSION = PARROT_VERSION" technique.
4351           * ops2c.pl: Account for the PATCH version, too. This affects the
4352         name of the
4353             oplib init function, and the oplib info struct initializer.
4355           * Parrot/BuildUtil.pm: New file for reading in and validating the
4356         contents of
4357             the new VERSION file. Other build utilities could go here in
4358         futuer.
4360           * Parrot/OpsFile.pm:
4362               * Allow three components in version number, and require that
4363         the value
4364                 be in double quotes.
4366               * Allow "VERSION = PARROT_VERSION", substituting the shared
4367         Parrot
4368                 VERSION in that case.
4370           * include/parrot/oplib.h: Add the patch_version member.
4372 2001-12-30 12:16  simon
4374         * MANIFEST, Makefile.in:
4375         More stuff forgotten from MANIFEST.
4377 2001-12-30 12:13  simon
4379         * MANIFEST:
4380         Missing JIT file.
4382 2001-12-30 12:12  simon
4384         * jit2h.pl:
4385         Safety first.
4387 2001-12-30 12:12  simon
4389         * Makefile.in:
4390         Gragh.
4392 2001-12-30 12:04  simon
4394         * Makefile.in, core.ops, packfile.c, pbc2c.pl, string.c,
4395         classes/perlstring.pmc, encodings/singlebyte.c, encodings/utf16.c,
4396         encodings/utf32.c, encodings/utf8.c, include/parrot/encoding.h,
4397         include/parrot/string.h, t/op/string.t:
4398         * Expand the strings test suite to be more complete * Make string
4399         commands more consistent (i.e, now the only string command that
4400         actually changes the original is chopn) * Significantly reduce the
4401         number of memory allocations and eliminate reallocations.
4403         Courtesy of: David Jacobs <jacobsl001@hawaii.rr.com>
4405 2001-12-29 22:12  dan
4407         * interpreter.c, key.c, register.c, stacks.c, string.c,
4408         test_main.c, trace.c: Updates to match the coding standards.
4410         Courtesy of Bryan C. Warnock <bwarnock@raba.com>
4412 2001-12-29 20:42  grunblatt
4414         * jit2h.pl, Parrot/Jit/i386-bsd.pm, Parrot/Jit/i386-linux.pm,
4415         Parrot/Jit/i386-nojit.pm, jit/i386/core.jit, jit/i386/lib.jit,
4416         jit/i386/string.jit, lib/Parrot/Jit/i386-bsd.pm,
4417         lib/Parrot/Jit/i386-linux.pm, lib/Parrot/Jit/i386-nojit.pm: Allow
4418         us to write asm in *.jit files instead of hex.  Courtesy of: Rafael
4419         Kitover <caelum@debian.org>
4421 2001-12-28 21:20  dan
4423         * core.ops: Okay, now print takes a preceding file handle.
4425         I feel so dirty now.
4427 2001-12-28 20:46  dan
4429         * core.ops, t/op/hacks.t: Added in the readline op, as well as
4430         changing the open op to use fopen under the hood.
4432         THESE OPS ARE EVIL! AND TEMPORARY! USE FOR DEBUGGING PURPOSES ONLY!
4434 2001-12-28 18:20  ajgough
4436         * core.ops, make_vtable_ops.pl, string.c, classes/default.pmc,
4437         classes/perlstring.pmc, docs/parrot_assembly.pod, docs/strings.pod,
4438         include/parrot/exceptions.h, include/parrot/string.h,
4439         t/op/pmc_perlstring.t, t/op/string.t, t/pmc/perlstring.t: Added
4440         repeat op, so that "foo" x 10 can be done.  Filled in PerlString
4441         vtables appropriately.  Also tests for same, new pmc_perlstring.t
4442         to hold tests specific to PerlStrings, as the pmc.t file is taking
4443         too long to run and slowing down my thought processes.
4445         Changes to strings.c etc to take string functions.
4447         Some changes to the strings docs, but not yet complete.
4449         Also, PerlString was copying pointers to strings, rather than
4450         strings themselves, so some action-at-a-distance bugs were creeping
4451         in, I think I've fixed this so everything works nicely.
4453 2001-12-28 04:56  gregor
4455         * examples/assembly/pmcmops.pasm:
4456         PMC-using version of mops.pasm.
4458         Courtesy of: Bryan C. Warnock <bwarnock@raba.com>
4460 2001-12-28 04:56  gregor
4462         * examples/assembly/.cvsignore:
4463         Small tinkering. Removed old stuff, etc.
4465 2001-12-28 01:26  gregor
4467         * examples/mops/mops.scheme:
4468         Scheme example. Major GC thrashing on umb-scheme here. Probably due
4469         to the very un-scheme-like implementation.
4471 2001-12-28 01:19  gregor
4473         * examples/mops/mops.c:
4474         Some people's picky compilers don't like us redefineing time(), so
4475         we call it time_n().  :)
4477 2001-12-28 00:28  gregor
4479         * examples/mops/: README, mops.ps:
4480         Added a PostScript example and a README.
4482 2001-12-27 23:57  gregor
4484         * Makefile.in:
4485         Build the C mops translation in examples/mops/mops.c
4487 2001-12-27 23:56  gregor
4489         * examples/mops/: .cvsignore, mops.c, mops.pl, mops.py, mops.rb:
4490         Some translations of mops.pasm into other languages, for inner loop
4491         performance comparisons.
4493 2001-12-27 22:40  gregor
4495         * examples/assembly/mops.pasm:
4496         Fixed erroneous file name in header comment.
4498 2001-12-27 21:18  gregor
4500         * pbc2c.pl:
4501         One-liner to avoid no-op gotos to the next op.
4503 2001-12-27 21:06  gregor
4505         * runops_cores.c:
4506         Fixed -p (profiling). Slow runops core was doing unconditional
4507         tracing, when it should have been checking the flags.
4509 2001-12-27 18:50  ajgough
4511         * core.ops, string.c, chartypes/unicode.c, chartypes/usascii.c,
4512         classes/perlstring.pmc, include/parrot/chartype.h,
4513         include/parrot/string.h, t/op/pmc.t, t/op/string.t, t/pmc/pmc.t:
4514         dded get_digit() to chartypes  * Added string_bool() to strings  *
4515         Added if_s_ic op, to use same  * Added (PerlString)->get_bool stuff
4516         to perlstring.pmc  * Tests for above, also a for couple of other
4517         ops without tests
4519         The unicode chartype has only had placeholders added for get_digit,
4520         string_to_num has been updated to use type->get_digit rather than
4521         the previous ascii-isms.  Some remain, but we need to carefully
4522         define what we mean by a number before we let thousands of code
4523         points act as a minus sign.
4525 2001-12-27 18:32  dan
4527         * classes/: perlint.pmc, perlnum.pmc, perlstring.pmc: Silenced some
4528         compiler warnings.
4530         Courtesy of "David  Jacobs" <jacobsl001@hawaii.rr.com>
4532 2001-12-27 18:23  dan
4534         * t/op/bitwise.t: More tests.
4536         Courtesy of "David Jacobs" <jacobsl001@hawaii.rr.com>
4538 2001-12-27 17:08  gregor
4540         * MANIFEST, Makefile.in, config_h.in, core.ops, interpreter.c,
4541         make_vtable_ops.pl, obscure.ops, ops2c.pl, ops2pm.pl, test_main.c,
4542         trace.c, Parrot/OpsFile.pm, include/parrot/interp_guts.h,
4543         include/parrot/interpreter.h, include/parrot/oplib.h,
4544         lib/Parrot/OpsFile.pm, platforms/generic.c, platforms/generic.h,
4545         platforms/win32.c, platforms/win32.h:
4546         Initial code for dynamic loading of oplibs, applied for now to the
4547         loading of the core_prederef oplib when the -P flag is passed to
4548         test_parrot.
4550           * MANIFEST: Added entry for the new file include/parrot/oplib.h.
4552           * Makefile.in:
4554               * Added libcore_prederef_0_3.so to the shared target.
4555               * Added build rule for libcore_prederef_0_3.so.
4556               * Added dependencies on Parrot/OpsFile.pm and Parrot/Op.pm
4557                 to Parrot/OpLib/core.pm, core_ops.c and
4558                 core_ops_prederef.c.
4560           * config_h.in: Added defines for constants used to locate the
4561             core oplib's init function, and the core_prederef oplib for
4562             dynaloading.
4564           * core.ops: Added a VERSION = 0.3 line near the top. This is now
4565             required by Parrot/OpsFile.pm.
4567           * interpreter.c:
4569               * Added init_prederef() and stop_prederef() functions to load
4570                 and unload the core_prederef oplib when we are in prederef
4571                 mode.
4573                 NOTE: In all likelihood, the prederef stuff has a rapidly
4574                 dwindling time-to-live. The JIT should provide vastly
4575         superior
4576                 performance, and loading an alternate set of core_ops isn't
4577                 the real direction for the dynaloading stuff. Loading
4578                 *additional* ops is. It does provide a handy test case for
4579         the
4580                 general idea for now, though.
4582               * Gets the core copcode table, etc. via the core oplibs oplib
4583                 info pointer, as returned by the core oplib's init
4584         function.
4586           * ops2c.pl
4588               * Make use of the version, major version and minor version
4589                 stuff parsed by Parrot/OpsFile.pm
4591               * The only exported symbol in the generated files is the init
4592                 function now, since that returns an oplib info struct
4593                 pointer, and all the important stuff can be found there.
4595           * ops2pm.pl: Put the oplib version in the generated .pm file.
4597           * test_main.c: Small changes necessitated by changes in the names
4598             of some members of the interpreter struct.
4600           * trace.c: Small changes necessitated by changes in the names
4601             of some members of the interpreter struct.
4603           * Parrot/OpsFile.pm: Require a "VERSION = x.y" line before any
4604             ops are found.
4606           * include/parrot/interp_guts.h: Small changes necessitated by
4607             changes in the names of some members of the interpreter struct.
4609           * include/parrot/interpreter.h: Include the new
4610             include/parrot/oplib.h header. Small changes to the oplib-
4611             related members.
4613           * include/parrot/oplib.h: Define the type of the oplib init
4614             function, and the struct type for the oplib info.
4616           * platforms/*.[hc]: Remove the second argument to Parrot_dlopen()
4617             since not all platforms have it. For those that do, a default
4618             second argument is provided.
4620 2001-12-26 05:12  gregor
4622         * Configure.pl:
4623         Make jitarch calculation not get tripped up by extra components to
4624         archname.
4626 2001-12-24 21:23  gregor
4628         * jit.c, jit2h.pl, Parrot/Jit/i386-bsd.pm,
4629         Parrot/Jit/i386-linux.pm, Parrot/Jit/i386-nojit.pm,
4630         include/parrot/jit.h, jit/i386/core.jit, jit/i386/lib.jit,
4631         jit/i386/string.jit, lib/Parrot/Jit/i386-bsd.pm,
4632         lib/Parrot/Jit/i386-linux.pm, lib/Parrot/Jit/i386-nojit.pm:
4633         Some more JIT work from Daniel Grunblatt.
4635           * Ops added set_s_s, set_s_sc, bsr_i and eq_s_sc but using calls
4636         to C
4637             functions.
4639           * Added JUMP(END) to place the number of bytes to the end of the
4640         current
4641             op.
4643           * The *.jit files syntax changed.
4645           * Added jit/i386/lib.jit to place handly functions as jump that
4646         take as
4647             argument the address where is the opcode number to jump to.
4649           * There is a bug at some point, but I will start writing
4650             jit/i386/string.jit and jit/i386/stacks.jit so that we don't
4651         have use
4652             calls, which make the jit as slow as the interpreter.
4654         Courtesy of: Daniel Grunblatt <daniel@grunblatt.com.ar>
4656 2001-12-24 03:46  dan
4658         * Parrot/OpTrans.pm, Parrot/OpTrans/C.pm, Parrot/OpTrans/CGoto.pm,
4659         Parrot/OpTrans/CPrederef.pm, lib/Parrot/OpTrans.pm,
4660         lib/Parrot/OpTrans/C.pm, lib/Parrot/OpTrans/CGoto.pm,
4661         lib/Parrot/OpTrans/CPrederef.pm: Commented out the use warnings.
4662         Perls before 5.6.0 don't like it.
4664 2001-12-22 16:02  ajgough
4666         * t/op/stacks.t: stopped skipping tests we can run now.  added
4667         clonep tests.
4669 2001-12-21 21:13  gregor
4671         * jit2h.pl, Parrot/Jit/i386-bsd.pm, Parrot/Jit/i386-linux.pm,
4672         Parrot/Jit/i386-nojit.pm, lib/Parrot/Jit/i386-bsd.pm,
4673         lib/Parrot/Jit/i386-linux.pm, lib/Parrot/Jit/i386-nojit.pm:
4674         Fixed some package name goofs.
4676         Thanks to: Andy Dougherty <doughera@mail.lafayette.edu>
4678 2001-12-21 19:32  gregor
4680         * MANIFEST, Makefile.in, core.ops, interpreter.c,
4681         make_vtable_ops.pl, obscure.ops, ops2c-prederef.pl, ops2c.pl,
4682         pbc2c.pl, stacks.c, Parrot/Op.pm, Parrot/OpTrans.pm,
4683         Parrot/Opcode.pm, Parrot/OpsFile.pm, lib/Parrot/Op.pm,
4684         lib/Parrot/OpTrans.pm, lib/Parrot/Opcode.pm, lib/Parrot/OpsFile.pm,
4685         Parrot/OpTrans/C.pm, Parrot/OpTrans/CGoto.pm,
4686         Parrot/OpTrans/CPrederef.pm, docs/intro.pod, include/parrot/op.h,
4687         include/parrot/stacks.h, lib/Parrot/OpTrans/C.pm,
4688         lib/Parrot/OpTrans/CGoto.pm, lib/Parrot/OpTrans/CPrederef.pm:
4689         Changes to syntax of .ops files and refactoring of ops2c*.pl and
4690         pbc2c.pl.
4692           * Removed ops2c-prederef.pl
4694           * (unrelated) Removed vestigial Parrot/Opcode.pm file.
4696           * Added Parrot/OpTrans.pm, Parrot/OpTrans/C.pm (needed for old
4697             functionality of ops2c.pl), Parrot/OpTrans/CPrederef.pm (needed
4698             for old functionality of ops2c-prederef.pl), and
4699             Parrot/OpTrans/CGoto.pm (needed for functionality of pbc2c.pl).
4701             "OpTrans" == "Op Transformation"
4703           * Makefile.in modifications to call "ops2c.pl C" where it used
4704             to be just "ops2c.pl", and "ops2c.pl CPrederef" where it used
4705             to be "ops2c-prederef.pl".
4707           * core.ops and obscure.ops changes to syntax. Semantics are
4708             identical with previous version:
4710               return HALT         -->  HALT()
4711               return AUTO         -->  goto NEXT()
4712               return RETREL(...)  -->  goto OFFSET(...)
4713               return RESTART(*)   -->  restart NEXT()
4715             Also, pop_generic_entry() stuff (local var + 5 lines of code)
4716             for dest-less branch ops replaced with new notation "goto
4717         POP()",
4718             which uses the new pop_dest() function in stacks.c. This also
4719             allowed these ops to become 'inline' ops, since they no longer
4720             have local variables.
4722             The 'ret' op also became simplified to just "goto POP()", and
4723             also became an inline op.
4725           * interpreter.c reflects the change in type name:
4727               prederef_op_func_t   -->  op_func_prederef_t
4729             that occurred in include/parrot/op.h
4731           * make_vtable_ops.pl uses "goto NEXT()" where it used to use
4732             "return AUTO".
4734           * ops2c.pl is now generic. Its first argument is the last
4735             package name component of a subclass of Parrot::OpTrans. These
4736             subclasses all have full names of the form Parrot::OpTrans::*.
4737             An instance of the class is created and later consulted for
4738             various bits of information needed to generate the C code.
4740           * pbc2c.pl now uses an instance of Parrot::OpTrans::CGoto to
4741             contain its transformation rules.
4743           * stacks.c has a new function pop_dest() that pops a destination
4744             off the control stack. include/parrot/stacks.h has the
4745         prototype.
4747           * Parrot/Op.pm now supports the syntax generated by
4748         Parrot::OpsFile
4749             for the "goto POP" case.
4751             Also, the source() method now expects its second argument to be
4752             an object that ISA Parrot::OpTrans. Methods of this object are
4753             called to perform the substitutions.
4755           * Parrot/OpsFile.pm supports the change in notation mentioned
4756             above.
4758           * docs/intro.pod reflects these changes.
4760           * include/parrot/op.h: Renamed type prederef_op_func_t to
4761             op_func_prederef_t because it made the implementation of the
4762             shared ops2c.pl easier.
4764 2001-12-21 13:47  gregor
4766         * Configure.pl, config_h.in, interpreter.c, test_main.c:
4767         Both test_parrot (via test_main.c) and the intepreter itself (via
4768         interpreter.c) use the JIT_CAPABLE config to decide whether to
4769         actually attempt JIT operation, or to complain.
4771 2001-12-20 23:25  gregor
4773         * core.ops, make_vtable_ops.pl, obscure.ops, Parrot/OpsFile.pm,
4774         lib/Parrot/OpsFile.pm, docs/intro.pod, include/parrot/op.h:
4775         Changes to the format of *.ops files. An attempt to provide hints
4776         for future opfunc processing logic that wants to know if an opfunc
4777         is simple enough to JIT (e.g.) inline, or not.
4779         See the POD in Parrot/OpsFile.pm and the updated docs/intro.pod in
4780         addition to The Source in core.ops and Parrot/OpsFile.pm for more
4781         info.
4783 2001-12-20 21:28  gregor
4785         * Configure.pl, jit.c, jit2h.pl, include/parrot/jit.h,
4786         jit/i386/core.jit:
4787         More JIT stuff:
4789           * A fix to Gregor's last Configure.pl update.
4791           * Remove the need for hardcoded "\n" at the end of the "%f"
4792             format for printing floating-point numbers.
4794           * New, improved *.jit syntax for references to registers,
4795             e.g. INT_REG[n].
4797           * Support for C() improved.
4799         Courtesy of: Daniel Grunblatt <daniel@grunblatt.com.ar>
4801 2001-12-20 16:55  dan
4803         * MANIFEST: Added jit.c to the manifest.
4805 2001-12-20 15:24  simon
4807         * jit2h.pl:
4808         Off-by-one error fixed.
4810 2001-12-20 14:18  simon
4812         * jit/i386/core.jit:
4813         Just a noop. It's the only machine code I know.
4815 2001-12-20 13:10  gregor
4817         * Configure.pl, Makefile.in, jit2h.pl:
4818         Attempt to fix Win32 builds.
4820           * No more empty braces in include/parrot/jit_struct.h
4822         Also:
4824           * ${jitarchname} has the *bsd -> bsd substitution on it, but
4825         ${archname}
4826             does not.
4828 2001-12-20 11:56  simon
4830         * Makefile.in:
4831         De-cp
4833 2001-12-20 01:57  gregor
4835         * Configure.pl, MANIFEST, Makefile.in, interpreter.c, jit.c,
4836         jit2h.pl, test_main.c, Parrot/.cvsignore, Parrot/Jit/i386-bsd.pm,
4837         Parrot/Jit/i386-linux.pm, Parrot/Jit/i386-nojit.pm, docs/jit.pod,
4838         include/parrot/.cvsignore, include/parrot/interpreter.h,
4839         include/parrot/jit.h, jit/i386/core.jit, jit/i386/string.jit,
4840         lib/Parrot/Jit/i386-bsd.pm, lib/Parrot/Jit/i386-linux.pm,
4841         lib/Parrot/Jit/i386-nojit.pm:
4842         Initial JIT implementation.
4844           * Enabled with test_parrot -j. 20x speed boosts seen.
4846           * Unsupported archs mapped to i386-nojit. Don't do -j on them.
4848           * More to come.
4850         Courtesy of: Daniel Grunblatt <daniel@grunblatt.com.ar>
4852 2001-12-20 01:53  jgoff
4854         * MANIFEST, core.ops, t/op/key.t: MANIFEST - Removed t/op/key.t
4855         core.ops - Removed key operators, they should be hidden from the
4856         assembler.  t/op/key.t - No need to test the nonexistent key
4857         operators.
4859 2001-12-20 00:13  ajgough
4861         * core.ops, t/op/stacks.t: Added tests for entrytype op, noticed
4862         that asking for type of entry at depth causes segfault as stack is
4863         zero based, fixed cmp in core.ops to reflect this.  Last test is
4864         skipped as we don't do exceptions right yet.
4866 2001-12-19 19:11  ajgough
4868         * t/op/debuginfo.t: Added C<end> ops to debuginfo.t, as thier
4869         non-being was causing Irix "issues".
4871 2001-12-19 03:37  jgoff
4873         * languages/miniperl/Miniperl/t/: 001_tokenizer.t, 003_generator.t,
4874         004_combined.t: Changed tests to make sure they pass with the
4875         addition of the clone operator.
4877 2001-12-18 20:06  gregor
4879         * interpreter.c, include/parrot/interp_guts.h:
4880         Performance improvements to the predereferencing code path
4881         suggested to me over lunch yesterday by my friend John Kennedy.
4882         The goal is to remove the additional test in the inner loop that
4883         was checking for NULL to decide whether or not to call the
4884         prederef() function. Also moved pc & pc_prederef syncing outside
4885         the inner loop.
4887           * Changed the prototype of the prederef() function in
4888             interpreter.c to match that of an opfunc.
4890           * Instead of initializing the prederef void * array with NULL,
4891             we initialize it with pointers to prederef().
4893           * prederef() now returns the prederef_pc passed in, so that
4894             after predereferencing, the same location is executed, but now
4895             with the real code being called.
4897         Thanks to: John Kennedy
4899 2001-12-18 19:59  ajgough
4901         * t/: op/pmc.t, pmc/pmc.t: Added some more num -> string tests
4902         (including some more in the skipped string -> int tests).
4904 2001-12-18 07:06  jgoff
4906         * MANIFEST: Forgot to add classes/perlarray.pmc
4908 2001-12-18 07:05  jgoff
4910         * Makefile.in, core.ops, global_setup.c, vtable.tbl,
4911         classes/Makefile.in, classes/default.pmc, classes/perlarray.pmc,
4912         classes/perlint.pmc, classes/perlnum.pmc, classes/perlstring.pmc,
4913         classes/perlundef.pmc, include/parrot/pmc.h, t/op/pmc.t,
4914         t/pmc/pmc.t: Big update...  Makefile.in - Added
4915         classes/perlarray.pmc core.ops - Added new series of set() ops for
4916         arrays global_setup.c - Initialized perlarray classes/Makefile.in -
4917         Added perlarray.pmc classes/*.pmc - Added
4918         set_{integer,number,string}_index and
4919         get_{integer,number,string}_index include/parrot/pmc.h - Added new
4920         type t/op/pmc.t - Added basic array test
4922         classes/perlarray.pmc - Added
4924 2001-12-17 05:29  jgoff
4926         * languages/miniperl/Miniperl/Generator.pm: Altered miniperl code
4927         generator to use clone operator instead of set Px,Py
4929 2001-12-17 05:25  jgoff
4931         * core.ops, classes/perlint.pmc, classes/perlnum.pmc,
4932         classes/perlstring.pmc, t/op/pmc.t, t/pmc/pmc.t: Added clone
4933         PMC,PMC operator. Uses the clone() vtable entries.
4935 2001-12-17 04:51  jgoff
4937         * MANIFEST: Added miniperl test suite, removed old Miniperl/Test.pm
4938         entry
4940 2001-12-17 04:41  jgoff
4942         * languages/miniperl/Miniperl/Makefile.PL: Now in its proper
4943         directory...
4945 2001-12-17 04:41  jgoff
4947         * languages/miniperl/Makefile.PL: Moved it to the proper directory.
4949 2001-12-17 04:39  jgoff
4951         * languages/miniperl/: Makefile.PL, Miniperl.pm, miniperlc, mpc,
4952         Miniperl/Tokenizer.pm: Makefile.PL to let us run the test suite in
4953         t/
4955 2001-12-17 04:27  jgoff
4957         * languages/miniperl/Miniperl.pm: Latest version of the driver.
4958         Admittedly it's a little thin on true OO, but the algorithms are
4959         the key.
4961 2001-12-17 04:24  jgoff
4963         * languages/miniperl/Miniperl/t/: 001_tokenizer.t, 002_parser.t,
4964         003_generator.t, 004_combined.t: Much more comprehensive test suite
4965         for the codegen et al
4967 2001-12-17 04:22  jgoff
4969         * languages/miniperl/Miniperl/: Generator.pm, Parser.pm,
4970         Tokenizer.pm: Newer codegen, tightened up parser output, added hash
4971         key handling
4973 2001-12-17 04:20  jgoff
4975         * languages/miniperl/Miniperl/Test.pm: The newer test suite is much
4976         more comprehensive.
4978 2001-12-17 04:17  jgoff
4980         * languages/miniperl/foo.mpl: Test file that'll be outdated by
4981         changes to the new compiler
4983 2001-12-17 04:11  jgoff
4985         * languages/miniperl/t/: harness, 001_basic/basic.t: Moving testing
4986         files to Miniperl/
4988 2001-12-16 14:11  simon
4990         * classes/perlint.pmc, examples/assembly/mops_p.pasm, t/op/pmc.t,
4991         t/pmc/pmc.t:
4992         Fix bogus assumption that multiplying an integer by an integer
4993         yields an integer.
4995 2001-12-16 12:48  simon
4997         * make_vtable_ops.pl:
4998         Fixed op exploder.
5000 2001-12-16 12:45  simon
5002         * make_vtable_ops.pl, Parrot/Vtable.pm, lib/Parrot/Vtable.pm:
5003         Expand multimethod vtable ops.
5005 2001-12-16 12:04  simon
5007         * Makefile.in:
5008         Added 'cvsclean' which doesn't zap CVS/* directories.
5010 2001-12-15 01:50  dan
5012         * include/parrot/string.h: Fixed typo in string.h. lagnuage,
5013         indeed!
5015         Thanks to grunblatt fom #parrot for the catch
5017 2001-12-15 01:39  dan
5019         * .cvsignore, Configure.pl, MANIFEST, languages/jako/Makefile.in,
5020         languages/miniperl/.cvsignore, languages/miniperl/Makefile,
5021         languages/miniperl/Makefile.in,
5022         languages/miniperl/Miniperl/Test.pm, languages/scheme/.cvsignore,
5023         languages/scheme/Makefile, languages/scheme/Makefile.in: Build
5024         tweaks.
5026         Courtesy of: Jay McCarthy <jay@kenyamountain.com>
5028 2001-12-14 17:39  dan
5030         * t/op/trans.t: More trans tests.
5032         Courtesy of: Simon Glover <scog@roe.ac.uk>
5034 2001-12-14 07:41  robert
5036         * make.pl: - define MAKE macro - topological sort and subgraph
5037         order - start of timestamp stuff   (still badly broken)
5039 2001-12-14 06:06  jgoff
5041         * optimizer.pl: Hopefully this should do the trick..
5043 2001-12-14 06:04  jgoff
5045         * Parrot/Optimizer.pm, lib/Parrot/Optimizer.pm: Optimizer
5047           optimizer.pl is the stub, Parrot/Optimizer.pm is the driver.
5049           The optimizer performs its work on a file post-macro expansion.
5050           Run it on a .pasm file, preferably with some trivially reducible
5051         operations
5052           like 'add I0,5,-6' or 'mul I0,I1,0'
5054 2001-12-14 05:48  robert
5056         * Makefile.in: case error EXE -> exe
5058 2001-12-14 05:42  robert
5060         * Makefile.in: remove legacy PDISASM macro
5062 2001-12-14 04:01  dan
5064         * classes/Makefile.in, languages/Makefile.in: Makefile tweaks for
5065         better Win building
5067         Courtesy of: Garrett Goebel <garrett@scriptpro.com>
5069 2001-12-13 22:03  dan
5071         * Configure.pl, Makefile.in, Parrot/Test.pm,
5072         languages/scheme/Makefile, languages/scheme/Scheme/Test.pm,
5073         lib/Parrot/Test.pm: Parrot test prog's now a config variable, so we
5074         can change it without having to change the world.
5076 2001-12-13 21:57  dan
5078         * core.ops, interpreter.c, docs/parrot_assembly.pod,
5079         include/parrot/interpreter.h, t/op/debuginfo.t: Added current
5080         file/line/package to interp structure, with ops to get and set
5081         them. Now we can know where we are!
5083 2001-12-13 19:43  dan
5085         * Configure.pl, Makefile.in: Makefile tweaks to hopefully make
5086         WinXP builds work out of the box
5088 2001-12-13 17:05  dan
5090         * Makefile.in, Parrot/Test.pm, lib/Parrot/Test.pm: Change test prog
5091         name again--makes case-insensitive systems much happier.
5093 2001-12-13 16:21  dan
5095         * core.ops, key.c, string.c, test_main.c, trace.c,
5096         classes/Makefile.in, include/parrot/trace.h: Fixes to clean up
5097         compiler warnings
5099         Courtesy of: Josh Wilmes <josh@sky.net>
5101 2001-12-13 13:33  gregor
5103         * languages/jako/Makefile.in:
5104         Improved the method of calling the assembler.
5106 2001-12-13 13:30  gregor
5108         * languages/jako/Makefile.in:
5109         Improve the build process. It now works from the main parrot dir,
5110         and from the languages/jako directory. Now uses the .SUFFIXES
5111         target and generic build rules to reduce clutter in the
5112         Makefile.in.
5114 2001-12-13 13:29  gregor
5116         * languages/jako/.cvsignore:
5117         Ignore the (now generated Makefile), and don't ignore .list files
5118         anymore, since we aren't generating them.
5120 2001-12-13 13:11  gregor
5122         * Configure.pl, MANIFEST, Makefile.in, languages/.cvsignore,
5123         languages/Makefile.in, languages/jako/Makefile,
5124         languages/jako/Makefile.in:
5125         Added a 'languages' target to the top-level Makefile.in, and
5126         modified the jako build procedure to involve Makefile.in -->
5127         Makefile too (done by Configure.pl).
5129         NOTE: languages/jako and language/scheme are built.
5130         languages/miniperl wasn't building right, so it was left off for
5131         now.
5133 2001-12-13 12:15  gregor
5135         * MANIFEST:
5136         Added MAINTAINER file and mandelzoom.jako from languages/jako to
5137         the MANIFEST.
5139 2001-12-13 12:12  gregor
5141         * .cvsignore, MANIFEST, Makefile.in, core.ops, interpreter.c,
5142         ops2c-prederef.pl, ops2c.pl, test_main.c,
5143         include/parrot/interp_guts.h, include/parrot/interpreter.h,
5144         include/parrot/op.h, include/parrot/oplib/.cvsignore:
5145         Welcome to the Just-in-Time Predereferencing Patch!
5147         This patch implements a "predereferencing" mode for parrot. That
5148         means that a lot of the dereferencing you see in DO_OP and in the
5149         opfuncs is done up front (really, JIT) rather than as and each time
5150         we execute each op in the byte code stream.
5152         This works by creating an array of void pointers with the same
5153         number of elements as the byte code array. This array starts out
5154         life zero-initialized.  Each time we go to execute an op, we check
5155         first to see if we have a NULL pointer at *cur_opcode. If so, we
5156         know we haven't done our predereferencing yet (this is the JIT
5157         part), so we call the prederef() function with sufficient args that
5158         it can go look up opfunc pointers and op arg types and put the
5159         opfunc and arg pointers at cur_opcode[0] .. cur_opcode[N - 1],
5160         where N is the number of args (counting the op itself as one arg).
5162         We assume that sizeof(INTVAL) <= sizeof(void *), so we can continue
5163         to have inline INTVAL constants.
5165         I've been getting about a 22% speed increase over vanilla code path
5166         when I compile with -O0. Advantage decreases at -O9 here. I tested
5167         with mops.pbc, and also by temporarily putting the -P flag in
5168         Parrot/Test.pm and running all the tests. So, this code is as
5169         correct as the test suite can detect.
5171         Here's how it plays out in the code:
5173           * New script ops2c-prederef.pl
5175             Copy-paste code reuse from ops2c.pl. Modified to expect the
5176         args to give
5177             a void ** cur_opcode and to return a void **.
5179           * Modified ops2c.pl
5181               * opfuncs are now static. Who needs to call them by name from
5182         outside,
5183                 anyway? They are accessed via the opfunc table.
5185               * Some MACRO stuff to make things work whether we prederef or
5186         not. It
5187                 may be possible to get rid of these some day if other folks
5188         agree
5189                 that we should be using CODE object pointers + offsets as
5190         our PC
5191                 rather than raw pointers to either opcode_t's or (void *)'s
5192                 (depending on prederef mode or no).
5194           * core.ops modified to be usable to build both kinds of opfuncs.
5195         For now,
5196             this means:
5198               * calls to push_generic_entry(... cur_opcode ...) were
5199         changed to
5200                 push_generic_entry(... CUR_OPCODE ...), where CUR_OPCODE is
5201         a
5202                 macro that does the right thing in both kinds of ops.c
5203         files.
5205                 This is applicable to the bsr op. If we treated
5206         destinations as
5207                 (Code PMC + local offset) rather than as
5208         pointer-to-memory-somewhere,
5209                 this wouldn't be a big deal. We may need to do that at some
5210         point
5211                 anyway, so that when you jump around and return not only do
5212         you have
5213                 the right PC (pointer, today), but you also have the
5214         thread/interpreter
5215                 knowing what chunk of bytecode it is in at all times
5216         (assuming we'll
5217                 allow reflection, as in ops that query or affect the
5218         current CODE PMC).
5220               * runinterp was modified. Instead of copying the top-level
5221         PackFile struct
5222                 and blasting its byte_code pointer, we simply call runops
5223         on the new
5224                 interp, passing in the pointer to the current interp's code
5225         and the
5226                 offset into that code at which to start (this last arg used
5227         to be a
5228                 pointer PC, now its an offset PC).
5230           * include/parrot/op.h
5232               * new typedef for prederef opfuncs (they return void **)
5234           * include/parrot/interp_guts.h
5236               * New DO_OP_PREDEREF() macro described above.
5238           * include/parrot/interpreter.h
5240               * New prototype of runops() -- see below.
5242               * resume_addr field changed to resume_flag and resume_offset
5243         pair of fields.
5244                 We might be resuming from interp using prederef to one not
5245         or vice-versa,
5246                 so pointers between the two don't play nice together.
5247         Offsets are beautiful.
5249               * New PARROT_PREDEREF_FLAG constant
5251           * interpreter.c
5253               * include "parrot/oplib/core_ops_prederef.h"
5255               * prederef() function described above.
5257               * runops_prederef() runops variant. Uses DO_OP_PREDEREF()
5258         macro as its core.
5260               * runops() modified to take size_t CODE-relative offset PC
5261         rather than
5262                 pointer PC. This made other things workable and doesn't
5263         seem to have lost
5264                 anything important (IMO).
5266           * test_main.c
5268               * New flag '-P' to enable predereferencing.
5270           * Makefile modified to build core_ops_prederef.c from core.ops
5271         via
5272             ops2c-prederef.pl.
5274             BTW, also added missing $(INC)/interp_guts.h to H_FILES.
5276             Added core_ops_prederef$(O) to O_FILES
5278 2001-12-13 12:12  gregor
5280         * languages/jako/MAINTAINER:
5281         Thought it would be nice to put this right in the code...
5283 2001-12-13 04:36  jgoff
5285         * languages/miniperl/Miniperl/Generator.pm: Commented out
5286         debugging, fixed register spillover algorithm
5288 2001-12-13 04:23  jgoff
5290         * make.pl: Found and fixed obob in the parser (Wasn't parsing last
5291         line) Restructured a bit of the dependency generator to fix a
5292         different obob bug.
5294 2001-12-13 03:43  robert
5296         * MANIFEST, docs/opcodes.pod: remove old docs/opcodes.pod
5298 2001-12-13 03:03  jgoff
5300         * make.pl: Added make.pl
5302 2001-12-13 02:44  jgoff
5304         * languages/miniperl/Miniperl.pm: Nearly-complete 'make'
5305         replacement in perl.  Non-compliant bits - Takes absolutely -NO-
5306         special flags...                     - Dies on undefined macros
5307         such as $(PDISASM) in current make                     - Dies on
5308         recursive macro expansions                       (Doesn't test for
5309         mutual or multipart loops)                     - In general it
5310         seems to be a little less lenient...  Missing bits - File
5311         mod/creation times aren't being looked at              - Actions
5312         aren't being taken              - The few funky variables ($@, $<)
5313         aren't being dealt with Bugs - Line numbers are slipping a bit.
5315 2001-12-13 02:29  jgoff
5317         * languages/miniperl/Miniperl/: Generator.pm, Parser.pm:
5318         Reconstructing files to make the parser flow a little better.
5320 2001-12-13 00:51  dan
5322         * resources.c: Be a bit less wasteful with resources that don't
5323         need to be aligned
5325 2001-12-12 18:22  dan
5327         * Makefile.in: D'oh! Fixed looping makefile bug.
5329         Courtesy of: "Jaen Saul" <jaen@saul.ee>
5331 2001-12-12 16:23  jgoff
5333         * languages/miniperl/t/001_basic/basic1.scheme: Bogus entry
5335 2001-12-12 16:22  jgoff
5337         * MANIFEST: Manifest additions for languages/miniperl
5339 2001-12-12 16:19  jgoff
5341         * languages/miniperl/t/001_basic/: basic.t, basic1.scheme: Basic
5342         tests. These are left over from the Scheme suite and shouldn't be
5343         used yet.
5345 2001-12-12 16:18  jgoff
5347         * languages/miniperl/: Miniperl/Generator.pm, Miniperl/Parser.pm,
5348         Miniperl/Test.pm, Miniperl/Tokenizer.pm, t/harness: Miniperl base
5349         modules. Miniperl/ is where the real work gets done.  t/ is largely
5350         vacant because it isn't ready to survive real tests yet.
5352 2001-12-12 16:17  jgoff
5354         * languages/miniperl/: Makefile, Miniperl.pm, foo.mpl, miniperlc,
5355         mpc: Final go-round, hopefully.
5357         languages/miniperl/Makefile - Used basically to run tests, as there
5358         is nothing                               here that needs to be
5359         dynamically built.  languages/miniperl/Miniperl.pm - Stub module
5360         that calls the real Miniperl/ mods languages/miniperl/foo.mpl -
5361         Sample miniperl file.  languages/miniperl/miniperlc - Miniperl
5362         compiler stub
5364 2001-12-12 16:09  dan
5366         * Configure.pl: Setting a variable with the make command name is
5367         useful.
5369 2001-12-12 15:07  simon
5371         * Makefile.in, languages/jako/Makefile, languages/scheme/Makefile:
5372         Recursive make considered "ow, don't do that".
5374 2001-12-12 14:45  dan
5376         * Makefile.in: Makefile had some non-portable code. (Okay, a lot of
5377         non-portable code) Killing builds on Win32 native. Small patch
5378         applied which hopefully fixes it.
5380 2001-12-12 06:12  ajgough
5382         * classes/Makefile.in: perl is $(PERL), you know it makes sense.
5384 2001-12-12 06:08  ajgough
5386         * Makefile.in: perl is $(PERL).
5388 2001-12-12 06:00  ajgough
5390         * t/op/integer.t: Added tests to integer.t so that all permutations
5391         of arguments are actually called at some point.
5393 2001-12-12 05:18  ajgough
5395         * t/op/time.t: I can't sleep, but I don't see why parrot shouldn't.
5396          Tests for sleep i|ic
5398 2001-12-12 05:09  ajgough
5400         * t/op/stacks.t: Added pushp and popp register stack tests.
5402 2001-12-12 04:51  ajgough
5404         * t/op/stacks.t: Added tests for save and restore, for all register
5405         types.  Let there be Haiku.
5407 2001-12-12 04:27  ajgough
5409         * t/op/basic.t: bsr_i test.  You know you want it.
5411 2001-12-12 02:55  ajgough
5413         * MANIFEST: Added hints/os2.pl to MANIFEST.
5415 2001-12-12 02:52  jgoff
5417         * core.ops, key.c: Final checkin... These are actually the correct
5418         copies.
5420 2001-12-12 02:12  jgoff
5422         * include/parrot/key.h: key.c - Removed a few functions,
5423         generalized set_element_value and element_value         to accept
5424         KEY_PAIRs from core.ops include/parrot/key.h - Modified header.
5425         core.ops - Modified to accept the new return style.
5427         This is a prelude to adding virtual-table methods to allow hashing
5428         &c. Expect at least one or two more redesigns before this settles
5429         down. However, it still passes the original tests.
5431 2001-12-11 13:35  gregor
5433         * runops_cores.c:
5434         Fixed a typo.
5436 2001-12-11 12:03  gregor
5438         * .cvsignore:
5439         Don't ignore test_prog, but do ignore parrot.
5441 2001-12-11 12:03  gregor
5443         * classes/.cvsignore:
5444         Ignore the generated file default.h
5446 2001-12-11 04:07  jgoff
5448         * key.c: Key source
5450 2001-12-11 04:05  jgoff
5452         * include/parrot/key.h, t/op/key.t: Needed header file, new test
5454 2001-12-11 04:00  jgoff
5456         * core.ops: Added new key aggregate operations to core ops.
5458 2001-12-11 04:00  jgoff
5460         * include/parrot/parrot.h: Added key.h to header list
5462 2001-12-11 03:59  jgoff
5464         * MANIFEST: Added key.c, include/parrot/key.h, t/op/key.t
5466 2001-12-11 03:58  jgoff
5468         * Makefile.in: Added implementation of key aggregates.
5470 2001-12-08 23:07  simon
5472         * README:
5473         README good to go.
5475 2001-12-08 23:05  simon
5477         * Configure.pl, Makefile.in, README, Parrot/Test.pm,
5478         docs/intro.pod, languages/jako/Makefile, languages/scheme/Makefile,
5479         languages/scheme/Scheme/Test.pm, lib/Parrot/Test.pm:
5480         test_prog? What is test_prog?
5482 2001-12-08 22:57  simon
5484         * ChangeLog:
5486         Oops, the changelog commit was on *this* machine.
5488 2001-12-08 22:56  simon
5490         * NEWS:
5491         Updates to NEWS and ChangeLog pre-release.
5493 2001-12-08 22:07  simon
5495         * MANIFEST, Makefile.in, classes/Makefile.in, classes/default.pmc,
5496         classes/perlnum.pmc, classes/pmc2c.pl:
5497         Add "default" PMC vtable so you can inherit implied stuff.
5499 2001-12-08 21:24  simon
5501         * Parrot/PackFile.pm, docs/parrot.pod, docs/parrotbyte.pod,
5502         docs/vtables.pod, lib/Parrot/PackFile.pm:
5503         Getting the documentation up to scratch.
5505 2001-12-08 21:21  simon
5507         * classes/pmc2c.pl:
5508         Allow inheriting from default class.
5510 2001-12-07 20:43  gregor
5512         * examples/assembly/queens.pasm:
5513         Regenerated the file with the latest jakoc.
5515 2001-12-07 20:29  simon
5517         * core.ops, t/op/stacks.t:
5518         Rename "rotate" to "rotate_up".
5520 2001-12-07 20:15  simon
5522         * t/op/stacks.t:
5523         Some tests for rotate.
5525 2001-12-07 00:55  gregor
5527         * core.ops:
5528         Cast the result of the pointer arithmetic, since without the cast
5529         there are warnings with some compilers, and without the parens
5530         around the pointer arithmetic, precedence breaks the meaning and
5531         causes crashes.
5533 2001-12-06 23:37  simon
5535         * core.ops:
5536         Temporary. I prefer compiler warnings to segfaults, thanks.
5538 2001-12-06 23:34  simon
5540         * runops_cores.c:
5541         Make "trace" work again.
5543 2001-12-06 21:23  dan
5545         * Parrot/Test.pm, lib/Parrot/Test.pm: Undo twiddles to test.pm
5547 2001-12-06 21:22  dan
5549         * core.ops, packfile.c, Parrot/Test.pm, include/parrot/stacks.h,
5550         lib/Parrot/Test.pm: Fix up source issues that made Dec C unhappy
5552 2001-12-06 19:22  simon
5554         * core.ops:
5555         Yet another "How the *%$! did that compile?" moment.
5557 2001-12-06 18:28  dan
5559         * hints/vms.pl: Fix to build, with a HERE logical required
5561 2001-12-06 17:48  dan
5563         * core.ops, interpreter.c, pbc2c.pl, pdump.c, test_main.c,
5564         docs/parrot_assembly.pod, include/parrot/interpreter.h: Sensible
5565         changes to the interpreter--flags are now part of the interp
5566         structure.
5568         Courtesy of "Melvin Smith" <mrjoltcola@mindspring.com>
5570 2001-12-06 14:02  gregor
5572         * docs/intro.pod:
5573         s/little_languages/languages/ in Jako section.
5575 2001-12-06 13:15  simon
5577         * Makefile.in:
5578         Ensure the documentation gets made.
5580 2001-12-06 13:12  simon
5582         * MANIFEST, docs/intro.pod:
5583         Documentation! Added the "Some Assembly Required" article with
5584         minor updates.
5586 2001-12-06 00:39  simon
5588         * core.ops:
5589         More "eq" support.
5591         Courtesy of: Nguon Hao Ching <hao@netaxs.com>
5593 2001-12-06 00:37  simon
5595         * test_main.c:
5596         Add the "-d" debug flag. Doesn't actually *do* anything yet.
5598         Courtesy of: Melvin <mrjoltcola@mindspring.com>
5600 2001-12-06 00:11  tom
5602         * string.c, chartypes/unicode.c, chartypes/usascii.c,
5603         encodings/singlebyte.c, encodings/utf16.c, encodings/utf8.c,
5604         include/parrot/chartype.h, include/parrot/encoding.h,
5605         include/parrot/parrot.h: Moved string to number conversion code out
5606         of the encoding layer and into the main string layer as neither the
5607         encoding layer nor the character type layer knows enough on it's
5608         own to do the conversion correctly.
5610 2001-12-05 23:12  tom
5612         * Makefile.in: Rebuild the classes directory if any of the object
5613         files for the classes are missing rather than only when perlint.o
5614         is missing.
5616 2001-12-05 19:43  gregor
5618         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm:
5619           * Reworked the constantize_string() stuff a little bit because it
5620         was
5621             puking on things like "\033[H\033[2J\0" (which occurs in the
5622             languages/jako/mandelzoom.jako example).
5624 2001-12-05 19:39  gregor
5626         * languages/jako/: Makefile, mandelzoom.jako:
5627         Added 'mandelzoom' example.
5629 2001-12-05 19:38  gregor
5631         * languages/jako/jakoc:
5632           * Added sleep()
5634           * Changed some instances of die() to confess()
5636 2001-12-05 18:34  gregor
5638         * t/: op/pmc.t, pmc/pmc.t:
5639         s/sting->int/string->int/
5641 2001-12-05 18:08  gregor
5643         * Parrot/.cvsignore:
5644         Ignore PMC.pm
5646 2001-12-05 18:05  gregor
5648         * classes/.cvsignore:
5649         Ignore the generated files.
5651 2001-12-05 17:19  gregor
5653         * pbc2c.pl:
5654           * Reverted recent changes, since they broke the script. Real fix
5655         coming
5656             later.
5658 2001-12-05 17:03  simon
5660         * classes/Makefile.in:
5661         Remember: change Makefile.in, not Makefile. D'oh.
5663 2001-12-05 17:02  simon
5665         * Makefile.in:
5666         Ensure PMC.pm gets remade.
5668 2001-12-05 16:58  simon
5670         * MANIFEST, Makefile.in, classes/Makefile.in,
5671         classes/perlundef.pmc, include/parrot/pmc.h:
5672         Add perlundef class.
5674 2001-12-05 16:45  simon
5676         * core.ops:
5677         Document "new P0, foo"
5679 2001-12-05 16:43  simon
5681         * MANIFEST, Makefile.in, pbc2c.pl, pmc_pm.pl, Parrot/Assembler.pm,
5682         lib/Parrot/Assembler.pm, t/op/pmc.t, t/pmc/pmc.t:
5683         Allow assembler to know about PMC class names.
5685 2001-12-04 13:39  ajgough
5687         * MANIFEST: Added t/op/pmc.t to MANIFEST.
5689 2001-12-04 05:02  ajgough
5691         * classes/perlnum.pmc: Picky compiler pointed out probable thinko
5692         in perlnum.c
5694 2001-12-04 04:24  ajgough
5696         * encodings/singlebyte.c, t/op/pmc.t, t/pmc/pmc.t: A much less
5697         broken form of strtod and appropriate tests.  Does not yet check
5698         for overflow.
5700 2001-12-04 01:31  ajgough
5702         * string.c, encodings/singlebyte.c, encodings/utf16.c,
5703         encodings/utf8.c, include/parrot/encoding.h: Added length parameter
5704         to extract_num and extract_int string vtables, without this it
5705         would be impossible to have strings with nulls in while still
5706         knowing where they ended.
5708 2001-12-03 18:40  ajgough
5710         * string.c, classes/perlstring.pmc, encodings/singlebyte.c,
5711         encodings/utf16.c, encodings/utf8.c, include/parrot/encoding.h,
5712         include/parrot/string.h: Moved pmc string to number conversion into
5713         the string encoding tables.
5715 2001-12-03 00:21  ajgough
5717         * core.ops, t/op/pmc.t, t/pmc/pmc.t: Added set i, p and some tests
5718         for p-> integer.
5720 2001-12-02 23:09  jgoff
5722         * classes/Makefile.in: Removed some redundant targets.
5724 2001-12-02 19:02  ajgough
5726         * t/: op/pmc.t, pmc/pmc.t: Modified all pmc tests to make use of fp
5727         equality macro rather than using perl to generate expected output,
5728         all tests now have <<OUTPUT.
5730 2001-12-02 17:44  ajgough
5732         * t/op/trans.t: Upgraded fp_eq and fp_ne macros to be more useful
5733         for pmc.t as well.  Will probably move macros into another file at
5734         some point, although this might be best left until the tests are
5735         unperled.
5737 2001-12-02 06:16  jgoff
5739         * classes/pmc2c.pl: It wasn't properly setting the vtable index
5740         within Parrot_Perl{Class}_init.
5742 2001-12-02 06:09  jgoff
5744         * classes/Makefile.in: I seem to have removed *$(O) twice..
5746 2001-12-02 05:06  jgoff
5748         * Configure.pl, MANIFEST, Makefile.in: (Hopefully the last time...)
5749         Configure.pl - Removed '-I./include', added classes/Makefile
5750         generation MANIFEST     - Added classes/Makefile.in Makefile.in  -
5751         Removed old classes/* make stuff                Added target for
5752         classes/Makefile
5754 2001-12-02 04:48  jgoff
5756         * classes/Makefile.in: Going to be used shortly...
5758 2001-12-02 04:40  jgoff
5760         * docs/Makefile: Configure.pl - Added automatic makefile creation
5761         for docs/ and classes/                Removed '-I./include' because
5762         it was getting incorrectly                passed to classes/
5763         MANIFEST - added docs/Makefile.in, classes/Makefile.in Makefile.in
5764         - Removed classes/ build stuff, replaced with classes/Makefile.in
5765                     Added '-I./include' locally docs/Makefile - Should no
5766         longer be used, but I'm not brave enough to do a
5767         cvs delete.
5769 2001-12-02 01:21  ajgough
5771         * t/op/trans.t: Refactored trans math tests to have hard coded
5772         expected return values and be more ready to be unperled at some
5773         point in the future.  Added $fp_equality_macro which is a
5774         "nearly-equal-to" function.
5776 2001-12-02 01:18  ajgough
5778         * Makefile.in: Humph.  People really ought to use Makefile
5779         variables, s/perl/$(PERL)/ throughout.
5781 2001-12-01 18:15  jgoff
5783         * classes/: perlint.pmc, perlnum.pmc: Temporary patch until we
5784         figure out what to do vis-a-vis the lack of snprintf.
5786 2001-11-30 13:14  ajgough
5788         * t/op/: integer.t, number.t: Added tests for abs ops to number.t
5789         and integer.t
5791 2001-11-30 13:14  ajgough
5793         * core.ops: Added abs(i|n, i|ic|n|nc) ops to core.ops, using if <0
5794         -, else ... form.
5796 2001-11-30 10:36  simon
5798         * core.ops:
5799         Rewrite print_p to do the right thing.
5801 2001-11-30 06:21  jgoff
5803         * t/: op/pmc.t, pmc/pmc.t: New tests for integer/number/string
5804         concat,               integer/number/string math
5806 2001-11-30 06:20  jgoff
5808         * classes/: perlint.pmc, perlnum.pmc, perlstring.pmc:
5809         classes/perlint.pmc - Fixes and expanding for concat and math with
5810         strings classes/perlnum.pmc - Fixes and expanding for concat and
5811         math with strings classes/perlstring.pmc - Fixes and expanding for
5812         concat and math with strings
5814 2001-11-29 15:21  ajgough
5816         * hints/os2.pl: This is a hints file for os/2, I've set $c{perl} as
5817         $^X lies, which confused bash which make uses to run things when
5818         doing its stuff.
5820 2001-11-29 04:58  jgoff
5822         * classes/perlstring.pmc: Removed C++-style comments for good
5823         measure
5825 2001-11-29 04:51  jgoff
5827         * t/: op/pmc.t, pmc/pmc.t: New tests for PMC integers
5829 2001-11-29 04:28  jgoff
5831         * global_setup.c: Initialize PMC strings
5833 2001-11-29 04:25  jgoff
5835         * core.ops: Added set_p_s and set_p_sc, modified print_p to handle
5836         string PMCs.
5838 2001-11-29 04:24  jgoff
5840         * classes/: perlint.pmc, perlnum.pmc, perlstring.pmc: Changed PMC
5841         files to properly upgrade int to num, do calculations.  Also added
5842         basic string operations. Currently errors out on anything but set
5843         operations, but this will be fixed soon.
5845 2001-11-29 04:22  jgoff
5847         * Makefile.in: PMC .c files weren't getting cleaned out.
5849 2001-11-28 17:00  simon
5851         * t/harness:
5853         Make csh-glob happy.
5855         Courtesy of: Andy Dougherty: <doughera@lafayette.edu>
5857 2001-11-28 16:40  simon
5859         * classes/perlnum.pmc:
5861         De-C++
5863 2001-11-28 15:22  simon
5865         * string.c:
5867         Fixes Alex's string concat worry.
5869 2001-11-28 14:27  ajgough
5871         * t/op/string.t: test "null onto null" incorrectly passing as it
5872         produced no output.  Output provided.
5874 2001-11-28 11:14  simon
5876         * include/parrot/pmc.h:
5878         Placate AIX.
5880 2001-11-26 21:03  dan
5882         * MANIFEST, hints/darwin.pl: Tweaks to build on Mac OS X 10.1
5884 2001-11-26 17:29  simon
5886         * classes/perlint.pmc:
5888         Various subtle but non-showstopper bugs.
5890 2001-11-26 11:23  simon
5892         * classes/pmc2c.pl:
5894         Replace dependency on Text::Balanced
5896         Courtesy of: Bart Lateur <bart.lateur@pandora.be>
5898 2001-11-26 05:22  jgoff
5900         * global_setup.c: Last file that should need to be committed. I
5901         swear.
5903 2001-11-26 05:09  jgoff
5905         * core.ops: Let's try this again... Changes to core.ops required
5907 2001-11-26 04:58  jgoff
5909         * classes/perlint.pmc, classes/perlnum.pmc, t/op/pmc.t,
5910         t/pmc/pmc.t: Makefile.in - Added missing cleanup line for perl*.c
5911         core.ops - Added set(p,n|nc), modified print(p) global_setup.c -
5912         Uncommented PerlNum_init classes/perlint.pmc - Added set_number
5913         functions classes/perlnum.pmc - Set up basic number functions
5914         t/op/pmc.t - Added tests for set P0.<number> and {add,mul,sub,div}
5915         tests against numbers and numbers+integers
5917 2001-11-25 13:18  simon
5919         * Makefile.in:
5920         Windows XP make doesn't like $<
5922 2001-11-25 12:56  simon
5924         * MANIFEST, Makefile.in, classes/genclass.pl, classes/perlint.c,
5925         classes/perlint.pmc, classes/perlnum.c, classes/perlnum.pmc,
5926         classes/perlstring.c, classes/perlstring.pmc, classes/pmc2c.pl,
5927         examples/assembly/mops_p.pasm:
5928         PMC preprocessor.
5930         Courtesy of: Angel Faus <afaus@corp.vlex.com>
5932         I (Simon) also added a couple more integer methods, but no tests
5933         since I'm a Bad Person.
5935 2001-11-25 08:40  brentdax
5937         * ops2c.pl, Parrot/Op.pm, Parrot/OpsFile.pm, lib/Parrot/Op.pm,
5938         lib/Parrot/OpsFile.pm: Allow _ in op names
5940 2001-11-25 05:54  jgoff
5942         * classes/perlint.c, t/op/pmc.t, t/pmc/pmc.t: classes/perlint.c -
5943         Added basic math ops t/op/pmc.t - Added tests of basic math ops
5945 2001-11-23 18:27  simon
5947         * core.ops, classes/perlint.c, examples/assembly/mops_p.pasm:
5948         Add everything you need to make MOPS use PMCs.
5950 2001-11-23 18:06  simon
5952         * core.ops:
5953         Eh, you'll need this for rewriting mops.pasm.
5955 2001-11-23 17:55  simon
5957         * core.ops, classes/perlint.c, include/parrot/pmc.h, t/op/pmc.t,
5958         t/pmc/pmc.t:
5959         More work on integer PMCs.
5961 2001-11-23 17:29  simon
5963         * Makefile.in:
5964         Surprise! Whitespace! HLAGHLAGHLAGH
5966 2001-11-23 17:28  simon
5968         * Makefile.in, ops2c.pl, ops2pm.pl:
5969         Add vtables.ops to the core
5971         Courtesy of: Jeff Goff <jgoff@speakeasy.net>
5973 2001-11-22 18:39  simon
5975         * core.ops, global_setup.c, docs/parrot_assembly.pod, t/op/pmc.t,
5976         t/pmc/pmc.t:
5977         We can now create PMCs.
5979 2001-11-21 05:49  jgoff
5981         * Makefile.in: Makefile cleans up *.pasm *.pbc *.out
5983 2001-11-20 16:00  simon
5985         * docs/vtables.pod, include/parrot/pmc.h:
5986         Reorder PMC flags so there's a fixed number of user-defined flags.
5988         Courtesy of: Dave Mitchell <davem@fdgroup.co.uk>
5990 2001-11-19 03:39  jgoff
5992         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm, t/op/basic.t:
5993         Parrot/Assembler.pm - Allow "print 'foo'", and properly escape
5994         nested quotes.  t/op/basic.t - Add tests for single-quoted strings,
5995         escaped quotes, and proper                handling of newlines.
5997 2001-11-16 22:03  simon
5999         * classes/perlint.c:
6000         More work on the Perl Integer class. More needed, though.
6002 2001-11-16 21:57  simon
6004         * pmc.c, vtable.tbl, classes/genclass.pl, classes/perlint.c:
6005         Rename ->new to ->init, and rework pmc.c:pmc_new to fiddle it.
6007 2001-11-16 20:49  simon
6009         * interpreter.c, runops_cores.c, trace.c,
6010         include/parrot/runops_cores.h:
6011         Kill superfluous runops cores.
6013 2001-11-16 17:50  simon
6015         * MANIFEST, Makefile.in, classes/intclass.c, classes/perlint.c,
6016         classes/perlnum.c, classes/perlstring.c, classes/scalarclass.c,
6017         include/parrot/parrot.h, include/parrot/pmc.h:
6018         Skeleton for Perl scalar types, done right.
6020 2001-11-16 16:15  simon
6022         * classes/genclass.pl:
6023         This tidies up genclass to deal with the new-style multimethods.
6025 2001-11-16 15:29  simon
6027         * Makefile.in, make_vtable_ops.pl, vtable.tbl, Parrot/Vtable.pm,
6028         lib/Parrot/Vtable.pm, include/parrot/parrot.h:
6029         Rework multimethods to be *true* multimethods - that is, have
6030         different types.
6032 2001-11-15 22:29  simon
6034         * MANIFEST, Makefile.in, pmc.c:
6035         pmc.c linkage and support. Oh, and making it compile.
6037 2001-11-15 22:26  dan
6039         * t/op/interp.t: Forgot to tell CVS about the test...
6041 2001-11-15 22:10  dan
6043         * MANIFEST, Types_pm.in, core.ops, vtable_h.pl,
6044         docs/parrot_assembly.pod, include/parrot/string.h: Added in support
6045         for PMC registers for the interpreter.
6047         Added in the docs for the runinterp opcode.
6049         Added in code for both the newinterp and runinterp opcodes, so we
6050         can now create new interpreters from within parrot and have them do
6051         things. (Though we can't pass data back and forth. Yet)
6053 2001-11-15 21:24  simon
6055         * vtable.tbl, classes/scalarclass.c, docs/vtables.pod:
6056         More documentation, and other changes as discussed with Dan.
6058 2001-11-15 19:51  simon
6060         * classes/scalarclass.c:
6061         De-cut-and-pasto.
6063 2001-11-15 19:50  simon
6065         * classes/scalarclass.c:
6066         A little code tidiness.
6068 2001-11-15 19:33  simon
6070         * include/parrot/pmc.h:
6071         Missed this in the previous commit - un-constantize the base for
6072         user-defined PMC flags.
6074 2001-11-15 19:28  simon
6076         * classes/scalarclass.c:
6077         Hey look, sanity.
6079 2001-11-15 17:09  simon
6081         * classes/scalarclass.c:
6082         It seems I have completely forgotten how to write C.
6084 2001-11-15 16:53  simon
6086         * docs/vtables.pod:
6087         Start of the PMC classes documentation.
6089 2001-11-15 14:46  simon
6091         * classes/scalarclass.c:
6092         Changing to use a Perl-style struct instead of the union cache.
6094 2001-11-13 23:56  tom
6096         * string.c: Removed leading _ from string_index as function names
6097         starting with _ are reserved to implementors by the C standard.
6099         Also fixed string_index to use the encoding routines instead of
6100         assuming a single byte encoding.
6102 2001-11-13 12:59  jgoff
6104         * string.c: Patched string_concat to accept null strings.  That
6105         test was failing. Nothing to do with ord().
6107 2001-11-13 12:43  jgoff
6109         * string.c: string_ord function, string_concat fixes
6111 2001-11-13 04:52  jgoff
6113         * core.ops: Added ord to core.ops
6115 2001-11-13 04:35  jgoff
6117         * docs/strings.pod, include/parrot/exceptions.h,
6118         include/parrot/string.h, t/op/string.t: core.ops - Added ord
6119         operator, documentation string.c - Added string_ord, _string_index
6120         (_string_index is a static helper)              Patched
6121         string_concat to handle null strings properly.  docs/strings.pod -
6122         Description of string_ord include/parrot/exceptions.h - Added
6123         ORD_OUT_OF_STRING exception include/parrot/string.h - Added
6124         string_ord() t/op/string.t - Added full set of test for
6125         ord_i_(s|sc)(_(i|ic))?
6127         string.c contains a bit of documentation explaining the logic
6128         behind _string_index, primarily having to do with multiple encoding
6129         formats.
6131 2001-11-12 22:30  simon
6133         * t/op/macro.t:
6134         Count 'em.
6136 2001-11-12 22:28  simon
6138         * Makefile.in:
6139         Add a rule to compile "platform"
6141 2001-11-12 22:26  simon
6143         * Makefile.in:
6144         Tidy up distclean target.
6146 2001-11-12 16:54  dan
6148         * MANIFEST, Parrot/Assembler.pm, lib/Parrot/Assembler.pm,
6149         t/op/macro.t: Fixes to the assembler's macro facility and a test
6151         Courtesy of: Jeff <jgoff@speakeasy.net>
6153 2001-11-12 16:50  dan
6155         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm: Allow input from
6156         stdin
6158         Courtesy of: Jeff <jgoff@speakeasy.net>
6160 2001-11-12 16:36  dan
6162         * Parrot/Test.pm, lib/Parrot/Test.pm: Fix to make test work on
6163         CygWin
6165         Courtesy of: Alex Gough <alexander.gough@st-hughs.oxford.ac.uk>
6167 2001-11-12 11:22  simon
6169         * examples/assembly/mops.pasm:
6171         Trivial tightening of mops loop.
6173 2001-11-07 23:57  ajgough
6175         * docs/tests.pod: This is a basic quide to writing tests with
6176         assembler.
6178 2001-11-07 22:29  dan
6180         * stacks.c: Added a little documentation on the cleanup parameter
6181         for an entry
6183 2001-11-07 14:43  dan
6185         * MANIFEST, platforms/generic.c, platforms/linux.c,
6186         platforms/linux.h: Portability patches.
6188         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
6190 2001-11-06 19:51  tom
6192         * Makefile.in: Clean up object files in the subdirectories as well
6193         as those in the top level directory.
6195         Enhanced version of patch from Daniel Grunblatt
6196         <daniel@grunblatt.com.ar>
6198 2001-11-06 16:14  dan
6200         * Configure.pl, MANIFEST, Makefile.in, core.ops,
6201         platforms/generic.c, platforms/generic.h: Made things a bit more
6202         platform-independent. Makefile still needs work to pick up changes
6203         to the platform-specific files.
6205 2001-11-05 21:32  dan
6207         * docs/parrot_assembly.pod: Added docs for the GC control ops
6209 2001-11-04 02:52  gregor
6211         * platforms/: win32.c, win32.h:
6212           * win32 dynamic loading functions.
6214         Courtesy of Jason Diamond <jason@injektilo.org>
6216 2001-11-04 00:04  brentdax
6218         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm: Assembler fixes:
6219         allows an absolute path to be used and gives a useful error message
6220         if the original source file can't be found
6222 2001-11-02 12:37  gregor
6224         * platforms/: linux.c, linux.h:
6225           * Beginning of dynamic loading support. Linux only for now.
6227 2001-11-02 12:13  gregor
6229         * MANIFEST, time.c, include/parrot/time.h:
6230           * Removed time.[hc], since they have been superseded by the new
6231         platform
6232             stuff.
6234 2001-11-02 12:11  gregor
6236         * Configure.pl, Makefile.in, core.ops, vtable.tbl,
6237         classes/intclass.c, classes/scalarclass.c, hints/mswin32.pl,
6238         include/parrot/parrot.h, platforms/linux.c, platforms/linux.h,
6239         platforms/win32.c, platforms/win32.h:
6240         Patch from Jason Diamond to make win32 platform stuff work:
6242         * Modified Configure.pl, mswin32.pl, and Makefile.in so that the
6243         platform specific files in the platforms directory gets copied to
6244         the correct directories. The Makefile will re-copy the platform.h
6245         and .c files if the original is modified.
6247         * #include platform.h in parrot.h instead of time.h.
6249         * Removed time.h and time.obj from the Makefile. time.h and time.c
6250         aren't being used anymore since that code was moved to linux.c and
6251         win32.c.
6253         * Renamed the BOOL typedef in parrot.h to BOOLVAL (inspired by
6254         INTVAL and FLOATVAL). This was conflicting with the BOOL typedef in
6255         windows.h. This required updating several files besides parrot.h.
6257         * Added a DEFAULT_OPEN_MODE to linux.h and win32.h and used that
6258         instead of the missing identifiers (on Windows) in core.ops in the
6259         calls to open.
6261         * Added Parrot_sleep and Parrot_setenv to both the linux and win32
6262         platform files and called those from core.ops. The Linux code for
6263         these functions came from core.ops so they should hopefully work.
6265         Courtesy of Jason Diamond <jason@injektilo.org>
6267 2001-11-02 06:43  brentdax
6269         * Makefile.in, hints/mswin32.pl: Fix classes/intclass.obj building
6270         for Win32 (courtesy of Jason Diamond <jason@injektilo.org>)
6272 2001-11-02 02:26  gregor
6274         * .cvsignore, MANIFEST, include/parrot/.cvsignore,
6275         platforms/linux.c, platforms/linux.h, platforms/win32.c,
6276         platforms/win32.h:
6277           * Beginnings of platform support files in platform/*.[hc]
6279 2001-11-01 23:37  tom
6281         * classes/intclass.c: Added missing *'s to STRING arguments and
6282         return values to avoid compiler warnings.
6284 2001-11-01 22:21  gregor
6286         * MANIFEST, Makefile.in, core.ops, obscure.ops, time.c,
6287         include/parrot/parrot.h, include/parrot/time.h:
6288         Initial "fix" of time(n) op for Win32:
6290           * Initial Win32 code Courtesy of Richard J Cox <rjcox@cix.co.uk>
6292           * time.c and include/parrot/time.h
6294             First attempt at getting this working across platforms. The
6295             macro WIN32 being tested might not be right.
6297           * New functions Parrot_intval_time() and Parrot_floatval_time()
6298             wrap the appropriate functionality depending upon platform.
6299             Changed core.ops to call these.
6301         Added obscure.ops with obscure transcendental ops.
6303         Added simple file I/O ops (close, open, read, write):
6305           * Initial versions Courtesy of Jeff <jgoff@speakeasy.net>
6307           * I changed some arg ordering stuff.
6309           * I added read/write of INTVALs and FLOATVALs.
6311         Added environment variable ops (getenv, setenv)
6313         Added system error ops (err(i) and err(s) for accessing errno and
6314         strerr().
6316         Moved print ops in with other "temporary" developer ops, since
6317         they'll move to a devel.ops or temp.ops oplib once we have oplibs.
6319 2001-10-31 22:51  tom
6321         * MANIFEST, Makefile.in, chartype.c, encoding.c, global_setup.c,
6322         packfile.c, string.c, strnative.c, strutf16.c, strutf32.c,
6323         strutf8.c, transcode.c, chartypes/unicode.c, chartypes/usascii.c,
6324         encodings/singlebyte.c, encodings/utf16.c, encodings/utf32.c,
6325         encodings/utf8.c, include/parrot/chartype.h,
6326         include/parrot/encoding.h, include/parrot/exceptions.h,
6327         include/parrot/parrot.h, include/parrot/string.h,
6328         include/parrot/strnative.h, include/parrot/strutf16.h,
6329         include/parrot/strutf32.h, include/parrot/strutf8.h,
6330         include/parrot/transcode.h: Reworked the string code in line with
6331         Dan's latest design that separates character sets from encodings.
6333 2001-10-31 19:53  dan
6335         * docs/parrot_assembly.pod: Finished I/O section of docs
6337 2001-10-31 16:51  dan
6339         * core.ops, docs/parrot_assembly.pod, include/parrot/parrot.h:
6340         Moved includes out of core.ops and into parrot.h where they belong
6341         (suitably guarded with #ifdefs). Also some updates to
6342         parrot_assembly.pod
6344 2001-10-30 21:43  dan
6346         * core.ops, stacks.c, docs/parrot_assembly.pod,
6347         include/parrot/stacks.h: Added entrytype opcode to fetch the type
6348         of the entry on the stack
6350 2001-10-29 18:30  dan
6352         * stacks.c: You can turn off stack entry type validation on pop by
6353         passing in a type of 0 now. (For those cases where you just want to
6354         throw the darned thing away)
6356 2001-10-29 14:37  gregor
6358         * core.ops, languages/jako/jakoc:
6359           * New variants of the save ops to save constants on the stack.
6360         This is
6361             useful for saving zero arg and result counts on the stack, for
6362         example.
6364           * Modified jakoc to to adapt to the newly announced calling
6365         conventions.
6366             Even though Jako source code appears to show subroutines with
6367         fixed
6368             numbers of arguments and results, they are implemented with the
6369             variable count calling convention. Future modifications will be
6370         needed
6371             to ensure that an exception is raised if the stack frame is of
6372         the
6373             wrong size (or, at least that we pop the complete frame off).
6374         We'll
6375             also have to make more changes to support the true
6376         fixed-arg-count
6377             and fixed-result-count parts of the calling convention spec.
6379 2001-10-28 16:53  simon
6381         * MANIFEST, stacks.c, classes/scalarclass.c,
6382         include/parrot/stacks.h:
6383         Unbelievably bad errors of mine, plus a type incompatibility of
6384         Dan's.
6386 2001-10-28 08:30  simon
6388         * classes/scalarclass.c:
6389         Beginning of a scalar class.
6391 2001-10-28 08:29  simon
6393         * make_vtable_ops.pl, vtable.tbl, Parrot/Vtable.pm,
6394         lib/Parrot/Vtable.pm, classes/genclass.pl, classes/intclass.c,
6395         include/parrot/pmc.h:
6396         This fixes the problem with vtables and pointer arithmetic.
6398 2001-10-26 19:58  dan
6400         * core.ops, interpreter.c, stacks.c, include/parrot/interpreter.h,
6401         include/parrot/stacks.h: Split the generic stack into a user push
6402         stack and a control stack
6404 2001-10-26 02:59  bdwheele
6406         * Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm: [no log message]
6408 2001-10-24 20:27  dan
6410         * languages/scheme/: Makefile, Scheme.pm, schemec,
6411         Scheme/Generator.pm, Scheme/Parser.pm, Scheme/Test.pm,
6412         Scheme/Tokenizer.pm, t/harness, t/arith/basic.t, t/arith/logic.t,
6413         t/arith/nested.t, t/io/basic.t, t/logic/basic.t: Added the mini
6414         Scheme compiler
6416 2001-10-24 20:23  dan
6418         * MANIFEST, pdump.c, docs/parrot_assembly.pod: Update for
6419         interpreter needs in pdump.c. Added scheme bits to manifest
6421 2001-10-24 16:43  gregor
6423         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm:
6424           * Make the assembler handle octal character code escapes in
6425         string
6426             constants.
6428 2001-10-24 15:56  dan
6430         * MANIFEST, examples/assembly/life.pasm: Added an example in to
6431         play the game of life
6433 2001-10-24 15:54  dan
6435         * core.ops: Added sleep. We'll need to override this to do events
6436         properly anyway, so...
6438 2001-10-24 14:03  gregor
6440         * Makefile.in, pbc2c.pl, pdump.c:
6441           * Adapt pdump.c and pbc2c.pl to the new requirement to pass
6442         interpreter
6443             pointer into string functions.
6445         Courtesy of: Ryan O'Neil <talisman580@yahoo.com>
6447 2001-10-23 20:09  gregor
6449         * languages/jako/jakoc:
6450           * Terminological refinement in regexp capture comment.
6452 2001-10-23 15:23  simon
6454         * classes/genclass.pl:
6455         Use a saner ANSI C construct to make MIPSPro happy.
6457         Courtesy of: Alex Gough <alexander.gough@st-hughs.oxford.ac.uk>
6459 2001-10-23 00:34  tom
6461         * core.ops, string.c, strnative.c, strutf16.c, strutf32.c,
6462         strutf8.c, include/parrot/string.h: Make sure the interpreter
6463         structure is passed to the transcoder as necessary, including
6464         passing it to string_compare().
6466 2001-10-23 00:32  tom
6468         * Makefile.in: Make pdump build again by including resources.o in
6469         the link.
6471 2001-10-22 22:43  dan
6473         * core.ops, packfile.c, string.c, strnative.c, strutf16.c,
6474         strutf32.c, strutf8.c, test_main.c, transcode.c,
6475         include/parrot/packfile.h, include/parrot/parrot.h,
6476         include/parrot/resources.h, include/parrot/string.h,
6477         include/parrot/transcode.h: Everything now uses the allocators and
6478         deallocators in resources.c.
6480         Unfortunately we lost standalone string-test mode, but I can cope
6481         with that.
6483         Please note that until we have a real allocation/deallocation/GC
6484         system, this'll leak. A *lot*.
6486 2001-10-22 20:27  dan
6488         * MANIFEST, Makefile.in, pmc.c, resources.c,
6489         include/parrot/resources.h: First cut to handle arena allocation of
6490         PMC headers. (Amongst other things)
6492 2001-10-22 19:02  dan
6494         * Configure.pl, config_h.in, register.c, include/parrot/register.h:
6495         Now each register type has its own mask macro, which is the right
6496         thing to do.
6498         Patch courtesy of Jason Gloudon <perl@gloudon.com>
6500 2001-10-21 23:40  tom
6502         * stacks.c, t/op/stacks.t: Fix bug in handling of rollover to a new
6503         stack chunk and add a test to test this rollover in future.
6505         Courtesy of Jason Gloudon <perl@gloudon.com>.
6507 2001-10-21 19:14  dan
6509         * include/parrot/string.h: Changed string 'unused' field to the
6510         language field.
6512 2001-10-21 18:18  gregor
6514         * languages/jako/: Makefile, mops.jako:
6515           * Makefile: 'clean' target removes .list files, too. And, it does
6516         rm -f
6517             with wildcards rather than listing things explicitly.
6519           * mops.jako actually prints out the
6520         millions-of-operations-per-second
6521             (mops) value instead of just the operations-per-second value.
6523 2001-10-21 18:03  simon
6525         * classes/intclass.o:
6526         *smack*! WRONG!
6528 2001-10-21 17:47  simon
6530         * MANIFEST, Makefile.in, make_vtable_ops.pl, pmc.c, vtable_h.pl,
6531         Parrot/Vtable.pm, classes/genclass.pl, classes/intclass.c,
6532         classes/intclass.o, include/parrot/parrot.h, include/parrot/pmc.h,
6533         lib/Parrot/Vtable.pm:
6534         Initial work on PMCs. Explanation to follow
6536 2001-10-21 15:20  gregor
6538         * examples/assembly/queens.pasm:
6539           * Modernize the calling conventions in queens.pasm. It was using
6540         swap,
6541             which now must be rotate. Also, changed to use return values on
6542         the
6543             stack instead of in I0.
6545 2001-10-19 18:14  gregor
6547         * core.ops, stacks.c, include/parrot/stacks.h,
6548         languages/jako/jakoc:
6549         Per Dan's request, replacing 'swap' op by 'rotate'.
6551           * core.ops: Replaced 'swap()' by 'rotate(i|ic)'.
6553           * stacks.c and stacks.h: Removed swap-related functions from my
6554             prior commit, replacing them with stack_depth(), stack_entry()
6555             and rotate_entries().
6557             NOTE: The stack_depth() and rotate_entries() routines could
6558             be made more efficient through the caching of the sum of chunk
6559             'used' members from lower chunks in a field in the upper
6560             chunks. Also, if the interpreter's stack_base was changed to
6561             hold the pointer to the *top* chunk (since we usually come
6562             at the stack from the top down) instead of the *bottom*
6563             chunk. The code here at least works, and we can decide about
6564             bigger changes separately.
6566             For now, rotate only handles rotates in one direction and
6567             of magnituded one. A fully general rotate would do handle
6568             rotates in both directions and of arbitrary amounts. Again,
6569             this implementation is sufficient for current applications,
6570             and a feature-complete version can be developed if this turns
6571             out to be otherwise the right type of implementation.
6573             This change includes a new exception for ERROR_STACK_SHALLOW,
6574             meaning "not-empty-yet-not-deep-enough-for-what-you-asked".
6576           * jakoc: Changed the calling convention to use rotate instead
6577             of swap (of course). Also changed the convention for return
6578             value passing to use the stack as well.
6580 2001-10-19 13:36  gregor
6582         * MANIFEST, core.ops, disassemble.pl, stacks.c,
6583         examples/assembly/queens.pasm, include/parrot/stacks.h,
6584         languages/jako/.cvsignore, languages/jako/Makefile,
6585         languages/jako/bench.jako, languages/jako/euclid.jako,
6586         languages/jako/fact.jako, languages/jako/jakoc,
6587         languages/jako/mandelbrot.jako, languages/jako/mops.jako,
6588         languages/jako/primes.jako, languages/jako/queens.jako,
6589         languages/jako/sub.jako:
6590           * New stack functions push_entry(), pop_entry() and swap_entry().
6591             The first two exist for the support of the last one. These
6592             functions don't care what is in the stack entries. These exist
6593             to support the new 'swap' op (see next bullet).
6595           * New op 'swap' for swapping the top two elements on the stack.
6596             This is necessary for passing arguments to functions, since
6597             the return address will be on top of any arguments that have
6598             been pushed on the stack. This way, you can use a (swap, pop)
6599             pair to retrieve each argument (for subroutine linkage).
6601           * Disassembler now prints numbers in decimal by default, with
6602             a new '-x' flag to turn on hexadecimal display. Since other
6603             members of the Parrot Tool Set use decimal by default, this
6604             makes it easier to compare output from the various tools.
6606           * Jako compiler has more explanatory comments and the following
6607             new features:
6609               * Lexically scoped variables.
6611               * Subroutines that take arguments and return values:
6613                   sub int foo(int bar) {
6614                     if (bar == 1) {
6615                       return 42;
6616                     } else {
6617                       return 13;
6618                     }
6619                   }
6620               * ... if (...) and ... unless (...) statement modifiers
6621                 can be used on next, last and redo.
6623               * Bitwise and (&, &=) and or (|, |=) ops.
6625               * Type names are just 'int', 'num', 'str', and 'poly' now.
6626                 The old long names 'integer', 'number', 'string', and
6627                 'polytype' are no longer valid.
6629               * Integer variable assignments can now use 0b (binary),
6630                 0 (octal) and 0x (hexadecimal) radix prefixes on literals.
6632           * New Jako and Parrot assembly examples queens.{jako,pasm} for
6633             solving the eight-queens problem. The assembly example is a
6634             hand-modified version of the assembly code produced by the
6635             Jako compiler from queens.jako. A few unnecessary ops have
6636             been removed, lots of unnecessary labels have been removed,
6637             and all the Jako source code comments have been removed.
6639           * Makefile and .cvsignore in languages/jako modified so that
6640             the assembler produces listings when assembling the programs,
6641             yet the *.list files are ignored by CVS.
6643           * Made the default target in languages/jako/Makefile 'all'.
6645           * Modified some of the Jako examples to use some of the new
6646             features of Jako, such as subroutines and lexical variable
6647             scoping.
6649 2001-10-19 02:43  gregor
6651         * runops_cores.c, include/parrot/runops_cores.h:
6652         Bug fix (gcc doesn't complain, but MIPSpro does):
6654           * Added missing extern to runops_cores array declaration in
6655             include/parrot/runops_cores.h
6657           * Also added 'const' there and in runops_cores.c
6659 2001-10-18 15:18  gregor
6661         * .cvsignore, include/parrot/oplib/.cvsignore:
6662           * Ignore the vtable-related generated files.
6664 2001-10-18 15:14  gregor
6666         * core.ops:
6667           * left and right shifts now allow the 2nd argument to be a
6668         constant.
6670 2001-10-18 14:55  simon
6672         * make_vtable_ops.pl:
6673         This is C, not Perl. How on earth did that even compile?
6675 2001-10-18 14:54  simon
6677         * make_vtable_ops.pl:
6678         More vtable ops.
6680 2001-10-18 12:33  simon
6682         * Makefile.in, make_vtable_ops.pl, vtable.tbl:
6683         Initial stab at vtable opcode creation stuff.
6685 2001-10-18 02:15  gregor
6687         * MANIFEST, Makefile.in, interpreter.c, runops_cores.c, trace.c,
6688         include/parrot/interpreter.h, include/parrot/runops_cores.h,
6689         include/parrot/trace.h: Preparation for autogenerated runops cores:
6691           * Split tracing and runops core stuff out of interpreter.c into
6692             trace.c and runops_cores.c
6694           * Similar split of stuff from include/parrot/interpreter.h
6696           * Manifest and Makefile.in updates to make things still compile.
6698 2001-10-18 01:21  gregor
6700         * Makefile.in, ops2c.pl, ops2pm.pl, pbc2c.pl: Bug fixes:
6702           * Makefile.in: examples/assembly/mops.c depends on pbc2c.pl
6704           * Makefile.in: Parrot/OpLib/core.pm depends on ops2pm.pl
6706           * ops2c.pl: Added second arg to mkdir (perl 5.005_02 complains)
6708           * ops2pm.pl: Added second arg to mkdir (perl 5.005_02 complains)
6710           * pbc2c.pl: Removed explicit include of <math.h>, replacing it
6711         with
6712             copy of $ops->preamble.
6714 2001-10-17 22:32  bdwheele
6716         * interpreter.c: Moved op dump code into trace_op_dump, per Dan's
6717         request.
6719 2001-10-17 22:08  gregor
6721         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm:
6722           * Now handles label-and-comment-only lines.
6724 2001-10-17 22:04  bdwheele
6726         * interpreter.c: added more comprehensive trace output
6728 2001-10-17 16:50  tom
6730         * Makefile.in: Removed the explicit rule for building mops.o from
6731         mops.c so that the implicit rule for compiling C files is used
6732         instead. This means that the chosen C flags are used, including any
6733         optimisation options.
6735 2001-10-17 15:24  tom
6737         * core.ops, Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm: Enhanced the
6738         op explosion logic to be able to handle exploding this:
6740           sub(i, i|ic, i|ic)
6742         into these:
6744           sub(i, i, i)
6745           sub(i, i, ic)
6746           sub(i, ic, i)
6748         without also generating this unwanted version:
6750           sub(i, ic, ic)
6752         The enhanced version rejects any expansion where there is more than
6753         one expanded argument and all the expanded arguments are constants.
6755 2001-10-17 14:20  simon
6757         * Makefile.in, ops2c.pl, ops2pm.pl, examples/assembly/Makefile:
6758         Build fixes to use correct Perl version and ensure that things are
6759         running in the right directory.
6761         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
6763 2001-10-17 13:16  simon
6765         * Makefile.in:
6766         core.pm is more critical than that.
6768 2001-10-17 13:05  simon
6770         * core.ops, Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm:
6771         "Explode" ops into multiple versions for different parameters.
6773         Courtesy of: Tom Hughes <tom@compton.nu>
6775 2001-10-17 12:54  simon
6777         * Makefile.in:
6778         Fix dependencies and cleaning.
6780 2001-10-17 12:45  simon
6782         * Configure.pl, Makefile.in:
6783         Fixes to make Parrot compile without the temporary build hack
6785         Courtesy of: Jason Gloudon <perl@gloudon.com>
6787 2001-10-16 20:43  gregor
6789         * Makefile.in:
6790           * Fixed dependencies for building Parrot/OpLib/core.pm
6792 2001-10-16 19:35  bdwheele
6794         * core.ops, t/op/string.t: Changed set s,sc to use string_copy &
6795         added test, thanks to Alex Gough
6797 2001-10-16 16:49  bdwheele
6799         * core.ops: added opcode variants for constants and 3 arg concat
6801 2001-10-16 15:12  bdwheele
6803         * core.ops: added "set Sx,Sy" as a string copy to match the other
6804         register-to-register copies available
6806 2001-10-16 13:09  gregor
6808         * core.ops:
6809           * Added #include <sys/time.h> in the preamble for gettimeofday().
6811 2001-10-16 13:09  gregor
6813         * Makefile.in:
6814           * Removed cd t; make, which no longer applies
6816 2001-10-16 03:18  bdwheele
6818         * core.ops: fix save & restore operations to push correct type onto
6819         stack. [good eye to Jason Gloudon for noticing this]
6821 2001-10-16 01:38  bdwheele
6823         * core.ops, register.c, examples/assembly/fact.pasm,
6824         include/parrot/register.h: send in the clones:  clone routines for
6825         parrot + example program
6827 2001-10-15 22:37  gregor
6829         * MANIFEST, Makefile.in, examples/assembly/.cvsignore,
6830         examples/assembly/Makefile, examples/assembly/bsr.pasm,
6831         examples/assembly/call.pasm, examples/assembly/euclid.pasm,
6832         examples/assembly/jump.pasm, examples/assembly/local_label.pasm,
6833         examples/assembly/mops.pasm, examples/assembly/stack.pasm,
6834         examples/assembly/substr.pasm, examples/assembly/trace.pasm,
6835         t/.cvsignore, t/Makefile, t/call.pasm, t/euclid.pasm, t/jump.pasm,
6836         t/local_label.pasm, t/test.pasm, t/test2.pasm, t/test3.pasm,
6837         t/test4.pasm, t/test5.pasm, t/trace.pasm:
6838           * Moved examples from t/*.pasm to examples/assembly/*.pasm, with
6839         some
6840             renames so the names match what they demonstrate.
6842 2001-10-15 22:18  gregor
6844         * core.ops, t/test.pasm:
6845           * time_n uses gettimeofday() to get sub-second times.
6847           * t/test.pasm uses time_n directly rather than doing int stuff
6848         and
6849             converting to num later.
6851 2001-10-15 12:28  gregor
6853         * t/: test.pasm, test2.pasm, trace.pasm:
6854           * t/test.pasm prints using string constants instead of string
6855         regs.
6857           * t/test2.pasm assembles (using implicit op modes)
6859           * t/trace.pasm updated for new behavior of trace_ic, which does
6860         not
6861             require an 'end' after 'trace'.
6863 2001-10-15 00:47  gregor
6865         * core.ops, interpreter.c, test_main.c,
6866         include/parrot/interpreter.h, t/test.pasm:   * New interpreter flag
6867         PARROT_PROFILE_FLAG
6869           * New runops cores to handle profiling
6871           * Support for -p flag in test_prog to enable profiling
6873           * New profile_ic op to control profiling at run-time
6875 2001-10-14 21:54  gregor
6877         * core.ops, Parrot/OpsFile.pm, docs/.cvsignore, docs/Makefile,
6878         lib/Parrot/OpsFile.pm: Integrated op documentation.
6880           * core.ops now contains POD documentation of ops, interspersed
6881         with the
6882             ops themselves
6884           * Ops are organized into POD =head2 sections
6886           * Parrot/OpsFile.pm now treats the preamble of the ops file as
6887         anything
6888             up to the first POD directive OR op definition.
6890           * docs/Makefile now generates core_ops.pod from core.ops vi
6891         perldoc -u.
6893 2001-10-14 11:58  simon
6895         * Makefile.in:
6896         Unbreak Digital Un^W^WTru64
6898 2001-10-14 11:00  simon
6900         * Configure.pl:
6901         Remove weird typo.
6903 2001-10-14 10:56  tom
6905         * Configure.pl: Stop Configure trying to make op_info.c and op.h as
6906         op_info.c no longer exists and op.h is no longer a generated file.
6908 2001-10-14 10:54  tom
6910         * Makefile.in: Added vtable.h to the list of things removed by the
6911         clean target.
6913 2001-10-14 01:43  gregor
6915         * .cvsignore, MANIFEST, Makefile.in, basic_opcodes.ops,
6916         build_interp_starter.pl, core.ops, disassemble.pl, interpreter.c,
6917         make_op_header.pl, memory.c, opcheck.pl, opcode_table, ops2c.pl,
6918         ops2pm.pl, packfile.c, pbc2c.pl, process_opfunc.pl,
6919         Parrot/Assembler.pm, Parrot/Op.pm, Parrot/OpsFile.pm,
6920         Parrot/OpLib/.cvsignore, lib/Parrot/Assembler.pm, lib/Parrot/Op.pm,
6921         lib/Parrot/OpsFile.pm, lib/Parrot/OpLib/.cvsignore,
6922         include/parrot/.cvsignore, include/parrot/interp_guts.h,
6923         include/parrot/interpreter.h, include/parrot/op.h,
6924         include/parrot/oplib/.cvsignore, t/.cvsignore, t/Makefile,
6925         t/euclid.pasm, t/test.pasm, t/op/integer.t, t/op/number.t,
6926         t/op/stacks.t, t/op/string.t, t/op/trans.t:
6927         Moby Patch:
6929           * basic_opcodes.ops and opcode_table replaced by core.ops
6931           * process_opfunc.pl replaced by Parrot/OpsFile.pm, Parrot/Op.pm,
6932             and ops2c.pl. These convert *.ops to *_ops.c and
6933             include/parrot/oplib/*_ops.h
6935           * New ops2pm.pl converts *.ops to Parrot/OpLib/*.pm
6937           * disassemble.pl modified to use
6939           * interpreter.c modified to use structures in core_ops.c instead
6940             of the old op_info and op_func stuff. We're not yet to the
6941             point of handling multiple oplibs at a time, but we are getting
6942             there...
6944             Fingerprinting stuff disabled for now. We used to go off
6945             opcode_table. We need to rethink this. I have some ideas to
6946             make it unnecessary, but it remains to be seen whether others
6947             will like the direction they take us.
6949             Termination condition for while(){} loop in runops is now
6950             (pc) instead of (*pc). Any op can cause a HALT by returning
6951             a NULL pointer. Ops end, bounds and trace all do this. So, now
6952             the 'end' op body is actually executed, although all it does
6953             is HALT.
6955           * Makefile.in modified to perform a test build using pbc2c.pl,
6956             which is the bytecode --> C compiler I've posted to the
6957             list before.
6959           * Op full names are now autogenerated. Op root names must not
6960             contain underscores, so some op renamings have happened.
6961             Such as clear_i becoming cleari.
6963 2001-10-13 11:49  simon
6965         * Configure.pl, MANIFEST:
6966         Make parrot actually build again.
6968 2001-10-12 21:34  dan
6970         * docs/parrot_assembly.pod: Added docs for the new save/restore/bsr
6971         opcodes
6973 2001-10-12 20:56  dan
6975         * MANIFEST, Makefile.in, basic_opcodes.ops, interpreter.c,
6976         opcode_table, process_opfunc.pl, stacks.c, include/parrot/stacks.h,
6977         t/test3.pasm, t/test4.pasm, t/test5.pasm: Changes to support
6978         generic stack now in. We also have subroutines, of a simple sort!
6980 2001-10-12 19:15  tom
6982         * t/op/string.t: Improved string comparison tests try all string
6983         combinations with each of the comparison ops.
6985 2001-10-12 19:09  dan
6987         * interpreter.c: Properly sets up generic stack now
6989 2001-10-12 19:09  dan
6991         * include/parrot/interpreter.h: Fixed stack chunk struct type in
6992         interpreter structure
6994 2001-10-12 18:59  dan
6996         * stacks.c, include/parrot/parrot.h, include/parrot/stacks.h: More
6997         changes to get the generic stack working
6999 2001-10-12 18:59  dan
7001         * Configure.pl, MANIFEST, config_h.in, testparrotsizes_c.in,
7002         hints/vms.pl: Made the changes to figure out mask bits for various
7003         register and stack chunks
7005 2001-10-11 22:09  dan
7007         * docs/parrot_assembly.pod: Tossed the parameter for return
7009 2001-10-11 19:28  tom
7011         * strnative.c: Assignment, not comparison.  (Plus formatted for
7012         coding standards)
7014         Courtesy of Bryan C. Warnock
7016 2001-10-10 19:21  tom
7018         * basic_opcodes.ops, opcode_table, string.c, strnative.c,
7019         strutf16.c, strutf32.c, strutf8.c, docs/strings.pod,
7020         include/parrot/string.h, t/op/string.t: Added support for string
7021         comparisons and extended the comparison ops to include comparison
7022         of strings.
7024 2001-10-10 17:58  dan
7026         * MANIFEST: Shouldn't have added vtable.h to the manifest...
7028 2001-10-10 17:54  dan
7030         * MANIFEST, stacks.c, vtable_h.pl, Parrot/Vtable.pm,
7031         lib/Parrot/Vtable.pm: Now spits out the #defines for the various
7032         vtable type entries properly
7034 2001-10-10 15:37  dan
7036         * Parrot/Vtable.pm, lib/Parrot/Vtable.pm: Re-enabled change to
7037         parse new vtable.tbl file now that I've actually checked *in* the
7038         new format vtable.tbl file...
7040 2001-10-10 15:32  dan
7042         * vtable.tbl: New Column to indicate the type of the vtabel entry
7043         so we can know how many slots it takes
7045 2001-10-10 05:26  thgibbs
7047         * Parrot/Vtable.pm, lib/Parrot/Vtable.pm, vtable_h.pl: Patch to
7048         allow parrot to compile.  PACKAGE is not defined, therefore, I
7049         added a struct before it to have it not complain until we define
7050         PACKAGE.  Also, there was an extra shift in Vtable.pm and a missing
7051         semicolon at the end of the struct declaration.
7053 2001-10-10 05:09  thgibbs
7055         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm: This patch makes
7056         string constants of the form U"string" become unicode encoded
7057         parrot strings and the form N"string" become native encoded parrot
7058         strings.
7060         Courtesy of: Tom Hughes <tom@compton.nu>
7062 2001-10-10 04:55  dan
7064         * vtable_h.pl, Parrot/Vtable.pm, lib/Parrot/Vtable.pm: Start of
7065         support for generating the vtable function table offset macros
7067 2001-10-10 01:05  simon
7069         * t/op/integer.t:
7070         The test for cmod_i was using the 'mod Ix, Ix, Ix' form which
7071         compiles into the mod op, not the cmod_i op, hence wasn't testing
7072         what it thought it was.
7074         Courtesy of: Alex Gough <alexander.gough@st-hughs.oxford.ac.uk>
7076 2001-10-09 03:45  thgibbs
7078         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm: Patch to allow
7079         assembler to generate unicode strings.
7081         Courtesy of: Tom Hughes <tom@compton.nu>
7083 2001-10-08 19:30  brentdax
7085         * Configure.pl, test_c.in, hints/vms.pl: Cleaner VMS support, more
7086         info for Parrot::Config to remember, more flexible test.c stuff
7088 2001-10-08 15:04  gregor
7090         * basic_opcodes.ops:
7091           * Removed trash from early mod_i experiments (pardon our dust)
7093 2001-10-08 14:56  gregor
7095         * basic_opcodes.ops:
7096           * Fixed a couple of typos.
7098 2001-10-08 14:45  gregor
7100         * basic_opcodes.ops, opcode_table, t/op/integer.t, t/op/number.t:
7101         Arithmetic enhancements:
7103           * Renamed existing mod_i as cmod_i and added "corrected" mod_i:
7105             NOTE: This "uncorrected mod" algorithm uses the C language's
7106         built-in
7107             mod operator (x % y), which is
7109                 ... the remainder when x is divided by y, and thus is zero
7110         when y
7111                 divides x exactly.
7112                 ...
7113                 The direction of truncation for / and teh sign of the
7114         result for %
7115                 are machine-dependent for negative operands, as is the
7116         action taken
7117                 on overflow or underflow.
7118                                                                      --
7119         [1], page 41
7121             Also:
7123                 ... if the second operand is 0, the result is undefined.
7124         Otherwise, it
7125                 is always true that (a/b)*b + a%b is equal to z. I both
7126         operands are
7127                 non-negative, then teh remainder is non-negative and
7128         smaller than the
7129                 divisor; if not, it is guaranteed only that the absolute
7130         value of the
7131                 remainder is smaller than the absolute value of the
7132         divisor.
7133                                                                      --
7134         [1], page 205
7136             This op is provided for those who need it (such as
7137         speed-sensitive
7138             applications with heavy use of mod, but using it only with
7139         positive
7140             arguments), but a more mathematically useful numeric mod based
7141         on
7142             floor(x/y) and defined with y == 0 is provided by the mod_i op.
7144               [1] Brian W. Kernighan and Dennis M. Ritchie, *The C
7145         Programming
7146                   Language*, Second Edition. Prentice Hall, 1988.
7148           * Added "corrected" mod_i:
7150             NOTE: This "corrected mod" algorithm is based on the C code on
7151         page 70
7152             of [1]. Assuming correct behavior of C's built-in mod operator
7153         (%) with
7154             positive arguments, this algorithm implements a mathematically
7155         convenient
7156             version of mod, defined thus:
7158               x mod y = x - y * floor(x / y)
7160             For more information on this definition of mod, see section 3.4
7161         of [2],
7162             pages 81-85.
7164             References:
7166               [1] Donald E. Knuth, *MMIXware: A RISC Computer for the Third
7167                   Millennium* Springer, 1999.
7169               [2] Ronald L. Graham, Donald E. Knuth and Oren Patashnik,
7170         *Concrete
7171                   Mathematics*, Second Edition. Addison-Wesley, 1994.
7173           * Added mod_n, using the same formula as above, but with FLOATVAL
7174             arguments.
7176           * Added cmod_n, using the C math library's fmod() function:
7178             NOTE: This "uncorrected mod" algorithm uses the built-in C math
7179         library's
7180             fmod() function, which computes
7182                 ... the remainder of dividing x by y. The return value is x
7183         - n * y,
7184                 where n is the quotient of x / y, rounded towards zero to
7185         an
7186                 integer.
7187                                                 -- fmod() manpage on RedHat
7188         Linux 7.0
7190             In addition, fmod() returns
7192                 the remainder, unless y is zero, when the function fails
7193         and errno
7194                 is set.
7196             According to page 251 of [1], the result when y is zero is
7197         implementation-
7198             defined.
7200             This op is provided for those who need it, but a more
7201         mathematically
7202             useful numeric mod based on floor(x/y) instead of truncate(x/y)
7203         and
7204             defined with y == 0 is provided by the mod_n op.
7206               [1] Brian W. Kernighan and Dennis M. Ritchie, *The C
7207         Programming
7208                   Language*, Second Edition. Prentice Hall, 1988.
7210           * Added and modified tests as appropriate for the above.
7212 2001-10-08 08:49  thgibbs
7214         * include/parrot/exceptions.h, include/parrot/parrot.h,
7215         include/parrot/string.h, include/parrot/strutf16.h,
7216         include/parrot/strutf32.h, include/parrot/strutf8.h,
7217         include/parrot/transcode.h, include/parrot/unicode.h, MANIFEST,
7218         Makefile.in, global_setup.c, string.c, strnative.c, transcode.c,
7219         strutf16.c, strutf32.c, strutf8.c: Added code to handle unicode
7220         strings for utf8, utf16, and utf32.
7222         Courtesy of: Tom Hughes <tom@compton.nu>
7224 2001-10-08 08:10  thgibbs
7226         * memory.c: Fixed uninitialized variables.
7228         Courtesy of: Bryan C. Warnock <bwarnock@raba.com>
7230 2001-10-08 01:21  gregor
7232         * packfile.c:   * Casting a return value
7234           * Potential uninitialized variable fix
7236         Courtesy of Bryan C. Warnock <bwarnock@raba.com>
7238 2001-10-08 01:15  gregor
7240         * packfile.c, test_main.c: One of Bryan's languishing patches (with
7241         a few tweaks of my own):
7243           * Line wrapping
7245           * Printf format fixes
7247         Courtesy of: Bryan C. Warnock <bwarnock@raba.com>
7249 2001-10-07 22:39  thgibbs
7251         * build_interp_starter.pl: No longer adds (void*) casts to
7252         interp_guts.c function table as they are not necessary in ANSI C.
7254 2001-10-07 16:27  gregor
7256         * basic_opcodes.ops, interpreter.c, opcode_table,
7257         process_opfunc.pl, test_main.c, include/parrot/interpreter.h,
7258         t/trace.pasm:
7259           * Two new ops, trace_ic and bounds_ic that twiddle bits in
7260             interpreter->flags and set interpreter->resume_addr.
7262           * Two new runops core variants, so now we cover the relevant
7263             flag space over {trace, notrace} x {boundscheck, noboundscheck}
7265           * Runops core selection that converts the flags into an index
7266         into
7267             a core table (runops_cores) to get the core function pointer.
7269           * A new trace_op variant that doesn't do bounds checking (used by
7270             the non-bounds-checking-but-tracing runops core).
7272           * PC is passed into the cores so that they can be used when
7273             resuming (they used to assume starting at the beginning of the
7274             code, which would thwart resumption).
7276           * runops() itself is changed to have a while() loop in it so that
7277             any time we drop out of the core, we'll resume if we have an
7278             interpreter->resume_addr set (after reselecting the core,
7279         though).
7281           * process_opfunc.pl has a new "macro": RESUME(), that sets up
7282             interpreter->resume_addr. This is used by the new ops. The new
7283             ops still return the new PC as the next op (which MUST be an
7284             'end' op to force the core loop to terminate -- *pc being false
7285             is the only termination condition we can count on for all
7286         cores).
7288           * New interpreter flag: PARROT_BOUNDS_FLAG, used to control
7289             bounds checking core selection.
7291           * test_prog now has a '-b' flag in addition to the '-t' flag.
7292         Now,
7293             bounds checking is off by default (I saw a performance boost:
7294             6.3 Mop/s with -b, 7.0 Mop/s without).
7296           * A new sample/test program: t/trace.pasm that twiddles the trace
7297             flag while it is running.
7299 2001-10-07 15:41  gregor
7301         * .cvsignore, Makefile.in, build_interp_starter.pl, interpreter.c,
7302         include/parrot/.cvsignore, include/parrot/interpreter.h:
7303         Now that 0.0.2 is released, I can clear out the backlog of approved
7304         but uncommitted patches. Here's one Dan approved on 2001-09-21
7305         (Simplified DO_OP):
7307           * test_prog and pdump are linked with only the files the need,
7308         not
7309             al the files.
7311           * build_interp_starter.pl writes out op_info.[hc], too. These
7312         files
7313             contain op name, arg count and arg type information. This will
7314         be
7315             useful for multiple things in the future, including better
7316         trace
7317             output and the crystalizing loader.
7319           * The DO_OP macro is now simpler and doesn't require explicit
7320             temporaries.
7322           * interpreter.c is modified to use the new op info in tracing
7323         output.
7325           * The interpreter just points its opcode_funcs and opcode_info
7326             members at the default tables rather than allocating memory on
7327             the fly.
7329 2001-10-07 03:58  thgibbs
7331         * include/parrot/.cvsignore, vtable_h.pl: Minor updates fixing a
7332         comment and adding vtable.h to .cvsignore as it is produced by
7333         vtable_h.in
7335 2001-10-06 20:58  thgibbs
7337         * vtable.tbl: Added * to REGEX type.
7339         Courtesy of Bryan C. Warnock <bwarnock@raba.com>
7341 2001-10-06 13:41  simon
7343         * MANIFEST, Makefile.in, vtable.tbl, vtable_h.pl, Parrot/Vtable.pm,
7344         include/parrot/parrot.h, lib/Parrot/Vtable.pm:
7345         Framework for vtable functions.
7347 2001-10-06 06:52  thgibbs
7349         * make_op_header.pl: Removed confusing and unused typedef.
7351 2001-10-06 06:31  thgibbs
7353         * Parrot/Opcode.pm, lib/Parrot/Opcode.pm: Removed variables that
7354         are no longer used.
7356 2001-10-06 06:26  thgibbs
7358         * disassemble.pl: Changed intval to op in disassembler.
7360 2001-10-06 06:21  thgibbs
7362         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm: Fixed typo with
7363         Assembler, local labels, and integer constants.
7365 2001-10-06 03:11  ask
7367         * Makefile.in: make `make test` actually run the tests on
7368         darwin/macosx
7370 2001-10-06 02:04  thgibbs
7372         * Parrot/Assembler.pm, Parrot/Opcode.pm, Parrot/PackFile.pm,
7373         Parrot/String.pm, Parrot/PackFile/ConstTable.pm,
7374         Parrot/PackFile/Constant.pm, include/parrot/packfile.h,
7375         include/parrot/register.h, lib/Parrot/Assembler.pm,
7376         lib/Parrot/Opcode.pm, lib/Parrot/PackFile.pm, lib/Parrot/String.pm,
7377         lib/Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/Constant.pm,
7378         t/op/integer.t: No, it didn't mess anything up.  I just forgot to
7379         type make. :)
7381 2001-10-06 02:02  thgibbs
7383         * Parrot/Assembler.pm, Parrot/Opcode.pm, Parrot/PackFile.pm,
7384         Parrot/String.pm, Parrot/PackFile/ConstTable.pm,
7385         Parrot/PackFile/Constant.pm, include/parrot/packfile.h,
7386         include/parrot/register.h, lib/Parrot/Assembler.pm,
7387         lib/Parrot/Opcode.pm, lib/Parrot/PackFile.pm, lib/Parrot/String.pm,
7388         lib/Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/Constant.pm,
7389         t/op/integer.t: oops...this messed something up.  I must have
7390         missed something in the patch...I have reverted.
7392 2001-10-06 01:57  thgibbs
7394         * Parrot/Assembler.pm, Parrot/Opcode.pm, Parrot/PackFile.pm,
7395         Parrot/String.pm, Parrot/PackFile/ConstTable.pm,
7396         Parrot/PackFile/Constant.pm, include/parrot/packfile.h,
7397         include/parrot/register.h, lib/Parrot/Assembler.pm,
7398         lib/Parrot/Opcode.pm, lib/Parrot/PackFile.pm, lib/Parrot/String.pm,
7399         lib/Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/Constant.pm,
7400         t/op/integer.t, Types_pm.in, basic_opcodes.ops, config_h.in,
7401         memory.c, packfile.c, process_opfunc.pl, strnative.c, test_main.c:
7402         This patch ensures that all bytecode is of type opcode_t except for
7403         the constant table constants.  That means that almost all of the
7404         INTVALs in the code were replaced with opcode_t and the i pack type
7405         was replaced with the op pack type in calls to pack_arg and such.
7406         Also, since it has been declared that ALL integer constants are to
7407         be 32 bits, some test cases were changed to ensure that an integer
7408         constant was no bigger than 2 ** 31.
7410         process_opfunc.pl was also cleaned up to no longer look at either
7411         opcode_table or interp_guts.h but gather all of its information
7412         from Opcode.pm.
7414         The Assembler.pm module was changed to do late binding of arguments
7415         so that 0 could be treated like 0.0 without having to be so
7416         declared.  Also, only strings now use the [sc:N] intermediate form
7417         as it was unnecessary for integer and float types.
7419 2001-10-05 21:59  gregor
7421         * MANIFEST, languages/jako/Makefile:
7422         Fixed things due to the movement of little_languages/* to
7423         languages/jako.
7425 2001-10-05 18:31  gregor
7427         * MANIFEST:
7428         Updated MANIFEST to reflect recent additions for Jako.
7430 2001-10-05 17:54  gregor
7432         * languages/jako/: Makefile, bench.jako, euclid.jako, fact.jako,
7433         fib.jako, hello.jako, jakoc, leibniz.jako, mandelbrot.jako,
7434         mops.jako, primes.jako, sub.jako:
7435           * Compiler:
7437               * User-defined subroutines.
7438               * Generates assembly code with the Jako code in comments.
7439               * "end;" no longer required at the end of programs.
7440               * Better handling of const-reg and reg-const.
7441               * Optimizes const-const operations to compile-time
7442         evaluations.
7443               * Constants in addition to variables.
7444               * Arithmetic fixes.
7445               * Allow leading minus signs in integer and number constants
7446         (ahem).
7447               * goto's.
7449           * New sample programs:
7451               * leibniz.jako (based on Greg McCarroll's leibniz.pasm
7452         example)
7453               * mandelbrot.jako (based on Leon Brocard's translation of
7454         Glenn Rhodes' C code)
7455               * mops.jako (based on t/test.pasm)
7456               * primes.jako (based on Leon Brocard's primes.pasm example)
7457               * sub.jako (demonstrates a simple user-defined subroutine)
7459 2001-10-05 12:54  gregor
7461         * Parrot/Opcode.pm, lib/Parrot/Opcode.pm:
7462           * Removed mysterious extra copy of code after POD.
7464 2001-10-05 12:46  gregor
7466         * basic_opcodes.ops, t/op/string.t:
7467           * Enabled the previously SKIPped test of printing string regs
7468         after
7469             clear_s
7471           * Made print_s do nothing if the STRING pointer in the register
7472         file
7473             is NULL.
7475 2001-10-04 21:19  dan
7477         * Configure.pl: VMS tweaks
7479 2001-10-04 21:17  dan
7481         * hints/vms.pl: Hints file for VMS
7483 2001-10-04 00:58  bdwheele
7485         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm: fixed but in
7486         Assembler which stopped equates from working.
7488 2001-10-03 21:50  gregor
7490         * Makefile.in, docs/.cvsignore, docs/Makefile, docs/parrotbyte.pod:
7492           * More documentation updates for the packfile stuff.
7494 2001-10-03 21:37  gregor
7496         * docs/parrotbyte.pod:
7497           * Pointed the reader at Parrot::PackFile.
7499 2001-10-03 21:34  gregor
7501         * Parrot/PackFile.pm, lib/Parrot/PackFile.pm:
7502           * Updated documentation to match current implementation.
7504 2001-10-03 18:30  gregor
7506         * .cvsignore, disassemble.pl, Parrot/Assembler.pm,
7507         lib/Parrot/Assembler.pm, t/call.pasm, t/euclid.pasm,
7508         t/local_label.pasm, t/test.pasm, t/test2.pasm, t/test3.pasm,
7509         t/op/basic.t:
7510           * Added new syntax to the assembler to allow square-bracket
7511             arithmetic expressions involving (global) labels, the current
7512             instructions base address ('@'), numeric constants (not
7513         equates)
7514             and basic arithmetic operators (+, -, *, / -- although + and -
7515             are likely to be the only ones used in practice).
7517           * Fixed a bug in Parrot/Assemble.pl that caused macro expansion
7518         to
7519             fail (argument passing wasn't working).
7521           * Enabled t/op/basic.t's last test, which is actually a copy of
7522         the
7523             code from t/call.pasm. Now all tests there are enabled and
7524         working.
7526           * Added new example/test program t/call.pasm to demonstrate
7527         working
7528             macros and poor-man's subroutine calls
7530           * Added header comments to t/*.pasm
7532 2001-10-03 18:00  simon
7534         * ChangeLog:
7535         Needed, since it's in the MANIFEST.
7537 2001-10-03 17:56  simon
7539         * t/op/: string.t, time.t:
7540         Small fixes to help Win32 on its way.
7542 2001-10-03 17:41  simon
7544         * MANIFEST, README:
7545         Oops. Tiny bugs.
7547 2001-10-03 17:39  simon
7549         * MANIFEST, NEWS, README:
7550         README, NEWS and MANIFEST? Could it be time for Parrot 0.0.2? I
7551         think so!
7553 2001-10-03 17:21  simon
7555         * basic_opcodes.ops, interpreter.c, packfile.c:
7556         Evil printf bandaid (which allows Sparc64 to pass tests)
7558         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
7560 2001-10-03 16:58  simon
7562         * string.c, t/op/string.t:
7563         chop fixes for n < 0 and tests
7565         Courtesy of: Alex Gough <alex@rcon.org>
7567 2001-10-03 15:51  thgibbs
7569         * interpreter.c: Changed an occurrence of INTVAL to opcode_t
7571         Courtesy of: Bryan C. Warnock <bwarnock@raba.com>
7573 2001-10-02 17:48  dan
7575         * include/parrot/stacks.h: Fix typo in function name
7577 2001-10-02 17:35  dan
7579         * include/parrot/stacks.h: changed to support new stack stuff
7580         coming after 0.02
7582 2001-10-02 15:01  simon
7584         * Configure.pl, Types_pm.in, basic_opcodes.ops, config_h.in,
7585         interpreter.c, make_op_header.pl, memory.c, packfile.c,
7586         process_opfunc.pl, register.c, string.c, strnative.c,
7587         Parrot/Opcode.pm, Parrot/PackFile.pm, Parrot/String.pm,
7588         lib/Parrot/Opcode.pm, lib/Parrot/PackFile.pm, lib/Parrot/String.pm,
7589         Parrot/PackFile/ConstTable.pm, Parrot/PackFile/Constant.pm,
7590         docs/overview.pod, docs/strings.pod, include/parrot/interpreter.h,
7591         include/parrot/memory.h, include/parrot/packfile.h,
7592         include/parrot/parrot.h, include/parrot/register.h,
7593         include/parrot/stacks.h, include/parrot/string.h,
7594         lib/Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/Constant.pm:
7596         The Great Renaming.
7598 2001-10-02 12:49  gregor
7600         * process_opfunc.pl:
7601           * Fixed a tyop:  s/string/integer/ for INT_CONST expansion
7603 2001-10-02 12:40  simon
7605         * basic_opcodes.ops, process_opfunc.pl, register.c,
7606         include/parrot/register.h:
7607         Move preprocessing of register accessors to process_opfunc.pl
7609         Courtesy of: Jason Gloudon <perl@gloudon.com>
7611 2001-10-02 01:20  ask
7613         * README: add a few lines about lists.
7615 2001-10-01 23:00  brentdax
7617         * Configure.pl, Makefile.in, hints/mswin32.pl: Make 'make clean'
7618         work on Win32 (courtesy of Mattia Barbon <mbarbon@dsi.unive.it>)
7620 2001-10-01 22:50  brentdax
7622         * Configure.pl, test_c.in: More changes for 64-bit compatibility
7624 2001-10-01 21:51  simon
7626         * process_opfunc.pl:
7627         Michael Fischer's patch broke conditionals.
7629 2001-10-01 15:38  simon
7631         * process_opfunc.pl:
7632         Small hack to keep process_opfunc.pl from generating extra return()
7633         statements.
7635         Courtesy of: Michael Fischer <michael@visv.net>
7637 2001-10-01 15:32  simon
7639         * Parrot/Opcode.pm, lib/Parrot/Opcode.pm:
7640         Documentation fix.
7642         Courtesy of: Josh Wilmes <josh@hitchhiker.org>
7644 2001-10-01 01:49  simon
7646         * packfile.c:
7647         Simon is an idiot. Don't trust him with your code.
7649         Courtesy of: Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
7651 2001-10-01 00:59  simon
7653         * Parrot/String.pm, lib/Parrot/String.pm:
7654         Was in manifest, but not in CVS.
7656 2001-09-30 21:25  simon
7658         * MANIFEST, Types_pm.in, assemble.pl, basic_opcodes.ops,
7659         disassemble.pl, packfile.c, pdump.c, process_opfunc.pl,
7660         Parrot/Assembler.pm, Parrot/PackFile.pm,
7661         Parrot/PackFile/ConstTable.pm, Parrot/PackFile/Constant.pm,
7662         Parrot/PackFile/FixupTable.pm, lib/Parrot/Assembler.pm,
7663         lib/Parrot/PackFile.pm, lib/Parrot/PackFile/ConstTable.pm,
7664         lib/Parrot/PackFile/Constant.pm, lib/Parrot/PackFile/FixupTable.pm,
7665         include/parrot/packfile.h, include/parrot/string.h:
7666         Move NVs to the constant table.    * Changes to Types_pm.in to make
7667         life easier for some of the      packing/etc. I'm doing elsewhere.
7668         Also, we now pack 'n' as      'i'.
7670           * Moved the guts of assemble.pl to Parrot/Assembler.pm so that
7671             eventually we can use all these tools together inside scripts
7672             rather than call out to the shell to run the programs.
7674           * As I was tracking down problems, I converted the internal
7675             documentation of the assembler to POD from comments.
7677           * Changed the numeric regexp in the assembler to detect leading
7678             signs and trailing exponents.
7680           * Updated basic_opcodes.ops to fetch numeric constants from the
7681             constant table.
7683           * Enhanced the disassembler in a number of ways to make my life
7684             easier while tracking down bugs (try it out). It now puts in
7685             labels for ops that are the destinations of flow control ops.
7687           * packfile.c now has a TRACE_PACKFILE switch that can be set
7688             to get it to print info as it processes. I needed this while
7689             debugging, but I can remove it or change it before committing
7690             if its a problem.
7692           * Updated pdump.c because it was missing a call to init_world().
7694           * Updated process_opfunc.pl to deal with numeric constants
7695             being stored in the constant table instead of inline.
7697           * Added multiple type support to Parrot/PackFile/Constant.pm
7699           * Added Parrot/String.pm, to be used for constants.
7701           * Added packfile.[hc] functions for allocating new constants
7702             of various types.
7704           * Made string_copy visible to the world in parrot/string.h.
7706         Wow.
7708         Courtesy of: Gregor N. Purdy <gregor@focusresearch.com>
7710 2001-09-29 15:56  gregor
7712         * languages/jako/Makefile:
7713         Removed assumption that '.' is on the path.
7715 2001-09-29 15:55  gregor
7717         * languages/jako/Makefile:
7718         Removed references to leibnitz test program.
7720 2001-09-29 15:21  thgibbs
7722         * t/op/trans.t, basic_opcodes.ops: Added NV casts to transcendental
7723         math ops args to work on Solaris.
7725 2001-09-27 15:15  thgibbs
7727         * assemble.pl: Added case insensitive matches to hex and binary
7728         characters
7730         Courtesy of: Johnathan Scott Duff <duff@cbi.tamucc.edu>
7732 2001-09-27 04:46  thgibbs
7734         * assemble.pl: This patch makes integer constants of the form
7735         0b[01]+ work with perl 5.005.  The oct function in versions of perl
7736         before 5.6 did not handle the 0b numeric prefix; therefore, it was
7737         returning 0.  To fix this, I added a from_binary function that
7738         would take a binary string and return its decimal representation.
7739         Now, instead of blindly calilng oct, it makes a distinction between
7740         0/0x numbers and 0b numbers.
7742 2001-09-26 19:30  thgibbs
7744         * assemble.pl: Error now returns a non-zero status
7746         Courtesy of: Andrew Kuchling <akuchlin@mems-exchange.org>
7748 2001-09-26 19:13  gregor
7750         * MANIFEST, Makefile.in, basic_opcodes.ops, bytecode.c,
7751         interpreter.c, packfile.c, pdump.c, test_main.c,
7752         include/parrot/bytecode.h, include/parrot/interpreter.h,
7753         include/parrot/packfile.h, include/parrot/parrot.h, t/op/integer.t,
7754         t/op/stacks.t:
7755           * bytecode.[hc] removed. packfile.[hc] are the interface to the
7756             packfile/bytecode file from C. May be renamed in the future.
7758           * packfile.[hc] changed to use 'struct PackFile *', etc. instead
7759             of 'PackFile *', just like the interpreter, etc.
7761           * Constants are accessed via the interpreter's 'code' member
7762             (struct PackFile * code). Macros PCONST(i) and PNCONST are
7763             provided to access constants by index and the number of
7764             constants, respectively (assumes a variable 'interpreter' of
7765             the appropriate type is in scope).
7767           * Byte Code is accessed via the interpreter's 'code' member.
7769           * Changed PackFile_Constant to point to a STRING instead of
7770         having
7771             members for the string_make() arguments. Also has a 'type' IV
7772             in preparation for allowing multiple types of constants in
7773             const_table.
7775           * Removed hardcoded example program from test_main.c. We have
7776             plenty of test programs elsewhere.
7778           * test_prog now uses a PackFile to deal with the program before
7779             sending it on to the interpreter.
7781           * Added missing 'end' ops to some tests in t/op/integer.t and
7782             t/op/stacks.t.
7784 2001-09-26 18:38  thgibbs
7786         * assemble.pl: Separated code into functions and added comments.
7788 2001-09-26 18:29  simon
7790         * config_h.in:
7791         Fix 64-bit chunk-base issue.
7793 2001-09-26 06:55  thgibbs
7795         * t/op/bitwise.t: Added end to bitwise tests.
7797 2001-09-26 00:54  dan
7799         * docs/parrot_assembly.pod: Added in the base for threading, I/O,
7800         and interpreter creation. Skeleton only, but it's something to peer
7801         at.
7803 2001-09-25 21:44  thgibbs
7805         * t/op/trans.t: Removed loops in transcendtal op test.
7807 2001-09-25 10:12  simon
7809         * MANIFEST, t/op/basic.t, t/op/bitwise.t, t/op/integer.t,
7810         t/op/string.t, t/op/time.t:
7811         More tests
7813         Courtesy of: Alex Gough <alex@rcon.org>
7815 2001-09-24 19:08  gregor
7817         * t/op/number.t:
7818           * Enabled the clear_n test.
7820 2001-09-24 18:56  gregor
7822         * Parrot/.cvsignore:
7823           * Ignore the generated Types.pm file.
7825 2001-09-24 18:52  gregor
7827         * languages/jako/Makefile, t/op/number.t:
7828           * No need to skip the inc and dec numeric tests anymore. I fixed
7829         the
7830             assembler earlier today.
7832 2001-09-24 18:21  simon
7834         * MANIFEST, t/op/stacks.t:
7835         Oops.
7837 2001-09-24 18:19  simon
7839         * build_interp_starter.pl, interpreter.c, string.c, Parrot/Test.pm,
7840         include/parrot/exceptions.h, include/parrot/interpreter.h,
7841         lib/Parrot/Test.pm, t/op/string.t:
7842         1) captured error output, so can test errors, this might be bad,
7843         not sure.  2) basic tests for register stack frames, including some
7844         errors 3) I think we can stop skipping one of the string tests 4) I
7845         added some more substr tests, but substr was broken, so 5) changed
7846         substr to work with out of range values, or 6) throw an error if
7847         they're far too silly
7849         Courtesy of: Alex Gough <alex@rcon.org>
7851 2001-09-24 17:27  gregor
7853         * basic_opcodes.ops, opcode_table, t/op/number.t:
7854           * Op set_n was missing. Added it and a test for it. We now have
7855         the
7856             same int and num ops, except mod is int-only.
7858 2001-09-24 17:01  gregor
7860         * assemble.pl:
7861           * Fixed a typo: s/Line/line/
7863 2001-09-24 16:02  gregor
7865         * basic_opcodes.ops:
7866           * Fixed dec_n_nc opcode, which had += where it should have had
7867         -=.
7869 2001-09-24 15:34  gregor
7871         * assemble.pl:
7872           * Fixed handling of constants starting with '0' that should not
7873         be
7874             sent through oct(). For example 'set N2 0.1' was being
7875         interpreted
7876             as 'set N2 0' (naughty).
7878             As reported by Leon Brocard <acme@astray.com> in the comments
7879         of
7880             his mandelbrot.pasm example.
7882 2001-09-24 02:21  bdwheele
7884         * assemble.pl: fixed dumb code when --include was not specified.
7886 2001-09-24 02:17  simon
7888         * assemble.pl:
7889         Shit-sweeping.
7891 2001-09-24 01:56  bdwheele
7893         * assemble.pl: * Added --include=dir option to assembler to provide
7894         a path to look for included files.  * Error message of a macro is
7895         defined inside of a macro
7897 2001-09-23 21:29  bdwheele
7899         * assemble.pl: Added __FILE__ equate, fixed __LINE__ equate.
7901 2001-09-23 15:50  simon
7903         * Configure.pl:
7904         Fixed typo. Parrot might work again on non-8.3 filesystems. :)
7906 2001-09-23 02:03  ask
7908         * Configure.pl, test_c.in: fix missing newline at the end of test.c
7909         Courtesy of: acme@astray.com (Leon Brocard)
7911         rename 'test' executable used in Configure process to test_siz.
7913 2001-09-23 01:03  simon
7915         * process_opfunc.pl:
7916         iPaq fix. No, really.
7918 2001-09-23 00:47  simon
7920         * MANIFEST:
7921         Missed several, in fact.
7923 2001-09-23 00:46  simon
7925         * MANIFEST:
7926         Missed one.
7928 2001-09-22 21:13  simon
7930         * assemble.pl:
7931         Assembler register numbering rigour.
7933         Courtesy of: Leon Brocard <acme@astray.com>
7935 2001-09-22 18:20  simon
7937         * Makefile.in, lib/Test/More.pm, lib/Test/Simple.pm,
7938         lib/Test/Utils.pm:
7939         I'm sick of having to install Test::More everywhere. Temporary
7940         measure until we remove this silly dependency.
7942         Also a typo in Makefile.in which suggests some things were only
7943         happening correctly by sheer chance. :)
7945 2001-09-22 18:06  simon
7947         * README:
7948         test.pasm is dead, long like make test.
7950 2001-09-22 17:47  simon
7952         * t/op/number.t:
7953         De-fang overzealous floating point test.
7955 2001-09-22 17:39  simon
7957         * process_opfunc.pl:
7958         Remove hard-coded NV size assumption. Tru64 is nearly there!
7960 2001-09-22 17:18  simon
7962         * assemble.pl, disassemble.pl:
7963         More portability fixups.
7965 2001-09-22 16:44  simon
7967         * assemble.pl, Parrot/PackFile/Constant.pm,
7968         lib/Parrot/PackFile/Constant.pm:
7969         And I *think* this fixes Tru64.
7971 2001-09-22 16:37  simon
7973         * Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/ConstTable.pm:
7975         Oops.
7977 2001-09-22 16:36  simon
7979         * Parrot/PackFile.pm, Parrot/PackFile/ConstTable.pm,
7980         Parrot/PackFile/Constant.pm, lib/Parrot/PackFile.pm,
7981         lib/Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/Constant.pm:
7983         More removal of hard-coded pack formats.
7985 2001-09-22 15:21  simon
7987         * assemble.pl:
7989         Grrr. Why isn't this working?
7991 2001-09-22 15:18  simon
7993         * Parrot/PackFile.pm, Parrot/PackFile/ConstTable.pm,
7994         lib/Parrot/PackFile.pm, lib/Parrot/PackFile/ConstTable.pm:
7996         Make assemble use the PackFile modules; also fixed some bugs in
7997         them.
7999 2001-09-22 14:38  simon
8001         * Configure.pl, MANIFEST, Types_pm.in, assemble.pl, disassemble.pl:
8003         Abstract the argument and opcode packing types and functions out
8004         into a separate module. This *should* help us maintain consistency
8005         when we change the various types.
8007 2001-09-22 00:46  brentdax
8009         * Configure.pl: Delete test.o (or its equivalent) after Configure's
8010         test program finishes.
8012 2001-09-21 21:24  brentdax
8014         * Parrot/Test.pm, lib/Parrot/Test.pm: Fix error with \ as path
8015         separator (courtesy of Mattia Barbon <mbarbon@dsi.unive.it>)
8017 2001-09-21 21:09  gregor
8019         * Parrot/PackFile/ConstTable.pm, Parrot/PackFile/Constant.pm,
8020         lib/Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/Constant.pm:
8022           * Fixed pad calculation (similar to recent bug fix on C library)
8024 2001-09-21 20:23  simon
8026         * disassemble.pl:
8027         Pack types and sizes have gone askew.
8029 2001-09-21 20:18  brentdax
8031         * Configure.pl: Fix typo in setting stuff from the C test program
8033 2001-09-21 10:25  simon
8035         * basic_opcodes.ops, process_opfunc.pl:
8036         Document patches.
8038         Courtesy of: Leon Brocard <acme@astray.com>
8040 2001-09-21 06:06  ask
8042         * Config_pm.in, assemble.pl: fix 5.005_03.
8044 2001-09-21 06:03  ask
8046         * Configure.pl: make the ivsize detection work for us normal people
8047         without . in our PATH.  :-)
8049 2001-09-21 05:56  brentdax
8051         * test_main.c: Change _read to read for portability to Tru64
8052         (Damien Neil <neild@misago.org> and likely many others)
8054 2001-09-21 05:46  ask
8056         * Makefile.in: "update" target to update from cvs.
8058 2001-09-21 05:44  brentdax
8060         * Configure.pl, test_c.in: Fix issues with ivsize and nvsize
8062 2001-09-21 02:43  brentdax
8064         * Configure.pl: Fix a typo that forced the -g flag on
8066 2001-09-20 22:41  dan
8068         * packfile.c: Had some no-value returns. Naughty
8070 2001-09-20 22:40  dan
8072         * t/test.pasm: Added labels to output
8074 2001-09-20 15:39  simon
8076         * Parrot/Opcode.pm, Parrot/Test.pm, lib/Parrot/Opcode.pm,
8077         lib/Parrot/Test.pm:
8078         This patch does two only somewhat related things.
8080         Parrot/Opcode.pm:  Change the hard-wired assumption that sizeof(nv)
8081         = 2*sizeof(iv) to a PConfig-type computed value.
8083         Parrot/Test.pm:  Change it to run with the perl that was used to
8084         generate this version of Parrot.  This is useful if, for example,
8085         you want to use bleadperl to build and test parrot (e.g. to try out
8086         various 64-bit options) but you still have a 5.6.x (or 5.005_xx)
8087         installed as the default 'perl' on your system.  Since perl-5.7.x
8088         is installed 'version-only', a plain 'perl' is quite likely to pick
8089         up the older perl in such cases. Such an older perl might well not
8090         understand pack('q') used in the assembler.
8092         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
8094 2001-09-20 15:14  gregor
8096         * packfile.c:
8097           * Fixed a typo in pad calculation that throwing off unpack and
8098         pack.
8100 2001-09-20 15:03  thgibbs
8102         * t/op/integer.t: Removed overflow tests from integer.t.  set_i_ic
8103         tests now cover all registers.
8105         Courtesy of: Damien Neil neild@misago.org
8107 2001-09-20 14:48  thgibbs
8109         * process_opfunc.pl: Changed process_opfunc.pl to work on 64 bit
8110         machines.
8112 2001-09-20 14:35  simon
8114         * Configure.pl, assemble.pl:
8115         Pack IVs correctly.
8117         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
8119 2001-09-20 14:06  gregor
8121         * languages/jako/jakoc:
8122           * Fixed a tyop in the string interpolation regex.
8124         Courtesy of Michael L Maraist <maraist@UDel.Edu>
8126 2001-09-20 13:56  gregor
8128         * languages/jako/jakoc:
8129           * Updated jakoc to work with the single-destination comp ops.
8131 2001-09-20 05:08  bdwheele
8133         * assemble.pl: macro expansion.  Here's the test macro I was using:
8135         # this uses I32,I31 as temporaries.  # macro must be preceeded by a
8136         label.  testi       macro   num,got,want    print   "Test #"
8137         print   num     print   "..."   set     I32,want        set
8138         I31,got         eq      I32,I31,$ok     print   "NG\n"  branch
8139         $end $ok:       print   "OK\n" $end:    endm
8141         It is invoked as:
8143         Test1:  testi   1,I3,I2
8145 2001-09-20 03:52  dan
8147         * stacks.c, include/parrot/stacks.h: Preliminary files for the
8148         generic stack support
8150 2001-09-20 02:49  bdwheele
8152         * assemble.pl: Added include processing to assemble.pl  the syntax
8153         is: include 'file.to.include'
8155 2001-09-19 23:57  thgibbs
8157         * t/op/integer.t, t/op/number.t, assemble.pl, opcode_table: Fixed
8158         opcode_table listing of if_i_ic and if_n_ic.  Dan had changed the
8159         function to only use 2 args, but the opcode_table still had three
8160         listed.  Fixed integer.t and number.t to use the new comparison
8161         operators.  Improved assemble.pl ability to grok operators by
8162         constructing a function set and comparing operator types.
8164 2001-09-19 22:42  dan
8166         * assemble.pl: Binmodes the output filehandles now. (No more
8167         bytecode munching...)
8169 2001-09-19 22:32  dan
8171         * Configure.pl, basic_opcodes.ops, opcode_table, process_opfunc.pl,
8172         t/euclid.pasm, t/test.pasm, t/test2.pasm: Changed opcodes so
8173         conditional branches take a single argument, and fall through
8174         otherwise.
8176 2001-09-19 21:19  thgibbs
8178         * memory.c: Added explanation of mem_allocate_aligned give by Dan
8179         Sugalski
8181         Courtesy of: Josh Wilmes <josh@hitchhiker.org>
8183 2001-09-19 21:04  thgibbs
8185         * include/parrot/interpreter.h, Configure.pl,
8186         build_interp_starter.pl, bytecode.c, config_h.in, interpreter.c,
8187         process_opfunc.pl: Changed opcode_t from a union to a configurable
8188         type.
8190 2001-09-19 20:54  thgibbs
8192         * assemble.pl: Missed a couple of changes for 64 bit portability.
8194 2001-09-19 20:37  gregor
8196         * packfile.c, include/parrot/packfile.h:
8197           * Added "methods" for setting and getting all the various
8198         attributes,
8199             probably sufficient for an assembler to use the library.
8201 2001-09-19 20:04  thgibbs
8203         * assemble.pl: Modifications to run on 64 bit platforms.  To run on
8204         a 64 bit platform manually change the  setting for 'i' from 'l' to
8205         'q'.  This should be automatically done by a Configure setting in
8206         the near future.
8208 2001-09-19 19:10  thgibbs
8210         * config_h.in: changed c++ comment to c comment.
8212         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
8214 2001-09-19 17:48  gregor
8216         * .cvsignore, MANIFEST, Makefile.in, packfile.c, pdump.c,
8217         include/parrot/packfile.h:
8218           * C code for dealing with PackFiles as if they were objects.
8219         Mostly
8220             read-only interface for now, but it would not be hard to make
8221         it
8222             read-write. [packfile.c, include/parrot/packfile.h]
8224           * PackFile Dumping program that falls short of disassembling, but
8225             tests the above code and provides a hex listing of the byte
8226         code
8227             contents of the PackFile. [pdump.c]
8229           * New Makefile target 'pdump' for the above program, and related
8230             Makefile.in changes.
8232           * Updated MANIFEST to reflect the added files
8234           * Update .cvsignore to ignore pdump.
8236 2001-09-19 14:55  thgibbs
8238         * MANIFEST: Added number.t and trans.t to MANIFEST
8240 2001-09-19 05:40  thgibbs
8242         * process_opfunc.pl: Now taking & of opcode_t instead of i member
8243         of union opcode_t.  I hope this will be more portable for set_n_nc.
8245 2001-09-19 05:39  thgibbs
8247         * t/op/integer.t: Added end to test 1.
8249 2001-09-19 00:09  thgibbs
8251         * t/op/number.t: Added end to each test
8253 2001-09-19 00:00  simon
8255         * t/op/number.t:
8256         Number tests! Wooo!
8258         Courtesy of: Damien Neil <neild@misago.org>
8260 2001-09-18 23:52  thgibbs
8262         * interpreter.c: Added casts to appropriate types to make -Wall not
8263         complain on certain printf formats
8265 2001-09-18 23:31  thgibbs
8267         * t/op/integer.t: Added end to each test.
8269 2001-09-18 22:54  thgibbs
8271         * t/op/trans.t: Added trans.t for transcendental math function
8272         tests.
8274 2001-09-18 22:28  simon
8276         * MANIFEST:
8277         MANIFEST updates. (And notice how I carefully snuck in the
8278         t/op/integer.t there...)
8280         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
8282 2001-09-18 22:26  simon
8284         * t/: integer.t, op/integer.t:
8285         Except it doesn't go there. Duh.
8287 2001-09-18 22:25  simon
8289         * t/integer.t:
8290         Tests for integer ops.
8292         Courtesy of: Damien Neil <neild@misago.org>
8294 2001-09-18 22:03  thgibbs
8296         * include/parrot/bytecode.h, include/parrot/interpreter.h,
8297         build_interp_starter.pl, bytecode.c, config_h.in, interpreter.c,
8298         make_op_header.pl, process_opfunc.pl, test_main.c: Changed IV to
8299         opcode_t union for operators.  This required a few perl script
8300         changes to output the correct type.  There were also some changes
8301         to allow -pedantic in gcc
8303 2001-09-18 21:07  gregor
8305         * disassemble.pl, Parrot/PackFile.pm,
8306         Parrot/PackFile/ConstTable.pm, Parrot/PackFile/Constant.pm,
8307         lib/Parrot/PackFile.pm, lib/Parrot/PackFile/ConstTable.pm,
8308         lib/Parrot/PackFile/Constant.pm:
8309         Converted the disassembler to use the Parrot::PackFile Perl classes
8310         to do its job.
8312 2001-09-18 19:18  brentdax
8314         * Makefile.in: Fix missing functions for real this time.  (I
8315         swear!)
8317 2001-09-18 18:49  brentdax
8319         * Configure.pl: Remove unnecessary -I.. (courtesy of Andy Dougherty
8320         <doughera@lafayette.edu>}
8322 2001-09-18 18:47  brentdax
8324         * Makefile.in: Fix bugs with missing math, etc. functions
8326 2001-09-18 14:42  thgibbs
8328         * strnative.c: Sorry Simon...forgot bustart was a void* not a
8329         char*.
8331 2001-09-18 13:59  thgibbs
8333         * strnative.c: Removed unnecessary IV cast in concat.
8335 2001-09-18 13:58  thgibbs
8337         * t/op/string.t: Removed unnecessary IV cast in concat.  Added end
8338         to concat test in string.t
8340 2001-09-18 12:07  gregor
8342         * languages/jako/jakoc:
8343           * var num ... no longer requires assignment
8344           * automatic casting between int and num
8345           * Fixed an error message
8347         Courtesy of: Simon Cozens <simon@cvs.perl.org>
8349 2001-09-18 11:57  simon
8351         * TODO:
8352         Gonna have to start thinking of more things to do, soon.
8354 2001-09-18 10:42  simon
8356         * opcode_table:
8357         Introduce a little more tidiness into the opcode table.
8359 2001-09-18 03:06  gregor
8361         * basic_opcodes.ops, opcode_table, t/euclid.pasm:
8362         Resurrected register-const ops per Dan's request.
8364 2001-09-18 02:20  gregor
8366         * .cvsignore, Configure.pl, MANIFEST, Makefile.in,
8367         build_interp_starter.pl, bytecode.h, events.h, exceptions.h,
8368         global_setup.h, interpreter.h, io.h, memory.h, parrot.h,
8369         process_opfunc.pl, register.h, stacks.h, string.h, strnative.h:
8370         Committed some files that were missed in the last *.h moving
8371         commit.
8373 2001-09-18 02:17  gregor
8375         * include/parrot/.cvsignore: Fixed a typo in .cvsignore.
8377 2001-09-18 02:16  gregor
8379         * include/parrot/: .cvsignore, bytecode.h, events.h, exceptions.h,
8380         global_setup.h, interpreter.h, io.h, memory.h, parrot.h,
8381         register.h, stacks.h, string.h, strnative.h: Added .cvsignore file
8382         missed in last commit for the move of *.h to include/parrot.
8384 2001-09-18 01:32  simon
8386         * t/Makefile:
8387         Trivial "clean" target to t/Makefile.
8389 2001-09-18 01:32  simon
8391         * assemble.pl, build_interp_starter.pl, disassemble.pl,
8392         Parrot/Opcode.pm, lib/Parrot/Opcode.pm:
8393         Change icky Digest::MD5 for nice simple unpack()
8395         Courtesy of: Jonathan Scott Duff <duff@cbi.tamucc.edu>
8397 2001-09-18 00:35  simon
8399         * basic_opcodes.ops, opcode_table, docs/parrot_assembly.pod,
8400         t/op/string.t:
8401         New concat op. Hey, if I'm going to talk about it in an article,
8402         better implement it...
8404 2001-09-17 22:54  gregor
8406         * MANIFEST, Parrot/PackFile.pm, Parrot/PackFile/ConstTable.pm,
8407         Parrot/PackFile/Constant.pm, Parrot/PackFile/FixupTable.pm,
8408         lib/Parrot/PackFile.pm, lib/Parrot/PackFile/ConstTable.pm,
8409         lib/Parrot/PackFile/Constant.pm, lib/Parrot/PackFile/FixupTable.pm:
8411         Functions for reading, writing and manipulating Parrot Pack Files.
8412         NOTE: This is a proposed term based on the fact that the file
8413         contains more than just byte code, and another language (Java)
8414         calls its binary files by a broader notion of what's in them (Class
8415         Files). Since Perl has packages, and since we use pack() to write
8416         them, we'll call them PackFiles (at least for now).
8418         That does, however, beg the question of file extension. Should we
8419         name the files "foo.pack" instead of "foo.pbc"?
8421 2001-09-17 20:23  thgibbs
8423         * interpreter.c, test_main.c: Uncuddled else statements for coding
8424         standard.
8426 2001-09-17 19:57  gregor
8428         * Parrot/Opcode.pm, lib/Parrot/Opcode.pm:
8429         Added a $revision variable, parsing of the CVS Id line in
8430         opcode_table and a &revision() subroutine.
8432 2001-09-17 19:53  gregor
8434         * opcode_table:
8435         Added a CVS Id tag to it.
8437 2001-09-17 18:58  thgibbs
8439         * interpreter.c: Cleared interpreter flags on creation.
8441 2001-09-17 18:38  gregor
8443         * build_interp_starter.pl, bytecode.c, bytecode.h, interpreter.c,
8444         interpreter.h, test_main.c:
8445           * Provides macros in interp_guts.h for setting up arrays with
8446             op names and op arg counts (done via build_interp_starter.pl).
8448             These are used in the op tracing
8450           * The functions in bytecode.[hc] pass around a pointer to the
8451         length
8452             of the bytecode so that later when we get to runops, we know
8453             how much bytecode we've got and we can detect out-of-bounds
8454             jumping. The documentation is updated, too.
8456           * runops in interpreter.c now looks at interpreter->flags to
8457             decide if the core of runops should be runops_trace_core or
8458             runops_notrace_core. These new functions contain just the
8459             while-loop portion of runops. A new function runops_generic
8460             does any other setup (such as checking the bytecode
8461             fingerprint) or wrapup (such as complaining if we ended up
8462             out-of-bounds). NOTE: I didn't know what we should do for
8463             functions in here that are not part of the api, so I gave
8464             them docs with 'TODO' marks mentioning they really aren't
8465             part of the api. Guidance appreciated.
8467           * test_main.c now checks for '-t' arg and sets the tracing flag
8468             on its interpreter instance as appropriate.
8470 2001-09-17 17:47  bdwheele
8472         * assemble.pl: added some default equates, and if they're sub
8473         references, they are computed each time it is referenced.
8475 2001-09-17 16:15  dan
8477         * interpreter.h:
8479         Added flags to the interpreter structure and defined a few.
8481 2001-09-17 15:51  simon
8483         * bytecode.h, string.h:
8484         VAR_SCOPE on globals.
8486 2001-09-17 15:20  simon
8488         * MANIFEST:
8489         Parrot/Opcode.pm, Parrot/Test.pm into MANIFEST.
8491 2001-09-17 15:05  gregor
8493         * t/jump.pasm, MANIFEST:
8494         Added a test program to demonstrate jump_i.
8496 2001-09-17 14:44  thgibbs
8498         * register.c: Fixed register pop not using correct offset (off by
8499         one).
8501         Courtesy of: Philip Kendall <pak@ast.cam.ac.uk>
8503 2001-09-17 13:56  thgibbs
8505         * interpreter.c, register.c: Added code to call Parrot_clear_s
8506         during initialization and Parrot_clear_s and Parrot_clear_p when a
8507         new stack frame is pushed.
8509 2001-09-17 13:51  gregor
8511         * languages/jako/: Makefile, bench.jako, euclid.jako, fact.jako,
8512         fib.jako, hello.jako: Added bench.pasm to "clean"
8514 2001-09-17 13:49  gregor
8516         * languages/jako/: jakoc, Makefile:
8517         Added CVS Id tag.
8519 2001-09-17 13:49  gregor
8521         * languages/jako/jakoc:
8522         Code streamlining.
8524         Courtesy of: Buggs <buggs-perl6@splashground.de>
8526 2001-09-17 13:29  gregor
8528         * MANIFEST, opcheck.pl:
8529         Added an opcode_table checker to make sure that all opcodes listed
8530         there conform to a simple set of naming rules (rules themselves, of
8531         course, are subject to change).
8533 2001-09-17 13:23  thgibbs
8535         * string.c: Modified string.c to correctly use the return value of
8536         realloc.
8538 2001-09-17 05:26  brentdax
8540         * Makefile.in: Making the Makefile smarter
8542 2001-09-16 23:06  brentdax
8544         * hints/mswin32.pl: Finishing the Configure hints
8546 2001-09-16 23:05  brentdax
8548         * Configure.pl, Makefile.in, parrot.h, test_main.c,
8549         Parrot/Opcode.pm, lib/Parrot/Opcode.pm: Win32 compatibility,
8550         Configure hints, 5.005 compatibility, MANIFEST checking
8552 2001-09-16 19:25  bdwheele
8554         * assemble.pl: parrot assembly equates
8556 2001-09-16 18:03  gregor
8558         * Makefile.in:
8559         Added 'test' target to run new test suite.
8561 2001-09-16 17:33  simon
8563         * basic_opcodes.ops:
8564         'not' was being !, rather than ~. Too many Perl programmers here, I
8565         suspect.
8567         Courtesy of: Tom Hughes <tom@compton.nu>
8569 2001-09-16 17:21  simon
8571         * Parrot/Test.pm, lib/Parrot/Test.pm, t/harness, t/op/basic.t,
8572         t/op/string.t:
8573         A *real* test suite!
8575         Courtesy of: "Mattia Barbon" <mbarbon@dsi.unive.it>
8577 2001-09-16 16:49  gregor
8579         * basic_opcodes.ops, opcode_table:
8580         At Dan's request, my new register-constant comparison ops have been
8581         removed.
8583 2001-09-16 16:40  gregor
8585         * languages/jako/jakoc:
8586         Fixed a copy-paste error in one of jakoc's error messages.
8588         Courtesy of: Buggs <buggs-perl6-list@splashground.de>
8590 2001-09-16 16:37  gregor
8592         * languages/jako/jakoc:
8593         Modified comparison implementation to use temporary registers in
8594         the case of register-constant and constant-register comparisons.
8595         This will allow the compiler to emit code that works when the
8596         constant-comparison ops are backed out of Parrot. If the ops ever
8597         make their way back in, then jakoc can emit more efficient code
8598         again.
8600 2001-09-16 16:19  bdwheele
8602         * assemble.pl, t/local_label.pasm: Added local labels ($whatever)
8603         ... though not subroutine based like the documentation wants, they
8604         are local to the last non-local label defined.
8606 2001-09-16 14:02  simon
8608         * MANIFEST:
8609         And remember, when you add stuff, keep the manifest up to date.
8611 2001-09-16 02:55  ask
8613         * Makefile.in: a "shared" target for building libparrot.so
8615 2001-09-16 02:45  thgibbs
8617         * bytecode.c, bytecode.h, events.h, exceptions.h, global_setup.c,
8618         global_setup.h, interpreter.c, interpreter.h, io.h,
8619         make_op_header.pl, memory.c, memory.h, parrot.c, parrot.h,
8620         process_opfunc.pl, register.c, register.h, stacks.h, string.c,
8621         string.h, strnative.c, strnative.h, test_main.c: Updated files to
8622         use the coding standard PDD.  Also changed Perl_Interp to
8623         Parrot_Interp.
8625 2001-09-16 02:21  ask
8627         * README: emphasise the bits about the license not being worked out
8628         yet.
8630 2001-09-15 22:21  simon
8632         * process_opfunc.pl:
8633         basic_opcodes.c should *scream* that it's autogenerated.
8635 2001-09-15 21:58  gregor
8637         * languages/jako/Makefile:
8638         Fixed Makefile to use 'jakoc' instead of 'jako_compiler.pl' to
8639         compile.
8641 2001-09-15 21:58  gregor
8643         * languages/jako/: jako_compiler.pl, jakoc:
8644         Renamed the Jako compiler to jakoc from jako_compiler.pl
8646 2001-09-15 21:51  gregor
8648         * languages/jako/: Makefile, bench.jako, euclid.jako,
8649         jako_compiler.pl:
8650         Added a new bench.jako example based on Leon Brocard's Bench.java.
8652         Jako Compiler:   * fix a bug in assignment handling   * add some
8653         more conditionals to while and if   * revert to using implicit
8654         opcodes in a few cases that were broken     before the assembler
8655         patch went in recently.
8657 2001-09-15 21:46  gregor
8659         * assemble.pl, basic_opcodes.ops, opcode_table:
8660         New ops for register-constant INTEGER comparisons:
8662           {eq,ne,lt,le,gt,ge}_ic_ic
8664         New ops for register-register and register-constant NUMERIC
8665         comparisons:
8667           eq_nc_ic
8668           {ne,lt,le,gt,ge}_{n,nc}_ic
8670         Assembler:
8672           Allow uppercase and underscores in labels.
8674           Tweaks to the op infer code to make it work with the examples
8675         I've been
8676           creating.
8678 2001-09-15 19:16  thgibbs
8680         * README: Updated README to include Configure.pl
8682 2001-09-15 17:05  simon
8684         * build_interp_starter.pl:
8685         Casting happiness
8687         Courtesy of: Jarkko Hietaniemi <jhi@cc.hut.fi>
8689 2001-09-15 16:45  simon
8691         * assemble.pl:
8692         And the same again: Parrot/Opcode.pm wasn't "..-aware".
8694 2001-09-15 16:40  simon
8696         * t/Makefile:
8697         The Parrot/Opcode.pm dependency means we need to do -I.. in the
8698         test Makefile
8700 2001-09-15 12:26  simon
8702         * memory.c:
8703         Fixed to match the coding standards.
8705         Courtesy of: Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
8707 2001-09-15 01:57  ask
8709         * Configure.pl, Makefile.in, Parrot/Opcode.pm,
8710         lib/Parrot/Opcode.pm: make the Makefile use the perl that was used
8711         to run Configure.pl
8713 2001-09-15 01:48  ask
8715         * Parrot/Opcode.pm, lib/Parrot/Opcode.pm: if we need perl 5.6, just
8716         say so. :-)
8718 2001-09-15 01:42  gregor
8720         * languages/jako/: euclid.jako, fact.jako, fib.jako,
8721         jako_compiler.pl:
8722         Compiler: Added variable interpolation in double-quoted strings.
8723         Examples: Made use of variable interpolation.
8725 2001-09-15 01:28  gregor
8727         * Parrot/.cvsignore:
8728         Ignore the Config.pm generated file.
8730 2001-09-15 01:22  gregor
8732         * languages/jako/: .cvsignore, Makefile, euclid.jako, fact.jako,
8733         fib.jako, hello.jako, jako_compiler.pl:
8734         gnp: Added some more sample Jako files and added many more
8735         operators to the compiler. Preparations for supporting all the Math
8736         and bitwise ops.
8738 2001-09-14 19:06  simon
8740         * assemble.pl, build_interp_starter.pl, disassemble.pl,
8741         make_op_header.pl, process_opfunc.pl, Parrot/Opcode.pm,
8742         lib/Parrot/Opcode.pm:
8743         Move common table reading stuff to a module.
8745         Courtesy of: Damien Neil <neild@misago.org>
8747 2001-09-14 17:42  simon
8749         * .cvsignore:
8750         More .cvsignore foo.
8752 2001-09-14 17:40  simon
8754         * assemble.pl, config_h.in:
8755         De-coredump
8757         Courtesy of: Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
8759 2001-09-14 17:38  simon
8761         * assemble.pl, t/Makefile:
8762         Make assemble.pl look in its parent directory if the data files it
8763         needs aren't in the current one. Plus a Makefile that lets "make
8764         foo.pbc" work in t/
8766         Courtesy of: Rocco Caputo <troc@netrus.net>
8768 2001-09-14 16:29  simon
8770         * make_op_header.pl:
8771         Wildly experimental patch to make Parrot compile on FreeBSD. (And
8772         probably segfault everywhere else.)
8774 2001-09-14 15:58  dan
8776         * languages/jako/: euclid.jako, jako_compiler.pl:
8778         Added in the first mini-language that targets Parrot.
8780         Courtesy of: "Gregor N. Purdy" <gregor@focusresearch.com>
8782 2001-09-14 15:20  dan
8784         * memory.c: Was misaligning returned memory. Fixed.
8786 2001-09-14 15:08  simon
8788         * Makefile.in, basic_opcodes.ops, bytecode.c, global_setup.c,
8789         interpreter.c, interpreter.h, memory.c, parrot.c, parrot.h,
8790         register.c, register.h, string.c, string.h, strnative.c,
8791         test_main.c:
8792         Fixes to include <parrot/foo.h>
8794         Courtesy of: Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
8796 2001-09-14 12:05  simon
8798         * strnative.c:
8799         Appease Tru64.
8801 2001-09-14 12:01  simon
8803         * memory.c:
8804         Appease Tru64.
8806 2001-09-14 11:54  simon
8808         * interpreter.c:
8809         Remove lvalue cast.
8811 2001-09-14 11:45  simon
8813         * Configure.pl:
8814         Be 5.005 friendly.
8816 2001-09-14 11:39  simon
8818         * Configure.pl:
8819         Tru64 cc doesn't like -Wall
8821 2001-09-14 10:57  simon
8823         * Config_pm.in, Configure.pl, MANIFEST, Makefile, Makefile.in,
8824         assemble.pl, build_interp_starter.pl, bytecode.c, bytecode.h,
8825         config.h.in, config_h.in, disassemble.pl, interpreter.c:
8826         Configure now generates Makefile
8828         Courtesy of: Brent Dax <brentdax@cpan.org>
8830 2001-09-14 10:08  simon
8832         * t/test3.pasm:
8833         Add "end"
8835         Courtesy of: Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
8837 2001-09-14 10:07  simon
8839         * assemble.pl:
8840                 * uses Getopt::Long for options.  -c is now --checksyntax.
8841         I wasn't
8842         sure how to keep compatible (patches welcome!)         * options
8843         include:                 --help                 --version
8844               --verbose                 --output=file
8845         --listing=file                 --checksyntax         * produces
8846         verbose listing of what the assembler saw :)  Only one nitpick with
8847         it:  unknown symbols are given as 0xffffffff, unfortunately, this
8848         includes symbols which may be defined later in the file (i.e.
8849         forward jumps).
8851         Courtesy of: Brian Wheeler <bdwheele@indiana.edu>
8853 2001-09-14 10:06  simon
8855         * strnative.c:
8856         substr growth fixup
8858         Courtesy of: Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
8860 2001-09-14 10:03  simon
8862         * bytecode.c, global_setup.c, interpreter.c, memory.c, memory.h,
8863         register.c, string.c, strnative.c, test_main.c:
8864         Coding standards conformance
8866         Courtesy of Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
8868 2001-09-14 09:46  simon
8870         * assemble.pl:
8871         Make the assembler grok transcendental maths again.  Courtesy of:
8872         Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
8874 2001-09-13 17:29  simon
8876         * assemble.pl:
8877         Better opcode guessing, from Brian Wheeler. (Again!)
8879 2001-09-13 17:20  dan
8881         * docs/parrot_assembly.pod:
8883         Took out duplicate entries for iton, ntoi, and tostring.
8885 2001-09-13 17:16  simon
8887         * assemble.pl, basic_opcodes.ops, opcode_table:
8888         From Brian Wheeler:
8890         This patch gives the assembler support of '\a','\n','\r','\t', and
8891         '\\' in string constants.
8893         In addition, it changes (for all registers) "I reg %li is ..." to
8894         just the value of the register.  Printing constants is also
8895         supported, but alas, you have to specify the type (print_sc,
8896         print_ic, print_nc).
8898 2001-09-13 15:38  simon
8900         * assemble.pl:
8901         Why don't I actually *test* this stuff before applying it, eh?
8903 2001-09-13 15:34  simon
8905         * TODO, t/euclid.pasm:
8906         From: "Gregor N. Purdy" <gregor@focusresearch.com> Subject: [patch
8907         (really)] Removed opcode qualifers t/euclid.pasm to exercise opcode
8908         inference
8910 2001-09-13 14:42  simon
8912         * assemble.pl:
8913         A new assembler, from Brian Wheeler.
8915 2001-09-13 09:44  simon
8917         * basic_opcodes.ops, interpreter.h, parrot.h, strnative.c,
8918         test_main.c:
8919         Two more from Tom Hughes:     Patch to fix C++ style comments
8920         Patch to remove use of structure constant/cast
8922 2001-09-13 09:39  simon
8924         * TODO, docs/strings.pod:
8925         Update string docs.
8927 2001-09-13 09:36  simon
8929         * Makefile, basic_opcodes.ops:
8930         Tom Hughes      Patch to link with the maths library Tom Hughes
8931          Patch to fix += on rvalue
8933 2001-09-13 08:57  simon
8935         * MANIFEST:
8936         I guess nobody's been using the nightly builds...
8938 2001-09-13 08:27  simon
8940         * assemble.pl, basic_opcodes.ops, opcode_table:
8941         Bitwise ops, from Brian Wheeler.
8943 2001-09-13 08:23  simon
8945         * .cvsignore, t/.cvsignore:
8946         .cvsignore's, from Gregor Purdy.
8948 2001-09-13 08:22  simon
8950         * Makefile:
8951         Euclidean test and test output rearranging from Gregor Purdy.
8953 2001-09-13 08:21  simon
8955         * assemble.pl, basic_opcodes.ops, disassemble.pl, opcode_table:
8956         Math ops from Gibbs Tanton.
8958 2001-09-13 08:14  simon
8960         * basic_opcodes.ops, opcode_table, string.c, string.h, strnative.c,
8961         t/test2.pasm:
8962         String substr op; also rearranged "encoding" to be a vtable
8963         pointer, not an array index. Haven't changed docs to reflect this,
8964         oops.
8966         Simon
8968 2001-09-12 19:48  dan
8970         * t/euclid.pasm: Implementation of Euclid's Algorithm, courtesy of
8971         Gregor Purdy
8973 2001-09-12 19:39  dan
8975         * basic_opcodes.ops, opcode_table: From Gregor Purdy. Adds mod_i.
8977 2001-09-12 19:23  dan
8979         * interpreter.h, parrot.h: Quick placeholder entry for string
8980         function tables
8982 2001-09-12 18:58  dan
8984         * memory.c: Added in a cast to make gcc happy.
8986 2001-09-12 16:44  dan
8988         * docs/parrot_assembly.pod:
8990         PDD describing parrot's assembly language and the opcodes in it
8992 2001-09-12 14:20  dan
8994         * memory.c:
8995         Fixed alignment issues with allocation
8997 2001-09-12 10:54  simon
8999         * Makefile, assemble.pl, bytecode.c, disassemble.pl,
9000         make_op_header.pl, opcode_table, process_opfunc.pl:
9001         Brian Wheeler's big patch:
9003         * Changes the opcode_table file to provide additional information
9004         about the operands.  Case shouldn't be a problem since that data
9005         never becomes a C symbol [this is pretty much as before]
9007         * Padding errors solved:  assemble.pl and bytecode.c were padding
9008         the constants incorrectly.  It should have been 4-(size % 4), not
9009         just (size % 4).  It is now fixed in both places.
9011         * assembler has less special cases, and should be easier to hang
9012         error checking on
9014         * disassembler dumps constant table and the format is a bit
9015         prettier, including register names, etc.
9017 2001-09-11 23:21  dan
9019         * build_interp_starter.pl, interpreter.c:
9021         Abstracted the runops function core into a macro for easy
9022         replacement later.
9024 2001-09-11 10:43  simon
9026         * Configure.pl, MANIFEST, Makefile, config.h, config.h.in:
9027         Configure system from Brent Dax <brentdax@cpan.org>
9029 2001-09-11 09:38  simon
9031         * assemble.pl, test.pbc:
9032         From: Bryan C. Warnock <bwarnock@raba.com> Subject: Patch:
9033         assembler deferred output
9035         Also got rid of the bytecode, since that's probably way out of
9036         date.
9038 2001-09-11 09:26  simon
9040         * basic_opcodes.ops, opcode_table, t/test2.pasm:
9041         From: Bryan C. Warnock <bwarnock@raba.com> Subject: length_s_i
9042         patch
9044 2001-09-10 23:20  simon
9046         * MANIFEST:
9047         And that move needs a MANIFEST change. So many things to remember!
9049 2001-09-10 23:18  simon
9051         * t/: test.pasm, test2.pasm, test3.pasm:
9052         Move tests to t/. (Oh, CVS doesn't work the way I think it does.)
9054 2001-09-10 23:18  simon
9056         * test.pasm, test2.pasm, test3.pasm:
9057         Move tests to t/
9059 2001-09-10 23:04  dan
9061         * test3.pasm:
9063         Register push/pop test
9065 2001-09-10 22:47  simon
9067         * basic_opcodes.ops, bytecode.c, parrot.h, test_main.c:
9068         Fix up format warnings, from Sam Tregar <sam@tregar.com>.
9069         (Modified to avoid conflict with Dan's changes.)
9071 2001-09-10 22:45  dan
9073         * disassemble.pl:
9075         Happier about blanks in opcode_table
9077 2001-09-10 22:40  dan
9079         * interpreter.c, register.c:
9081         Yanked out debugging code, since these work OK. The bug I want is
9082         elsewhere.
9084 2001-09-10 22:30  simon
9086         * MANIFEST:
9087         Uhm. We want make_op_header.pl. We really, really do.
9089 2001-09-10 22:26  simon
9091         * Makefile, TODO, assemble.pl, basic_opcodes.ops,
9092         build_interp_starter.pl, disassemble.pl, make_op_header.pl,
9093         opcode_table, process_opfunc.pl:
9094         Automatic opcode numbering, from Leon Brocard <acme@astray.com>.
9095         This means we can add lots more opcodes without fiddling about with
9096         the numbers. Hooray!
9098         Don't forget that "end" needs to be op zero, else the interpreter
9099         falls off the end of the code. This is Bad, and I wonder if there's
9100         a way around it.
9102 2001-09-10 19:49  simon
9104         * MANIFEST, make_op_table_build.pl:
9105         Hey! This doesn't do anything...
9107 2001-09-10 19:46  simon
9109         * Makefile:
9110         "clean" target cleanup from Bryan C. Warnock <bwarnock@raba.com>.
9112 2001-09-10 18:31  simon
9114         * MANIFEST:
9115         You know what this means...
9117 2001-09-10 18:30  simon
9119         * assemble.pl:
9120         "use strict" patch from Leon Brocard <acme@astray.com>. Hey, why
9121         wait for a release...? :)
9123 2001-09-10 18:13  simon
9125         * interpreter.c:
9126         Bad Dan! No cookie!
9128 2001-09-10 17:56  simon
9130         * README:
9131         A *real* README file, which doesn't claim it isn't for public
9132         consumption.
9134 2001-09-10 17:02  simon
9136         * TODO:
9137         More things to do.
9139 2001-09-10 16:56  dan
9141         * TODO: Added in assembler gripe. Also added a few blank lines for
9142         clarity
9144 2001-09-10 16:49  dan
9146         * register.h, register.c: Renamed the core functions so the opcodes
9147         can find 'em OK. (There were some conflicts)
9149 2001-09-10 16:48  dan
9151         * basic_opcodes.ops, opcode_table: Added register window ops
9153 2001-09-10 11:07  simon
9155         * TODO:
9156         Trivial TODO list.
9158 2001-09-10 11:05  simon
9160         * test.pbc, test2.pasm, test_main.c: Other string bits and pieces;
9161         note "-s" flag to test prog.
9163 2001-09-10 11:01  simon
9165         * docs/strings.pod:
9166         New string documentation.
9168 2001-09-10 11:01  simon
9170         * basic_opcodes.ops, opcode_table:
9171         String ops.
9173 2001-09-10 10:53  simon
9175         * global_setup.c:
9176         More string fu.
9178 2001-09-10 10:51  simon
9180         * memory.h:
9181         Just some more aliases for now. Used by string handling stuff.
9183 2001-09-10 10:50  simon
9185         * assemble.pl, bytecode.c, bytecode.h:
9186         Temporary hack to store string constants in bytecode and recreate
9187         them at runtime.
9189 2001-09-10 10:48  simon
9191         * op.h:
9192         op.h is now generated by the Makefile; remove it.
9194 2001-09-10 10:47  simon
9196         * Makefile:
9197         clean and op.h Makefile targets.
9199 2001-09-10 10:45  simon
9201         * string.c, string.h, strnative.c:
9202         More string vtable stuff.
9204 2001-09-07 21:07  dan
9206         * assemble.pl:
9208         Much less picky about whitespace in the opcode_table now. (Doesn't
9209         whine on blank lines)
9211 2001-09-07 16:23  dan
9213         * Makefile, assemble.pl, global_setup.h, interpreter.c,
9214         interpreter.h, opcode_table, parrot.h, test.pasm: (Here's hoping
9215         this takes) Added global_setup.h to declare init_world function
9217         Moved variable declarations out of the interpreter loop for small
9218         speed boost.
9220         Changed end opcode to now be opcode #0. A function is provided for
9221         it, but isn't ever executed.
9223         When the interpreter sees an opcode 0 in the stream it means the
9224         end of stream. Things were coring on Cygwin otherwise. (I think I
9225         was dereferencing a zero, which is bad)
9227 2001-09-06 22:07  dan
9229         * basic_opcodes.ops, process_opfunc.pl:
9231         Minor tweaks to basic_opcodes.ops to fix some NV issues. The rest
9232         are minor changes now that things are in a fixed state.
9234 2001-09-06 16:13  dan
9236         * basic_opcodes.c, test_opcodes.c:
9237         test_opcodes.c is now irrelevant--they're all in basic_opcodes.ops.
9239         basic_opcodes.c is now autogenerated from basic_opcodes.ops, and
9240         should be nuked. So it is. :)
9242 2001-09-06 03:35  dan
9244         * basic_opcodes.ops, build_interp_starter.pl, process_opfunc.pl:
9245         Scripts to build the header file that holds the function table
9246         creation code, as well as the script to turn an opcode file to C
9247         source. (And the basic opcode functions turned into an opcode
9248         source file)
9250 2001-09-06 03:31  dan
9252         * Makefile, interpreter.c:
9253         Changes to support the autogeneration of the opcode function
9254         pointer table in interpreter.c, along with the changes to the
9255         Makefile needed.
9257 2001-09-05 13:27  simon
9259         * bytecode.c, config.h, docs/opcodes.pod, docs/overview.pod,
9260         docs/parrotbyte.pod, docs/vtables.pod:
9261         Added stubs for the documents; working on them this week. (What's
9262         left of it.) config.h change is just to type VTABLE, and the
9263         bytecode thing you might want to revoke. It's apidoc for the
9264         functions in there.
9266 2001-09-03 18:26  simon
9268         * docs/strings.pod:
9269         A start on the string API documentation.
9271 2001-09-03 17:43  simon
9273         * opcode_table:
9274         Since we specify the opcode number, we can rearrange to a more
9275         human-friendly ordering.
9277 2001-09-03 17:42  simon
9279         * basic_opcodes.c:
9280         Coupl'a logic bugs. (I think)
9282 2001-09-03 17:41  simon
9284         * string.c, string.h, strnative.c:
9285         Tidying up the string vtables.
9287 2001-09-03 17:38  simon
9289         * make_op_header.pl:
9290         Spit out the whole of op.h, not just the bit in the middle.
9292 2001-08-29 13:16  ask
9294         * README: it seems like we indeed can commit. What about sending
9295         commit mails?
9297 2001-08-29 13:07  simon
9299         * Makefile, README, assemble.pl, basic_opcodes.c, bytecode.c,
9300         bytecode.h, config.h, disassemble.pl, events.h, exceptions.h,
9301         global_setup.c, interpreter.c, interpreter.h, io.h,
9302         make_op_header.pl, make_op_table_build.pl, memory.c, memory.h,
9303         op.h, opcode_table, parrot.c, parrot.h, register.c, register.h,
9304         stacks.h, string.c, string.h, strnative.c, strnative.h, test.pasm,
9305         test.pbc, test_main.c, test_opcodes.c:
9306         Initial checkin of Simon's work directory - Dan, feel free to nuke.
9307          I'm still working on the string stuff, though.
9309 2001-08-29 12:44  ask
9311         * README: update README with list address
9313 2001-08-29 12:36  ask
9315         * README: first readme.