+ The push_eh I<LABEL> syntax actually creates a continuation.
[parrot.git] / ChangeLog
blob10d189f649dfc2c63145f3f2b4fb34f2ba4d352f
1 #1 $Id$
3 2007.07.17    particle
4         * Released 0.4.14
5         See NEWS for more.
7 2007.06.19    allison
8         * Released 0.4.13
9         See NEWS for more.
11 2007.05.15    chromatic
12         * Released 0.4.12
13         See NEWS for more.
15 2007.04.17    mdiep
16         * Released 0.4.11
17         See NEWS for more.
19 2007.03.20    coke
20         * Released 0.4.10
21         See NEWS for more.
23 2007.3.10     coke
24         * removed parakeet
26 2007.02.22    pmichaud
27         * Released 0.4.9
28         See NEWS for more.
30 2007.01.17    chromatic
31         * changed 'name' method on namespaces to 'get_name' per pdd21
33 2007.01.16    particle
34         * Released 0.4.8
35         See NEWS for more.
37 2006.12.12    particle
38         * added C<isnull> opcode
40 2006.11.14    chip
41         * Released 0.4.7
42         See NEWS for more.
44 2006.11.07      tewk
45         * added :init pragma functionality to subs
47 2006.10.28      jonathan
48         * added :vtable pragma functionality to subs
50 2006.09.18    chromatic
51         * added Parrot::Embed under ext/Parrot-Embed
53 2006.08.18    leo
54         * remove the None PMC - if needed it can trivially be reimplemented
55           in languages from r14189
57 2006.08.16    creiss
58         Merged Software Transactional Memory branch into trunk, adds:
59         * several new opcodes whose names start with stm_
60         * read-only PMC support
61         * several new PMC types (whose names start with STM*)
62         * support for threads (again)
64 2006.08.08    chip
65         * Released 0.4.6
66         See NEWS for more.
68 2006.08.02    chip
69         * opcodes: "in PMC" is no longer a synonym for "invar PMC";
70         there are opcodes now that want the real "in PMC".
71         * namespace and global opcodes now accept name arrays again, as
72         well as keys; the corresponding namespace PMC methods are gone.
74 2006.07.21    leo
75         * Parrot_exit, Parrot_on_exit take now an Interp * argument
77 2006.07.25    chip
78         * add experimental op find_type_i_p
79         * fix longstanding bug that sometimes didn't encode pasm keys as
80         Key PMCs (specifically "[S0]" and "['stringliteral']").
82 2006.07.24    chip
83         further implementation of new pdd21:
84         * new opcodes {get,set}*global
85           (old {find,store}*global will be supported for a short while)
87 2006.07.20    audreyt
88         * --maintainer prerequesites are now bison 2.2+ and flex 2.5.3x
89           (or some such --leo) 
90           (at the moment code is checking for 2.0 -- ambs)
92 2006.07.17    chip
93         partial implementation of new pdd21:
94         * old: "get_namespace KEY".  new: "get_hll_namespace KEY"
95         * get_namespace and find_global opcodes no longer accept arrays
96           of strings.  To use arrays, call namespace object methods.
98 2006.06.19    leo
99         * Released 0.4.5
100         See NEWS for more.
102 2006.06.03    leo
103         * I and N registers are never cleared to 0 / 0.0 on subroutine entry
105 2006.05.14    leo
106         * Released 0.4.4
107         See NEWS for more.
109 2006.04.30    bernhard
110         * Make the Perl PMCs dynamic and move them to src/dynpmc
112 2006.04.02    leo
113         * Released 0.4.3
114         See NEWS for more.
116 2006.03.06    leo
117         * Shifted argument type bits left by 2 according to r11754
118           change of docs/pdds/pdd03_calling_conventions.pod
119         * if you are creating PASM then code needs adjustment  
121 2006.02.22    leo
122         * Released 0.4.2
123         See NEWS for more.
125 2006.01.16    bernhard
126          * rename src/dynclasses to src/dynpmc 
127          * rename src/classes to src/pmc 
129 2006.01.15    leo
131          * find_global and friends returns a .Null PMC instead of .Undef on
132           lookup failure, iff lookup exceptions are off
134 2006.01.08    leo
135         * Released 0.4.1
136         See NEWS for more.
138 2005.12.28    particle
139         * renamed all .imc files to .pir
140         * modified all doc references to .pir as well
142 2005.12.13    particle
143         * moved jit/ directory to src/jit/
145 2005.12.12    particle
146         * moved io/ directory to src/io/
147         * moved classes/ directory to src/classes/
148         * moved dynclasses/ directory to src/dynclasses/
150 2005.12.08    particle
151         * moved types/ directory to src/types/
152         * moved pf/ directory to src/packfile/
153         * moved ops/ directory to src/ops/
155 2005.12.08    particle
156         * moved charset/ directory to src/charset/
157         * moved encodings/ directory to src/encodings/
159 2005.12.07    particle
160         * moved imcc/ directory to compilers/imcc/
162 2005.12.06    particle
163         * moved util/ directory to tools/util/
164         * removed imcc/examples/ directory
165         * moved ast/ directory to compilers/ast/
167 2005.12.05    particle
168         * moved imcc/docs/ directory to docs/imcc/
169         * moved build_tools/ directory to tools/build/
170         * modified MANIFEST, MANIFEST.generated, and MANIFEST.SKIP
172 2005.12.04    leo
173         * Released 0.4.0
174         * See NEWS for changes
176 2005.11.06    leo
177         * Released 0.3.1
178         * See NEWS for changes
180 2005.10.01    leo
181         * Released 0.3.0
182         * See NEWS for changes
184 2005.08.05    leo
185         * Released 0.2.3
186         * See NEWS for changes
188 2005.07.03    leo
189         * Released 0.2.2
190         * See NEWS for changes
192 2005.06.04    leo
193         * Released 0.2.1
194         * allow short names for object attributes
195         * string encoding and charset can now be set independently
196         * experimental mmap IO layer for slurping files
197         * enable compile opcode support for compilers written in PASM/PIR
198         * improved HLL support with .HLL and n_operators pragmas
199         * simplified hash code
200         * more strength reduce optimizations
201         * distinct debug and trace flag settings
202         * glob support in PGE
203         * new character classification opcodes and interfaces
204         * numerous bug fixes and enhancements
206 2005-05-08    leo
207         * Released 0.2.0
208         * parrot repository is now under subversion
209         * MMD (Multi Method Dispatch) enhanced
210         * new unary and infix opcodes that return new result PMCs
211         * dynamic scalar PMCs inherit now almost all from Parrot core PMCs
212         * more unification of PMCs and ParrotObjects
213         * tailcalls for functions and methods
214         * PGE (Parrot Grammar Engine) reworked
215         * Pugs creates Parrot code and Pugs is a registered compiler now
216         * new languages/lisp
217         * the usual bug fixes and improvements
219 2005-03-06    leo
220         * Released 0.1.2
221         * big rewrite of string code, not yet finished but ...
222         * partial implementation of a generational garbage collector
223         * indirect register frame addressing
224         * .return(args) PIR syntax
225         * moved most of the Python code to dynclasses
226         * a lot more Python functionality
227         * precalculate opcodes with all constants
228         * PGE - Parrot Grammar Engine
229         * scalar classes refactoring
230         * much more tests and big test system cleanup
231         * improved documentation
232         * and as always a lot more
234 2004-10-09    leo
235         * Released 0.1.1
236         * Need Perl 5.6 now for building
237         * Basic AST support, PAST file parser, bits of code generation
238         * BigInt PMC using GMP
239         * Complex PMC
240         * Dynamic loading improved including bundles of PMC classes
241         * Experimental support for "make install"
242         * IA64 and hppa JIT support
243         * ICU unicode support
244         * IO layer handling code
245         * IO readline and buffered IO fixes
246         * Incremental GC
247         * Internal pythonic functions: filter, map, reduce, max, min ...
248         * Languages updates for m4, tcl, perl6, regex. New parakeet language.
249         * Library updates, Stream and SDL library
250         * MMD - multi method dispatch for binary vtable methods
251         * Many new array PMCs
252         * Method call syntax in PIR obj."meth"(...)
253         * More OS stuff: stat, exec, system, gmtime, piped read and write
254         * New Python PMCs like Enumerate, None
255         * Non-branching compare opcodes
256         * PIR support for += and friends
257         * Python language subdir
258         * Python types mapped to existing PMCs
259         * Slices and range support
260         * Tons of bug fixes, documentation updates, new tests
261         * Win32 COFF exec support
262         * ... and a lot more
264 2004-02-29    leo
265         * Released 0.1.0
266         * "Ladies and gentlemen, I give you... objects!"
267         * Huge documentation overhaul
268         * More supported platforms, s. PLATFORMS
269         * Basic thread support for pthread based architectures
270         * Basic event handling for timers and signals including:
271         * PASM callbacks for NCI (native C) functions.
272         * Improved platform configuration
273         * COW stacks now working, stacks code redone
274         * Structure handling vastly improved
275         * Random PMC and rand primitives
276         * Better subroutine call syntax in PIR
277         * Make PIR subroutines compliant with pdd03
278         * Improved profiling (DOD, GC timings)
279         * Hash code improvements, incl. random key order support
280         * Experimental freeze/thaw code for some PMC types
281         * IO improvements for buffered layer and Win32
282         * String iterators
283         * String bitwise vtables
284         * Many new opcodes
285         * Support for JIT, where malloced memory isn't executable
286         * Priority DOD scheme for objects that need timely destruction
287         * Improved bytecode loading (e.g. onLoad functions)
288         * Language updates: forth, Perl6/P6C, m4
289         * Libraries: Getopt_Long, SDL, Dumper, Sort
290         * new JAPH examples
291         * Unified imcc and parrot test handling
292         * Many new tests (make test reports 1386 tests)
293         * Numerous bug fixes
296 2003-10-31    leo
297         * Released 0.0.13
298         * Yep thirteen - haunted by the ghost of 0.0.12
299         * Build imcc as parrot
300         * Objects more finished
301         * Delegate vtable methods to byte code
302         * Binary multi-method dispatching
303         * Isa and does methods for PMCs
304         * Call byte code from C
305         * Start of extension interface
306         * Experimental struct handling
307         * Catch access to NULL PMCs
308         * Experimental network socket interface code and opcodes
309         * IO fixes and improvements
310         * Dynamic opcode libraries
311         * Fix-assigned opcode numbers
312         * Argument flattening for function calls
313         * More native call interface (NCI) signatures
314         * Ncurses, postgres, and pcre interface libraries
315         * Forth language is vastly improved
316         * BSD and Win32 build improvements
317         * Many new tests and fixes
319 2003-10-22    melvin
320         * imcc moved from parrot/languages/ to parrot/
322 2003-09-20    sfink
324         * updated the native_pbc test files (from Leo)
325         * built 0.0.11.1 release tarball
327 2003-09-20    sfink
329         * CHANGES BUNDLED INTO 0.0.11:
330         * Executable output
331         * Dynamic PMC registration
332         * Trial exception system
333         * Beginnings of object system
334         * Iterators
335         * Ordered hashes
336         * I/O system improvements
337         * References
338         * Documentation for basic PMC types
339         * IMCC support of Parrot Calling Conventions
340         * Runtime loading of chartypes (and other string improvements)
341         * Conditional breakpoints
342         * Dramatically accelerated sweeps for finalizable objects
343         * Small PMCs (PMCs split into core and extensions)
344         * Loadable bytecode packfiles
345         * Constant PMCs
346         * Sub variants that deal with the stack correctly
347         * Switched runops core
348         * Line numbers in warnings
349         * Environment access
350         * Many documentation cleanups
351         * Conversion to CPS style!
352         * BASIC debugger and many other wacky features
353         * Filename, line number parsing support in IMCC
355 2003-07-21 17:31 chromatic
356         * applied copyright patch from Josh Wilmes
358 2003-06-14 13:50 dan
359         * Moved the registers out of the context structure, since they
360           really aren't context
361         * Changed the register stack frames to hold only 16 registers
362           rather than 32, added half-set push and pop ops, and reworked
363           the full set push/pops to do two half-set push/pops. Should
364           speed up saving register data on calls, since we usually only
365           care about the top half of the registers anyway.
366         * Started committing some of the new class/object framework
367         * Remembered to finally start updating the Changelog
369 2003-03-18 03:50  ask
371         * Various files
372           Update Yet Another copyright statements to reflect the (no longer
373           so) shiny new year.
375 2003-03-11 22:06  chip
377         * Configure.pl: print help on non-option command line args
379 2002-12-18 20:38  sfink: changes since 0.0.8
381         - Allow suppression of cgoto core to save memory during compile
382         * Native function calling interface
383         * Major rewrite of stack and list aggregates
384         - Scalar PMC added
385         * Scratchpads implemented
386         - Win32 libraries
387         - Internal memory subsystem documentation
388         * Preliminary DotGNU support
389         - Packfile fingerprinting
390         * Buffer/PMC unification (into PObjs)
391         * stabs debugging information support
392         * Major Jako overhaul, including:
393           - imcc integration
394           - native function calling
395         - Perl6 string interpolation
396         - languages/regex now targets IMCC
397         * Optional Lea memory allocator
398         * Full sprintf implementation
399         * Many, many new tests
400         * Miniparrot
401         - exchange ops
402         - runtime-controllable gc debugging
403         * PMC properties
404         - Crash info
405         * JIT: various improvements
406           - register usage tracking
407           - block register allocation
408           - optimizations
409           - more jitted ops
410           - restartable
411           - architecture abstraction layer
412           - debugging via GDB
413         * Beginning support for extensible packfiles
414         * Much better key support, generally
415         * splice()
416         * Restructured PMC hierarchy with better functionality inheritance
417         * IMCC: many, many improvements. See imcc/ChangeLog
418         * Perl6: index map grep join reverse defined
419         * Scheme with functions!
422 2002-03-19 22:54  nicholas
424         * docs/running.pod: Patch from Simon Glover <scog@amnh.org>:
426          We can now get usage information for test_parrot without having to
427          grep the source.
429 2002-03-19 22:53  simon
431         * Configure.pl:
432         Parrot is called parrot.
434 2002-03-19 22:53  nicholas
436         * docs/tests.pod: Patch from Simon Glover <scog@amnh.org>:
438          1. There are tests in t/pmc as well as t/op now.
439          2. Adds a comment about Parrot::Test
441 2002-03-19 18:09  dan
443         * Configure.pl, examples/assembly/life.pasm: Toss a prompt that
444         messes up automated builds
446         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
448 2002-03-19 00:33  mrjoltcola
450         * core.ops: Doc cleanup from Simon Glover.
452 2002-03-18 23:52  mrjoltcola
454         * io/io_unix.c: Typo fix for invalid lvalue caught by David Loyd.
456 2002-03-18 22:09  dan
458         * include/parrot/resources.h: Checked in old version
460 2002-03-18 20:17  dan
462         * include/parrot/resources.h: Forgot a prototype
464 2002-03-18 20:15  dan
466         * resources.c: D'oh! Thinko, fixed.
468         Courtesy of "Peter Gibbs" <peter@emkel.co.za>
470 2002-03-18 17:33  josh
472         * Configure.pl: Lowering the bar a bit.
474 2002-03-18 17:33  sfink
476         * languages/regex/: MAINTAINER, Makefile, README, regex.pl,
477         test.pl, lib/Regex.pm, lib/Regex/AsmOps.pm, lib/Regex/CodeGen.pm,
478         lib/Regex/Generate.pm, lib/Regex/Grammar.pm, lib/Regex/Grammar.y,
479         lib/Regex/Optimize.pm, lib/Regex/Parse.pm, lib/Regex/Pasm.pm,
480         lib/Regex/PreOptimize.pm, lib/Regex/RegexOps.pm,
481         lib/Regex/Rewrite.pm, lib/Regex/CodeGen/Re.pm,
482         lib/Regex/CodeGen/Rx.pm, lib/Regex/Rewrite/Re.pm,
483         lib/Regex/Rewrite/Rx.pm, lib/Regex/Rewrite/Stackless.pm,
484         t/example.t: Whoops, wrong time to check this in.
486 2002-03-18 16:42  dan
488         * memory.c, resources.c: Partial fix for GC's memory trouncing. At
489         least we consider the PMC and Buffer free pools worth collecting,
490         and initialize the Buffer pool stuff.  Still not 100% correct,
491         though.
493 2002-03-18 15:35  simon
495         * packfile.c:
496         Fix format arg bug.
498 2002-03-18 07:45  brentdax
500         * Configure.pl: Warn if you're using 64-bit ints on a 32-bit
501         system.
503 2002-03-18 00:09  sfink
505         * languages/regex/: MAINTAINER, Makefile, README, regex.pl,
506         test.pl, lib/Regex.pm, lib/Regex/AsmOps.pm, lib/Regex/CodeGen.pm,
507         lib/Regex/Generate.pm, lib/Regex/Grammar.pm, lib/Regex/Grammar.y,
508         lib/Regex/Optimize.pm, lib/Regex/Parse.pm, lib/Regex/Pasm.pm,
509         lib/Regex/PreOptimize.pm, lib/Regex/RegexOps.pm,
510         lib/Regex/Rewrite.pm, lib/Regex/CodeGen/Re.pm,
511         lib/Regex/CodeGen/Rx.pm, lib/Regex/Rewrite/Re.pm,
512         lib/Regex/Rewrite/Rx.pm, lib/Regex/Rewrite/Stackless.pm,
513         t/example.t: Buggy 1st version of regex compiler implementation.
514         Warning: the test code depends on features of the assembler that do
515         not yet exist.
517 2002-03-17 21:35  ajgough
519         * types/: bignum.c, bignum_atest.pl: Added a couple of quick routes
520         through addition and subtraction.  Also added the ability to run
521         all the tests, including the ones which deal with overflow and
522         underflow.  These fail, but that's expected.  Soon they'll pass.
523         Then I'll show them.  Yesssssss.  Tessssssssts my precioussssss,
524         passsssssssings tesssstsssss.
526 2002-03-17 20:06  ajgough
528         * types/: bignum.c, bignum.h, bignum_test.pl: Modified
529         check_(under|over)flow to test bignumbers, rather than values.
530         context now carries E_limit, from which max and min exp are found.
532         Added a default-context-creating function (although this isn't the
533         same as either of the default contexts defined in the eda).
535 2002-03-17 13:31  ajgough
537         * types/: bignum.c, bignum.h: Made BN_round and BN_iround so that
538         exported version matches prototypes of other public functions.
540 2002-03-17 06:44  josh
542         * chartype.c, encoding.c, memory.c, misc.c, packdump.c, packfile.c,
543         packout.c, resources.c, string.c, include/parrot/encoding.h: Some
544         last-minute re-indenting.
546 2002-03-17 05:07  mrjoltcola
548         * io/io_unix.c: Clear up unsigned compare caught by Solaris GCC.
550 2002-03-16 23:17  nicholas
552         * classes/default.pmc: Patch from Simon Glover <scog@amnh.org> to
553         remove warnings:
555          default.pmc: In function `Parrot_default_get_integer_keyed':
556          default.pmc:50: warning: control reaches end of non-void function
557          default.pmc: In function `Parrot_default_get_number_keyed':
558          default.pmc:58: warning: control reaches end of non-void function
559          default.pmc: In function `Parrot_default_get_string_keyed':
560          default.pmc:67: warning: control reaches end of non-void function
561          default.pmc: In function `Parrot_default_get_pmc_keyed':
562          default.pmc:87: warning: control reaches end of non-void function
564 2002-03-16 18:50  ajgough
566         * types/: bignum.c, bignum.h: Lots of prototypes changed in
567         readiness for nicely telling your caller about any oddness you've
568         caused in the persuit of flow.
570 2002-03-16 17:38  dan
572         * interpreter.c, resources.c, docs/pdds/pdd09_gc.pod,
573         include/parrot/interpreter.h, include/parrot/resources.h: Now we
574         can control the GC and DOD, to stop it when we don't really want
575         it.
577 2002-03-16 16:58  dan
579         * resources.c, vtable.tbl, classes/default.pmc,
580         include/parrot/resources.h: Added the last code to let PMCs control
581         their marking at DOD time
583 2002-03-16 16:57  ajgough
585         * types/bignum.c: Ok, I worked out how to not have lots of tabs.  I
586         feel a little more virtuous now.  Really I do.  You might not
587         believe me, but you should.  perl -pne 's/\t/        /g', if you're
588         curious.
590 2002-03-16 16:57  josh
592         * packfile.c, packout.c: M-x untabify is my new friend.
594 2002-03-16 16:50  josh
596         * trace.c, resources.c: Minor whitespace tweak for the benefit of
597         check_source_standards.pl
599 2002-03-16 16:50  ajgough
601         * types/: bignum.c, bignum.h: More documentation, separate
602         functions into public and private sorts, some initial stuff to cope
603         with over and underflow correctly.
605 2002-03-16 16:49  josh
607         * resources.c: Re-indented (sorry bout the big diff)
609 2002-03-16 16:47  bdwheele
611         * examples/assembly/fact.pasm: This fixes fact.pasm so it will
612         assemble again, both with Simon's new assembler and with the old
613         one.
615 2002-03-16 16:33  mrjoltcola
617         * io/TODO: Get the TODO up-to-date for 0.0.4.
619 2002-03-16 16:11  josh
621         * Configure.pl: Patch from Nicholas Clark <nick@unfortu.net>: stops
622         silly people (such as me) running Configure with
623         /usr/local/bin/perl (which is 5.004_05) and not realising their
624         mistake until the pmc subdirectory, where the first qr// is
625         encountered.
627         Syntax error messages don't tell you what you did wrong. This does:
629         /usr/local/bin/perl Configure.pl Perl 5.00503 required--this is
630         only version 5.00405, stopped at Configure.pl line 10.
632 2002-03-16 14:38  ajgough
634         * Makefile.in: Small fix to Makefile.in to keep Irix make happy
635         with commenting.
637 2002-03-16 11:45  simon
639         * MANIFEST, examples/assembly/xml_parser.pasm:
640         Added Clint Pierce's XML parser.
642 2002-03-15 22:24  simon
644         * packout.c:
645         Don't need that function.
647 2002-03-15 21:56  simon
649         * Makefile.in, include/parrot/packfile.h:
650         Rebuild packout.o, since it'll be used for the Packfile XS module
652 2002-03-15 19:45  dan
654         * include/parrot/: memory.h, pmc.h: Another add-in for GC
656 2002-03-14 19:48  dan
658         * core.ops: No string to int for some reason
660 2002-03-14 18:45  dan
662         * string.c, t/op/string.t: Fix 0-length substr problem
664 2002-03-14 14:46  dan
666         * core.ops, interpreter.c, resources.c, classes/array.pmc,
667         classes/perlarray.pmc, examples/assembly/life.pasm,
668         include/parrot/interpreter.h, include/parrot/resources.h: Added in
669         a counter for copied memory, with a display in life.pasm
671 2002-03-14 03:16  mrjoltcola
673         * MANIFEST: Update MANIFEST courtesy of Simon Glover.
675 2002-03-13 23:43  simon
677         * packfile.c:
678         Oops.
680 2002-03-13 23:43  simon
682         * packfile.c:
683         Hangs head in shame.
685 2002-03-13 21:31  simon
687         * MANIFEST:
688         FAQ moved.
690 2002-03-13 18:06  simon
692         * string.c:
694         Fix string_compare screw-up.
696 2002-03-13 18:02  brentdax
698         * docs/: parrot.pod, ParrotFAQ.htm, faq.pod: Move the FAQ into POD
699         and add a new question/answer pair.
701 2002-03-12 22:53  mrjoltcola
703         * io.ops: Quick and dirty read ops for PIO. No warranty provided.
705 2002-03-12 22:48  mrjoltcola
707         * examples/assembly/io2.pasm: Quick and dirty read ops for PIO. No
708         warranty provided.
710 2002-03-12 22:29  ajgough
712         * docs/pdds/pdd14_bignum.pod: Ooops, it is #14, really.
714 2002-03-12 22:24  ajgough
716         * docs/pdds/pdd14_bignum.pod: Creation of bignumber pdd, update to
717         version 1.1, Don't know if this is the correct number, but I don't
718         want this stuck on my harddrive where it will get lost, so 14 it is
719         :)
721 2002-03-12 11:35  simon
723         * MANIFEST, packdump.c, packout.c:
725         Just so the functionality doesn't disappear.
727 2002-03-12 11:33  simon
729         * Makefile.in, chartype.c, encoding.c, packfile.c,
730         chartypes/unicode.c, chartypes/usascii.c, encodings/singlebyte.c,
731         encodings/utf16.c, encodings/utf32.c, encodings/utf8.c,
732         include/parrot/chartype.h, include/parrot/encoding.h,
733         include/parrot/packfile.h:
735         Packfile axing.
737 2002-03-11 23:06  nicholas
739         * core.ops: Patch from Simon Glover <scog@roe.ac.uk>:
741           Core.ops documentation nits
743 2002-03-11 23:05  nicholas
745         * t/pmc/pmc.t: Patch from Simon Glover <scog@roe.ac.uk>:
747           Most of the PerlUndef tests in pmc.t appear to have been added
748         twice.
749           Enclosed patch removes the duplicates.
751 2002-03-10 23:40  nicholas
753         * t/pmc/perlstring.t: Patch from Simon Glover <scog@amnh.org>:
755          More tests for the PerlString test-suite.
757 2002-03-10 23:40  nicholas
759         * t/op/time.t: Patch from Simon Glover <scog@amnh.org>:
761         test for sleep with negative argument
763 2002-03-10 21:58  nicholas
765         * t/op/rx.t: Patch from Simon Glover <scog@amnh.org>:
767          Enclosed patch fixes up a few more holes in our test coverage.
769 2002-03-10 21:18  mrjoltcola
771         * classes/array.pmc, classes/default.pmc, classes/intqueue.pmc,
772         classes/parrotpointer.pmc, classes/perlarray.pmc,
773         classes/perlhash.pmc, classes/perlint.pmc, classes/perlnum.pmc,
774         classes/perlstring.pmc, classes/perlundef.pmc,
775         include/parrot/pmc.h, core.ops, pmc.c, vtable.tbl: Add size
776         argument to the init() vtable method so PMCs have the option to
777         know how to size themselves at creation. size could be N elements
778         or a byte count, depending on the PMC or it may simply be ignored.
779         Overloaded 'new' opcode for optional arg.
781 2002-03-10 21:15  mrjoltcola
783         * lib/Parrot/Assembler.pm: Minor patch to the assembler for the
784         new_p_ic_ic opcode to work same as new_p_ic (looks up a named
785         class).
787         Also added small hack for .sub directive (which simply translates
788         to a label, however we might eventually want to collect these to
789         validate bsr calls.
791 2002-03-10 15:09  ajgough
793         * types/: bignum.c, bignum.h, bignum_atest.pl, bignum_test.pl:
794         Added round_floor and round_ceiling.  3403 tests pass, none fail.
796 2002-03-10 03:56  ajgough
798         * types/: bignum.c, bignum_atest.pl: Added extended stuff to
799         divide, divide integer and remainder.  All filled in functions now
800         have special values capability.
802         Much remains to be done though, and the pdd needs to catch up.
804 2002-03-10 01:36  ajgough
806         * types/bignum.c: Added extended stuff to _add, _subtract.
808 2002-03-10 00:14  nicholas
810         * t/op/: integer.t, number.t: Patch from Simon Glover
811         <scog@roe.ac.uk>:
813          The enclosed patch fixes a few of the holes in our test coverage
814          uncovered by Josh Wilmes
816 2002-03-09 23:03  ajgough
818         * types/: bignum.c, bignum.h: Modified compare to work with
819         extended values.  Made a couple of changes here and there to allow
820         BN_comp to take a context, so that an is_zero check doesn't clobber
821         negative zeros.
823 2002-03-09 22:19  ajgough
825         * types/: bignum.c, bignum.h, bignum_atest.pl, bignum_test.pl:
826         Unary plus now copes with special values.
828 2002-03-09 04:25  ajgough
830         * types/: bignum.c, bignum_atest.pl, bignum_test.pl: Exception
831         traps and flags are now enabled and tested for all the standard
832         tests for all the functions which are currently implemented.  Test
833         harness faffed with to allow these to be tested.
835 2002-03-09 02:29  josh
837         * encodings/singlebyte.c, encodings/utf16.c, encodings/utf32.c,
838         encodings/utf8.c, chartypes/unicode.c, chartypes/usascii.c:
839         Re-indented
841 2002-03-09 02:22  josh
843         * config_h.in: tab-blastin'
845 2002-03-09 02:21  josh
847         * check_source_standards.pl: Play nicer with M-x compile- don't
848         bother giving line numbers for things you don't want to look at.
850 2002-03-09 02:10  josh
852         * examples/mops/mops.c: re-indented
854 2002-03-09 02:07  josh
856         * classes/pmc2c.pl: Use the usual header so that we can detect the
857         autogeneratedness.
859 2002-03-09 02:05  josh
861         * jit2h.pl: Avoid accidental /* inside a comment, which generates a
862         compiler warning
864 2002-03-09 01:59  josh
866         * io/: io.c, io_stdio.c, io_unix.c, io_win32.c: Another large
867         patch- re-indent io/*.c.
869 2002-03-09 01:52  ajgough
871         * types/: bignum.c, bignum.h, bignum_test.pl: Added handling of
872         special values to the string conversion functions, some other
873         functions now need context (to let -0 pass through really_zero)
874         which have also been added.
876 2002-03-09 01:47  josh
878         * test_main.c: Re-indented.
880 2002-03-09 01:41  josh
882         * rx.c: killed a stray tab
884 2002-03-09 01:38  josh
886         * rx.c: Re-indented.
888 2002-03-09 01:36  josh
890         * misc.c: Oops, some tabs remained- cleaned up.
892 2002-03-09 01:31  josh
894         * misc.c: Re-indented (major patch, sorry)
896 2002-03-09 00:59  josh
898         * embed.c: Re-indented.
900 2002-03-08 23:08  simon
902         * MANIFEST, docs/pdds/pdd10_embedding.pod,
903         docs/pdds/pdd11_extending.pod, docs/pdds/pdd12_assembly.pod,
904         docs/pdds/pdd13_bytecode.pod:
905         Placeholder PDDs.
907 2002-03-08 21:12  ajgough
909         * include/parrot/string.h: Added private flags to string.h, mostly
910         so that other GCed stuff can also have its very own private flags.
912 2002-03-08 19:53  simon
914         * MANIFEST:
915         Great PDD Renaming
917 2002-03-08 19:41  robert
919         * docs/pdds/: pdd0.pod, pdd1.pod, pdd2.pod, pdd4.pod, pdd5.pod,
920         pdd6.pod, pdd7.pod: Renamed...
922 2002-03-08 18:51  simon
924         * MANIFEST, docs/pdds/pdd08_keys.pod:
925         Add keys PDD.
927 2002-03-08 18:20  ajgough
929         * types/: bignum.c, bignum.h, bignum_atest.pl, bignum_test.pl:
930         Introduced exception handlers and exception flags to context, will
931         allow support of extended standard.  Unified exception checking
932         mechanism (sort of) and made minimal changes to bulk of code to use
933         this.  Tests pass, I'm happy, and further changes will happen more
934         gradually.
936 2002-03-08 04:38  josh
938         * interpreter.c, string.c, testparrotsizes_c.in: More indenting
939         tweaks.
941 2002-03-08 04:37  josh
943         * platforms/: generic.c, generic.h, win32.c, win32.h: Re-indented
945 2002-03-08 04:24  josh
947         * embed.c: A bit more re-indenting
949 2002-03-08 04:20  josh
951         * embed.c: Indenting fixes
953 2002-03-08 04:14  josh
955         * jit.c: Re-indented (run_indent.pl)
957 2002-03-08 03:36  josh
959         * ops2c.pl: Fix the line numbers which get reported while compiling
960         core_ops*.c
962 2002-03-08 03:22  josh
964         * packfile.c: -1552 cc: WARNING File = packfile.c, Line = 1537
965         The variable "type" is set but never used.
967               opcode_t type;
969 2002-03-08 03:04  josh
971         * resources.c, stacks.c, string.c, io/io.c, io/io_stdio.c,
972         io/io_unix.c: Clean up unused and set-but-not-referenced variables
973         noticed by the sgi compiler.
975 2002-03-08 03:02  josh
977         * misc.c: Fixes this warning (SGI) cc-1188 cc: WARNING File =
978         misc.c, Line = 417   The indicated type qualifier is meaningless on
979         cast type.
982         (const char) 'f');
983                                                                          ^
985 2002-03-08 02:55  josh
987         * Makefile.in: Clean up one of the object files it was missing
989 2002-03-08 01:15  josh
991         * include/parrot/interpreter.h: Fixes the following error (tcc):
992         "./include/parrot/interpreter.h", line 27: Error:   [Syntax]: Extra
993         comma at end of list.
995 2002-03-06 22:15  simon
997         * stacks.c:
998         Tidy up stack chunk allocation.
1000 2002-03-06 21:00  simon
1002         * interpreter.c:
1003         Create strings only once we've got string register heads set up.
1005 2002-03-06 20:31  simon
1007         * classes/perlarray.pmc:
1008         malloc(0) considered harmful.
1010 2002-03-06 20:24  simon
1012         * include/parrot/resources.h:
1013         I like it when Parrot compiles.
1015 2002-03-06 17:02  dan
1017         * classes/array.pmc: Changed over to data pointing to a Buffer.
1019 2002-03-06 15:45  dan
1021         * core.ops, embed.c, exceptions.c, interpreter.c, memory.c,
1022         packfile.c, pbc2c.pl, pdump.c, resources.c,
1023         include/parrot/interpreter.h, include/parrot/memory.h,
1024         include/parrot/resources.h, io/io.c: Three quick things: 1) INTVALs
1025         and opcode_t > longs will now be even more suspect than what they
1026         were beforehand.  2) Feel free to bicker with names.  I don't think
1027         we've come to *any* sort of agreement with these, although we
1028         really, really, need to.  3) I forget the third thing.  4) But I
1029         thought of a fourth.  5) I've now remembered the third thing: IIRC,
1030         ANSI C states that enums will fit within the smallest type (int or
1031         greater) that can hold the values. Is that actually correct, and
1032         does it state whether unsigned is preferred to signed for
1033         non-negative enums? 6) Since I'm no longer constrained by "three"
1034         or "quick", I'm going size_t happy for a lot of memory-related
1035         storage.  (That's good.  No sense wasting the size or performance
1036         of an UINTVAL for strange values of UINTVAL.)  I'm also using it in
1037         a couple other internal things (like the GC stat counters, seen
1038         here).  Size and performance, again, and unpromotable to a bigint,
1039         so we know that we (theoretically) will wrap.  However, size_t
1040         isn't the best choice for the type.  (Not that there's anything
1041         wrong with size_t, just that it shouldn't be called size_t.)  Any
1042         thoughts?  I was thinking of just doing unsigned int, because,
1043         IIRC, int is usually the natural word size, and will be most
1044         efficient.  Thoughts? 7) I forgot what the fourth thing I thought
1045         of was while writing down the others.  Sorry.
1047         Courtesy of  "Bryan C. Warnock" <Bryan.Warnock@raba.com>
1049 2002-03-06 15:26  dan
1051         * memory.c, resources.c, string.c, classes/perlarray.pmc,
1052         include/parrot/resources.h: Now we allocate generic Buffers from
1053         arenas too
1055 2002-03-05 21:42  brentdax
1057         * Configure.pl: Minor cleanup and enhancements.
1059 2002-03-05 21:25  dan
1061         * resources.c: non-special GC now works with PMCs
1063 2002-03-05 19:48  brentdax
1065         * Configure.pl, DEVELOPING, MANIFEST, config_h.in, test_main.c:
1066         Parrot now "knows" if it's a development version or a release
1067         version.  See the instructions in the DEVELOPING file.
1069 2002-03-05 18:05  brentdax
1071         * MANIFEST: pasm.vim wasn't in the manifest.
1073 2002-03-05 17:57  simon
1075         * Makefile.in:
1076         Now, through much evilness, make distclean and make cvsclean work
1077         again.
1079 2002-03-05 17:38  dan
1081         * memory.c, resources.c, docs/pdds/pdd09_gc.pod,
1082         include/parrot/interpreter.h, include/parrot/pmc.h,
1083         include/parrot/resources.h: PMC tracing complete
1085 2002-03-05 16:28  gregor
1087         * languages/jako/Makefile.in:
1088         Changed -I ../../ to -I ../../lib when calling the assembler, since
1089         the perl modules have moved.
1091 2002-03-05 05:30  josh
1093         * packfile.c, pdump.c, pmc.c, register.c, rxstacks.c, stacks.c,
1094         string.c: More re-indenting via run_indent.pl.
1096 2002-03-05 05:17  josh
1098         * runops_cores.c, trace.c, warnings.c: Re-indented (via
1099         run_indent.pl)
1101 2002-03-05 04:26  josh
1103         * key.c, memory.c, test_gnuc.c, testparrotfuncptr.c: Re-indented
1104         using run_indent.pl and some minor tweaking.
1106 2002-03-05 04:21  josh
1108         * chartype.c, encoding.c, exceptions.c, global_setup.c,
1109         interpreter.c: Re-indented using run_indent.pl and some minor
1110         tweaking.
1112 2002-03-05 03:30  josh
1114         * include/parrot/trace.h: These functions are no longer used (or
1115         even implemented)
1117 2002-03-04 18:21  josh
1119         * include/parrot/trace.h: Fix a typo in the argument type.
1121         Patch from <daniel.ritz@gmx.ch>
1123 2002-03-04 03:39  josh
1125         * check_source_standards.pl, jit2h.pl: Add the "autogenerated file"
1126         header to jit_struct.h so we don't try to check it for conformance.
1127          (no way will it conform)
1129 2002-03-04 03:38  josh
1131         * include/parrot/: chartype.h, interpreter.h, io.h, rx.h, trace.h,
1132         unicode.h, warnings.h: Remove some remaining tabs and split some of
1133         the remaining long lines.
1135 2002-03-04 03:17  josh
1137         * include/parrot/: chartype.h, embed.h, encoding.h, exceptions.h,
1138         global_setup.h, interpreter.h, io.h, jit.h, key.h, memory.h,
1139         misc.h, op.h, oplib.h, packfile.h, parrot.h, pmc.h, register.h,
1140         resources.h, runops_cores.h, rx.h, rxstacks.h, stacks.h, string.h,
1141         string_funcs.h, trace.h, warnings.h: This is the first batch of
1142         re-indenting.   This patch is the result of running run_indent.pl
1143         on the header files and manually tweaking the results where errors
1144         were noticed.   This should get us closed, but some refinement may
1145         follow.
1147 2002-03-04 03:06  josh
1149         * resources.c: Return without parens, as mentioned in PDD 7
1151 2002-03-04 03:01  josh
1153         * core.ops: POD fixes.
1155 2002-03-04 02:58  josh
1157         * config_h.in, ops2c.pl, classes/pmc2c.pl: More consistent headers
1158         on autogenerated files- used by the check_source_standards.pl
1159         script (for now) to exempt autogenerated files from the checks.
1161 2002-03-04 02:51  josh
1163         * embed.c, key.c, pmc.c, resources.c, rx.c, testparrotfuncptr.c,
1164         warnings.c: Added the editor "boilerplate" footer to a few files
1165         which were missing it.
1167 2002-03-04 02:34  josh
1169         * check_source_standards.pl, interpreter.c, jit.c, test_gnuc.c,
1170         include/parrot/io.h, include/parrot/parrot.h, io/io_win32.c: Fixes
1171         c preprocessor directive indentation to comply with pdd 7.
1173         (also fixes the check for this indentation in
1174         check_source_standards.pl)
1176 2002-03-04 02:32  josh
1178         * lib/Parrot/Test.pm: Fixes this error seen on perl 5.005_02 on
1179         irix.
1181         perl t/harness t/op/basic..........Use of uninitialized value at
1182         lib/Parrot/Test.pm line 81.  #     Failed test (t/op/basic.t at
1183         line 6) #          got: undef #     expected: ''
1185 2002-03-04 02:30  josh
1187         * MANIFEST, run_indent.pl, docs/pdds/pdd07_codingstd.pod,
1188         docs/pdds/pdd7.pod: Added documentation and code to invoke the GNU
1189         "indent" program to enforce some of the code style standards
1190         outlined in PDD 7.
1192         Usage: ./run_indent.pl <file>
1194 2002-03-03 19:04  simon
1196         * examples/mops/mops.c:
1197         Let's make it compile, huh?
1199 2002-03-03 19:04  simon
1201         * examples/mops/mops.cs:
1202         I R AN IDIOT
1204 2002-03-03 18:11  simon
1206         * examples/mops/mops.cs, examples/mops/mops.il, MANIFEST:
1207         Added C# and MS-IL versions of mops tester.
1209 2002-03-03 14:52  simon
1211         * core.ops:
1212         Add a sub() op to make mops_p work.
1214 2002-03-02 18:12  nicholas
1216         * examples/mops/mops.c, include/parrot/embed.h,
1217         include/parrot/interp_guts.h, include/parrot/jit.h,
1218         include/parrot/misc.h, include/parrot/packfile.h,
1219         include/parrot/rx.h, include/parrot/warnings.h,
1220         platforms/generic.c, platforms/generic.h, platforms/win32.c,
1221         platforms/win32.h, types/bignum.c, types/bignum.h: Patch from Josh
1222         Wilmes to add the emacs and vim "ending boilerplate" that sets the
1223         indent variables correctly.
1225 2002-03-02 17:41  nicholas
1227         * resources.c: Patch from Josh Wilmes <josh@hitchhiker.org>: Little
1228         patch to fix a compiler warning.
1230 2002-03-01 22:35  dan
1232         * memory.c, resources.c, include/parrot/pmc.h,
1233         include/parrot/resources.h: PMCs now come out of arenas.
1235 2002-03-01 06:15  dan
1237         * string.c:
1238         A non-existing buffer + a non-existing buffer should be a
1239         non-existing buffer, not "", which is really '\0'.
1241         Courtesy of "Bryan C. Warnock" <Bryan.Warnock@raba.com>
1243 2002-03-01 06:02  dan
1245         * classes/: array.pmc, perlarray.pmc, perlhash.pmc, perlstring.pmc:
1247         TMTOWTDI, but strcmp is probably the worse.
1249         Courtesy of "Bryan C. Warnock" <Bryan.Warnock@raba.com>
1251 2002-03-01 02:32  brentdax
1253         * embed.c: Debug mode now prints out the GC data.
1255 2002-02-28 23:44  dan
1257         * core.ops, resources.c, include/parrot/resources.h: Added collect
1258         and sweep opcodes
1260 2002-02-28 22:58  dan
1262         * docs/pdds/: pdd06_pasm.pod, pdd6.pod: Add docs for interpinfo
1263         opcode
1265 2002-02-28 22:50  dan
1267         * core.ops, interpreter.c, resources.c,
1268         examples/assembly/life.pasm, include/parrot/interpreter.h,
1269         include/parrot/resources.h: Add some stat gathering to the resource
1270         allocation code.
1272         Also add an interpreter info retrieval op, and teach it about the
1273         different things it can retrieve.
1275         Finally, add some stat info to life.pasm as an example
1277 2002-02-28 21:27  dan
1279         * editor/pasm.vim: VIM mode commands for parrot assembly files
1281         Courtesy of Scott Beck <scott@gossamer-threads.com>
1283 2002-02-28 19:20  dan
1285         * examples/assembly/life.pasm: Fix a creeping string length leak.
1287         Courtesy of  "Bryan C. Warnock" <Bryan.Warnock@raba.com>
1289 2002-02-28 18:26  dan
1291         * string.c: When you clone a constant, it ain't constant no mo'.
1293         Cocurtesy of "Bryan C. Warnock" <Bryan.Warnock@raba.com>
1295 2002-02-28 00:51  dan
1297         * MANIFEST: Add missing files
1299         Courtesy of "Bryan C. Warnock" <Bryan.Warnock@raba.com>
1301 2002-02-28 00:49  dan
1303         * docs/pdds/: pdd0.pod, pdd00_pdd.pod: The pod version of PDD 0 in
1304         CVS seems to have several chunks missing out of it, too.  This
1305         patch is simply an administrative patch, with the differences
1306         between my last version, and the one currently in there.  There
1307         will be a forthcoming patch for some minor tweaking to the PDD, but
1308         I wanted a common baseline before I make any (potential) semantic
1309         changes.
1311         There's only one semi-major change, which noone needs to worry
1312         about just yet.  That's a change from PDD Format 1 to PDD Format
1313         6.0 - rationale can be found under 'Standard (Version #)' of the
1314         STANDARDS TRACK infomation.  Don't worry about this yet, because it
1315         should be 6.0.0, and we need to discuss Perl versus Parrot with
1316         PDDs.
1318         Courtesy of "Bryan C. Warnock" <bwarnock@raba.com>
1320 2002-02-28 00:27  dan
1322         * packfile.c, resources.c, examples/assembly/life.pasm,
1323         include/parrot/register.h, include/parrot/resources.h,
1324         include/parrot/string.h: First pass of semi-full GC. (Strings only,
1325         no PMCs yet)
1327         This patch now implements a real copying collector. We trace from
1328         our root set and compact the contents of Buffer structs.
1330         Todo:
1332         *) It's very STRING-centric and doesn't handle memory stuffed in
1333         Buffers.  But, then, we don't have pool allocation for Buffers
1334         either, and we need to have that soonish for this to work.
1336         *) Doesn't trace PMCs, so if you trigger a collection and there's
1337         memory or STRING structs only accessible from PMCs, you'll fail
1338         horribly. That needs fixing too
1340         *) Better algorithms for when to trace or collect vs when to just
1341         go allocate more memory from the system. Should probably be more
1342         cache friendly too.
1344 2002-02-27 21:04  dan
1346         * jit.c, memory.c, resources.c, string.c, docs/pdds/pdd09_gc.pod,
1347         examples/assembly/life.pasm, include/parrot/resources.h,
1348         include/parrot/string.h, include/parrot/string_funcs.h,
1349         jit/i386/core.jit: Start of GC in
1351 2002-02-26 16:41  dan
1353         * jit/i386/string.jit: Fix a typo
1355         Courtesy of Jonathan Stowe <gellyfish@gellyfish.com>
1357 2002-02-26 16:37  dan
1359         * interpreter.c: Fix solaris test failures
1361         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1363 2002-02-26 16:36  dan
1365         * include/parrot/: interp_guts.h, io.h, packfile.h, rx.h,
1366         unicode.h, warnings.h: Fixes various warts in header files, such
1367         as: * macros   -added parens to prevent problems with operator
1368         precedence   -removed ; at end * removed SSIZE_MAX, since ssize_t
1369         is no longer used * added some more INLINE definitions for MSVC and
1370         C99 compilers
1372         Courtesy of Brian Lee Ray <blray@ualr.edu>
1374 2002-02-26 16:20  dan
1376         * Configure.pl: Turns out we were using a warning flag which
1377         doesn't exist on 2.7.  Simple tweak though:
1379         Courtesy of  Josh Wilmes <josh@hitchhiker.org>
1381 2002-02-25 22:58  dan
1383         * MANIFEST, docs/pdds/pdd09_gc.pod: Add docs of GC
1385 2002-02-25 17:36  dan
1387         * include/parrot/pmc.h: Fix the bits
1389 2002-02-23 21:57  dan
1391         * include/parrot/resources.h: Another 1.5% never hurts
1393 2002-02-23 21:44  dan
1395         * global_setup.c, memory.c, resources.c, string.c,
1396         include/parrot/resources.h: Allocate STRING headers from an arena
1397         with freelist rather than with the system malloc. First step in a
1398         good (or even a bad) GC system.
1400 2002-02-23 20:37  brentdax
1402         * misc.c: lint has been doing Evil and Wrong things to misc.c.
1404 2002-02-22 14:59  ajgough
1406         * types/bignum.c: BN_multiply split into BN_multiply and
1407         BN_imultiply, the internal version to be used by idivide so that
1408         rounding isn't performed during intermediate stages of division.
1410         following test scripts now all pass: divide divideint add multiply
1411         subtract remainder compare rounding plus minus (these are all the
1412         operations currently implemented, rescale and power must still be
1413         written, so don't pass right now).
1415 2002-02-22 13:13  ajgough
1417         * types/bignum_atest.pl: Test harness modified to understand
1418         comments better, and be able to run unary (and rounding) tests.
1419         Currently a few rounding tests fail, which are being investigated.
1421 2002-02-22 01:41  dan
1423         * key.c: Although there's more work being done on the key stuff and
1424         this isn't the final fix, applying this patch does get parrot to
1425         build with two more compilers, so it's probably worthwhile.
1427         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1429 2002-02-22 00:53  dan
1431         * config_h.in, misc.c, include/parrot/embed.h,
1432         include/parrot/exceptions.h, include/parrot/interpreter.h,
1433         include/parrot/io.h, include/parrot/parrot.h, include/parrot/pmc.h,
1434         include/parrot/resources.h, include/parrot/rx.h,
1435         include/parrot/string.h, include/parrot/unicode.h,
1436         include/parrot/warnings.h, io/io_stdio.c, io/io_unix.c,
1437         io/io_win32.c: Fixes the following (lcc) warnings:
1439           - interpreter.c:470: warning: expression with no effect elided
1440                (related to the way warnings flags were defined)
1442           - misc.c:352: warning: unreachable code
1443             misc.c:483: warning: unreachable code
1444                (i introduced these with some overzealous de-linting)
1446           - numerous warnings like this:
1447             io/io_unix.c:383: warning: conversion from pointer to void' to
1448         pointer to
1449             pointer to struct _ParrotIO function(pointer to struct
1450         Parrot_Interp,pointer
1451             to struct _ParrotIOLayer,pointer to const char,pointer to const
1452         char,pointer
1453             to pointer to void)' is compiler dependent
1455         Fixes the following nits:    - remove bad indenting (tabs) in the
1456         includes
1458         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1460 2002-02-21 21:12  ajgough
1462         * types/: bignum.c, bignum.h: These might look like massive
1463         changes, but really it's just he imposition of coding standards.
1464         The file still isn't entirely compliant, but is now much more so.
1466         Also changed:
1468          o a few more comments
1469          o BN_compare uses internal BN_comp to compare
1470          o lost_digits behaviour is now correct (test harness modified to
1471         test
1472            this).
1474         All binary functions now pass all the tests in the basic standard.
1475         Unary functions not yet tested, will be soon.
1477 2002-02-21 18:20  dan
1479         * lib/Parrot/OpTrans/CPrederef.pm: The "inline" bit of that patch
1480         was no longer needed, and the ssize_t thing really shouldn't be
1481         needed either.
1483         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1485 2002-02-21 18:15  dan
1487         * Configure.pl, embed.c, pdump.c, hints/mswin32.pl,
1488         include/parrot/parrot.h: this patch adds support for the freely
1489         available borland c++ 5.5.1 compiler
1491         depends on: - josh's patch to remove ssize_t from CPrederef.pm -
1492         working borland compiler (compiler must know where to find headers
1493         and libs) - Perl's Config.pm modified to use cc='bcc32.exe' not of
1494         cc='cl.exe' - a working make utility (borland make doesn't work,
1495         nmake does)
1497         changes: - add bcc in hints/mswin32.pl - clean up for msvc++ in
1498         hints/mswin32.pl - remove a space from Configure.pl (very very
1499         important for bcc) - add a O_BINARY flag to open() in pdump.c,
1500         embed.c (required by bcc) - define O_BINARY 0 when it's not defined
1501         (win32 knows it, linux not)
1503         and the why: - parrot is MUCH faster when compiled with borland c
1504         (make test on p2-450, 320MB):   * msvc++: 313 seconds   * bcc: 251
1505         seconds
1507         Courtesy of "Ritz Daniel" <daniel_ritz@gmx.ch>
1509 2002-02-21 18:09  dan
1511         * jit.c, testparrotfuncptr.c, trace.c, classes/array.pmc, io/io.c,
1512         io/io_stdio.c, io/io_unix.c, io/io_win32.c: This patch removes
1513         cuddled elses, as required by PDD 7.
1515         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1517 2002-02-21 18:04  dan
1519         * MANIFEST, Makefile.in, check_source_standards.pl: This patch adds
1520         a new Makefile target called "check_source".  This target scans all
1521         the .c and .h files in the directory and checks for conformance to
1522         a number of the standards outlined in PDD 7.
1524         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1526 2002-02-21 16:38  ajgough
1528         * types/: bignum.c, bignum.h, bignum_atest.pl: Modifications to
1529         allow arithmetic with numbers with a fixed fractional part, buffer
1530         structures now more ready to be integrated into the parrot memory
1531         allocation game, test harness modified to allow lost_digits
1532         condition to be checked.  Some more comments.
1534 2002-02-21 15:53  simon
1536         * io/io_unix.c:
1537         Fix typo
1539         Courtesy of: "David M. Lloyd" <dmlloyd@tds.net>
1541 2002-02-20 16:41  dan
1543         * MANIFEST, docs/pdds/pdd_template.pod: Added in template PDD
1545 2002-02-18 18:25  dan
1547         * MANIFEST, lib_deps.pl: Added in lib_deps.pl and MANIFEST change.
1549         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1551 2002-02-18 18:21  dan
1553         * lib/Parrot/OpTrans/CPrederef.pm: this is a quick fix for
1554         CPrederef.pm to make to generated code compile with the MS
1555         compiler.
1557         fixes: - ms compiler allows inline only for c++, for c there's
1558         __inline - ms header files knows nothing about ssize_t
1560         Courtesy of "Ritz Daniel" <daniel_ritz@gmx.ch>
1562 2002-02-18 17:49  dan
1564         * MANIFEST: Add the PDDs
1566 2002-02-18 17:47  dan
1568         * docs/pdds/: pdd07_codingstd.pod, pdd7.pod: Added in PDD 7, the
1569         coding standards PDD.
1571 2002-02-18 17:40  dan
1573         * docs/pdds/: pdd06_pasm.pod, pdd6.pod: Updated to latest rev
1575 2002-02-18 12:41  gregor
1577         * test_main.c:
1578         Remove warning about exit() not being declared.
1580 2002-02-18 08:29  simon
1582         * misc.c, warnings.c, include/parrot/misc.h,
1583         include/parrot/warnings.h:
1584         This patch adds some missing const's to silence a number of gcc
1585         warnings.
1587         Courtesy of: Josh Wilmes <josh@hitchhiker.org>
1589 2002-02-18 08:26  simon
1591         * Makefile.in, core.ops, embed.c, interpreter.c, key.c, misc.c,
1592         ops2c.pl, packfile.c, pdump.c, stacks.c, string.c,
1593         classes/array.pmc, classes/perlarray.pmc, classes/perlhash.pmc,
1594         include/parrot/parrot.h, include/parrot/rx.h,
1595         include/parrot/stacks.h, io/io_stdio.c, io/io_unix.c,
1596         lib/Parrot/OpTrans/CPrederef.pm:
1597            - add makefile target and script to test for external libc
1598         dependencies
1599            - fix return values in hash and array PMCs (returning 0 in a
1600         void func)
1601            - remove unnecessary data pointer <=> function pointer
1602         conversions
1603              outside of the JIT code.
1604            - move the definition of the "INLINE" macro out of the rx header
1605         and make
1606              available for general use on C++ compilers and gcc.
1607            - remove a few unused variables
1609         Courtesy of: Josh Wilmes <josh@hitchhiker.org>
1611 2002-02-17 16:29  simon
1613         * docs/pdds/: pdd0.pod, pdd00_pdd.pod, pdd01_overview.pod,
1614         pdd02_vtables.pod, pdd04_datatypes.pod, pdd05_opfunc.pod,
1615         pdd06_pasm.pod, pdd1.pod, pdd2.pod, pdd4.pod, pdd5.pod, pdd6.pod:
1616         We're organised and responsible. Honest.
1618 2002-02-17 02:46  sfink
1620         * Makefile.in: Remove $^ for nmake compatibility.
1622 2002-02-16 09:20  brentdax
1624         * config_h.in, test_main.c, include/parrot/chartype.h,
1625         include/parrot/embed.h, include/parrot/encoding.h,
1626         include/parrot/string.h, include/parrot/string_funcs.h: Better
1627         embedding exposure and hiding, part 1.
1629 2002-02-16 04:38  dan
1631         * Makefile.in, core.ops, interpreter.c, pbc2c.pl, pdump.c,
1632         runops_cores.c, docs/running.pod, lib/Parrot/OpTrans/C.pm,
1633         lib/Parrot/OpTrans/CGoto.pm, lib/Parrot/OpTrans/CPrederef.pm:
1634         Anyway, here's a patch to repair pbc2c.pl, combined with removing
1635         typecasts in various places throughout the code. It probably won't
1636         work for Windows yet. The libparrot.a target might need to be
1637         modified to at least prevent it from confusing make on Windows; I
1638         don't know.
1640         Preliminary instructions for using pbc2c.pl are in
1641         docs/running.pod.  I'll try to do better later.
1643         Courtesy of Steve Fink <steve@fink.com>
1645 2002-02-16 04:15  dan
1647         * exceptions.c, include/parrot/exceptions.h: Warnings cleaned up
1649         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1651 2002-02-16 00:03  simon
1653         * classes/: perlarray.pmc, perlhash.pmc:
1655         pmc is already defined!
1657 2002-02-15 23:20  brentdax
1659         * Configure.pl, config_h.in, exceptions.c, pmc.c,
1660         include/parrot/exceptions.h: Far more informative panic messages.
1662 2002-02-15 03:24  dan
1664         * lib/Parrot/: Op.pm, OpsFile.pm, OpTrans/CPrederef.pm: Here's a
1665         much more extensive patch that fixes it to work properly, and
1666         deletes a bazillion casts as well.  It also points to the question
1667         "can we make the byte_code be an opcode_t* already?"
1669         Oh, and it makes some of the formatting prettier, so it's gotta be
1670         good.
1672         Courtesy of * Steve Fink <steve@fink.com>
1674 2002-02-15 02:30  dan
1676         * Makefile.in, core.ops, embed.c, misc.c, packfile.c, rx.ops,
1677         stacks.c: I've tweaked the "lint" target somewhat and fixed a few
1678         of the things it finds.  Attaching the patch as well as the current
1679         lint output.
1681         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1683 2002-02-15 01:59  dan
1685         * t/pmc/: array.t, perlhash.t: Disable non-functional bits for the
1686         moment.
1688 2002-02-15 01:48  dan
1690         * t/pmc/perlarray.t: Skip tests for features that need twiddling
1692 2002-02-15 01:40  dan
1694         * t/op/rx.t: Skip a test that's waiting for us to rejig some array
1695         things
1697 2002-02-14 23:30  dan
1699         * resources.c: Added comment for buffer tag routine. D'oh!
1701 2002-02-14 23:28  dan
1703         * resources.c, include/parrot/resources.h: Added buffer mark
1704         routine for GC
1706 2002-02-14 23:17  dan
1708         * memory.c, classes/array.pmc, classes/perlarray.pmc,
1709         include/parrot/memory.h, include/parrot/string.h, t/pmc/perlhash.t:
1710         Rejigged memory system a bit. Now should be ready for the horror
1711         that is garbage collection.
1713 2002-02-14 19:33  gregor
1715         * ops2c.pl, include/parrot/oplib.h:
1716         Added code to automatically generate a function within an oplib to
1717         lookup opinfos given the op name. This will come in handy in future
1718         when we want to twiddle opcode tables at run time and possibly at
1719         startup time.
1721 2002-02-14 19:25  gregor
1723         * examples/assembly/queens.pasm:
1724         Regenerated queens.pasm from queens.jako since the clone_* stuff
1725         went away.
1727 2002-02-14 17:12  dan
1729         * resources.c, include/parrot/resources.h: Finished up the
1730         interface for memory and tracked interpreter thingies.
1732 2002-02-14 16:53  dan
1734         * memory.c, include/parrot/memory.h: intercept free and realloc
1736 2002-02-14 05:53  dan
1738         * interpreter.c, runops_cores.c: The type changes in struct
1739         Packfile break the pointer math used in a few places to calculate
1740         the address of the end of the loaded byte code. This causes
1741         segfaults in build_asm in jit.c when using -j. It also breaks the
1742         bounds checking on opcode address in runops_slow_core.
1744         The patch adds the necessary cast to correct the code_end
1745         calculations.
1747         Courtesy of Jason Gloudon <perl@gloudon.com>
1749 2002-02-14 01:01  ajgough
1751         * types/: bignum.c, bignum.h, bignum_test.pl: Added support for
1752         BigInt operations (I think), tests for normal operation continue to
1753         pass.  Also a shed load of comments.
1755 2002-02-13 01:34  ajgough
1757         * types/: bignum.c, bignum.h, bignum_atest.pl, bignum_test.pl: This
1758         is a (mostly) working bignumber library.  There remains much work
1759         to do though, some functions are not yet implemented and headers
1760         need to find their way to the correct place RSN.  Also support for
1761         bigints and a sensible error reporting mechanism are needed.
1763 2002-02-12 18:51  dan
1765         * misc.c: Fix some warnings
1767 2002-02-12 17:10  dan
1769         * misc.c: Run through indent -kr -nce so I can read it
1771 2002-02-12 16:49  dan
1773         * misc.c: Need standard header/footer comments
1775 2002-02-11 20:32  simon
1777         * classes/array.pmc:
1778         get and set pmc methods.
1780 2002-02-11 20:19  simon
1782         * classes/array.pmc:
1783         Maybe the keys aren't integer...
1785 2002-02-11 20:03  simon
1787         * core.ops, vtable.tbl, classes/default.pmc:
1788         {g,s}et_pmc_keyed
1790 2002-02-11 19:07  simon
1792         * vtable.tbl, classes/default.pmc:
1793         Add set_pmc. Usee with caution.
1795 2002-02-11 18:20  dan
1797         * classes/: array.pmc, perlarray.pmc: Patch array classes to
1798         compile
1800 2002-02-11 17:59  simon
1802         * core.ops, embed.c, global_setup.c, key.c, rx.ops,
1803         classes/perlarray.pmc, classes/perlhash.pmc:
1804         Make it compile.
1806 2002-02-11 17:57  simon
1808         * packfile.c, include/parrot/packfile.h:
1809         Reduce warnings
1811         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
1813 2002-02-11 17:55  dan
1815         * docs/parrot_assembly.pod: Document some key ops
1817 2002-02-11 09:20  brentdax
1819         * pmc.c, include/parrot/exceptions.h: Adding a panic ought to be
1820         disgustingly easy.
1822 2002-02-11 00:34  simon
1824         * core.ops, include/parrot/exceptions.h:
1825         This is what keyed set ops look like. Remember, however, that for
1826         keyed functions, all operands must be PMCs. set(PMC, PMC, INT)
1827         means $1 = $2[$3], not $1[$2] = $3. set(PMC,PMC,PMC) is so
1828         obviously ambiguous that you ought to use the 4-arg version
1829         instead.
1831 2002-02-10 23:12  jgoff
1833         * classes/: array.pmc, perlarray.pmc: Properly allocate
1834         SELF->data's array of PMC* data in array and perlarray.pmc.  This
1835         isn't tested yet, but should be fairly straightforward.  PerlHash
1836         needs to be finished before the system will compile again, and that
1837         should be done in the next few days.
1839 2002-02-09 04:46  jgoff
1841         * classes/: array.pmc, default.pmc, intqueue.pmc,
1842         parrotpointer.pmc, perlarray.pmc, perlhash.pmc, perlundef.pmc:
1843         Added basic _keyed member functions.  Unfortunately this still
1844         doesn't fix the problems that are causing the build to break. It's
1845         a start though. I'm not implementing the PMC add functions just
1846         yet.
1848 2002-02-08 15:59  simon
1850         * classes/array.pmc:
1851         Some more work on getting the array stuff up to date.
1853 2002-02-08 12:23  simon
1855         * classes/array.pmc, classes/perlhash.pmc, include/parrot/key.h,
1856         lib/Parrot/Vtable.pm:
1857         Got array->get_integer_keyed doing what I think it ought to. One
1858         down, all the rest to go.
1860 2002-02-08 11:47  simon
1862         * vtable.tbl:
1863         Although I didn't intend it to be quite that broken...
1865 2002-02-08 11:42  simon
1867         * vtable.tbl, include/parrot/parrot.h, lib/Parrot/Vtable.pm:
1868         Completely break Parrot, but at least we get the key stuff right
1869         for now.
1871 2002-02-08 06:25  dan
1873         * hints/darwin.pl: Silences the warning about passing in
1874         -flat_namespace to the compile.  That's a link-only flag.
1876 2002-02-08 04:52  jgoff
1878         * classes/: array.pmc, default.pmc, intqueue.pmc,
1879         parrotpointer.pmc, perlarray.pmc, perlhash.pmc, perlint.pmc,
1880         perlnum.pmc, perlstring.pmc, perlundef.pmc: Filled in missing
1881         return values in *.pmc, added some missing casts to the repeat_foo
1882         members, and deleted the _index members from the perlscalar
1883         classes.  Basic cleanup, and getting ready for _keyed functions.
1885 2002-02-07 04:49  mrjoltcola
1887         * examples/assembly/bsr.pasm: Elaborated on the bsr/ret example,
1888         added a nested subroutine call.
1890 2002-02-07 04:32  jgoff
1892         * vtable.tbl, lib/Parrot/Vtable.pm: vtable.tbl got some minor
1893         changes in order to give the whitespace rules a little workout, and
1894         do a little bit more testing. No actual structural changes were
1895         made.  lib/Parrot/Vtable.pm got an interface change, and more
1896         importantly should be ready to support the new '_keyed' attribute,
1897         which will work roughly thus: PMC* src_value gets remapped to 'PMC*
1898         src_value' followed by 'KEY* src_key'.  This will be how the new
1899         _keyed operators will function, and those should be written within
1900         a few days.
1902 2002-02-06 18:00  doughera
1904         * misc.c: Change C++-style comments to C comments (again).  Remove
1905         unused perl5 code that was in #if 0/#endif.
1907 2002-02-06 17:59  doughera
1909         * warnings.c: Add trailing newline.
1911 2002-02-06 04:14  mrjoltcola
1913         * include/parrot/io.h, io/io.c: Minor cleanup.
1915 2002-02-06 03:11  mrjoltcola
1917         * examples/assembly/io1.pasm, io/io.c, io/io_win32.c: Tied up a
1918         couple of loose end in win32 IO stuff. Open behaves now but needs
1919         more work.
1921 2002-02-05 21:02  brentdax
1923         * classes/pmc2c.pl: Length on whoami init was always 7--a problem
1924         which showed up in Purify builds.
1926 2002-02-05 17:15  simon
1928         * misc.c:
1929         Warning fixes.
1931         Courtesy of: Jonathan Stowe <gellyfish@gellyfish.com>
1933 2002-02-05 17:08  doughera
1935         * misc.c: Avoid C++-style comments.
1937 2002-02-05 17:07  doughera
1939         * lib/Parrot/Jit/sun4Generic.pm: Generated assembly programs were
1940         not valid assembler for Sun's /usr/ccs/bin/as.  Now they are,
1941         thanks to Jason Gloudon <perl@gloudon.com>.
1943 2002-02-05 14:04  simon
1945         * misc.c:
1946         Make the problem different, perhaps even better.
1948 2002-02-05 13:49  simon
1950         * misc.c:
1951         Possibly fix a `short int' is promoted to `int' when passed through
1952         `...' scary error, possibly make things absolutely worse.
1954 2002-02-05 13:15  simon
1956         * Configure.pl:
1957         Placate Tru64.
1959 2002-02-05 13:12  simon
1961         * warnings.c:
1962         Not going to get far without this one...
1964 2002-02-05 11:41  simon
1966         * string.c:
1967         Don't barf when handed null pointers.
1969 2002-02-05 10:04  simon
1971         * misc.c, include/parrot/misc.h:
1972         Fix some trivial bugs in warnings code.
1974 2002-02-05 09:27  simon
1976         * misc.c:
1977         Oops, forgot this one; also added %P support.
1979 2002-02-05 09:20  simon
1981         * MANIFEST, Makefile.in, core.ops, embed.c, interpreter.c,
1982         test_main.c, classes/perlundef.pmc, include/parrot/embed.h,
1983         include/parrot/interpreter.h, include/parrot/misc.h,
1984         include/parrot/parrot.h, include/parrot/warnings.h:
1985         Warnings support.
1987         Courtesy of: Brent Dax <brentdax@cpan.org>
1989 2002-02-05 05:41  jgoff
1991         * vtable.tbl, lib/Parrot/Vtable.pm, t/pmc/perlstring.t: Changed the
1992         format of vtable.tbl to get rid of the tab-dependence.  The format
1993         now looks roughly like this:
1995         init() # 'void' and 'unique' are assumed INTVAL type ( ) # 'unique'
1996         is assumed str void concatenate (PMC* value, PMC* dest) # Nothing
1997         assumed here, but note the C-like prototyping.  Also had to disable
1998         one test that depended upon 'concat_p_p_s', which isn't necessary
1999         anyway.
2001         Vtable.pm will change again when the type '_keyed' is added,
2002         because that requires remapping parameters slightly differently
2003         again.  Also, note that it assumes 'value' is the first parameter
2004         in the list. This assumption will go away at the same time.
2006 2002-02-04 16:57  ajgough
2008         * core.ops, t/pmc/perlstring.t, t/pmc/pmc.t: More tests for pmc
2009         functions.  Thanks to Simon Glover.
2011 2002-02-04 02:47  ajgough
2013         * hints/os2.pl: Removes a flag from the os/2 hints file that isn't
2014         needed.  I suspect that the entire hints file isn't really needed,
2015         but there's no one to actually tell us this.
2017 2002-02-02 15:45  ask
2019         * docs/ParrotFAQ.htm: fix internal links
2021 2002-02-02 04:06  jgoff
2023         * classes/: array.pmc, intqueue.pmc, perlarray.pmc, perlhash.pmc:
2024         Moving the internal KEY structure from the cache.struct_val member,
2025         where it doesn't really belong, to the internal SELF->data member.
2026         This frees up the cache/type members for other usage.
2028         This is the first step in moving PMCs to the point where we can do
2029         multidimensional PMC handles. The next step is to change the
2030         assembler to accept the syntax of 'set P0["foo"],7'.
2032 2002-02-02 00:13  nicholas
2034         * include/parrot/global_setup.h: Patch from Jonathan Stowe to
2035         prototype Parrot_Array_class_init
2037 2002-02-02 00:13  nicholas
2039         * embed.c: Casts to tidy up warnings from Jonathan Stowe Change
2040         time to sum_time to avoid warning on FreeBSD about tracking a
2041         global [No, this warning does not appear on Linux. Yes, it is real
2042         :-)]
2044 2002-02-01 23:02  nicholas
2046         * embed.c: Fix fprintf format warning in Parrot_runcode. From Simon
2047         Glover
2049 2002-02-01 20:20  nicholas
2051         * t/pmc/pmc.t: Add end at end of asm in test (from Simon Glover)
2053 2002-02-01 18:20  nicholas
2055         * lib/Parrot/Test.pm: Env.pm on 5.005_03 doesn't do a use vars for
2056         you
2058 2002-02-01 13:22  nicholas
2060         * MANIFEST: Add docs/embed.pod and t/op/ifunless.t
2062 2002-02-01 12:19  simon
2064         * core.ops, t/op/ifunless.t, t/op/integer.t:
2065         Added "unless" op.
2067 2002-02-01 12:11  simon
2069         * lib/Parrot/Test.pm:
2070         Remove a warning.
2072 2002-02-01 01:38  nicholas
2074         * MANIFEST, MANIFEST.SKIP, Makefile.in: Add a MANIFEST.SKIP file,
2075         and a manitest target to Makefile.in that lets one test the
2076         manifest.
2078 2002-02-01 00:03  dan
2080         * core.ops, global_setup.c, include/parrot/pmc.h: More setup for
2081         PMC dynaloading
2083 2002-01-31 21:46  gregor
2085         * Configure.pl, Makefile.in, hints/mswin32.pl:
2086         A few more things are now configable, so we are closer to win32
2087         shared library builds. Not there yet, but closer.
2089 2002-01-31 21:00  dan
2091         * global_setup.c, classes/pmc2c.pl, include/parrot/global_setup.h,
2092         include/parrot/pmc.h: First step in dynamically loading PMC classes
2094 2002-01-31 19:38  dan
2096         * Makefile.in: Dependencies in the Makefile are currently too broad
2097         brush.  I don't enjoy waiting for everything to recompile every
2098         time I try to tweak the jit. The only file that #includes
2099         jit_struct.h is jit.c, so I feel that the Makefile dependencies
2100         should reflect this, and not cause a gratuitous recompile of
2101         everything.  There are probably other auto-generated header files
2102         that world+dog should not depend on.
2104         Courtesy of  Nicholas Clark <nick@unfortu.net>
2106 2002-01-31 19:03  gregor
2108         * Makefile.in, lib/Parrot/Test.pm, t/harness:
2109         Added two new make targets:
2111           * testp: Like 'make test', but passes -P to t/harness, so you get
2112         to
2113             see how broken predereferencing is.
2115           * testj: Like 'make test', but passes -j to t/harness, so you get
2116         to
2117             see how broken JIT is.
2119         Now, anyone who wants to see how good all three ways of running are
2120         can do so, at the cost of about 3x the time.
2122 2002-01-31 17:09  brentdax
2124         * embed.c, test_main.c: Implement the ARGV-in-P0 thing.
2126 2002-01-31 03:41  grunblatt
2128         * docs/jit.pod: Update jit.pod
2130 2002-01-31 03:20  grunblatt
2132         * jit/i386/core.jit: Hold this until we get an assemble tool,
2133         because of the different objdump problems.
2135 2002-01-31 03:13  grunblatt
2137         * Configure.pl, lib/Parrot/Jit/sun4-solaris.pm,
2138         lib/Parrot/Jit/sun4Generic.pm: Use dis intead of objdump.  Courtesy
2139         of: Jason Gloudon <perl@gloudon.com>
2141 2002-01-31 02:22  grunblatt
2143         * jit/i386/core.jit: Continue if the register is null
2145 2002-01-30 23:50  grunblatt
2147         * lib/Parrot/Jit/: alpha-bsd.pm, alpha-linux.pm, alphaGeneric.pm,
2148         i386-bsd.pm, i386-linux.pm, i386Generic.pm, sun4-solaris.pm,
2149         sun4Generic.pm: Move the AS and OBJDUMP constants to each os
2150         specific file.
2152 2002-01-30 23:35  mrjoltcola
2154         * io/io_win32.c: Change implementation of isatty on win32,
2155         suggested by Hong Zhang.
2157 2002-01-30 23:19  sfink
2159         * jit2h.pl, lib/Parrot/Op.pm, lib/Parrot/OpsFile.pm: Added
2160         Op::may_jump boolean method.
2162         Replaced jit2h's hardcoded pattern match to decide what ops might
2163         change the control flow.
2165 2002-01-30 22:13  dan
2167         * Configure.pl, MANIFEST, testparrotfuncptr.c: This patch allows
2168         parrot to mostly-build with tcc.  It allows one to skip compiling
2169         the JIT stuff (by specifying --define jitcapable=0), and it
2170         introduces a test program which gives a friendlier error in this
2171         case for compilers which are as picky as tcc is about function
2172         pointer conversion.
2174         If anyone figures out the proper way to cast these function
2175         pointers this may not be necessary.
2177         Courtesy of Josh Wilmes <josh@hitchhiker.org>
2179 2002-01-30 20:54  dan
2181         * docs/running.pod, lib/Parrot/Test.pm: I'm being anal again.
2182         Here's an update to docs/running.pod to better reflect the current
2183         state (both the test_parrot and assemble.pl improvements, plus
2184         documentation of a few more things.) And also a speling fiks
2185         s/POST_MORTERM/POST_MORTEM/.
2187         I could also replace some "perl foo" calls with "./foo" if someone
2188         wanted to set the executable flag in CVS on assemble.pl,
2189         optimize.pl, etc.
2191         Courtesy of Steve Fink <steve@fink.com>
2193 2002-01-30 20:43  dan
2195         * core.ops: find_global doesn't work, so stub out the wrong code
2197 2002-01-30 19:08  dan
2199         * lib/Parrot/Assembler.pm:  fixes the POD in Parrot::Assember so
2200         that perldoc
2201          can read it and just tidies it up generally. It also adds
2202         documentation
2203          for the constantize_integer and constantize_number functions.
2205         Courtesy of Simon Glover <scog@roe.ac.uk>
2207 2002-01-30 18:02  dan
2209         * assemble.pl, disassemble.pl, optimizer.pl, pbc2c.pl,
2210         classes/genclass.pl, classes/pmc2c.pl,
2211         languages/scheme/Scheme/Test.pm:  Many of the Perl scripts in the
2212         distribution (including assemble.pl !)
2213          can no longer find the Parrot::* modules. Enclosed patch fixes
2214         (although
2215          it would be nice if there were an easier way to do this).
2217         Courtesy of  Simon Glover <scog@roe.ac.uk>
2219 2002-01-30 16:00  mrjoltcola
2221         * io/io_win32.c: Correct function calls for win32_fdopen and arg
2222         types.
2224 2002-01-30 15:50  mrjoltcola
2226         * io/io_unix.c: Minor bug fix for fdopen flag arg type.
2228 2002-01-30 15:42  grunblatt
2230         * pbc2c.pl, examples/assembly/Makefile: Updates related to moving
2231         files around
2233 2002-01-30 15:38  grunblatt
2235         * MANIFEST: Enclosed patch adds the new SPARC-based JIT files to
2236         the manifest,  and also puts it back into alphabetical order.
2238         Courtesy of: Simon Glover <scog@roe.ac.uk>
2240 2002-01-30 14:41  nicholas
2242         * embed.c: Patch from Simon Glover to clean up warnings where
2243         prototype is () not (void)
2245 2002-01-30 13:54  nicholas
2247         * include/parrot/embed.h, test_main.c: Add void as an explicit
2248         parameter in test_main.c's usage(), version(void) and embed.h's
2249         Parrot_new() Without these gcc moans: include/parrot/embed.h:34:
2250         warning: function declaration isn't a prototype
2252 2002-01-30 12:08  simon
2254         * lib/Parrot/.cvsignore:
2255         Ignore generated Perl modules.
2257 2002-01-30 12:07  simon
2259         * t/harness:
2260         Run the PMC tests as well.
2262 2002-01-30 12:04  simon
2264         * MANIFEST:
2265         Fix MANIFEST after recent t/pmc rejig.
2267 2002-01-30 11:42  simon
2269         * lib/Parrot/Test.pm:
2270         Report non-zero exit codes.
2272         Courtesy of: Michael G Schwern <schwern@pobox.com>
2274 2002-01-30 11:39  simon
2276         * t/op/rx.t:
2277         Skip final test, TODO doesn't work yet.
2279 2002-01-30 09:54  brentdax
2281         * docs/embed.pod: Leon Brocard was kind enough to explain to me how
2282         predereferencing works.
2284 2002-01-30 09:38  brentdax
2286         * docs/: embed.pod, parrot.pod: Document this newfangled embedding
2287         subsystem.
2289 2002-01-30 09:37  brentdax
2291         * include/parrot/embed.h: Fix a mistake, clear up a warning.
2293 2002-01-30 09:37  brentdax
2295         * config_h.in: Expose another flag for embedders.
2297 2002-01-30 05:07  jgoff
2299         * make_vtable_ops.pl, t/harness: Both files didn't know of the new
2300         location for Parrot/, and t/harness wasn't able to run the new
2301         op/pmc tests. Both problems fixed, so I think I'm going to declare
2302         the build suitable for public consumption.
2304 2002-01-30 04:34  robert
2306         * docs/Makefile.in: update for CVS movement
2308 2002-01-30 04:32  robert
2310         * Makefile.in: Adjust for CVS reorganization.  (This time, edit the
2311         .in file, not the real Makefile)
2313 2002-01-30 04:20  robert
2315         * Configure.pl, jit2h.pl, ops2c.pl, ops2pm.pl, pmc_pm.pl,
2316         vtable_h.pl, classes/pmc2c.pl, include/parrot/parrot.h: Updates
2317         related to moving files around
2319 2002-01-30 04:10  robert
2321         * MANIFEST: Update MANIFEST to reflect CVS reorg.
2323 2002-01-30 04:07  robert
2325         * Configure.pl: Add './lib' to our @INC because Parrot/* moved.
2327 2002-01-30 03:56  robert
2329         * Parrot/: .cvsignore, Assembler.pm, BuildUtil.pm, Op.pm,
2330         OpTrans.pm, OpsFile.pm, Optimizer.pm, PackFile.pm, String.pm,
2331         Test.pm, Vtable.pm, Jit/alpha-bsd.pm, Jit/alpha-linux.pm,
2332         Jit/alphaGeneric.pm, Jit/i386-bsd.pm, Jit/i386-linux.pm,
2333         Jit/i386-nojit.pm, Jit/i386Generic.pm, Jit/sun4-solaris.pm,
2334         Jit/sun4Generic.pm, OpLib/.cvsignore, OpTrans/C.pm,
2335         OpTrans/CGoto.pm, OpTrans/CPrederef.pm, PackFile/ConstTable.pm,
2336         PackFile/Constant.pm, PackFile/FixupTable.pm: Moved Parrot/* to
2337         lib/Parrot/
2339 2002-01-30 03:46  robert
2341         * languages/miniperl/miniperlc: renamed to mpc
2343 2002-01-30 03:45  robert
2345         * t/op/: pmc.t, pmc_array.t, pmc_perlarray.t, pmc_perlhash.t,
2346         pmc_perlstring.t: Moved to t/op/pmc/
2348 2002-01-30 03:40  robert
2350         * include/parrot/register_funcs.h: Renamed to regfuncs.h
2352 2002-01-30 03:14  jgoff
2354         * classes/perlarray.pmc, t/op/pmc_perlarray.t, t/pmc/perlarray.t:
2355         Fixed some problems with PerlArray and added tests.  Previously,
2356         only integers could be accessed by negative indices.  After this
2357         change, all basic types can be accessed by negative indices, and
2358         they can also be set at negative indices.
2360 2002-01-29 22:13  brentdax
2362         * TODO: Just look at the stupid diff.
2364 2002-01-29 21:53  simon
2366         * TODO, docs/vtables.pod:
2367         New TODO, and tiny addition to vtables.pod
2369 2002-01-29 21:47  mrjoltcola
2371         * include/parrot/io.h, io/io_unix.c: Minor bug fix in io_unix.
2373 2002-01-29 21:38  mrjoltcola
2375         * Makefile.in: Makefile.in tweak for io depend.
2377 2002-01-29 21:15  brentdax
2379         * embed.c: Fix a segfault and some profiling formatting nits.
2381 2002-01-29 20:54  brentdax
2383         * pmc.c: Oops.
2385 2002-01-29 20:50  brentdax
2387         * pmc.c, include/parrot/exceptions.h: Exceptions are better than
2388         segfaults.
2390 2002-01-29 20:17  mrjoltcola
2392         * interpreter.c, core.ops, io.ops: CVS missed this.
2394 2002-01-29 20:17  mrjoltcola
2396         * io/io.c: These should have gone in Sunday with the rest. CVS is
2397         out to get me.
2399 2002-01-29 18:39  brentdax
2401         * platforms/win32.h: Fix Win32 whoops.
2403 2002-01-29 18:29  brentdax
2405         * embed.c, include/parrot/embed.h: A couple minor embedding fixes.
2407 2002-01-29 17:51  simon
2409         * MANIFEST, Makefile.in, config_h.in, embed.c, test_main.c,
2410         include/parrot/embed.h, include/parrot/parrot.h:
2411         Embedding support. Cool.
2413         Courtesy of: <brentdax@cpan.org>
2415 2002-01-29 15:40  grunblatt
2417         * Configure.pl: Detect if we can use "objdump".  Courtesy of: Jason
2418         Gloudon <perl@gloudon.com>
2420 2002-01-29 14:42  simon
2422         * include/parrot/parrot.h:
2423         Platform stuff has to be included *after* system headers.
2425 2002-01-29 14:05  grunblatt
2427         * interpreter.c, jit.c, Parrot/Jit/sun4-solaris.pm,
2428         Parrot/Jit/sun4Generic.pm, lib/Parrot/Jit/sun4-solaris.pm,
2429         lib/Parrot/Jit/sun4Generic.pm, include/parrot/jit.h,
2430         jit/sun4/core.jit, jit/sun4/lib.jit, jit/sun4/string.jit: Added
2431         support for SPARC.  Courtesy of: Jason Gloudon <perl@gloudon.com>
2433 2002-01-29 10:56  simon
2435         * platforms/generic.h:
2436         If we don't have a S_ISREG, produce something close to it.
2438 2002-01-29 06:01  dan
2440         * MANIFEST, README, LICENSES/Artistic: Finally added licenses
2442 2002-01-29 04:38  jgoff
2444         * classes/array.pmc: Forgot to remove some C++-isms from the
2445         get_{foo}_index routines.
2447 2002-01-29 04:26  jgoff
2449         * MANIFEST, Makefile.in, global_setup.c, classes/Makefile.in,
2450         classes/array.pmc, include/parrot/pmc.h, t/op/pmc_array.t,
2451         t/pmc/array.t: Added array class that languages other than perl can
2452         use for a basis.  It has no features like preextension, and the
2453         array index starts at 0.
2455         MANIFEST - added classes/array.pmc and t/op/pmc_array.t Makefile.in
2456         and classes/Makefile.in - Added array.pmc to the makefile.
2457         (Assuming rules like .pmc.o are portable (or even possible) I might
2458         alter classes/Makefile.in to autobuild the appropriate files.
2460 2002-01-29 02:32  dan
2462         * MANIFEST, Parrot/Test.pm, lib/Parrot/Test.pm,
2463         lib/Test/Builder.pm, lib/Test/More.pm, lib/Test/Simple.pm,
2464         lib/Test/Utils.pm, t/op/interp.t, t/op/macro.t, t/op/pmc.t,
2465         t/op/rx.t, t/op/stacks.t, t/pmc/pmc.t:
2466             Update to Test::More 0.41 which adds Test::Builder
2468             Delete the vestigal Test::Utils
2470             Change Parrot::Test so it uses Test::Builder instead of Evil
2471         Wrappers
2472             around Test::More
2474             output_* now returns whether the test passes or fails
2476             Parrot::Test no longer exports Test::More's functions.  Instead
2477         they
2478             can simply be used together.  The few tests which used
2479         Test::More
2480             features (ie. skip) have 'use Test::More' added.
2482             I ditched the export_to_level() crutch.  Do we expect parrot to
2483         work on
2484             5.004?  (literally 5.004, not 5.004_04)
2486         Courtesy of Michael G Schwern <schwern@pobox.com>
2488 2002-01-28 21:04  dan
2490         * docs/overview.pod:  There is no opcodes.pod; I'm assuming the
2491         pointer should actually be to
2492          parrot_assembly.pod, as the canonical documentation.
2494         Courtesy of Simon Glover <scog@roe.ac.uk>
2496 2002-01-28 20:21  dan
2498         * languages/jako/jakoc, t/op/stacks.t: Toss the last traces of
2499         clone[inps]
2501 2002-01-28 19:18  dan
2503         * core.ops, register.c: clone[insp] is dead
2505 2002-01-28 17:46  grunblatt
2507         * Parrot/Jit/i386Generic.pm, lib/Parrot/Jit/i386Generic.pm,
2508         jit/i386/core.jit: Fix to make the jit work in linux yet again.
2510 2002-01-28 16:45  dan
2512         * MANIFEST, README.OS_X: Added Mac OS X specific readme documenting
2513         the requirement for fink at the moment.
2515 2002-01-28 15:59  simon
2517         * test_main.c:
2518         People might try and run a directory file, with spectacular
2519         results.  We don't want that. No.
2521 2002-01-28 14:58  doughera
2523         * core.ops: Avoid C++-style comments.
2525 2002-01-28 14:16  grunblatt
2527         * jit.c, io/io.c: Changed jit.c to fit the way registers are
2528         accessed.  Readded the pio_(stdin|stdout|stderr) to make builds
2529         work again.
2531 2002-01-28 13:47  doughera
2533         * include/parrot/register.h: Avoid C++-style comment.
2535 2002-01-28 06:03  dan
2537         * MANIFEST, core.ops, interpreter.c, key.c, register.c, trace.c,
2538         Parrot/OpTrans/C.pm, Parrot/OpTrans/CGoto.pm,
2539         lib/Parrot/OpTrans/C.pm, lib/Parrot/OpTrans/CGoto.pm,
2540         docs/parrot_assembly.pod, include/parrot/interpreter.h,
2541         include/parrot/parrot.h, include/parrot/regfuncs.h,
2542         include/parrot/register.h, include/parrot/register_funcs.h,
2543         include/parrot/string.h, include/parrot/string_funcs.h: Registers
2544         are now stored in the interpreter structure itself, rather than
2545         just a pointer to the top of the register structure. Pushes and
2546         pops now involve memcpys, but register access has one fewer
2547         dereference.
2549         Fails four of the register stack tests, though, so not perfect.
2550         Needs fixing, but this is a good place to start.
2552 2002-01-28 04:40  mrjoltcola
2554         * test_main.c: cvs commit missed this. ??
2556 2002-01-28 04:27  mrjoltcola
2558         * examples/assembly/io1.pasm, include/parrot/exceptions.h,
2559         include/parrot/interpreter.h, include/parrot/io.h, io/io.c,
2560         io/io_stdio.c, io/io_unix.c, io/io_win32.c: ParrotIO local to each
2561         interpreter now (at least in theory).  IO handle array added.  Misc
2562         bug fixes in layer handling.  Changed any IO_ constants to PIO_ so
2563         we don't conflict         with system libraries.  Still have broken
2564         stuff in win32 and stdio layer.
2566 2002-01-28 04:01  mrjoltcola
2568         * include/parrot/chartype.h: Typo in chartype.h include guard.
2570 2002-01-28 03:41  mrjoltcola
2572         * t/op/interp.t: Fix flag for interp so we don't get "info"
2573         messages which break tests.
2575 2002-01-28 01:54  dan
2577         * include/parrot/string.h: A few more buffer/string flags
2579 2002-01-27 11:33  nicholas
2581         * chartypes/unicode.c: Cast unsigned argument to int in call to
2582         isdigit to silence gcc warning.
2584 2002-01-26 23:18  grunblatt
2586         * Parrot/Jit/i386Generic.pm, lib/Parrot/Jit/i386Generic.pm: Turn
2587         off that flag.
2589 2002-01-26 23:17  grunblatt
2591         * Parrot/Jit/i386Generic.pm, lib/Parrot/Jit/i386Generic.pm,
2592         jit/i386/core.jit: [no log message]
2594 2002-01-26 22:18  simon
2596         * jit/i386/core.jit:
2597         Jumping to 0x0 is a recipe for segfaults.
2599 2002-01-26 18:35  simon
2601         * t/harness:
2602         Allow user to select which tests to harness
2604         Courtesy of: Nicholas Clark <nick@unfortu.net>
2606 2002-01-26 17:20  grunblatt
2608         * Parrot/Jit/i386-linux.pm, Parrot/Jit/i386Generic.pm,
2609         lib/Parrot/Jit/i386-linux.pm, lib/Parrot/Jit/i386Generic.pm: Patch
2610         to make the jit work in linux again.
2612 2002-01-26 16:52  dan
2614         * Configure.pl, hints/darwin.pl: Add -Wno-shadow, as Darwin's
2615         headers can't cope with this. Darwin-only
2617 2002-01-26 16:04  dan
2619         * include/parrot/parrot.h: Quick note to remind folks that this
2620         isn't the file they're looking for if they're writing extensions or
2621         embedding parrot.
2623         Courtesy of Andy Dougherty <doughera@lafayette.edu>
2625 2002-01-26 00:41  mrjoltcola
2627         * MANIFEST: Oopsy.
2629 2002-01-26 00:37  mrjoltcola
2631         * docs/ParrotFAQ.htm: Parrot FAQ : Created and maintained by Adam
2632         Turoff
2634 2002-01-25 01:31  grunblatt
2636         * jit/alpha/core.jit: There is no neg or fneg.
2638 2002-01-25 01:27  grunblatt
2640         * core.ops, Parrot/Jit/alphaGeneric.pm, Parrot/Jit/i386Generic.pm,
2641         lib/Parrot/Jit/alphaGeneric.pm, lib/Parrot/Jit/i386Generic.pm,
2642         jit/alpha/core.jit, jit/i386/core.jit, t/op/integer.t,
2643         t/op/number.t: Added Parrot_neg.  Erase t.s
2645 2002-01-24 23:26  dan
2647         * interpreter.c: Best make sure unused elements are NULL
2649 2002-01-24 23:24  dan
2651         * interpreter.c: Fix stupid thinko
2653 2002-01-24 18:37  doughera
2655         * Makefile.in: Add a few missing dollar signs in the lifetest
2656         section so that ${exe} and the like get properly interpolated.
2658 2002-01-24 18:15  mrjoltcola
2660         * docs/: .cvsignore, Makefile.in, parrot.pod: Fix pod generation
2661         for io.ops file. Add reference to it in parrot.pod.  Courtesy of
2662         Simon Glover <scog@roe.ac.uk>
2664 2002-01-24 06:43  mrjoltcola
2666         * io/io_stdio.c: Oops.
2668 2002-01-24 06:34  mrjoltcola
2670         * include/parrot/io.h, io/TODO, io/io.c, io/io_stdio.c: Did a bit
2671         of work on the buffering layer.  Decided to use shared read/write
2672         buffer (as do most implementations) for now since its the simplest
2673         way to keep everything synced, (flush on seeks, flush read on
2674         writes, etc.)
2676 2002-01-24 03:38  mrjoltcola
2678         * test_main.c: Cleaned up option handling code a bit for main().
2680 2002-01-23 23:22  dan
2682         * interpreter.c, include/parrot/interpreter.h,
2683         include/parrot/resources.h: Now each interpreter gets its own hash
2684         for globals.
2686 2002-01-23 20:45  dan
2688         * Configure.pl: Fix a warning when there's no - in an architecture
2690 2002-01-22 23:57  grunblatt
2692         * docs/running.pod: [no log message]
2694 2002-01-22 20:29  doughera
2696         * KNOWN_ISSUES: long doubles don't work on SPARC either.  It
2697         appears to be a generic problem (if sizeof(long double) >
2698         sizeof(double)), not an x86-specific one.
2700 2002-01-22 16:57  doughera
2702         * runops_cores.c: Change variable name from time to starttime to
2703         avoid gcc warning about variable name shadowing.
2705 2002-01-22 16:55  doughera
2707         * classes/pmc2c.pl: Include class_init prototype too.
2709 2002-01-22 16:01  doughera
2711         * MANIFEST: [no log message]
2713 2002-01-22 01:04  ajgough
2715         * global_setup.c, classes/default.pmc, classes/intqueue.pmc,
2716         classes/parrotpointer.pmc, classes/perlarray.pmc,
2717         classes/perlhash.pmc, classes/perlint.pmc, classes/perlnum.pmc,
2718         classes/perlstring.pmc, classes/perlundef.pmc, classes/pmc2c.pl,
2719         include/parrot/global_setup.h: Patch from Nick Clark to quieten
2720         warnings from pmc files.  Message-ID:
2721         <20020121224719.GE1726@Bagpuss.unfortu.net>
2723 2002-01-22 00:53  ajgough
2725         * test_main.c: Clears up a couple of warnings in test_main.c.
2726         Thanks to Nick Clark.  Message-ID:
2727         <20020121190457.GB1726@Bagpuss.unfortu.net>
2729 2002-01-22 00:47  ajgough
2731         * string.c, chartypes/unicode.c, chartypes/usascii.c,
2732         include/parrot/chartype.h: Cause all codepoints to be treated as
2733         UNITVALS, and get_digit to return INTVAL, just in case. (Thanks to
2734         Nick Clark, see also: Message-ID:
2735         <20020121214137.GC2371@Bagpuss.unfortu.net> )
2737 2002-01-22 00:24  dan
2739         * key.c: We do mandate an ANSI conformant C compiler, don't we?
2741         Appended patch cures these warnings:
2743         key.c: In function `debug_key': key.c:29: warning: int format,
2744         INTVAL arg (arg 3) key.c:33: warning: int format, INTVAL arg (arg
2745         3) key.c:33: warning: int format, INTVAL arg (arg 4) key.c:36:
2746         warning: int format, INTVAL arg (arg 3) key.c:36: warning: int
2747         format, INTVAL arg (arg 4)
2749         Courtesy of Nicholas Clark <nick@unfortu.net>
2751 2002-01-21 12:41  mrjoltcola
2753         * MANIFEST, io.ops: For some reason cvs commit didn't get this, may
2754         be clock skew.
2756 2002-01-21 06:37  mrjoltcola
2758         * io/io.c: Cleanup a warning
2760 2002-01-21 06:28  mrjoltcola
2762         * examples/assembly/io1.pasm, include/parrot/io.h, io/io.c,
2763         io/io_stdio.c, io/io_unix.c, io/io_win32.c: Added 32/64 bit seek
2764         ops. Various other IO twiddlings.
2766 2002-01-21 03:25  grunblatt
2768         * Makefile.in: Use $jitcpuarch instead of $cpuarch.  Thanks to
2769         Melvin Smith for the catch up.
2771 2002-01-20 23:13  sfink
2773         * stacks.c: Fixed logic errors, need tests
2775 2002-01-20 22:17  brentdax
2777         * rx.c, rx.ops, include/parrot/rx.h, t/op/rx.t: Make /m work and
2778         prepare for /i to work.
2780 2002-01-20 20:52  grunblatt
2782         * Configure.pl, MANIFEST, Makefile.in, interpreter.c, jit.c,
2783         jit2h.pl, Parrot/Jit/alpha-bsd.pm, Parrot/Jit/alpha-linux.pm,
2784         Parrot/Jit/alphaGeneric.pm, Parrot/Jit/i386-bsd.pm,
2785         Parrot/Jit/i386-linux.pm, lib/Parrot/Jit/alpha-bsd.pm,
2786         lib/Parrot/Jit/alpha-linux.pm, lib/Parrot/Jit/alphaGeneric.pm,
2787         lib/Parrot/Jit/i386-bsd.pm, lib/Parrot/Jit/i386-linux.pm,
2788         Parrot/Jit/i386Generic.pm, lib/Parrot/Jit/i386Generic.pm,
2789         include/parrot/jit.h, jit/alpha/core.jit, jit/alpha/lib.jit,
2790         jit/alpha/string.jit:
2791         - Added support for ALPHA, by now linux and bsd.
2793         - Reduced jit2h.pl execution time by precompiling the call to the
2794         unimplemented op.
2796         - Reduced the duplicated code in Parrot/Jit/*.pm by adding
2797         Parrot/Jit/${cpuarch}Generic.pm
2799         - Changed the way to detect quads to what is written in "man
2800         perlfunc".
2802 2002-01-20 17:23  brentdax
2804         * rx.ops: There's no such thing as rx_allocateinfo.
2806 2002-01-19 08:26  brentdax
2808         * pbc2c.pl: Stop this stupid "hard-code the new oplib" stuff.
2810 2002-01-19 07:12  mrjoltcola
2812         * MANIFEST, core.ops, io.ops, pbc2c.pl: Separate pure ParrotIO ops
2813         into io.ops, leave the STDIO wrappers        in core.ops until they
2814         disappear.  Added debug op for switching on VM debug flag
2816 2002-01-19 01:55  mrjoltcola
2818         * include/parrot/io.h, io/TODO, io/io.c, io/io_stdio.c,
2819         io/io_unix.c, io/io_win32.c: Added a few more Win32 layer calls
2821 2002-01-19 00:55  brentdax
2823         * Makefile.in, rx.c, rx.ops, rxstacks.c, include/parrot/rx.h,
2824         include/parrot/rxstacks.h: Add regex-specific stacks for
2825         efficiency.
2827 2002-01-18 23:58  dan
2829         * Configure.pl: I think the optimal fix here is simply to remove
2830         -ansi -pedantic.  -ansi may well have some uses, but even the gcc
2831         man pages say "There is no reason to use this option [-pedantic];
2832         it exists only to satisfy pedants."
2834         Courtesy of Andy Dougherty <doughera@lafayette.edu>
2836 2002-01-18 23:23  dan
2838         * MANIFEST, docs/parrot.pod, docs/running.pod: This patch add
2839         docs/running.pod, which lists the various executables Parrot
2840         currently includes, examples of running them, and mentions of where
2841         they fail to work. It's more of a cry for help than a useful
2842         reference. :-) I've been having trouble recently when making
2843         changes in figuring out whether I broke anything, because any
2844         non-default way of running the system seems to be already broken. I
2845         can't tell what brokenness is expected and what isn't.
2847         Courtesy of  Steve Fink <steve@fink.com>
2849 2002-01-15 22:13  brentdax
2851         * include/parrot/rx.h, rx.c, rx.ops: Remove the last vestiges of
2852         substring use and enhance performance.
2854 2002-01-15 21:03  ajgough
2856         * string.c: Fix problem with string_transcode, &dest not being
2857         updated if src was already in desired encoding.
2859 2002-01-15 16:54  brentdax
2861         * rx.c, rx.ops, include/parrot/rx.h: Hunt down and destroy
2862         warnings.  Leaves only one warning, at rx.ops line 409, that I
2863         can't manage to get rid of.
2865 2002-01-15 16:50  dan
2867         * pbc2c.pl: Pointer arithmetic not quite right in the generated
2868         code.  Also patches pbc2c.pl to work with rx.ops.
2870         Courtesy of Jason Gloudon <perl@gloudon.com>
2872 2002-01-15 16:15  dan
2874         * classes/Makefile.in: All the C files in classes/ weren't being
2875         compiled with an of the gcc warnings flags. With this patch they
2876         are, and there are an awful lot of warnings, more than I could hope
2877         to understand and clear up (within any sensible time period before
2878         submitting a rash of patches, by which time everyone else would
2879         have moved the code on)
2881         Courtesy of Nicholas Clark <nick@unfortu.net>
2883 2002-01-15 16:10  dan
2885         * core.ops, ops2c.pl, Parrot/Op.pm, Parrot/OpTrans.pm,
2886         Parrot/OpsFile.pm, lib/Parrot/Op.pm, lib/Parrot/OpTrans.pm,
2887         lib/Parrot/OpsFile.pm, Parrot/OpTrans/C.pm,
2888         Parrot/OpTrans/CGoto.pm, Parrot/OpTrans/CPrederef.pm,
2889         lib/Parrot/OpTrans/C.pm, lib/Parrot/OpTrans/CGoto.pm,
2890         lib/Parrot/OpTrans/CPrederef.pm, chartypes/unicode.c,
2891         chartypes/usascii.c: This patch adds a few more macros for .ops
2892         files to use. In addition to the existing
2894          goto OFFSET(...)
2895          goto ADDRESS(...)
2896          goto POP()
2897          goto NEXT()
2899         it adds
2901          expr OFFSET(...)
2902          expr ADDRESS(...)
2903          expr POP()
2904          expr NEXT()
2906         This is intended mainly for use in helper functions in .ops files,
2907         but also for ops that need to eg push the address of the next
2908         opcode onto a stack. The only place this currently happens (outside
2909         of my private code) is in the bsr opcode, which previously
2910         hardcoded the computation.
2912         This patch also makes ops2c.pl move the CUR_OPCODE #define a bit
2913         higher in the generated file so that it can be used by static
2914         functions in the preamble.
2916         Finally, I ran into a parentheses matching problem -- should goto
2917         OFFSET(...) rewrite    \bgoto\s+OFFSET\((.*)\) or
2918         \bgoto\s+OFFSET\((.*?)\)
2920         It was done inconsistently for the different calculations, and of
2921         course neither are correct because you really want matching
2922         parentheses. But that seems like too much bother. (Currently,
2923         there's only one place that uses anything other than $n in the
2924         parentheses, and that's the enternative() op.) So I made them all
2925         .*? but emulated recent POD by also allowing (( ... )) (that's two
2926         parenthesis with a space padding the body.)
2928         The generated core_ops.c and core_ops_prederef.c files after this
2929         patch are identical except for the CUR_OPCODE and REL_PC macros
2930         getting moved a little higher, and the bsr in the regular path (not
2931         prederef) uses 'CUR_OPCODE' instead of the hardcoded 'cur_opcode'.
2933         In summary, this is a big wad of meaningless changes for the
2934         current code. But it will make adding some opcodes easier in the
2935         future, and cleans up a small nit in the current bsr.
2937         Courtesy of Steve Fink <steve@fink.com>
2939 2002-01-15 08:48  brentdax
2941         * include/parrot/rx.h: Bitmaps can now include chars >255 (well,
2942         sort of).
2944 2002-01-15 08:45  brentdax
2946         * rx.c, rx.ops: Bitmaps can now include chars >255 (well, sort of).
2948 2002-01-15 05:00  brentdax
2950         * rx.ops: Speed up rx_literal--roughly doubles benchmark
2951         performance.
2953 2002-01-14 20:18  dan
2955         * vtable.tbl, vtable_h.pl: Clean up a zillion warnings
2957         Courtesy of Nicholas Clark <nick@unfortu.net>
2959 2002-01-14 20:03  dan
2961         * Configure.pl, MANIFEST, Makefile.in, core.ops, exceptions.c,
2962         global_setup.c, interpreter.c, key.c, ops2c.pl, register.c,
2963         runops_cores.c, rx.ops, stacks.c, string.c, test_main.c, trace.c,
2964         chartypes/unicode.c, chartypes/usascii.c, classes/default.pmc,
2965         classes/parrotpointer.pmc, classes/perlarray.pmc,
2966         classes/perlhash.pmc, classes/perlint.pmc, classes/perlnum.pmc,
2967         classes/perlstring.pmc, classes/perlundef.pmc,
2968         encodings/singlebyte.c, encodings/utf16.c, encodings/utf32.c,
2969         encodings/utf8.c, include/parrot/exceptions.h, include/parrot/io.h,
2970         include/parrot/parrot.h, include/parrot/rx.h, io/io_stdio.c,
2971         io/io_win32.c, platforms/win32.c, platforms/win32.h, t/op/pmc.t,
2972         t/op/pmc_perlhash.t, t/op/rx.t, t/pmc/perlhash.t, t/pmc/pmc.t: This
2973         patch cleans up most of the MSVC-warnings when using warning level
2974         4 (the highest, one above the default level 3). It turns off two
2975         level-4 warnings for 'unreferenced formal parameter' and 'named
2976         type definition in parentheses', the latter of which was turning up
2977         warnings in MS VC headers.  Level 4 warnings also helped me find a
2978         couple of other lurking bugs in the parrot code.
2980         Replaces the various fprintf/exit combos with calls to
2981         internal_exception, which uses var_args to emulate printf. Various
2982         exception types were added as well. These are probably temporary
2983         until a real exception system arrives.
2985         Fixed some places in the IO code where wrong functions were being
2986         called, or put into the vtable.
2988         Courtesy of "Michel Lambert" <mlambert@legendent.com>
2990 2002-01-14 19:00  dan
2992         * MANIFEST: D'oh! Forgot a file.
2994         Courtesy of Andy Dougherty <doughera@lafayette.edu>
2996 2002-01-14 18:44  brentdax
2998         * rx.c, rx.ops, include/parrot/rx.h: Use bitmaps where it makes
2999         sense (and a few other enhancements to regexes).
3001 2002-01-14 07:07  brentdax
3003         * interpreter.c, runops_cores.c, test_main.c,
3004         include/parrot/interpreter.h: Make profiling a little more useful.
3006 2002-01-13 19:44  dan
3008         * Configure.pl: Turn off unsed things warnings for now
3010 2002-01-13 19:39  dan
3012         * key.c, classes/perlarray.pmc: key.c:   intialize KEY.keys
3014         classes/perlarray.c:  * get_string: is casting
3015         SELF->cache.struct_val to a STRING*,    while all other methods are
3016         using it as a KEY*; don't know    what a perlarray stringifies to,
3017         so replacing with NULL  * get_bool: the default behaviour does not
3018         look right to me
3020         Courtesy of "Mattia Barbon" <mbarbon@dsi.unive.it>
3022 2002-01-13 19:37  dan
3024         * Makefile.in, classes/Makefile.in: Makefile.in:   (Re)add ld_debug
3025         flags to LDFLAGS, so that Configure.pl --debugging   works with
3026         MSVC
3028         classes/Makefile.in   make easier to add pmb2c.pl flags to all
3029         pmc2c calls
3031         Courtesy of "Mattia Barbon" <mbarbon@dsi.unive.it>
3033 2002-01-13 19:36  dan
3035         * io/io_win32.c:   according to my MSVC docs, you should use
3036         _tcslen only after
3037           #including tchar.h
3039         Courtesy of  "Mattia Barbon" <mbarbon@dsi.unive.it>
3041 2002-01-13 19:35  dan
3043         * docs/intro.pod: Doc tweak.
3045         Courtesy of Simon Glover <scog@roe.ac.uk>
3047 2002-01-13 19:34  dan
3049         * t/: op/pmc_perlstring.t, pmc/perlstring.t:  Enclosed test checks
3050         that
3052           if Px, ...
3054          works with PerlString PMCs; these should be false if they are "",
3055         0, or
3056          are undefined, and true in every other case.
3058         Courtesy of Simon Glover <scog@roe.ac.uk>
3060 2002-01-13 19:23  dan
3062         * Configure.pl, config_h.in, core.ops, classes/perlnum.pmc: Change
3063         NUMVAL_FMT to FLOATVAL_FMT.
3065         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3067 2002-01-13 17:45  jgoff
3069         * Makefile.in, global_setup.c, classes/Makefile.in,
3070         classes/intqueue.pmc, include/parrot/pmc.h, t/op/pmc.t,
3071         t/pmc/pmc.t: IntQueue is for an upcoming article on perl.com on
3072         designing your own classes.
3074 2002-01-13 08:47  simon
3076         * interpreter.c, Parrot/OpTrans/CPrederef.pm,
3077         lib/Parrot/OpTrans/CPrederef.pm:
3078         Fix bsr in prederef mode.
3080         Courtesy of: Jason Gloudon <perl@gloudon.com>
3082 2002-01-12 15:33  dan
3084         * interpreter.c, key.c, packfile.c, register.c, resources.c,
3085         string.c, encodings/singlebyte.c, encodings/utf32.c,
3086         include/parrot/parrot.h, io/io.c, io/io_stdio.c, io/io_unix.c:
3087         Silence most of the unused variable warnings.
3089         Courtesy of Nicholas Clark <nick@unfortu.net>
3091 2002-01-12 15:18  dan
3093         * rx.ops: This patch fixes a warning and also changes an 'int' to
3094         an 'INTVAL'.  All tests should pass on Solaris.
3096         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3098 2002-01-12 15:13  dan
3100         * interpreter.c, string.c, test_main.c, classes/parrotpointer.pmc,
3101         examples/assembly/life.pasm, include/parrot/interpreter.h,
3102         include/parrot/io.h, io/io.c, io/io_stdio.c, io/io_unix.c,
3103         io/io_win32.c: More IO work. (Plus some misc twiddles)
3105         Courtesy of Melvin Smith <mrjoltcola@mindspring.com>
3107 2002-01-12 01:14  dan
3109         * include/parrot/string.h: fix a missing name
3111 2002-01-12 00:39  grunblatt
3113         * include/parrot/string.h: Few typos.
3115 2002-01-12 00:16  grunblatt
3117         * jit.c, jit2h.pl, jit/i386/core.jit: Added support for opcodes
3118         that change the program control flow.
3120 2002-01-11 23:53  brentdax
3122         * classes/parrotpointer.pmc: Tell the GC to keep its hands out of a
3123         ParrotPointer's guts.
3125 2002-01-11 23:03  dan
3127         * include/parrot/string.h: flags for the buffers, for GC
3129 2002-01-11 22:31  dan
3131         * include/parrot/pmc.h: PMC flag docs. Those'd be good...
3133 2002-01-11 22:21  dan
3135         * include/parrot/pmc.h: Started with PMC flags
3137 2002-01-11 19:33  dan
3139         * config_h.in, memory.c, resources.c, string.c,
3140         include/parrot/resources.h: Beginnings of a memory allocation/gc
3141         system. Without the GC part.
3143 2002-01-11 18:05  dan
3145         * core.ops: Make sure constant pushes are right on mixed 32/64 bit
3146         systems
3148         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3150 2002-01-11 17:50  dan
3152         * core.ops, pbc2c.pl, Parrot/OpTrans/CGoto.pm,
3153         lib/Parrot/OpTrans/CGoto.pm, include/parrot/interpreter.h: Here is
3154         a patch that makes pbc2c generated code work with the bsr opcode.
3155         It creates a new opcode 'enternative', and uses this to support a
3156         mixed model of interpretation and execution of compiled C code.
3158         Courtesy of Jason Gloudon <perl@gloudon.com>
3160 2002-01-11 17:48  dan
3162         * Makefile.in: Add life as a potential .exe target
3164 2002-01-11 17:30  dan
3166         * include/parrot/resources.h: Start of arena stuff for GC
3168 2002-01-11 05:34  brentdax
3170         * rx.ops: Docs modifications.
3172 2002-01-11 04:19  brentdax
3174         * rx.ops, include/parrot/rx.h: Remove unnecessary evilness from
3175         regular expressions.
3177 2002-01-11 03:44  grunblatt
3179         * jit/i386/core.jit: off by one.
3181 2002-01-11 02:25  dan
3183         * Makefile.in, examples/assembly/life.pasm: Tweak to life benchmark
3185         Courtesy of Steve Fink <steve@fink.com>
3187 2002-01-11 00:32  brentdax
3189         * MANIFEST: Forgot to put parrotpointer.pmc in the MANIFEST.
3191 2002-01-10 23:22  ajgough
3193         * string.c, docs/strings.pod: Removed all the nul termination code,
3194         as this is in general a bad idea.  Note added to docs/strings.pod
3195         to warn people away from assuming termination.
3197 2002-01-10 23:14  dan
3199         * core.ops, interpreter.c, jit.c, rx.c, rx.ops, stacks.c,
3200         testparrotsizes_c.in, include/parrot/interpreter.h,
3201         include/parrot/rx.h, include/parrot/stacks.h: Much nicer stack
3202         implementation
3204         Courtesy of Steve Fink <steve@fink.com>
3206 2002-01-10 22:48  dan
3208         * core.ops: Fix 'basic' test 1 for sizeof(opcode_t) !=
3209         sizeof(INTVAL)
3211         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3213 2002-01-10 22:46  dan
3215         * key.c, classes/perlhash.pmc, t/op/pmc_perlhash.t,
3216         t/pmc/perlhash.t:  Well, actually two bugs.
3218          The first is an off-by-one error in key.c than can cause parrot
3219          to segfault if hash % NUM_BUCKETS happens to be zero.
3221          The other is a bug in the PerlHash init() code that causes new
3222         PerlHash
3223          PMCs to start with the wrong size.
3225          Both fixed below; also tests to prevent them recurring.
3227         Courtesy of Simon Glover <scog@roe.ac.uk>
3229 2002-01-10 22:30  dan
3231         * classes/default.pmc, classes/perlarray.pmc, t/op/pmc_perlarray.t,
3232         t/pmc/perlarray.t:  The enclosed patch allows one to use the if op
3233         with a PerlArray,
3235         Courtesy of Simon Glover <scog@roe.ac.uk>
3237 2002-01-10 21:31  dan
3239         * examples/assembly/life.pasm: Tweaked to be a benchmarkable thing
3241 2002-01-10 20:30  grunblatt
3243         * jit.c, jit2h.pl, Parrot/Jit/i386-bsd.pm,
3244         Parrot/Jit/i386-linux.pm, lib/Parrot/Jit/i386-bsd.pm,
3245         lib/Parrot/Jit/i386-linux.pm, jit/i386/core.jit, jit/i386/lib.jit:
3246         All the op codes that doesn't change the program control flow now
3247         work in the JIT by calling the code generated by the compiler when
3248         the op is not in core.jit TODO:     * Make all the ops that change
3249         the program control flow (and are not on core.jit) work.      *
3250         Remove the dispatch payload.
3252 2002-01-10 17:13  dan
3254         * classes/parrotpointer.pmc: This patch fixes parrotpointer.pmc,
3255         which tries to return 0 from a void function.
3257         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3259 2002-01-10 17:12  dan
3261         * t/op/macro.t: Skip tests, don't comment them out.
3263         Courtesy of Simon Glover <scog@roe.ac.uk>
3265 2002-01-10 17:10  dan
3267         * rx.c: This fixes a couple of nits in rx.c:
3269            1. There's no newline at the end, which makes gcc unhappy.
3270            2. We should use NULL, not 0 or "", for creating null pointers.
3272         Courtesy of Simon Glover <scog@roe.ac.uk>
3274 2002-01-10 17:09  dan
3276         * MANIFEST:  Adds rx.t, removes duplicated rx.c and puts everything
3277         back in
3278          alphabetical order.
3280         Courtesy of Simon Glover <scog@roe.ac.uk>
3282 2002-01-10 16:54  ajgough
3284         * resources.c: Made free_string check that there was a string to
3285         free.  In reponse to a bug spotted by Joshua Nye.
3287 2002-01-09 22:44  dan
3289         * global_setup.c: Forgot the setup
3291 2002-01-09 22:35  dan
3293         * rx.ops: Forgot this one
3295 2002-01-09 22:35  dan
3297         * MANIFEST, Makefile.in, rx.c, string.c, include/parrot/pmc.h,
3298         include/parrot/rx.h, t/op/rx.t: Preliminary regex implementation.
3299         Tests don't work, though.
3301         Courtesy of "Brent Dax" <brentdax@cpan.org>
3303 2002-01-09 21:48  dan
3305         * t/: op/pmc_perlarray.t, pmc/perlarray.t: Whoops, forgot that
3307 2002-01-09 21:22  dan
3309         * classes/Makefile.in, classes/parrotpointer.pmc, Makefile.in:
3310         Generic pointer holder class
3312         Courtesy of "Brent Dax" <brentdax@cpan.org>
3314 2002-01-09 21:19  dan
3316         * MANIFEST, classes/perlarray.pmc, t/op/pmc.t, t/pmc/pmc.t: Array
3317         patches.
3319 2002-01-09 19:54  dan
3321         * io/io_unix.c: Whoops. Forgot one
3323 2002-01-09 19:43  dan
3325         * key.c, classes/perlhash.pmc, t/op/pmc_perlhash.t,
3326         t/pmc/perlhash.t: Fix hash crash bugs
3328         Courtesy of Simon Glover <scog@roe.ac.uk>
3330 2002-01-09 19:13  dan
3332         * memory.c: Signedness whoops.
3334         Courtesy of Simon Glover <scog@roe.ac.uk>
3336 2002-01-09 18:23  dan
3338         * MANIFEST, Makefile.in, include/parrot/io.h, io/io.c, io/io_os.c,
3339         io/io_stdio.c, io/io_win32.c: Changes:
3341         -Minor layer cleanups -Win32 layer added (mostly stubs for now) but
3342         will be using the   Win32 API and company rather than the unix-ish
3343         fake ones.  -stdin/stdout/stderr Win32 specific code added. Rather
3344         than use   0,1,2, Microsoft says use GetStdHandle(), etc. so that
3345         stuff is   there. Soon we should be able to start using these
3346         rather than   fprintf(stderr, ...) and remove stdio linkage.
3348         Courtesy of <mrjoltcola@mindspring.com>
3350 2002-01-09 17:26  dan
3352         * test_main.c: Fixes bad code gen on x86.
3354         Courtesy of Josh Wilmes <josh@hitchhiker.org>
3356 2002-01-09 17:24  dan
3358         * Configure.pl, config_h.in, core.ops, key.c, classes/perlint.pmc,
3359         classes/perlnum.pmc: This patch adds macros to the config.h file
3360         for INTVAL and NUMVAL printf formats.
3362         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3364 2002-01-08 22:55  ajgough
3366         * docs/vtables.pod: Clarify what get_string should do.
3368 2002-01-08 20:05  dan
3370         * key.c: Keep comments in sync.
3372         Courtesy of Simon Glover <scog@roe.ac.uk>
3374 2002-01-08 19:50  dan
3376         * memory.c, include/parrot/memory.h: Need a realloc
3378 2002-01-08 17:24  gregor
3380         * .cvsignore, Configure.pl, Makefile.in:
3381         Added 'reconfig' make target and corresponding --reconfig option to
3382         Configure.pl, so its very easy to re-run Configure.pl with the last
3383         (command-line) options you passed it.
3385 2002-01-08 16:33  dan
3387         * core.ops, make_vtable_ops.pl, Parrot/OpsFile.pm,
3388         lib/Parrot/OpsFile.pm: Add in, out, and inout parameters to teh ops
3389         in core.ops. Potential help for optimizers and JITters.
3391         Courtesy of gregor@linux1.kennedytech.com
3393 2002-01-08 16:32  dan
3395         * key.c: Grab key length from the right spot
3397         Courtesy of "Peter Gibbs" <peter@emkel.co.za>
3399 2002-01-08 13:27  ajgough
3401         * test_main.c: Fix slight thinko in realloc usage for reading from
3402         stdin.
3404 2002-01-08 11:34  ajgough
3406         * test_main.c: Allow test_parrot to read bytecode stream from
3407         stdin, adds -f command line option, with "-f -" doing the stdin
3408         stuff.
3410 2002-01-08 06:34  jgoff
3412         * key.c, include/parrot/key.h: key.c - Added simple implementation
3413         of buckets.  include/parrot/key.h - Added enum_key_bucket type
3415 2002-01-08 03:21  jgoff
3417         * include/parrot/key.h: Added an undef type to the key structure,
3418         so we can delete keys without confusion.
3420 2002-01-07 22:09  dan
3422         * key.c, packfile.c, string.c, include/parrot/key.h,
3423         include/parrot/packfile.h, include/parrot/string.h: Fix whines
3424         about index being redefined
3426         Courtesy of Nick Clark
3428 2002-01-07 21:15  dan
3430         * ops2pm.pl: Don't allow the same ops lib to be included twice.
3432         Courtesy of Steve Fink <steve@fink.com>
3434 2002-01-07 20:48  dan
3436         * Parrot/Test.pm, lib/Parrot/Test.pm: Report useful info for test
3437         failures
3439         Courtesy of "Brent Dax" <brentdax@cpan.org>
3441 2002-01-07 20:43  dan
3443         * docs/intro.pod: Missing a comma
3445         Courtesy of "coral" <coral@eekeek.org>
3447 2002-01-07 20:41  dan
3449         * global_setup.c: Quiet a warning
3451         Courtesy of Simon Glover <scog@roe.ac.uk>
3453 2002-01-07 18:58  gregor
3455         * t/op/.cvsignore:
3456         Ignore intermediate test files.
3458 2002-01-07 17:01  gregor
3460         * ops2c.pl:
3461         Print a warning if an .ops file is mentioned more than once on the
3462         command line.
3464 2002-01-07 16:12  ajgough
3466         * t/: op/pmc_perlhash.t, pmc/perlhash.t: A couple more hash tests,
3467         these shouldn't fail.
3469 2002-01-07 15:15  simon
3471         * t/: op/pmc_perlhash.t, pmc/perlhash.t:
3472         Stop segfaults.
3474 2002-01-07 15:11  simon
3476         * key.c:
3477         Fix zero-termination bug in hash function.
3479 2002-01-07 13:37  ajgough
3481         * MANIFEST, t/op/pmc_perlhash.t, t/pmc/perlhash.t: Added
3482         pmc_perlhash.t, one test currently fails, one passes, yin-yang fun.
3484 2002-01-07 11:53  brentdax
3486         * Configure.pl: Fixes the + thing in prompts, plus adds a synonym
3487         (:add{foo}) and a new deleting thing (:rem{foo})
3489 2002-01-07 11:43  simon
3491         * Configure.pl:
3492         Gobble the + before concatenating.
3494 2002-01-07 03:53  dan
3496         * Makefile.in: Dependency fix for new ops setup.
3498 2002-01-07 03:33  jgoff
3500         * classes/perlarray.pmc: Add negative indices, and fix a small
3501         allocation problem.
3503 2002-01-06 23:54  ajgough
3505         * hints/os2.pl: Makes the hints file take account of ldflags and
3506         ccflags being split.  This hints file is still very specific to
3507         builds with gnu tools, but a proper solution can wait.   Thanks to
3508         Nick Burch.
3510 2002-01-06 22:12  dan
3512         * Makefile.in, ops2c.pl, Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm:
3513             -changes Parrot::OpLib::core's dependencies to reflect the new
3514         selectable ops files    -allows some of the special forms of 'goto'
3515         inside the PREAMBLE of an opcode file
3517         Courtesy of "Brent Dax" <brentdax@cpan.org>
3519 2002-01-06 19:59  simon
3521         * Makefile.in:
3522         *cough*
3524 2002-01-06 18:19  dan
3526         * classes/perlhash.pmc: Fix some type issues.
3528         Courtesy of Josh Wilmes <josh@hitchhiker.org>
3530 2002-01-06 18:03  dan
3532         * Configure.pl, Makefile.in: It adds a prompt to Configure asking
3533         for a list of opcode files to use.  The default is everything
3534         available except for obscure.ops.
3536         In addition, it makes it so that if your answer to a question
3537         starts with '+', it will concatenate it to the default.  For
3538         example:
3540         What C compiler do you want to use? [cl] +HAHAHA!!!
3542         will result in $PConfig{cc} eq "cl HAHAHA!!!".  While that example
3543         is not terribly useful, it is quite useful with things like
3544         command-line flags and the like.
3546         Finally, it contains a couple tweaks so that my syntax-highlighting
3547         editor recognizes some heredocs correctly.  :^)
3549         Courtesy of "Brent Dax" <brentdax@cpan.org>
3551 2002-01-06 17:59  dan
3553         * KNOWN_ISSUES, MANIFEST, README: Doc Patches
3555         Courtesy of "Bryan C. Warnock" <bwarnock@raba.com>
3557 2002-01-06 17:58  dan
3559         * MANIFEST:  We're missing a couple of files from the MANIFEST.
3561         Courtesy of Simon Glover <scog@roe.ac.uk>
3563 2002-01-06 17:57  dan
3565         * ops2c.pl, Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm:   1.
3566         Compiler directives, etc. in files other than core.ops will now
3567         work.   2.  Compiler warnings will now display the file and line
3568         number of the  opcode file.
3570         Courtesy of "Brent Dax" <brentdax@cpan.org>
3572 2002-01-06 17:52  dan
3574         * languages/jako/jakoc: Fix breakage caused by iton/ntoi going away
3576         Courtesy of Simon Glover <scog@roe.ac.uk>
3578 2002-01-06 17:36  dan
3580         * docs/intro.pod: Lots of updates
3582         Courtesy of Simon Glover <scog@roe.ac.uk>
3584 2002-01-06 02:34  gregor
3586         * interpreter.c:
3587         Add some internal documentation on the theory of operation of the
3588         prederef code.
3590 2002-01-06 02:17  gregor
3592         * interpreter.c:
3593         Removed unnecessary include.
3595 2002-01-05 12:37  simon
3597         * classes/.cvsignore:
3598         Ignore generated .h files.
3600         Courtesy of: Josh Wilmes <josh@hitchhiker.org>
3602 2002-01-05 12:37  simon
3604         * Configure.pl:
3605         Make lcc happier by adding a dummy structure.
3607         Courtesy of: Josh Wilmes <josh@hitchhiker.org>
3609 2002-01-05 12:35  simon
3611         * global_setup.c, classes/perlundef.pmc, t/op/pmc.t, t/pmc/pmc.t:
3612         Make perlundef work. (And coincidentally stop segfaults in the
3613         tests :)
3615         Courtesy of: Jason Gloudon <perl@gloudon.com>
3617 2002-01-05 04:59  dan
3619         * t/: op/pmc.t, pmc/pmc.t: Undef tests added.
3621 2002-01-05 04:55  jgoff
3623         * classes/perlhash.pmc: Added perlhash class definition
3625 2002-01-05 04:48  dan
3627         * core.ops: Fix on 64 bit platforms with 32-bit opcode_t
3629         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3631 2002-01-05 03:57  jgoff
3633         * MANIFEST, Makefile.in, core.ops, global_setup.c, key.c,
3634         vtable.tbl, classes/Makefile.in, classes/default.pmc,
3635         include/parrot/key.h, include/parrot/pmc.h, t/op/pmc.t,
3636         t/pmc/pmc.t: Initial hash commit.
3638         core.ops - Adding set({i,n,s},p,s) and set(p,{i,n,s},s) operations.
3639          key.h  - Adding NUM_BUCKETS classes/default.pmc - Adding
3640         set_{integer,number,string}_index_s
3642         This does not yet do collision resolution, but will soon.
3644 2002-01-05 02:54  dan
3646         * interpreter.c: More unsigned fixes
3648         Courtesy of "Bryan C. Warnock" <bwarnock@raba.com>
3650 2002-01-04 22:13  dan
3652         * Configure.pl, hints/mswin32.pl: Makes config's building of the
3653         test programs happier.
3655         Courtesy of "Jason Diamond" <jason@injektilo.org>
3657 2002-01-04 19:00  dan
3659         * Configure.pl, Makefile.in, hints/darwin.pl: Add link flags as
3660         separate things
3662 2002-01-04 18:27  dan
3664         * Configure.pl, Makefile.in, classes/Makefile.in, hints/mswin32.pl:
3665         Fixes to get things configuring and building on Win32 Native.
3667         Courtesy of "Jason Diamond" <jason@injektilo.org>
3669 2002-01-04 17:39  dan
3671         * hints/vms.pl: debug cleanup
3673 2002-01-04 16:53  dan
3675         * docs/parrot.pod:  The enclosed patch brings the list of
3676         documentation in parrot.pod
3677          up to date.
3679         Courtesy of Simon Glover <scog@roe.ac.uk>
3681 2002-01-04 16:47  dan
3683         * test_main.c, Parrot/Jit/i386-linux.pm,
3684         lib/Parrot/Jit/i386-linux.pm: In an attempt to just keep knocking
3685         off warnings..
3687         Courtesy of Kevin Falcone <kevin@jibsheet.com>
3689 2002-01-04 16:44  dan
3691         * Configure.pl, Makefile.in: Fixed linking to use linker.
3693         Courtesy of Josh Wilmes <josh@hitchhiker.org>
3695 2002-01-04 16:39  dan
3697         * io/io_stdio.c: Added CVS tag info
3699 2002-01-04 16:35  dan
3701         * hints/cygwin.pl: Time for this. We need a sane linker, and ld2
3702         isn't it
3704 2002-01-04 16:26  dan
3706         * languages/miniperl/Miniperl/Tokenizer.pm: Quiet a warning in the
3707         Tokenizer test
3709         Courtesy of Jonathan Stowe <gellyfish@gellyfish.com>
3711 2002-01-04 16:17  dan
3713         * chartypes/unicode.c: Silence some warnings.
3715         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3717 2002-01-04 16:09  dan
3719         * classes/: genclass.pl, perlarray.pmc, perlint.pmc, perlnum.pmc,
3720         perlstring.pmc, perlundef.pmc:  - genclass.pl attempts to put $Id$
3721         into generated files
3722            but the $Id$ string gets mangled when it's committed.
3723            This patch fixes the existing .pmc files and fixes genclass.pl.
3725          - Makes capitalization in .pmc header match actual filenames
3727          - The command for calling genclass.pl in vtables.pod is incorrect,
3728            since it assumes you're running in classes/ but genclass.pl
3729         assumes
3730            it's being run from the main directory. I changed genclass.pl to
3731         not
3732            care.
3734         Courtesy of Steve Fink <steve@fink.com>
3736 2002-01-04 03:57  dan
3738         * MANIFEST, io/TODO, io/io_stdio.c: No wonder things worked for
3739         me--I *had* the files:wq!
3741 2002-01-04 03:40  dan
3743         * MANIFEST: Whoops--remove files not really there
3745 2002-01-04 03:37  dan
3747         * interpreter.c, stacks.c, include/parrot/stacks.h: The patch below
3748         my sig adds a new_stack() function to take care of the allocation
3749         and setup of "generic" stacks.
3751         Courtesy of "Brent Dax" <brentdax@cpan.org>
3753 2002-01-04 02:36  dan
3755         * core.ops:  The entry in core.ops for puts(s|sc) is missing a =cut
3756         and so
3757          writes a load of junk in core_ops.pod. Applied patch fixes.
3759         Courtesy of Simon Glover <scog@roe.ac.uk>
3761 2002-01-04 02:35  dan
3763         * classes/: perlint.pmc, perlnum.pmc, perlstring.pmc: The PerlInt
3764         logical-or is using get_integer instead of get_bool for logical
3765         operations. This patch corrects that.
3767         Perlnum and perlstring have working get_bool's, so the default
3768         logical_or and logical_and should be sufficient. The empty methods
3769         are pointed to the default logical_or.
3771         Courtesy of Jason Gloudon <perl@gloudon.com>
3773 2002-01-04 02:31  dan
3775         * Makefile.in: docs/Makefile should be removed by realclean, but
3776         isn't
3778         Courtesy of Kevin Falcone <kevin@jibsheet.com>
3780 2002-01-04 02:29  dan
3782         * classes/: Makefile.in, pmc2c.pl: PMC inheritance! Yay!
3784         Courtesy of Steve Fink <steve@fink.com>
3786 2002-01-04 00:51  dan
3788         * docs/vtables.pod: More docs
3790         Courtesy of Steve Fink <steve@fink.com>
3792 2002-01-04 00:47  dan
3794         * Configure.pl: Updated 64-bit patch
3796         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3798 2002-01-04 00:43  dan
3800         * Configure.pl: 64-bit Fix.
3802         Courtesy of "Bryan C. Warnock" <bwarnock@raba.com>
3804 2002-01-03 22:37  dan
3806         * MANIFEST, Makefile.in, interpreter.c, include/parrot/io.h,
3807         io/io.c, io/io_os.c: Code cleanup, started STDIO layer, started
3808         some buffering work.       Additional work on other layers.
3810         Courtesy of Melvin Smith <mrjoltcola@mindspring.com>
3812 2002-01-03 19:41  gregor
3814         * disassemble.pl, obscure.ops, packfile.c, pbc2c.pl:
3815         Updated copyright messages on top-level files.
3817 2002-01-03 04:23  robert
3819         * make.pl: Add author information.  Bonsai test.
3821 2002-01-03 04:02  dan
3823         * io/io_os.c: Twig Bonsai
3825 2002-01-03 03:45  dan
3827         * io/: io_os.c, io_os.c: Twig Bonsai
3829 2002-01-03 03:41  dan
3831         * io/io_os.c: Twig Bonsai
3833 2002-01-02 21:42  gregor
3835         * packfile.c, include/parrot/packfile.h:
3836         Get rid of warnings in packfile.[hc]
3838 2002-01-02 20:39  gregor
3840         * manicheck.pl:
3841         Bracketed translated patterns with ^ and $.
3843 2002-01-02 20:11  dan
3845         * io/io_os.c: silence a warning
3847 2002-01-02 19:52  grunblatt
3849         * jit.c, jit2h.pl, include/parrot/jit.h: Moved the definition of
3850         op_assembly to jit_struct.h, so that we get the real number of ops.
3851          Removed some warnings.
3853 2002-01-02 19:31  tom
3855         * string.c: Fix string transcoding so that it actually works.
3857         Patch from Peter Gibbs <peter@emkel.co.za>
3859 2002-01-02 19:20  gregor
3861         * manicheck.pl:
3862         A program to check the MANIFEST file, accounting for .cvsignore
3863         files.
3865 2002-01-02 19:19  dan
3867         * t/harness: twig bonsai
3869 2002-01-02 19:13  dan
3871         * t/harness: twig bonsai
3873 2002-01-02 18:54  dan
3875         * t/harness: Tweak to test Bonsai
3877 2002-01-02 16:27  dan
3879         * Configure.pl: Allow 64-bit build of parrot on systems with a
3880         mixed 32/64 bit perl
3882         Courtesy of David M. Lloyd <dmlloyd@tds.net>
3884 2002-01-02 15:33  simon
3886         * MANIFEST, docs/Makefile:
3887         Fixed up MANIFEST. (And I removed the Makefile in docs/)
3889         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
3891 2002-01-02 13:51  simon
3893         * Configure.pl:
3894         Die on broken manifest.
3896 2002-01-02 13:48  simon
3898         * jit2h.pl, examples/assembly/mops.pasm:
3899         Clear up JIT warnings.
3901         Courtesy of: Nick Clark <nick@unfortu.net>
3903 2002-01-02 04:10  dan
3905         * io/io.c, io/io_os.c, t/op/interp.t: IO stack now gets initialized
3906         only once, so new interp creation works again
3908         Courtesy of Melvin Smith <mrjoltcola@mindspring.com>
3910 2002-01-02 03:32  dan
3912         * t/op/interp.t: Stubbed the test out, since it's hanging at the
3913         moment.
3915 2002-01-02 00:55  dan
3917         * MANIFEST, Makefile.in, core.ops, include/parrot/io.h, io/io.c,
3918         io/io_os.c: Initial IO system patches
3920         Courtesy of <mrjoltcola@mindspring.com>
3922 2002-01-01 22:55  ajgough
3924         * classes/default.pmc: On second thoughts, and some prodding, the
3925         set_* methods now only set the appropriate part of the cache, and
3926         do nothing else.
3928 2002-01-01 22:29  ajgough
3930         * classes/default.pmc:  Wrote a whole host of default pmc methods.
3932          set_* create appropriate Perl* result.
3933          get_* simply grabs needed bit of cache.*_val
3935          Other methods do the rightest thing I can think of, at the moment.
3937          None yet cope with overflow, the modulus operation needs to be
3938         checked as
3939         I don't know quite which semantics we really want.
3941         Not tested yet.
3943 2002-01-01 20:23  dan
3945         * docs/Makefile, encodings/singlebyte.c, encodings/utf16.c,
3946         encodings/utf32.c, encodings/utf8.c, include/parrot/encoding.h: Got
3947         rid of unneeded tmp var and eliminated const from encode prototype
3948         since it does make changes to the string.
3950         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
3952 2002-01-01 20:11  dan
3954         * Makefile.in: Make clean now tosses pdump.o
3956         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
3958 2002-01-01 19:49  dan
3960         * pdump.c, test_main.c: Warnings cleanup
3962         Courtesy of Josh Wilmes <josh@sky.net>
3964 2002-01-01 19:45  dan
3966         * Configure.pl, Makefile.in, docs/.cvsignore, docs/Makefile.in,
3967         hints/mswin32.pl, languages/jako/Makefile.in,
3968         languages/scheme/Makefile.in: Makes cleanup better on non-Unix
3969         platforms
3971         Courtesy of "Jason Diamond" <jason@injektilo.org>
3973 2002-01-01 19:41  dan
3975         * include/parrot/register.h: Clean up some warnings
3977         Courtesy of Josh Wilmes <josh@hitchhiker.org>
3979 2002-01-01 19:10  simon
3981         * pbc2c.pl, Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm:
3982         Hack-around to enable compilation of code using vtable ops.
3984 2002-01-01 18:43  dan
3986         * encodings/: singlebyte.c, utf16.c, utf32.c, utf8.c: Toss <0
3987         checks on unsigned things
3989         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
3991 2002-01-01 18:26  dan
3993         * runops_cores.c: More warning silences.
3995         Courtesy of Nicholas Clark <nick@unfortu.net>
3997 2002-01-01 18:25  dan
3999         * trace.c: Shuts up a warning.
4001         Courtesy of Nicholas Clark <nick@unfortu.net>
4003 2002-01-01 18:24  dan
4005         * encodings/singlebyte.c: Clean up some warnings.
4007         Courtesy of Nicholas Clark <nick@unfortu.net>
4009 2002-01-01 18:20  dan
4011         * Configure.pl: Hey, those PPros are really x86 systems! Who'dve
4012         thunk it?
4014         Courtesy of "Bryan C. Warnock" <bwarnock@raba.com>
4016 2002-01-01 18:17  dan
4018         * packfile.c: Warning cleanup
4020         Courtesy of Nicholas Clark <nick@unfortu.net>
4022 2002-01-01 17:53  dan
4024         * string.c: New string size should be based on output encoding's
4025         size, not input encoding's size.
4027         Courtesy of: "Peter Gibbs" <peter@emkel.co.za>
4029 2002-01-01 17:22  dan
4031         * Configure.pl, core.ops, interpreter.c, memory.c, runops_cores.c,
4032         string.c, test_main.c, trace.c, include/parrot/exceptions.h,
4033         include/parrot/interpreter.h, include/parrot/memory.h,
4034         include/parrot/oplib.h, include/parrot/string.h, t/op/string.t:
4035         Warnings fixups.
4037         Courtesy of Chip Turner <cturner@redhat.com>
4039 2002-01-01 17:09  dan
4041         * encodings/singlebyte.c, encodings/utf16.c, encodings/utf32.c,
4042         encodings/utf8.c, include/parrot/encoding.h: Some signed things are
4043         now unsigned, as is proper.
4045         Courtesy of: "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4046         Courtesy of: "Bryan C. Warnock" <bwarnock@raba.com>
4048 2002-01-01 16:59  dan
4050         * include/parrot/trace.h: Useless debugging prototype removed
4052         Courtesy of: "Bryan C. Warnock" <bwarnock@raba.com>
4054 2002-01-01 16:58  dan
4056         * MANIFEST: We forgot a file.
4058         Courtesy of "Bryan C. Warnock" <bwarnock@raba.com>
4060 2002-01-01 03:53  dan
4062         * Configure.pl: Okay, I give. Removed some warnings because the
4063         darned system headers were triggering them. Sloppy, sloppy
4064         coding...
4066 2002-01-01 03:48  dan
4068         * config_h.in: Add in an unsigned INTVAL.
4070         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4072 2002-01-01 03:46  dan
4074         * global_setup.c: Clean up some compiler warnings.
4076         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4078 2002-01-01 03:43  dan
4080         * ops2c.pl, Parrot/OpTrans.pm, Parrot/OpTrans/CPrederef.pm,
4081         lib/Parrot/OpTrans.pm, lib/Parrot/OpTrans/CPrederef.pm,
4082         include/parrot/op.h: Cleaned up some things to make the compiler
4083         happier.
4085         Courtesy of Nicholas Clark <nick@unfortu.net>
4087 2002-01-01 03:14  dan
4089         * Configure.pl: Quad updates.
4091         Courtesy of Nicholas Clark <nick@unfortu.net>
4093 2001-12-31 22:53  dan
4095         * include/parrot/op.h: Typedef had parameters backwards. Threw
4096         core.ops for a big whiny warnings loop.
4098 2001-12-31 22:37  dan
4100         * Makefile.in, resources.c: Tweaks to try and get things to build
4101         in the right order.
4103 2001-12-31 21:58  dan
4105         * Configure.pl: Stupid thinko fix
4107 2001-12-31 21:34  dan
4109         * Configure.pl, hints/mswin32.pl: Tweaks for Win32 builds
4111         Courtesy of: "Jason Diamond" <jason@injektilo.org>
4113 2001-12-31 21:32  dan
4115         * Configure.pl: Fix for non-gcc systems
4117 2001-12-31 20:22  dan
4119         * interpreter.c: Tweak so we can build on non-JIT platforms
4121 2001-12-31 20:11  dan
4123         * Configure.pl: Force the time on some copied files to be 'now' to
4124         make the Win builds much less annoying.
4126         Courtesy of "Jason Diamond" <jason@injektilo.org>
4128 2001-12-31 20:07  dan
4130         * Configure.pl: Nuke all object files in the parrot tree that
4131         matter when configuring.  Shouldn't be necessary with good
4132         dependencies in the makefile, but we don't have those yet.
4134 2001-12-31 20:00  gregor
4136         * chartypes/unicode.c:
4137         Silence unused variable warnings.
4139 2001-12-31 19:40  dan
4141         * Configure.pl: Minor Win32 tweaks. Tossed -Wtraditional, too
4143 2001-12-31 19:37  gregor
4145         * interpreter.c, jit.c, include/parrot/jit.h:
4146         Created a prototype for JIT functions and used it in interpreter.c.
4148 2001-12-31 19:31  dan
4150         * Configure.pl, test_gnuc.c: Better GCC detection (and version
4151         detection) with really cranky warnings if we find we're using it.
4153         Courtesy of: Nicholas Clark <nick@unfortu.net>
4155 2001-12-31 18:01  gregor
4157         * interpreter.c, include/parrot/interpreter.h, include/parrot/op.h:
4159         Fixed a few warnings wrt prototypes, etc.
4161 2001-12-31 17:23  dan
4163         * string.c: Silenced most of the compiler whines
4165 2001-12-31 17:15  gregor
4167         * Configure.pl:
4168         Get the ccname from either ccname or just cc config var.
4170 2001-12-31 17:14  gregor
4172         * Parrot/Op.pm, lib/Parrot/Op.pm:
4173         Another intermediate opbody notation. Could come in handy. Explicit
4174         types.
4176 2001-12-31 17:05  dan
4178         * string.c: Minor warnings update
4180 2001-12-31 17:00  dan
4182         * include/parrot/string.h: Warnings cleanup
4184 2001-12-31 16:00  simon
4186         * encodings/utf8.c, include/parrot/encoding.h:
4187         Remove a couple more.
4189 2001-12-31 15:58  simon
4191         * vtable_h.pl, include/parrot/global_setup.h, include/parrot/jit.h,
4192         include/parrot/op.h:
4193         Rid ourselves of a few warnings.
4195 2001-12-31 15:32  dan
4197         * Configure.pl: Made GCC ever so much pickier.
4199         Switch list courtesy of Jarkko.
4201 2001-12-31 15:22  dan
4203         * string.c: Tightened up initial allocation.
4205         Courtesy of:  "Peter Gibbs" <peter@emkel.co.za>
4207 2001-12-31 06:48  dan
4209         * Configure.pl: Minor Windows tweak
4211 2001-12-31 05:32  dan
4213         * core.ops: Unused temp variable tossed.
4215         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4217 2001-12-31 05:09  grunblatt
4219         * Configure.pl, Makefile.in, interpreter.c: Link jit.o only on
4220         supported plataforms
4222 2001-12-31 03:05  dan
4224         * Configure.pl, Makefile.in, classes/Makefile.in: Added in a
4225         platform-independent quote substitution for the makefiles.
4226         Hopefully this'll make the Win32 builds happier.
4228 2001-12-30 21:08  dan
4230         * string.c, include/parrot/string.h: More string system tweaks.
4232         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4234 2001-12-30 20:45  dan
4236         * core.ops: Some pod cleanup
4238         Courtesy of Josh Wilmes <josh@hitchhiker.org>
4240 2001-12-30 20:22  ajgough
4242         * docs/parrot_assembly.pod: removed ntoi and iton ops from docs, as
4243         we aren't using them right now.  Clarified the workings of set Px,
4244         Py and clone Px, Py.
4246 2001-12-30 20:15  grunblatt
4248         * jit.c, jit2h.pl, jit/i386/core.jit: Removed the warnings in jit.c
4249         Added readjit() to read *.jit files Updated core.jit to the new
4250         set_n_i
4252 2001-12-30 20:14  ajgough
4254         * examples/assembly/mops.pasm: Changed iton/ntoi to set.
4256 2001-12-30 19:52  dan
4258         * packfile.c, pdump.c, register.c, string.c, include/parrot/key.h,
4259         include/parrot/trace.h, platforms/generic.c: Compiler whine
4260         cleanups
4262         Courtesy of Josh Wilmes <josh@hitchhiker.org>
4264 2001-12-30 19:13  dan
4266         * Configure.pl, Makefile.in: Make GCC pickier by default.
4268         Courtesy of: Josh Wilmes <josh@hitchhiker.org>
4270 2001-12-30 18:41  dan
4272         * core.ops, t/op/integer.t, t/op/number.t: Transformed iton and
4273         ntoi opcodes to sets.
4275         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4277 2001-12-30 17:58  gregor
4279         * Makefile.in:
4280         'make' no longer builds the mops test. Use 'make mops' for that. To
4281         run the test, you can do 'make mopstest'.
4283 2001-12-30 17:30  gregor
4285         * Makefile.in:
4286         Fixed one oversight. 'make clean' was removing Parrot/Types.pm. Bad
4287         Gregor.
4289 2001-12-30 17:26  gregor
4291         * .cvsignore, Configure.pl, Makefile.in, VERSION, config_h.in,
4292         core.ops, interpreter.c, make_vtable_ops.pl, obscure.ops, ops2c.pl,
4293         Parrot/BuildUtil.pm, Parrot/OpsFile.pm, lib/Parrot/BuildUtil.pm,
4294         lib/Parrot/OpsFile.pm, include/parrot/oplib.h:
4295         Build enhancements. Originally to support building shared
4296         libraries, but now of broader impact.
4298           * .cvsignore: Ignore the blib/ directory, about which more later.
4300           * Configure.pl:
4302               * Got rid of TAB formatting and lined a few things up.
4304               * Added header comment with CVS Id variable, and a few other
4305                 block header comments.
4307               * Uses new Parrot::BuildUtil module to determine the Parrot
4308                 version.
4310               * Reworded a few messages, added a couple, and wrapped
4311         messages
4312                 to 79 columns.
4314               * Added 2002 to the Copyright statement.
4316               * Added new configure variables: VERSION, MAJOR, MINOR and
4317         PATCH
4319               NOTE: Please see the 'Alas perl5.7.2' comment. 5.7.2 is
4320         greater
4321               than 5.6.0, but the comment implies it isn't.
4323           * Makefile.in:
4325               * Added $(SO), $(A) and $(AR_CRS) defines for library
4326         building.
4328               * Added $(RM_RF) define for removing directory trees
4330               * Grouped generated files into two classes: "sticky" (made by
4331         configure,
4332                 persisting across 'make clean') and 'fluid' (made during
4333         the build
4334                 process, deleted by 'make clean').
4336               * Added header comments.
4338               * Added target for test_prog linked with shared library.
4340               * Added rules to build shared libraries in blib/lib. The
4341         libraries are
4342                 built with trailing version numbers in their file names,
4343         and then
4344                 symbolic links are created for shorter and no version tag
4345         variants.
4347               * Added some missing dependencies
4349               * Added some missing 'make clean' targets.
4351               * Added 'make realclean' target that deletes files created by
4352                 Configure.pl (including Makefile), forcing a re-configure.
4354               * Added a 'status' CVS target.
4356           * VERSION: New file, contains only the version. This version
4357         number is
4358             propagated to a few places, such as the core oplib version
4359         number. This
4360             reduces the amount of coordination that has to happen to get
4361         version
4362             number stuff throughout the tree in sync and updated prior to
4363         cutting
4364             a new release. Feel free to grep for '0.0.3' to see the other
4365         files
4366             that contain the version number (but, do that in a fresh CVS
4367         copy, or
4368             after doing 'make realclean').
4370           * config_h.in: Renamed PARROT_CORE_OPLIB_*_VERSION to
4371         PARROT_*_VERSION,
4372             since the oplib and Parrot itself share a version number now.
4373         Added
4374             PARROT_PATCH_VERSION (the third component) and PARROT_VERSION
4375         (a
4376             string).
4378           * core.ops: Uses new notation "VERSION = PARROT_VERSION" instead
4379         of
4380             specifying the version by hand. Non-core oplibs will set this
4381         to
4382             a quoted dot-string with three natural number components
4383         without
4384             leading zeros.
4386           * interpreter.c: Make use of PARROT_VERSION to simplify some
4387         sprintf()s, and
4388             to get the complete version number in the resulting strings
4389         (including the
4390             new PATCH portion).
4392           * make_vtable_ops.pl: Put the "VERSION = PARROT_VERSION" line int
4393         the
4394             generated file.
4396           * obscure.ops: Use the new "VERSION = PARROT_VERSION" technique.
4398           * ops2c.pl: Account for the PATCH version, too. This affects the
4399         name of the
4400             oplib init function, and the oplib info struct initializer.
4402           * Parrot/BuildUtil.pm: New file for reading in and validating the
4403         contents of
4404             the new VERSION file. Other build utilities could go here in
4405         futuer.
4407           * Parrot/OpsFile.pm:
4409               * Allow three components in version number, and require that
4410         the value
4411                 be in double quotes.
4413               * Allow "VERSION = PARROT_VERSION", substituting the shared
4414         Parrot
4415                 VERSION in that case.
4417           * include/parrot/oplib.h: Add the patch_version member.
4419 2001-12-30 12:16  simon
4421         * MANIFEST, Makefile.in:
4422         More stuff forgotten from MANIFEST.
4424 2001-12-30 12:13  simon
4426         * MANIFEST:
4427         Missing JIT file.
4429 2001-12-30 12:12  simon
4431         * jit2h.pl:
4432         Safety first.
4434 2001-12-30 12:12  simon
4436         * Makefile.in:
4437         Gragh.
4439 2001-12-30 12:04  simon
4441         * Makefile.in, core.ops, packfile.c, pbc2c.pl, string.c,
4442         classes/perlstring.pmc, encodings/singlebyte.c, encodings/utf16.c,
4443         encodings/utf32.c, encodings/utf8.c, include/parrot/encoding.h,
4444         include/parrot/string.h, t/op/string.t:
4445         * Expand the strings test suite to be more complete * Make string
4446         commands more consistent (i.e, now the only string command that
4447         actually changes the original is chopn) * Significantly reduce the
4448         number of memory allocations and eliminate reallocations.
4450         Courtesy of: David Jacobs <jacobsl001@hawaii.rr.com>
4452 2001-12-29 22:12  dan
4454         * interpreter.c, key.c, register.c, stacks.c, string.c,
4455         test_main.c, trace.c: Updates to match the coding standards.
4457         Courtesy of Bryan C. Warnock <bwarnock@raba.com>
4459 2001-12-29 20:42  grunblatt
4461         * jit2h.pl, Parrot/Jit/i386-bsd.pm, Parrot/Jit/i386-linux.pm,
4462         Parrot/Jit/i386-nojit.pm, jit/i386/core.jit, jit/i386/lib.jit,
4463         jit/i386/string.jit, lib/Parrot/Jit/i386-bsd.pm,
4464         lib/Parrot/Jit/i386-linux.pm, lib/Parrot/Jit/i386-nojit.pm: Allow
4465         us to write asm in *.jit files instead of hex.  Courtesy of: Rafael
4466         Kitover <caelum@debian.org>
4468 2001-12-28 21:20  dan
4470         * core.ops: Okay, now print takes a preceding file handle.
4472         I feel so dirty now.
4474 2001-12-28 20:46  dan
4476         * core.ops, t/op/hacks.t: Added in the readline op, as well as
4477         changing the open op to use fopen under the hood.
4479         THESE OPS ARE EVIL! AND TEMPORARY! USE FOR DEBUGGING PURPOSES ONLY!
4481 2001-12-28 18:20  ajgough
4483         * core.ops, make_vtable_ops.pl, string.c, classes/default.pmc,
4484         classes/perlstring.pmc, docs/parrot_assembly.pod, docs/strings.pod,
4485         include/parrot/exceptions.h, include/parrot/string.h,
4486         t/op/pmc_perlstring.t, t/op/string.t, t/pmc/perlstring.t: Added
4487         repeat op, so that "foo" x 10 can be done.  Filled in PerlString
4488         vtables appropriately.  Also tests for same, new pmc_perlstring.t
4489         to hold tests specific to PerlStrings, as the pmc.t file is taking
4490         too long to run and slowing down my thought processes.
4492         Changes to strings.c etc to take string functions.
4494         Some changes to the strings docs, but not yet complete.
4496         Also, PerlString was copying pointers to strings, rather than
4497         strings themselves, so some action-at-a-distance bugs were creeping
4498         in, I think I've fixed this so everything works nicely.
4500 2001-12-28 04:56  gregor
4502         * examples/assembly/pmcmops.pasm:
4503         PMC-using version of mops.pasm.
4505         Courtesy of: Bryan C. Warnock <bwarnock@raba.com>
4507 2001-12-28 04:56  gregor
4509         * examples/assembly/.cvsignore:
4510         Small tinkering. Removed old stuff, etc.
4512 2001-12-28 01:26  gregor
4514         * examples/mops/mops.scheme:
4515         Scheme example. Major GC thrashing on umb-scheme here. Probably due
4516         to the very un-scheme-like implementation.
4518 2001-12-28 01:19  gregor
4520         * examples/mops/mops.c:
4521         Some people's picky compilers don't like us redefineing time(), so
4522         we call it time_n().  :)
4524 2001-12-28 00:28  gregor
4526         * examples/mops/: README, mops.ps:
4527         Added a PostScript example and a README.
4529 2001-12-27 23:57  gregor
4531         * Makefile.in:
4532         Build the C mops translation in examples/mops/mops.c
4534 2001-12-27 23:56  gregor
4536         * examples/mops/: .cvsignore, mops.c, mops.pl, mops.py, mops.rb:
4537         Some translations of mops.pasm into other languages, for inner loop
4538         performance comparisons.
4540 2001-12-27 22:40  gregor
4542         * examples/assembly/mops.pasm:
4543         Fixed erroneous file name in header comment.
4545 2001-12-27 21:18  gregor
4547         * pbc2c.pl:
4548         One-liner to avoid no-op gotos to the next op.
4550 2001-12-27 21:06  gregor
4552         * runops_cores.c:
4553         Fixed -p (profiling). Slow runops core was doing unconditional
4554         tracing, when it should have been checking the flags.
4556 2001-12-27 18:50  ajgough
4558         * core.ops, string.c, chartypes/unicode.c, chartypes/usascii.c,
4559         classes/perlstring.pmc, include/parrot/chartype.h,
4560         include/parrot/string.h, t/op/pmc.t, t/op/string.t, t/pmc/pmc.t:
4561         dded get_digit() to chartypes  * Added string_bool() to strings  *
4562         Added if_s_ic op, to use same  * Added (PerlString)->get_bool stuff
4563         to perlstring.pmc  * Tests for above, also a for couple of other
4564         ops without tests
4566         The unicode chartype has only had placeholders added for get_digit,
4567         string_to_num has been updated to use type->get_digit rather than
4568         the previous ascii-isms.  Some remain, but we need to carefully
4569         define what we mean by a number before we let thousands of code
4570         points act as a minus sign.
4572 2001-12-27 18:32  dan
4574         * classes/: perlint.pmc, perlnum.pmc, perlstring.pmc: Silenced some
4575         compiler warnings.
4577         Courtesy of "David  Jacobs" <jacobsl001@hawaii.rr.com>
4579 2001-12-27 18:23  dan
4581         * t/op/bitwise.t: More tests.
4583         Courtesy of "David Jacobs" <jacobsl001@hawaii.rr.com>
4585 2001-12-27 17:08  gregor
4587         * MANIFEST, Makefile.in, config_h.in, core.ops, interpreter.c,
4588         make_vtable_ops.pl, obscure.ops, ops2c.pl, ops2pm.pl, test_main.c,
4589         trace.c, Parrot/OpsFile.pm, include/parrot/interp_guts.h,
4590         include/parrot/interpreter.h, include/parrot/oplib.h,
4591         lib/Parrot/OpsFile.pm, platforms/generic.c, platforms/generic.h,
4592         platforms/win32.c, platforms/win32.h:
4593         Initial code for dynamic loading of oplibs, applied for now to the
4594         loading of the core_prederef oplib when the -P flag is passed to
4595         test_parrot.
4597           * MANIFEST: Added entry for the new file include/parrot/oplib.h.
4599           * Makefile.in:
4601               * Added libcore_prederef_0_3.so to the shared target.
4602               * Added build rule for libcore_prederef_0_3.so.
4603               * Added dependencies on Parrot/OpsFile.pm and Parrot/Op.pm
4604                 to Parrot/OpLib/core.pm, core_ops.c and
4605                 core_ops_prederef.c.
4607           * config_h.in: Added defines for constants used to locate the
4608             core oplib's init function, and the core_prederef oplib for
4609             dynaloading.
4611           * core.ops: Added a VERSION = 0.3 line near the top. This is now
4612             required by Parrot/OpsFile.pm.
4614           * interpreter.c:
4616               * Added init_prederef() and stop_prederef() functions to load
4617                 and unload the core_prederef oplib when we are in prederef
4618                 mode.
4620                 NOTE: In all likelihood, the prederef stuff has a rapidly
4621                 dwindling time-to-live. The JIT should provide vastly
4622         superior
4623                 performance, and loading an alternate set of core_ops isn't
4624                 the real direction for the dynaloading stuff. Loading
4625                 *additional* ops is. It does provide a handy test case for
4626         the
4627                 general idea for now, though.
4629               * Gets the core copcode table, etc. via the core oplibs oplib
4630                 info pointer, as returned by the core oplib's init
4631         function.
4633           * ops2c.pl
4635               * Make use of the version, major version and minor version
4636                 stuff parsed by Parrot/OpsFile.pm
4638               * The only exported symbol in the generated files is the init
4639                 function now, since that returns an oplib info struct
4640                 pointer, and all the important stuff can be found there.
4642           * ops2pm.pl: Put the oplib version in the generated .pm file.
4644           * test_main.c: Small changes necessitated by changes in the names
4645             of some members of the interpreter struct.
4647           * trace.c: Small changes necessitated by changes in the names
4648             of some members of the interpreter struct.
4650           * Parrot/OpsFile.pm: Require a "VERSION = x.y" line before any
4651             ops are found.
4653           * include/parrot/interp_guts.h: Small changes necessitated by
4654             changes in the names of some members of the interpreter struct.
4656           * include/parrot/interpreter.h: Include the new
4657             include/parrot/oplib.h header. Small changes to the oplib-
4658             related members.
4660           * include/parrot/oplib.h: Define the type of the oplib init
4661             function, and the struct type for the oplib info.
4663           * platforms/*.[hc]: Remove the second argument to Parrot_dlopen()
4664             since not all platforms have it. For those that do, a default
4665             second argument is provided.
4667 2001-12-26 05:12  gregor
4669         * Configure.pl:
4670         Make jitarch calculation not get tripped up by extra components to
4671         archname.
4673 2001-12-24 21:23  gregor
4675         * jit.c, jit2h.pl, Parrot/Jit/i386-bsd.pm,
4676         Parrot/Jit/i386-linux.pm, Parrot/Jit/i386-nojit.pm,
4677         include/parrot/jit.h, jit/i386/core.jit, jit/i386/lib.jit,
4678         jit/i386/string.jit, lib/Parrot/Jit/i386-bsd.pm,
4679         lib/Parrot/Jit/i386-linux.pm, lib/Parrot/Jit/i386-nojit.pm:
4680         Some more JIT work from Daniel Grunblatt.
4682           * Ops added set_s_s, set_s_sc, bsr_i and eq_s_sc but using calls
4683         to C
4684             functions.
4686           * Added JUMP(END) to place the number of bytes to the end of the
4687         current
4688             op.
4690           * The *.jit files syntax changed.
4692           * Added jit/i386/lib.jit to place handly functions as jump that
4693         take as
4694             argument the address where is the opcode number to jump to.
4696           * There is a bug at some point, but I will start writing
4697             jit/i386/string.jit and jit/i386/stacks.jit so that we don't
4698         have use
4699             calls, which make the jit as slow as the interpreter.
4701         Courtesy of: Daniel Grunblatt <daniel@grunblatt.com.ar>
4703 2001-12-24 03:46  dan
4705         * Parrot/OpTrans.pm, Parrot/OpTrans/C.pm, Parrot/OpTrans/CGoto.pm,
4706         Parrot/OpTrans/CPrederef.pm, lib/Parrot/OpTrans.pm,
4707         lib/Parrot/OpTrans/C.pm, lib/Parrot/OpTrans/CGoto.pm,
4708         lib/Parrot/OpTrans/CPrederef.pm: Commented out the use warnings.
4709         Perls before 5.6.0 don't like it.
4711 2001-12-22 16:02  ajgough
4713         * t/op/stacks.t: stopped skipping tests we can run now.  added
4714         clonep tests.
4716 2001-12-21 21:13  gregor
4718         * jit2h.pl, Parrot/Jit/i386-bsd.pm, Parrot/Jit/i386-linux.pm,
4719         Parrot/Jit/i386-nojit.pm, lib/Parrot/Jit/i386-bsd.pm,
4720         lib/Parrot/Jit/i386-linux.pm, lib/Parrot/Jit/i386-nojit.pm:
4721         Fixed some package name goofs.
4723         Thanks to: Andy Dougherty <doughera@mail.lafayette.edu>
4725 2001-12-21 19:32  gregor
4727         * MANIFEST, Makefile.in, core.ops, interpreter.c,
4728         make_vtable_ops.pl, obscure.ops, ops2c-prederef.pl, ops2c.pl,
4729         pbc2c.pl, stacks.c, Parrot/Op.pm, Parrot/OpTrans.pm,
4730         Parrot/Opcode.pm, Parrot/OpsFile.pm, lib/Parrot/Op.pm,
4731         lib/Parrot/OpTrans.pm, lib/Parrot/Opcode.pm, lib/Parrot/OpsFile.pm,
4732         Parrot/OpTrans/C.pm, Parrot/OpTrans/CGoto.pm,
4733         Parrot/OpTrans/CPrederef.pm, docs/intro.pod, include/parrot/op.h,
4734         include/parrot/stacks.h, lib/Parrot/OpTrans/C.pm,
4735         lib/Parrot/OpTrans/CGoto.pm, lib/Parrot/OpTrans/CPrederef.pm:
4736         Changes to syntax of .ops files and refactoring of ops2c*.pl and
4737         pbc2c.pl.
4739           * Removed ops2c-prederef.pl
4741           * (unrelated) Removed vestigial Parrot/Opcode.pm file.
4743           * Added Parrot/OpTrans.pm, Parrot/OpTrans/C.pm (needed for old
4744             functionality of ops2c.pl), Parrot/OpTrans/CPrederef.pm (needed
4745             for old functionality of ops2c-prederef.pl), and
4746             Parrot/OpTrans/CGoto.pm (needed for functionality of pbc2c.pl).
4748             "OpTrans" == "Op Transformation"
4750           * Makefile.in modifications to call "ops2c.pl C" where it used
4751             to be just "ops2c.pl", and "ops2c.pl CPrederef" where it used
4752             to be "ops2c-prederef.pl".
4754           * core.ops and obscure.ops changes to syntax. Semantics are
4755             identical with previous version:
4757               return HALT         -->  HALT()
4758               return AUTO         -->  goto NEXT()
4759               return RETREL(...)  -->  goto OFFSET(...)
4760               return RESTART(*)   -->  restart NEXT()
4762             Also, pop_generic_entry() stuff (local var + 5 lines of code)
4763             for dest-less branch ops replaced with new notation "goto
4764         POP()",
4765             which uses the new pop_dest() function in stacks.c. This also
4766             allowed these ops to become 'inline' ops, since they no longer
4767             have local variables.
4769             The 'ret' op also became simplified to just "goto POP()", and
4770             also became an inline op.
4772           * interpreter.c reflects the change in type name:
4774               prederef_op_func_t   -->  op_func_prederef_t
4776             that occurred in include/parrot/op.h
4778           * make_vtable_ops.pl uses "goto NEXT()" where it used to use
4779             "return AUTO".
4781           * ops2c.pl is now generic. Its first argument is the last
4782             package name component of a subclass of Parrot::OpTrans. These
4783             subclasses all have full names of the form Parrot::OpTrans::*.
4784             An instance of the class is created and later consulted for
4785             various bits of information needed to generate the C code.
4787           * pbc2c.pl now uses an instance of Parrot::OpTrans::CGoto to
4788             contain its transformation rules.
4790           * stacks.c has a new function pop_dest() that pops a destination
4791             off the control stack. include/parrot/stacks.h has the
4792         prototype.
4794           * Parrot/Op.pm now supports the syntax generated by
4795         Parrot::OpsFile
4796             for the "goto POP" case.
4798             Also, the source() method now expects its second argument to be
4799             an object that ISA Parrot::OpTrans. Methods of this object are
4800             called to perform the substitutions.
4802           * Parrot/OpsFile.pm supports the change in notation mentioned
4803             above.
4805           * docs/intro.pod reflects these changes.
4807           * include/parrot/op.h: Renamed type prederef_op_func_t to
4808             op_func_prederef_t because it made the implementation of the
4809             shared ops2c.pl easier.
4811 2001-12-21 13:47  gregor
4813         * Configure.pl, config_h.in, interpreter.c, test_main.c:
4814         Both test_parrot (via test_main.c) and the intepreter itself (via
4815         interpreter.c) use the JIT_CAPABLE config to decide whether to
4816         actually attempt JIT operation, or to complain.
4818 2001-12-20 23:25  gregor
4820         * core.ops, make_vtable_ops.pl, obscure.ops, Parrot/OpsFile.pm,
4821         lib/Parrot/OpsFile.pm, docs/intro.pod, include/parrot/op.h:
4822         Changes to the format of *.ops files. An attempt to provide hints
4823         for future opfunc processing logic that wants to know if an opfunc
4824         is simple enough to JIT (e.g.) inline, or not.
4826         See the POD in Parrot/OpsFile.pm and the updated docs/intro.pod in
4827         addition to The Source in core.ops and Parrot/OpsFile.pm for more
4828         info.
4830 2001-12-20 21:28  gregor
4832         * Configure.pl, jit.c, jit2h.pl, include/parrot/jit.h,
4833         jit/i386/core.jit:
4834         More JIT stuff:
4836           * A fix to Gregor's last Configure.pl update.
4838           * Remove the need for hardcoded "\n" at the end of the "%f"
4839             format for printing floating-point numbers.
4841           * New, improved *.jit syntax for references to registers,
4842             e.g. INT_REG[n].
4844           * Support for C() improved.
4846         Courtesy of: Daniel Grunblatt <daniel@grunblatt.com.ar>
4848 2001-12-20 16:55  dan
4850         * MANIFEST: Added jit.c to the manifest.
4852 2001-12-20 15:24  simon
4854         * jit2h.pl:
4855         Off-by-one error fixed.
4857 2001-12-20 14:18  simon
4859         * jit/i386/core.jit:
4860         Just a noop. It's the only machine code I know.
4862 2001-12-20 13:10  gregor
4864         * Configure.pl, Makefile.in, jit2h.pl:
4865         Attempt to fix Win32 builds.
4867           * No more empty braces in include/parrot/jit_struct.h
4869         Also:
4871           * ${jitarchname} has the *bsd -> bsd substitution on it, but
4872         ${archname}
4873             does not.
4875 2001-12-20 11:56  simon
4877         * Makefile.in:
4878         De-cp
4880 2001-12-20 01:57  gregor
4882         * Configure.pl, MANIFEST, Makefile.in, interpreter.c, jit.c,
4883         jit2h.pl, test_main.c, Parrot/.cvsignore, Parrot/Jit/i386-bsd.pm,
4884         Parrot/Jit/i386-linux.pm, Parrot/Jit/i386-nojit.pm, docs/jit.pod,
4885         include/parrot/.cvsignore, include/parrot/interpreter.h,
4886         include/parrot/jit.h, jit/i386/core.jit, jit/i386/string.jit,
4887         lib/Parrot/Jit/i386-bsd.pm, lib/Parrot/Jit/i386-linux.pm,
4888         lib/Parrot/Jit/i386-nojit.pm:
4889         Initial JIT implementation.
4891           * Enabled with test_parrot -j. 20x speed boosts seen.
4893           * Unsupported archs mapped to i386-nojit. Don't do -j on them.
4895           * More to come.
4897         Courtesy of: Daniel Grunblatt <daniel@grunblatt.com.ar>
4899 2001-12-20 01:53  jgoff
4901         * MANIFEST, core.ops, t/op/key.t: MANIFEST - Removed t/op/key.t
4902         core.ops - Removed key operators, they should be hidden from the
4903         assembler.  t/op/key.t - No need to test the nonexistent key
4904         operators.
4906 2001-12-20 00:13  ajgough
4908         * core.ops, t/op/stacks.t: Added tests for entrytype op, noticed
4909         that asking for type of entry at depth causes segfault as stack is
4910         zero based, fixed cmp in core.ops to reflect this.  Last test is
4911         skipped as we don't do exceptions right yet.
4913 2001-12-19 19:11  ajgough
4915         * t/op/debuginfo.t: Added C<end> ops to debuginfo.t, as thier
4916         non-being was causing Irix "issues".
4918 2001-12-19 03:37  jgoff
4920         * languages/miniperl/Miniperl/t/: 001_tokenizer.t, 003_generator.t,
4921         004_combined.t: Changed tests to make sure they pass with the
4922         addition of the clone operator.
4924 2001-12-18 20:06  gregor
4926         * interpreter.c, include/parrot/interp_guts.h:
4927         Performance improvements to the predereferencing code path
4928         suggested to me over lunch yesterday by my friend John Kennedy.
4929         The goal is to remove the additional test in the inner loop that
4930         was checking for NULL to decide whether or not to call the
4931         prederef() function. Also moved pc & pc_prederef syncing outside
4932         the inner loop.
4934           * Changed the prototype of the prederef() function in
4935             interpreter.c to match that of an opfunc.
4937           * Instead of initializing the prederef void * array with NULL,
4938             we initialize it with pointers to prederef().
4940           * prederef() now returns the prederef_pc passed in, so that
4941             after predereferencing, the same location is executed, but now
4942             with the real code being called.
4944         Thanks to: John Kennedy
4946 2001-12-18 19:59  ajgough
4948         * t/: op/pmc.t, pmc/pmc.t: Added some more num -> string tests
4949         (including some more in the skipped string -> int tests).
4951 2001-12-18 07:06  jgoff
4953         * MANIFEST: Forgot to add classes/perlarray.pmc
4955 2001-12-18 07:05  jgoff
4957         * Makefile.in, core.ops, global_setup.c, vtable.tbl,
4958         classes/Makefile.in, classes/default.pmc, classes/perlarray.pmc,
4959         classes/perlint.pmc, classes/perlnum.pmc, classes/perlstring.pmc,
4960         classes/perlundef.pmc, include/parrot/pmc.h, t/op/pmc.t,
4961         t/pmc/pmc.t: Big update...  Makefile.in - Added
4962         classes/perlarray.pmc core.ops - Added new series of set() ops for
4963         arrays global_setup.c - Initialized perlarray classes/Makefile.in -
4964         Added perlarray.pmc classes/*.pmc - Added
4965         set_{integer,number,string}_index and
4966         get_{integer,number,string}_index include/parrot/pmc.h - Added new
4967         type t/op/pmc.t - Added basic array test
4969         classes/perlarray.pmc - Added
4971 2001-12-17 05:29  jgoff
4973         * languages/miniperl/Miniperl/Generator.pm: Altered miniperl code
4974         generator to use clone operator instead of set Px,Py
4976 2001-12-17 05:25  jgoff
4978         * core.ops, classes/perlint.pmc, classes/perlnum.pmc,
4979         classes/perlstring.pmc, t/op/pmc.t, t/pmc/pmc.t: Added clone
4980         PMC,PMC operator. Uses the clone() vtable entries.
4982 2001-12-17 04:51  jgoff
4984         * MANIFEST: Added miniperl test suite, removed old Miniperl/Test.pm
4985         entry
4987 2001-12-17 04:41  jgoff
4989         * languages/miniperl/Miniperl/Makefile.PL: Now in its proper
4990         directory...
4992 2001-12-17 04:41  jgoff
4994         * languages/miniperl/Makefile.PL: Moved it to the proper directory.
4996 2001-12-17 04:39  jgoff
4998         * languages/miniperl/: Makefile.PL, Miniperl.pm, miniperlc, mpc,
4999         Miniperl/Tokenizer.pm: Makefile.PL to let us run the test suite in
5000         t/
5002 2001-12-17 04:27  jgoff
5004         * languages/miniperl/Miniperl.pm: Latest version of the driver.
5005         Admittedly it's a little thin on true OO, but the algorithms are
5006         the key.
5008 2001-12-17 04:24  jgoff
5010         * languages/miniperl/Miniperl/t/: 001_tokenizer.t, 002_parser.t,
5011         003_generator.t, 004_combined.t: Much more comprehensive test suite
5012         for the codegen et al
5014 2001-12-17 04:22  jgoff
5016         * languages/miniperl/Miniperl/: Generator.pm, Parser.pm,
5017         Tokenizer.pm: Newer codegen, tightened up parser output, added hash
5018         key handling
5020 2001-12-17 04:20  jgoff
5022         * languages/miniperl/Miniperl/Test.pm: The newer test suite is much
5023         more comprehensive.
5025 2001-12-17 04:17  jgoff
5027         * languages/miniperl/foo.mpl: Test file that'll be outdated by
5028         changes to the new compiler
5030 2001-12-17 04:11  jgoff
5032         * languages/miniperl/t/: harness, 001_basic/basic.t: Moving testing
5033         files to Miniperl/
5035 2001-12-16 14:11  simon
5037         * classes/perlint.pmc, examples/assembly/mops_p.pasm, t/op/pmc.t,
5038         t/pmc/pmc.t:
5039         Fix bogus assumption that multiplying an integer by an integer
5040         yields an integer.
5042 2001-12-16 12:48  simon
5044         * make_vtable_ops.pl:
5045         Fixed op exploder.
5047 2001-12-16 12:45  simon
5049         * make_vtable_ops.pl, Parrot/Vtable.pm, lib/Parrot/Vtable.pm:
5050         Expand multimethod vtable ops.
5052 2001-12-16 12:04  simon
5054         * Makefile.in:
5055         Added 'cvsclean' which doesn't zap CVS/* directories.
5057 2001-12-15 01:50  dan
5059         * include/parrot/string.h: Fixed typo in string.h. lagnuage,
5060         indeed!
5062         Thanks to grunblatt fom #parrot for the catch
5064 2001-12-15 01:39  dan
5066         * .cvsignore, Configure.pl, MANIFEST, languages/jako/Makefile.in,
5067         languages/miniperl/.cvsignore, languages/miniperl/Makefile,
5068         languages/miniperl/Makefile.in,
5069         languages/miniperl/Miniperl/Test.pm, languages/scheme/.cvsignore,
5070         languages/scheme/Makefile, languages/scheme/Makefile.in: Build
5071         tweaks.
5073         Courtesy of: Jay McCarthy <jay@kenyamountain.com>
5075 2001-12-14 17:39  dan
5077         * t/op/trans.t: More trans tests.
5079         Courtesy of: Simon Glover <scog@roe.ac.uk>
5081 2001-12-14 07:41  robert
5083         * make.pl: - define MAKE macro - topological sort and subgraph
5084         order - start of timestamp stuff   (still badly broken)
5086 2001-12-14 06:06  jgoff
5088         * optimizer.pl: Hopefully this should do the trick..
5090 2001-12-14 06:04  jgoff
5092         * Parrot/Optimizer.pm, lib/Parrot/Optimizer.pm: Optimizer
5094           optimizer.pl is the stub, Parrot/Optimizer.pm is the driver.
5096           The optimizer performs its work on a file post-macro expansion.
5097           Run it on a .pasm file, preferably with some trivially reducible
5098         operations
5099           like 'add I0,5,-6' or 'mul I0,I1,0'
5101 2001-12-14 05:48  robert
5103         * Makefile.in: case error EXE -> exe
5105 2001-12-14 05:42  robert
5107         * Makefile.in: remove legacy PDISASM macro
5109 2001-12-14 04:01  dan
5111         * classes/Makefile.in, languages/Makefile.in: Makefile tweaks for
5112         better Win building
5114         Courtesy of: Garrett Goebel <garrett@scriptpro.com>
5116 2001-12-13 22:03  dan
5118         * Configure.pl, Makefile.in, Parrot/Test.pm,
5119         languages/scheme/Makefile, languages/scheme/Scheme/Test.pm,
5120         lib/Parrot/Test.pm: Parrot test prog's now a config variable, so we
5121         can change it without having to change the world.
5123 2001-12-13 21:57  dan
5125         * core.ops, interpreter.c, docs/parrot_assembly.pod,
5126         include/parrot/interpreter.h, t/op/debuginfo.t: Added current
5127         file/line/package to interp structure, with ops to get and set
5128         them. Now we can know where we are!
5130 2001-12-13 19:43  dan
5132         * Configure.pl, Makefile.in: Makefile tweaks to hopefully make
5133         WinXP builds work out of the box
5135 2001-12-13 17:05  dan
5137         * Makefile.in, Parrot/Test.pm, lib/Parrot/Test.pm: Change test prog
5138         name again--makes case-insensitive systems much happier.
5140 2001-12-13 16:21  dan
5142         * core.ops, key.c, string.c, test_main.c, trace.c,
5143         classes/Makefile.in, include/parrot/trace.h: Fixes to clean up
5144         compiler warnings
5146         Courtesy of: Josh Wilmes <josh@sky.net>
5148 2001-12-13 13:33  gregor
5150         * languages/jako/Makefile.in:
5151         Improved the method of calling the assembler.
5153 2001-12-13 13:30  gregor
5155         * languages/jako/Makefile.in:
5156         Improve the build process. It now works from the main parrot dir,
5157         and from the languages/jako directory. Now uses the .SUFFIXES
5158         target and generic build rules to reduce clutter in the
5159         Makefile.in.
5161 2001-12-13 13:29  gregor
5163         * languages/jako/.cvsignore:
5164         Ignore the (now generated Makefile), and don't ignore .list files
5165         anymore, since we aren't generating them.
5167 2001-12-13 13:11  gregor
5169         * Configure.pl, MANIFEST, Makefile.in, languages/.cvsignore,
5170         languages/Makefile.in, languages/jako/Makefile,
5171         languages/jako/Makefile.in:
5172         Added a 'languages' target to the top-level Makefile.in, and
5173         modified the jako build procedure to involve Makefile.in -->
5174         Makefile too (done by Configure.pl).
5176         NOTE: languages/jako and language/scheme are built.
5177         languages/miniperl wasn't building right, so it was left off for
5178         now.
5180 2001-12-13 12:15  gregor
5182         * MANIFEST:
5183         Added MAINTAINER file and mandelzoom.jako from languages/jako to
5184         the MANIFEST.
5186 2001-12-13 12:12  gregor
5188         * .cvsignore, MANIFEST, Makefile.in, core.ops, interpreter.c,
5189         ops2c-prederef.pl, ops2c.pl, test_main.c,
5190         include/parrot/interp_guts.h, include/parrot/interpreter.h,
5191         include/parrot/op.h, include/parrot/oplib/.cvsignore:
5192         Welcome to the Just-in-Time Predereferencing Patch!
5194         This patch implements a "predereferencing" mode for parrot. That
5195         means that a lot of the dereferencing you see in DO_OP and in the
5196         opfuncs is done up front (really, JIT) rather than as and each time
5197         we execute each op in the byte code stream.
5199         This works by creating an array of void pointers with the same
5200         number of elements as the byte code array. This array starts out
5201         life zero-initialized.  Each time we go to execute an op, we check
5202         first to see if we have a NULL pointer at *cur_opcode. If so, we
5203         know we haven't done our predereferencing yet (this is the JIT
5204         part), so we call the prederef() function with sufficient args that
5205         it can go look up opfunc pointers and op arg types and put the
5206         opfunc and arg pointers at cur_opcode[0] .. cur_opcode[N - 1],
5207         where N is the number of args (counting the op itself as one arg).
5209         We assume that sizeof(INTVAL) <= sizeof(void *), so we can continue
5210         to have inline INTVAL constants.
5212         I've been getting about a 22% speed increase over vanilla code path
5213         when I compile with -O0. Advantage decreases at -O9 here. I tested
5214         with mops.pbc, and also by temporarily putting the -P flag in
5215         Parrot/Test.pm and running all the tests. So, this code is as
5216         correct as the test suite can detect.
5218         Here's how it plays out in the code:
5220           * New script ops2c-prederef.pl
5222             Copy-paste code reuse from ops2c.pl. Modified to expect the
5223         args to give
5224             a void ** cur_opcode and to return a void **.
5226           * Modified ops2c.pl
5228               * opfuncs are now static. Who needs to call them by name from
5229         outside,
5230                 anyway? They are accessed via the opfunc table.
5232               * Some MACRO stuff to make things work whether we prederef or
5233         not. It
5234                 may be possible to get rid of these some day if other folks
5235         agree
5236                 that we should be using CODE object pointers + offsets as
5237         our PC
5238                 rather than raw pointers to either opcode_t's or (void *)'s
5239                 (depending on prederef mode or no).
5241           * core.ops modified to be usable to build both kinds of opfuncs.
5242         For now,
5243             this means:
5245               * calls to push_generic_entry(... cur_opcode ...) were
5246         changed to
5247                 push_generic_entry(... CUR_OPCODE ...), where CUR_OPCODE is
5248         a
5249                 macro that does the right thing in both kinds of ops.c
5250         files.
5252                 This is applicable to the bsr op. If we treated
5253         destinations as
5254                 (Code PMC + local offset) rather than as
5255         pointer-to-memory-somewhere,
5256                 this wouldn't be a big deal. We may need to do that at some
5257         point
5258                 anyway, so that when you jump around and return not only do
5259         you have
5260                 the right PC (pointer, today), but you also have the
5261         thread/interpreter
5262                 knowing what chunk of bytecode it is in at all times
5263         (assuming we'll
5264                 allow reflection, as in ops that query or affect the
5265         current CODE PMC).
5267               * runinterp was modified. Instead of copying the top-level
5268         PackFile struct
5269                 and blasting its byte_code pointer, we simply call runops
5270         on the new
5271                 interp, passing in the pointer to the current interp's code
5272         and the
5273                 offset into that code at which to start (this last arg used
5274         to be a
5275                 pointer PC, now its an offset PC).
5277           * include/parrot/op.h
5279               * new typedef for prederef opfuncs (they return void **)
5281           * include/parrot/interp_guts.h
5283               * New DO_OP_PREDEREF() macro described above.
5285           * include/parrot/interpreter.h
5287               * New prototype of runops() -- see below.
5289               * resume_addr field changed to resume_flag and resume_offset
5290         pair of fields.
5291                 We might be resuming from interp using prederef to one not
5292         or vice-versa,
5293                 so pointers between the two don't play nice together.
5294         Offsets are beautiful.
5296               * New PARROT_PREDEREF_FLAG constant
5298           * interpreter.c
5300               * include "parrot/oplib/core_ops_prederef.h"
5302               * prederef() function described above.
5304               * runops_prederef() runops variant. Uses DO_OP_PREDEREF()
5305         macro as its core.
5307               * runops() modified to take size_t CODE-relative offset PC
5308         rather than
5309                 pointer PC. This made other things workable and doesn't
5310         seem to have lost
5311                 anything important (IMO).
5313           * test_main.c
5315               * New flag '-P' to enable predereferencing.
5317           * Makefile modified to build core_ops_prederef.c from core.ops
5318         via
5319             ops2c-prederef.pl.
5321             BTW, also added missing $(INC)/interp_guts.h to H_FILES.
5323             Added core_ops_prederef$(O) to O_FILES
5325 2001-12-13 12:12  gregor
5327         * languages/jako/MAINTAINER:
5328         Thought it would be nice to put this right in the code...
5330 2001-12-13 04:36  jgoff
5332         * languages/miniperl/Miniperl/Generator.pm: Commented out
5333         debugging, fixed register spillover algorithm
5335 2001-12-13 04:23  jgoff
5337         * make.pl: Found and fixed obob in the parser (Wasn't parsing last
5338         line) Restructured a bit of the dependency generator to fix a
5339         different obob bug.
5341 2001-12-13 03:43  robert
5343         * MANIFEST, docs/opcodes.pod: remove old docs/opcodes.pod
5345 2001-12-13 03:03  jgoff
5347         * make.pl: Added make.pl
5349 2001-12-13 02:44  jgoff
5351         * languages/miniperl/Miniperl.pm: Nearly-complete 'make'
5352         replacement in perl.  Non-compliant bits - Takes absolutely -NO-
5353         special flags...                     - Dies on undefined macros
5354         such as $(PDISASM) in current make                     - Dies on
5355         recursive macro expansions                       (Doesn't test for
5356         mutual or multipart loops)                     - In general it
5357         seems to be a little less lenient...  Missing bits - File
5358         mod/creation times aren't being looked at              - Actions
5359         aren't being taken              - The few funky variables ($@, $<)
5360         aren't being dealt with Bugs - Line numbers are slipping a bit.
5362 2001-12-13 02:29  jgoff
5364         * languages/miniperl/Miniperl/: Generator.pm, Parser.pm:
5365         Reconstructing files to make the parser flow a little better.
5367 2001-12-13 00:51  dan
5369         * resources.c: Be a bit less wasteful with resources that don't
5370         need to be aligned
5372 2001-12-12 18:22  dan
5374         * Makefile.in: D'oh! Fixed looping makefile bug.
5376         Courtesy of: "Jaen Saul" <jaen@saul.ee>
5378 2001-12-12 16:23  jgoff
5380         * languages/miniperl/t/001_basic/basic1.scheme: Bogus entry
5382 2001-12-12 16:22  jgoff
5384         * MANIFEST: Manifest additions for languages/miniperl
5386 2001-12-12 16:19  jgoff
5388         * languages/miniperl/t/001_basic/: basic.t, basic1.scheme: Basic
5389         tests. These are left over from the Scheme suite and shouldn't be
5390         used yet.
5392 2001-12-12 16:18  jgoff
5394         * languages/miniperl/: Miniperl/Generator.pm, Miniperl/Parser.pm,
5395         Miniperl/Test.pm, Miniperl/Tokenizer.pm, t/harness: Miniperl base
5396         modules. Miniperl/ is where the real work gets done.  t/ is largely
5397         vacant because it isn't ready to survive real tests yet.
5399 2001-12-12 16:17  jgoff
5401         * languages/miniperl/: Makefile, Miniperl.pm, foo.mpl, miniperlc,
5402         mpc: Final go-round, hopefully.
5404         languages/miniperl/Makefile - Used basically to run tests, as there
5405         is nothing                               here that needs to be
5406         dynamically built.  languages/miniperl/Miniperl.pm - Stub module
5407         that calls the real Miniperl/ mods languages/miniperl/foo.mpl -
5408         Sample miniperl file.  languages/miniperl/miniperlc - Miniperl
5409         compiler stub
5411 2001-12-12 16:09  dan
5413         * Configure.pl: Setting a variable with the make command name is
5414         useful.
5416 2001-12-12 15:07  simon
5418         * Makefile.in, languages/jako/Makefile, languages/scheme/Makefile:
5419         Recursive make considered "ow, don't do that".
5421 2001-12-12 14:45  dan
5423         * Makefile.in: Makefile had some non-portable code. (Okay, a lot of
5424         non-portable code) Killing builds on Win32 native. Small patch
5425         applied which hopefully fixes it.
5427 2001-12-12 06:12  ajgough
5429         * classes/Makefile.in: perl is $(PERL), you know it makes sense.
5431 2001-12-12 06:08  ajgough
5433         * Makefile.in: perl is $(PERL).
5435 2001-12-12 06:00  ajgough
5437         * t/op/integer.t: Added tests to integer.t so that all permutations
5438         of arguments are actually called at some point.
5440 2001-12-12 05:18  ajgough
5442         * t/op/time.t: I can't sleep, but I don't see why parrot shouldn't.
5443          Tests for sleep i|ic
5445 2001-12-12 05:09  ajgough
5447         * t/op/stacks.t: Added pushp and popp register stack tests.
5449 2001-12-12 04:51  ajgough
5451         * t/op/stacks.t: Added tests for save and restore, for all register
5452         types.  Let there be Haiku.
5454 2001-12-12 04:27  ajgough
5456         * t/op/basic.t: bsr_i test.  You know you want it.
5458 2001-12-12 02:55  ajgough
5460         * MANIFEST: Added hints/os2.pl to MANIFEST.
5462 2001-12-12 02:52  jgoff
5464         * core.ops, key.c: Final checkin... These are actually the correct
5465         copies.
5467 2001-12-12 02:12  jgoff
5469         * include/parrot/key.h: key.c - Removed a few functions,
5470         generalized set_element_value and element_value         to accept
5471         KEY_PAIRs from core.ops include/parrot/key.h - Modified header.
5472         core.ops - Modified to accept the new return style.
5474         This is a prelude to adding virtual-table methods to allow hashing
5475         &c. Expect at least one or two more redesigns before this settles
5476         down. However, it still passes the original tests.
5478 2001-12-11 13:35  gregor
5480         * runops_cores.c:
5481         Fixed a typo.
5483 2001-12-11 12:03  gregor
5485         * .cvsignore:
5486         Don't ignore test_prog, but do ignore parrot.
5488 2001-12-11 12:03  gregor
5490         * classes/.cvsignore:
5491         Ignore the generated file default.h
5493 2001-12-11 04:07  jgoff
5495         * key.c: Key source
5497 2001-12-11 04:05  jgoff
5499         * include/parrot/key.h, t/op/key.t: Needed header file, new test
5501 2001-12-11 04:00  jgoff
5503         * core.ops: Added new key aggregate operations to core ops.
5505 2001-12-11 04:00  jgoff
5507         * include/parrot/parrot.h: Added key.h to header list
5509 2001-12-11 03:59  jgoff
5511         * MANIFEST: Added key.c, include/parrot/key.h, t/op/key.t
5513 2001-12-11 03:58  jgoff
5515         * Makefile.in: Added implementation of key aggregates.
5517 2001-12-08 23:07  simon
5519         * README:
5520         README good to go.
5522 2001-12-08 23:05  simon
5524         * Configure.pl, Makefile.in, README, Parrot/Test.pm,
5525         docs/intro.pod, languages/jako/Makefile, languages/scheme/Makefile,
5526         languages/scheme/Scheme/Test.pm, lib/Parrot/Test.pm:
5527         test_prog? What is test_prog?
5529 2001-12-08 22:57  simon
5531         * ChangeLog:
5533         Oops, the changelog commit was on *this* machine.
5535 2001-12-08 22:56  simon
5537         * NEWS:
5538         Updates to NEWS and ChangeLog pre-release.
5540 2001-12-08 22:07  simon
5542         * MANIFEST, Makefile.in, classes/Makefile.in, classes/default.pmc,
5543         classes/perlnum.pmc, classes/pmc2c.pl:
5544         Add "default" PMC vtable so you can inherit implied stuff.
5546 2001-12-08 21:24  simon
5548         * Parrot/PackFile.pm, docs/parrot.pod, docs/parrotbyte.pod,
5549         docs/vtables.pod, lib/Parrot/PackFile.pm:
5550         Getting the documentation up to scratch.
5552 2001-12-08 21:21  simon
5554         * classes/pmc2c.pl:
5555         Allow inheriting from default class.
5557 2001-12-07 20:43  gregor
5559         * examples/assembly/queens.pasm:
5560         Regenerated the file with the latest jakoc.
5562 2001-12-07 20:29  simon
5564         * core.ops, t/op/stacks.t:
5565         Rename "rotate" to "rotate_up".
5567 2001-12-07 20:15  simon
5569         * t/op/stacks.t:
5570         Some tests for rotate.
5572 2001-12-07 00:55  gregor
5574         * core.ops:
5575         Cast the result of the pointer arithmetic, since without the cast
5576         there are warnings with some compilers, and without the parens
5577         around the pointer arithmetic, precedence breaks the meaning and
5578         causes crashes.
5580 2001-12-06 23:37  simon
5582         * core.ops:
5583         Temporary. I prefer compiler warnings to segfaults, thanks.
5585 2001-12-06 23:34  simon
5587         * runops_cores.c:
5588         Make "trace" work again.
5590 2001-12-06 21:23  dan
5592         * Parrot/Test.pm, lib/Parrot/Test.pm: Undo twiddles to test.pm
5594 2001-12-06 21:22  dan
5596         * core.ops, packfile.c, Parrot/Test.pm, include/parrot/stacks.h,
5597         lib/Parrot/Test.pm: Fix up source issues that made Dec C unhappy
5599 2001-12-06 19:22  simon
5601         * core.ops:
5602         Yet another "How the *%$! did that compile?" moment.
5604 2001-12-06 18:28  dan
5606         * hints/vms.pl: Fix to build, with a HERE logical required
5608 2001-12-06 17:48  dan
5610         * core.ops, interpreter.c, pbc2c.pl, pdump.c, test_main.c,
5611         docs/parrot_assembly.pod, include/parrot/interpreter.h: Sensible
5612         changes to the interpreter--flags are now part of the interp
5613         structure.
5615         Courtesy of "Melvin Smith" <mrjoltcola@mindspring.com>
5617 2001-12-06 14:02  gregor
5619         * docs/intro.pod:
5620         s/little_languages/languages/ in Jako section.
5622 2001-12-06 13:15  simon
5624         * Makefile.in:
5625         Ensure the documentation gets made.
5627 2001-12-06 13:12  simon
5629         * MANIFEST, docs/intro.pod:
5630         Documentation! Added the "Some Assembly Required" article with
5631         minor updates.
5633 2001-12-06 00:39  simon
5635         * core.ops:
5636         More "eq" support.
5638         Courtesy of: Nguon Hao Ching <hao@netaxs.com>
5640 2001-12-06 00:37  simon
5642         * test_main.c:
5643         Add the "-d" debug flag. Doesn't actually *do* anything yet.
5645         Courtesy of: Melvin <mrjoltcola@mindspring.com>
5647 2001-12-06 00:11  tom
5649         * string.c, chartypes/unicode.c, chartypes/usascii.c,
5650         encodings/singlebyte.c, encodings/utf16.c, encodings/utf8.c,
5651         include/parrot/chartype.h, include/parrot/encoding.h,
5652         include/parrot/parrot.h: Moved string to number conversion code out
5653         of the encoding layer and into the main string layer as neither the
5654         encoding layer nor the character type layer knows enough on it's
5655         own to do the conversion correctly.
5657 2001-12-05 23:12  tom
5659         * Makefile.in: Rebuild the classes directory if any of the object
5660         files for the classes are missing rather than only when perlint.o
5661         is missing.
5663 2001-12-05 19:43  gregor
5665         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm:
5666           * Reworked the constantize_string() stuff a little bit because it
5667         was
5668             puking on things like "\033[H\033[2J\0" (which occurs in the
5669             languages/jako/mandelzoom.jako example).
5671 2001-12-05 19:39  gregor
5673         * languages/jako/: Makefile, mandelzoom.jako:
5674         Added 'mandelzoom' example.
5676 2001-12-05 19:38  gregor
5678         * languages/jako/jakoc:
5679           * Added sleep()
5681           * Changed some instances of die() to confess()
5683 2001-12-05 18:34  gregor
5685         * t/: op/pmc.t, pmc/pmc.t:
5686         s/sting->int/string->int/
5688 2001-12-05 18:08  gregor
5690         * Parrot/.cvsignore:
5691         Ignore PMC.pm
5693 2001-12-05 18:05  gregor
5695         * classes/.cvsignore:
5696         Ignore the generated files.
5698 2001-12-05 17:19  gregor
5700         * pbc2c.pl:
5701           * Reverted recent changes, since they broke the script. Real fix
5702         coming
5703             later.
5705 2001-12-05 17:03  simon
5707         * classes/Makefile.in:
5708         Remember: change Makefile.in, not Makefile. D'oh.
5710 2001-12-05 17:02  simon
5712         * Makefile.in:
5713         Ensure PMC.pm gets remade.
5715 2001-12-05 16:58  simon
5717         * MANIFEST, Makefile.in, classes/Makefile.in,
5718         classes/perlundef.pmc, include/parrot/pmc.h:
5719         Add perlundef class.
5721 2001-12-05 16:45  simon
5723         * core.ops:
5724         Document "new P0, foo"
5726 2001-12-05 16:43  simon
5728         * MANIFEST, Makefile.in, pbc2c.pl, pmc_pm.pl, Parrot/Assembler.pm,
5729         lib/Parrot/Assembler.pm, t/op/pmc.t, t/pmc/pmc.t:
5730         Allow assembler to know about PMC class names.
5732 2001-12-04 13:39  ajgough
5734         * MANIFEST: Added t/op/pmc.t to MANIFEST.
5736 2001-12-04 05:02  ajgough
5738         * classes/perlnum.pmc: Picky compiler pointed out probable thinko
5739         in perlnum.c
5741 2001-12-04 04:24  ajgough
5743         * encodings/singlebyte.c, t/op/pmc.t, t/pmc/pmc.t: A much less
5744         broken form of strtod and appropriate tests.  Does not yet check
5745         for overflow.
5747 2001-12-04 01:31  ajgough
5749         * string.c, encodings/singlebyte.c, encodings/utf16.c,
5750         encodings/utf8.c, include/parrot/encoding.h: Added length parameter
5751         to extract_num and extract_int string vtables, without this it
5752         would be impossible to have strings with nulls in while still
5753         knowing where they ended.
5755 2001-12-03 18:40  ajgough
5757         * string.c, classes/perlstring.pmc, encodings/singlebyte.c,
5758         encodings/utf16.c, encodings/utf8.c, include/parrot/encoding.h,
5759         include/parrot/string.h: Moved pmc string to number conversion into
5760         the string encoding tables.
5762 2001-12-03 00:21  ajgough
5764         * core.ops, t/op/pmc.t, t/pmc/pmc.t: Added set i, p and some tests
5765         for p-> integer.
5767 2001-12-02 23:09  jgoff
5769         * classes/Makefile.in: Removed some redundant targets.
5771 2001-12-02 19:02  ajgough
5773         * t/: op/pmc.t, pmc/pmc.t: Modified all pmc tests to make use of fp
5774         equality macro rather than using perl to generate expected output,
5775         all tests now have <<OUTPUT.
5777 2001-12-02 17:44  ajgough
5779         * t/op/trans.t: Upgraded fp_eq and fp_ne macros to be more useful
5780         for pmc.t as well.  Will probably move macros into another file at
5781         some point, although this might be best left until the tests are
5782         unperled.
5784 2001-12-02 06:16  jgoff
5786         * classes/pmc2c.pl: It wasn't properly setting the vtable index
5787         within Parrot_Perl{Class}_init.
5789 2001-12-02 06:09  jgoff
5791         * classes/Makefile.in: I seem to have removed *$(O) twice..
5793 2001-12-02 05:06  jgoff
5795         * Configure.pl, MANIFEST, Makefile.in: (Hopefully the last time...)
5796         Configure.pl - Removed '-I./include', added classes/Makefile
5797         generation MANIFEST     - Added classes/Makefile.in Makefile.in  -
5798         Removed old classes/* make stuff                Added target for
5799         classes/Makefile
5801 2001-12-02 04:48  jgoff
5803         * classes/Makefile.in: Going to be used shortly...
5805 2001-12-02 04:40  jgoff
5807         * docs/Makefile: Configure.pl - Added automatic makefile creation
5808         for docs/ and classes/                Removed '-I./include' because
5809         it was getting incorrectly                passed to classes/
5810         MANIFEST - added docs/Makefile.in, classes/Makefile.in Makefile.in
5811         - Removed classes/ build stuff, replaced with classes/Makefile.in
5812                     Added '-I./include' locally docs/Makefile - Should no
5813         longer be used, but I'm not brave enough to do a
5814         cvs delete.
5816 2001-12-02 01:21  ajgough
5818         * t/op/trans.t: Refactored trans math tests to have hard coded
5819         expected return values and be more ready to be unperled at some
5820         point in the future.  Added $fp_equality_macro which is a
5821         "nearly-equal-to" function.
5823 2001-12-02 01:18  ajgough
5825         * Makefile.in: Humph.  People really ought to use Makefile
5826         variables, s/perl/$(PERL)/ throughout.
5828 2001-12-01 18:15  jgoff
5830         * classes/: perlint.pmc, perlnum.pmc: Temporary patch until we
5831         figure out what to do vis-a-vis the lack of snprintf.
5833 2001-11-30 13:14  ajgough
5835         * t/op/: integer.t, number.t: Added tests for abs ops to number.t
5836         and integer.t
5838 2001-11-30 13:14  ajgough
5840         * core.ops: Added abs(i|n, i|ic|n|nc) ops to core.ops, using if <0
5841         -, else ... form.
5843 2001-11-30 10:36  simon
5845         * core.ops:
5846         Rewrite print_p to do the right thing.
5848 2001-11-30 06:21  jgoff
5850         * t/: op/pmc.t, pmc/pmc.t: New tests for integer/number/string
5851         concat,               integer/number/string math
5853 2001-11-30 06:20  jgoff
5855         * classes/: perlint.pmc, perlnum.pmc, perlstring.pmc:
5856         classes/perlint.pmc - Fixes and expanding for concat and math with
5857         strings classes/perlnum.pmc - Fixes and expanding for concat and
5858         math with strings classes/perlstring.pmc - Fixes and expanding for
5859         concat and math with strings
5861 2001-11-29 15:21  ajgough
5863         * hints/os2.pl: This is a hints file for os/2, I've set $c{perl} as
5864         $^X lies, which confused bash which make uses to run things when
5865         doing its stuff.
5867 2001-11-29 04:58  jgoff
5869         * classes/perlstring.pmc: Removed C++-style comments for good
5870         measure
5872 2001-11-29 04:51  jgoff
5874         * t/: op/pmc.t, pmc/pmc.t: New tests for PMC integers
5876 2001-11-29 04:28  jgoff
5878         * global_setup.c: Initialize PMC strings
5880 2001-11-29 04:25  jgoff
5882         * core.ops: Added set_p_s and set_p_sc, modified print_p to handle
5883         string PMCs.
5885 2001-11-29 04:24  jgoff
5887         * classes/: perlint.pmc, perlnum.pmc, perlstring.pmc: Changed PMC
5888         files to properly upgrade int to num, do calculations.  Also added
5889         basic string operations. Currently errors out on anything but set
5890         operations, but this will be fixed soon.
5892 2001-11-29 04:22  jgoff
5894         * Makefile.in: PMC .c files weren't getting cleaned out.
5896 2001-11-28 17:00  simon
5898         * t/harness:
5900         Make csh-glob happy.
5902         Courtesy of: Andy Dougherty: <doughera@lafayette.edu>
5904 2001-11-28 16:40  simon
5906         * classes/perlnum.pmc:
5908         De-C++
5910 2001-11-28 15:22  simon
5912         * string.c:
5914         Fixes Alex's string concat worry.
5916 2001-11-28 14:27  ajgough
5918         * t/op/string.t: test "null onto null" incorrectly passing as it
5919         produced no output.  Output provided.
5921 2001-11-28 11:14  simon
5923         * include/parrot/pmc.h:
5925         Placate AIX.
5927 2001-11-26 21:03  dan
5929         * MANIFEST, hints/darwin.pl: Tweaks to build on Mac OS X 10.1
5931 2001-11-26 17:29  simon
5933         * classes/perlint.pmc:
5935         Various subtle but non-showstopper bugs.
5937 2001-11-26 11:23  simon
5939         * classes/pmc2c.pl:
5941         Replace dependency on Text::Balanced
5943         Courtesy of: Bart Lateur <bart.lateur@pandora.be>
5945 2001-11-26 05:22  jgoff
5947         * global_setup.c: Last file that should need to be committed. I
5948         swear.
5950 2001-11-26 05:09  jgoff
5952         * core.ops: Let's try this again... Changes to core.ops required
5954 2001-11-26 04:58  jgoff
5956         * classes/perlint.pmc, classes/perlnum.pmc, t/op/pmc.t,
5957         t/pmc/pmc.t: Makefile.in - Added missing cleanup line for perl*.c
5958         core.ops - Added set(p,n|nc), modified print(p) global_setup.c -
5959         Uncommented PerlNum_init classes/perlint.pmc - Added set_number
5960         functions classes/perlnum.pmc - Set up basic number functions
5961         t/op/pmc.t - Added tests for set P0.<number> and {add,mul,sub,div}
5962         tests against numbers and numbers+integers
5964 2001-11-25 13:18  simon
5966         * Makefile.in:
5967         Windows XP make doesn't like $<
5969 2001-11-25 12:56  simon
5971         * MANIFEST, Makefile.in, classes/genclass.pl, classes/perlint.c,
5972         classes/perlint.pmc, classes/perlnum.c, classes/perlnum.pmc,
5973         classes/perlstring.c, classes/perlstring.pmc, classes/pmc2c.pl,
5974         examples/assembly/mops_p.pasm:
5975         PMC preprocessor.
5977         Courtesy of: Angel Faus <afaus@corp.vlex.com>
5979         I (Simon) also added a couple more integer methods, but no tests
5980         since I'm a Bad Person.
5982 2001-11-25 08:40  brentdax
5984         * ops2c.pl, Parrot/Op.pm, Parrot/OpsFile.pm, lib/Parrot/Op.pm,
5985         lib/Parrot/OpsFile.pm: Allow _ in op names
5987 2001-11-25 05:54  jgoff
5989         * classes/perlint.c, t/op/pmc.t, t/pmc/pmc.t: classes/perlint.c -
5990         Added basic math ops t/op/pmc.t - Added tests of basic math ops
5992 2001-11-23 18:27  simon
5994         * core.ops, classes/perlint.c, examples/assembly/mops_p.pasm:
5995         Add everything you need to make MOPS use PMCs.
5997 2001-11-23 18:06  simon
5999         * core.ops:
6000         Eh, you'll need this for rewriting mops.pasm.
6002 2001-11-23 17:55  simon
6004         * core.ops, classes/perlint.c, include/parrot/pmc.h, t/op/pmc.t,
6005         t/pmc/pmc.t:
6006         More work on integer PMCs.
6008 2001-11-23 17:29  simon
6010         * Makefile.in:
6011         Surprise! Whitespace! HLAGHLAGHLAGH
6013 2001-11-23 17:28  simon
6015         * Makefile.in, ops2c.pl, ops2pm.pl:
6016         Add vtables.ops to the core
6018         Courtesy of: Jeff Goff <jgoff@speakeasy.net>
6020 2001-11-22 18:39  simon
6022         * core.ops, global_setup.c, docs/parrot_assembly.pod, t/op/pmc.t,
6023         t/pmc/pmc.t:
6024         We can now create PMCs.
6026 2001-11-21 05:49  jgoff
6028         * Makefile.in: Makefile cleans up *.pasm *.pbc *.out
6030 2001-11-20 16:00  simon
6032         * docs/vtables.pod, include/parrot/pmc.h:
6033         Reorder PMC flags so there's a fixed number of user-defined flags.
6035         Courtesy of: Dave Mitchell <davem@fdgroup.co.uk>
6037 2001-11-19 03:39  jgoff
6039         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm, t/op/basic.t:
6040         Parrot/Assembler.pm - Allow "print 'foo'", and properly escape
6041         nested quotes.  t/op/basic.t - Add tests for single-quoted strings,
6042         escaped quotes, and proper                handling of newlines.
6044 2001-11-16 22:03  simon
6046         * classes/perlint.c:
6047         More work on the Perl Integer class. More needed, though.
6049 2001-11-16 21:57  simon
6051         * pmc.c, vtable.tbl, classes/genclass.pl, classes/perlint.c:
6052         Rename ->new to ->init, and rework pmc.c:pmc_new to fiddle it.
6054 2001-11-16 20:49  simon
6056         * interpreter.c, runops_cores.c, trace.c,
6057         include/parrot/runops_cores.h:
6058         Kill superfluous runops cores.
6060 2001-11-16 17:50  simon
6062         * MANIFEST, Makefile.in, classes/intclass.c, classes/perlint.c,
6063         classes/perlnum.c, classes/perlstring.c, classes/scalarclass.c,
6064         include/parrot/parrot.h, include/parrot/pmc.h:
6065         Skeleton for Perl scalar types, done right.
6067 2001-11-16 16:15  simon
6069         * classes/genclass.pl:
6070         This tidies up genclass to deal with the new-style multimethods.
6072 2001-11-16 15:29  simon
6074         * Makefile.in, make_vtable_ops.pl, vtable.tbl, Parrot/Vtable.pm,
6075         lib/Parrot/Vtable.pm, include/parrot/parrot.h:
6076         Rework multimethods to be *true* multimethods - that is, have
6077         different types.
6079 2001-11-15 22:29  simon
6081         * MANIFEST, Makefile.in, pmc.c:
6082         pmc.c linkage and support. Oh, and making it compile.
6084 2001-11-15 22:26  dan
6086         * t/op/interp.t: Forgot to tell CVS about the test...
6088 2001-11-15 22:10  dan
6090         * MANIFEST, Types_pm.in, core.ops, vtable_h.pl,
6091         docs/parrot_assembly.pod, include/parrot/string.h: Added in support
6092         for PMC registers for the interpreter.
6094         Added in the docs for the runinterp opcode.
6096         Added in code for both the newinterp and runinterp opcodes, so we
6097         can now create new interpreters from within parrot and have them do
6098         things. (Though we can't pass data back and forth. Yet)
6100 2001-11-15 21:24  simon
6102         * vtable.tbl, classes/scalarclass.c, docs/vtables.pod:
6103         More documentation, and other changes as discussed with Dan.
6105 2001-11-15 19:51  simon
6107         * classes/scalarclass.c:
6108         De-cut-and-pasto.
6110 2001-11-15 19:50  simon
6112         * classes/scalarclass.c:
6113         A little code tidiness.
6115 2001-11-15 19:33  simon
6117         * include/parrot/pmc.h:
6118         Missed this in the previous commit - un-constantize the base for
6119         user-defined PMC flags.
6121 2001-11-15 19:28  simon
6123         * classes/scalarclass.c:
6124         Hey look, sanity.
6126 2001-11-15 17:09  simon
6128         * classes/scalarclass.c:
6129         It seems I have completely forgotten how to write C.
6131 2001-11-15 16:53  simon
6133         * docs/vtables.pod:
6134         Start of the PMC classes documentation.
6136 2001-11-15 14:46  simon
6138         * classes/scalarclass.c:
6139         Changing to use a Perl-style struct instead of the union cache.
6141 2001-11-13 23:56  tom
6143         * string.c: Removed leading _ from string_index as function names
6144         starting with _ are reserved to implementors by the C standard.
6146         Also fixed string_index to use the encoding routines instead of
6147         assuming a single byte encoding.
6149 2001-11-13 12:59  jgoff
6151         * string.c: Patched string_concat to accept null strings.  That
6152         test was failing. Nothing to do with ord().
6154 2001-11-13 12:43  jgoff
6156         * string.c: string_ord function, string_concat fixes
6158 2001-11-13 04:52  jgoff
6160         * core.ops: Added ord to core.ops
6162 2001-11-13 04:35  jgoff
6164         * docs/strings.pod, include/parrot/exceptions.h,
6165         include/parrot/string.h, t/op/string.t: core.ops - Added ord
6166         operator, documentation string.c - Added string_ord, _string_index
6167         (_string_index is a static helper)              Patched
6168         string_concat to handle null strings properly.  docs/strings.pod -
6169         Description of string_ord include/parrot/exceptions.h - Added
6170         ORD_OUT_OF_STRING exception include/parrot/string.h - Added
6171         string_ord() t/op/string.t - Added full set of test for
6172         ord_i_(s|sc)(_(i|ic))?
6174         string.c contains a bit of documentation explaining the logic
6175         behind _string_index, primarily having to do with multiple encoding
6176         formats.
6178 2001-11-12 22:30  simon
6180         * t/op/macro.t:
6181         Count 'em.
6183 2001-11-12 22:28  simon
6185         * Makefile.in:
6186         Add a rule to compile "platform"
6188 2001-11-12 22:26  simon
6190         * Makefile.in:
6191         Tidy up distclean target.
6193 2001-11-12 16:54  dan
6195         * MANIFEST, Parrot/Assembler.pm, lib/Parrot/Assembler.pm,
6196         t/op/macro.t: Fixes to the assembler's macro facility and a test
6198         Courtesy of: Jeff <jgoff@speakeasy.net>
6200 2001-11-12 16:50  dan
6202         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm: Allow input from
6203         stdin
6205         Courtesy of: Jeff <jgoff@speakeasy.net>
6207 2001-11-12 16:36  dan
6209         * Parrot/Test.pm, lib/Parrot/Test.pm: Fix to make test work on
6210         CygWin
6212         Courtesy of: Alex Gough <alexander.gough@st-hughs.oxford.ac.uk>
6214 2001-11-12 11:22  simon
6216         * examples/assembly/mops.pasm:
6218         Trivial tightening of mops loop.
6220 2001-11-07 23:57  ajgough
6222         * docs/tests.pod: This is a basic quide to writing tests with
6223         assembler.
6225 2001-11-07 22:29  dan
6227         * stacks.c: Added a little documentation on the cleanup parameter
6228         for an entry
6230 2001-11-07 14:43  dan
6232         * MANIFEST, platforms/generic.c, platforms/linux.c,
6233         platforms/linux.h: Portability patches.
6235         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
6237 2001-11-06 19:51  tom
6239         * Makefile.in: Clean up object files in the subdirectories as well
6240         as those in the top level directory.
6242         Enhanced version of patch from Daniel Grunblatt
6243         <daniel@grunblatt.com.ar>
6245 2001-11-06 16:14  dan
6247         * Configure.pl, MANIFEST, Makefile.in, core.ops,
6248         platforms/generic.c, platforms/generic.h: Made things a bit more
6249         platform-independent. Makefile still needs work to pick up changes
6250         to the platform-specific files.
6252 2001-11-05 21:32  dan
6254         * docs/parrot_assembly.pod: Added docs for the GC control ops
6256 2001-11-04 02:52  gregor
6258         * platforms/: win32.c, win32.h:
6259           * win32 dynamic loading functions.
6261         Courtesy of Jason Diamond <jason@injektilo.org>
6263 2001-11-04 00:04  brentdax
6265         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm: Assembler fixes:
6266         allows an absolute path to be used and gives a useful error message
6267         if the original source file can't be found
6269 2001-11-02 12:37  gregor
6271         * platforms/: linux.c, linux.h:
6272           * Beginning of dynamic loading support. Linux only for now.
6274 2001-11-02 12:13  gregor
6276         * MANIFEST, time.c, include/parrot/time.h:
6277           * Removed time.[hc], since they have been superseded by the new
6278         platform
6279             stuff.
6281 2001-11-02 12:11  gregor
6283         * Configure.pl, Makefile.in, core.ops, vtable.tbl,
6284         classes/intclass.c, classes/scalarclass.c, hints/mswin32.pl,
6285         include/parrot/parrot.h, platforms/linux.c, platforms/linux.h,
6286         platforms/win32.c, platforms/win32.h:
6287         Patch from Jason Diamond to make win32 platform stuff work:
6289         * Modified Configure.pl, mswin32.pl, and Makefile.in so that the
6290         platform specific files in the platforms directory gets copied to
6291         the correct directories. The Makefile will re-copy the platform.h
6292         and .c files if the original is modified.
6294         * #include platform.h in parrot.h instead of time.h.
6296         * Removed time.h and time.obj from the Makefile. time.h and time.c
6297         aren't being used anymore since that code was moved to linux.c and
6298         win32.c.
6300         * Renamed the BOOL typedef in parrot.h to BOOLVAL (inspired by
6301         INTVAL and FLOATVAL). This was conflicting with the BOOL typedef in
6302         windows.h. This required updating several files besides parrot.h.
6304         * Added a DEFAULT_OPEN_MODE to linux.h and win32.h and used that
6305         instead of the missing identifiers (on Windows) in core.ops in the
6306         calls to open.
6308         * Added Parrot_sleep and Parrot_setenv to both the linux and win32
6309         platform files and called those from core.ops. The Linux code for
6310         these functions came from core.ops so they should hopefully work.
6312         Courtesy of Jason Diamond <jason@injektilo.org>
6314 2001-11-02 06:43  brentdax
6316         * Makefile.in, hints/mswin32.pl: Fix classes/intclass.obj building
6317         for Win32 (courtesy of Jason Diamond <jason@injektilo.org>)
6319 2001-11-02 02:26  gregor
6321         * .cvsignore, MANIFEST, include/parrot/.cvsignore,
6322         platforms/linux.c, platforms/linux.h, platforms/win32.c,
6323         platforms/win32.h:
6324           * Beginnings of platform support files in platform/*.[hc]
6326 2001-11-01 23:37  tom
6328         * classes/intclass.c: Added missing *'s to STRING arguments and
6329         return values to avoid compiler warnings.
6331 2001-11-01 22:21  gregor
6333         * MANIFEST, Makefile.in, core.ops, obscure.ops, time.c,
6334         include/parrot/parrot.h, include/parrot/time.h:
6335         Initial "fix" of time(n) op for Win32:
6337           * Initial Win32 code Courtesy of Richard J Cox <rjcox@cix.co.uk>
6339           * time.c and include/parrot/time.h
6341             First attempt at getting this working across platforms. The
6342             macro WIN32 being tested might not be right.
6344           * New functions Parrot_intval_time() and Parrot_floatval_time()
6345             wrap the appropriate functionality depending upon platform.
6346             Changed core.ops to call these.
6348         Added obscure.ops with obscure transcendental ops.
6350         Added simple file I/O ops (close, open, read, write):
6352           * Initial versions Courtesy of Jeff <jgoff@speakeasy.net>
6354           * I changed some arg ordering stuff.
6356           * I added read/write of INTVALs and FLOATVALs.
6358         Added environment variable ops (getenv, setenv)
6360         Added system error ops (err(i) and err(s) for accessing errno and
6361         strerr().
6363         Moved print ops in with other "temporary" developer ops, since
6364         they'll move to a devel.ops or temp.ops oplib once we have oplibs.
6366 2001-10-31 22:51  tom
6368         * MANIFEST, Makefile.in, chartype.c, encoding.c, global_setup.c,
6369         packfile.c, string.c, strnative.c, strutf16.c, strutf32.c,
6370         strutf8.c, transcode.c, chartypes/unicode.c, chartypes/usascii.c,
6371         encodings/singlebyte.c, encodings/utf16.c, encodings/utf32.c,
6372         encodings/utf8.c, include/parrot/chartype.h,
6373         include/parrot/encoding.h, include/parrot/exceptions.h,
6374         include/parrot/parrot.h, include/parrot/string.h,
6375         include/parrot/strnative.h, include/parrot/strutf16.h,
6376         include/parrot/strutf32.h, include/parrot/strutf8.h,
6377         include/parrot/transcode.h: Reworked the string code in line with
6378         Dan's latest design that separates character sets from encodings.
6380 2001-10-31 19:53  dan
6382         * docs/parrot_assembly.pod: Finished I/O section of docs
6384 2001-10-31 16:51  dan
6386         * core.ops, docs/parrot_assembly.pod, include/parrot/parrot.h:
6387         Moved includes out of core.ops and into parrot.h where they belong
6388         (suitably guarded with #ifdefs). Also some updates to
6389         parrot_assembly.pod
6391 2001-10-30 21:43  dan
6393         * core.ops, stacks.c, docs/parrot_assembly.pod,
6394         include/parrot/stacks.h: Added entrytype opcode to fetch the type
6395         of the entry on the stack
6397 2001-10-29 18:30  dan
6399         * stacks.c: You can turn off stack entry type validation on pop by
6400         passing in a type of 0 now. (For those cases where you just want to
6401         throw the darned thing away)
6403 2001-10-29 14:37  gregor
6405         * core.ops, languages/jako/jakoc:
6406           * New variants of the save ops to save constants on the stack.
6407         This is
6408             useful for saving zero arg and result counts on the stack, for
6409         example.
6411           * Modified jakoc to to adapt to the newly announced calling
6412         conventions.
6413             Even though Jako source code appears to show subroutines with
6414         fixed
6415             numbers of arguments and results, they are implemented with the
6416             variable count calling convention. Future modifications will be
6417         needed
6418             to ensure that an exception is raised if the stack frame is of
6419         the
6420             wrong size (or, at least that we pop the complete frame off).
6421         We'll
6422             also have to make more changes to support the true
6423         fixed-arg-count
6424             and fixed-result-count parts of the calling convention spec.
6426 2001-10-28 16:53  simon
6428         * MANIFEST, stacks.c, classes/scalarclass.c,
6429         include/parrot/stacks.h:
6430         Unbelievably bad errors of mine, plus a type incompatibility of
6431         Dan's.
6433 2001-10-28 08:30  simon
6435         * classes/scalarclass.c:
6436         Beginning of a scalar class.
6438 2001-10-28 08:29  simon
6440         * make_vtable_ops.pl, vtable.tbl, Parrot/Vtable.pm,
6441         lib/Parrot/Vtable.pm, classes/genclass.pl, classes/intclass.c,
6442         include/parrot/pmc.h:
6443         This fixes the problem with vtables and pointer arithmetic.
6445 2001-10-26 19:58  dan
6447         * core.ops, interpreter.c, stacks.c, include/parrot/interpreter.h,
6448         include/parrot/stacks.h: Split the generic stack into a user push
6449         stack and a control stack
6451 2001-10-26 02:59  bdwheele
6453         * Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm: [no log message]
6455 2001-10-24 20:27  dan
6457         * languages/scheme/: Makefile, Scheme.pm, schemec,
6458         Scheme/Generator.pm, Scheme/Parser.pm, Scheme/Test.pm,
6459         Scheme/Tokenizer.pm, t/harness, t/arith/basic.t, t/arith/logic.t,
6460         t/arith/nested.t, t/io/basic.t, t/logic/basic.t: Added the mini
6461         Scheme compiler
6463 2001-10-24 20:23  dan
6465         * MANIFEST, pdump.c, docs/parrot_assembly.pod: Update for
6466         interpreter needs in pdump.c. Added scheme bits to manifest
6468 2001-10-24 16:43  gregor
6470         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm:
6471           * Make the assembler handle octal character code escapes in
6472         string
6473             constants.
6475 2001-10-24 15:56  dan
6477         * MANIFEST, examples/assembly/life.pasm: Added an example in to
6478         play the game of life
6480 2001-10-24 15:54  dan
6482         * core.ops: Added sleep. We'll need to override this to do events
6483         properly anyway, so...
6485 2001-10-24 14:03  gregor
6487         * Makefile.in, pbc2c.pl, pdump.c:
6488           * Adapt pdump.c and pbc2c.pl to the new requirement to pass
6489         interpreter
6490             pointer into string functions.
6492         Courtesy of: Ryan O'Neil <talisman580@yahoo.com>
6494 2001-10-23 20:09  gregor
6496         * languages/jako/jakoc:
6497           * Terminological refinement in regexp capture comment.
6499 2001-10-23 15:23  simon
6501         * classes/genclass.pl:
6502         Use a saner ANSI C construct to make MIPSPro happy.
6504         Courtesy of: Alex Gough <alexander.gough@st-hughs.oxford.ac.uk>
6506 2001-10-23 00:34  tom
6508         * core.ops, string.c, strnative.c, strutf16.c, strutf32.c,
6509         strutf8.c, include/parrot/string.h: Make sure the interpreter
6510         structure is passed to the transcoder as necessary, including
6511         passing it to string_compare().
6513 2001-10-23 00:32  tom
6515         * Makefile.in: Make pdump build again by including resources.o in
6516         the link.
6518 2001-10-22 22:43  dan
6520         * core.ops, packfile.c, string.c, strnative.c, strutf16.c,
6521         strutf32.c, strutf8.c, test_main.c, transcode.c,
6522         include/parrot/packfile.h, include/parrot/parrot.h,
6523         include/parrot/resources.h, include/parrot/string.h,
6524         include/parrot/transcode.h: Everything now uses the allocators and
6525         deallocators in resources.c.
6527         Unfortunately we lost standalone string-test mode, but I can cope
6528         with that.
6530         Please note that until we have a real allocation/deallocation/GC
6531         system, this'll leak. A *lot*.
6533 2001-10-22 20:27  dan
6535         * MANIFEST, Makefile.in, pmc.c, resources.c,
6536         include/parrot/resources.h: First cut to handle arena allocation of
6537         PMC headers. (Amongst other things)
6539 2001-10-22 19:02  dan
6541         * Configure.pl, config_h.in, register.c, include/parrot/register.h:
6542         Now each register type has its own mask macro, which is the right
6543         thing to do.
6545         Patch courtesy of Jason Gloudon <perl@gloudon.com>
6547 2001-10-21 23:40  tom
6549         * stacks.c, t/op/stacks.t: Fix bug in handling of rollover to a new
6550         stack chunk and add a test to test this rollover in future.
6552         Courtesy of Jason Gloudon <perl@gloudon.com>.
6554 2001-10-21 19:14  dan
6556         * include/parrot/string.h: Changed string 'unused' field to the
6557         language field.
6559 2001-10-21 18:18  gregor
6561         * languages/jako/: Makefile, mops.jako:
6562           * Makefile: 'clean' target removes .list files, too. And, it does
6563         rm -f
6564             with wildcards rather than listing things explicitly.
6566           * mops.jako actually prints out the
6567         millions-of-operations-per-second
6568             (mops) value instead of just the operations-per-second value.
6570 2001-10-21 18:03  simon
6572         * classes/intclass.o:
6573         *smack*! WRONG!
6575 2001-10-21 17:47  simon
6577         * MANIFEST, Makefile.in, make_vtable_ops.pl, pmc.c, vtable_h.pl,
6578         Parrot/Vtable.pm, classes/genclass.pl, classes/intclass.c,
6579         classes/intclass.o, include/parrot/parrot.h, include/parrot/pmc.h,
6580         lib/Parrot/Vtable.pm:
6581         Initial work on PMCs. Explanation to follow
6583 2001-10-21 15:20  gregor
6585         * examples/assembly/queens.pasm:
6586           * Modernize the calling conventions in queens.pasm. It was using
6587         swap,
6588             which now must be rotate. Also, changed to use return values on
6589         the
6590             stack instead of in I0.
6592 2001-10-19 18:14  gregor
6594         * core.ops, stacks.c, include/parrot/stacks.h,
6595         languages/jako/jakoc:
6596         Per Dan's request, replacing 'swap' op by 'rotate'.
6598           * core.ops: Replaced 'swap()' by 'rotate(i|ic)'.
6600           * stacks.c and stacks.h: Removed swap-related functions from my
6601             prior commit, replacing them with stack_depth(), stack_entry()
6602             and rotate_entries().
6604             NOTE: The stack_depth() and rotate_entries() routines could
6605             be made more efficient through the caching of the sum of chunk
6606             'used' members from lower chunks in a field in the upper
6607             chunks. Also, if the interpreter's stack_base was changed to
6608             hold the pointer to the *top* chunk (since we usually come
6609             at the stack from the top down) instead of the *bottom*
6610             chunk. The code here at least works, and we can decide about
6611             bigger changes separately.
6613             For now, rotate only handles rotates in one direction and
6614             of magnituded one. A fully general rotate would do handle
6615             rotates in both directions and of arbitrary amounts. Again,
6616             this implementation is sufficient for current applications,
6617             and a feature-complete version can be developed if this turns
6618             out to be otherwise the right type of implementation.
6620             This change includes a new exception for ERROR_STACK_SHALLOW,
6621             meaning "not-empty-yet-not-deep-enough-for-what-you-asked".
6623           * jakoc: Changed the calling convention to use rotate instead
6624             of swap (of course). Also changed the convention for return
6625             value passing to use the stack as well.
6627 2001-10-19 13:36  gregor
6629         * MANIFEST, core.ops, disassemble.pl, stacks.c,
6630         examples/assembly/queens.pasm, include/parrot/stacks.h,
6631         languages/jako/.cvsignore, languages/jako/Makefile,
6632         languages/jako/bench.jako, languages/jako/euclid.jako,
6633         languages/jako/fact.jako, languages/jako/jakoc,
6634         languages/jako/mandelbrot.jako, languages/jako/mops.jako,
6635         languages/jako/primes.jako, languages/jako/queens.jako,
6636         languages/jako/sub.jako:
6637           * New stack functions push_entry(), pop_entry() and swap_entry().
6638             The first two exist for the support of the last one. These
6639             functions don't care what is in the stack entries. These exist
6640             to support the new 'swap' op (see next bullet).
6642           * New op 'swap' for swapping the top two elements on the stack.
6643             This is necessary for passing arguments to functions, since
6644             the return address will be on top of any arguments that have
6645             been pushed on the stack. This way, you can use a (swap, pop)
6646             pair to retrieve each argument (for subroutine linkage).
6648           * Disassembler now prints numbers in decimal by default, with
6649             a new '-x' flag to turn on hexadecimal display. Since other
6650             members of the Parrot Tool Set use decimal by default, this
6651             makes it easier to compare output from the various tools.
6653           * Jako compiler has more explanatory comments and the following
6654             new features:
6656               * Lexically scoped variables.
6658               * Subroutines that take arguments and return values:
6660                   sub int foo(int bar) {
6661                     if (bar == 1) {
6662                       return 42;
6663                     } else {
6664                       return 13;
6665                     }
6666                   }
6667               * ... if (...) and ... unless (...) statement modifiers
6668                 can be used on next, last and redo.
6670               * Bitwise and (&, &=) and or (|, |=) ops.
6672               * Type names are just 'int', 'num', 'str', and 'poly' now.
6673                 The old long names 'integer', 'number', 'string', and
6674                 'polytype' are no longer valid.
6676               * Integer variable assignments can now use 0b (binary),
6677                 0 (octal) and 0x (hexadecimal) radix prefixes on literals.
6679           * New Jako and Parrot assembly examples queens.{jako,pasm} for
6680             solving the eight-queens problem. The assembly example is a
6681             hand-modified version of the assembly code produced by the
6682             Jako compiler from queens.jako. A few unnecessary ops have
6683             been removed, lots of unnecessary labels have been removed,
6684             and all the Jako source code comments have been removed.
6686           * Makefile and .cvsignore in languages/jako modified so that
6687             the assembler produces listings when assembling the programs,
6688             yet the *.list files are ignored by CVS.
6690           * Made the default target in languages/jako/Makefile 'all'.
6692           * Modified some of the Jako examples to use some of the new
6693             features of Jako, such as subroutines and lexical variable
6694             scoping.
6696 2001-10-19 02:43  gregor
6698         * runops_cores.c, include/parrot/runops_cores.h:
6699         Bug fix (gcc doesn't complain, but MIPSpro does):
6701           * Added missing extern to runops_cores array declaration in
6702             include/parrot/runops_cores.h
6704           * Also added 'const' there and in runops_cores.c
6706 2001-10-18 15:18  gregor
6708         * .cvsignore, include/parrot/oplib/.cvsignore:
6709           * Ignore the vtable-related generated files.
6711 2001-10-18 15:14  gregor
6713         * core.ops:
6714           * left and right shifts now allow the 2nd argument to be a
6715         constant.
6717 2001-10-18 14:55  simon
6719         * make_vtable_ops.pl:
6720         This is C, not Perl. How on earth did that even compile?
6722 2001-10-18 14:54  simon
6724         * make_vtable_ops.pl:
6725         More vtable ops.
6727 2001-10-18 12:33  simon
6729         * Makefile.in, make_vtable_ops.pl, vtable.tbl:
6730         Initial stab at vtable opcode creation stuff.
6732 2001-10-18 02:15  gregor
6734         * MANIFEST, Makefile.in, interpreter.c, runops_cores.c, trace.c,
6735         include/parrot/interpreter.h, include/parrot/runops_cores.h,
6736         include/parrot/trace.h: Preparation for autogenerated runops cores:
6738           * Split tracing and runops core stuff out of interpreter.c into
6739             trace.c and runops_cores.c
6741           * Similar split of stuff from include/parrot/interpreter.h
6743           * Manifest and Makefile.in updates to make things still compile.
6745 2001-10-18 01:21  gregor
6747         * Makefile.in, ops2c.pl, ops2pm.pl, pbc2c.pl: Bug fixes:
6749           * Makefile.in: examples/assembly/mops.c depends on pbc2c.pl
6751           * Makefile.in: Parrot/OpLib/core.pm depends on ops2pm.pl
6753           * ops2c.pl: Added second arg to mkdir (perl 5.005_02 complains)
6755           * ops2pm.pl: Added second arg to mkdir (perl 5.005_02 complains)
6757           * pbc2c.pl: Removed explicit include of <math.h>, replacing it
6758         with
6759             copy of $ops->preamble.
6761 2001-10-17 22:32  bdwheele
6763         * interpreter.c: Moved op dump code into trace_op_dump, per Dan's
6764         request.
6766 2001-10-17 22:08  gregor
6768         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm:
6769           * Now handles label-and-comment-only lines.
6771 2001-10-17 22:04  bdwheele
6773         * interpreter.c: added more comprehensive trace output
6775 2001-10-17 16:50  tom
6777         * Makefile.in: Removed the explicit rule for building mops.o from
6778         mops.c so that the implicit rule for compiling C files is used
6779         instead. This means that the chosen C flags are used, including any
6780         optimisation options.
6782 2001-10-17 15:24  tom
6784         * core.ops, Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm: Enhanced the
6785         op explosion logic to be able to handle exploding this:
6787           sub(i, i|ic, i|ic)
6789         into these:
6791           sub(i, i, i)
6792           sub(i, i, ic)
6793           sub(i, ic, i)
6795         without also generating this unwanted version:
6797           sub(i, ic, ic)
6799         The enhanced version rejects any expansion where there is more than
6800         one expanded argument and all the expanded arguments are constants.
6802 2001-10-17 14:20  simon
6804         * Makefile.in, ops2c.pl, ops2pm.pl, examples/assembly/Makefile:
6805         Build fixes to use correct Perl version and ensure that things are
6806         running in the right directory.
6808         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
6810 2001-10-17 13:16  simon
6812         * Makefile.in:
6813         core.pm is more critical than that.
6815 2001-10-17 13:05  simon
6817         * core.ops, Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm:
6818         "Explode" ops into multiple versions for different parameters.
6820         Courtesy of: Tom Hughes <tom@compton.nu>
6822 2001-10-17 12:54  simon
6824         * Makefile.in:
6825         Fix dependencies and cleaning.
6827 2001-10-17 12:45  simon
6829         * Configure.pl, Makefile.in:
6830         Fixes to make Parrot compile without the temporary build hack
6832         Courtesy of: Jason Gloudon <perl@gloudon.com>
6834 2001-10-16 20:43  gregor
6836         * Makefile.in:
6837           * Fixed dependencies for building Parrot/OpLib/core.pm
6839 2001-10-16 19:35  bdwheele
6841         * core.ops, t/op/string.t: Changed set s,sc to use string_copy &
6842         added test, thanks to Alex Gough
6844 2001-10-16 16:49  bdwheele
6846         * core.ops: added opcode variants for constants and 3 arg concat
6848 2001-10-16 15:12  bdwheele
6850         * core.ops: added "set Sx,Sy" as a string copy to match the other
6851         register-to-register copies available
6853 2001-10-16 13:09  gregor
6855         * core.ops:
6856           * Added #include <sys/time.h> in the preamble for gettimeofday().
6858 2001-10-16 13:09  gregor
6860         * Makefile.in:
6861           * Removed cd t; make, which no longer applies
6863 2001-10-16 03:18  bdwheele
6865         * core.ops: fix save & restore operations to push correct type onto
6866         stack. [good eye to Jason Gloudon for noticing this]
6868 2001-10-16 01:38  bdwheele
6870         * core.ops, register.c, examples/assembly/fact.pasm,
6871         include/parrot/register.h: send in the clones:  clone routines for
6872         parrot + example program
6874 2001-10-15 22:37  gregor
6876         * MANIFEST, Makefile.in, examples/assembly/.cvsignore,
6877         examples/assembly/Makefile, examples/assembly/bsr.pasm,
6878         examples/assembly/call.pasm, examples/assembly/euclid.pasm,
6879         examples/assembly/jump.pasm, examples/assembly/local_label.pasm,
6880         examples/assembly/mops.pasm, examples/assembly/stack.pasm,
6881         examples/assembly/substr.pasm, examples/assembly/trace.pasm,
6882         t/.cvsignore, t/Makefile, t/call.pasm, t/euclid.pasm, t/jump.pasm,
6883         t/local_label.pasm, t/test.pasm, t/test2.pasm, t/test3.pasm,
6884         t/test4.pasm, t/test5.pasm, t/trace.pasm:
6885           * Moved examples from t/*.pasm to examples/assembly/*.pasm, with
6886         some
6887             renames so the names match what they demonstrate.
6889 2001-10-15 22:18  gregor
6891         * core.ops, t/test.pasm:
6892           * time_n uses gettimeofday() to get sub-second times.
6894           * t/test.pasm uses time_n directly rather than doing int stuff
6895         and
6896             converting to num later.
6898 2001-10-15 12:28  gregor
6900         * t/: test.pasm, test2.pasm, trace.pasm:
6901           * t/test.pasm prints using string constants instead of string
6902         regs.
6904           * t/test2.pasm assembles (using implicit op modes)
6906           * t/trace.pasm updated for new behavior of trace_ic, which does
6907         not
6908             require an 'end' after 'trace'.
6910 2001-10-15 00:47  gregor
6912         * core.ops, interpreter.c, test_main.c,
6913         include/parrot/interpreter.h, t/test.pasm:   * New interpreter flag
6914         PARROT_PROFILE_FLAG
6916           * New runops cores to handle profiling
6918           * Support for -p flag in test_prog to enable profiling
6920           * New profile_ic op to control profiling at run-time
6922 2001-10-14 21:54  gregor
6924         * core.ops, Parrot/OpsFile.pm, docs/.cvsignore, docs/Makefile,
6925         lib/Parrot/OpsFile.pm: Integrated op documentation.
6927           * core.ops now contains POD documentation of ops, interspersed
6928         with the
6929             ops themselves
6931           * Ops are organized into POD =head2 sections
6933           * Parrot/OpsFile.pm now treats the preamble of the ops file as
6934         anything
6935             up to the first POD directive OR op definition.
6937           * docs/Makefile now generates core_ops.pod from core.ops vi
6938         perldoc -u.
6940 2001-10-14 11:58  simon
6942         * Makefile.in:
6943         Unbreak Digital Un^W^WTru64
6945 2001-10-14 11:00  simon
6947         * Configure.pl:
6948         Remove weird typo.
6950 2001-10-14 10:56  tom
6952         * Configure.pl: Stop Configure trying to make op_info.c and op.h as
6953         op_info.c no longer exists and op.h is no longer a generated file.
6955 2001-10-14 10:54  tom
6957         * Makefile.in: Added vtable.h to the list of things removed by the
6958         clean target.
6960 2001-10-14 01:43  gregor
6962         * .cvsignore, MANIFEST, Makefile.in, basic_opcodes.ops,
6963         build_interp_starter.pl, core.ops, disassemble.pl, interpreter.c,
6964         make_op_header.pl, memory.c, opcheck.pl, opcode_table, ops2c.pl,
6965         ops2pm.pl, packfile.c, pbc2c.pl, process_opfunc.pl,
6966         Parrot/Assembler.pm, Parrot/Op.pm, Parrot/OpsFile.pm,
6967         Parrot/OpLib/.cvsignore, lib/Parrot/Assembler.pm, lib/Parrot/Op.pm,
6968         lib/Parrot/OpsFile.pm, lib/Parrot/OpLib/.cvsignore,
6969         include/parrot/.cvsignore, include/parrot/interp_guts.h,
6970         include/parrot/interpreter.h, include/parrot/op.h,
6971         include/parrot/oplib/.cvsignore, t/.cvsignore, t/Makefile,
6972         t/euclid.pasm, t/test.pasm, t/op/integer.t, t/op/number.t,
6973         t/op/stacks.t, t/op/string.t, t/op/trans.t:
6974         Moby Patch:
6976           * basic_opcodes.ops and opcode_table replaced by core.ops
6978           * process_opfunc.pl replaced by Parrot/OpsFile.pm, Parrot/Op.pm,
6979             and ops2c.pl. These convert *.ops to *_ops.c and
6980             include/parrot/oplib/*_ops.h
6982           * New ops2pm.pl converts *.ops to Parrot/OpLib/*.pm
6984           * disassemble.pl modified to use
6986           * interpreter.c modified to use structures in core_ops.c instead
6987             of the old op_info and op_func stuff. We're not yet to the
6988             point of handling multiple oplibs at a time, but we are getting
6989             there...
6991             Fingerprinting stuff disabled for now. We used to go off
6992             opcode_table. We need to rethink this. I have some ideas to
6993             make it unnecessary, but it remains to be seen whether others
6994             will like the direction they take us.
6996             Termination condition for while(){} loop in runops is now
6997             (pc) instead of (*pc). Any op can cause a HALT by returning
6998             a NULL pointer. Ops end, bounds and trace all do this. So, now
6999             the 'end' op body is actually executed, although all it does
7000             is HALT.
7002           * Makefile.in modified to perform a test build using pbc2c.pl,
7003             which is the bytecode --> C compiler I've posted to the
7004             list before.
7006           * Op full names are now autogenerated. Op root names must not
7007             contain underscores, so some op renamings have happened.
7008             Such as clear_i becoming cleari.
7010 2001-10-13 11:49  simon
7012         * Configure.pl, MANIFEST:
7013         Make parrot actually build again.
7015 2001-10-12 21:34  dan
7017         * docs/parrot_assembly.pod: Added docs for the new save/restore/bsr
7018         opcodes
7020 2001-10-12 20:56  dan
7022         * MANIFEST, Makefile.in, basic_opcodes.ops, interpreter.c,
7023         opcode_table, process_opfunc.pl, stacks.c, include/parrot/stacks.h,
7024         t/test3.pasm, t/test4.pasm, t/test5.pasm: Changes to support
7025         generic stack now in. We also have subroutines, of a simple sort!
7027 2001-10-12 19:15  tom
7029         * t/op/string.t: Improved string comparison tests try all string
7030         combinations with each of the comparison ops.
7032 2001-10-12 19:09  dan
7034         * interpreter.c: Properly sets up generic stack now
7036 2001-10-12 19:09  dan
7038         * include/parrot/interpreter.h: Fixed stack chunk struct type in
7039         interpreter structure
7041 2001-10-12 18:59  dan
7043         * stacks.c, include/parrot/parrot.h, include/parrot/stacks.h: More
7044         changes to get the generic stack working
7046 2001-10-12 18:59  dan
7048         * Configure.pl, MANIFEST, config_h.in, testparrotsizes_c.in,
7049         hints/vms.pl: Made the changes to figure out mask bits for various
7050         register and stack chunks
7052 2001-10-11 22:09  dan
7054         * docs/parrot_assembly.pod: Tossed the parameter for return
7056 2001-10-11 19:28  tom
7058         * strnative.c: Assignment, not comparison.  (Plus formatted for
7059         coding standards)
7061         Courtesy of Bryan C. Warnock
7063 2001-10-10 19:21  tom
7065         * basic_opcodes.ops, opcode_table, string.c, strnative.c,
7066         strutf16.c, strutf32.c, strutf8.c, docs/strings.pod,
7067         include/parrot/string.h, t/op/string.t: Added support for string
7068         comparisons and extended the comparison ops to include comparison
7069         of strings.
7071 2001-10-10 17:58  dan
7073         * MANIFEST: Shouldn't have added vtable.h to the manifest...
7075 2001-10-10 17:54  dan
7077         * MANIFEST, stacks.c, vtable_h.pl, Parrot/Vtable.pm,
7078         lib/Parrot/Vtable.pm: Now spits out the #defines for the various
7079         vtable type entries properly
7081 2001-10-10 15:37  dan
7083         * Parrot/Vtable.pm, lib/Parrot/Vtable.pm: Re-enabled change to
7084         parse new vtable.tbl file now that I've actually checked *in* the
7085         new format vtable.tbl file...
7087 2001-10-10 15:32  dan
7089         * vtable.tbl: New Column to indicate the type of the vtabel entry
7090         so we can know how many slots it takes
7092 2001-10-10 05:26  thgibbs
7094         * Parrot/Vtable.pm, lib/Parrot/Vtable.pm, vtable_h.pl: Patch to
7095         allow parrot to compile.  PACKAGE is not defined, therefore, I
7096         added a struct before it to have it not complain until we define
7097         PACKAGE.  Also, there was an extra shift in Vtable.pm and a missing
7098         semicolon at the end of the struct declaration.
7100 2001-10-10 05:09  thgibbs
7102         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm: This patch makes
7103         string constants of the form U"string" become unicode encoded
7104         parrot strings and the form N"string" become native encoded parrot
7105         strings.
7107         Courtesy of: Tom Hughes <tom@compton.nu>
7109 2001-10-10 04:55  dan
7111         * vtable_h.pl, Parrot/Vtable.pm, lib/Parrot/Vtable.pm: Start of
7112         support for generating the vtable function table offset macros
7114 2001-10-10 01:05  simon
7116         * t/op/integer.t:
7117         The test for cmod_i was using the 'mod Ix, Ix, Ix' form which
7118         compiles into the mod op, not the cmod_i op, hence wasn't testing
7119         what it thought it was.
7121         Courtesy of: Alex Gough <alexander.gough@st-hughs.oxford.ac.uk>
7123 2001-10-09 03:45  thgibbs
7125         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm: Patch to allow
7126         assembler to generate unicode strings.
7128         Courtesy of: Tom Hughes <tom@compton.nu>
7130 2001-10-08 19:30  brentdax
7132         * Configure.pl, test_c.in, hints/vms.pl: Cleaner VMS support, more
7133         info for Parrot::Config to remember, more flexible test.c stuff
7135 2001-10-08 15:04  gregor
7137         * basic_opcodes.ops:
7138           * Removed trash from early mod_i experiments (pardon our dust)
7140 2001-10-08 14:56  gregor
7142         * basic_opcodes.ops:
7143           * Fixed a couple of typos.
7145 2001-10-08 14:45  gregor
7147         * basic_opcodes.ops, opcode_table, t/op/integer.t, t/op/number.t:
7148         Arithmetic enhancements:
7150           * Renamed existing mod_i as cmod_i and added "corrected" mod_i:
7152             NOTE: This "uncorrected mod" algorithm uses the C language's
7153         built-in
7154             mod operator (x % y), which is
7156                 ... the remainder when x is divided by y, and thus is zero
7157         when y
7158                 divides x exactly.
7159                 ...
7160                 The direction of truncation for / and teh sign of the
7161         result for %
7162                 are machine-dependent for negative operands, as is the
7163         action taken
7164                 on overflow or underflow.
7165                                                                      --
7166         [1], page 41
7168             Also:
7170                 ... if the second operand is 0, the result is undefined.
7171         Otherwise, it
7172                 is always true that (a/b)*b + a%b is equal to z. I both
7173         operands are
7174                 non-negative, then teh remainder is non-negative and
7175         smaller than the
7176                 divisor; if not, it is guaranteed only that the absolute
7177         value of the
7178                 remainder is smaller than the absolute value of the
7179         divisor.
7180                                                                      --
7181         [1], page 205
7183             This op is provided for those who need it (such as
7184         speed-sensitive
7185             applications with heavy use of mod, but using it only with
7186         positive
7187             arguments), but a more mathematically useful numeric mod based
7188         on
7189             floor(x/y) and defined with y == 0 is provided by the mod_i op.
7191               [1] Brian W. Kernighan and Dennis M. Ritchie, *The C
7192         Programming
7193                   Language*, Second Edition. Prentice Hall, 1988.
7195           * Added "corrected" mod_i:
7197             NOTE: This "corrected mod" algorithm is based on the C code on
7198         page 70
7199             of [1]. Assuming correct behavior of C's built-in mod operator
7200         (%) with
7201             positive arguments, this algorithm implements a mathematically
7202         convenient
7203             version of mod, defined thus:
7205               x mod y = x - y * floor(x / y)
7207             For more information on this definition of mod, see section 3.4
7208         of [2],
7209             pages 81-85.
7211             References:
7213               [1] Donald E. Knuth, *MMIXware: A RISC Computer for the Third
7214                   Millennium* Springer, 1999.
7216               [2] Ronald L. Graham, Donald E. Knuth and Oren Patashnik,
7217         *Concrete
7218                   Mathematics*, Second Edition. Addison-Wesley, 1994.
7220           * Added mod_n, using the same formula as above, but with FLOATVAL
7221             arguments.
7223           * Added cmod_n, using the C math library's fmod() function:
7225             NOTE: This "uncorrected mod" algorithm uses the built-in C math
7226         library's
7227             fmod() function, which computes
7229                 ... the remainder of dividing x by y. The return value is x
7230         - n * y,
7231                 where n is the quotient of x / y, rounded towards zero to
7232         an
7233                 integer.
7234                                                 -- fmod() manpage on RedHat
7235         Linux 7.0
7237             In addition, fmod() returns
7239                 the remainder, unless y is zero, when the function fails
7240         and errno
7241                 is set.
7243             According to page 251 of [1], the result when y is zero is
7244         implementation-
7245             defined.
7247             This op is provided for those who need it, but a more
7248         mathematically
7249             useful numeric mod based on floor(x/y) instead of truncate(x/y)
7250         and
7251             defined with y == 0 is provided by the mod_n op.
7253               [1] Brian W. Kernighan and Dennis M. Ritchie, *The C
7254         Programming
7255                   Language*, Second Edition. Prentice Hall, 1988.
7257           * Added and modified tests as appropriate for the above.
7259 2001-10-08 08:49  thgibbs
7261         * include/parrot/exceptions.h, include/parrot/parrot.h,
7262         include/parrot/string.h, include/parrot/strutf16.h,
7263         include/parrot/strutf32.h, include/parrot/strutf8.h,
7264         include/parrot/transcode.h, include/parrot/unicode.h, MANIFEST,
7265         Makefile.in, global_setup.c, string.c, strnative.c, transcode.c,
7266         strutf16.c, strutf32.c, strutf8.c: Added code to handle unicode
7267         strings for utf8, utf16, and utf32.
7269         Courtesy of: Tom Hughes <tom@compton.nu>
7271 2001-10-08 08:10  thgibbs
7273         * memory.c: Fixed uninitialized variables.
7275         Courtesy of: Bryan C. Warnock <bwarnock@raba.com>
7277 2001-10-08 01:21  gregor
7279         * packfile.c:   * Casting a return value
7281           * Potential uninitialized variable fix
7283         Courtesy of Bryan C. Warnock <bwarnock@raba.com>
7285 2001-10-08 01:15  gregor
7287         * packfile.c, test_main.c: One of Bryan's languishing patches (with
7288         a few tweaks of my own):
7290           * Line wrapping
7292           * Printf format fixes
7294         Courtesy of: Bryan C. Warnock <bwarnock@raba.com>
7296 2001-10-07 22:39  thgibbs
7298         * build_interp_starter.pl: No longer adds (void*) casts to
7299         interp_guts.c function table as they are not necessary in ANSI C.
7301 2001-10-07 16:27  gregor
7303         * basic_opcodes.ops, interpreter.c, opcode_table,
7304         process_opfunc.pl, test_main.c, include/parrot/interpreter.h,
7305         t/trace.pasm:
7306           * Two new ops, trace_ic and bounds_ic that twiddle bits in
7307             interpreter->flags and set interpreter->resume_addr.
7309           * Two new runops core variants, so now we cover the relevant
7310             flag space over {trace, notrace} x {boundscheck, noboundscheck}
7312           * Runops core selection that converts the flags into an index
7313         into
7314             a core table (runops_cores) to get the core function pointer.
7316           * A new trace_op variant that doesn't do bounds checking (used by
7317             the non-bounds-checking-but-tracing runops core).
7319           * PC is passed into the cores so that they can be used when
7320             resuming (they used to assume starting at the beginning of the
7321             code, which would thwart resumption).
7323           * runops() itself is changed to have a while() loop in it so that
7324             any time we drop out of the core, we'll resume if we have an
7325             interpreter->resume_addr set (after reselecting the core,
7326         though).
7328           * process_opfunc.pl has a new "macro": RESUME(), that sets up
7329             interpreter->resume_addr. This is used by the new ops. The new
7330             ops still return the new PC as the next op (which MUST be an
7331             'end' op to force the core loop to terminate -- *pc being false
7332             is the only termination condition we can count on for all
7333         cores).
7335           * New interpreter flag: PARROT_BOUNDS_FLAG, used to control
7336             bounds checking core selection.
7338           * test_prog now has a '-b' flag in addition to the '-t' flag.
7339         Now,
7340             bounds checking is off by default (I saw a performance boost:
7341             6.3 Mop/s with -b, 7.0 Mop/s without).
7343           * A new sample/test program: t/trace.pasm that twiddles the trace
7344             flag while it is running.
7346 2001-10-07 15:41  gregor
7348         * .cvsignore, Makefile.in, build_interp_starter.pl, interpreter.c,
7349         include/parrot/.cvsignore, include/parrot/interpreter.h:
7350         Now that 0.0.2 is released, I can clear out the backlog of approved
7351         but uncommitted patches. Here's one Dan approved on 2001-09-21
7352         (Simplified DO_OP):
7354           * test_prog and pdump are linked with only the files the need,
7355         not
7356             al the files.
7358           * build_interp_starter.pl writes out op_info.[hc], too. These
7359         files
7360             contain op name, arg count and arg type information. This will
7361         be
7362             useful for multiple things in the future, including better
7363         trace
7364             output and the crystalizing loader.
7366           * The DO_OP macro is now simpler and doesn't require explicit
7367             temporaries.
7369           * interpreter.c is modified to use the new op info in tracing
7370         output.
7372           * The interpreter just points its opcode_funcs and opcode_info
7373             members at the default tables rather than allocating memory on
7374             the fly.
7376 2001-10-07 03:58  thgibbs
7378         * include/parrot/.cvsignore, vtable_h.pl: Minor updates fixing a
7379         comment and adding vtable.h to .cvsignore as it is produced by
7380         vtable_h.in
7382 2001-10-06 20:58  thgibbs
7384         * vtable.tbl: Added * to REGEX type.
7386         Courtesy of Bryan C. Warnock <bwarnock@raba.com>
7388 2001-10-06 13:41  simon
7390         * MANIFEST, Makefile.in, vtable.tbl, vtable_h.pl, Parrot/Vtable.pm,
7391         include/parrot/parrot.h, lib/Parrot/Vtable.pm:
7392         Framework for vtable functions.
7394 2001-10-06 06:52  thgibbs
7396         * make_op_header.pl: Removed confusing and unused typedef.
7398 2001-10-06 06:31  thgibbs
7400         * Parrot/Opcode.pm, lib/Parrot/Opcode.pm: Removed variables that
7401         are no longer used.
7403 2001-10-06 06:26  thgibbs
7405         * disassemble.pl: Changed intval to op in disassembler.
7407 2001-10-06 06:21  thgibbs
7409         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm: Fixed typo with
7410         Assembler, local labels, and integer constants.
7412 2001-10-06 03:11  ask
7414         * Makefile.in: make `make test` actually run the tests on
7415         darwin/macosx
7417 2001-10-06 02:04  thgibbs
7419         * Parrot/Assembler.pm, Parrot/Opcode.pm, Parrot/PackFile.pm,
7420         Parrot/String.pm, Parrot/PackFile/ConstTable.pm,
7421         Parrot/PackFile/Constant.pm, include/parrot/packfile.h,
7422         include/parrot/register.h, lib/Parrot/Assembler.pm,
7423         lib/Parrot/Opcode.pm, lib/Parrot/PackFile.pm, lib/Parrot/String.pm,
7424         lib/Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/Constant.pm,
7425         t/op/integer.t: No, it didn't mess anything up.  I just forgot to
7426         type make. :)
7428 2001-10-06 02:02  thgibbs
7430         * Parrot/Assembler.pm, Parrot/Opcode.pm, Parrot/PackFile.pm,
7431         Parrot/String.pm, Parrot/PackFile/ConstTable.pm,
7432         Parrot/PackFile/Constant.pm, include/parrot/packfile.h,
7433         include/parrot/register.h, lib/Parrot/Assembler.pm,
7434         lib/Parrot/Opcode.pm, lib/Parrot/PackFile.pm, lib/Parrot/String.pm,
7435         lib/Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/Constant.pm,
7436         t/op/integer.t: oops...this messed something up.  I must have
7437         missed something in the patch...I have reverted.
7439 2001-10-06 01:57  thgibbs
7441         * Parrot/Assembler.pm, Parrot/Opcode.pm, Parrot/PackFile.pm,
7442         Parrot/String.pm, Parrot/PackFile/ConstTable.pm,
7443         Parrot/PackFile/Constant.pm, include/parrot/packfile.h,
7444         include/parrot/register.h, lib/Parrot/Assembler.pm,
7445         lib/Parrot/Opcode.pm, lib/Parrot/PackFile.pm, lib/Parrot/String.pm,
7446         lib/Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/Constant.pm,
7447         t/op/integer.t, Types_pm.in, basic_opcodes.ops, config_h.in,
7448         memory.c, packfile.c, process_opfunc.pl, strnative.c, test_main.c:
7449         This patch ensures that all bytecode is of type opcode_t except for
7450         the constant table constants.  That means that almost all of the
7451         INTVALs in the code were replaced with opcode_t and the i pack type
7452         was replaced with the op pack type in calls to pack_arg and such.
7453         Also, since it has been declared that ALL integer constants are to
7454         be 32 bits, some test cases were changed to ensure that an integer
7455         constant was no bigger than 2 ** 31.
7457         process_opfunc.pl was also cleaned up to no longer look at either
7458         opcode_table or interp_guts.h but gather all of its information
7459         from Opcode.pm.
7461         The Assembler.pm module was changed to do late binding of arguments
7462         so that 0 could be treated like 0.0 without having to be so
7463         declared.  Also, only strings now use the [sc:N] intermediate form
7464         as it was unnecessary for integer and float types.
7466 2001-10-05 21:59  gregor
7468         * MANIFEST, languages/jako/Makefile:
7469         Fixed things due to the movement of little_languages/* to
7470         languages/jako.
7472 2001-10-05 18:31  gregor
7474         * MANIFEST:
7475         Updated MANIFEST to reflect recent additions for Jako.
7477 2001-10-05 17:54  gregor
7479         * languages/jako/: Makefile, bench.jako, euclid.jako, fact.jako,
7480         fib.jako, hello.jako, jakoc, leibniz.jako, mandelbrot.jako,
7481         mops.jako, primes.jako, sub.jako:
7482           * Compiler:
7484               * User-defined subroutines.
7485               * Generates assembly code with the Jako code in comments.
7486               * "end;" no longer required at the end of programs.
7487               * Better handling of const-reg and reg-const.
7488               * Optimizes const-const operations to compile-time
7489         evaluations.
7490               * Constants in addition to variables.
7491               * Arithmetic fixes.
7492               * Allow leading minus signs in integer and number constants
7493         (ahem).
7494               * goto's.
7496           * New sample programs:
7498               * leibniz.jako (based on Greg McCarroll's leibniz.pasm
7499         example)
7500               * mandelbrot.jako (based on Leon Brocard's translation of
7501         Glenn Rhodes' C code)
7502               * mops.jako (based on t/test.pasm)
7503               * primes.jako (based on Leon Brocard's primes.pasm example)
7504               * sub.jako (demonstrates a simple user-defined subroutine)
7506 2001-10-05 12:54  gregor
7508         * Parrot/Opcode.pm, lib/Parrot/Opcode.pm:
7509           * Removed mysterious extra copy of code after POD.
7511 2001-10-05 12:46  gregor
7513         * basic_opcodes.ops, t/op/string.t:
7514           * Enabled the previously SKIPped test of printing string regs
7515         after
7516             clear_s
7518           * Made print_s do nothing if the STRING pointer in the register
7519         file
7520             is NULL.
7522 2001-10-04 21:19  dan
7524         * Configure.pl: VMS tweaks
7526 2001-10-04 21:17  dan
7528         * hints/vms.pl: Hints file for VMS
7530 2001-10-04 00:58  bdwheele
7532         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm: fixed but in
7533         Assembler which stopped equates from working.
7535 2001-10-03 21:50  gregor
7537         * Makefile.in, docs/.cvsignore, docs/Makefile, docs/parrotbyte.pod:
7539           * More documentation updates for the packfile stuff.
7541 2001-10-03 21:37  gregor
7543         * docs/parrotbyte.pod:
7544           * Pointed the reader at Parrot::PackFile.
7546 2001-10-03 21:34  gregor
7548         * Parrot/PackFile.pm, lib/Parrot/PackFile.pm:
7549           * Updated documentation to match current implementation.
7551 2001-10-03 18:30  gregor
7553         * .cvsignore, disassemble.pl, Parrot/Assembler.pm,
7554         lib/Parrot/Assembler.pm, t/call.pasm, t/euclid.pasm,
7555         t/local_label.pasm, t/test.pasm, t/test2.pasm, t/test3.pasm,
7556         t/op/basic.t:
7557           * Added new syntax to the assembler to allow square-bracket
7558             arithmetic expressions involving (global) labels, the current
7559             instructions base address ('@'), numeric constants (not
7560         equates)
7561             and basic arithmetic operators (+, -, *, / -- although + and -
7562             are likely to be the only ones used in practice).
7564           * Fixed a bug in Parrot/Assemble.pl that caused macro expansion
7565         to
7566             fail (argument passing wasn't working).
7568           * Enabled t/op/basic.t's last test, which is actually a copy of
7569         the
7570             code from t/call.pasm. Now all tests there are enabled and
7571         working.
7573           * Added new example/test program t/call.pasm to demonstrate
7574         working
7575             macros and poor-man's subroutine calls
7577           * Added header comments to t/*.pasm
7579 2001-10-03 18:00  simon
7581         * ChangeLog:
7582         Needed, since it's in the MANIFEST.
7584 2001-10-03 17:56  simon
7586         * t/op/: string.t, time.t:
7587         Small fixes to help Win32 on its way.
7589 2001-10-03 17:41  simon
7591         * MANIFEST, README:
7592         Oops. Tiny bugs.
7594 2001-10-03 17:39  simon
7596         * MANIFEST, NEWS, README:
7597         README, NEWS and MANIFEST? Could it be time for Parrot 0.0.2? I
7598         think so!
7600 2001-10-03 17:21  simon
7602         * basic_opcodes.ops, interpreter.c, packfile.c:
7603         Evil printf bandaid (which allows Sparc64 to pass tests)
7605         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
7607 2001-10-03 16:58  simon
7609         * string.c, t/op/string.t:
7610         chop fixes for n < 0 and tests
7612         Courtesy of: Alex Gough <alex@rcon.org>
7614 2001-10-03 15:51  thgibbs
7616         * interpreter.c: Changed an occurrence of INTVAL to opcode_t
7618         Courtesy of: Bryan C. Warnock <bwarnock@raba.com>
7620 2001-10-02 17:48  dan
7622         * include/parrot/stacks.h: Fix typo in function name
7624 2001-10-02 17:35  dan
7626         * include/parrot/stacks.h: changed to support new stack stuff
7627         coming after 0.02
7629 2001-10-02 15:01  simon
7631         * Configure.pl, Types_pm.in, basic_opcodes.ops, config_h.in,
7632         interpreter.c, make_op_header.pl, memory.c, packfile.c,
7633         process_opfunc.pl, register.c, string.c, strnative.c,
7634         Parrot/Opcode.pm, Parrot/PackFile.pm, Parrot/String.pm,
7635         lib/Parrot/Opcode.pm, lib/Parrot/PackFile.pm, lib/Parrot/String.pm,
7636         Parrot/PackFile/ConstTable.pm, Parrot/PackFile/Constant.pm,
7637         docs/overview.pod, docs/strings.pod, include/parrot/interpreter.h,
7638         include/parrot/memory.h, include/parrot/packfile.h,
7639         include/parrot/parrot.h, include/parrot/register.h,
7640         include/parrot/stacks.h, include/parrot/string.h,
7641         lib/Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/Constant.pm:
7643         The Great Renaming.
7645 2001-10-02 12:49  gregor
7647         * process_opfunc.pl:
7648           * Fixed a tyop:  s/string/integer/ for INT_CONST expansion
7650 2001-10-02 12:40  simon
7652         * basic_opcodes.ops, process_opfunc.pl, register.c,
7653         include/parrot/register.h:
7654         Move preprocessing of register accessors to process_opfunc.pl
7656         Courtesy of: Jason Gloudon <perl@gloudon.com>
7658 2001-10-02 01:20  ask
7660         * README: add a few lines about lists.
7662 2001-10-01 23:00  brentdax
7664         * Configure.pl, Makefile.in, hints/mswin32.pl: Make 'make clean'
7665         work on Win32 (courtesy of Mattia Barbon <mbarbon@dsi.unive.it>)
7667 2001-10-01 22:50  brentdax
7669         * Configure.pl, test_c.in: More changes for 64-bit compatibility
7671 2001-10-01 21:51  simon
7673         * process_opfunc.pl:
7674         Michael Fischer's patch broke conditionals.
7676 2001-10-01 15:38  simon
7678         * process_opfunc.pl:
7679         Small hack to keep process_opfunc.pl from generating extra return()
7680         statements.
7682         Courtesy of: Michael Fischer <michael@visv.net>
7684 2001-10-01 15:32  simon
7686         * Parrot/Opcode.pm, lib/Parrot/Opcode.pm:
7687         Documentation fix.
7689         Courtesy of: Josh Wilmes <josh@hitchhiker.org>
7691 2001-10-01 01:49  simon
7693         * packfile.c:
7694         Simon is an idiot. Don't trust him with your code.
7696         Courtesy of: Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
7698 2001-10-01 00:59  simon
7700         * Parrot/String.pm, lib/Parrot/String.pm:
7701         Was in manifest, but not in CVS.
7703 2001-09-30 21:25  simon
7705         * MANIFEST, Types_pm.in, assemble.pl, basic_opcodes.ops,
7706         disassemble.pl, packfile.c, pdump.c, process_opfunc.pl,
7707         Parrot/Assembler.pm, Parrot/PackFile.pm,
7708         Parrot/PackFile/ConstTable.pm, Parrot/PackFile/Constant.pm,
7709         Parrot/PackFile/FixupTable.pm, lib/Parrot/Assembler.pm,
7710         lib/Parrot/PackFile.pm, lib/Parrot/PackFile/ConstTable.pm,
7711         lib/Parrot/PackFile/Constant.pm, lib/Parrot/PackFile/FixupTable.pm,
7712         include/parrot/packfile.h, include/parrot/string.h:
7713         Move NVs to the constant table.    * Changes to Types_pm.in to make
7714         life easier for some of the      packing/etc. I'm doing elsewhere.
7715         Also, we now pack 'n' as      'i'.
7717           * Moved the guts of assemble.pl to Parrot/Assembler.pm so that
7718             eventually we can use all these tools together inside scripts
7719             rather than call out to the shell to run the programs.
7721           * As I was tracking down problems, I converted the internal
7722             documentation of the assembler to POD from comments.
7724           * Changed the numeric regexp in the assembler to detect leading
7725             signs and trailing exponents.
7727           * Updated basic_opcodes.ops to fetch numeric constants from the
7728             constant table.
7730           * Enhanced the disassembler in a number of ways to make my life
7731             easier while tracking down bugs (try it out). It now puts in
7732             labels for ops that are the destinations of flow control ops.
7734           * packfile.c now has a TRACE_PACKFILE switch that can be set
7735             to get it to print info as it processes. I needed this while
7736             debugging, but I can remove it or change it before committing
7737             if its a problem.
7739           * Updated pdump.c because it was missing a call to init_world().
7741           * Updated process_opfunc.pl to deal with numeric constants
7742             being stored in the constant table instead of inline.
7744           * Added multiple type support to Parrot/PackFile/Constant.pm
7746           * Added Parrot/String.pm, to be used for constants.
7748           * Added packfile.[hc] functions for allocating new constants
7749             of various types.
7751           * Made string_copy visible to the world in parrot/string.h.
7753         Wow.
7755         Courtesy of: Gregor N. Purdy <gregor@focusresearch.com>
7757 2001-09-29 15:56  gregor
7759         * languages/jako/Makefile:
7760         Removed assumption that '.' is on the path.
7762 2001-09-29 15:55  gregor
7764         * languages/jako/Makefile:
7765         Removed references to leibnitz test program.
7767 2001-09-29 15:21  thgibbs
7769         * t/op/trans.t, basic_opcodes.ops: Added NV casts to transcendental
7770         math ops args to work on Solaris.
7772 2001-09-27 15:15  thgibbs
7774         * assemble.pl: Added case insensitive matches to hex and binary
7775         characters
7777         Courtesy of: Johnathan Scott Duff <duff@cbi.tamucc.edu>
7779 2001-09-27 04:46  thgibbs
7781         * assemble.pl: This patch makes integer constants of the form
7782         0b[01]+ work with perl 5.005.  The oct function in versions of perl
7783         before 5.6 did not handle the 0b numeric prefix; therefore, it was
7784         returning 0.  To fix this, I added a from_binary function that
7785         would take a binary string and return its decimal representation.
7786         Now, instead of blindly calilng oct, it makes a distinction between
7787         0/0x numbers and 0b numbers.
7789 2001-09-26 19:30  thgibbs
7791         * assemble.pl: Error now returns a non-zero status
7793         Courtesy of: Andrew Kuchling <akuchlin@mems-exchange.org>
7795 2001-09-26 19:13  gregor
7797         * MANIFEST, Makefile.in, basic_opcodes.ops, bytecode.c,
7798         interpreter.c, packfile.c, pdump.c, test_main.c,
7799         include/parrot/bytecode.h, include/parrot/interpreter.h,
7800         include/parrot/packfile.h, include/parrot/parrot.h, t/op/integer.t,
7801         t/op/stacks.t:
7802           * bytecode.[hc] removed. packfile.[hc] are the interface to the
7803             packfile/bytecode file from C. May be renamed in the future.
7805           * packfile.[hc] changed to use 'struct PackFile *', etc. instead
7806             of 'PackFile *', just like the interpreter, etc.
7808           * Constants are accessed via the interpreter's 'code' member
7809             (struct PackFile * code). Macros PCONST(i) and PNCONST are
7810             provided to access constants by index and the number of
7811             constants, respectively (assumes a variable 'interpreter' of
7812             the appropriate type is in scope).
7814           * Byte Code is accessed via the interpreter's 'code' member.
7816           * Changed PackFile_Constant to point to a STRING instead of
7817         having
7818             members for the string_make() arguments. Also has a 'type' IV
7819             in preparation for allowing multiple types of constants in
7820             const_table.
7822           * Removed hardcoded example program from test_main.c. We have
7823             plenty of test programs elsewhere.
7825           * test_prog now uses a PackFile to deal with the program before
7826             sending it on to the interpreter.
7828           * Added missing 'end' ops to some tests in t/op/integer.t and
7829             t/op/stacks.t.
7831 2001-09-26 18:38  thgibbs
7833         * assemble.pl: Separated code into functions and added comments.
7835 2001-09-26 18:29  simon
7837         * config_h.in:
7838         Fix 64-bit chunk-base issue.
7840 2001-09-26 06:55  thgibbs
7842         * t/op/bitwise.t: Added end to bitwise tests.
7844 2001-09-26 00:54  dan
7846         * docs/parrot_assembly.pod: Added in the base for threading, I/O,
7847         and interpreter creation. Skeleton only, but it's something to peer
7848         at.
7850 2001-09-25 21:44  thgibbs
7852         * t/op/trans.t: Removed loops in transcendtal op test.
7854 2001-09-25 10:12  simon
7856         * MANIFEST, t/op/basic.t, t/op/bitwise.t, t/op/integer.t,
7857         t/op/string.t, t/op/time.t:
7858         More tests
7860         Courtesy of: Alex Gough <alex@rcon.org>
7862 2001-09-24 19:08  gregor
7864         * t/op/number.t:
7865           * Enabled the clear_n test.
7867 2001-09-24 18:56  gregor
7869         * Parrot/.cvsignore:
7870           * Ignore the generated Types.pm file.
7872 2001-09-24 18:52  gregor
7874         * languages/jako/Makefile, t/op/number.t:
7875           * No need to skip the inc and dec numeric tests anymore. I fixed
7876         the
7877             assembler earlier today.
7879 2001-09-24 18:21  simon
7881         * MANIFEST, t/op/stacks.t:
7882         Oops.
7884 2001-09-24 18:19  simon
7886         * build_interp_starter.pl, interpreter.c, string.c, Parrot/Test.pm,
7887         include/parrot/exceptions.h, include/parrot/interpreter.h,
7888         lib/Parrot/Test.pm, t/op/string.t:
7889         1) captured error output, so can test errors, this might be bad,
7890         not sure.  2) basic tests for register stack frames, including some
7891         errors 3) I think we can stop skipping one of the string tests 4) I
7892         added some more substr tests, but substr was broken, so 5) changed
7893         substr to work with out of range values, or 6) throw an error if
7894         they're far too silly
7896         Courtesy of: Alex Gough <alex@rcon.org>
7898 2001-09-24 17:27  gregor
7900         * basic_opcodes.ops, opcode_table, t/op/number.t:
7901           * Op set_n was missing. Added it and a test for it. We now have
7902         the
7903             same int and num ops, except mod is int-only.
7905 2001-09-24 17:01  gregor
7907         * assemble.pl:
7908           * Fixed a typo: s/Line/line/
7910 2001-09-24 16:02  gregor
7912         * basic_opcodes.ops:
7913           * Fixed dec_n_nc opcode, which had += where it should have had
7914         -=.
7916 2001-09-24 15:34  gregor
7918         * assemble.pl:
7919           * Fixed handling of constants starting with '0' that should not
7920         be
7921             sent through oct(). For example 'set N2 0.1' was being
7922         interpreted
7923             as 'set N2 0' (naughty).
7925             As reported by Leon Brocard <acme@astray.com> in the comments
7926         of
7927             his mandelbrot.pasm example.
7929 2001-09-24 02:21  bdwheele
7931         * assemble.pl: fixed dumb code when --include was not specified.
7933 2001-09-24 02:17  simon
7935         * assemble.pl:
7936         Shit-sweeping.
7938 2001-09-24 01:56  bdwheele
7940         * assemble.pl: * Added --include=dir option to assembler to provide
7941         a path to look for included files.  * Error message of a macro is
7942         defined inside of a macro
7944 2001-09-23 21:29  bdwheele
7946         * assemble.pl: Added __FILE__ equate, fixed __LINE__ equate.
7948 2001-09-23 15:50  simon
7950         * Configure.pl:
7951         Fixed typo. Parrot might work again on non-8.3 filesystems. :)
7953 2001-09-23 02:03  ask
7955         * Configure.pl, test_c.in: fix missing newline at the end of test.c
7956         Courtesy of: acme@astray.com (Leon Brocard)
7958         rename 'test' executable used in Configure process to test_siz.
7960 2001-09-23 01:03  simon
7962         * process_opfunc.pl:
7963         iPaq fix. No, really.
7965 2001-09-23 00:47  simon
7967         * MANIFEST:
7968         Missed several, in fact.
7970 2001-09-23 00:46  simon
7972         * MANIFEST:
7973         Missed one.
7975 2001-09-22 21:13  simon
7977         * assemble.pl:
7978         Assembler register numbering rigour.
7980         Courtesy of: Leon Brocard <acme@astray.com>
7982 2001-09-22 18:20  simon
7984         * Makefile.in, lib/Test/More.pm, lib/Test/Simple.pm,
7985         lib/Test/Utils.pm:
7986         I'm sick of having to install Test::More everywhere. Temporary
7987         measure until we remove this silly dependency.
7989         Also a typo in Makefile.in which suggests some things were only
7990         happening correctly by sheer chance. :)
7992 2001-09-22 18:06  simon
7994         * README:
7995         test.pasm is dead, long like make test.
7997 2001-09-22 17:47  simon
7999         * t/op/number.t:
8000         De-fang overzealous floating point test.
8002 2001-09-22 17:39  simon
8004         * process_opfunc.pl:
8005         Remove hard-coded NV size assumption. Tru64 is nearly there!
8007 2001-09-22 17:18  simon
8009         * assemble.pl, disassemble.pl:
8010         More portability fixups.
8012 2001-09-22 16:44  simon
8014         * assemble.pl, Parrot/PackFile/Constant.pm,
8015         lib/Parrot/PackFile/Constant.pm:
8016         And I *think* this fixes Tru64.
8018 2001-09-22 16:37  simon
8020         * Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/ConstTable.pm:
8022         Oops.
8024 2001-09-22 16:36  simon
8026         * Parrot/PackFile.pm, Parrot/PackFile/ConstTable.pm,
8027         Parrot/PackFile/Constant.pm, lib/Parrot/PackFile.pm,
8028         lib/Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/Constant.pm:
8030         More removal of hard-coded pack formats.
8032 2001-09-22 15:21  simon
8034         * assemble.pl:
8036         Grrr. Why isn't this working?
8038 2001-09-22 15:18  simon
8040         * Parrot/PackFile.pm, Parrot/PackFile/ConstTable.pm,
8041         lib/Parrot/PackFile.pm, lib/Parrot/PackFile/ConstTable.pm:
8043         Make assemble use the PackFile modules; also fixed some bugs in
8044         them.
8046 2001-09-22 14:38  simon
8048         * Configure.pl, MANIFEST, Types_pm.in, assemble.pl, disassemble.pl:
8050         Abstract the argument and opcode packing types and functions out
8051         into a separate module. This *should* help us maintain consistency
8052         when we change the various types.
8054 2001-09-22 00:46  brentdax
8056         * Configure.pl: Delete test.o (or its equivalent) after Configure's
8057         test program finishes.
8059 2001-09-21 21:24  brentdax
8061         * Parrot/Test.pm, lib/Parrot/Test.pm: Fix error with \ as path
8062         separator (courtesy of Mattia Barbon <mbarbon@dsi.unive.it>)
8064 2001-09-21 21:09  gregor
8066         * Parrot/PackFile/ConstTable.pm, Parrot/PackFile/Constant.pm,
8067         lib/Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/Constant.pm:
8069           * Fixed pad calculation (similar to recent bug fix on C library)
8071 2001-09-21 20:23  simon
8073         * disassemble.pl:
8074         Pack types and sizes have gone askew.
8076 2001-09-21 20:18  brentdax
8078         * Configure.pl: Fix typo in setting stuff from the C test program
8080 2001-09-21 10:25  simon
8082         * basic_opcodes.ops, process_opfunc.pl:
8083         Document patches.
8085         Courtesy of: Leon Brocard <acme@astray.com>
8087 2001-09-21 06:06  ask
8089         * Config_pm.in, assemble.pl: fix 5.005_03.
8091 2001-09-21 06:03  ask
8093         * Configure.pl: make the ivsize detection work for us normal people
8094         without . in our PATH.  :-)
8096 2001-09-21 05:56  brentdax
8098         * test_main.c: Change _read to read for portability to Tru64
8099         (Damien Neil <neild@misago.org> and likely many others)
8101 2001-09-21 05:46  ask
8103         * Makefile.in: "update" target to update from cvs.
8105 2001-09-21 05:44  brentdax
8107         * Configure.pl, test_c.in: Fix issues with ivsize and nvsize
8109 2001-09-21 02:43  brentdax
8111         * Configure.pl: Fix a typo that forced the -g flag on
8113 2001-09-20 22:41  dan
8115         * packfile.c: Had some no-value returns. Naughty
8117 2001-09-20 22:40  dan
8119         * t/test.pasm: Added labels to output
8121 2001-09-20 15:39  simon
8123         * Parrot/Opcode.pm, Parrot/Test.pm, lib/Parrot/Opcode.pm,
8124         lib/Parrot/Test.pm:
8125         This patch does two only somewhat related things.
8127         Parrot/Opcode.pm:  Change the hard-wired assumption that sizeof(nv)
8128         = 2*sizeof(iv) to a PConfig-type computed value.
8130         Parrot/Test.pm:  Change it to run with the perl that was used to
8131         generate this version of Parrot.  This is useful if, for example,
8132         you want to use bleadperl to build and test parrot (e.g. to try out
8133         various 64-bit options) but you still have a 5.6.x (or 5.005_xx)
8134         installed as the default 'perl' on your system.  Since perl-5.7.x
8135         is installed 'version-only', a plain 'perl' is quite likely to pick
8136         up the older perl in such cases. Such an older perl might well not
8137         understand pack('q') used in the assembler.
8139         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
8141 2001-09-20 15:14  gregor
8143         * packfile.c:
8144           * Fixed a typo in pad calculation that throwing off unpack and
8145         pack.
8147 2001-09-20 15:03  thgibbs
8149         * t/op/integer.t: Removed overflow tests from integer.t.  set_i_ic
8150         tests now cover all registers.
8152         Courtesy of: Damien Neil neild@misago.org
8154 2001-09-20 14:48  thgibbs
8156         * process_opfunc.pl: Changed process_opfunc.pl to work on 64 bit
8157         machines.
8159 2001-09-20 14:35  simon
8161         * Configure.pl, assemble.pl:
8162         Pack IVs correctly.
8164         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
8166 2001-09-20 14:06  gregor
8168         * languages/jako/jakoc:
8169           * Fixed a tyop in the string interpolation regex.
8171         Courtesy of Michael L Maraist <maraist@UDel.Edu>
8173 2001-09-20 13:56  gregor
8175         * languages/jako/jakoc:
8176           * Updated jakoc to work with the single-destination comp ops.
8178 2001-09-20 05:08  bdwheele
8180         * assemble.pl: macro expansion.  Here's the test macro I was using:
8182         # this uses I32,I31 as temporaries.  # macro must be preceeded by a
8183         label.  testi       macro   num,got,want    print   "Test #"
8184         print   num     print   "..."   set     I32,want        set
8185         I31,got         eq      I32,I31,$ok     print   "NG\n"  branch
8186         $end $ok:       print   "OK\n" $end:    endm
8188         It is invoked as:
8190         Test1:  testi   1,I3,I2
8192 2001-09-20 03:52  dan
8194         * stacks.c, include/parrot/stacks.h: Preliminary files for the
8195         generic stack support
8197 2001-09-20 02:49  bdwheele
8199         * assemble.pl: Added include processing to assemble.pl  the syntax
8200         is: include 'file.to.include'
8202 2001-09-19 23:57  thgibbs
8204         * t/op/integer.t, t/op/number.t, assemble.pl, opcode_table: Fixed
8205         opcode_table listing of if_i_ic and if_n_ic.  Dan had changed the
8206         function to only use 2 args, but the opcode_table still had three
8207         listed.  Fixed integer.t and number.t to use the new comparison
8208         operators.  Improved assemble.pl ability to grok operators by
8209         constructing a function set and comparing operator types.
8211 2001-09-19 22:42  dan
8213         * assemble.pl: Binmodes the output filehandles now. (No more
8214         bytecode munching...)
8216 2001-09-19 22:32  dan
8218         * Configure.pl, basic_opcodes.ops, opcode_table, process_opfunc.pl,
8219         t/euclid.pasm, t/test.pasm, t/test2.pasm: Changed opcodes so
8220         conditional branches take a single argument, and fall through
8221         otherwise.
8223 2001-09-19 21:19  thgibbs
8225         * memory.c: Added explanation of mem_allocate_aligned give by Dan
8226         Sugalski
8228         Courtesy of: Josh Wilmes <josh@hitchhiker.org>
8230 2001-09-19 21:04  thgibbs
8232         * include/parrot/interpreter.h, Configure.pl,
8233         build_interp_starter.pl, bytecode.c, config_h.in, interpreter.c,
8234         process_opfunc.pl: Changed opcode_t from a union to a configurable
8235         type.
8237 2001-09-19 20:54  thgibbs
8239         * assemble.pl: Missed a couple of changes for 64 bit portability.
8241 2001-09-19 20:37  gregor
8243         * packfile.c, include/parrot/packfile.h:
8244           * Added "methods" for setting and getting all the various
8245         attributes,
8246             probably sufficient for an assembler to use the library.
8248 2001-09-19 20:04  thgibbs
8250         * assemble.pl: Modifications to run on 64 bit platforms.  To run on
8251         a 64 bit platform manually change the  setting for 'i' from 'l' to
8252         'q'.  This should be automatically done by a Configure setting in
8253         the near future.
8255 2001-09-19 19:10  thgibbs
8257         * config_h.in: changed c++ comment to c comment.
8259         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
8261 2001-09-19 17:48  gregor
8263         * .cvsignore, MANIFEST, Makefile.in, packfile.c, pdump.c,
8264         include/parrot/packfile.h:
8265           * C code for dealing with PackFiles as if they were objects.
8266         Mostly
8267             read-only interface for now, but it would not be hard to make
8268         it
8269             read-write. [packfile.c, include/parrot/packfile.h]
8271           * PackFile Dumping program that falls short of disassembling, but
8272             tests the above code and provides a hex listing of the byte
8273         code
8274             contents of the PackFile. [pdump.c]
8276           * New Makefile target 'pdump' for the above program, and related
8277             Makefile.in changes.
8279           * Updated MANIFEST to reflect the added files
8281           * Update .cvsignore to ignore pdump.
8283 2001-09-19 14:55  thgibbs
8285         * MANIFEST: Added number.t and trans.t to MANIFEST
8287 2001-09-19 05:40  thgibbs
8289         * process_opfunc.pl: Now taking & of opcode_t instead of i member
8290         of union opcode_t.  I hope this will be more portable for set_n_nc.
8292 2001-09-19 05:39  thgibbs
8294         * t/op/integer.t: Added end to test 1.
8296 2001-09-19 00:09  thgibbs
8298         * t/op/number.t: Added end to each test
8300 2001-09-19 00:00  simon
8302         * t/op/number.t:
8303         Number tests! Wooo!
8305         Courtesy of: Damien Neil <neild@misago.org>
8307 2001-09-18 23:52  thgibbs
8309         * interpreter.c: Added casts to appropriate types to make -Wall not
8310         complain on certain printf formats
8312 2001-09-18 23:31  thgibbs
8314         * t/op/integer.t: Added end to each test.
8316 2001-09-18 22:54  thgibbs
8318         * t/op/trans.t: Added trans.t for transcendental math function
8319         tests.
8321 2001-09-18 22:28  simon
8323         * MANIFEST:
8324         MANIFEST updates. (And notice how I carefully snuck in the
8325         t/op/integer.t there...)
8327         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
8329 2001-09-18 22:26  simon
8331         * t/: integer.t, op/integer.t:
8332         Except it doesn't go there. Duh.
8334 2001-09-18 22:25  simon
8336         * t/integer.t:
8337         Tests for integer ops.
8339         Courtesy of: Damien Neil <neild@misago.org>
8341 2001-09-18 22:03  thgibbs
8343         * include/parrot/bytecode.h, include/parrot/interpreter.h,
8344         build_interp_starter.pl, bytecode.c, config_h.in, interpreter.c,
8345         make_op_header.pl, process_opfunc.pl, test_main.c: Changed IV to
8346         opcode_t union for operators.  This required a few perl script
8347         changes to output the correct type.  There were also some changes
8348         to allow -pedantic in gcc
8350 2001-09-18 21:07  gregor
8352         * disassemble.pl, Parrot/PackFile.pm,
8353         Parrot/PackFile/ConstTable.pm, Parrot/PackFile/Constant.pm,
8354         lib/Parrot/PackFile.pm, lib/Parrot/PackFile/ConstTable.pm,
8355         lib/Parrot/PackFile/Constant.pm:
8356         Converted the disassembler to use the Parrot::PackFile Perl classes
8357         to do its job.
8359 2001-09-18 19:18  brentdax
8361         * Makefile.in: Fix missing functions for real this time.  (I
8362         swear!)
8364 2001-09-18 18:49  brentdax
8366         * Configure.pl: Remove unnecessary -I.. (courtesy of Andy Dougherty
8367         <doughera@lafayette.edu>}
8369 2001-09-18 18:47  brentdax
8371         * Makefile.in: Fix bugs with missing math, etc. functions
8373 2001-09-18 14:42  thgibbs
8375         * strnative.c: Sorry Simon...forgot bustart was a void* not a
8376         char*.
8378 2001-09-18 13:59  thgibbs
8380         * strnative.c: Removed unnecessary IV cast in concat.
8382 2001-09-18 13:58  thgibbs
8384         * t/op/string.t: Removed unnecessary IV cast in concat.  Added end
8385         to concat test in string.t
8387 2001-09-18 12:07  gregor
8389         * languages/jako/jakoc:
8390           * var num ... no longer requires assignment
8391           * automatic casting between int and num
8392           * Fixed an error message
8394         Courtesy of: Simon Cozens <simon@cvs.perl.org>
8396 2001-09-18 11:57  simon
8398         * TODO:
8399         Gonna have to start thinking of more things to do, soon.
8401 2001-09-18 10:42  simon
8403         * opcode_table:
8404         Introduce a little more tidiness into the opcode table.
8406 2001-09-18 03:06  gregor
8408         * basic_opcodes.ops, opcode_table, t/euclid.pasm:
8409         Resurrected register-const ops per Dan's request.
8411 2001-09-18 02:20  gregor
8413         * .cvsignore, Configure.pl, MANIFEST, Makefile.in,
8414         build_interp_starter.pl, bytecode.h, events.h, exceptions.h,
8415         global_setup.h, interpreter.h, io.h, memory.h, parrot.h,
8416         process_opfunc.pl, register.h, stacks.h, string.h, strnative.h:
8417         Committed some files that were missed in the last *.h moving
8418         commit.
8420 2001-09-18 02:17  gregor
8422         * include/parrot/.cvsignore: Fixed a typo in .cvsignore.
8424 2001-09-18 02:16  gregor
8426         * include/parrot/: .cvsignore, bytecode.h, events.h, exceptions.h,
8427         global_setup.h, interpreter.h, io.h, memory.h, parrot.h,
8428         register.h, stacks.h, string.h, strnative.h: Added .cvsignore file
8429         missed in last commit for the move of *.h to include/parrot.
8431 2001-09-18 01:32  simon
8433         * t/Makefile:
8434         Trivial "clean" target to t/Makefile.
8436 2001-09-18 01:32  simon
8438         * assemble.pl, build_interp_starter.pl, disassemble.pl,
8439         Parrot/Opcode.pm, lib/Parrot/Opcode.pm:
8440         Change icky Digest::MD5 for nice simple unpack()
8442         Courtesy of: Jonathan Scott Duff <duff@cbi.tamucc.edu>
8444 2001-09-18 00:35  simon
8446         * basic_opcodes.ops, opcode_table, docs/parrot_assembly.pod,
8447         t/op/string.t:
8448         New concat op. Hey, if I'm going to talk about it in an article,
8449         better implement it...
8451 2001-09-17 22:54  gregor
8453         * MANIFEST, Parrot/PackFile.pm, Parrot/PackFile/ConstTable.pm,
8454         Parrot/PackFile/Constant.pm, Parrot/PackFile/FixupTable.pm,
8455         lib/Parrot/PackFile.pm, lib/Parrot/PackFile/ConstTable.pm,
8456         lib/Parrot/PackFile/Constant.pm, lib/Parrot/PackFile/FixupTable.pm:
8458         Functions for reading, writing and manipulating Parrot Pack Files.
8459         NOTE: This is a proposed term based on the fact that the file
8460         contains more than just byte code, and another language (Java)
8461         calls its binary files by a broader notion of what's in them (Class
8462         Files). Since Perl has packages, and since we use pack() to write
8463         them, we'll call them PackFiles (at least for now).
8465         That does, however, beg the question of file extension. Should we
8466         name the files "foo.pack" instead of "foo.pbc"?
8468 2001-09-17 20:23  thgibbs
8470         * interpreter.c, test_main.c: Uncuddled else statements for coding
8471         standard.
8473 2001-09-17 19:57  gregor
8475         * Parrot/Opcode.pm, lib/Parrot/Opcode.pm:
8476         Added a $revision variable, parsing of the CVS Id line in
8477         opcode_table and a &revision() subroutine.
8479 2001-09-17 19:53  gregor
8481         * opcode_table:
8482         Added a CVS Id tag to it.
8484 2001-09-17 18:58  thgibbs
8486         * interpreter.c: Cleared interpreter flags on creation.
8488 2001-09-17 18:38  gregor
8490         * build_interp_starter.pl, bytecode.c, bytecode.h, interpreter.c,
8491         interpreter.h, test_main.c:
8492           * Provides macros in interp_guts.h for setting up arrays with
8493             op names and op arg counts (done via build_interp_starter.pl).
8495             These are used in the op tracing
8497           * The functions in bytecode.[hc] pass around a pointer to the
8498         length
8499             of the bytecode so that later when we get to runops, we know
8500             how much bytecode we've got and we can detect out-of-bounds
8501             jumping. The documentation is updated, too.
8503           * runops in interpreter.c now looks at interpreter->flags to
8504             decide if the core of runops should be runops_trace_core or
8505             runops_notrace_core. These new functions contain just the
8506             while-loop portion of runops. A new function runops_generic
8507             does any other setup (such as checking the bytecode
8508             fingerprint) or wrapup (such as complaining if we ended up
8509             out-of-bounds). NOTE: I didn't know what we should do for
8510             functions in here that are not part of the api, so I gave
8511             them docs with 'TODO' marks mentioning they really aren't
8512             part of the api. Guidance appreciated.
8514           * test_main.c now checks for '-t' arg and sets the tracing flag
8515             on its interpreter instance as appropriate.
8517 2001-09-17 17:47  bdwheele
8519         * assemble.pl: added some default equates, and if they're sub
8520         references, they are computed each time it is referenced.
8522 2001-09-17 16:15  dan
8524         * interpreter.h:
8526         Added flags to the interpreter structure and defined a few.
8528 2001-09-17 15:51  simon
8530         * bytecode.h, string.h:
8531         VAR_SCOPE on globals.
8533 2001-09-17 15:20  simon
8535         * MANIFEST:
8536         Parrot/Opcode.pm, Parrot/Test.pm into MANIFEST.
8538 2001-09-17 15:05  gregor
8540         * t/jump.pasm, MANIFEST:
8541         Added a test program to demonstrate jump_i.
8543 2001-09-17 14:44  thgibbs
8545         * register.c: Fixed register pop not using correct offset (off by
8546         one).
8548         Courtesy of: Philip Kendall <pak@ast.cam.ac.uk>
8550 2001-09-17 13:56  thgibbs
8552         * interpreter.c, register.c: Added code to call Parrot_clear_s
8553         during initialization and Parrot_clear_s and Parrot_clear_p when a
8554         new stack frame is pushed.
8556 2001-09-17 13:51  gregor
8558         * languages/jako/: Makefile, bench.jako, euclid.jako, fact.jako,
8559         fib.jako, hello.jako: Added bench.pasm to "clean"
8561 2001-09-17 13:49  gregor
8563         * languages/jako/: jakoc, Makefile:
8564         Added CVS Id tag.
8566 2001-09-17 13:49  gregor
8568         * languages/jako/jakoc:
8569         Code streamlining.
8571         Courtesy of: Buggs <buggs-perl6@splashground.de>
8573 2001-09-17 13:29  gregor
8575         * MANIFEST, opcheck.pl:
8576         Added an opcode_table checker to make sure that all opcodes listed
8577         there conform to a simple set of naming rules (rules themselves, of
8578         course, are subject to change).
8580 2001-09-17 13:23  thgibbs
8582         * string.c: Modified string.c to correctly use the return value of
8583         realloc.
8585 2001-09-17 05:26  brentdax
8587         * Makefile.in: Making the Makefile smarter
8589 2001-09-16 23:06  brentdax
8591         * hints/mswin32.pl: Finishing the Configure hints
8593 2001-09-16 23:05  brentdax
8595         * Configure.pl, Makefile.in, parrot.h, test_main.c,
8596         Parrot/Opcode.pm, lib/Parrot/Opcode.pm: Win32 compatibility,
8597         Configure hints, 5.005 compatibility, MANIFEST checking
8599 2001-09-16 19:25  bdwheele
8601         * assemble.pl: parrot assembly equates
8603 2001-09-16 18:03  gregor
8605         * Makefile.in:
8606         Added 'test' target to run new test suite.
8608 2001-09-16 17:33  simon
8610         * basic_opcodes.ops:
8611         'not' was being !, rather than ~. Too many Perl programmers here, I
8612         suspect.
8614         Courtesy of: Tom Hughes <tom@compton.nu>
8616 2001-09-16 17:21  simon
8618         * Parrot/Test.pm, lib/Parrot/Test.pm, t/harness, t/op/basic.t,
8619         t/op/string.t:
8620         A *real* test suite!
8622         Courtesy of: "Mattia Barbon" <mbarbon@dsi.unive.it>
8624 2001-09-16 16:49  gregor
8626         * basic_opcodes.ops, opcode_table:
8627         At Dan's request, my new register-constant comparison ops have been
8628         removed.
8630 2001-09-16 16:40  gregor
8632         * languages/jako/jakoc:
8633         Fixed a copy-paste error in one of jakoc's error messages.
8635         Courtesy of: Buggs <buggs-perl6-list@splashground.de>
8637 2001-09-16 16:37  gregor
8639         * languages/jako/jakoc:
8640         Modified comparison implementation to use temporary registers in
8641         the case of register-constant and constant-register comparisons.
8642         This will allow the compiler to emit code that works when the
8643         constant-comparison ops are backed out of Parrot. If the ops ever
8644         make their way back in, then jakoc can emit more efficient code
8645         again.
8647 2001-09-16 16:19  bdwheele
8649         * assemble.pl, t/local_label.pasm: Added local labels ($whatever)
8650         ... though not subroutine based like the documentation wants, they
8651         are local to the last non-local label defined.
8653 2001-09-16 14:02  simon
8655         * MANIFEST:
8656         And remember, when you add stuff, keep the manifest up to date.
8658 2001-09-16 02:55  ask
8660         * Makefile.in: a "shared" target for building libparrot.so
8662 2001-09-16 02:45  thgibbs
8664         * bytecode.c, bytecode.h, events.h, exceptions.h, global_setup.c,
8665         global_setup.h, interpreter.c, interpreter.h, io.h,
8666         make_op_header.pl, memory.c, memory.h, parrot.c, parrot.h,
8667         process_opfunc.pl, register.c, register.h, stacks.h, string.c,
8668         string.h, strnative.c, strnative.h, test_main.c: Updated files to
8669         use the coding standard PDD.  Also changed Perl_Interp to
8670         Parrot_Interp.
8672 2001-09-16 02:21  ask
8674         * README: emphasise the bits about the license not being worked out
8675         yet.
8677 2001-09-15 22:21  simon
8679         * process_opfunc.pl:
8680         basic_opcodes.c should *scream* that it's autogenerated.
8682 2001-09-15 21:58  gregor
8684         * languages/jako/Makefile:
8685         Fixed Makefile to use 'jakoc' instead of 'jako_compiler.pl' to
8686         compile.
8688 2001-09-15 21:58  gregor
8690         * languages/jako/: jako_compiler.pl, jakoc:
8691         Renamed the Jako compiler to jakoc from jako_compiler.pl
8693 2001-09-15 21:51  gregor
8695         * languages/jako/: Makefile, bench.jako, euclid.jako,
8696         jako_compiler.pl:
8697         Added a new bench.jako example based on Leon Brocard's Bench.java.
8699         Jako Compiler:   * fix a bug in assignment handling   * add some
8700         more conditionals to while and if   * revert to using implicit
8701         opcodes in a few cases that were broken     before the assembler
8702         patch went in recently.
8704 2001-09-15 21:46  gregor
8706         * assemble.pl, basic_opcodes.ops, opcode_table:
8707         New ops for register-constant INTEGER comparisons:
8709           {eq,ne,lt,le,gt,ge}_ic_ic
8711         New ops for register-register and register-constant NUMERIC
8712         comparisons:
8714           eq_nc_ic
8715           {ne,lt,le,gt,ge}_{n,nc}_ic
8717         Assembler:
8719           Allow uppercase and underscores in labels.
8721           Tweaks to the op infer code to make it work with the examples
8722         I've been
8723           creating.
8725 2001-09-15 19:16  thgibbs
8727         * README: Updated README to include Configure.pl
8729 2001-09-15 17:05  simon
8731         * build_interp_starter.pl:
8732         Casting happiness
8734         Courtesy of: Jarkko Hietaniemi <jhi@cc.hut.fi>
8736 2001-09-15 16:45  simon
8738         * assemble.pl:
8739         And the same again: Parrot/Opcode.pm wasn't "..-aware".
8741 2001-09-15 16:40  simon
8743         * t/Makefile:
8744         The Parrot/Opcode.pm dependency means we need to do -I.. in the
8745         test Makefile
8747 2001-09-15 12:26  simon
8749         * memory.c:
8750         Fixed to match the coding standards.
8752         Courtesy of: Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
8754 2001-09-15 01:57  ask
8756         * Configure.pl, Makefile.in, Parrot/Opcode.pm,
8757         lib/Parrot/Opcode.pm: make the Makefile use the perl that was used
8758         to run Configure.pl
8760 2001-09-15 01:48  ask
8762         * Parrot/Opcode.pm, lib/Parrot/Opcode.pm: if we need perl 5.6, just
8763         say so. :-)
8765 2001-09-15 01:42  gregor
8767         * languages/jako/: euclid.jako, fact.jako, fib.jako,
8768         jako_compiler.pl:
8769         Compiler: Added variable interpolation in double-quoted strings.
8770         Examples: Made use of variable interpolation.
8772 2001-09-15 01:28  gregor
8774         * Parrot/.cvsignore:
8775         Ignore the Config.pm generated file.
8777 2001-09-15 01:22  gregor
8779         * languages/jako/: .cvsignore, Makefile, euclid.jako, fact.jako,
8780         fib.jako, hello.jako, jako_compiler.pl:
8781         gnp: Added some more sample Jako files and added many more
8782         operators to the compiler. Preparations for supporting all the Math
8783         and bitwise ops.
8785 2001-09-14 19:06  simon
8787         * assemble.pl, build_interp_starter.pl, disassemble.pl,
8788         make_op_header.pl, process_opfunc.pl, Parrot/Opcode.pm,
8789         lib/Parrot/Opcode.pm:
8790         Move common table reading stuff to a module.
8792         Courtesy of: Damien Neil <neild@misago.org>
8794 2001-09-14 17:42  simon
8796         * .cvsignore:
8797         More .cvsignore foo.
8799 2001-09-14 17:40  simon
8801         * assemble.pl, config_h.in:
8802         De-coredump
8804         Courtesy of: Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
8806 2001-09-14 17:38  simon
8808         * assemble.pl, t/Makefile:
8809         Make assemble.pl look in its parent directory if the data files it
8810         needs aren't in the current one. Plus a Makefile that lets "make
8811         foo.pbc" work in t/
8813         Courtesy of: Rocco Caputo <troc@netrus.net>
8815 2001-09-14 16:29  simon
8817         * make_op_header.pl:
8818         Wildly experimental patch to make Parrot compile on FreeBSD. (And
8819         probably segfault everywhere else.)
8821 2001-09-14 15:58  dan
8823         * languages/jako/: euclid.jako, jako_compiler.pl:
8825         Added in the first mini-language that targets Parrot.
8827         Courtesy of: "Gregor N. Purdy" <gregor@focusresearch.com>
8829 2001-09-14 15:20  dan
8831         * memory.c: Was misaligning returned memory. Fixed.
8833 2001-09-14 15:08  simon
8835         * Makefile.in, basic_opcodes.ops, bytecode.c, global_setup.c,
8836         interpreter.c, interpreter.h, memory.c, parrot.c, parrot.h,
8837         register.c, register.h, string.c, string.h, strnative.c,
8838         test_main.c:
8839         Fixes to include <parrot/foo.h>
8841         Courtesy of: Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
8843 2001-09-14 12:05  simon
8845         * strnative.c:
8846         Appease Tru64.
8848 2001-09-14 12:01  simon
8850         * memory.c:
8851         Appease Tru64.
8853 2001-09-14 11:54  simon
8855         * interpreter.c:
8856         Remove lvalue cast.
8858 2001-09-14 11:45  simon
8860         * Configure.pl:
8861         Be 5.005 friendly.
8863 2001-09-14 11:39  simon
8865         * Configure.pl:
8866         Tru64 cc doesn't like -Wall
8868 2001-09-14 10:57  simon
8870         * Config_pm.in, Configure.pl, MANIFEST, Makefile, Makefile.in,
8871         assemble.pl, build_interp_starter.pl, bytecode.c, bytecode.h,
8872         config.h.in, config_h.in, disassemble.pl, interpreter.c:
8873         Configure now generates Makefile
8875         Courtesy of: Brent Dax <brentdax@cpan.org>
8877 2001-09-14 10:08  simon
8879         * t/test3.pasm:
8880         Add "end"
8882         Courtesy of: Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
8884 2001-09-14 10:07  simon
8886         * assemble.pl:
8887                 * uses Getopt::Long for options.  -c is now --checksyntax.
8888         I wasn't
8889         sure how to keep compatible (patches welcome!)         * options
8890         include:                 --help                 --version
8891               --verbose                 --output=file
8892         --listing=file                 --checksyntax         * produces
8893         verbose listing of what the assembler saw :)  Only one nitpick with
8894         it:  unknown symbols are given as 0xffffffff, unfortunately, this
8895         includes symbols which may be defined later in the file (i.e.
8896         forward jumps).
8898         Courtesy of: Brian Wheeler <bdwheele@indiana.edu>
8900 2001-09-14 10:06  simon
8902         * strnative.c:
8903         substr growth fixup
8905         Courtesy of: Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
8907 2001-09-14 10:03  simon
8909         * bytecode.c, global_setup.c, interpreter.c, memory.c, memory.h,
8910         register.c, string.c, strnative.c, test_main.c:
8911         Coding standards conformance
8913         Courtesy of Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
8915 2001-09-14 09:46  simon
8917         * assemble.pl:
8918         Make the assembler grok transcendental maths again.  Courtesy of:
8919         Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
8921 2001-09-13 17:29  simon
8923         * assemble.pl:
8924         Better opcode guessing, from Brian Wheeler. (Again!)
8926 2001-09-13 17:20  dan
8928         * docs/parrot_assembly.pod:
8930         Took out duplicate entries for iton, ntoi, and tostring.
8932 2001-09-13 17:16  simon
8934         * assemble.pl, basic_opcodes.ops, opcode_table:
8935         From Brian Wheeler:
8937         This patch gives the assembler support of '\a','\n','\r','\t', and
8938         '\\' in string constants.
8940         In addition, it changes (for all registers) "I reg %li is ..." to
8941         just the value of the register.  Printing constants is also
8942         supported, but alas, you have to specify the type (print_sc,
8943         print_ic, print_nc).
8945 2001-09-13 15:38  simon
8947         * assemble.pl:
8948         Why don't I actually *test* this stuff before applying it, eh?
8950 2001-09-13 15:34  simon
8952         * TODO, t/euclid.pasm:
8953         From: "Gregor N. Purdy" <gregor@focusresearch.com> Subject: [patch
8954         (really)] Removed opcode qualifers t/euclid.pasm to exercise opcode
8955         inference
8957 2001-09-13 14:42  simon
8959         * assemble.pl:
8960         A new assembler, from Brian Wheeler.
8962 2001-09-13 09:44  simon
8964         * basic_opcodes.ops, interpreter.h, parrot.h, strnative.c,
8965         test_main.c:
8966         Two more from Tom Hughes:     Patch to fix C++ style comments
8967         Patch to remove use of structure constant/cast
8969 2001-09-13 09:39  simon
8971         * TODO, docs/strings.pod:
8972         Update string docs.
8974 2001-09-13 09:36  simon
8976         * Makefile, basic_opcodes.ops:
8977         Tom Hughes      Patch to link with the maths library Tom Hughes
8978          Patch to fix += on rvalue
8980 2001-09-13 08:57  simon
8982         * MANIFEST:
8983         I guess nobody's been using the nightly builds...
8985 2001-09-13 08:27  simon
8987         * assemble.pl, basic_opcodes.ops, opcode_table:
8988         Bitwise ops, from Brian Wheeler.
8990 2001-09-13 08:23  simon
8992         * .cvsignore, t/.cvsignore:
8993         .cvsignore's, from Gregor Purdy.
8995 2001-09-13 08:22  simon
8997         * Makefile:
8998         Euclidean test and test output rearranging from Gregor Purdy.
9000 2001-09-13 08:21  simon
9002         * assemble.pl, basic_opcodes.ops, disassemble.pl, opcode_table:
9003         Math ops from Gibbs Tanton.
9005 2001-09-13 08:14  simon
9007         * basic_opcodes.ops, opcode_table, string.c, string.h, strnative.c,
9008         t/test2.pasm:
9009         String substr op; also rearranged "encoding" to be a vtable
9010         pointer, not an array index. Haven't changed docs to reflect this,
9011         oops.
9013         Simon
9015 2001-09-12 19:48  dan
9017         * t/euclid.pasm: Implementation of Euclid's Algorithm, courtesy of
9018         Gregor Purdy
9020 2001-09-12 19:39  dan
9022         * basic_opcodes.ops, opcode_table: From Gregor Purdy. Adds mod_i.
9024 2001-09-12 19:23  dan
9026         * interpreter.h, parrot.h: Quick placeholder entry for string
9027         function tables
9029 2001-09-12 18:58  dan
9031         * memory.c: Added in a cast to make gcc happy.
9033 2001-09-12 16:44  dan
9035         * docs/parrot_assembly.pod:
9037         PDD describing parrot's assembly language and the opcodes in it
9039 2001-09-12 14:20  dan
9041         * memory.c:
9042         Fixed alignment issues with allocation
9044 2001-09-12 10:54  simon
9046         * Makefile, assemble.pl, bytecode.c, disassemble.pl,
9047         make_op_header.pl, opcode_table, process_opfunc.pl:
9048         Brian Wheeler's big patch:
9050         * Changes the opcode_table file to provide additional information
9051         about the operands.  Case shouldn't be a problem since that data
9052         never becomes a C symbol [this is pretty much as before]
9054         * Padding errors solved:  assemble.pl and bytecode.c were padding
9055         the constants incorrectly.  It should have been 4-(size % 4), not
9056         just (size % 4).  It is now fixed in both places.
9058         * assembler has less special cases, and should be easier to hang
9059         error checking on
9061         * disassembler dumps constant table and the format is a bit
9062         prettier, including register names, etc.
9064 2001-09-11 23:21  dan
9066         * build_interp_starter.pl, interpreter.c:
9068         Abstracted the runops function core into a macro for easy
9069         replacement later.
9071 2001-09-11 10:43  simon
9073         * Configure.pl, MANIFEST, Makefile, config.h, config.h.in:
9074         Configure system from Brent Dax <brentdax@cpan.org>
9076 2001-09-11 09:38  simon
9078         * assemble.pl, test.pbc:
9079         From: Bryan C. Warnock <bwarnock@raba.com> Subject: Patch:
9080         assembler deferred output
9082         Also got rid of the bytecode, since that's probably way out of
9083         date.
9085 2001-09-11 09:26  simon
9087         * basic_opcodes.ops, opcode_table, t/test2.pasm:
9088         From: Bryan C. Warnock <bwarnock@raba.com> Subject: length_s_i
9089         patch
9091 2001-09-10 23:20  simon
9093         * MANIFEST:
9094         And that move needs a MANIFEST change. So many things to remember!
9096 2001-09-10 23:18  simon
9098         * t/: test.pasm, test2.pasm, test3.pasm:
9099         Move tests to t/. (Oh, CVS doesn't work the way I think it does.)
9101 2001-09-10 23:18  simon
9103         * test.pasm, test2.pasm, test3.pasm:
9104         Move tests to t/
9106 2001-09-10 23:04  dan
9108         * test3.pasm:
9110         Register push/pop test
9112 2001-09-10 22:47  simon
9114         * basic_opcodes.ops, bytecode.c, parrot.h, test_main.c:
9115         Fix up format warnings, from Sam Tregar <sam@tregar.com>.
9116         (Modified to avoid conflict with Dan's changes.)
9118 2001-09-10 22:45  dan
9120         * disassemble.pl:
9122         Happier about blanks in opcode_table
9124 2001-09-10 22:40  dan
9126         * interpreter.c, register.c:
9128         Yanked out debugging code, since these work OK. The bug I want is
9129         elsewhere.
9131 2001-09-10 22:30  simon
9133         * MANIFEST:
9134         Uhm. We want make_op_header.pl. We really, really do.
9136 2001-09-10 22:26  simon
9138         * Makefile, TODO, assemble.pl, basic_opcodes.ops,
9139         build_interp_starter.pl, disassemble.pl, make_op_header.pl,
9140         opcode_table, process_opfunc.pl:
9141         Automatic opcode numbering, from Leon Brocard <acme@astray.com>.
9142         This means we can add lots more opcodes without fiddling about with
9143         the numbers. Hooray!
9145         Don't forget that "end" needs to be op zero, else the interpreter
9146         falls off the end of the code. This is Bad, and I wonder if there's
9147         a way around it.
9149 2001-09-10 19:49  simon
9151         * MANIFEST, make_op_table_build.pl:
9152         Hey! This doesn't do anything...
9154 2001-09-10 19:46  simon
9156         * Makefile:
9157         "clean" target cleanup from Bryan C. Warnock <bwarnock@raba.com>.
9159 2001-09-10 18:31  simon
9161         * MANIFEST:
9162         You know what this means...
9164 2001-09-10 18:30  simon
9166         * assemble.pl:
9167         "use strict" patch from Leon Brocard <acme@astray.com>. Hey, why
9168         wait for a release...? :)
9170 2001-09-10 18:13  simon
9172         * interpreter.c:
9173         Bad Dan! No cookie!
9175 2001-09-10 17:56  simon
9177         * README:
9178         A *real* README file, which doesn't claim it isn't for public
9179         consumption.
9181 2001-09-10 17:02  simon
9183         * TODO:
9184         More things to do.
9186 2001-09-10 16:56  dan
9188         * TODO: Added in assembler gripe. Also added a few blank lines for
9189         clarity
9191 2001-09-10 16:49  dan
9193         * register.h, register.c: Renamed the core functions so the opcodes
9194         can find 'em OK. (There were some conflicts)
9196 2001-09-10 16:48  dan
9198         * basic_opcodes.ops, opcode_table: Added register window ops
9200 2001-09-10 11:07  simon
9202         * TODO:
9203         Trivial TODO list.
9205 2001-09-10 11:05  simon
9207         * test.pbc, test2.pasm, test_main.c: Other string bits and pieces;
9208         note "-s" flag to test prog.
9210 2001-09-10 11:01  simon
9212         * docs/strings.pod:
9213         New string documentation.
9215 2001-09-10 11:01  simon
9217         * basic_opcodes.ops, opcode_table:
9218         String ops.
9220 2001-09-10 10:53  simon
9222         * global_setup.c:
9223         More string fu.
9225 2001-09-10 10:51  simon
9227         * memory.h:
9228         Just some more aliases for now. Used by string handling stuff.
9230 2001-09-10 10:50  simon
9232         * assemble.pl, bytecode.c, bytecode.h:
9233         Temporary hack to store string constants in bytecode and recreate
9234         them at runtime.
9236 2001-09-10 10:48  simon
9238         * op.h:
9239         op.h is now generated by the Makefile; remove it.
9241 2001-09-10 10:47  simon
9243         * Makefile:
9244         clean and op.h Makefile targets.
9246 2001-09-10 10:45  simon
9248         * string.c, string.h, strnative.c:
9249         More string vtable stuff.
9251 2001-09-07 21:07  dan
9253         * assemble.pl:
9255         Much less picky about whitespace in the opcode_table now. (Doesn't
9256         whine on blank lines)
9258 2001-09-07 16:23  dan
9260         * Makefile, assemble.pl, global_setup.h, interpreter.c,
9261         interpreter.h, opcode_table, parrot.h, test.pasm: (Here's hoping
9262         this takes) Added global_setup.h to declare init_world function
9264         Moved variable declarations out of the interpreter loop for small
9265         speed boost.
9267         Changed end opcode to now be opcode #0. A function is provided for
9268         it, but isn't ever executed.
9270         When the interpreter sees an opcode 0 in the stream it means the
9271         end of stream. Things were coring on Cygwin otherwise. (I think I
9272         was dereferencing a zero, which is bad)
9274 2001-09-06 22:07  dan
9276         * basic_opcodes.ops, process_opfunc.pl:
9278         Minor tweaks to basic_opcodes.ops to fix some NV issues. The rest
9279         are minor changes now that things are in a fixed state.
9281 2001-09-06 16:13  dan
9283         * basic_opcodes.c, test_opcodes.c:
9284         test_opcodes.c is now irrelevant--they're all in basic_opcodes.ops.
9286         basic_opcodes.c is now autogenerated from basic_opcodes.ops, and
9287         should be nuked. So it is. :)
9289 2001-09-06 03:35  dan
9291         * basic_opcodes.ops, build_interp_starter.pl, process_opfunc.pl:
9292         Scripts to build the header file that holds the function table
9293         creation code, as well as the script to turn an opcode file to C
9294         source. (And the basic opcode functions turned into an opcode
9295         source file)
9297 2001-09-06 03:31  dan
9299         * Makefile, interpreter.c:
9300         Changes to support the autogeneration of the opcode function
9301         pointer table in interpreter.c, along with the changes to the
9302         Makefile needed.
9304 2001-09-05 13:27  simon
9306         * bytecode.c, config.h, docs/opcodes.pod, docs/overview.pod,
9307         docs/parrotbyte.pod, docs/vtables.pod:
9308         Added stubs for the documents; working on them this week. (What's
9309         left of it.) config.h change is just to type VTABLE, and the
9310         bytecode thing you might want to revoke. It's apidoc for the
9311         functions in there.
9313 2001-09-03 18:26  simon
9315         * docs/strings.pod:
9316         A start on the string API documentation.
9318 2001-09-03 17:43  simon
9320         * opcode_table:
9321         Since we specify the opcode number, we can rearrange to a more
9322         human-friendly ordering.
9324 2001-09-03 17:42  simon
9326         * basic_opcodes.c:
9327         Coupl'a logic bugs. (I think)
9329 2001-09-03 17:41  simon
9331         * string.c, string.h, strnative.c:
9332         Tidying up the string vtables.
9334 2001-09-03 17:38  simon
9336         * make_op_header.pl:
9337         Spit out the whole of op.h, not just the bit in the middle.
9339 2001-08-29 13:16  ask
9341         * README: it seems like we indeed can commit. What about sending
9342         commit mails?
9344 2001-08-29 13:07  simon
9346         * Makefile, README, assemble.pl, basic_opcodes.c, bytecode.c,
9347         bytecode.h, config.h, disassemble.pl, events.h, exceptions.h,
9348         global_setup.c, interpreter.c, interpreter.h, io.h,
9349         make_op_header.pl, make_op_table_build.pl, memory.c, memory.h,
9350         op.h, opcode_table, parrot.c, parrot.h, register.c, register.h,
9351         stacks.h, string.c, string.h, strnative.c, strnative.h, test.pasm,
9352         test.pbc, test_main.c, test_opcodes.c:
9353         Initial checkin of Simon's work directory - Dan, feel free to nuke.
9354          I'm still working on the string stuff, though.
9356 2001-08-29 12:44  ask
9358         * README: update README with list address
9360 2001-08-29 12:36  ask
9362         * README: first readme.