* src/pmc/bigint.pmc:
[parrot.git] / ChangeLog
blobb6c90916c14b4fd96cf7d7e54ed2d014abd1b984
1 #1 $Id$
4 2007.04.17    mdiep
5         * Released 0.4.10
6         See NEWS for more.
8 2007.03.20    coke
9         * Released 0.4.10
10         See NEWS for more.
12 2007.3.10     coke
13         * removed parakeet
15 2007.02.22    pmichaud
16         * Released 0.4.9
17         See NEWS for more.
19 2007.01.17    chromatic
20         * changed 'name' method on namespaces to 'get_name' per pdd21
22 2007.01.16    particle
23         * Released 0.4.8
24         See NEWS for more.
26 2006.12.12    particle
27         * added C<isnull> opcode
29 2006.11.14    chip
30         * Released 0.4.7
31         See NEWS for more.
33 2006.11.07      tewk
34         * added :init pragma functionality to subs
36 2006.10.28      jonathan
37         * added :vtable pragma functionality to subs
39 2006.09.18    chromatic
40         * added Parrot::Embed under ext/Parrot-Embed
42 2006.08.18    leo
43         * remove the None PMC - if needed it can trivially be reimplemented
44           in languages from r14189
46 2006.08.16    creiss
47         Merged Software Transactional Memory branch into trunk, adds:
48         * several new opcodes whose names start with stm_
49         * read-only PMC support
50         * several new PMC types (whose names start with STM*)
51         * support for threads (again)
53 2006.08.08    chip
54         * Released 0.4.6
55         See NEWS for more.
57 2006.08.02    chip
58         * opcodes: "in PMC" is no longer a synonym for "invar PMC";
59         there are opcodes now that want the real "in PMC".
60         * namespace and global opcodes now accept name arrays again, as
61         well as keys; the corresponding namespace PMC methods are gone.
63 2006.07.21    leo
64         * Parrot_exit, Parrot_on_exit take now an Interp * argument
66 2006.07.25    chip
67         * add experimental op find_type_i_p
68         * fix longstanding bug that sometimes didn't encode pasm keys as
69         Key PMCs (specifically "[S0]" and "['stringliteral']").
71 2006.07.24    chip
72         further implementation of new pdd21:
73         * new opcodes {get,set}*global
74           (old {find,store}*global will be supported for a short while)
76 2006.07.20    audreyt
77         * --maintainer prerequesites are now bison 2.2+ and flex 2.5.3x
78           (or some such --leo) 
79           (at the moment code is checking for 2.0 -- ambs)
81 2006.07.17    chip
82         partial implementation of new pdd21:
83         * old: "get_namespace KEY".  new: "get_hll_namespace KEY"
84         * get_namespace and find_global opcodes no longer accept arrays
85           of strings.  To use arrays, call namespace object methods.
87 2006.06.19    leo
88         * Released 0.4.5
89         See NEWS for more.
91 2006.06.03    leo
92         * I and N registers are never cleared to 0 / 0.0 on subroutine entry
94 2006.05.14    leo
95         * Released 0.4.4
96         See NEWS for more.
98 2006.04.30    bernhard
99         * Make the Perl PMCs dynamic and move them to src/dynpmc
101 2006.04.02    leo
102         * Released 0.4.3
103         See NEWS for more.
105 2006.03.06    leo
106         * Shifted argument type bits left by 2 according to r11754
107           change of docs/pdds/pdd03_calling_conventions.pod
108         * if you are creating PASM then code needs adjustment  
110 2006.02.22    leo
111         * Released 0.4.2
112         See NEWS for more.
114 2006.01.16    bernhard
115          * rename src/dynclasses to src/dynpmc 
116          * rename src/classes to src/pmc 
118 2006.01.15    leo
120          * find_global and friends returns a .Null PMC instead of .Undef on
121           lookup failure, iff lookup exceptions are off
123 2006.01.08    leo
124         * Released 0.4.1
125         See NEWS for more.
127 2005.12.28    particle
128         * renamed all .imc files to .pir
129         * modified all doc references to .pir as well
131 2005.12.13    particle
132         * moved jit/ directory to src/jit/
134 2005.12.12    particle
135         * moved io/ directory to src/io/
136         * moved classes/ directory to src/classes/
137         * moved dynclasses/ directory to src/dynclasses/
139 2005.12.08    particle
140         * moved types/ directory to src/types/
141         * moved pf/ directory to src/packfile/
142         * moved ops/ directory to src/ops/
144 2005.12.08    particle
145         * moved charset/ directory to src/charset/
146         * moved encodings/ directory to src/encodings/
148 2005.12.07    particle
149         * moved imcc/ directory to compilers/imcc/
151 2005.12.06    particle
152         * moved util/ directory to tools/util/
153         * removed imcc/examples/ directory
154         * moved ast/ directory to compilers/ast/
156 2005.12.05    particle
157         * moved imcc/docs/ directory to docs/imcc/
158         * moved build_tools/ directory to tools/build/
159         * modified MANIFEST, MANIFEST.generated, and MANIFEST.SKIP
161 2005.12.04    leo
162         * Released 0.4.0
163         * See NEWS for changes
165 2005.11.06    leo
166         * Released 0.3.1
167         * See NEWS for changes
169 2005.10.01    leo
170         * Released 0.3.0
171         * See NEWS for changes
173 2005.08.05    leo
174         * Released 0.2.3
175         * See NEWS for changes
177 2005.07.03    leo
178         * Released 0.2.2
179         * See NEWS for changes
181 2005.06.04    leo
182         * Released 0.2.1
183         * allow short names for object attributes
184         * string encoding and charset can now be set independently
185         * experimental mmap IO layer for slurping files
186         * enable compile opcode support for compilers written in PASM/PIR
187         * improved HLL support with .HLL and n_operators pragmas
188         * simplified hash code
189         * more strength reduce optimizations
190         * distinct debug and trace flag settings
191         * glob support in PGE
192         * new character classification opcodes and interfaces
193         * numerous bug fixes and enhancements
195 2005-05-08    leo
196         * Released 0.2.0
197         * parrot repository is now under subversion
198         * MMD (Multi Method Dispatch) enhanced
199         * new unary and infix opcodes that return new result PMCs
200         * dynamic scalar PMCs inherit now almost all from Parrot core PMCs
201         * more unification of PMCs and ParrotObjects
202         * tailcalls for functions and methods
203         * PGE (Parrot Grammar Engine) reworked
204         * Pugs creates Parrot code and Pugs is a registered compiler now
205         * new languages/lisp
206         * the usual bug fixes and improvements
208 2005-03-06    leo
209         * Released 0.1.2
210         * big rewrite of string code, not yet finished but ...
211         * partial implementation of a generational garbage collector
212         * indirect register frame addressing
213         * .return(args) PIR syntax
214         * moved most of the Python code to dynclasses
215         * a lot more Python functionality
216         * precalculate opcodes with all constants
217         * PGE - Parrot Grammar Engine
218         * scalar classes refactoring
219         * much more tests and big test system cleanup
220         * improved documentation
221         * and as always a lot more
223 2004-10-09    leo
224         * Released 0.1.1
225         * Need Perl 5.6 now for building
226         * Basic AST support, PAST file parser, bits of code generation
227         * BigInt PMC using GMP
228         * Complex PMC
229         * Dynamic loading improved including bundles of PMC classes
230         * Experimental support for "make install"
231         * IA64 and hppa JIT support
232         * ICU unicode support
233         * IO layer handling code
234         * IO readline and buffered IO fixes
235         * Incremental GC
236         * Internal pythonic functions: filter, map, reduce, max, min ...
237         * Languages updates for m4, tcl, perl6, regex. New parakeet language.
238         * Library updates, Stream and SDL library
239         * MMD - multi method dispatch for binary vtable methods
240         * Many new array PMCs
241         * Method call syntax in PIR obj."meth"(...)
242         * More OS stuff: stat, exec, system, gmtime, piped read and write
243         * New Python PMCs like Enumerate, None
244         * Non-branching compare opcodes
245         * PIR support for += and friends
246         * Python language subdir
247         * Python types mapped to existing PMCs
248         * Slices and range support
249         * Tons of bug fixes, documentation updates, new tests
250         * Win32 COFF exec support
251         * ... and a lot more
253 2004-02-29    leo
254         * Released 0.1.0
255         * "Ladies and gentlemen, I give you... objects!"
256         * Huge documentation overhaul
257         * More supported platforms, s. PLATFORMS
258         * Basic thread support for pthread based architectures
259         * Basic event handling for timers and signals including:
260         * PASM callbacks for NCI (native C) functions.
261         * Improved platform configuration
262         * COW stacks now working, stacks code redone
263         * Structure handling vastly improved
264         * Random PMC and rand primitives
265         * Better subroutine call syntax in PIR
266         * Make PIR subroutines compliant with pdd03
267         * Improved profiling (DOD, GC timings)
268         * Hash code improvements, incl. random key order support
269         * Experimental freeze/thaw code for some PMC types
270         * IO improvements for buffered layer and Win32
271         * String iterators
272         * String bitwise vtables
273         * Many new opcodes
274         * Support for JIT, where malloced memory isn't executable
275         * Priority DOD scheme for objects that need timely destruction
276         * Improved bytecode loading (e.g. onLoad functions)
277         * Language updates: forth, Perl6/P6C, m4
278         * Libraries: Getopt_Long, SDL, Dumper, Sort
279         * new JAPH examples
280         * Unified imcc and parrot test handling
281         * Many new tests (make test reports 1386 tests)
282         * Numerous bug fixes
285 2003-10-31    leo
286         * Released 0.0.13
287         * Yep thirteen - haunted by the ghost of 0.0.12
288         * Build imcc as parrot
289         * Objects more finished
290         * Delegate vtable methods to byte code
291         * Binary multi-method dispatching
292         * Isa and does methods for PMCs
293         * Call byte code from C
294         * Start of extension interface
295         * Experimental struct handling
296         * Catch access to NULL PMCs
297         * Experimental network socket interface code and opcodes
298         * IO fixes and improvements
299         * Dynamic opcode libraries
300         * Fix-assigned opcode numbers
301         * Argument flattening for function calls
302         * More native call interface (NCI) signatures
303         * Ncurses, postgres, and pcre interface libraries
304         * Forth language is vastly improved
305         * BSD and Win32 build improvements
306         * Many new tests and fixes
308 2003-10-22    melvin
309         * imcc moved from parrot/languages/ to parrot/
311 2003-09-20    sfink
313         * updated the native_pbc test files (from Leo)
314         * built 0.0.11.1 release tarball
316 2003-09-20    sfink
318         * CHANGES BUNDLED INTO 0.0.11:
319         * Executable output
320         * Dynamic PMC registration
321         * Trial exception system
322         * Beginnings of object system
323         * Iterators
324         * Ordered hashes
325         * I/O system improvements
326         * References
327         * Documentation for basic PMC types
328         * IMCC support of Parrot Calling Conventions
329         * Runtime loading of chartypes (and other string improvements)
330         * Conditional breakpoints
331         * Dramatically accelerated sweeps for finalizable objects
332         * Small PMCs (PMCs split into core and extensions)
333         * Loadable bytecode packfiles
334         * Constant PMCs
335         * Sub variants that deal with the stack correctly
336         * Switched runops core
337         * Line numbers in warnings
338         * Environment access
339         * Many documentation cleanups
340         * Conversion to CPS style!
341         * BASIC debugger and many other wacky features
342         * Filename, line number parsing support in IMCC
344 2003-07-21 17:31 chromatic
345         * applied copyright patch from Josh Wilmes
347 2003-06-14 13:50 dan
348         * Moved the registers out of the context structure, since they
349           really aren't context
350         * Changed the register stack frames to hold only 16 registers
351           rather than 32, added half-set push and pop ops, and reworked
352           the full set push/pops to do two half-set push/pops. Should
353           speed up saving register data on calls, since we usually only
354           care about the top half of the registers anyway.
355         * Started committing some of the new class/object framework
356         * Remembered to finally start updating the Changelog
358 2003-03-18 03:50  ask
360         * Various files
361           Update Yet Another copyright statements to reflect the (no longer
362           so) shiny new year.
364 2003-03-11 22:06  chip
366         * Configure.pl: print help on non-option command line args
368 2002-12-18 20:38  sfink: changes since 0.0.8
370         - Allow suppression of cgoto core to save memory during compile
371         * Native function calling interface
372         * Major rewrite of stack and list aggregates
373         - Scalar PMC added
374         * Scratchpads implemented
375         - Win32 libraries
376         - Internal memory subsystem documentation
377         * Preliminary DotGNU support
378         - Packfile fingerprinting
379         * Buffer/PMC unification (into PObjs)
380         * stabs debugging information support
381         * Major Jako overhaul, including:
382           - imcc integration
383           - native function calling
384         - Perl6 string interpolation
385         - languages/regex now targets IMCC
386         * Optional Lea memory allocator
387         * Full sprintf implementation
388         * Many, many new tests
389         * Miniparrot
390         - exchange ops
391         - runtime-controllable gc debugging
392         * PMC properties
393         - Crash info
394         * JIT: various improvements
395           - register usage tracking
396           - block register allocation
397           - optimizations
398           - more jitted ops
399           - restartable
400           - architecture abstraction layer
401           - debugging via GDB
402         * Beginning support for extensible packfiles
403         * Much better key support, generally
404         * splice()
405         * Restructured PMC hierarchy with better functionality inheritance
406         * IMCC: many, many improvements. See imcc/ChangeLog
407         * Perl6: index map grep join reverse defined
408         * Scheme with functions!
411 2002-03-19 22:54  nicholas
413         * docs/running.pod: Patch from Simon Glover <scog@amnh.org>:
415          We can now get usage information for test_parrot without having to
416          grep the source.
418 2002-03-19 22:53  simon
420         * Configure.pl:
421         Parrot is called parrot.
423 2002-03-19 22:53  nicholas
425         * docs/tests.pod: Patch from Simon Glover <scog@amnh.org>:
427          1. There are tests in t/pmc as well as t/op now.
428          2. Adds a comment about Parrot::Test
430 2002-03-19 18:09  dan
432         * Configure.pl, examples/assembly/life.pasm: Toss a prompt that
433         messes up automated builds
435         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
437 2002-03-19 00:33  mrjoltcola
439         * core.ops: Doc cleanup from Simon Glover.
441 2002-03-18 23:52  mrjoltcola
443         * io/io_unix.c: Typo fix for invalid lvalue caught by David Loyd.
445 2002-03-18 22:09  dan
447         * include/parrot/resources.h: Checked in old version
449 2002-03-18 20:17  dan
451         * include/parrot/resources.h: Forgot a prototype
453 2002-03-18 20:15  dan
455         * resources.c: D'oh! Thinko, fixed.
457         Courtesy of "Peter Gibbs" <peter@emkel.co.za>
459 2002-03-18 17:33  josh
461         * Configure.pl: Lowering the bar a bit.
463 2002-03-18 17:33  sfink
465         * languages/regex/: MAINTAINER, Makefile, README, regex.pl,
466         test.pl, lib/Regex.pm, lib/Regex/AsmOps.pm, lib/Regex/CodeGen.pm,
467         lib/Regex/Generate.pm, lib/Regex/Grammar.pm, lib/Regex/Grammar.y,
468         lib/Regex/Optimize.pm, lib/Regex/Parse.pm, lib/Regex/Pasm.pm,
469         lib/Regex/PreOptimize.pm, lib/Regex/RegexOps.pm,
470         lib/Regex/Rewrite.pm, lib/Regex/CodeGen/Re.pm,
471         lib/Regex/CodeGen/Rx.pm, lib/Regex/Rewrite/Re.pm,
472         lib/Regex/Rewrite/Rx.pm, lib/Regex/Rewrite/Stackless.pm,
473         t/example.t: Whoops, wrong time to check this in.
475 2002-03-18 16:42  dan
477         * memory.c, resources.c: Partial fix for GC's memory trouncing. At
478         least we consider the PMC and Buffer free pools worth collecting,
479         and initialize the Buffer pool stuff.  Still not 100% correct,
480         though.
482 2002-03-18 15:35  simon
484         * packfile.c:
485         Fix format arg bug.
487 2002-03-18 07:45  brentdax
489         * Configure.pl: Warn if you're using 64-bit ints on a 32-bit
490         system.
492 2002-03-18 00:09  sfink
494         * languages/regex/: MAINTAINER, Makefile, README, regex.pl,
495         test.pl, lib/Regex.pm, lib/Regex/AsmOps.pm, lib/Regex/CodeGen.pm,
496         lib/Regex/Generate.pm, lib/Regex/Grammar.pm, lib/Regex/Grammar.y,
497         lib/Regex/Optimize.pm, lib/Regex/Parse.pm, lib/Regex/Pasm.pm,
498         lib/Regex/PreOptimize.pm, lib/Regex/RegexOps.pm,
499         lib/Regex/Rewrite.pm, lib/Regex/CodeGen/Re.pm,
500         lib/Regex/CodeGen/Rx.pm, lib/Regex/Rewrite/Re.pm,
501         lib/Regex/Rewrite/Rx.pm, lib/Regex/Rewrite/Stackless.pm,
502         t/example.t: Buggy 1st version of regex compiler implementation.
503         Warning: the test code depends on features of the assembler that do
504         not yet exist.
506 2002-03-17 21:35  ajgough
508         * types/: bignum.c, bignum_atest.pl: Added a couple of quick routes
509         through addition and subtraction.  Also added the ability to run
510         all the tests, including the ones which deal with overflow and
511         underflow.  These fail, but that's expected.  Soon they'll pass.
512         Then I'll show them.  Yesssssss.  Tessssssssts my precioussssss,
513         passsssssssings tesssstsssss.
515 2002-03-17 20:06  ajgough
517         * types/: bignum.c, bignum.h, bignum_test.pl: Modified
518         check_(under|over)flow to test bignumbers, rather than values.
519         context now carries E_limit, from which max and min exp are found.
521         Added a default-context-creating function (although this isn't the
522         same as either of the default contexts defined in the eda).
524 2002-03-17 13:31  ajgough
526         * types/: bignum.c, bignum.h: Made BN_round and BN_iround so that
527         exported version matches prototypes of other public functions.
529 2002-03-17 06:44  josh
531         * chartype.c, encoding.c, memory.c, misc.c, packdump.c, packfile.c,
532         packout.c, resources.c, string.c, include/parrot/encoding.h: Some
533         last-minute re-indenting.
535 2002-03-17 05:07  mrjoltcola
537         * io/io_unix.c: Clear up unsigned compare caught by Solaris GCC.
539 2002-03-16 23:17  nicholas
541         * classes/default.pmc: Patch from Simon Glover <scog@amnh.org> to
542         remove warnings:
544          default.pmc: In function `Parrot_default_get_integer_keyed':
545          default.pmc:50: warning: control reaches end of non-void function
546          default.pmc: In function `Parrot_default_get_number_keyed':
547          default.pmc:58: warning: control reaches end of non-void function
548          default.pmc: In function `Parrot_default_get_string_keyed':
549          default.pmc:67: warning: control reaches end of non-void function
550          default.pmc: In function `Parrot_default_get_pmc_keyed':
551          default.pmc:87: warning: control reaches end of non-void function
553 2002-03-16 18:50  ajgough
555         * types/: bignum.c, bignum.h: Lots of prototypes changed in
556         readiness for nicely telling your caller about any oddness you've
557         caused in the persuit of flow.
559 2002-03-16 17:38  dan
561         * interpreter.c, resources.c, docs/pdds/pdd09_gc.pod,
562         include/parrot/interpreter.h, include/parrot/resources.h: Now we
563         can control the GC and DOD, to stop it when we don't really want
564         it.
566 2002-03-16 16:58  dan
568         * resources.c, vtable.tbl, classes/default.pmc,
569         include/parrot/resources.h: Added the last code to let PMCs control
570         their marking at DOD time
572 2002-03-16 16:57  ajgough
574         * types/bignum.c: Ok, I worked out how to not have lots of tabs.  I
575         feel a little more virtuous now.  Really I do.  You might not
576         believe me, but you should.  perl -pne 's/\t/        /g', if you're
577         curious.
579 2002-03-16 16:57  josh
581         * packfile.c, packout.c: M-x untabify is my new friend.
583 2002-03-16 16:50  josh
585         * trace.c, resources.c: Minor whitespace tweak for the benefit of
586         check_source_standards.pl
588 2002-03-16 16:50  ajgough
590         * types/: bignum.c, bignum.h: More documentation, separate
591         functions into public and private sorts, some initial stuff to cope
592         with over and underflow correctly.
594 2002-03-16 16:49  josh
596         * resources.c: Re-indented (sorry bout the big diff)
598 2002-03-16 16:47  bdwheele
600         * examples/assembly/fact.pasm: This fixes fact.pasm so it will
601         assemble again, both with Simon's new assembler and with the old
602         one.
604 2002-03-16 16:33  mrjoltcola
606         * io/TODO: Get the TODO up-to-date for 0.0.4.
608 2002-03-16 16:11  josh
610         * Configure.pl: Patch from Nicholas Clark <nick@unfortu.net>: stops
611         silly people (such as me) running Configure with
612         /usr/local/bin/perl (which is 5.004_05) and not realising their
613         mistake until the pmc subdirectory, where the first qr// is
614         encountered.
616         Syntax error messages don't tell you what you did wrong. This does:
618         /usr/local/bin/perl Configure.pl Perl 5.00503 required--this is
619         only version 5.00405, stopped at Configure.pl line 10.
621 2002-03-16 14:38  ajgough
623         * Makefile.in: Small fix to Makefile.in to keep Irix make happy
624         with commenting.
626 2002-03-16 11:45  simon
628         * MANIFEST, examples/assembly/xml_parser.pasm:
629         Added Clint Pierce's XML parser.
631 2002-03-15 22:24  simon
633         * packout.c:
634         Don't need that function.
636 2002-03-15 21:56  simon
638         * Makefile.in, include/parrot/packfile.h:
639         Rebuild packout.o, since it'll be used for the Packfile XS module
641 2002-03-15 19:45  dan
643         * include/parrot/: memory.h, pmc.h: Another add-in for GC
645 2002-03-14 19:48  dan
647         * core.ops: No string to int for some reason
649 2002-03-14 18:45  dan
651         * string.c, t/op/string.t: Fix 0-length substr problem
653 2002-03-14 14:46  dan
655         * core.ops, interpreter.c, resources.c, classes/array.pmc,
656         classes/perlarray.pmc, examples/assembly/life.pasm,
657         include/parrot/interpreter.h, include/parrot/resources.h: Added in
658         a counter for copied memory, with a display in life.pasm
660 2002-03-14 03:16  mrjoltcola
662         * MANIFEST: Update MANIFEST courtesy of Simon Glover.
664 2002-03-13 23:43  simon
666         * packfile.c:
667         Oops.
669 2002-03-13 23:43  simon
671         * packfile.c:
672         Hangs head in shame.
674 2002-03-13 21:31  simon
676         * MANIFEST:
677         FAQ moved.
679 2002-03-13 18:06  simon
681         * string.c:
683         Fix string_compare screw-up.
685 2002-03-13 18:02  brentdax
687         * docs/: parrot.pod, ParrotFAQ.htm, faq.pod: Move the FAQ into POD
688         and add a new question/answer pair.
690 2002-03-12 22:53  mrjoltcola
692         * io.ops: Quick and dirty read ops for PIO. No warranty provided.
694 2002-03-12 22:48  mrjoltcola
696         * examples/assembly/io2.pasm: Quick and dirty read ops for PIO. No
697         warranty provided.
699 2002-03-12 22:29  ajgough
701         * docs/pdds/pdd14_bignum.pod: Ooops, it is #14, really.
703 2002-03-12 22:24  ajgough
705         * docs/pdds/pdd14_bignum.pod: Creation of bignumber pdd, update to
706         version 1.1, Don't know if this is the correct number, but I don't
707         want this stuck on my harddrive where it will get lost, so 14 it is
708         :)
710 2002-03-12 11:35  simon
712         * MANIFEST, packdump.c, packout.c:
714         Just so the functionality doesn't disappear.
716 2002-03-12 11:33  simon
718         * Makefile.in, chartype.c, encoding.c, packfile.c,
719         chartypes/unicode.c, chartypes/usascii.c, encodings/singlebyte.c,
720         encodings/utf16.c, encodings/utf32.c, encodings/utf8.c,
721         include/parrot/chartype.h, include/parrot/encoding.h,
722         include/parrot/packfile.h:
724         Packfile axing.
726 2002-03-11 23:06  nicholas
728         * core.ops: Patch from Simon Glover <scog@roe.ac.uk>:
730           Core.ops documentation nits
732 2002-03-11 23:05  nicholas
734         * t/pmc/pmc.t: Patch from Simon Glover <scog@roe.ac.uk>:
736           Most of the PerlUndef tests in pmc.t appear to have been added
737         twice.
738           Enclosed patch removes the duplicates.
740 2002-03-10 23:40  nicholas
742         * t/pmc/perlstring.t: Patch from Simon Glover <scog@amnh.org>:
744          More tests for the PerlString test-suite.
746 2002-03-10 23:40  nicholas
748         * t/op/time.t: Patch from Simon Glover <scog@amnh.org>:
750         test for sleep with negative argument
752 2002-03-10 21:58  nicholas
754         * t/op/rx.t: Patch from Simon Glover <scog@amnh.org>:
756          Enclosed patch fixes up a few more holes in our test coverage.
758 2002-03-10 21:18  mrjoltcola
760         * classes/array.pmc, classes/default.pmc, classes/intqueue.pmc,
761         classes/parrotpointer.pmc, classes/perlarray.pmc,
762         classes/perlhash.pmc, classes/perlint.pmc, classes/perlnum.pmc,
763         classes/perlstring.pmc, classes/perlundef.pmc,
764         include/parrot/pmc.h, core.ops, pmc.c, vtable.tbl: Add size
765         argument to the init() vtable method so PMCs have the option to
766         know how to size themselves at creation. size could be N elements
767         or a byte count, depending on the PMC or it may simply be ignored.
768         Overloaded 'new' opcode for optional arg.
770 2002-03-10 21:15  mrjoltcola
772         * lib/Parrot/Assembler.pm: Minor patch to the assembler for the
773         new_p_ic_ic opcode to work same as new_p_ic (looks up a named
774         class).
776         Also added small hack for .sub directive (which simply translates
777         to a label, however we might eventually want to collect these to
778         validate bsr calls.
780 2002-03-10 15:09  ajgough
782         * types/: bignum.c, bignum.h, bignum_atest.pl, bignum_test.pl:
783         Added round_floor and round_ceiling.  3403 tests pass, none fail.
785 2002-03-10 03:56  ajgough
787         * types/: bignum.c, bignum_atest.pl: Added extended stuff to
788         divide, divide integer and remainder.  All filled in functions now
789         have special values capability.
791         Much remains to be done though, and the pdd needs to catch up.
793 2002-03-10 01:36  ajgough
795         * types/bignum.c: Added extended stuff to _add, _subtract.
797 2002-03-10 00:14  nicholas
799         * t/op/: integer.t, number.t: Patch from Simon Glover
800         <scog@roe.ac.uk>:
802          The enclosed patch fixes a few of the holes in our test coverage
803          uncovered by Josh Wilmes
805 2002-03-09 23:03  ajgough
807         * types/: bignum.c, bignum.h: Modified compare to work with
808         extended values.  Made a couple of changes here and there to allow
809         BN_comp to take a context, so that an is_zero check doesn't clobber
810         negative zeros.
812 2002-03-09 22:19  ajgough
814         * types/: bignum.c, bignum.h, bignum_atest.pl, bignum_test.pl:
815         Unary plus now copes with special values.
817 2002-03-09 04:25  ajgough
819         * types/: bignum.c, bignum_atest.pl, bignum_test.pl: Exception
820         traps and flags are now enabled and tested for all the standard
821         tests for all the functions which are currently implemented.  Test
822         harness faffed with to allow these to be tested.
824 2002-03-09 02:29  josh
826         * encodings/singlebyte.c, encodings/utf16.c, encodings/utf32.c,
827         encodings/utf8.c, chartypes/unicode.c, chartypes/usascii.c:
828         Re-indented
830 2002-03-09 02:22  josh
832         * config_h.in: tab-blastin'
834 2002-03-09 02:21  josh
836         * check_source_standards.pl: Play nicer with M-x compile- don't
837         bother giving line numbers for things you don't want to look at.
839 2002-03-09 02:10  josh
841         * examples/mops/mops.c: re-indented
843 2002-03-09 02:07  josh
845         * classes/pmc2c.pl: Use the usual header so that we can detect the
846         autogeneratedness.
848 2002-03-09 02:05  josh
850         * jit2h.pl: Avoid accidental /* inside a comment, which generates a
851         compiler warning
853 2002-03-09 01:59  josh
855         * io/: io.c, io_stdio.c, io_unix.c, io_win32.c: Another large
856         patch- re-indent io/*.c.
858 2002-03-09 01:52  ajgough
860         * types/: bignum.c, bignum.h, bignum_test.pl: Added handling of
861         special values to the string conversion functions, some other
862         functions now need context (to let -0 pass through really_zero)
863         which have also been added.
865 2002-03-09 01:47  josh
867         * test_main.c: Re-indented.
869 2002-03-09 01:41  josh
871         * rx.c: killed a stray tab
873 2002-03-09 01:38  josh
875         * rx.c: Re-indented.
877 2002-03-09 01:36  josh
879         * misc.c: Oops, some tabs remained- cleaned up.
881 2002-03-09 01:31  josh
883         * misc.c: Re-indented (major patch, sorry)
885 2002-03-09 00:59  josh
887         * embed.c: Re-indented.
889 2002-03-08 23:08  simon
891         * MANIFEST, docs/pdds/pdd10_embedding.pod,
892         docs/pdds/pdd11_extending.pod, docs/pdds/pdd12_assembly.pod,
893         docs/pdds/pdd13_bytecode.pod:
894         Placeholder PDDs.
896 2002-03-08 21:12  ajgough
898         * include/parrot/string.h: Added private flags to string.h, mostly
899         so that other GCed stuff can also have its very own private flags.
901 2002-03-08 19:53  simon
903         * MANIFEST:
904         Great PDD Renaming
906 2002-03-08 19:41  robert
908         * docs/pdds/: pdd0.pod, pdd1.pod, pdd2.pod, pdd4.pod, pdd5.pod,
909         pdd6.pod, pdd7.pod: Renamed...
911 2002-03-08 18:51  simon
913         * MANIFEST, docs/pdds/pdd08_keys.pod:
914         Add keys PDD.
916 2002-03-08 18:20  ajgough
918         * types/: bignum.c, bignum.h, bignum_atest.pl, bignum_test.pl:
919         Introduced exception handlers and exception flags to context, will
920         allow support of extended standard.  Unified exception checking
921         mechanism (sort of) and made minimal changes to bulk of code to use
922         this.  Tests pass, I'm happy, and further changes will happen more
923         gradually.
925 2002-03-08 04:38  josh
927         * interpreter.c, string.c, testparrotsizes_c.in: More indenting
928         tweaks.
930 2002-03-08 04:37  josh
932         * platforms/: generic.c, generic.h, win32.c, win32.h: Re-indented
934 2002-03-08 04:24  josh
936         * embed.c: A bit more re-indenting
938 2002-03-08 04:20  josh
940         * embed.c: Indenting fixes
942 2002-03-08 04:14  josh
944         * jit.c: Re-indented (run_indent.pl)
946 2002-03-08 03:36  josh
948         * ops2c.pl: Fix the line numbers which get reported while compiling
949         core_ops*.c
951 2002-03-08 03:22  josh
953         * packfile.c: -1552 cc: WARNING File = packfile.c, Line = 1537
954         The variable "type" is set but never used.
956               opcode_t type;
958 2002-03-08 03:04  josh
960         * resources.c, stacks.c, string.c, io/io.c, io/io_stdio.c,
961         io/io_unix.c: Clean up unused and set-but-not-referenced variables
962         noticed by the sgi compiler.
964 2002-03-08 03:02  josh
966         * misc.c: Fixes this warning (SGI) cc-1188 cc: WARNING File =
967         misc.c, Line = 417   The indicated type qualifier is meaningless on
968         cast type.
971         (const char) 'f');
972                                                                          ^
974 2002-03-08 02:55  josh
976         * Makefile.in: Clean up one of the object files it was missing
978 2002-03-08 01:15  josh
980         * include/parrot/interpreter.h: Fixes the following error (tcc):
981         "./include/parrot/interpreter.h", line 27: Error:   [Syntax]: Extra
982         comma at end of list.
984 2002-03-06 22:15  simon
986         * stacks.c:
987         Tidy up stack chunk allocation.
989 2002-03-06 21:00  simon
991         * interpreter.c:
992         Create strings only once we've got string register heads set up.
994 2002-03-06 20:31  simon
996         * classes/perlarray.pmc:
997         malloc(0) considered harmful.
999 2002-03-06 20:24  simon
1001         * include/parrot/resources.h:
1002         I like it when Parrot compiles.
1004 2002-03-06 17:02  dan
1006         * classes/array.pmc: Changed over to data pointing to a Buffer.
1008 2002-03-06 15:45  dan
1010         * core.ops, embed.c, exceptions.c, interpreter.c, memory.c,
1011         packfile.c, pbc2c.pl, pdump.c, resources.c,
1012         include/parrot/interpreter.h, include/parrot/memory.h,
1013         include/parrot/resources.h, io/io.c: Three quick things: 1) INTVALs
1014         and opcode_t > longs will now be even more suspect than what they
1015         were beforehand.  2) Feel free to bicker with names.  I don't think
1016         we've come to *any* sort of agreement with these, although we
1017         really, really, need to.  3) I forget the third thing.  4) But I
1018         thought of a fourth.  5) I've now remembered the third thing: IIRC,
1019         ANSI C states that enums will fit within the smallest type (int or
1020         greater) that can hold the values. Is that actually correct, and
1021         does it state whether unsigned is preferred to signed for
1022         non-negative enums? 6) Since I'm no longer constrained by "three"
1023         or "quick", I'm going size_t happy for a lot of memory-related
1024         storage.  (That's good.  No sense wasting the size or performance
1025         of an UINTVAL for strange values of UINTVAL.)  I'm also using it in
1026         a couple other internal things (like the GC stat counters, seen
1027         here).  Size and performance, again, and unpromotable to a bigint,
1028         so we know that we (theoretically) will wrap.  However, size_t
1029         isn't the best choice for the type.  (Not that there's anything
1030         wrong with size_t, just that it shouldn't be called size_t.)  Any
1031         thoughts?  I was thinking of just doing unsigned int, because,
1032         IIRC, int is usually the natural word size, and will be most
1033         efficient.  Thoughts? 7) I forgot what the fourth thing I thought
1034         of was while writing down the others.  Sorry.
1036         Courtesy of  "Bryan C. Warnock" <Bryan.Warnock@raba.com>
1038 2002-03-06 15:26  dan
1040         * memory.c, resources.c, string.c, classes/perlarray.pmc,
1041         include/parrot/resources.h: Now we allocate generic Buffers from
1042         arenas too
1044 2002-03-05 21:42  brentdax
1046         * Configure.pl: Minor cleanup and enhancements.
1048 2002-03-05 21:25  dan
1050         * resources.c: non-special GC now works with PMCs
1052 2002-03-05 19:48  brentdax
1054         * Configure.pl, DEVELOPING, MANIFEST, config_h.in, test_main.c:
1055         Parrot now "knows" if it's a development version or a release
1056         version.  See the instructions in the DEVELOPING file.
1058 2002-03-05 18:05  brentdax
1060         * MANIFEST: pasm.vim wasn't in the manifest.
1062 2002-03-05 17:57  simon
1064         * Makefile.in:
1065         Now, through much evilness, make distclean and make cvsclean work
1066         again.
1068 2002-03-05 17:38  dan
1070         * memory.c, resources.c, docs/pdds/pdd09_gc.pod,
1071         include/parrot/interpreter.h, include/parrot/pmc.h,
1072         include/parrot/resources.h: PMC tracing complete
1074 2002-03-05 16:28  gregor
1076         * languages/jako/Makefile.in:
1077         Changed -I ../../ to -I ../../lib when calling the assembler, since
1078         the perl modules have moved.
1080 2002-03-05 05:30  josh
1082         * packfile.c, pdump.c, pmc.c, register.c, rxstacks.c, stacks.c,
1083         string.c: More re-indenting via run_indent.pl.
1085 2002-03-05 05:17  josh
1087         * runops_cores.c, trace.c, warnings.c: Re-indented (via
1088         run_indent.pl)
1090 2002-03-05 04:26  josh
1092         * key.c, memory.c, test_gnuc.c, testparrotfuncptr.c: Re-indented
1093         using run_indent.pl and some minor tweaking.
1095 2002-03-05 04:21  josh
1097         * chartype.c, encoding.c, exceptions.c, global_setup.c,
1098         interpreter.c: Re-indented using run_indent.pl and some minor
1099         tweaking.
1101 2002-03-05 03:30  josh
1103         * include/parrot/trace.h: These functions are no longer used (or
1104         even implemented)
1106 2002-03-04 18:21  josh
1108         * include/parrot/trace.h: Fix a typo in the argument type.
1110         Patch from <daniel.ritz@gmx.ch>
1112 2002-03-04 03:39  josh
1114         * check_source_standards.pl, jit2h.pl: Add the "autogenerated file"
1115         header to jit_struct.h so we don't try to check it for conformance.
1116          (no way will it conform)
1118 2002-03-04 03:38  josh
1120         * include/parrot/: chartype.h, interpreter.h, io.h, rx.h, trace.h,
1121         unicode.h, warnings.h: Remove some remaining tabs and split some of
1122         the remaining long lines.
1124 2002-03-04 03:17  josh
1126         * include/parrot/: chartype.h, embed.h, encoding.h, exceptions.h,
1127         global_setup.h, interpreter.h, io.h, jit.h, key.h, memory.h,
1128         misc.h, op.h, oplib.h, packfile.h, parrot.h, pmc.h, register.h,
1129         resources.h, runops_cores.h, rx.h, rxstacks.h, stacks.h, string.h,
1130         string_funcs.h, trace.h, warnings.h: This is the first batch of
1131         re-indenting.   This patch is the result of running run_indent.pl
1132         on the header files and manually tweaking the results where errors
1133         were noticed.   This should get us closed, but some refinement may
1134         follow.
1136 2002-03-04 03:06  josh
1138         * resources.c: Return without parens, as mentioned in PDD 7
1140 2002-03-04 03:01  josh
1142         * core.ops: POD fixes.
1144 2002-03-04 02:58  josh
1146         * config_h.in, ops2c.pl, classes/pmc2c.pl: More consistent headers
1147         on autogenerated files- used by the check_source_standards.pl
1148         script (for now) to exempt autogenerated files from the checks.
1150 2002-03-04 02:51  josh
1152         * embed.c, key.c, pmc.c, resources.c, rx.c, testparrotfuncptr.c,
1153         warnings.c: Added the editor "boilerplate" footer to a few files
1154         which were missing it.
1156 2002-03-04 02:34  josh
1158         * check_source_standards.pl, interpreter.c, jit.c, test_gnuc.c,
1159         include/parrot/io.h, include/parrot/parrot.h, io/io_win32.c: Fixes
1160         c preprocessor directive indentation to comply with pdd 7.
1162         (also fixes the check for this indentation in
1163         check_source_standards.pl)
1165 2002-03-04 02:32  josh
1167         * lib/Parrot/Test.pm: Fixes this error seen on perl 5.005_02 on
1168         irix.
1170         perl t/harness t/op/basic..........Use of uninitialized value at
1171         lib/Parrot/Test.pm line 81.  #     Failed test (t/op/basic.t at
1172         line 6) #          got: undef #     expected: ''
1174 2002-03-04 02:30  josh
1176         * MANIFEST, run_indent.pl, docs/pdds/pdd07_codingstd.pod,
1177         docs/pdds/pdd7.pod: Added documentation and code to invoke the GNU
1178         "indent" program to enforce some of the code style standards
1179         outlined in PDD 7.
1181         Usage: ./run_indent.pl <file>
1183 2002-03-03 19:04  simon
1185         * examples/mops/mops.c:
1186         Let's make it compile, huh?
1188 2002-03-03 19:04  simon
1190         * examples/mops/mops.cs:
1191         I R AN IDIOT
1193 2002-03-03 18:11  simon
1195         * examples/mops/mops.cs, examples/mops/mops.il, MANIFEST:
1196         Added C# and MS-IL versions of mops tester.
1198 2002-03-03 14:52  simon
1200         * core.ops:
1201         Add a sub() op to make mops_p work.
1203 2002-03-02 18:12  nicholas
1205         * examples/mops/mops.c, include/parrot/embed.h,
1206         include/parrot/interp_guts.h, include/parrot/jit.h,
1207         include/parrot/misc.h, include/parrot/packfile.h,
1208         include/parrot/rx.h, include/parrot/warnings.h,
1209         platforms/generic.c, platforms/generic.h, platforms/win32.c,
1210         platforms/win32.h, types/bignum.c, types/bignum.h: Patch from Josh
1211         Wilmes to add the emacs and vim "ending boilerplate" that sets the
1212         indent variables correctly.
1214 2002-03-02 17:41  nicholas
1216         * resources.c: Patch from Josh Wilmes <josh@hitchhiker.org>: Little
1217         patch to fix a compiler warning.
1219 2002-03-01 22:35  dan
1221         * memory.c, resources.c, include/parrot/pmc.h,
1222         include/parrot/resources.h: PMCs now come out of arenas.
1224 2002-03-01 06:15  dan
1226         * string.c:
1227         A non-existing buffer + a non-existing buffer should be a
1228         non-existing buffer, not "", which is really '\0'.
1230         Courtesy of "Bryan C. Warnock" <Bryan.Warnock@raba.com>
1232 2002-03-01 06:02  dan
1234         * classes/: array.pmc, perlarray.pmc, perlhash.pmc, perlstring.pmc:
1236         TMTOWTDI, but strcmp is probably the worse.
1238         Courtesy of "Bryan C. Warnock" <Bryan.Warnock@raba.com>
1240 2002-03-01 02:32  brentdax
1242         * embed.c: Debug mode now prints out the GC data.
1244 2002-02-28 23:44  dan
1246         * core.ops, resources.c, include/parrot/resources.h: Added collect
1247         and sweep opcodes
1249 2002-02-28 22:58  dan
1251         * docs/pdds/: pdd06_pasm.pod, pdd6.pod: Add docs for interpinfo
1252         opcode
1254 2002-02-28 22:50  dan
1256         * core.ops, interpreter.c, resources.c,
1257         examples/assembly/life.pasm, include/parrot/interpreter.h,
1258         include/parrot/resources.h: Add some stat gathering to the resource
1259         allocation code.
1261         Also add an interpreter info retrieval op, and teach it about the
1262         different things it can retrieve.
1264         Finally, add some stat info to life.pasm as an example
1266 2002-02-28 21:27  dan
1268         * editor/pasm.vim: VIM mode commands for parrot assembly files
1270         Courtesy of Scott Beck <scott@gossamer-threads.com>
1272 2002-02-28 19:20  dan
1274         * examples/assembly/life.pasm: Fix a creeping string length leak.
1276         Courtesy of  "Bryan C. Warnock" <Bryan.Warnock@raba.com>
1278 2002-02-28 18:26  dan
1280         * string.c: When you clone a constant, it ain't constant no mo'.
1282         Cocurtesy of "Bryan C. Warnock" <Bryan.Warnock@raba.com>
1284 2002-02-28 00:51  dan
1286         * MANIFEST: Add missing files
1288         Courtesy of "Bryan C. Warnock" <Bryan.Warnock@raba.com>
1290 2002-02-28 00:49  dan
1292         * docs/pdds/: pdd0.pod, pdd00_pdd.pod: The pod version of PDD 0 in
1293         CVS seems to have several chunks missing out of it, too.  This
1294         patch is simply an administrative patch, with the differences
1295         between my last version, and the one currently in there.  There
1296         will be a forthcoming patch for some minor tweaking to the PDD, but
1297         I wanted a common baseline before I make any (potential) semantic
1298         changes.
1300         There's only one semi-major change, which noone needs to worry
1301         about just yet.  That's a change from PDD Format 1 to PDD Format
1302         6.0 - rationale can be found under 'Standard (Version #)' of the
1303         STANDARDS TRACK infomation.  Don't worry about this yet, because it
1304         should be 6.0.0, and we need to discuss Perl versus Parrot with
1305         PDDs.
1307         Courtesy of "Bryan C. Warnock" <bwarnock@raba.com>
1309 2002-02-28 00:27  dan
1311         * packfile.c, resources.c, examples/assembly/life.pasm,
1312         include/parrot/register.h, include/parrot/resources.h,
1313         include/parrot/string.h: First pass of semi-full GC. (Strings only,
1314         no PMCs yet)
1316         This patch now implements a real copying collector. We trace from
1317         our root set and compact the contents of Buffer structs.
1319         Todo:
1321         *) It's very STRING-centric and doesn't handle memory stuffed in
1322         Buffers.  But, then, we don't have pool allocation for Buffers
1323         either, and we need to have that soonish for this to work.
1325         *) Doesn't trace PMCs, so if you trigger a collection and there's
1326         memory or STRING structs only accessible from PMCs, you'll fail
1327         horribly. That needs fixing too
1329         *) Better algorithms for when to trace or collect vs when to just
1330         go allocate more memory from the system. Should probably be more
1331         cache friendly too.
1333 2002-02-27 21:04  dan
1335         * jit.c, memory.c, resources.c, string.c, docs/pdds/pdd09_gc.pod,
1336         examples/assembly/life.pasm, include/parrot/resources.h,
1337         include/parrot/string.h, include/parrot/string_funcs.h,
1338         jit/i386/core.jit: Start of GC in
1340 2002-02-26 16:41  dan
1342         * jit/i386/string.jit: Fix a typo
1344         Courtesy of Jonathan Stowe <gellyfish@gellyfish.com>
1346 2002-02-26 16:37  dan
1348         * interpreter.c: Fix solaris test failures
1350         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1352 2002-02-26 16:36  dan
1354         * include/parrot/: interp_guts.h, io.h, packfile.h, rx.h,
1355         unicode.h, warnings.h: Fixes various warts in header files, such
1356         as: * macros   -added parens to prevent problems with operator
1357         precedence   -removed ; at end * removed SSIZE_MAX, since ssize_t
1358         is no longer used * added some more INLINE definitions for MSVC and
1359         C99 compilers
1361         Courtesy of Brian Lee Ray <blray@ualr.edu>
1363 2002-02-26 16:20  dan
1365         * Configure.pl: Turns out we were using a warning flag which
1366         doesn't exist on 2.7.  Simple tweak though:
1368         Courtesy of  Josh Wilmes <josh@hitchhiker.org>
1370 2002-02-25 22:58  dan
1372         * MANIFEST, docs/pdds/pdd09_gc.pod: Add docs of GC
1374 2002-02-25 17:36  dan
1376         * include/parrot/pmc.h: Fix the bits
1378 2002-02-23 21:57  dan
1380         * include/parrot/resources.h: Another 1.5% never hurts
1382 2002-02-23 21:44  dan
1384         * global_setup.c, memory.c, resources.c, string.c,
1385         include/parrot/resources.h: Allocate STRING headers from an arena
1386         with freelist rather than with the system malloc. First step in a
1387         good (or even a bad) GC system.
1389 2002-02-23 20:37  brentdax
1391         * misc.c: lint has been doing Evil and Wrong things to misc.c.
1393 2002-02-22 14:59  ajgough
1395         * types/bignum.c: BN_multiply split into BN_multiply and
1396         BN_imultiply, the internal version to be used by idivide so that
1397         rounding isn't performed during intermediate stages of division.
1399         following test scripts now all pass: divide divideint add multiply
1400         subtract remainder compare rounding plus minus (these are all the
1401         operations currently implemented, rescale and power must still be
1402         written, so don't pass right now).
1404 2002-02-22 13:13  ajgough
1406         * types/bignum_atest.pl: Test harness modified to understand
1407         comments better, and be able to run unary (and rounding) tests.
1408         Currently a few rounding tests fail, which are being investigated.
1410 2002-02-22 01:41  dan
1412         * key.c: Although there's more work being done on the key stuff and
1413         this isn't the final fix, applying this patch does get parrot to
1414         build with two more compilers, so it's probably worthwhile.
1416         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1418 2002-02-22 00:53  dan
1420         * config_h.in, misc.c, include/parrot/embed.h,
1421         include/parrot/exceptions.h, include/parrot/interpreter.h,
1422         include/parrot/io.h, include/parrot/parrot.h, include/parrot/pmc.h,
1423         include/parrot/resources.h, include/parrot/rx.h,
1424         include/parrot/string.h, include/parrot/unicode.h,
1425         include/parrot/warnings.h, io/io_stdio.c, io/io_unix.c,
1426         io/io_win32.c: Fixes the following (lcc) warnings:
1428           - interpreter.c:470: warning: expression with no effect elided
1429                (related to the way warnings flags were defined)
1431           - misc.c:352: warning: unreachable code
1432             misc.c:483: warning: unreachable code
1433                (i introduced these with some overzealous de-linting)
1435           - numerous warnings like this:
1436             io/io_unix.c:383: warning: conversion from pointer to void' to
1437         pointer to
1438             pointer to struct _ParrotIO function(pointer to struct
1439         Parrot_Interp,pointer
1440             to struct _ParrotIOLayer,pointer to const char,pointer to const
1441         char,pointer
1442             to pointer to void)' is compiler dependent
1444         Fixes the following nits:    - remove bad indenting (tabs) in the
1445         includes
1447         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1449 2002-02-21 21:12  ajgough
1451         * types/: bignum.c, bignum.h: These might look like massive
1452         changes, but really it's just he imposition of coding standards.
1453         The file still isn't entirely compliant, but is now much more so.
1455         Also changed:
1457          o a few more comments
1458          o BN_compare uses internal BN_comp to compare
1459          o lost_digits behaviour is now correct (test harness modified to
1460         test
1461            this).
1463         All binary functions now pass all the tests in the basic standard.
1464         Unary functions not yet tested, will be soon.
1466 2002-02-21 18:20  dan
1468         * lib/Parrot/OpTrans/CPrederef.pm: The "inline" bit of that patch
1469         was no longer needed, and the ssize_t thing really shouldn't be
1470         needed either.
1472         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1474 2002-02-21 18:15  dan
1476         * Configure.pl, embed.c, pdump.c, hints/mswin32.pl,
1477         include/parrot/parrot.h: this patch adds support for the freely
1478         available borland c++ 5.5.1 compiler
1480         depends on: - josh's patch to remove ssize_t from CPrederef.pm -
1481         working borland compiler (compiler must know where to find headers
1482         and libs) - Perl's Config.pm modified to use cc='bcc32.exe' not of
1483         cc='cl.exe' - a working make utility (borland make doesn't work,
1484         nmake does)
1486         changes: - add bcc in hints/mswin32.pl - clean up for msvc++ in
1487         hints/mswin32.pl - remove a space from Configure.pl (very very
1488         important for bcc) - add a O_BINARY flag to open() in pdump.c,
1489         embed.c (required by bcc) - define O_BINARY 0 when it's not defined
1490         (win32 knows it, linux not)
1492         and the why: - parrot is MUCH faster when compiled with borland c
1493         (make test on p2-450, 320MB):   * msvc++: 313 seconds   * bcc: 251
1494         seconds
1496         Courtesy of "Ritz Daniel" <daniel_ritz@gmx.ch>
1498 2002-02-21 18:09  dan
1500         * jit.c, testparrotfuncptr.c, trace.c, classes/array.pmc, io/io.c,
1501         io/io_stdio.c, io/io_unix.c, io/io_win32.c: This patch removes
1502         cuddled elses, as required by PDD 7.
1504         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1506 2002-02-21 18:04  dan
1508         * MANIFEST, Makefile.in, check_source_standards.pl: This patch adds
1509         a new Makefile target called "check_source".  This target scans all
1510         the .c and .h files in the directory and checks for conformance to
1511         a number of the standards outlined in PDD 7.
1513         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1515 2002-02-21 16:38  ajgough
1517         * types/: bignum.c, bignum.h, bignum_atest.pl: Modifications to
1518         allow arithmetic with numbers with a fixed fractional part, buffer
1519         structures now more ready to be integrated into the parrot memory
1520         allocation game, test harness modified to allow lost_digits
1521         condition to be checked.  Some more comments.
1523 2002-02-21 15:53  simon
1525         * io/io_unix.c:
1526         Fix typo
1528         Courtesy of: "David M. Lloyd" <dmlloyd@tds.net>
1530 2002-02-20 16:41  dan
1532         * MANIFEST, docs/pdds/pdd_template.pod: Added in template PDD
1534 2002-02-18 18:25  dan
1536         * MANIFEST, lib_deps.pl: Added in lib_deps.pl and MANIFEST change.
1538         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1540 2002-02-18 18:21  dan
1542         * lib/Parrot/OpTrans/CPrederef.pm: this is a quick fix for
1543         CPrederef.pm to make to generated code compile with the MS
1544         compiler.
1546         fixes: - ms compiler allows inline only for c++, for c there's
1547         __inline - ms header files knows nothing about ssize_t
1549         Courtesy of "Ritz Daniel" <daniel_ritz@gmx.ch>
1551 2002-02-18 17:49  dan
1553         * MANIFEST: Add the PDDs
1555 2002-02-18 17:47  dan
1557         * docs/pdds/: pdd07_codingstd.pod, pdd7.pod: Added in PDD 7, the
1558         coding standards PDD.
1560 2002-02-18 17:40  dan
1562         * docs/pdds/: pdd06_pasm.pod, pdd6.pod: Updated to latest rev
1564 2002-02-18 12:41  gregor
1566         * test_main.c:
1567         Remove warning about exit() not being declared.
1569 2002-02-18 08:29  simon
1571         * misc.c, warnings.c, include/parrot/misc.h,
1572         include/parrot/warnings.h:
1573         This patch adds some missing const's to silence a number of gcc
1574         warnings.
1576         Courtesy of: Josh Wilmes <josh@hitchhiker.org>
1578 2002-02-18 08:26  simon
1580         * Makefile.in, core.ops, embed.c, interpreter.c, key.c, misc.c,
1581         ops2c.pl, packfile.c, pdump.c, stacks.c, string.c,
1582         classes/array.pmc, classes/perlarray.pmc, classes/perlhash.pmc,
1583         include/parrot/parrot.h, include/parrot/rx.h,
1584         include/parrot/stacks.h, io/io_stdio.c, io/io_unix.c,
1585         lib/Parrot/OpTrans/CPrederef.pm:
1586            - add makefile target and script to test for external libc
1587         dependencies
1588            - fix return values in hash and array PMCs (returning 0 in a
1589         void func)
1590            - remove unnecessary data pointer <=> function pointer
1591         conversions
1592              outside of the JIT code.
1593            - move the definition of the "INLINE" macro out of the rx header
1594         and make
1595              available for general use on C++ compilers and gcc.
1596            - remove a few unused variables
1598         Courtesy of: Josh Wilmes <josh@hitchhiker.org>
1600 2002-02-17 16:29  simon
1602         * docs/pdds/: pdd0.pod, pdd00_pdd.pod, pdd01_overview.pod,
1603         pdd02_vtables.pod, pdd04_datatypes.pod, pdd05_opfunc.pod,
1604         pdd06_pasm.pod, pdd1.pod, pdd2.pod, pdd4.pod, pdd5.pod, pdd6.pod:
1605         We're organised and responsible. Honest.
1607 2002-02-17 02:46  sfink
1609         * Makefile.in: Remove $^ for nmake compatibility.
1611 2002-02-16 09:20  brentdax
1613         * config_h.in, test_main.c, include/parrot/chartype.h,
1614         include/parrot/embed.h, include/parrot/encoding.h,
1615         include/parrot/string.h, include/parrot/string_funcs.h: Better
1616         embedding exposure and hiding, part 1.
1618 2002-02-16 04:38  dan
1620         * Makefile.in, core.ops, interpreter.c, pbc2c.pl, pdump.c,
1621         runops_cores.c, docs/running.pod, lib/Parrot/OpTrans/C.pm,
1622         lib/Parrot/OpTrans/CGoto.pm, lib/Parrot/OpTrans/CPrederef.pm:
1623         Anyway, here's a patch to repair pbc2c.pl, combined with removing
1624         typecasts in various places throughout the code. It probably won't
1625         work for Windows yet. The libparrot.a target might need to be
1626         modified to at least prevent it from confusing make on Windows; I
1627         don't know.
1629         Preliminary instructions for using pbc2c.pl are in
1630         docs/running.pod.  I'll try to do better later.
1632         Courtesy of Steve Fink <steve@fink.com>
1634 2002-02-16 04:15  dan
1636         * exceptions.c, include/parrot/exceptions.h: Warnings cleaned up
1638         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1640 2002-02-16 00:03  simon
1642         * classes/: perlarray.pmc, perlhash.pmc:
1644         pmc is already defined!
1646 2002-02-15 23:20  brentdax
1648         * Configure.pl, config_h.in, exceptions.c, pmc.c,
1649         include/parrot/exceptions.h: Far more informative panic messages.
1651 2002-02-15 03:24  dan
1653         * lib/Parrot/: Op.pm, OpsFile.pm, OpTrans/CPrederef.pm: Here's a
1654         much more extensive patch that fixes it to work properly, and
1655         deletes a bazillion casts as well.  It also points to the question
1656         "can we make the byte_code be an opcode_t* already?"
1658         Oh, and it makes some of the formatting prettier, so it's gotta be
1659         good.
1661         Courtesy of * Steve Fink <steve@fink.com>
1663 2002-02-15 02:30  dan
1665         * Makefile.in, core.ops, embed.c, misc.c, packfile.c, rx.ops,
1666         stacks.c: I've tweaked the "lint" target somewhat and fixed a few
1667         of the things it finds.  Attaching the patch as well as the current
1668         lint output.
1670         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1672 2002-02-15 01:59  dan
1674         * t/pmc/: array.t, perlhash.t: Disable non-functional bits for the
1675         moment.
1677 2002-02-15 01:48  dan
1679         * t/pmc/perlarray.t: Skip tests for features that need twiddling
1681 2002-02-15 01:40  dan
1683         * t/op/rx.t: Skip a test that's waiting for us to rejig some array
1684         things
1686 2002-02-14 23:30  dan
1688         * resources.c: Added comment for buffer tag routine. D'oh!
1690 2002-02-14 23:28  dan
1692         * resources.c, include/parrot/resources.h: Added buffer mark
1693         routine for GC
1695 2002-02-14 23:17  dan
1697         * memory.c, classes/array.pmc, classes/perlarray.pmc,
1698         include/parrot/memory.h, include/parrot/string.h, t/pmc/perlhash.t:
1699         Rejigged memory system a bit. Now should be ready for the horror
1700         that is garbage collection.
1702 2002-02-14 19:33  gregor
1704         * ops2c.pl, include/parrot/oplib.h:
1705         Added code to automatically generate a function within an oplib to
1706         lookup opinfos given the op name. This will come in handy in future
1707         when we want to twiddle opcode tables at run time and possibly at
1708         startup time.
1710 2002-02-14 19:25  gregor
1712         * examples/assembly/queens.pasm:
1713         Regenerated queens.pasm from queens.jako since the clone_* stuff
1714         went away.
1716 2002-02-14 17:12  dan
1718         * resources.c, include/parrot/resources.h: Finished up the
1719         interface for memory and tracked interpreter thingies.
1721 2002-02-14 16:53  dan
1723         * memory.c, include/parrot/memory.h: intercept free and realloc
1725 2002-02-14 05:53  dan
1727         * interpreter.c, runops_cores.c: The type changes in struct
1728         Packfile break the pointer math used in a few places to calculate
1729         the address of the end of the loaded byte code. This causes
1730         segfaults in build_asm in jit.c when using -j. It also breaks the
1731         bounds checking on opcode address in runops_slow_core.
1733         The patch adds the necessary cast to correct the code_end
1734         calculations.
1736         Courtesy of Jason Gloudon <perl@gloudon.com>
1738 2002-02-14 01:01  ajgough
1740         * types/: bignum.c, bignum.h, bignum_test.pl: Added support for
1741         BigInt operations (I think), tests for normal operation continue to
1742         pass.  Also a shed load of comments.
1744 2002-02-13 01:34  ajgough
1746         * types/: bignum.c, bignum.h, bignum_atest.pl, bignum_test.pl: This
1747         is a (mostly) working bignumber library.  There remains much work
1748         to do though, some functions are not yet implemented and headers
1749         need to find their way to the correct place RSN.  Also support for
1750         bigints and a sensible error reporting mechanism are needed.
1752 2002-02-12 18:51  dan
1754         * misc.c: Fix some warnings
1756 2002-02-12 17:10  dan
1758         * misc.c: Run through indent -kr -nce so I can read it
1760 2002-02-12 16:49  dan
1762         * misc.c: Need standard header/footer comments
1764 2002-02-11 20:32  simon
1766         * classes/array.pmc:
1767         get and set pmc methods.
1769 2002-02-11 20:19  simon
1771         * classes/array.pmc:
1772         Maybe the keys aren't integer...
1774 2002-02-11 20:03  simon
1776         * core.ops, vtable.tbl, classes/default.pmc:
1777         {g,s}et_pmc_keyed
1779 2002-02-11 19:07  simon
1781         * vtable.tbl, classes/default.pmc:
1782         Add set_pmc. Usee with caution.
1784 2002-02-11 18:20  dan
1786         * classes/: array.pmc, perlarray.pmc: Patch array classes to
1787         compile
1789 2002-02-11 17:59  simon
1791         * core.ops, embed.c, global_setup.c, key.c, rx.ops,
1792         classes/perlarray.pmc, classes/perlhash.pmc:
1793         Make it compile.
1795 2002-02-11 17:57  simon
1797         * packfile.c, include/parrot/packfile.h:
1798         Reduce warnings
1800         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
1802 2002-02-11 17:55  dan
1804         * docs/parrot_assembly.pod: Document some key ops
1806 2002-02-11 09:20  brentdax
1808         * pmc.c, include/parrot/exceptions.h: Adding a panic ought to be
1809         disgustingly easy.
1811 2002-02-11 00:34  simon
1813         * core.ops, include/parrot/exceptions.h:
1814         This is what keyed set ops look like. Remember, however, that for
1815         keyed functions, all operands must be PMCs. set(PMC, PMC, INT)
1816         means $1 = $2[$3], not $1[$2] = $3. set(PMC,PMC,PMC) is so
1817         obviously ambiguous that you ought to use the 4-arg version
1818         instead.
1820 2002-02-10 23:12  jgoff
1822         * classes/: array.pmc, perlarray.pmc: Properly allocate
1823         SELF->data's array of PMC* data in array and perlarray.pmc.  This
1824         isn't tested yet, but should be fairly straightforward.  PerlHash
1825         needs to be finished before the system will compile again, and that
1826         should be done in the next few days.
1828 2002-02-09 04:46  jgoff
1830         * classes/: array.pmc, default.pmc, intqueue.pmc,
1831         parrotpointer.pmc, perlarray.pmc, perlhash.pmc, perlundef.pmc:
1832         Added basic _keyed member functions.  Unfortunately this still
1833         doesn't fix the problems that are causing the build to break. It's
1834         a start though. I'm not implementing the PMC add functions just
1835         yet.
1837 2002-02-08 15:59  simon
1839         * classes/array.pmc:
1840         Some more work on getting the array stuff up to date.
1842 2002-02-08 12:23  simon
1844         * classes/array.pmc, classes/perlhash.pmc, include/parrot/key.h,
1845         lib/Parrot/Vtable.pm:
1846         Got array->get_integer_keyed doing what I think it ought to. One
1847         down, all the rest to go.
1849 2002-02-08 11:47  simon
1851         * vtable.tbl:
1852         Although I didn't intend it to be quite that broken...
1854 2002-02-08 11:42  simon
1856         * vtable.tbl, include/parrot/parrot.h, lib/Parrot/Vtable.pm:
1857         Completely break Parrot, but at least we get the key stuff right
1858         for now.
1860 2002-02-08 06:25  dan
1862         * hints/darwin.pl: Silences the warning about passing in
1863         -flat_namespace to the compile.  That's a link-only flag.
1865 2002-02-08 04:52  jgoff
1867         * classes/: array.pmc, default.pmc, intqueue.pmc,
1868         parrotpointer.pmc, perlarray.pmc, perlhash.pmc, perlint.pmc,
1869         perlnum.pmc, perlstring.pmc, perlundef.pmc: Filled in missing
1870         return values in *.pmc, added some missing casts to the repeat_foo
1871         members, and deleted the _index members from the perlscalar
1872         classes.  Basic cleanup, and getting ready for _keyed functions.
1874 2002-02-07 04:49  mrjoltcola
1876         * examples/assembly/bsr.pasm: Elaborated on the bsr/ret example,
1877         added a nested subroutine call.
1879 2002-02-07 04:32  jgoff
1881         * vtable.tbl, lib/Parrot/Vtable.pm: vtable.tbl got some minor
1882         changes in order to give the whitespace rules a little workout, and
1883         do a little bit more testing. No actual structural changes were
1884         made.  lib/Parrot/Vtable.pm got an interface change, and more
1885         importantly should be ready to support the new '_keyed' attribute,
1886         which will work roughly thus: PMC* src_value gets remapped to 'PMC*
1887         src_value' followed by 'KEY* src_key'.  This will be how the new
1888         _keyed operators will function, and those should be written within
1889         a few days.
1891 2002-02-06 18:00  doughera
1893         * misc.c: Change C++-style comments to C comments (again).  Remove
1894         unused perl5 code that was in #if 0/#endif.
1896 2002-02-06 17:59  doughera
1898         * warnings.c: Add trailing newline.
1900 2002-02-06 04:14  mrjoltcola
1902         * include/parrot/io.h, io/io.c: Minor cleanup.
1904 2002-02-06 03:11  mrjoltcola
1906         * examples/assembly/io1.pasm, io/io.c, io/io_win32.c: Tied up a
1907         couple of loose end in win32 IO stuff. Open behaves now but needs
1908         more work.
1910 2002-02-05 21:02  brentdax
1912         * classes/pmc2c.pl: Length on whoami init was always 7--a problem
1913         which showed up in Purify builds.
1915 2002-02-05 17:15  simon
1917         * misc.c:
1918         Warning fixes.
1920         Courtesy of: Jonathan Stowe <gellyfish@gellyfish.com>
1922 2002-02-05 17:08  doughera
1924         * misc.c: Avoid C++-style comments.
1926 2002-02-05 17:07  doughera
1928         * lib/Parrot/Jit/sun4Generic.pm: Generated assembly programs were
1929         not valid assembler for Sun's /usr/ccs/bin/as.  Now they are,
1930         thanks to Jason Gloudon <perl@gloudon.com>.
1932 2002-02-05 14:04  simon
1934         * misc.c:
1935         Make the problem different, perhaps even better.
1937 2002-02-05 13:49  simon
1939         * misc.c:
1940         Possibly fix a `short int' is promoted to `int' when passed through
1941         `...' scary error, possibly make things absolutely worse.
1943 2002-02-05 13:15  simon
1945         * Configure.pl:
1946         Placate Tru64.
1948 2002-02-05 13:12  simon
1950         * warnings.c:
1951         Not going to get far without this one...
1953 2002-02-05 11:41  simon
1955         * string.c:
1956         Don't barf when handed null pointers.
1958 2002-02-05 10:04  simon
1960         * misc.c, include/parrot/misc.h:
1961         Fix some trivial bugs in warnings code.
1963 2002-02-05 09:27  simon
1965         * misc.c:
1966         Oops, forgot this one; also added %P support.
1968 2002-02-05 09:20  simon
1970         * MANIFEST, Makefile.in, core.ops, embed.c, interpreter.c,
1971         test_main.c, classes/perlundef.pmc, include/parrot/embed.h,
1972         include/parrot/interpreter.h, include/parrot/misc.h,
1973         include/parrot/parrot.h, include/parrot/warnings.h:
1974         Warnings support.
1976         Courtesy of: Brent Dax <brentdax@cpan.org>
1978 2002-02-05 05:41  jgoff
1980         * vtable.tbl, lib/Parrot/Vtable.pm, t/pmc/perlstring.t: Changed the
1981         format of vtable.tbl to get rid of the tab-dependence.  The format
1982         now looks roughly like this:
1984         init() # 'void' and 'unique' are assumed INTVAL type ( ) # 'unique'
1985         is assumed str void concatenate (PMC* value, PMC* dest) # Nothing
1986         assumed here, but note the C-like prototyping.  Also had to disable
1987         one test that depended upon 'concat_p_p_s', which isn't necessary
1988         anyway.
1990         Vtable.pm will change again when the type '_keyed' is added,
1991         because that requires remapping parameters slightly differently
1992         again.  Also, note that it assumes 'value' is the first parameter
1993         in the list. This assumption will go away at the same time.
1995 2002-02-04 16:57  ajgough
1997         * core.ops, t/pmc/perlstring.t, t/pmc/pmc.t: More tests for pmc
1998         functions.  Thanks to Simon Glover.
2000 2002-02-04 02:47  ajgough
2002         * hints/os2.pl: Removes a flag from the os/2 hints file that isn't
2003         needed.  I suspect that the entire hints file isn't really needed,
2004         but there's no one to actually tell us this.
2006 2002-02-02 15:45  ask
2008         * docs/ParrotFAQ.htm: fix internal links
2010 2002-02-02 04:06  jgoff
2012         * classes/: array.pmc, intqueue.pmc, perlarray.pmc, perlhash.pmc:
2013         Moving the internal KEY structure from the cache.struct_val member,
2014         where it doesn't really belong, to the internal SELF->data member.
2015         This frees up the cache/type members for other usage.
2017         This is the first step in moving PMCs to the point where we can do
2018         multidimensional PMC handles. The next step is to change the
2019         assembler to accept the syntax of 'set P0["foo"],7'.
2021 2002-02-02 00:13  nicholas
2023         * include/parrot/global_setup.h: Patch from Jonathan Stowe to
2024         prototype Parrot_Array_class_init
2026 2002-02-02 00:13  nicholas
2028         * embed.c: Casts to tidy up warnings from Jonathan Stowe Change
2029         time to sum_time to avoid warning on FreeBSD about tracking a
2030         global [No, this warning does not appear on Linux. Yes, it is real
2031         :-)]
2033 2002-02-01 23:02  nicholas
2035         * embed.c: Fix fprintf format warning in Parrot_runcode. From Simon
2036         Glover
2038 2002-02-01 20:20  nicholas
2040         * t/pmc/pmc.t: Add end at end of asm in test (from Simon Glover)
2042 2002-02-01 18:20  nicholas
2044         * lib/Parrot/Test.pm: Env.pm on 5.005_03 doesn't do a use vars for
2045         you
2047 2002-02-01 13:22  nicholas
2049         * MANIFEST: Add docs/embed.pod and t/op/ifunless.t
2051 2002-02-01 12:19  simon
2053         * core.ops, t/op/ifunless.t, t/op/integer.t:
2054         Added "unless" op.
2056 2002-02-01 12:11  simon
2058         * lib/Parrot/Test.pm:
2059         Remove a warning.
2061 2002-02-01 01:38  nicholas
2063         * MANIFEST, MANIFEST.SKIP, Makefile.in: Add a MANIFEST.SKIP file,
2064         and a manitest target to Makefile.in that lets one test the
2065         manifest.
2067 2002-02-01 00:03  dan
2069         * core.ops, global_setup.c, include/parrot/pmc.h: More setup for
2070         PMC dynaloading
2072 2002-01-31 21:46  gregor
2074         * Configure.pl, Makefile.in, hints/mswin32.pl:
2075         A few more things are now configable, so we are closer to win32
2076         shared library builds. Not there yet, but closer.
2078 2002-01-31 21:00  dan
2080         * global_setup.c, classes/pmc2c.pl, include/parrot/global_setup.h,
2081         include/parrot/pmc.h: First step in dynamically loading PMC classes
2083 2002-01-31 19:38  dan
2085         * Makefile.in: Dependencies in the Makefile are currently too broad
2086         brush.  I don't enjoy waiting for everything to recompile every
2087         time I try to tweak the jit. The only file that #includes
2088         jit_struct.h is jit.c, so I feel that the Makefile dependencies
2089         should reflect this, and not cause a gratuitous recompile of
2090         everything.  There are probably other auto-generated header files
2091         that world+dog should not depend on.
2093         Courtesy of  Nicholas Clark <nick@unfortu.net>
2095 2002-01-31 19:03  gregor
2097         * Makefile.in, lib/Parrot/Test.pm, t/harness:
2098         Added two new make targets:
2100           * testp: Like 'make test', but passes -P to t/harness, so you get
2101         to
2102             see how broken predereferencing is.
2104           * testj: Like 'make test', but passes -j to t/harness, so you get
2105         to
2106             see how broken JIT is.
2108         Now, anyone who wants to see how good all three ways of running are
2109         can do so, at the cost of about 3x the time.
2111 2002-01-31 17:09  brentdax
2113         * embed.c, test_main.c: Implement the ARGV-in-P0 thing.
2115 2002-01-31 03:41  grunblatt
2117         * docs/jit.pod: Update jit.pod
2119 2002-01-31 03:20  grunblatt
2121         * jit/i386/core.jit: Hold this until we get an assemble tool,
2122         because of the different objdump problems.
2124 2002-01-31 03:13  grunblatt
2126         * Configure.pl, lib/Parrot/Jit/sun4-solaris.pm,
2127         lib/Parrot/Jit/sun4Generic.pm: Use dis intead of objdump.  Courtesy
2128         of: Jason Gloudon <perl@gloudon.com>
2130 2002-01-31 02:22  grunblatt
2132         * jit/i386/core.jit: Continue if the register is null
2134 2002-01-30 23:50  grunblatt
2136         * lib/Parrot/Jit/: alpha-bsd.pm, alpha-linux.pm, alphaGeneric.pm,
2137         i386-bsd.pm, i386-linux.pm, i386Generic.pm, sun4-solaris.pm,
2138         sun4Generic.pm: Move the AS and OBJDUMP constants to each os
2139         specific file.
2141 2002-01-30 23:35  mrjoltcola
2143         * io/io_win32.c: Change implementation of isatty on win32,
2144         suggested by Hong Zhang.
2146 2002-01-30 23:19  sfink
2148         * jit2h.pl, lib/Parrot/Op.pm, lib/Parrot/OpsFile.pm: Added
2149         Op::may_jump boolean method.
2151         Replaced jit2h's hardcoded pattern match to decide what ops might
2152         change the control flow.
2154 2002-01-30 22:13  dan
2156         * Configure.pl, MANIFEST, testparrotfuncptr.c: This patch allows
2157         parrot to mostly-build with tcc.  It allows one to skip compiling
2158         the JIT stuff (by specifying --define jitcapable=0), and it
2159         introduces a test program which gives a friendlier error in this
2160         case for compilers which are as picky as tcc is about function
2161         pointer conversion.
2163         If anyone figures out the proper way to cast these function
2164         pointers this may not be necessary.
2166         Courtesy of Josh Wilmes <josh@hitchhiker.org>
2168 2002-01-30 20:54  dan
2170         * docs/running.pod, lib/Parrot/Test.pm: I'm being anal again.
2171         Here's an update to docs/running.pod to better reflect the current
2172         state (both the test_parrot and assemble.pl improvements, plus
2173         documentation of a few more things.) And also a speling fiks
2174         s/POST_MORTERM/POST_MORTEM/.
2176         I could also replace some "perl foo" calls with "./foo" if someone
2177         wanted to set the executable flag in CVS on assemble.pl,
2178         optimize.pl, etc.
2180         Courtesy of Steve Fink <steve@fink.com>
2182 2002-01-30 20:43  dan
2184         * core.ops: find_global doesn't work, so stub out the wrong code
2186 2002-01-30 19:08  dan
2188         * lib/Parrot/Assembler.pm:  fixes the POD in Parrot::Assember so
2189         that perldoc
2190          can read it and just tidies it up generally. It also adds
2191         documentation
2192          for the constantize_integer and constantize_number functions.
2194         Courtesy of Simon Glover <scog@roe.ac.uk>
2196 2002-01-30 18:02  dan
2198         * assemble.pl, disassemble.pl, optimizer.pl, pbc2c.pl,
2199         classes/genclass.pl, classes/pmc2c.pl,
2200         languages/scheme/Scheme/Test.pm:  Many of the Perl scripts in the
2201         distribution (including assemble.pl !)
2202          can no longer find the Parrot::* modules. Enclosed patch fixes
2203         (although
2204          it would be nice if there were an easier way to do this).
2206         Courtesy of  Simon Glover <scog@roe.ac.uk>
2208 2002-01-30 16:00  mrjoltcola
2210         * io/io_win32.c: Correct function calls for win32_fdopen and arg
2211         types.
2213 2002-01-30 15:50  mrjoltcola
2215         * io/io_unix.c: Minor bug fix for fdopen flag arg type.
2217 2002-01-30 15:42  grunblatt
2219         * pbc2c.pl, examples/assembly/Makefile: Updates related to moving
2220         files around
2222 2002-01-30 15:38  grunblatt
2224         * MANIFEST: Enclosed patch adds the new SPARC-based JIT files to
2225         the manifest,  and also puts it back into alphabetical order.
2227         Courtesy of: Simon Glover <scog@roe.ac.uk>
2229 2002-01-30 14:41  nicholas
2231         * embed.c: Patch from Simon Glover to clean up warnings where
2232         prototype is () not (void)
2234 2002-01-30 13:54  nicholas
2236         * include/parrot/embed.h, test_main.c: Add void as an explicit
2237         parameter in test_main.c's usage(), version(void) and embed.h's
2238         Parrot_new() Without these gcc moans: include/parrot/embed.h:34:
2239         warning: function declaration isn't a prototype
2241 2002-01-30 12:08  simon
2243         * lib/Parrot/.cvsignore:
2244         Ignore generated Perl modules.
2246 2002-01-30 12:07  simon
2248         * t/harness:
2249         Run the PMC tests as well.
2251 2002-01-30 12:04  simon
2253         * MANIFEST:
2254         Fix MANIFEST after recent t/pmc rejig.
2256 2002-01-30 11:42  simon
2258         * lib/Parrot/Test.pm:
2259         Report non-zero exit codes.
2261         Courtesy of: Michael G Schwern <schwern@pobox.com>
2263 2002-01-30 11:39  simon
2265         * t/op/rx.t:
2266         Skip final test, TODO doesn't work yet.
2268 2002-01-30 09:54  brentdax
2270         * docs/embed.pod: Leon Brocard was kind enough to explain to me how
2271         predereferencing works.
2273 2002-01-30 09:38  brentdax
2275         * docs/: embed.pod, parrot.pod: Document this newfangled embedding
2276         subsystem.
2278 2002-01-30 09:37  brentdax
2280         * include/parrot/embed.h: Fix a mistake, clear up a warning.
2282 2002-01-30 09:37  brentdax
2284         * config_h.in: Expose another flag for embedders.
2286 2002-01-30 05:07  jgoff
2288         * make_vtable_ops.pl, t/harness: Both files didn't know of the new
2289         location for Parrot/, and t/harness wasn't able to run the new
2290         op/pmc tests. Both problems fixed, so I think I'm going to declare
2291         the build suitable for public consumption.
2293 2002-01-30 04:34  robert
2295         * docs/Makefile.in: update for CVS movement
2297 2002-01-30 04:32  robert
2299         * Makefile.in: Adjust for CVS reorganization.  (This time, edit the
2300         .in file, not the real Makefile)
2302 2002-01-30 04:20  robert
2304         * Configure.pl, jit2h.pl, ops2c.pl, ops2pm.pl, pmc_pm.pl,
2305         vtable_h.pl, classes/pmc2c.pl, include/parrot/parrot.h: Updates
2306         related to moving files around
2308 2002-01-30 04:10  robert
2310         * MANIFEST: Update MANIFEST to reflect CVS reorg.
2312 2002-01-30 04:07  robert
2314         * Configure.pl: Add './lib' to our @INC because Parrot/* moved.
2316 2002-01-30 03:56  robert
2318         * Parrot/: .cvsignore, Assembler.pm, BuildUtil.pm, Op.pm,
2319         OpTrans.pm, OpsFile.pm, Optimizer.pm, PackFile.pm, String.pm,
2320         Test.pm, Vtable.pm, Jit/alpha-bsd.pm, Jit/alpha-linux.pm,
2321         Jit/alphaGeneric.pm, Jit/i386-bsd.pm, Jit/i386-linux.pm,
2322         Jit/i386-nojit.pm, Jit/i386Generic.pm, Jit/sun4-solaris.pm,
2323         Jit/sun4Generic.pm, OpLib/.cvsignore, OpTrans/C.pm,
2324         OpTrans/CGoto.pm, OpTrans/CPrederef.pm, PackFile/ConstTable.pm,
2325         PackFile/Constant.pm, PackFile/FixupTable.pm: Moved Parrot/* to
2326         lib/Parrot/
2328 2002-01-30 03:46  robert
2330         * languages/miniperl/miniperlc: renamed to mpc
2332 2002-01-30 03:45  robert
2334         * t/op/: pmc.t, pmc_array.t, pmc_perlarray.t, pmc_perlhash.t,
2335         pmc_perlstring.t: Moved to t/op/pmc/
2337 2002-01-30 03:40  robert
2339         * include/parrot/register_funcs.h: Renamed to regfuncs.h
2341 2002-01-30 03:14  jgoff
2343         * classes/perlarray.pmc, t/op/pmc_perlarray.t, t/pmc/perlarray.t:
2344         Fixed some problems with PerlArray and added tests.  Previously,
2345         only integers could be accessed by negative indices.  After this
2346         change, all basic types can be accessed by negative indices, and
2347         they can also be set at negative indices.
2349 2002-01-29 22:13  brentdax
2351         * TODO: Just look at the stupid diff.
2353 2002-01-29 21:53  simon
2355         * TODO, docs/vtables.pod:
2356         New TODO, and tiny addition to vtables.pod
2358 2002-01-29 21:47  mrjoltcola
2360         * include/parrot/io.h, io/io_unix.c: Minor bug fix in io_unix.
2362 2002-01-29 21:38  mrjoltcola
2364         * Makefile.in: Makefile.in tweak for io depend.
2366 2002-01-29 21:15  brentdax
2368         * embed.c: Fix a segfault and some profiling formatting nits.
2370 2002-01-29 20:54  brentdax
2372         * pmc.c: Oops.
2374 2002-01-29 20:50  brentdax
2376         * pmc.c, include/parrot/exceptions.h: Exceptions are better than
2377         segfaults.
2379 2002-01-29 20:17  mrjoltcola
2381         * interpreter.c, core.ops, io.ops: CVS missed this.
2383 2002-01-29 20:17  mrjoltcola
2385         * io/io.c: These should have gone in Sunday with the rest. CVS is
2386         out to get me.
2388 2002-01-29 18:39  brentdax
2390         * platforms/win32.h: Fix Win32 whoops.
2392 2002-01-29 18:29  brentdax
2394         * embed.c, include/parrot/embed.h: A couple minor embedding fixes.
2396 2002-01-29 17:51  simon
2398         * MANIFEST, Makefile.in, config_h.in, embed.c, test_main.c,
2399         include/parrot/embed.h, include/parrot/parrot.h:
2400         Embedding support. Cool.
2402         Courtesy of: <brentdax@cpan.org>
2404 2002-01-29 15:40  grunblatt
2406         * Configure.pl: Detect if we can use "objdump".  Courtesy of: Jason
2407         Gloudon <perl@gloudon.com>
2409 2002-01-29 14:42  simon
2411         * include/parrot/parrot.h:
2412         Platform stuff has to be included *after* system headers.
2414 2002-01-29 14:05  grunblatt
2416         * interpreter.c, jit.c, Parrot/Jit/sun4-solaris.pm,
2417         Parrot/Jit/sun4Generic.pm, lib/Parrot/Jit/sun4-solaris.pm,
2418         lib/Parrot/Jit/sun4Generic.pm, include/parrot/jit.h,
2419         jit/sun4/core.jit, jit/sun4/lib.jit, jit/sun4/string.jit: Added
2420         support for SPARC.  Courtesy of: Jason Gloudon <perl@gloudon.com>
2422 2002-01-29 10:56  simon
2424         * platforms/generic.h:
2425         If we don't have a S_ISREG, produce something close to it.
2427 2002-01-29 06:01  dan
2429         * MANIFEST, README, LICENSES/Artistic: Finally added licenses
2431 2002-01-29 04:38  jgoff
2433         * classes/array.pmc: Forgot to remove some C++-isms from the
2434         get_{foo}_index routines.
2436 2002-01-29 04:26  jgoff
2438         * MANIFEST, Makefile.in, global_setup.c, classes/Makefile.in,
2439         classes/array.pmc, include/parrot/pmc.h, t/op/pmc_array.t,
2440         t/pmc/array.t: Added array class that languages other than perl can
2441         use for a basis.  It has no features like preextension, and the
2442         array index starts at 0.
2444         MANIFEST - added classes/array.pmc and t/op/pmc_array.t Makefile.in
2445         and classes/Makefile.in - Added array.pmc to the makefile.
2446         (Assuming rules like .pmc.o are portable (or even possible) I might
2447         alter classes/Makefile.in to autobuild the appropriate files.
2449 2002-01-29 02:32  dan
2451         * MANIFEST, Parrot/Test.pm, lib/Parrot/Test.pm,
2452         lib/Test/Builder.pm, lib/Test/More.pm, lib/Test/Simple.pm,
2453         lib/Test/Utils.pm, t/op/interp.t, t/op/macro.t, t/op/pmc.t,
2454         t/op/rx.t, t/op/stacks.t, t/pmc/pmc.t:
2455             Update to Test::More 0.41 which adds Test::Builder
2457             Delete the vestigal Test::Utils
2459             Change Parrot::Test so it uses Test::Builder instead of Evil
2460         Wrappers
2461             around Test::More
2463             output_* now returns whether the test passes or fails
2465             Parrot::Test no longer exports Test::More's functions.  Instead
2466         they
2467             can simply be used together.  The few tests which used
2468         Test::More
2469             features (ie. skip) have 'use Test::More' added.
2471             I ditched the export_to_level() crutch.  Do we expect parrot to
2472         work on
2473             5.004?  (literally 5.004, not 5.004_04)
2475         Courtesy of Michael G Schwern <schwern@pobox.com>
2477 2002-01-28 21:04  dan
2479         * docs/overview.pod:  There is no opcodes.pod; I'm assuming the
2480         pointer should actually be to
2481          parrot_assembly.pod, as the canonical documentation.
2483         Courtesy of Simon Glover <scog@roe.ac.uk>
2485 2002-01-28 20:21  dan
2487         * languages/jako/jakoc, t/op/stacks.t: Toss the last traces of
2488         clone[inps]
2490 2002-01-28 19:18  dan
2492         * core.ops, register.c: clone[insp] is dead
2494 2002-01-28 17:46  grunblatt
2496         * Parrot/Jit/i386Generic.pm, lib/Parrot/Jit/i386Generic.pm,
2497         jit/i386/core.jit: Fix to make the jit work in linux yet again.
2499 2002-01-28 16:45  dan
2501         * MANIFEST, README.OS_X: Added Mac OS X specific readme documenting
2502         the requirement for fink at the moment.
2504 2002-01-28 15:59  simon
2506         * test_main.c:
2507         People might try and run a directory file, with spectacular
2508         results.  We don't want that. No.
2510 2002-01-28 14:58  doughera
2512         * core.ops: Avoid C++-style comments.
2514 2002-01-28 14:16  grunblatt
2516         * jit.c, io/io.c: Changed jit.c to fit the way registers are
2517         accessed.  Readded the pio_(stdin|stdout|stderr) to make builds
2518         work again.
2520 2002-01-28 13:47  doughera
2522         * include/parrot/register.h: Avoid C++-style comment.
2524 2002-01-28 06:03  dan
2526         * MANIFEST, core.ops, interpreter.c, key.c, register.c, trace.c,
2527         Parrot/OpTrans/C.pm, Parrot/OpTrans/CGoto.pm,
2528         lib/Parrot/OpTrans/C.pm, lib/Parrot/OpTrans/CGoto.pm,
2529         docs/parrot_assembly.pod, include/parrot/interpreter.h,
2530         include/parrot/parrot.h, include/parrot/regfuncs.h,
2531         include/parrot/register.h, include/parrot/register_funcs.h,
2532         include/parrot/string.h, include/parrot/string_funcs.h: Registers
2533         are now stored in the interpreter structure itself, rather than
2534         just a pointer to the top of the register structure. Pushes and
2535         pops now involve memcpys, but register access has one fewer
2536         dereference.
2538         Fails four of the register stack tests, though, so not perfect.
2539         Needs fixing, but this is a good place to start.
2541 2002-01-28 04:40  mrjoltcola
2543         * test_main.c: cvs commit missed this. ??
2545 2002-01-28 04:27  mrjoltcola
2547         * examples/assembly/io1.pasm, include/parrot/exceptions.h,
2548         include/parrot/interpreter.h, include/parrot/io.h, io/io.c,
2549         io/io_stdio.c, io/io_unix.c, io/io_win32.c: ParrotIO local to each
2550         interpreter now (at least in theory).  IO handle array added.  Misc
2551         bug fixes in layer handling.  Changed any IO_ constants to PIO_ so
2552         we don't conflict         with system libraries.  Still have broken
2553         stuff in win32 and stdio layer.
2555 2002-01-28 04:01  mrjoltcola
2557         * include/parrot/chartype.h: Typo in chartype.h include guard.
2559 2002-01-28 03:41  mrjoltcola
2561         * t/op/interp.t: Fix flag for interp so we don't get "info"
2562         messages which break tests.
2564 2002-01-28 01:54  dan
2566         * include/parrot/string.h: A few more buffer/string flags
2568 2002-01-27 11:33  nicholas
2570         * chartypes/unicode.c: Cast unsigned argument to int in call to
2571         isdigit to silence gcc warning.
2573 2002-01-26 23:18  grunblatt
2575         * Parrot/Jit/i386Generic.pm, lib/Parrot/Jit/i386Generic.pm: Turn
2576         off that flag.
2578 2002-01-26 23:17  grunblatt
2580         * Parrot/Jit/i386Generic.pm, lib/Parrot/Jit/i386Generic.pm,
2581         jit/i386/core.jit: [no log message]
2583 2002-01-26 22:18  simon
2585         * jit/i386/core.jit:
2586         Jumping to 0x0 is a recipe for segfaults.
2588 2002-01-26 18:35  simon
2590         * t/harness:
2591         Allow user to select which tests to harness
2593         Courtesy of: Nicholas Clark <nick@unfortu.net>
2595 2002-01-26 17:20  grunblatt
2597         * Parrot/Jit/i386-linux.pm, Parrot/Jit/i386Generic.pm,
2598         lib/Parrot/Jit/i386-linux.pm, lib/Parrot/Jit/i386Generic.pm: Patch
2599         to make the jit work in linux again.
2601 2002-01-26 16:52  dan
2603         * Configure.pl, hints/darwin.pl: Add -Wno-shadow, as Darwin's
2604         headers can't cope with this. Darwin-only
2606 2002-01-26 16:04  dan
2608         * include/parrot/parrot.h: Quick note to remind folks that this
2609         isn't the file they're looking for if they're writing extensions or
2610         embedding parrot.
2612         Courtesy of Andy Dougherty <doughera@lafayette.edu>
2614 2002-01-26 00:41  mrjoltcola
2616         * MANIFEST: Oopsy.
2618 2002-01-26 00:37  mrjoltcola
2620         * docs/ParrotFAQ.htm: Parrot FAQ : Created and maintained by Adam
2621         Turoff
2623 2002-01-25 01:31  grunblatt
2625         * jit/alpha/core.jit: There is no neg or fneg.
2627 2002-01-25 01:27  grunblatt
2629         * core.ops, Parrot/Jit/alphaGeneric.pm, Parrot/Jit/i386Generic.pm,
2630         lib/Parrot/Jit/alphaGeneric.pm, lib/Parrot/Jit/i386Generic.pm,
2631         jit/alpha/core.jit, jit/i386/core.jit, t/op/integer.t,
2632         t/op/number.t: Added Parrot_neg.  Erase t.s
2634 2002-01-24 23:26  dan
2636         * interpreter.c: Best make sure unused elements are NULL
2638 2002-01-24 23:24  dan
2640         * interpreter.c: Fix stupid thinko
2642 2002-01-24 18:37  doughera
2644         * Makefile.in: Add a few missing dollar signs in the lifetest
2645         section so that ${exe} and the like get properly interpolated.
2647 2002-01-24 18:15  mrjoltcola
2649         * docs/: .cvsignore, Makefile.in, parrot.pod: Fix pod generation
2650         for io.ops file. Add reference to it in parrot.pod.  Courtesy of
2651         Simon Glover <scog@roe.ac.uk>
2653 2002-01-24 06:43  mrjoltcola
2655         * io/io_stdio.c: Oops.
2657 2002-01-24 06:34  mrjoltcola
2659         * include/parrot/io.h, io/TODO, io/io.c, io/io_stdio.c: Did a bit
2660         of work on the buffering layer.  Decided to use shared read/write
2661         buffer (as do most implementations) for now since its the simplest
2662         way to keep everything synced, (flush on seeks, flush read on
2663         writes, etc.)
2665 2002-01-24 03:38  mrjoltcola
2667         * test_main.c: Cleaned up option handling code a bit for main().
2669 2002-01-23 23:22  dan
2671         * interpreter.c, include/parrot/interpreter.h,
2672         include/parrot/resources.h: Now each interpreter gets its own hash
2673         for globals.
2675 2002-01-23 20:45  dan
2677         * Configure.pl: Fix a warning when there's no - in an architecture
2679 2002-01-22 23:57  grunblatt
2681         * docs/running.pod: [no log message]
2683 2002-01-22 20:29  doughera
2685         * KNOWN_ISSUES: long doubles don't work on SPARC either.  It
2686         appears to be a generic problem (if sizeof(long double) >
2687         sizeof(double)), not an x86-specific one.
2689 2002-01-22 16:57  doughera
2691         * runops_cores.c: Change variable name from time to starttime to
2692         avoid gcc warning about variable name shadowing.
2694 2002-01-22 16:55  doughera
2696         * classes/pmc2c.pl: Include class_init prototype too.
2698 2002-01-22 16:01  doughera
2700         * MANIFEST: [no log message]
2702 2002-01-22 01:04  ajgough
2704         * global_setup.c, classes/default.pmc, classes/intqueue.pmc,
2705         classes/parrotpointer.pmc, classes/perlarray.pmc,
2706         classes/perlhash.pmc, classes/perlint.pmc, classes/perlnum.pmc,
2707         classes/perlstring.pmc, classes/perlundef.pmc, classes/pmc2c.pl,
2708         include/parrot/global_setup.h: Patch from Nick Clark to quieten
2709         warnings from pmc files.  Message-ID:
2710         <20020121224719.GE1726@Bagpuss.unfortu.net>
2712 2002-01-22 00:53  ajgough
2714         * test_main.c: Clears up a couple of warnings in test_main.c.
2715         Thanks to Nick Clark.  Message-ID:
2716         <20020121190457.GB1726@Bagpuss.unfortu.net>
2718 2002-01-22 00:47  ajgough
2720         * string.c, chartypes/unicode.c, chartypes/usascii.c,
2721         include/parrot/chartype.h: Cause all codepoints to be treated as
2722         UNITVALS, and get_digit to return INTVAL, just in case. (Thanks to
2723         Nick Clark, see also: Message-ID:
2724         <20020121214137.GC2371@Bagpuss.unfortu.net> )
2726 2002-01-22 00:24  dan
2728         * key.c: We do mandate an ANSI conformant C compiler, don't we?
2730         Appended patch cures these warnings:
2732         key.c: In function `debug_key': key.c:29: warning: int format,
2733         INTVAL arg (arg 3) key.c:33: warning: int format, INTVAL arg (arg
2734         3) key.c:33: warning: int format, INTVAL arg (arg 4) key.c:36:
2735         warning: int format, INTVAL arg (arg 3) key.c:36: warning: int
2736         format, INTVAL arg (arg 4)
2738         Courtesy of Nicholas Clark <nick@unfortu.net>
2740 2002-01-21 12:41  mrjoltcola
2742         * MANIFEST, io.ops: For some reason cvs commit didn't get this, may
2743         be clock skew.
2745 2002-01-21 06:37  mrjoltcola
2747         * io/io.c: Cleanup a warning
2749 2002-01-21 06:28  mrjoltcola
2751         * examples/assembly/io1.pasm, include/parrot/io.h, io/io.c,
2752         io/io_stdio.c, io/io_unix.c, io/io_win32.c: Added 32/64 bit seek
2753         ops. Various other IO twiddlings.
2755 2002-01-21 03:25  grunblatt
2757         * Makefile.in: Use $jitcpuarch instead of $cpuarch.  Thanks to
2758         Melvin Smith for the catch up.
2760 2002-01-20 23:13  sfink
2762         * stacks.c: Fixed logic errors, need tests
2764 2002-01-20 22:17  brentdax
2766         * rx.c, rx.ops, include/parrot/rx.h, t/op/rx.t: Make /m work and
2767         prepare for /i to work.
2769 2002-01-20 20:52  grunblatt
2771         * Configure.pl, MANIFEST, Makefile.in, interpreter.c, jit.c,
2772         jit2h.pl, Parrot/Jit/alpha-bsd.pm, Parrot/Jit/alpha-linux.pm,
2773         Parrot/Jit/alphaGeneric.pm, Parrot/Jit/i386-bsd.pm,
2774         Parrot/Jit/i386-linux.pm, lib/Parrot/Jit/alpha-bsd.pm,
2775         lib/Parrot/Jit/alpha-linux.pm, lib/Parrot/Jit/alphaGeneric.pm,
2776         lib/Parrot/Jit/i386-bsd.pm, lib/Parrot/Jit/i386-linux.pm,
2777         Parrot/Jit/i386Generic.pm, lib/Parrot/Jit/i386Generic.pm,
2778         include/parrot/jit.h, jit/alpha/core.jit, jit/alpha/lib.jit,
2779         jit/alpha/string.jit:
2780         - Added support for ALPHA, by now linux and bsd.
2782         - Reduced jit2h.pl execution time by precompiling the call to the
2783         unimplemented op.
2785         - Reduced the duplicated code in Parrot/Jit/*.pm by adding
2786         Parrot/Jit/${cpuarch}Generic.pm
2788         - Changed the way to detect quads to what is written in "man
2789         perlfunc".
2791 2002-01-20 17:23  brentdax
2793         * rx.ops: There's no such thing as rx_allocateinfo.
2795 2002-01-19 08:26  brentdax
2797         * pbc2c.pl: Stop this stupid "hard-code the new oplib" stuff.
2799 2002-01-19 07:12  mrjoltcola
2801         * MANIFEST, core.ops, io.ops, pbc2c.pl: Separate pure ParrotIO ops
2802         into io.ops, leave the STDIO wrappers        in core.ops until they
2803         disappear.  Added debug op for switching on VM debug flag
2805 2002-01-19 01:55  mrjoltcola
2807         * include/parrot/io.h, io/TODO, io/io.c, io/io_stdio.c,
2808         io/io_unix.c, io/io_win32.c: Added a few more Win32 layer calls
2810 2002-01-19 00:55  brentdax
2812         * Makefile.in, rx.c, rx.ops, rxstacks.c, include/parrot/rx.h,
2813         include/parrot/rxstacks.h: Add regex-specific stacks for
2814         efficiency.
2816 2002-01-18 23:58  dan
2818         * Configure.pl: I think the optimal fix here is simply to remove
2819         -ansi -pedantic.  -ansi may well have some uses, but even the gcc
2820         man pages say "There is no reason to use this option [-pedantic];
2821         it exists only to satisfy pedants."
2823         Courtesy of Andy Dougherty <doughera@lafayette.edu>
2825 2002-01-18 23:23  dan
2827         * MANIFEST, docs/parrot.pod, docs/running.pod: This patch add
2828         docs/running.pod, which lists the various executables Parrot
2829         currently includes, examples of running them, and mentions of where
2830         they fail to work. It's more of a cry for help than a useful
2831         reference. :-) I've been having trouble recently when making
2832         changes in figuring out whether I broke anything, because any
2833         non-default way of running the system seems to be already broken. I
2834         can't tell what brokenness is expected and what isn't.
2836         Courtesy of  Steve Fink <steve@fink.com>
2838 2002-01-15 22:13  brentdax
2840         * include/parrot/rx.h, rx.c, rx.ops: Remove the last vestiges of
2841         substring use and enhance performance.
2843 2002-01-15 21:03  ajgough
2845         * string.c: Fix problem with string_transcode, &dest not being
2846         updated if src was already in desired encoding.
2848 2002-01-15 16:54  brentdax
2850         * rx.c, rx.ops, include/parrot/rx.h: Hunt down and destroy
2851         warnings.  Leaves only one warning, at rx.ops line 409, that I
2852         can't manage to get rid of.
2854 2002-01-15 16:50  dan
2856         * pbc2c.pl: Pointer arithmetic not quite right in the generated
2857         code.  Also patches pbc2c.pl to work with rx.ops.
2859         Courtesy of Jason Gloudon <perl@gloudon.com>
2861 2002-01-15 16:15  dan
2863         * classes/Makefile.in: All the C files in classes/ weren't being
2864         compiled with an of the gcc warnings flags. With this patch they
2865         are, and there are an awful lot of warnings, more than I could hope
2866         to understand and clear up (within any sensible time period before
2867         submitting a rash of patches, by which time everyone else would
2868         have moved the code on)
2870         Courtesy of Nicholas Clark <nick@unfortu.net>
2872 2002-01-15 16:10  dan
2874         * core.ops, ops2c.pl, Parrot/Op.pm, Parrot/OpTrans.pm,
2875         Parrot/OpsFile.pm, lib/Parrot/Op.pm, lib/Parrot/OpTrans.pm,
2876         lib/Parrot/OpsFile.pm, Parrot/OpTrans/C.pm,
2877         Parrot/OpTrans/CGoto.pm, Parrot/OpTrans/CPrederef.pm,
2878         lib/Parrot/OpTrans/C.pm, lib/Parrot/OpTrans/CGoto.pm,
2879         lib/Parrot/OpTrans/CPrederef.pm, chartypes/unicode.c,
2880         chartypes/usascii.c: This patch adds a few more macros for .ops
2881         files to use. In addition to the existing
2883          goto OFFSET(...)
2884          goto ADDRESS(...)
2885          goto POP()
2886          goto NEXT()
2888         it adds
2890          expr OFFSET(...)
2891          expr ADDRESS(...)
2892          expr POP()
2893          expr NEXT()
2895         This is intended mainly for use in helper functions in .ops files,
2896         but also for ops that need to eg push the address of the next
2897         opcode onto a stack. The only place this currently happens (outside
2898         of my private code) is in the bsr opcode, which previously
2899         hardcoded the computation.
2901         This patch also makes ops2c.pl move the CUR_OPCODE #define a bit
2902         higher in the generated file so that it can be used by static
2903         functions in the preamble.
2905         Finally, I ran into a parentheses matching problem -- should goto
2906         OFFSET(...) rewrite    \bgoto\s+OFFSET\((.*)\) or
2907         \bgoto\s+OFFSET\((.*?)\)
2909         It was done inconsistently for the different calculations, and of
2910         course neither are correct because you really want matching
2911         parentheses. But that seems like too much bother. (Currently,
2912         there's only one place that uses anything other than $n in the
2913         parentheses, and that's the enternative() op.) So I made them all
2914         .*? but emulated recent POD by also allowing (( ... )) (that's two
2915         parenthesis with a space padding the body.)
2917         The generated core_ops.c and core_ops_prederef.c files after this
2918         patch are identical except for the CUR_OPCODE and REL_PC macros
2919         getting moved a little higher, and the bsr in the regular path (not
2920         prederef) uses 'CUR_OPCODE' instead of the hardcoded 'cur_opcode'.
2922         In summary, this is a big wad of meaningless changes for the
2923         current code. But it will make adding some opcodes easier in the
2924         future, and cleans up a small nit in the current bsr.
2926         Courtesy of Steve Fink <steve@fink.com>
2928 2002-01-15 08:48  brentdax
2930         * include/parrot/rx.h: Bitmaps can now include chars >255 (well,
2931         sort of).
2933 2002-01-15 08:45  brentdax
2935         * rx.c, rx.ops: Bitmaps can now include chars >255 (well, sort of).
2937 2002-01-15 05:00  brentdax
2939         * rx.ops: Speed up rx_literal--roughly doubles benchmark
2940         performance.
2942 2002-01-14 20:18  dan
2944         * vtable.tbl, vtable_h.pl: Clean up a zillion warnings
2946         Courtesy of Nicholas Clark <nick@unfortu.net>
2948 2002-01-14 20:03  dan
2950         * Configure.pl, MANIFEST, Makefile.in, core.ops, exceptions.c,
2951         global_setup.c, interpreter.c, key.c, ops2c.pl, register.c,
2952         runops_cores.c, rx.ops, stacks.c, string.c, test_main.c, trace.c,
2953         chartypes/unicode.c, chartypes/usascii.c, classes/default.pmc,
2954         classes/parrotpointer.pmc, classes/perlarray.pmc,
2955         classes/perlhash.pmc, classes/perlint.pmc, classes/perlnum.pmc,
2956         classes/perlstring.pmc, classes/perlundef.pmc,
2957         encodings/singlebyte.c, encodings/utf16.c, encodings/utf32.c,
2958         encodings/utf8.c, include/parrot/exceptions.h, include/parrot/io.h,
2959         include/parrot/parrot.h, include/parrot/rx.h, io/io_stdio.c,
2960         io/io_win32.c, platforms/win32.c, platforms/win32.h, t/op/pmc.t,
2961         t/op/pmc_perlhash.t, t/op/rx.t, t/pmc/perlhash.t, t/pmc/pmc.t: This
2962         patch cleans up most of the MSVC-warnings when using warning level
2963         4 (the highest, one above the default level 3). It turns off two
2964         level-4 warnings for 'unreferenced formal parameter' and 'named
2965         type definition in parentheses', the latter of which was turning up
2966         warnings in MS VC headers.  Level 4 warnings also helped me find a
2967         couple of other lurking bugs in the parrot code.
2969         Replaces the various fprintf/exit combos with calls to
2970         internal_exception, which uses var_args to emulate printf. Various
2971         exception types were added as well. These are probably temporary
2972         until a real exception system arrives.
2974         Fixed some places in the IO code where wrong functions were being
2975         called, or put into the vtable.
2977         Courtesy of "Michel Lambert" <mlambert@legendent.com>
2979 2002-01-14 19:00  dan
2981         * MANIFEST: D'oh! Forgot a file.
2983         Courtesy of Andy Dougherty <doughera@lafayette.edu>
2985 2002-01-14 18:44  brentdax
2987         * rx.c, rx.ops, include/parrot/rx.h: Use bitmaps where it makes
2988         sense (and a few other enhancements to regexes).
2990 2002-01-14 07:07  brentdax
2992         * interpreter.c, runops_cores.c, test_main.c,
2993         include/parrot/interpreter.h: Make profiling a little more useful.
2995 2002-01-13 19:44  dan
2997         * Configure.pl: Turn off unsed things warnings for now
2999 2002-01-13 19:39  dan
3001         * key.c, classes/perlarray.pmc: key.c:   intialize KEY.keys
3003         classes/perlarray.c:  * get_string: is casting
3004         SELF->cache.struct_val to a STRING*,    while all other methods are
3005         using it as a KEY*; don't know    what a perlarray stringifies to,
3006         so replacing with NULL  * get_bool: the default behaviour does not
3007         look right to me
3009         Courtesy of "Mattia Barbon" <mbarbon@dsi.unive.it>
3011 2002-01-13 19:37  dan
3013         * Makefile.in, classes/Makefile.in: Makefile.in:   (Re)add ld_debug
3014         flags to LDFLAGS, so that Configure.pl --debugging   works with
3015         MSVC
3017         classes/Makefile.in   make easier to add pmb2c.pl flags to all
3018         pmc2c calls
3020         Courtesy of "Mattia Barbon" <mbarbon@dsi.unive.it>
3022 2002-01-13 19:36  dan
3024         * io/io_win32.c:   according to my MSVC docs, you should use
3025         _tcslen only after
3026           #including tchar.h
3028         Courtesy of  "Mattia Barbon" <mbarbon@dsi.unive.it>
3030 2002-01-13 19:35  dan
3032         * docs/intro.pod: Doc tweak.
3034         Courtesy of Simon Glover <scog@roe.ac.uk>
3036 2002-01-13 19:34  dan
3038         * t/: op/pmc_perlstring.t, pmc/perlstring.t:  Enclosed test checks
3039         that
3041           if Px, ...
3043          works with PerlString PMCs; these should be false if they are "",
3044         0, or
3045          are undefined, and true in every other case.
3047         Courtesy of Simon Glover <scog@roe.ac.uk>
3049 2002-01-13 19:23  dan
3051         * Configure.pl, config_h.in, core.ops, classes/perlnum.pmc: Change
3052         NUMVAL_FMT to FLOATVAL_FMT.
3054         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3056 2002-01-13 17:45  jgoff
3058         * Makefile.in, global_setup.c, classes/Makefile.in,
3059         classes/intqueue.pmc, include/parrot/pmc.h, t/op/pmc.t,
3060         t/pmc/pmc.t: IntQueue is for an upcoming article on perl.com on
3061         designing your own classes.
3063 2002-01-13 08:47  simon
3065         * interpreter.c, Parrot/OpTrans/CPrederef.pm,
3066         lib/Parrot/OpTrans/CPrederef.pm:
3067         Fix bsr in prederef mode.
3069         Courtesy of: Jason Gloudon <perl@gloudon.com>
3071 2002-01-12 15:33  dan
3073         * interpreter.c, key.c, packfile.c, register.c, resources.c,
3074         string.c, encodings/singlebyte.c, encodings/utf32.c,
3075         include/parrot/parrot.h, io/io.c, io/io_stdio.c, io/io_unix.c:
3076         Silence most of the unused variable warnings.
3078         Courtesy of Nicholas Clark <nick@unfortu.net>
3080 2002-01-12 15:18  dan
3082         * rx.ops: This patch fixes a warning and also changes an 'int' to
3083         an 'INTVAL'.  All tests should pass on Solaris.
3085         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3087 2002-01-12 15:13  dan
3089         * interpreter.c, string.c, test_main.c, classes/parrotpointer.pmc,
3090         examples/assembly/life.pasm, include/parrot/interpreter.h,
3091         include/parrot/io.h, io/io.c, io/io_stdio.c, io/io_unix.c,
3092         io/io_win32.c: More IO work. (Plus some misc twiddles)
3094         Courtesy of Melvin Smith <mrjoltcola@mindspring.com>
3096 2002-01-12 01:14  dan
3098         * include/parrot/string.h: fix a missing name
3100 2002-01-12 00:39  grunblatt
3102         * include/parrot/string.h: Few typos.
3104 2002-01-12 00:16  grunblatt
3106         * jit.c, jit2h.pl, jit/i386/core.jit: Added support for opcodes
3107         that change the program control flow.
3109 2002-01-11 23:53  brentdax
3111         * classes/parrotpointer.pmc: Tell the GC to keep its hands out of a
3112         ParrotPointer's guts.
3114 2002-01-11 23:03  dan
3116         * include/parrot/string.h: flags for the buffers, for GC
3118 2002-01-11 22:31  dan
3120         * include/parrot/pmc.h: PMC flag docs. Those'd be good...
3122 2002-01-11 22:21  dan
3124         * include/parrot/pmc.h: Started with PMC flags
3126 2002-01-11 19:33  dan
3128         * config_h.in, memory.c, resources.c, string.c,
3129         include/parrot/resources.h: Beginnings of a memory allocation/gc
3130         system. Without the GC part.
3132 2002-01-11 18:05  dan
3134         * core.ops: Make sure constant pushes are right on mixed 32/64 bit
3135         systems
3137         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3139 2002-01-11 17:50  dan
3141         * core.ops, pbc2c.pl, Parrot/OpTrans/CGoto.pm,
3142         lib/Parrot/OpTrans/CGoto.pm, include/parrot/interpreter.h: Here is
3143         a patch that makes pbc2c generated code work with the bsr opcode.
3144         It creates a new opcode 'enternative', and uses this to support a
3145         mixed model of interpretation and execution of compiled C code.
3147         Courtesy of Jason Gloudon <perl@gloudon.com>
3149 2002-01-11 17:48  dan
3151         * Makefile.in: Add life as a potential .exe target
3153 2002-01-11 17:30  dan
3155         * include/parrot/resources.h: Start of arena stuff for GC
3157 2002-01-11 05:34  brentdax
3159         * rx.ops: Docs modifications.
3161 2002-01-11 04:19  brentdax
3163         * rx.ops, include/parrot/rx.h: Remove unnecessary evilness from
3164         regular expressions.
3166 2002-01-11 03:44  grunblatt
3168         * jit/i386/core.jit: off by one.
3170 2002-01-11 02:25  dan
3172         * Makefile.in, examples/assembly/life.pasm: Tweak to life benchmark
3174         Courtesy of Steve Fink <steve@fink.com>
3176 2002-01-11 00:32  brentdax
3178         * MANIFEST: Forgot to put parrotpointer.pmc in the MANIFEST.
3180 2002-01-10 23:22  ajgough
3182         * string.c, docs/strings.pod: Removed all the nul termination code,
3183         as this is in general a bad idea.  Note added to docs/strings.pod
3184         to warn people away from assuming termination.
3186 2002-01-10 23:14  dan
3188         * core.ops, interpreter.c, jit.c, rx.c, rx.ops, stacks.c,
3189         testparrotsizes_c.in, include/parrot/interpreter.h,
3190         include/parrot/rx.h, include/parrot/stacks.h: Much nicer stack
3191         implementation
3193         Courtesy of Steve Fink <steve@fink.com>
3195 2002-01-10 22:48  dan
3197         * core.ops: Fix 'basic' test 1 for sizeof(opcode_t) !=
3198         sizeof(INTVAL)
3200         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3202 2002-01-10 22:46  dan
3204         * key.c, classes/perlhash.pmc, t/op/pmc_perlhash.t,
3205         t/pmc/perlhash.t:  Well, actually two bugs.
3207          The first is an off-by-one error in key.c than can cause parrot
3208          to segfault if hash % NUM_BUCKETS happens to be zero.
3210          The other is a bug in the PerlHash init() code that causes new
3211         PerlHash
3212          PMCs to start with the wrong size.
3214          Both fixed below; also tests to prevent them recurring.
3216         Courtesy of Simon Glover <scog@roe.ac.uk>
3218 2002-01-10 22:30  dan
3220         * classes/default.pmc, classes/perlarray.pmc, t/op/pmc_perlarray.t,
3221         t/pmc/perlarray.t:  The enclosed patch allows one to use the if op
3222         with a PerlArray,
3224         Courtesy of Simon Glover <scog@roe.ac.uk>
3226 2002-01-10 21:31  dan
3228         * examples/assembly/life.pasm: Tweaked to be a benchmarkable thing
3230 2002-01-10 20:30  grunblatt
3232         * jit.c, jit2h.pl, Parrot/Jit/i386-bsd.pm,
3233         Parrot/Jit/i386-linux.pm, lib/Parrot/Jit/i386-bsd.pm,
3234         lib/Parrot/Jit/i386-linux.pm, jit/i386/core.jit, jit/i386/lib.jit:
3235         All the op codes that doesn't change the program control flow now
3236         work in the JIT by calling the code generated by the compiler when
3237         the op is not in core.jit TODO:     * Make all the ops that change
3238         the program control flow (and are not on core.jit) work.      *
3239         Remove the dispatch payload.
3241 2002-01-10 17:13  dan
3243         * classes/parrotpointer.pmc: This patch fixes parrotpointer.pmc,
3244         which tries to return 0 from a void function.
3246         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3248 2002-01-10 17:12  dan
3250         * t/op/macro.t: Skip tests, don't comment them out.
3252         Courtesy of Simon Glover <scog@roe.ac.uk>
3254 2002-01-10 17:10  dan
3256         * rx.c: This fixes a couple of nits in rx.c:
3258            1. There's no newline at the end, which makes gcc unhappy.
3259            2. We should use NULL, not 0 or "", for creating null pointers.
3261         Courtesy of Simon Glover <scog@roe.ac.uk>
3263 2002-01-10 17:09  dan
3265         * MANIFEST:  Adds rx.t, removes duplicated rx.c and puts everything
3266         back in
3267          alphabetical order.
3269         Courtesy of Simon Glover <scog@roe.ac.uk>
3271 2002-01-10 16:54  ajgough
3273         * resources.c: Made free_string check that there was a string to
3274         free.  In reponse to a bug spotted by Joshua Nye.
3276 2002-01-09 22:44  dan
3278         * global_setup.c: Forgot the setup
3280 2002-01-09 22:35  dan
3282         * rx.ops: Forgot this one
3284 2002-01-09 22:35  dan
3286         * MANIFEST, Makefile.in, rx.c, string.c, include/parrot/pmc.h,
3287         include/parrot/rx.h, t/op/rx.t: Preliminary regex implementation.
3288         Tests don't work, though.
3290         Courtesy of "Brent Dax" <brentdax@cpan.org>
3292 2002-01-09 21:48  dan
3294         * t/: op/pmc_perlarray.t, pmc/perlarray.t: Whoops, forgot that
3296 2002-01-09 21:22  dan
3298         * classes/Makefile.in, classes/parrotpointer.pmc, Makefile.in:
3299         Generic pointer holder class
3301         Courtesy of "Brent Dax" <brentdax@cpan.org>
3303 2002-01-09 21:19  dan
3305         * MANIFEST, classes/perlarray.pmc, t/op/pmc.t, t/pmc/pmc.t: Array
3306         patches.
3308 2002-01-09 19:54  dan
3310         * io/io_unix.c: Whoops. Forgot one
3312 2002-01-09 19:43  dan
3314         * key.c, classes/perlhash.pmc, t/op/pmc_perlhash.t,
3315         t/pmc/perlhash.t: Fix hash crash bugs
3317         Courtesy of Simon Glover <scog@roe.ac.uk>
3319 2002-01-09 19:13  dan
3321         * memory.c: Signedness whoops.
3323         Courtesy of Simon Glover <scog@roe.ac.uk>
3325 2002-01-09 18:23  dan
3327         * MANIFEST, Makefile.in, include/parrot/io.h, io/io.c, io/io_os.c,
3328         io/io_stdio.c, io/io_win32.c: Changes:
3330         -Minor layer cleanups -Win32 layer added (mostly stubs for now) but
3331         will be using the   Win32 API and company rather than the unix-ish
3332         fake ones.  -stdin/stdout/stderr Win32 specific code added. Rather
3333         than use   0,1,2, Microsoft says use GetStdHandle(), etc. so that
3334         stuff is   there. Soon we should be able to start using these
3335         rather than   fprintf(stderr, ...) and remove stdio linkage.
3337         Courtesy of <mrjoltcola@mindspring.com>
3339 2002-01-09 17:26  dan
3341         * test_main.c: Fixes bad code gen on x86.
3343         Courtesy of Josh Wilmes <josh@hitchhiker.org>
3345 2002-01-09 17:24  dan
3347         * Configure.pl, config_h.in, core.ops, key.c, classes/perlint.pmc,
3348         classes/perlnum.pmc: This patch adds macros to the config.h file
3349         for INTVAL and NUMVAL printf formats.
3351         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3353 2002-01-08 22:55  ajgough
3355         * docs/vtables.pod: Clarify what get_string should do.
3357 2002-01-08 20:05  dan
3359         * key.c: Keep comments in sync.
3361         Courtesy of Simon Glover <scog@roe.ac.uk>
3363 2002-01-08 19:50  dan
3365         * memory.c, include/parrot/memory.h: Need a realloc
3367 2002-01-08 17:24  gregor
3369         * .cvsignore, Configure.pl, Makefile.in:
3370         Added 'reconfig' make target and corresponding --reconfig option to
3371         Configure.pl, so its very easy to re-run Configure.pl with the last
3372         (command-line) options you passed it.
3374 2002-01-08 16:33  dan
3376         * core.ops, make_vtable_ops.pl, Parrot/OpsFile.pm,
3377         lib/Parrot/OpsFile.pm: Add in, out, and inout parameters to teh ops
3378         in core.ops. Potential help for optimizers and JITters.
3380         Courtesy of gregor@linux1.kennedytech.com
3382 2002-01-08 16:32  dan
3384         * key.c: Grab key length from the right spot
3386         Courtesy of "Peter Gibbs" <peter@emkel.co.za>
3388 2002-01-08 13:27  ajgough
3390         * test_main.c: Fix slight thinko in realloc usage for reading from
3391         stdin.
3393 2002-01-08 11:34  ajgough
3395         * test_main.c: Allow test_parrot to read bytecode stream from
3396         stdin, adds -f command line option, with "-f -" doing the stdin
3397         stuff.
3399 2002-01-08 06:34  jgoff
3401         * key.c, include/parrot/key.h: key.c - Added simple implementation
3402         of buckets.  include/parrot/key.h - Added enum_key_bucket type
3404 2002-01-08 03:21  jgoff
3406         * include/parrot/key.h: Added an undef type to the key structure,
3407         so we can delete keys without confusion.
3409 2002-01-07 22:09  dan
3411         * key.c, packfile.c, string.c, include/parrot/key.h,
3412         include/parrot/packfile.h, include/parrot/string.h: Fix whines
3413         about index being redefined
3415         Courtesy of Nick Clark
3417 2002-01-07 21:15  dan
3419         * ops2pm.pl: Don't allow the same ops lib to be included twice.
3421         Courtesy of Steve Fink <steve@fink.com>
3423 2002-01-07 20:48  dan
3425         * Parrot/Test.pm, lib/Parrot/Test.pm: Report useful info for test
3426         failures
3428         Courtesy of "Brent Dax" <brentdax@cpan.org>
3430 2002-01-07 20:43  dan
3432         * docs/intro.pod: Missing a comma
3434         Courtesy of "coral" <coral@eekeek.org>
3436 2002-01-07 20:41  dan
3438         * global_setup.c: Quiet a warning
3440         Courtesy of Simon Glover <scog@roe.ac.uk>
3442 2002-01-07 18:58  gregor
3444         * t/op/.cvsignore:
3445         Ignore intermediate test files.
3447 2002-01-07 17:01  gregor
3449         * ops2c.pl:
3450         Print a warning if an .ops file is mentioned more than once on the
3451         command line.
3453 2002-01-07 16:12  ajgough
3455         * t/: op/pmc_perlhash.t, pmc/perlhash.t: A couple more hash tests,
3456         these shouldn't fail.
3458 2002-01-07 15:15  simon
3460         * t/: op/pmc_perlhash.t, pmc/perlhash.t:
3461         Stop segfaults.
3463 2002-01-07 15:11  simon
3465         * key.c:
3466         Fix zero-termination bug in hash function.
3468 2002-01-07 13:37  ajgough
3470         * MANIFEST, t/op/pmc_perlhash.t, t/pmc/perlhash.t: Added
3471         pmc_perlhash.t, one test currently fails, one passes, yin-yang fun.
3473 2002-01-07 11:53  brentdax
3475         * Configure.pl: Fixes the + thing in prompts, plus adds a synonym
3476         (:add{foo}) and a new deleting thing (:rem{foo})
3478 2002-01-07 11:43  simon
3480         * Configure.pl:
3481         Gobble the + before concatenating.
3483 2002-01-07 03:53  dan
3485         * Makefile.in: Dependency fix for new ops setup.
3487 2002-01-07 03:33  jgoff
3489         * classes/perlarray.pmc: Add negative indices, and fix a small
3490         allocation problem.
3492 2002-01-06 23:54  ajgough
3494         * hints/os2.pl: Makes the hints file take account of ldflags and
3495         ccflags being split.  This hints file is still very specific to
3496         builds with gnu tools, but a proper solution can wait.   Thanks to
3497         Nick Burch.
3499 2002-01-06 22:12  dan
3501         * Makefile.in, ops2c.pl, Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm:
3502             -changes Parrot::OpLib::core's dependencies to reflect the new
3503         selectable ops files    -allows some of the special forms of 'goto'
3504         inside the PREAMBLE of an opcode file
3506         Courtesy of "Brent Dax" <brentdax@cpan.org>
3508 2002-01-06 19:59  simon
3510         * Makefile.in:
3511         *cough*
3513 2002-01-06 18:19  dan
3515         * classes/perlhash.pmc: Fix some type issues.
3517         Courtesy of Josh Wilmes <josh@hitchhiker.org>
3519 2002-01-06 18:03  dan
3521         * Configure.pl, Makefile.in: It adds a prompt to Configure asking
3522         for a list of opcode files to use.  The default is everything
3523         available except for obscure.ops.
3525         In addition, it makes it so that if your answer to a question
3526         starts with '+', it will concatenate it to the default.  For
3527         example:
3529         What C compiler do you want to use? [cl] +HAHAHA!!!
3531         will result in $PConfig{cc} eq "cl HAHAHA!!!".  While that example
3532         is not terribly useful, it is quite useful with things like
3533         command-line flags and the like.
3535         Finally, it contains a couple tweaks so that my syntax-highlighting
3536         editor recognizes some heredocs correctly.  :^)
3538         Courtesy of "Brent Dax" <brentdax@cpan.org>
3540 2002-01-06 17:59  dan
3542         * KNOWN_ISSUES, MANIFEST, README: Doc Patches
3544         Courtesy of "Bryan C. Warnock" <bwarnock@raba.com>
3546 2002-01-06 17:58  dan
3548         * MANIFEST:  We're missing a couple of files from the MANIFEST.
3550         Courtesy of Simon Glover <scog@roe.ac.uk>
3552 2002-01-06 17:57  dan
3554         * ops2c.pl, Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm:   1.
3555         Compiler directives, etc. in files other than core.ops will now
3556         work.   2.  Compiler warnings will now display the file and line
3557         number of the  opcode file.
3559         Courtesy of "Brent Dax" <brentdax@cpan.org>
3561 2002-01-06 17:52  dan
3563         * languages/jako/jakoc: Fix breakage caused by iton/ntoi going away
3565         Courtesy of Simon Glover <scog@roe.ac.uk>
3567 2002-01-06 17:36  dan
3569         * docs/intro.pod: Lots of updates
3571         Courtesy of Simon Glover <scog@roe.ac.uk>
3573 2002-01-06 02:34  gregor
3575         * interpreter.c:
3576         Add some internal documentation on the theory of operation of the
3577         prederef code.
3579 2002-01-06 02:17  gregor
3581         * interpreter.c:
3582         Removed unnecessary include.
3584 2002-01-05 12:37  simon
3586         * classes/.cvsignore:
3587         Ignore generated .h files.
3589         Courtesy of: Josh Wilmes <josh@hitchhiker.org>
3591 2002-01-05 12:37  simon
3593         * Configure.pl:
3594         Make lcc happier by adding a dummy structure.
3596         Courtesy of: Josh Wilmes <josh@hitchhiker.org>
3598 2002-01-05 12:35  simon
3600         * global_setup.c, classes/perlundef.pmc, t/op/pmc.t, t/pmc/pmc.t:
3601         Make perlundef work. (And coincidentally stop segfaults in the
3602         tests :)
3604         Courtesy of: Jason Gloudon <perl@gloudon.com>
3606 2002-01-05 04:59  dan
3608         * t/: op/pmc.t, pmc/pmc.t: Undef tests added.
3610 2002-01-05 04:55  jgoff
3612         * classes/perlhash.pmc: Added perlhash class definition
3614 2002-01-05 04:48  dan
3616         * core.ops: Fix on 64 bit platforms with 32-bit opcode_t
3618         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3620 2002-01-05 03:57  jgoff
3622         * MANIFEST, Makefile.in, core.ops, global_setup.c, key.c,
3623         vtable.tbl, classes/Makefile.in, classes/default.pmc,
3624         include/parrot/key.h, include/parrot/pmc.h, t/op/pmc.t,
3625         t/pmc/pmc.t: Initial hash commit.
3627         core.ops - Adding set({i,n,s},p,s) and set(p,{i,n,s},s) operations.
3628          key.h  - Adding NUM_BUCKETS classes/default.pmc - Adding
3629         set_{integer,number,string}_index_s
3631         This does not yet do collision resolution, but will soon.
3633 2002-01-05 02:54  dan
3635         * interpreter.c: More unsigned fixes
3637         Courtesy of "Bryan C. Warnock" <bwarnock@raba.com>
3639 2002-01-04 22:13  dan
3641         * Configure.pl, hints/mswin32.pl: Makes config's building of the
3642         test programs happier.
3644         Courtesy of "Jason Diamond" <jason@injektilo.org>
3646 2002-01-04 19:00  dan
3648         * Configure.pl, Makefile.in, hints/darwin.pl: Add link flags as
3649         separate things
3651 2002-01-04 18:27  dan
3653         * Configure.pl, Makefile.in, classes/Makefile.in, hints/mswin32.pl:
3654         Fixes to get things configuring and building on Win32 Native.
3656         Courtesy of "Jason Diamond" <jason@injektilo.org>
3658 2002-01-04 17:39  dan
3660         * hints/vms.pl: debug cleanup
3662 2002-01-04 16:53  dan
3664         * docs/parrot.pod:  The enclosed patch brings the list of
3665         documentation in parrot.pod
3666          up to date.
3668         Courtesy of Simon Glover <scog@roe.ac.uk>
3670 2002-01-04 16:47  dan
3672         * test_main.c, Parrot/Jit/i386-linux.pm,
3673         lib/Parrot/Jit/i386-linux.pm: In an attempt to just keep knocking
3674         off warnings..
3676         Courtesy of Kevin Falcone <kevin@jibsheet.com>
3678 2002-01-04 16:44  dan
3680         * Configure.pl, Makefile.in: Fixed linking to use linker.
3682         Courtesy of Josh Wilmes <josh@hitchhiker.org>
3684 2002-01-04 16:39  dan
3686         * io/io_stdio.c: Added CVS tag info
3688 2002-01-04 16:35  dan
3690         * hints/cygwin.pl: Time for this. We need a sane linker, and ld2
3691         isn't it
3693 2002-01-04 16:26  dan
3695         * languages/miniperl/Miniperl/Tokenizer.pm: Quiet a warning in the
3696         Tokenizer test
3698         Courtesy of Jonathan Stowe <gellyfish@gellyfish.com>
3700 2002-01-04 16:17  dan
3702         * chartypes/unicode.c: Silence some warnings.
3704         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3706 2002-01-04 16:09  dan
3708         * classes/: genclass.pl, perlarray.pmc, perlint.pmc, perlnum.pmc,
3709         perlstring.pmc, perlundef.pmc:  - genclass.pl attempts to put $Id$
3710         into generated files
3711            but the $Id$ string gets mangled when it's committed.
3712            This patch fixes the existing .pmc files and fixes genclass.pl.
3714          - Makes capitalization in .pmc header match actual filenames
3716          - The command for calling genclass.pl in vtables.pod is incorrect,
3717            since it assumes you're running in classes/ but genclass.pl
3718         assumes
3719            it's being run from the main directory. I changed genclass.pl to
3720         not
3721            care.
3723         Courtesy of Steve Fink <steve@fink.com>
3725 2002-01-04 03:57  dan
3727         * MANIFEST, io/TODO, io/io_stdio.c: No wonder things worked for
3728         me--I *had* the files:wq!
3730 2002-01-04 03:40  dan
3732         * MANIFEST: Whoops--remove files not really there
3734 2002-01-04 03:37  dan
3736         * interpreter.c, stacks.c, include/parrot/stacks.h: The patch below
3737         my sig adds a new_stack() function to take care of the allocation
3738         and setup of "generic" stacks.
3740         Courtesy of "Brent Dax" <brentdax@cpan.org>
3742 2002-01-04 02:36  dan
3744         * core.ops:  The entry in core.ops for puts(s|sc) is missing a =cut
3745         and so
3746          writes a load of junk in core_ops.pod. Applied patch fixes.
3748         Courtesy of Simon Glover <scog@roe.ac.uk>
3750 2002-01-04 02:35  dan
3752         * classes/: perlint.pmc, perlnum.pmc, perlstring.pmc: The PerlInt
3753         logical-or is using get_integer instead of get_bool for logical
3754         operations. This patch corrects that.
3756         Perlnum and perlstring have working get_bool's, so the default
3757         logical_or and logical_and should be sufficient. The empty methods
3758         are pointed to the default logical_or.
3760         Courtesy of Jason Gloudon <perl@gloudon.com>
3762 2002-01-04 02:31  dan
3764         * Makefile.in: docs/Makefile should be removed by realclean, but
3765         isn't
3767         Courtesy of Kevin Falcone <kevin@jibsheet.com>
3769 2002-01-04 02:29  dan
3771         * classes/: Makefile.in, pmc2c.pl: PMC inheritance! Yay!
3773         Courtesy of Steve Fink <steve@fink.com>
3775 2002-01-04 00:51  dan
3777         * docs/vtables.pod: More docs
3779         Courtesy of Steve Fink <steve@fink.com>
3781 2002-01-04 00:47  dan
3783         * Configure.pl: Updated 64-bit patch
3785         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3787 2002-01-04 00:43  dan
3789         * Configure.pl: 64-bit Fix.
3791         Courtesy of "Bryan C. Warnock" <bwarnock@raba.com>
3793 2002-01-03 22:37  dan
3795         * MANIFEST, Makefile.in, interpreter.c, include/parrot/io.h,
3796         io/io.c, io/io_os.c: Code cleanup, started STDIO layer, started
3797         some buffering work.       Additional work on other layers.
3799         Courtesy of Melvin Smith <mrjoltcola@mindspring.com>
3801 2002-01-03 19:41  gregor
3803         * disassemble.pl, obscure.ops, packfile.c, pbc2c.pl:
3804         Updated copyright messages on top-level files.
3806 2002-01-03 04:23  robert
3808         * make.pl: Add author information.  Bonsai test.
3810 2002-01-03 04:02  dan
3812         * io/io_os.c: Twig Bonsai
3814 2002-01-03 03:45  dan
3816         * io/: io_os.c, io_os.c: Twig Bonsai
3818 2002-01-03 03:41  dan
3820         * io/io_os.c: Twig Bonsai
3822 2002-01-02 21:42  gregor
3824         * packfile.c, include/parrot/packfile.h:
3825         Get rid of warnings in packfile.[hc]
3827 2002-01-02 20:39  gregor
3829         * manicheck.pl:
3830         Bracketed translated patterns with ^ and $.
3832 2002-01-02 20:11  dan
3834         * io/io_os.c: silence a warning
3836 2002-01-02 19:52  grunblatt
3838         * jit.c, jit2h.pl, include/parrot/jit.h: Moved the definition of
3839         op_assembly to jit_struct.h, so that we get the real number of ops.
3840          Removed some warnings.
3842 2002-01-02 19:31  tom
3844         * string.c: Fix string transcoding so that it actually works.
3846         Patch from Peter Gibbs <peter@emkel.co.za>
3848 2002-01-02 19:20  gregor
3850         * manicheck.pl:
3851         A program to check the MANIFEST file, accounting for .cvsignore
3852         files.
3854 2002-01-02 19:19  dan
3856         * t/harness: twig bonsai
3858 2002-01-02 19:13  dan
3860         * t/harness: twig bonsai
3862 2002-01-02 18:54  dan
3864         * t/harness: Tweak to test Bonsai
3866 2002-01-02 16:27  dan
3868         * Configure.pl: Allow 64-bit build of parrot on systems with a
3869         mixed 32/64 bit perl
3871         Courtesy of David M. Lloyd <dmlloyd@tds.net>
3873 2002-01-02 15:33  simon
3875         * MANIFEST, docs/Makefile:
3876         Fixed up MANIFEST. (And I removed the Makefile in docs/)
3878         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
3880 2002-01-02 13:51  simon
3882         * Configure.pl:
3883         Die on broken manifest.
3885 2002-01-02 13:48  simon
3887         * jit2h.pl, examples/assembly/mops.pasm:
3888         Clear up JIT warnings.
3890         Courtesy of: Nick Clark <nick@unfortu.net>
3892 2002-01-02 04:10  dan
3894         * io/io.c, io/io_os.c, t/op/interp.t: IO stack now gets initialized
3895         only once, so new interp creation works again
3897         Courtesy of Melvin Smith <mrjoltcola@mindspring.com>
3899 2002-01-02 03:32  dan
3901         * t/op/interp.t: Stubbed the test out, since it's hanging at the
3902         moment.
3904 2002-01-02 00:55  dan
3906         * MANIFEST, Makefile.in, core.ops, include/parrot/io.h, io/io.c,
3907         io/io_os.c: Initial IO system patches
3909         Courtesy of <mrjoltcola@mindspring.com>
3911 2002-01-01 22:55  ajgough
3913         * classes/default.pmc: On second thoughts, and some prodding, the
3914         set_* methods now only set the appropriate part of the cache, and
3915         do nothing else.
3917 2002-01-01 22:29  ajgough
3919         * classes/default.pmc:  Wrote a whole host of default pmc methods.
3921          set_* create appropriate Perl* result.
3922          get_* simply grabs needed bit of cache.*_val
3924          Other methods do the rightest thing I can think of, at the moment.
3926          None yet cope with overflow, the modulus operation needs to be
3927         checked as
3928         I don't know quite which semantics we really want.
3930         Not tested yet.
3932 2002-01-01 20:23  dan
3934         * docs/Makefile, encodings/singlebyte.c, encodings/utf16.c,
3935         encodings/utf32.c, encodings/utf8.c, include/parrot/encoding.h: Got
3936         rid of unneeded tmp var and eliminated const from encode prototype
3937         since it does make changes to the string.
3939         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
3941 2002-01-01 20:11  dan
3943         * Makefile.in: Make clean now tosses pdump.o
3945         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
3947 2002-01-01 19:49  dan
3949         * pdump.c, test_main.c: Warnings cleanup
3951         Courtesy of Josh Wilmes <josh@sky.net>
3953 2002-01-01 19:45  dan
3955         * Configure.pl, Makefile.in, docs/.cvsignore, docs/Makefile.in,
3956         hints/mswin32.pl, languages/jako/Makefile.in,
3957         languages/scheme/Makefile.in: Makes cleanup better on non-Unix
3958         platforms
3960         Courtesy of "Jason Diamond" <jason@injektilo.org>
3962 2002-01-01 19:41  dan
3964         * include/parrot/register.h: Clean up some warnings
3966         Courtesy of Josh Wilmes <josh@hitchhiker.org>
3968 2002-01-01 19:10  simon
3970         * pbc2c.pl, Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm:
3971         Hack-around to enable compilation of code using vtable ops.
3973 2002-01-01 18:43  dan
3975         * encodings/: singlebyte.c, utf16.c, utf32.c, utf8.c: Toss <0
3976         checks on unsigned things
3978         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
3980 2002-01-01 18:26  dan
3982         * runops_cores.c: More warning silences.
3984         Courtesy of Nicholas Clark <nick@unfortu.net>
3986 2002-01-01 18:25  dan
3988         * trace.c: Shuts up a warning.
3990         Courtesy of Nicholas Clark <nick@unfortu.net>
3992 2002-01-01 18:24  dan
3994         * encodings/singlebyte.c: Clean up some warnings.
3996         Courtesy of Nicholas Clark <nick@unfortu.net>
3998 2002-01-01 18:20  dan
4000         * Configure.pl: Hey, those PPros are really x86 systems! Who'dve
4001         thunk it?
4003         Courtesy of "Bryan C. Warnock" <bwarnock@raba.com>
4005 2002-01-01 18:17  dan
4007         * packfile.c: Warning cleanup
4009         Courtesy of Nicholas Clark <nick@unfortu.net>
4011 2002-01-01 17:53  dan
4013         * string.c: New string size should be based on output encoding's
4014         size, not input encoding's size.
4016         Courtesy of: "Peter Gibbs" <peter@emkel.co.za>
4018 2002-01-01 17:22  dan
4020         * Configure.pl, core.ops, interpreter.c, memory.c, runops_cores.c,
4021         string.c, test_main.c, trace.c, include/parrot/exceptions.h,
4022         include/parrot/interpreter.h, include/parrot/memory.h,
4023         include/parrot/oplib.h, include/parrot/string.h, t/op/string.t:
4024         Warnings fixups.
4026         Courtesy of Chip Turner <cturner@redhat.com>
4028 2002-01-01 17:09  dan
4030         * encodings/singlebyte.c, encodings/utf16.c, encodings/utf32.c,
4031         encodings/utf8.c, include/parrot/encoding.h: Some signed things are
4032         now unsigned, as is proper.
4034         Courtesy of: "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4035         Courtesy of: "Bryan C. Warnock" <bwarnock@raba.com>
4037 2002-01-01 16:59  dan
4039         * include/parrot/trace.h: Useless debugging prototype removed
4041         Courtesy of: "Bryan C. Warnock" <bwarnock@raba.com>
4043 2002-01-01 16:58  dan
4045         * MANIFEST: We forgot a file.
4047         Courtesy of "Bryan C. Warnock" <bwarnock@raba.com>
4049 2002-01-01 03:53  dan
4051         * Configure.pl: Okay, I give. Removed some warnings because the
4052         darned system headers were triggering them. Sloppy, sloppy
4053         coding...
4055 2002-01-01 03:48  dan
4057         * config_h.in: Add in an unsigned INTVAL.
4059         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4061 2002-01-01 03:46  dan
4063         * global_setup.c: Clean up some compiler warnings.
4065         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4067 2002-01-01 03:43  dan
4069         * ops2c.pl, Parrot/OpTrans.pm, Parrot/OpTrans/CPrederef.pm,
4070         lib/Parrot/OpTrans.pm, lib/Parrot/OpTrans/CPrederef.pm,
4071         include/parrot/op.h: Cleaned up some things to make the compiler
4072         happier.
4074         Courtesy of Nicholas Clark <nick@unfortu.net>
4076 2002-01-01 03:14  dan
4078         * Configure.pl: Quad updates.
4080         Courtesy of Nicholas Clark <nick@unfortu.net>
4082 2001-12-31 22:53  dan
4084         * include/parrot/op.h: Typedef had parameters backwards. Threw
4085         core.ops for a big whiny warnings loop.
4087 2001-12-31 22:37  dan
4089         * Makefile.in, resources.c: Tweaks to try and get things to build
4090         in the right order.
4092 2001-12-31 21:58  dan
4094         * Configure.pl: Stupid thinko fix
4096 2001-12-31 21:34  dan
4098         * Configure.pl, hints/mswin32.pl: Tweaks for Win32 builds
4100         Courtesy of: "Jason Diamond" <jason@injektilo.org>
4102 2001-12-31 21:32  dan
4104         * Configure.pl: Fix for non-gcc systems
4106 2001-12-31 20:22  dan
4108         * interpreter.c: Tweak so we can build on non-JIT platforms
4110 2001-12-31 20:11  dan
4112         * Configure.pl: Force the time on some copied files to be 'now' to
4113         make the Win builds much less annoying.
4115         Courtesy of "Jason Diamond" <jason@injektilo.org>
4117 2001-12-31 20:07  dan
4119         * Configure.pl: Nuke all object files in the parrot tree that
4120         matter when configuring.  Shouldn't be necessary with good
4121         dependencies in the makefile, but we don't have those yet.
4123 2001-12-31 20:00  gregor
4125         * chartypes/unicode.c:
4126         Silence unused variable warnings.
4128 2001-12-31 19:40  dan
4130         * Configure.pl: Minor Win32 tweaks. Tossed -Wtraditional, too
4132 2001-12-31 19:37  gregor
4134         * interpreter.c, jit.c, include/parrot/jit.h:
4135         Created a prototype for JIT functions and used it in interpreter.c.
4137 2001-12-31 19:31  dan
4139         * Configure.pl, test_gnuc.c: Better GCC detection (and version
4140         detection) with really cranky warnings if we find we're using it.
4142         Courtesy of: Nicholas Clark <nick@unfortu.net>
4144 2001-12-31 18:01  gregor
4146         * interpreter.c, include/parrot/interpreter.h, include/parrot/op.h:
4148         Fixed a few warnings wrt prototypes, etc.
4150 2001-12-31 17:23  dan
4152         * string.c: Silenced most of the compiler whines
4154 2001-12-31 17:15  gregor
4156         * Configure.pl:
4157         Get the ccname from either ccname or just cc config var.
4159 2001-12-31 17:14  gregor
4161         * Parrot/Op.pm, lib/Parrot/Op.pm:
4162         Another intermediate opbody notation. Could come in handy. Explicit
4163         types.
4165 2001-12-31 17:05  dan
4167         * string.c: Minor warnings update
4169 2001-12-31 17:00  dan
4171         * include/parrot/string.h: Warnings cleanup
4173 2001-12-31 16:00  simon
4175         * encodings/utf8.c, include/parrot/encoding.h:
4176         Remove a couple more.
4178 2001-12-31 15:58  simon
4180         * vtable_h.pl, include/parrot/global_setup.h, include/parrot/jit.h,
4181         include/parrot/op.h:
4182         Rid ourselves of a few warnings.
4184 2001-12-31 15:32  dan
4186         * Configure.pl: Made GCC ever so much pickier.
4188         Switch list courtesy of Jarkko.
4190 2001-12-31 15:22  dan
4192         * string.c: Tightened up initial allocation.
4194         Courtesy of:  "Peter Gibbs" <peter@emkel.co.za>
4196 2001-12-31 06:48  dan
4198         * Configure.pl: Minor Windows tweak
4200 2001-12-31 05:32  dan
4202         * core.ops: Unused temp variable tossed.
4204         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4206 2001-12-31 05:09  grunblatt
4208         * Configure.pl, Makefile.in, interpreter.c: Link jit.o only on
4209         supported plataforms
4211 2001-12-31 03:05  dan
4213         * Configure.pl, Makefile.in, classes/Makefile.in: Added in a
4214         platform-independent quote substitution for the makefiles.
4215         Hopefully this'll make the Win32 builds happier.
4217 2001-12-30 21:08  dan
4219         * string.c, include/parrot/string.h: More string system tweaks.
4221         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4223 2001-12-30 20:45  dan
4225         * core.ops: Some pod cleanup
4227         Courtesy of Josh Wilmes <josh@hitchhiker.org>
4229 2001-12-30 20:22  ajgough
4231         * docs/parrot_assembly.pod: removed ntoi and iton ops from docs, as
4232         we aren't using them right now.  Clarified the workings of set Px,
4233         Py and clone Px, Py.
4235 2001-12-30 20:15  grunblatt
4237         * jit.c, jit2h.pl, jit/i386/core.jit: Removed the warnings in jit.c
4238         Added readjit() to read *.jit files Updated core.jit to the new
4239         set_n_i
4241 2001-12-30 20:14  ajgough
4243         * examples/assembly/mops.pasm: Changed iton/ntoi to set.
4245 2001-12-30 19:52  dan
4247         * packfile.c, pdump.c, register.c, string.c, include/parrot/key.h,
4248         include/parrot/trace.h, platforms/generic.c: Compiler whine
4249         cleanups
4251         Courtesy of Josh Wilmes <josh@hitchhiker.org>
4253 2001-12-30 19:13  dan
4255         * Configure.pl, Makefile.in: Make GCC pickier by default.
4257         Courtesy of: Josh Wilmes <josh@hitchhiker.org>
4259 2001-12-30 18:41  dan
4261         * core.ops, t/op/integer.t, t/op/number.t: Transformed iton and
4262         ntoi opcodes to sets.
4264         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4266 2001-12-30 17:58  gregor
4268         * Makefile.in:
4269         'make' no longer builds the mops test. Use 'make mops' for that. To
4270         run the test, you can do 'make mopstest'.
4272 2001-12-30 17:30  gregor
4274         * Makefile.in:
4275         Fixed one oversight. 'make clean' was removing Parrot/Types.pm. Bad
4276         Gregor.
4278 2001-12-30 17:26  gregor
4280         * .cvsignore, Configure.pl, Makefile.in, VERSION, config_h.in,
4281         core.ops, interpreter.c, make_vtable_ops.pl, obscure.ops, ops2c.pl,
4282         Parrot/BuildUtil.pm, Parrot/OpsFile.pm, lib/Parrot/BuildUtil.pm,
4283         lib/Parrot/OpsFile.pm, include/parrot/oplib.h:
4284         Build enhancements. Originally to support building shared
4285         libraries, but now of broader impact.
4287           * .cvsignore: Ignore the blib/ directory, about which more later.
4289           * Configure.pl:
4291               * Got rid of TAB formatting and lined a few things up.
4293               * Added header comment with CVS Id variable, and a few other
4294                 block header comments.
4296               * Uses new Parrot::BuildUtil module to determine the Parrot
4297                 version.
4299               * Reworded a few messages, added a couple, and wrapped
4300         messages
4301                 to 79 columns.
4303               * Added 2002 to the Copyright statement.
4305               * Added new configure variables: VERSION, MAJOR, MINOR and
4306         PATCH
4308               NOTE: Please see the 'Alas perl5.7.2' comment. 5.7.2 is
4309         greater
4310               than 5.6.0, but the comment implies it isn't.
4312           * Makefile.in:
4314               * Added $(SO), $(A) and $(AR_CRS) defines for library
4315         building.
4317               * Added $(RM_RF) define for removing directory trees
4319               * Grouped generated files into two classes: "sticky" (made by
4320         configure,
4321                 persisting across 'make clean') and 'fluid' (made during
4322         the build
4323                 process, deleted by 'make clean').
4325               * Added header comments.
4327               * Added target for test_prog linked with shared library.
4329               * Added rules to build shared libraries in blib/lib. The
4330         libraries are
4331                 built with trailing version numbers in their file names,
4332         and then
4333                 symbolic links are created for shorter and no version tag
4334         variants.
4336               * Added some missing dependencies
4338               * Added some missing 'make clean' targets.
4340               * Added 'make realclean' target that deletes files created by
4341                 Configure.pl (including Makefile), forcing a re-configure.
4343               * Added a 'status' CVS target.
4345           * VERSION: New file, contains only the version. This version
4346         number is
4347             propagated to a few places, such as the core oplib version
4348         number. This
4349             reduces the amount of coordination that has to happen to get
4350         version
4351             number stuff throughout the tree in sync and updated prior to
4352         cutting
4353             a new release. Feel free to grep for '0.0.3' to see the other
4354         files
4355             that contain the version number (but, do that in a fresh CVS
4356         copy, or
4357             after doing 'make realclean').
4359           * config_h.in: Renamed PARROT_CORE_OPLIB_*_VERSION to
4360         PARROT_*_VERSION,
4361             since the oplib and Parrot itself share a version number now.
4362         Added
4363             PARROT_PATCH_VERSION (the third component) and PARROT_VERSION
4364         (a
4365             string).
4367           * core.ops: Uses new notation "VERSION = PARROT_VERSION" instead
4368         of
4369             specifying the version by hand. Non-core oplibs will set this
4370         to
4371             a quoted dot-string with three natural number components
4372         without
4373             leading zeros.
4375           * interpreter.c: Make use of PARROT_VERSION to simplify some
4376         sprintf()s, and
4377             to get the complete version number in the resulting strings
4378         (including the
4379             new PATCH portion).
4381           * make_vtable_ops.pl: Put the "VERSION = PARROT_VERSION" line int
4382         the
4383             generated file.
4385           * obscure.ops: Use the new "VERSION = PARROT_VERSION" technique.
4387           * ops2c.pl: Account for the PATCH version, too. This affects the
4388         name of the
4389             oplib init function, and the oplib info struct initializer.
4391           * Parrot/BuildUtil.pm: New file for reading in and validating the
4392         contents of
4393             the new VERSION file. Other build utilities could go here in
4394         futuer.
4396           * Parrot/OpsFile.pm:
4398               * Allow three components in version number, and require that
4399         the value
4400                 be in double quotes.
4402               * Allow "VERSION = PARROT_VERSION", substituting the shared
4403         Parrot
4404                 VERSION in that case.
4406           * include/parrot/oplib.h: Add the patch_version member.
4408 2001-12-30 12:16  simon
4410         * MANIFEST, Makefile.in:
4411         More stuff forgotten from MANIFEST.
4413 2001-12-30 12:13  simon
4415         * MANIFEST:
4416         Missing JIT file.
4418 2001-12-30 12:12  simon
4420         * jit2h.pl:
4421         Safety first.
4423 2001-12-30 12:12  simon
4425         * Makefile.in:
4426         Gragh.
4428 2001-12-30 12:04  simon
4430         * Makefile.in, core.ops, packfile.c, pbc2c.pl, string.c,
4431         classes/perlstring.pmc, encodings/singlebyte.c, encodings/utf16.c,
4432         encodings/utf32.c, encodings/utf8.c, include/parrot/encoding.h,
4433         include/parrot/string.h, t/op/string.t:
4434         * Expand the strings test suite to be more complete * Make string
4435         commands more consistent (i.e, now the only string command that
4436         actually changes the original is chopn) * Significantly reduce the
4437         number of memory allocations and eliminate reallocations.
4439         Courtesy of: David Jacobs <jacobsl001@hawaii.rr.com>
4441 2001-12-29 22:12  dan
4443         * interpreter.c, key.c, register.c, stacks.c, string.c,
4444         test_main.c, trace.c: Updates to match the coding standards.
4446         Courtesy of Bryan C. Warnock <bwarnock@raba.com>
4448 2001-12-29 20:42  grunblatt
4450         * jit2h.pl, Parrot/Jit/i386-bsd.pm, Parrot/Jit/i386-linux.pm,
4451         Parrot/Jit/i386-nojit.pm, jit/i386/core.jit, jit/i386/lib.jit,
4452         jit/i386/string.jit, lib/Parrot/Jit/i386-bsd.pm,
4453         lib/Parrot/Jit/i386-linux.pm, lib/Parrot/Jit/i386-nojit.pm: Allow
4454         us to write asm in *.jit files instead of hex.  Courtesy of: Rafael
4455         Kitover <caelum@debian.org>
4457 2001-12-28 21:20  dan
4459         * core.ops: Okay, now print takes a preceding file handle.
4461         I feel so dirty now.
4463 2001-12-28 20:46  dan
4465         * core.ops, t/op/hacks.t: Added in the readline op, as well as
4466         changing the open op to use fopen under the hood.
4468         THESE OPS ARE EVIL! AND TEMPORARY! USE FOR DEBUGGING PURPOSES ONLY!
4470 2001-12-28 18:20  ajgough
4472         * core.ops, make_vtable_ops.pl, string.c, classes/default.pmc,
4473         classes/perlstring.pmc, docs/parrot_assembly.pod, docs/strings.pod,
4474         include/parrot/exceptions.h, include/parrot/string.h,
4475         t/op/pmc_perlstring.t, t/op/string.t, t/pmc/perlstring.t: Added
4476         repeat op, so that "foo" x 10 can be done.  Filled in PerlString
4477         vtables appropriately.  Also tests for same, new pmc_perlstring.t
4478         to hold tests specific to PerlStrings, as the pmc.t file is taking
4479         too long to run and slowing down my thought processes.
4481         Changes to strings.c etc to take string functions.
4483         Some changes to the strings docs, but not yet complete.
4485         Also, PerlString was copying pointers to strings, rather than
4486         strings themselves, so some action-at-a-distance bugs were creeping
4487         in, I think I've fixed this so everything works nicely.
4489 2001-12-28 04:56  gregor
4491         * examples/assembly/pmcmops.pasm:
4492         PMC-using version of mops.pasm.
4494         Courtesy of: Bryan C. Warnock <bwarnock@raba.com>
4496 2001-12-28 04:56  gregor
4498         * examples/assembly/.cvsignore:
4499         Small tinkering. Removed old stuff, etc.
4501 2001-12-28 01:26  gregor
4503         * examples/mops/mops.scheme:
4504         Scheme example. Major GC thrashing on umb-scheme here. Probably due
4505         to the very un-scheme-like implementation.
4507 2001-12-28 01:19  gregor
4509         * examples/mops/mops.c:
4510         Some people's picky compilers don't like us redefineing time(), so
4511         we call it time_n().  :)
4513 2001-12-28 00:28  gregor
4515         * examples/mops/: README, mops.ps:
4516         Added a PostScript example and a README.
4518 2001-12-27 23:57  gregor
4520         * Makefile.in:
4521         Build the C mops translation in examples/mops/mops.c
4523 2001-12-27 23:56  gregor
4525         * examples/mops/: .cvsignore, mops.c, mops.pl, mops.py, mops.rb:
4526         Some translations of mops.pasm into other languages, for inner loop
4527         performance comparisons.
4529 2001-12-27 22:40  gregor
4531         * examples/assembly/mops.pasm:
4532         Fixed erroneous file name in header comment.
4534 2001-12-27 21:18  gregor
4536         * pbc2c.pl:
4537         One-liner to avoid no-op gotos to the next op.
4539 2001-12-27 21:06  gregor
4541         * runops_cores.c:
4542         Fixed -p (profiling). Slow runops core was doing unconditional
4543         tracing, when it should have been checking the flags.
4545 2001-12-27 18:50  ajgough
4547         * core.ops, string.c, chartypes/unicode.c, chartypes/usascii.c,
4548         classes/perlstring.pmc, include/parrot/chartype.h,
4549         include/parrot/string.h, t/op/pmc.t, t/op/string.t, t/pmc/pmc.t:
4550         dded get_digit() to chartypes  * Added string_bool() to strings  *
4551         Added if_s_ic op, to use same  * Added (PerlString)->get_bool stuff
4552         to perlstring.pmc  * Tests for above, also a for couple of other
4553         ops without tests
4555         The unicode chartype has only had placeholders added for get_digit,
4556         string_to_num has been updated to use type->get_digit rather than
4557         the previous ascii-isms.  Some remain, but we need to carefully
4558         define what we mean by a number before we let thousands of code
4559         points act as a minus sign.
4561 2001-12-27 18:32  dan
4563         * classes/: perlint.pmc, perlnum.pmc, perlstring.pmc: Silenced some
4564         compiler warnings.
4566         Courtesy of "David  Jacobs" <jacobsl001@hawaii.rr.com>
4568 2001-12-27 18:23  dan
4570         * t/op/bitwise.t: More tests.
4572         Courtesy of "David Jacobs" <jacobsl001@hawaii.rr.com>
4574 2001-12-27 17:08  gregor
4576         * MANIFEST, Makefile.in, config_h.in, core.ops, interpreter.c,
4577         make_vtable_ops.pl, obscure.ops, ops2c.pl, ops2pm.pl, test_main.c,
4578         trace.c, Parrot/OpsFile.pm, include/parrot/interp_guts.h,
4579         include/parrot/interpreter.h, include/parrot/oplib.h,
4580         lib/Parrot/OpsFile.pm, platforms/generic.c, platforms/generic.h,
4581         platforms/win32.c, platforms/win32.h:
4582         Initial code for dynamic loading of oplibs, applied for now to the
4583         loading of the core_prederef oplib when the -P flag is passed to
4584         test_parrot.
4586           * MANIFEST: Added entry for the new file include/parrot/oplib.h.
4588           * Makefile.in:
4590               * Added libcore_prederef_0_3.so to the shared target.
4591               * Added build rule for libcore_prederef_0_3.so.
4592               * Added dependencies on Parrot/OpsFile.pm and Parrot/Op.pm
4593                 to Parrot/OpLib/core.pm, core_ops.c and
4594                 core_ops_prederef.c.
4596           * config_h.in: Added defines for constants used to locate the
4597             core oplib's init function, and the core_prederef oplib for
4598             dynaloading.
4600           * core.ops: Added a VERSION = 0.3 line near the top. This is now
4601             required by Parrot/OpsFile.pm.
4603           * interpreter.c:
4605               * Added init_prederef() and stop_prederef() functions to load
4606                 and unload the core_prederef oplib when we are in prederef
4607                 mode.
4609                 NOTE: In all likelihood, the prederef stuff has a rapidly
4610                 dwindling time-to-live. The JIT should provide vastly
4611         superior
4612                 performance, and loading an alternate set of core_ops isn't
4613                 the real direction for the dynaloading stuff. Loading
4614                 *additional* ops is. It does provide a handy test case for
4615         the
4616                 general idea for now, though.
4618               * Gets the core copcode table, etc. via the core oplibs oplib
4619                 info pointer, as returned by the core oplib's init
4620         function.
4622           * ops2c.pl
4624               * Make use of the version, major version and minor version
4625                 stuff parsed by Parrot/OpsFile.pm
4627               * The only exported symbol in the generated files is the init
4628                 function now, since that returns an oplib info struct
4629                 pointer, and all the important stuff can be found there.
4631           * ops2pm.pl: Put the oplib version in the generated .pm file.
4633           * test_main.c: Small changes necessitated by changes in the names
4634             of some members of the interpreter struct.
4636           * trace.c: Small changes necessitated by changes in the names
4637             of some members of the interpreter struct.
4639           * Parrot/OpsFile.pm: Require a "VERSION = x.y" line before any
4640             ops are found.
4642           * include/parrot/interp_guts.h: Small changes necessitated by
4643             changes in the names of some members of the interpreter struct.
4645           * include/parrot/interpreter.h: Include the new
4646             include/parrot/oplib.h header. Small changes to the oplib-
4647             related members.
4649           * include/parrot/oplib.h: Define the type of the oplib init
4650             function, and the struct type for the oplib info.
4652           * platforms/*.[hc]: Remove the second argument to Parrot_dlopen()
4653             since not all platforms have it. For those that do, a default
4654             second argument is provided.
4656 2001-12-26 05:12  gregor
4658         * Configure.pl:
4659         Make jitarch calculation not get tripped up by extra components to
4660         archname.
4662 2001-12-24 21:23  gregor
4664         * jit.c, jit2h.pl, Parrot/Jit/i386-bsd.pm,
4665         Parrot/Jit/i386-linux.pm, Parrot/Jit/i386-nojit.pm,
4666         include/parrot/jit.h, jit/i386/core.jit, jit/i386/lib.jit,
4667         jit/i386/string.jit, lib/Parrot/Jit/i386-bsd.pm,
4668         lib/Parrot/Jit/i386-linux.pm, lib/Parrot/Jit/i386-nojit.pm:
4669         Some more JIT work from Daniel Grunblatt.
4671           * Ops added set_s_s, set_s_sc, bsr_i and eq_s_sc but using calls
4672         to C
4673             functions.
4675           * Added JUMP(END) to place the number of bytes to the end of the
4676         current
4677             op.
4679           * The *.jit files syntax changed.
4681           * Added jit/i386/lib.jit to place handly functions as jump that
4682         take as
4683             argument the address where is the opcode number to jump to.
4685           * There is a bug at some point, but I will start writing
4686             jit/i386/string.jit and jit/i386/stacks.jit so that we don't
4687         have use
4688             calls, which make the jit as slow as the interpreter.
4690         Courtesy of: Daniel Grunblatt <daniel@grunblatt.com.ar>
4692 2001-12-24 03:46  dan
4694         * Parrot/OpTrans.pm, Parrot/OpTrans/C.pm, Parrot/OpTrans/CGoto.pm,
4695         Parrot/OpTrans/CPrederef.pm, lib/Parrot/OpTrans.pm,
4696         lib/Parrot/OpTrans/C.pm, lib/Parrot/OpTrans/CGoto.pm,
4697         lib/Parrot/OpTrans/CPrederef.pm: Commented out the use warnings.
4698         Perls before 5.6.0 don't like it.
4700 2001-12-22 16:02  ajgough
4702         * t/op/stacks.t: stopped skipping tests we can run now.  added
4703         clonep tests.
4705 2001-12-21 21:13  gregor
4707         * jit2h.pl, Parrot/Jit/i386-bsd.pm, Parrot/Jit/i386-linux.pm,
4708         Parrot/Jit/i386-nojit.pm, lib/Parrot/Jit/i386-bsd.pm,
4709         lib/Parrot/Jit/i386-linux.pm, lib/Parrot/Jit/i386-nojit.pm:
4710         Fixed some package name goofs.
4712         Thanks to: Andy Dougherty <doughera@mail.lafayette.edu>
4714 2001-12-21 19:32  gregor
4716         * MANIFEST, Makefile.in, core.ops, interpreter.c,
4717         make_vtable_ops.pl, obscure.ops, ops2c-prederef.pl, ops2c.pl,
4718         pbc2c.pl, stacks.c, Parrot/Op.pm, Parrot/OpTrans.pm,
4719         Parrot/Opcode.pm, Parrot/OpsFile.pm, lib/Parrot/Op.pm,
4720         lib/Parrot/OpTrans.pm, lib/Parrot/Opcode.pm, lib/Parrot/OpsFile.pm,
4721         Parrot/OpTrans/C.pm, Parrot/OpTrans/CGoto.pm,
4722         Parrot/OpTrans/CPrederef.pm, docs/intro.pod, include/parrot/op.h,
4723         include/parrot/stacks.h, lib/Parrot/OpTrans/C.pm,
4724         lib/Parrot/OpTrans/CGoto.pm, lib/Parrot/OpTrans/CPrederef.pm:
4725         Changes to syntax of .ops files and refactoring of ops2c*.pl and
4726         pbc2c.pl.
4728           * Removed ops2c-prederef.pl
4730           * (unrelated) Removed vestigial Parrot/Opcode.pm file.
4732           * Added Parrot/OpTrans.pm, Parrot/OpTrans/C.pm (needed for old
4733             functionality of ops2c.pl), Parrot/OpTrans/CPrederef.pm (needed
4734             for old functionality of ops2c-prederef.pl), and
4735             Parrot/OpTrans/CGoto.pm (needed for functionality of pbc2c.pl).
4737             "OpTrans" == "Op Transformation"
4739           * Makefile.in modifications to call "ops2c.pl C" where it used
4740             to be just "ops2c.pl", and "ops2c.pl CPrederef" where it used
4741             to be "ops2c-prederef.pl".
4743           * core.ops and obscure.ops changes to syntax. Semantics are
4744             identical with previous version:
4746               return HALT         -->  HALT()
4747               return AUTO         -->  goto NEXT()
4748               return RETREL(...)  -->  goto OFFSET(...)
4749               return RESTART(*)   -->  restart NEXT()
4751             Also, pop_generic_entry() stuff (local var + 5 lines of code)
4752             for dest-less branch ops replaced with new notation "goto
4753         POP()",
4754             which uses the new pop_dest() function in stacks.c. This also
4755             allowed these ops to become 'inline' ops, since they no longer
4756             have local variables.
4758             The 'ret' op also became simplified to just "goto POP()", and
4759             also became an inline op.
4761           * interpreter.c reflects the change in type name:
4763               prederef_op_func_t   -->  op_func_prederef_t
4765             that occurred in include/parrot/op.h
4767           * make_vtable_ops.pl uses "goto NEXT()" where it used to use
4768             "return AUTO".
4770           * ops2c.pl is now generic. Its first argument is the last
4771             package name component of a subclass of Parrot::OpTrans. These
4772             subclasses all have full names of the form Parrot::OpTrans::*.
4773             An instance of the class is created and later consulted for
4774             various bits of information needed to generate the C code.
4776           * pbc2c.pl now uses an instance of Parrot::OpTrans::CGoto to
4777             contain its transformation rules.
4779           * stacks.c has a new function pop_dest() that pops a destination
4780             off the control stack. include/parrot/stacks.h has the
4781         prototype.
4783           * Parrot/Op.pm now supports the syntax generated by
4784         Parrot::OpsFile
4785             for the "goto POP" case.
4787             Also, the source() method now expects its second argument to be
4788             an object that ISA Parrot::OpTrans. Methods of this object are
4789             called to perform the substitutions.
4791           * Parrot/OpsFile.pm supports the change in notation mentioned
4792             above.
4794           * docs/intro.pod reflects these changes.
4796           * include/parrot/op.h: Renamed type prederef_op_func_t to
4797             op_func_prederef_t because it made the implementation of the
4798             shared ops2c.pl easier.
4800 2001-12-21 13:47  gregor
4802         * Configure.pl, config_h.in, interpreter.c, test_main.c:
4803         Both test_parrot (via test_main.c) and the intepreter itself (via
4804         interpreter.c) use the JIT_CAPABLE config to decide whether to
4805         actually attempt JIT operation, or to complain.
4807 2001-12-20 23:25  gregor
4809         * core.ops, make_vtable_ops.pl, obscure.ops, Parrot/OpsFile.pm,
4810         lib/Parrot/OpsFile.pm, docs/intro.pod, include/parrot/op.h:
4811         Changes to the format of *.ops files. An attempt to provide hints
4812         for future opfunc processing logic that wants to know if an opfunc
4813         is simple enough to JIT (e.g.) inline, or not.
4815         See the POD in Parrot/OpsFile.pm and the updated docs/intro.pod in
4816         addition to The Source in core.ops and Parrot/OpsFile.pm for more
4817         info.
4819 2001-12-20 21:28  gregor
4821         * Configure.pl, jit.c, jit2h.pl, include/parrot/jit.h,
4822         jit/i386/core.jit:
4823         More JIT stuff:
4825           * A fix to Gregor's last Configure.pl update.
4827           * Remove the need for hardcoded "\n" at the end of the "%f"
4828             format for printing floating-point numbers.
4830           * New, improved *.jit syntax for references to registers,
4831             e.g. INT_REG[n].
4833           * Support for C() improved.
4835         Courtesy of: Daniel Grunblatt <daniel@grunblatt.com.ar>
4837 2001-12-20 16:55  dan
4839         * MANIFEST: Added jit.c to the manifest.
4841 2001-12-20 15:24  simon
4843         * jit2h.pl:
4844         Off-by-one error fixed.
4846 2001-12-20 14:18  simon
4848         * jit/i386/core.jit:
4849         Just a noop. It's the only machine code I know.
4851 2001-12-20 13:10  gregor
4853         * Configure.pl, Makefile.in, jit2h.pl:
4854         Attempt to fix Win32 builds.
4856           * No more empty braces in include/parrot/jit_struct.h
4858         Also:
4860           * ${jitarchname} has the *bsd -> bsd substitution on it, but
4861         ${archname}
4862             does not.
4864 2001-12-20 11:56  simon
4866         * Makefile.in:
4867         De-cp
4869 2001-12-20 01:57  gregor
4871         * Configure.pl, MANIFEST, Makefile.in, interpreter.c, jit.c,
4872         jit2h.pl, test_main.c, Parrot/.cvsignore, Parrot/Jit/i386-bsd.pm,
4873         Parrot/Jit/i386-linux.pm, Parrot/Jit/i386-nojit.pm, docs/jit.pod,
4874         include/parrot/.cvsignore, include/parrot/interpreter.h,
4875         include/parrot/jit.h, jit/i386/core.jit, jit/i386/string.jit,
4876         lib/Parrot/Jit/i386-bsd.pm, lib/Parrot/Jit/i386-linux.pm,
4877         lib/Parrot/Jit/i386-nojit.pm:
4878         Initial JIT implementation.
4880           * Enabled with test_parrot -j. 20x speed boosts seen.
4882           * Unsupported archs mapped to i386-nojit. Don't do -j on them.
4884           * More to come.
4886         Courtesy of: Daniel Grunblatt <daniel@grunblatt.com.ar>
4888 2001-12-20 01:53  jgoff
4890         * MANIFEST, core.ops, t/op/key.t: MANIFEST - Removed t/op/key.t
4891         core.ops - Removed key operators, they should be hidden from the
4892         assembler.  t/op/key.t - No need to test the nonexistent key
4893         operators.
4895 2001-12-20 00:13  ajgough
4897         * core.ops, t/op/stacks.t: Added tests for entrytype op, noticed
4898         that asking for type of entry at depth causes segfault as stack is
4899         zero based, fixed cmp in core.ops to reflect this.  Last test is
4900         skipped as we don't do exceptions right yet.
4902 2001-12-19 19:11  ajgough
4904         * t/op/debuginfo.t: Added C<end> ops to debuginfo.t, as thier
4905         non-being was causing Irix "issues".
4907 2001-12-19 03:37  jgoff
4909         * languages/miniperl/Miniperl/t/: 001_tokenizer.t, 003_generator.t,
4910         004_combined.t: Changed tests to make sure they pass with the
4911         addition of the clone operator.
4913 2001-12-18 20:06  gregor
4915         * interpreter.c, include/parrot/interp_guts.h:
4916         Performance improvements to the predereferencing code path
4917         suggested to me over lunch yesterday by my friend John Kennedy.
4918         The goal is to remove the additional test in the inner loop that
4919         was checking for NULL to decide whether or not to call the
4920         prederef() function. Also moved pc & pc_prederef syncing outside
4921         the inner loop.
4923           * Changed the prototype of the prederef() function in
4924             interpreter.c to match that of an opfunc.
4926           * Instead of initializing the prederef void * array with NULL,
4927             we initialize it with pointers to prederef().
4929           * prederef() now returns the prederef_pc passed in, so that
4930             after predereferencing, the same location is executed, but now
4931             with the real code being called.
4933         Thanks to: John Kennedy
4935 2001-12-18 19:59  ajgough
4937         * t/: op/pmc.t, pmc/pmc.t: Added some more num -> string tests
4938         (including some more in the skipped string -> int tests).
4940 2001-12-18 07:06  jgoff
4942         * MANIFEST: Forgot to add classes/perlarray.pmc
4944 2001-12-18 07:05  jgoff
4946         * Makefile.in, core.ops, global_setup.c, vtable.tbl,
4947         classes/Makefile.in, classes/default.pmc, classes/perlarray.pmc,
4948         classes/perlint.pmc, classes/perlnum.pmc, classes/perlstring.pmc,
4949         classes/perlundef.pmc, include/parrot/pmc.h, t/op/pmc.t,
4950         t/pmc/pmc.t: Big update...  Makefile.in - Added
4951         classes/perlarray.pmc core.ops - Added new series of set() ops for
4952         arrays global_setup.c - Initialized perlarray classes/Makefile.in -
4953         Added perlarray.pmc classes/*.pmc - Added
4954         set_{integer,number,string}_index and
4955         get_{integer,number,string}_index include/parrot/pmc.h - Added new
4956         type t/op/pmc.t - Added basic array test
4958         classes/perlarray.pmc - Added
4960 2001-12-17 05:29  jgoff
4962         * languages/miniperl/Miniperl/Generator.pm: Altered miniperl code
4963         generator to use clone operator instead of set Px,Py
4965 2001-12-17 05:25  jgoff
4967         * core.ops, classes/perlint.pmc, classes/perlnum.pmc,
4968         classes/perlstring.pmc, t/op/pmc.t, t/pmc/pmc.t: Added clone
4969         PMC,PMC operator. Uses the clone() vtable entries.
4971 2001-12-17 04:51  jgoff
4973         * MANIFEST: Added miniperl test suite, removed old Miniperl/Test.pm
4974         entry
4976 2001-12-17 04:41  jgoff
4978         * languages/miniperl/Miniperl/Makefile.PL: Now in its proper
4979         directory...
4981 2001-12-17 04:41  jgoff
4983         * languages/miniperl/Makefile.PL: Moved it to the proper directory.
4985 2001-12-17 04:39  jgoff
4987         * languages/miniperl/: Makefile.PL, Miniperl.pm, miniperlc, mpc,
4988         Miniperl/Tokenizer.pm: Makefile.PL to let us run the test suite in
4989         t/
4991 2001-12-17 04:27  jgoff
4993         * languages/miniperl/Miniperl.pm: Latest version of the driver.
4994         Admittedly it's a little thin on true OO, but the algorithms are
4995         the key.
4997 2001-12-17 04:24  jgoff
4999         * languages/miniperl/Miniperl/t/: 001_tokenizer.t, 002_parser.t,
5000         003_generator.t, 004_combined.t: Much more comprehensive test suite
5001         for the codegen et al
5003 2001-12-17 04:22  jgoff
5005         * languages/miniperl/Miniperl/: Generator.pm, Parser.pm,
5006         Tokenizer.pm: Newer codegen, tightened up parser output, added hash
5007         key handling
5009 2001-12-17 04:20  jgoff
5011         * languages/miniperl/Miniperl/Test.pm: The newer test suite is much
5012         more comprehensive.
5014 2001-12-17 04:17  jgoff
5016         * languages/miniperl/foo.mpl: Test file that'll be outdated by
5017         changes to the new compiler
5019 2001-12-17 04:11  jgoff
5021         * languages/miniperl/t/: harness, 001_basic/basic.t: Moving testing
5022         files to Miniperl/
5024 2001-12-16 14:11  simon
5026         * classes/perlint.pmc, examples/assembly/mops_p.pasm, t/op/pmc.t,
5027         t/pmc/pmc.t:
5028         Fix bogus assumption that multiplying an integer by an integer
5029         yields an integer.
5031 2001-12-16 12:48  simon
5033         * make_vtable_ops.pl:
5034         Fixed op exploder.
5036 2001-12-16 12:45  simon
5038         * make_vtable_ops.pl, Parrot/Vtable.pm, lib/Parrot/Vtable.pm:
5039         Expand multimethod vtable ops.
5041 2001-12-16 12:04  simon
5043         * Makefile.in:
5044         Added 'cvsclean' which doesn't zap CVS/* directories.
5046 2001-12-15 01:50  dan
5048         * include/parrot/string.h: Fixed typo in string.h. lagnuage,
5049         indeed!
5051         Thanks to grunblatt fom #parrot for the catch
5053 2001-12-15 01:39  dan
5055         * .cvsignore, Configure.pl, MANIFEST, languages/jako/Makefile.in,
5056         languages/miniperl/.cvsignore, languages/miniperl/Makefile,
5057         languages/miniperl/Makefile.in,
5058         languages/miniperl/Miniperl/Test.pm, languages/scheme/.cvsignore,
5059         languages/scheme/Makefile, languages/scheme/Makefile.in: Build
5060         tweaks.
5062         Courtesy of: Jay McCarthy <jay@kenyamountain.com>
5064 2001-12-14 17:39  dan
5066         * t/op/trans.t: More trans tests.
5068         Courtesy of: Simon Glover <scog@roe.ac.uk>
5070 2001-12-14 07:41  robert
5072         * make.pl: - define MAKE macro - topological sort and subgraph
5073         order - start of timestamp stuff   (still badly broken)
5075 2001-12-14 06:06  jgoff
5077         * optimizer.pl: Hopefully this should do the trick..
5079 2001-12-14 06:04  jgoff
5081         * Parrot/Optimizer.pm, lib/Parrot/Optimizer.pm: Optimizer
5083           optimizer.pl is the stub, Parrot/Optimizer.pm is the driver.
5085           The optimizer performs its work on a file post-macro expansion.
5086           Run it on a .pasm file, preferably with some trivially reducible
5087         operations
5088           like 'add I0,5,-6' or 'mul I0,I1,0'
5090 2001-12-14 05:48  robert
5092         * Makefile.in: case error EXE -> exe
5094 2001-12-14 05:42  robert
5096         * Makefile.in: remove legacy PDISASM macro
5098 2001-12-14 04:01  dan
5100         * classes/Makefile.in, languages/Makefile.in: Makefile tweaks for
5101         better Win building
5103         Courtesy of: Garrett Goebel <garrett@scriptpro.com>
5105 2001-12-13 22:03  dan
5107         * Configure.pl, Makefile.in, Parrot/Test.pm,
5108         languages/scheme/Makefile, languages/scheme/Scheme/Test.pm,
5109         lib/Parrot/Test.pm: Parrot test prog's now a config variable, so we
5110         can change it without having to change the world.
5112 2001-12-13 21:57  dan
5114         * core.ops, interpreter.c, docs/parrot_assembly.pod,
5115         include/parrot/interpreter.h, t/op/debuginfo.t: Added current
5116         file/line/package to interp structure, with ops to get and set
5117         them. Now we can know where we are!
5119 2001-12-13 19:43  dan
5121         * Configure.pl, Makefile.in: Makefile tweaks to hopefully make
5122         WinXP builds work out of the box
5124 2001-12-13 17:05  dan
5126         * Makefile.in, Parrot/Test.pm, lib/Parrot/Test.pm: Change test prog
5127         name again--makes case-insensitive systems much happier.
5129 2001-12-13 16:21  dan
5131         * core.ops, key.c, string.c, test_main.c, trace.c,
5132         classes/Makefile.in, include/parrot/trace.h: Fixes to clean up
5133         compiler warnings
5135         Courtesy of: Josh Wilmes <josh@sky.net>
5137 2001-12-13 13:33  gregor
5139         * languages/jako/Makefile.in:
5140         Improved the method of calling the assembler.
5142 2001-12-13 13:30  gregor
5144         * languages/jako/Makefile.in:
5145         Improve the build process. It now works from the main parrot dir,
5146         and from the languages/jako directory. Now uses the .SUFFIXES
5147         target and generic build rules to reduce clutter in the
5148         Makefile.in.
5150 2001-12-13 13:29  gregor
5152         * languages/jako/.cvsignore:
5153         Ignore the (now generated Makefile), and don't ignore .list files
5154         anymore, since we aren't generating them.
5156 2001-12-13 13:11  gregor
5158         * Configure.pl, MANIFEST, Makefile.in, languages/.cvsignore,
5159         languages/Makefile.in, languages/jako/Makefile,
5160         languages/jako/Makefile.in:
5161         Added a 'languages' target to the top-level Makefile.in, and
5162         modified the jako build procedure to involve Makefile.in -->
5163         Makefile too (done by Configure.pl).
5165         NOTE: languages/jako and language/scheme are built.
5166         languages/miniperl wasn't building right, so it was left off for
5167         now.
5169 2001-12-13 12:15  gregor
5171         * MANIFEST:
5172         Added MAINTAINER file and mandelzoom.jako from languages/jako to
5173         the MANIFEST.
5175 2001-12-13 12:12  gregor
5177         * .cvsignore, MANIFEST, Makefile.in, core.ops, interpreter.c,
5178         ops2c-prederef.pl, ops2c.pl, test_main.c,
5179         include/parrot/interp_guts.h, include/parrot/interpreter.h,
5180         include/parrot/op.h, include/parrot/oplib/.cvsignore:
5181         Welcome to the Just-in-Time Predereferencing Patch!
5183         This patch implements a "predereferencing" mode for parrot. That
5184         means that a lot of the dereferencing you see in DO_OP and in the
5185         opfuncs is done up front (really, JIT) rather than as and each time
5186         we execute each op in the byte code stream.
5188         This works by creating an array of void pointers with the same
5189         number of elements as the byte code array. This array starts out
5190         life zero-initialized.  Each time we go to execute an op, we check
5191         first to see if we have a NULL pointer at *cur_opcode. If so, we
5192         know we haven't done our predereferencing yet (this is the JIT
5193         part), so we call the prederef() function with sufficient args that
5194         it can go look up opfunc pointers and op arg types and put the
5195         opfunc and arg pointers at cur_opcode[0] .. cur_opcode[N - 1],
5196         where N is the number of args (counting the op itself as one arg).
5198         We assume that sizeof(INTVAL) <= sizeof(void *), so we can continue
5199         to have inline INTVAL constants.
5201         I've been getting about a 22% speed increase over vanilla code path
5202         when I compile with -O0. Advantage decreases at -O9 here. I tested
5203         with mops.pbc, and also by temporarily putting the -P flag in
5204         Parrot/Test.pm and running all the tests. So, this code is as
5205         correct as the test suite can detect.
5207         Here's how it plays out in the code:
5209           * New script ops2c-prederef.pl
5211             Copy-paste code reuse from ops2c.pl. Modified to expect the
5212         args to give
5213             a void ** cur_opcode and to return a void **.
5215           * Modified ops2c.pl
5217               * opfuncs are now static. Who needs to call them by name from
5218         outside,
5219                 anyway? They are accessed via the opfunc table.
5221               * Some MACRO stuff to make things work whether we prederef or
5222         not. It
5223                 may be possible to get rid of these some day if other folks
5224         agree
5225                 that we should be using CODE object pointers + offsets as
5226         our PC
5227                 rather than raw pointers to either opcode_t's or (void *)'s
5228                 (depending on prederef mode or no).
5230           * core.ops modified to be usable to build both kinds of opfuncs.
5231         For now,
5232             this means:
5234               * calls to push_generic_entry(... cur_opcode ...) were
5235         changed to
5236                 push_generic_entry(... CUR_OPCODE ...), where CUR_OPCODE is
5237         a
5238                 macro that does the right thing in both kinds of ops.c
5239         files.
5241                 This is applicable to the bsr op. If we treated
5242         destinations as
5243                 (Code PMC + local offset) rather than as
5244         pointer-to-memory-somewhere,
5245                 this wouldn't be a big deal. We may need to do that at some
5246         point
5247                 anyway, so that when you jump around and return not only do
5248         you have
5249                 the right PC (pointer, today), but you also have the
5250         thread/interpreter
5251                 knowing what chunk of bytecode it is in at all times
5252         (assuming we'll
5253                 allow reflection, as in ops that query or affect the
5254         current CODE PMC).
5256               * runinterp was modified. Instead of copying the top-level
5257         PackFile struct
5258                 and blasting its byte_code pointer, we simply call runops
5259         on the new
5260                 interp, passing in the pointer to the current interp's code
5261         and the
5262                 offset into that code at which to start (this last arg used
5263         to be a
5264                 pointer PC, now its an offset PC).
5266           * include/parrot/op.h
5268               * new typedef for prederef opfuncs (they return void **)
5270           * include/parrot/interp_guts.h
5272               * New DO_OP_PREDEREF() macro described above.
5274           * include/parrot/interpreter.h
5276               * New prototype of runops() -- see below.
5278               * resume_addr field changed to resume_flag and resume_offset
5279         pair of fields.
5280                 We might be resuming from interp using prederef to one not
5281         or vice-versa,
5282                 so pointers between the two don't play nice together.
5283         Offsets are beautiful.
5285               * New PARROT_PREDEREF_FLAG constant
5287           * interpreter.c
5289               * include "parrot/oplib/core_ops_prederef.h"
5291               * prederef() function described above.
5293               * runops_prederef() runops variant. Uses DO_OP_PREDEREF()
5294         macro as its core.
5296               * runops() modified to take size_t CODE-relative offset PC
5297         rather than
5298                 pointer PC. This made other things workable and doesn't
5299         seem to have lost
5300                 anything important (IMO).
5302           * test_main.c
5304               * New flag '-P' to enable predereferencing.
5306           * Makefile modified to build core_ops_prederef.c from core.ops
5307         via
5308             ops2c-prederef.pl.
5310             BTW, also added missing $(INC)/interp_guts.h to H_FILES.
5312             Added core_ops_prederef$(O) to O_FILES
5314 2001-12-13 12:12  gregor
5316         * languages/jako/MAINTAINER:
5317         Thought it would be nice to put this right in the code...
5319 2001-12-13 04:36  jgoff
5321         * languages/miniperl/Miniperl/Generator.pm: Commented out
5322         debugging, fixed register spillover algorithm
5324 2001-12-13 04:23  jgoff
5326         * make.pl: Found and fixed obob in the parser (Wasn't parsing last
5327         line) Restructured a bit of the dependency generator to fix a
5328         different obob bug.
5330 2001-12-13 03:43  robert
5332         * MANIFEST, docs/opcodes.pod: remove old docs/opcodes.pod
5334 2001-12-13 03:03  jgoff
5336         * make.pl: Added make.pl
5338 2001-12-13 02:44  jgoff
5340         * languages/miniperl/Miniperl.pm: Nearly-complete 'make'
5341         replacement in perl.  Non-compliant bits - Takes absolutely -NO-
5342         special flags...                     - Dies on undefined macros
5343         such as $(PDISASM) in current make                     - Dies on
5344         recursive macro expansions                       (Doesn't test for
5345         mutual or multipart loops)                     - In general it
5346         seems to be a little less lenient...  Missing bits - File
5347         mod/creation times aren't being looked at              - Actions
5348         aren't being taken              - The few funky variables ($@, $<)
5349         aren't being dealt with Bugs - Line numbers are slipping a bit.
5351 2001-12-13 02:29  jgoff
5353         * languages/miniperl/Miniperl/: Generator.pm, Parser.pm:
5354         Reconstructing files to make the parser flow a little better.
5356 2001-12-13 00:51  dan
5358         * resources.c: Be a bit less wasteful with resources that don't
5359         need to be aligned
5361 2001-12-12 18:22  dan
5363         * Makefile.in: D'oh! Fixed looping makefile bug.
5365         Courtesy of: "Jaen Saul" <jaen@saul.ee>
5367 2001-12-12 16:23  jgoff
5369         * languages/miniperl/t/001_basic/basic1.scheme: Bogus entry
5371 2001-12-12 16:22  jgoff
5373         * MANIFEST: Manifest additions for languages/miniperl
5375 2001-12-12 16:19  jgoff
5377         * languages/miniperl/t/001_basic/: basic.t, basic1.scheme: Basic
5378         tests. These are left over from the Scheme suite and shouldn't be
5379         used yet.
5381 2001-12-12 16:18  jgoff
5383         * languages/miniperl/: Miniperl/Generator.pm, Miniperl/Parser.pm,
5384         Miniperl/Test.pm, Miniperl/Tokenizer.pm, t/harness: Miniperl base
5385         modules. Miniperl/ is where the real work gets done.  t/ is largely
5386         vacant because it isn't ready to survive real tests yet.
5388 2001-12-12 16:17  jgoff
5390         * languages/miniperl/: Makefile, Miniperl.pm, foo.mpl, miniperlc,
5391         mpc: Final go-round, hopefully.
5393         languages/miniperl/Makefile - Used basically to run tests, as there
5394         is nothing                               here that needs to be
5395         dynamically built.  languages/miniperl/Miniperl.pm - Stub module
5396         that calls the real Miniperl/ mods languages/miniperl/foo.mpl -
5397         Sample miniperl file.  languages/miniperl/miniperlc - Miniperl
5398         compiler stub
5400 2001-12-12 16:09  dan
5402         * Configure.pl: Setting a variable with the make command name is
5403         useful.
5405 2001-12-12 15:07  simon
5407         * Makefile.in, languages/jako/Makefile, languages/scheme/Makefile:
5408         Recursive make considered "ow, don't do that".
5410 2001-12-12 14:45  dan
5412         * Makefile.in: Makefile had some non-portable code. (Okay, a lot of
5413         non-portable code) Killing builds on Win32 native. Small patch
5414         applied which hopefully fixes it.
5416 2001-12-12 06:12  ajgough
5418         * classes/Makefile.in: perl is $(PERL), you know it makes sense.
5420 2001-12-12 06:08  ajgough
5422         * Makefile.in: perl is $(PERL).
5424 2001-12-12 06:00  ajgough
5426         * t/op/integer.t: Added tests to integer.t so that all permutations
5427         of arguments are actually called at some point.
5429 2001-12-12 05:18  ajgough
5431         * t/op/time.t: I can't sleep, but I don't see why parrot shouldn't.
5432          Tests for sleep i|ic
5434 2001-12-12 05:09  ajgough
5436         * t/op/stacks.t: Added pushp and popp register stack tests.
5438 2001-12-12 04:51  ajgough
5440         * t/op/stacks.t: Added tests for save and restore, for all register
5441         types.  Let there be Haiku.
5443 2001-12-12 04:27  ajgough
5445         * t/op/basic.t: bsr_i test.  You know you want it.
5447 2001-12-12 02:55  ajgough
5449         * MANIFEST: Added hints/os2.pl to MANIFEST.
5451 2001-12-12 02:52  jgoff
5453         * core.ops, key.c: Final checkin... These are actually the correct
5454         copies.
5456 2001-12-12 02:12  jgoff
5458         * include/parrot/key.h: key.c - Removed a few functions,
5459         generalized set_element_value and element_value         to accept
5460         KEY_PAIRs from core.ops include/parrot/key.h - Modified header.
5461         core.ops - Modified to accept the new return style.
5463         This is a prelude to adding virtual-table methods to allow hashing
5464         &c. Expect at least one or two more redesigns before this settles
5465         down. However, it still passes the original tests.
5467 2001-12-11 13:35  gregor
5469         * runops_cores.c:
5470         Fixed a typo.
5472 2001-12-11 12:03  gregor
5474         * .cvsignore:
5475         Don't ignore test_prog, but do ignore parrot.
5477 2001-12-11 12:03  gregor
5479         * classes/.cvsignore:
5480         Ignore the generated file default.h
5482 2001-12-11 04:07  jgoff
5484         * key.c: Key source
5486 2001-12-11 04:05  jgoff
5488         * include/parrot/key.h, t/op/key.t: Needed header file, new test
5490 2001-12-11 04:00  jgoff
5492         * core.ops: Added new key aggregate operations to core ops.
5494 2001-12-11 04:00  jgoff
5496         * include/parrot/parrot.h: Added key.h to header list
5498 2001-12-11 03:59  jgoff
5500         * MANIFEST: Added key.c, include/parrot/key.h, t/op/key.t
5502 2001-12-11 03:58  jgoff
5504         * Makefile.in: Added implementation of key aggregates.
5506 2001-12-08 23:07  simon
5508         * README:
5509         README good to go.
5511 2001-12-08 23:05  simon
5513         * Configure.pl, Makefile.in, README, Parrot/Test.pm,
5514         docs/intro.pod, languages/jako/Makefile, languages/scheme/Makefile,
5515         languages/scheme/Scheme/Test.pm, lib/Parrot/Test.pm:
5516         test_prog? What is test_prog?
5518 2001-12-08 22:57  simon
5520         * ChangeLog:
5522         Oops, the changelog commit was on *this* machine.
5524 2001-12-08 22:56  simon
5526         * NEWS:
5527         Updates to NEWS and ChangeLog pre-release.
5529 2001-12-08 22:07  simon
5531         * MANIFEST, Makefile.in, classes/Makefile.in, classes/default.pmc,
5532         classes/perlnum.pmc, classes/pmc2c.pl:
5533         Add "default" PMC vtable so you can inherit implied stuff.
5535 2001-12-08 21:24  simon
5537         * Parrot/PackFile.pm, docs/parrot.pod, docs/parrotbyte.pod,
5538         docs/vtables.pod, lib/Parrot/PackFile.pm:
5539         Getting the documentation up to scratch.
5541 2001-12-08 21:21  simon
5543         * classes/pmc2c.pl:
5544         Allow inheriting from default class.
5546 2001-12-07 20:43  gregor
5548         * examples/assembly/queens.pasm:
5549         Regenerated the file with the latest jakoc.
5551 2001-12-07 20:29  simon
5553         * core.ops, t/op/stacks.t:
5554         Rename "rotate" to "rotate_up".
5556 2001-12-07 20:15  simon
5558         * t/op/stacks.t:
5559         Some tests for rotate.
5561 2001-12-07 00:55  gregor
5563         * core.ops:
5564         Cast the result of the pointer arithmetic, since without the cast
5565         there are warnings with some compilers, and without the parens
5566         around the pointer arithmetic, precedence breaks the meaning and
5567         causes crashes.
5569 2001-12-06 23:37  simon
5571         * core.ops:
5572         Temporary. I prefer compiler warnings to segfaults, thanks.
5574 2001-12-06 23:34  simon
5576         * runops_cores.c:
5577         Make "trace" work again.
5579 2001-12-06 21:23  dan
5581         * Parrot/Test.pm, lib/Parrot/Test.pm: Undo twiddles to test.pm
5583 2001-12-06 21:22  dan
5585         * core.ops, packfile.c, Parrot/Test.pm, include/parrot/stacks.h,
5586         lib/Parrot/Test.pm: Fix up source issues that made Dec C unhappy
5588 2001-12-06 19:22  simon
5590         * core.ops:
5591         Yet another "How the *%$! did that compile?" moment.
5593 2001-12-06 18:28  dan
5595         * hints/vms.pl: Fix to build, with a HERE logical required
5597 2001-12-06 17:48  dan
5599         * core.ops, interpreter.c, pbc2c.pl, pdump.c, test_main.c,
5600         docs/parrot_assembly.pod, include/parrot/interpreter.h: Sensible
5601         changes to the interpreter--flags are now part of the interp
5602         structure.
5604         Courtesy of "Melvin Smith" <mrjoltcola@mindspring.com>
5606 2001-12-06 14:02  gregor
5608         * docs/intro.pod:
5609         s/little_languages/languages/ in Jako section.
5611 2001-12-06 13:15  simon
5613         * Makefile.in:
5614         Ensure the documentation gets made.
5616 2001-12-06 13:12  simon
5618         * MANIFEST, docs/intro.pod:
5619         Documentation! Added the "Some Assembly Required" article with
5620         minor updates.
5622 2001-12-06 00:39  simon
5624         * core.ops:
5625         More "eq" support.
5627         Courtesy of: Nguon Hao Ching <hao@netaxs.com>
5629 2001-12-06 00:37  simon
5631         * test_main.c:
5632         Add the "-d" debug flag. Doesn't actually *do* anything yet.
5634         Courtesy of: Melvin <mrjoltcola@mindspring.com>
5636 2001-12-06 00:11  tom
5638         * string.c, chartypes/unicode.c, chartypes/usascii.c,
5639         encodings/singlebyte.c, encodings/utf16.c, encodings/utf8.c,
5640         include/parrot/chartype.h, include/parrot/encoding.h,
5641         include/parrot/parrot.h: Moved string to number conversion code out
5642         of the encoding layer and into the main string layer as neither the
5643         encoding layer nor the character type layer knows enough on it's
5644         own to do the conversion correctly.
5646 2001-12-05 23:12  tom
5648         * Makefile.in: Rebuild the classes directory if any of the object
5649         files for the classes are missing rather than only when perlint.o
5650         is missing.
5652 2001-12-05 19:43  gregor
5654         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm:
5655           * Reworked the constantize_string() stuff a little bit because it
5656         was
5657             puking on things like "\033[H\033[2J\0" (which occurs in the
5658             languages/jako/mandelzoom.jako example).
5660 2001-12-05 19:39  gregor
5662         * languages/jako/: Makefile, mandelzoom.jako:
5663         Added 'mandelzoom' example.
5665 2001-12-05 19:38  gregor
5667         * languages/jako/jakoc:
5668           * Added sleep()
5670           * Changed some instances of die() to confess()
5672 2001-12-05 18:34  gregor
5674         * t/: op/pmc.t, pmc/pmc.t:
5675         s/sting->int/string->int/
5677 2001-12-05 18:08  gregor
5679         * Parrot/.cvsignore:
5680         Ignore PMC.pm
5682 2001-12-05 18:05  gregor
5684         * classes/.cvsignore:
5685         Ignore the generated files.
5687 2001-12-05 17:19  gregor
5689         * pbc2c.pl:
5690           * Reverted recent changes, since they broke the script. Real fix
5691         coming
5692             later.
5694 2001-12-05 17:03  simon
5696         * classes/Makefile.in:
5697         Remember: change Makefile.in, not Makefile. D'oh.
5699 2001-12-05 17:02  simon
5701         * Makefile.in:
5702         Ensure PMC.pm gets remade.
5704 2001-12-05 16:58  simon
5706         * MANIFEST, Makefile.in, classes/Makefile.in,
5707         classes/perlundef.pmc, include/parrot/pmc.h:
5708         Add perlundef class.
5710 2001-12-05 16:45  simon
5712         * core.ops:
5713         Document "new P0, foo"
5715 2001-12-05 16:43  simon
5717         * MANIFEST, Makefile.in, pbc2c.pl, pmc_pm.pl, Parrot/Assembler.pm,
5718         lib/Parrot/Assembler.pm, t/op/pmc.t, t/pmc/pmc.t:
5719         Allow assembler to know about PMC class names.
5721 2001-12-04 13:39  ajgough
5723         * MANIFEST: Added t/op/pmc.t to MANIFEST.
5725 2001-12-04 05:02  ajgough
5727         * classes/perlnum.pmc: Picky compiler pointed out probable thinko
5728         in perlnum.c
5730 2001-12-04 04:24  ajgough
5732         * encodings/singlebyte.c, t/op/pmc.t, t/pmc/pmc.t: A much less
5733         broken form of strtod and appropriate tests.  Does not yet check
5734         for overflow.
5736 2001-12-04 01:31  ajgough
5738         * string.c, encodings/singlebyte.c, encodings/utf16.c,
5739         encodings/utf8.c, include/parrot/encoding.h: Added length parameter
5740         to extract_num and extract_int string vtables, without this it
5741         would be impossible to have strings with nulls in while still
5742         knowing where they ended.
5744 2001-12-03 18:40  ajgough
5746         * string.c, classes/perlstring.pmc, encodings/singlebyte.c,
5747         encodings/utf16.c, encodings/utf8.c, include/parrot/encoding.h,
5748         include/parrot/string.h: Moved pmc string to number conversion into
5749         the string encoding tables.
5751 2001-12-03 00:21  ajgough
5753         * core.ops, t/op/pmc.t, t/pmc/pmc.t: Added set i, p and some tests
5754         for p-> integer.
5756 2001-12-02 23:09  jgoff
5758         * classes/Makefile.in: Removed some redundant targets.
5760 2001-12-02 19:02  ajgough
5762         * t/: op/pmc.t, pmc/pmc.t: Modified all pmc tests to make use of fp
5763         equality macro rather than using perl to generate expected output,
5764         all tests now have <<OUTPUT.
5766 2001-12-02 17:44  ajgough
5768         * t/op/trans.t: Upgraded fp_eq and fp_ne macros to be more useful
5769         for pmc.t as well.  Will probably move macros into another file at
5770         some point, although this might be best left until the tests are
5771         unperled.
5773 2001-12-02 06:16  jgoff
5775         * classes/pmc2c.pl: It wasn't properly setting the vtable index
5776         within Parrot_Perl{Class}_init.
5778 2001-12-02 06:09  jgoff
5780         * classes/Makefile.in: I seem to have removed *$(O) twice..
5782 2001-12-02 05:06  jgoff
5784         * Configure.pl, MANIFEST, Makefile.in: (Hopefully the last time...)
5785         Configure.pl - Removed '-I./include', added classes/Makefile
5786         generation MANIFEST     - Added classes/Makefile.in Makefile.in  -
5787         Removed old classes/* make stuff                Added target for
5788         classes/Makefile
5790 2001-12-02 04:48  jgoff
5792         * classes/Makefile.in: Going to be used shortly...
5794 2001-12-02 04:40  jgoff
5796         * docs/Makefile: Configure.pl - Added automatic makefile creation
5797         for docs/ and classes/                Removed '-I./include' because
5798         it was getting incorrectly                passed to classes/
5799         MANIFEST - added docs/Makefile.in, classes/Makefile.in Makefile.in
5800         - Removed classes/ build stuff, replaced with classes/Makefile.in
5801                     Added '-I./include' locally docs/Makefile - Should no
5802         longer be used, but I'm not brave enough to do a
5803         cvs delete.
5805 2001-12-02 01:21  ajgough
5807         * t/op/trans.t: Refactored trans math tests to have hard coded
5808         expected return values and be more ready to be unperled at some
5809         point in the future.  Added $fp_equality_macro which is a
5810         "nearly-equal-to" function.
5812 2001-12-02 01:18  ajgough
5814         * Makefile.in: Humph.  People really ought to use Makefile
5815         variables, s/perl/$(PERL)/ throughout.
5817 2001-12-01 18:15  jgoff
5819         * classes/: perlint.pmc, perlnum.pmc: Temporary patch until we
5820         figure out what to do vis-a-vis the lack of snprintf.
5822 2001-11-30 13:14  ajgough
5824         * t/op/: integer.t, number.t: Added tests for abs ops to number.t
5825         and integer.t
5827 2001-11-30 13:14  ajgough
5829         * core.ops: Added abs(i|n, i|ic|n|nc) ops to core.ops, using if <0
5830         -, else ... form.
5832 2001-11-30 10:36  simon
5834         * core.ops:
5835         Rewrite print_p to do the right thing.
5837 2001-11-30 06:21  jgoff
5839         * t/: op/pmc.t, pmc/pmc.t: New tests for integer/number/string
5840         concat,               integer/number/string math
5842 2001-11-30 06:20  jgoff
5844         * classes/: perlint.pmc, perlnum.pmc, perlstring.pmc:
5845         classes/perlint.pmc - Fixes and expanding for concat and math with
5846         strings classes/perlnum.pmc - Fixes and expanding for concat and
5847         math with strings classes/perlstring.pmc - Fixes and expanding for
5848         concat and math with strings
5850 2001-11-29 15:21  ajgough
5852         * hints/os2.pl: This is a hints file for os/2, I've set $c{perl} as
5853         $^X lies, which confused bash which make uses to run things when
5854         doing its stuff.
5856 2001-11-29 04:58  jgoff
5858         * classes/perlstring.pmc: Removed C++-style comments for good
5859         measure
5861 2001-11-29 04:51  jgoff
5863         * t/: op/pmc.t, pmc/pmc.t: New tests for PMC integers
5865 2001-11-29 04:28  jgoff
5867         * global_setup.c: Initialize PMC strings
5869 2001-11-29 04:25  jgoff
5871         * core.ops: Added set_p_s and set_p_sc, modified print_p to handle
5872         string PMCs.
5874 2001-11-29 04:24  jgoff
5876         * classes/: perlint.pmc, perlnum.pmc, perlstring.pmc: Changed PMC
5877         files to properly upgrade int to num, do calculations.  Also added
5878         basic string operations. Currently errors out on anything but set
5879         operations, but this will be fixed soon.
5881 2001-11-29 04:22  jgoff
5883         * Makefile.in: PMC .c files weren't getting cleaned out.
5885 2001-11-28 17:00  simon
5887         * t/harness:
5889         Make csh-glob happy.
5891         Courtesy of: Andy Dougherty: <doughera@lafayette.edu>
5893 2001-11-28 16:40  simon
5895         * classes/perlnum.pmc:
5897         De-C++
5899 2001-11-28 15:22  simon
5901         * string.c:
5903         Fixes Alex's string concat worry.
5905 2001-11-28 14:27  ajgough
5907         * t/op/string.t: test "null onto null" incorrectly passing as it
5908         produced no output.  Output provided.
5910 2001-11-28 11:14  simon
5912         * include/parrot/pmc.h:
5914         Placate AIX.
5916 2001-11-26 21:03  dan
5918         * MANIFEST, hints/darwin.pl: Tweaks to build on Mac OS X 10.1
5920 2001-11-26 17:29  simon
5922         * classes/perlint.pmc:
5924         Various subtle but non-showstopper bugs.
5926 2001-11-26 11:23  simon
5928         * classes/pmc2c.pl:
5930         Replace dependency on Text::Balanced
5932         Courtesy of: Bart Lateur <bart.lateur@pandora.be>
5934 2001-11-26 05:22  jgoff
5936         * global_setup.c: Last file that should need to be committed. I
5937         swear.
5939 2001-11-26 05:09  jgoff
5941         * core.ops: Let's try this again... Changes to core.ops required
5943 2001-11-26 04:58  jgoff
5945         * classes/perlint.pmc, classes/perlnum.pmc, t/op/pmc.t,
5946         t/pmc/pmc.t: Makefile.in - Added missing cleanup line for perl*.c
5947         core.ops - Added set(p,n|nc), modified print(p) global_setup.c -
5948         Uncommented PerlNum_init classes/perlint.pmc - Added set_number
5949         functions classes/perlnum.pmc - Set up basic number functions
5950         t/op/pmc.t - Added tests for set P0.<number> and {add,mul,sub,div}
5951         tests against numbers and numbers+integers
5953 2001-11-25 13:18  simon
5955         * Makefile.in:
5956         Windows XP make doesn't like $<
5958 2001-11-25 12:56  simon
5960         * MANIFEST, Makefile.in, classes/genclass.pl, classes/perlint.c,
5961         classes/perlint.pmc, classes/perlnum.c, classes/perlnum.pmc,
5962         classes/perlstring.c, classes/perlstring.pmc, classes/pmc2c.pl,
5963         examples/assembly/mops_p.pasm:
5964         PMC preprocessor.
5966         Courtesy of: Angel Faus <afaus@corp.vlex.com>
5968         I (Simon) also added a couple more integer methods, but no tests
5969         since I'm a Bad Person.
5971 2001-11-25 08:40  brentdax
5973         * ops2c.pl, Parrot/Op.pm, Parrot/OpsFile.pm, lib/Parrot/Op.pm,
5974         lib/Parrot/OpsFile.pm: Allow _ in op names
5976 2001-11-25 05:54  jgoff
5978         * classes/perlint.c, t/op/pmc.t, t/pmc/pmc.t: classes/perlint.c -
5979         Added basic math ops t/op/pmc.t - Added tests of basic math ops
5981 2001-11-23 18:27  simon
5983         * core.ops, classes/perlint.c, examples/assembly/mops_p.pasm:
5984         Add everything you need to make MOPS use PMCs.
5986 2001-11-23 18:06  simon
5988         * core.ops:
5989         Eh, you'll need this for rewriting mops.pasm.
5991 2001-11-23 17:55  simon
5993         * core.ops, classes/perlint.c, include/parrot/pmc.h, t/op/pmc.t,
5994         t/pmc/pmc.t:
5995         More work on integer PMCs.
5997 2001-11-23 17:29  simon
5999         * Makefile.in:
6000         Surprise! Whitespace! HLAGHLAGHLAGH
6002 2001-11-23 17:28  simon
6004         * Makefile.in, ops2c.pl, ops2pm.pl:
6005         Add vtables.ops to the core
6007         Courtesy of: Jeff Goff <jgoff@speakeasy.net>
6009 2001-11-22 18:39  simon
6011         * core.ops, global_setup.c, docs/parrot_assembly.pod, t/op/pmc.t,
6012         t/pmc/pmc.t:
6013         We can now create PMCs.
6015 2001-11-21 05:49  jgoff
6017         * Makefile.in: Makefile cleans up *.pasm *.pbc *.out
6019 2001-11-20 16:00  simon
6021         * docs/vtables.pod, include/parrot/pmc.h:
6022         Reorder PMC flags so there's a fixed number of user-defined flags.
6024         Courtesy of: Dave Mitchell <davem@fdgroup.co.uk>
6026 2001-11-19 03:39  jgoff
6028         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm, t/op/basic.t:
6029         Parrot/Assembler.pm - Allow "print 'foo'", and properly escape
6030         nested quotes.  t/op/basic.t - Add tests for single-quoted strings,
6031         escaped quotes, and proper                handling of newlines.
6033 2001-11-16 22:03  simon
6035         * classes/perlint.c:
6036         More work on the Perl Integer class. More needed, though.
6038 2001-11-16 21:57  simon
6040         * pmc.c, vtable.tbl, classes/genclass.pl, classes/perlint.c:
6041         Rename ->new to ->init, and rework pmc.c:pmc_new to fiddle it.
6043 2001-11-16 20:49  simon
6045         * interpreter.c, runops_cores.c, trace.c,
6046         include/parrot/runops_cores.h:
6047         Kill superfluous runops cores.
6049 2001-11-16 17:50  simon
6051         * MANIFEST, Makefile.in, classes/intclass.c, classes/perlint.c,
6052         classes/perlnum.c, classes/perlstring.c, classes/scalarclass.c,
6053         include/parrot/parrot.h, include/parrot/pmc.h:
6054         Skeleton for Perl scalar types, done right.
6056 2001-11-16 16:15  simon
6058         * classes/genclass.pl:
6059         This tidies up genclass to deal with the new-style multimethods.
6061 2001-11-16 15:29  simon
6063         * Makefile.in, make_vtable_ops.pl, vtable.tbl, Parrot/Vtable.pm,
6064         lib/Parrot/Vtable.pm, include/parrot/parrot.h:
6065         Rework multimethods to be *true* multimethods - that is, have
6066         different types.
6068 2001-11-15 22:29  simon
6070         * MANIFEST, Makefile.in, pmc.c:
6071         pmc.c linkage and support. Oh, and making it compile.
6073 2001-11-15 22:26  dan
6075         * t/op/interp.t: Forgot to tell CVS about the test...
6077 2001-11-15 22:10  dan
6079         * MANIFEST, Types_pm.in, core.ops, vtable_h.pl,
6080         docs/parrot_assembly.pod, include/parrot/string.h: Added in support
6081         for PMC registers for the interpreter.
6083         Added in the docs for the runinterp opcode.
6085         Added in code for both the newinterp and runinterp opcodes, so we
6086         can now create new interpreters from within parrot and have them do
6087         things. (Though we can't pass data back and forth. Yet)
6089 2001-11-15 21:24  simon
6091         * vtable.tbl, classes/scalarclass.c, docs/vtables.pod:
6092         More documentation, and other changes as discussed with Dan.
6094 2001-11-15 19:51  simon
6096         * classes/scalarclass.c:
6097         De-cut-and-pasto.
6099 2001-11-15 19:50  simon
6101         * classes/scalarclass.c:
6102         A little code tidiness.
6104 2001-11-15 19:33  simon
6106         * include/parrot/pmc.h:
6107         Missed this in the previous commit - un-constantize the base for
6108         user-defined PMC flags.
6110 2001-11-15 19:28  simon
6112         * classes/scalarclass.c:
6113         Hey look, sanity.
6115 2001-11-15 17:09  simon
6117         * classes/scalarclass.c:
6118         It seems I have completely forgotten how to write C.
6120 2001-11-15 16:53  simon
6122         * docs/vtables.pod:
6123         Start of the PMC classes documentation.
6125 2001-11-15 14:46  simon
6127         * classes/scalarclass.c:
6128         Changing to use a Perl-style struct instead of the union cache.
6130 2001-11-13 23:56  tom
6132         * string.c: Removed leading _ from string_index as function names
6133         starting with _ are reserved to implementors by the C standard.
6135         Also fixed string_index to use the encoding routines instead of
6136         assuming a single byte encoding.
6138 2001-11-13 12:59  jgoff
6140         * string.c: Patched string_concat to accept null strings.  That
6141         test was failing. Nothing to do with ord().
6143 2001-11-13 12:43  jgoff
6145         * string.c: string_ord function, string_concat fixes
6147 2001-11-13 04:52  jgoff
6149         * core.ops: Added ord to core.ops
6151 2001-11-13 04:35  jgoff
6153         * docs/strings.pod, include/parrot/exceptions.h,
6154         include/parrot/string.h, t/op/string.t: core.ops - Added ord
6155         operator, documentation string.c - Added string_ord, _string_index
6156         (_string_index is a static helper)              Patched
6157         string_concat to handle null strings properly.  docs/strings.pod -
6158         Description of string_ord include/parrot/exceptions.h - Added
6159         ORD_OUT_OF_STRING exception include/parrot/string.h - Added
6160         string_ord() t/op/string.t - Added full set of test for
6161         ord_i_(s|sc)(_(i|ic))?
6163         string.c contains a bit of documentation explaining the logic
6164         behind _string_index, primarily having to do with multiple encoding
6165         formats.
6167 2001-11-12 22:30  simon
6169         * t/op/macro.t:
6170         Count 'em.
6172 2001-11-12 22:28  simon
6174         * Makefile.in:
6175         Add a rule to compile "platform"
6177 2001-11-12 22:26  simon
6179         * Makefile.in:
6180         Tidy up distclean target.
6182 2001-11-12 16:54  dan
6184         * MANIFEST, Parrot/Assembler.pm, lib/Parrot/Assembler.pm,
6185         t/op/macro.t: Fixes to the assembler's macro facility and a test
6187         Courtesy of: Jeff <jgoff@speakeasy.net>
6189 2001-11-12 16:50  dan
6191         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm: Allow input from
6192         stdin
6194         Courtesy of: Jeff <jgoff@speakeasy.net>
6196 2001-11-12 16:36  dan
6198         * Parrot/Test.pm, lib/Parrot/Test.pm: Fix to make test work on
6199         CygWin
6201         Courtesy of: Alex Gough <alexander.gough@st-hughs.oxford.ac.uk>
6203 2001-11-12 11:22  simon
6205         * examples/assembly/mops.pasm:
6207         Trivial tightening of mops loop.
6209 2001-11-07 23:57  ajgough
6211         * docs/tests.pod: This is a basic quide to writing tests with
6212         assembler.
6214 2001-11-07 22:29  dan
6216         * stacks.c: Added a little documentation on the cleanup parameter
6217         for an entry
6219 2001-11-07 14:43  dan
6221         * MANIFEST, platforms/generic.c, platforms/linux.c,
6222         platforms/linux.h: Portability patches.
6224         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
6226 2001-11-06 19:51  tom
6228         * Makefile.in: Clean up object files in the subdirectories as well
6229         as those in the top level directory.
6231         Enhanced version of patch from Daniel Grunblatt
6232         <daniel@grunblatt.com.ar>
6234 2001-11-06 16:14  dan
6236         * Configure.pl, MANIFEST, Makefile.in, core.ops,
6237         platforms/generic.c, platforms/generic.h: Made things a bit more
6238         platform-independent. Makefile still needs work to pick up changes
6239         to the platform-specific files.
6241 2001-11-05 21:32  dan
6243         * docs/parrot_assembly.pod: Added docs for the GC control ops
6245 2001-11-04 02:52  gregor
6247         * platforms/: win32.c, win32.h:
6248           * win32 dynamic loading functions.
6250         Courtesy of Jason Diamond <jason@injektilo.org>
6252 2001-11-04 00:04  brentdax
6254         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm: Assembler fixes:
6255         allows an absolute path to be used and gives a useful error message
6256         if the original source file can't be found
6258 2001-11-02 12:37  gregor
6260         * platforms/: linux.c, linux.h:
6261           * Beginning of dynamic loading support. Linux only for now.
6263 2001-11-02 12:13  gregor
6265         * MANIFEST, time.c, include/parrot/time.h:
6266           * Removed time.[hc], since they have been superseded by the new
6267         platform
6268             stuff.
6270 2001-11-02 12:11  gregor
6272         * Configure.pl, Makefile.in, core.ops, vtable.tbl,
6273         classes/intclass.c, classes/scalarclass.c, hints/mswin32.pl,
6274         include/parrot/parrot.h, platforms/linux.c, platforms/linux.h,
6275         platforms/win32.c, platforms/win32.h:
6276         Patch from Jason Diamond to make win32 platform stuff work:
6278         * Modified Configure.pl, mswin32.pl, and Makefile.in so that the
6279         platform specific files in the platforms directory gets copied to
6280         the correct directories. The Makefile will re-copy the platform.h
6281         and .c files if the original is modified.
6283         * #include platform.h in parrot.h instead of time.h.
6285         * Removed time.h and time.obj from the Makefile. time.h and time.c
6286         aren't being used anymore since that code was moved to linux.c and
6287         win32.c.
6289         * Renamed the BOOL typedef in parrot.h to BOOLVAL (inspired by
6290         INTVAL and FLOATVAL). This was conflicting with the BOOL typedef in
6291         windows.h. This required updating several files besides parrot.h.
6293         * Added a DEFAULT_OPEN_MODE to linux.h and win32.h and used that
6294         instead of the missing identifiers (on Windows) in core.ops in the
6295         calls to open.
6297         * Added Parrot_sleep and Parrot_setenv to both the linux and win32
6298         platform files and called those from core.ops. The Linux code for
6299         these functions came from core.ops so they should hopefully work.
6301         Courtesy of Jason Diamond <jason@injektilo.org>
6303 2001-11-02 06:43  brentdax
6305         * Makefile.in, hints/mswin32.pl: Fix classes/intclass.obj building
6306         for Win32 (courtesy of Jason Diamond <jason@injektilo.org>)
6308 2001-11-02 02:26  gregor
6310         * .cvsignore, MANIFEST, include/parrot/.cvsignore,
6311         platforms/linux.c, platforms/linux.h, platforms/win32.c,
6312         platforms/win32.h:
6313           * Beginnings of platform support files in platform/*.[hc]
6315 2001-11-01 23:37  tom
6317         * classes/intclass.c: Added missing *'s to STRING arguments and
6318         return values to avoid compiler warnings.
6320 2001-11-01 22:21  gregor
6322         * MANIFEST, Makefile.in, core.ops, obscure.ops, time.c,
6323         include/parrot/parrot.h, include/parrot/time.h:
6324         Initial "fix" of time(n) op for Win32:
6326           * Initial Win32 code Courtesy of Richard J Cox <rjcox@cix.co.uk>
6328           * time.c and include/parrot/time.h
6330             First attempt at getting this working across platforms. The
6331             macro WIN32 being tested might not be right.
6333           * New functions Parrot_intval_time() and Parrot_floatval_time()
6334             wrap the appropriate functionality depending upon platform.
6335             Changed core.ops to call these.
6337         Added obscure.ops with obscure transcendental ops.
6339         Added simple file I/O ops (close, open, read, write):
6341           * Initial versions Courtesy of Jeff <jgoff@speakeasy.net>
6343           * I changed some arg ordering stuff.
6345           * I added read/write of INTVALs and FLOATVALs.
6347         Added environment variable ops (getenv, setenv)
6349         Added system error ops (err(i) and err(s) for accessing errno and
6350         strerr().
6352         Moved print ops in with other "temporary" developer ops, since
6353         they'll move to a devel.ops or temp.ops oplib once we have oplibs.
6355 2001-10-31 22:51  tom
6357         * MANIFEST, Makefile.in, chartype.c, encoding.c, global_setup.c,
6358         packfile.c, string.c, strnative.c, strutf16.c, strutf32.c,
6359         strutf8.c, transcode.c, chartypes/unicode.c, chartypes/usascii.c,
6360         encodings/singlebyte.c, encodings/utf16.c, encodings/utf32.c,
6361         encodings/utf8.c, include/parrot/chartype.h,
6362         include/parrot/encoding.h, include/parrot/exceptions.h,
6363         include/parrot/parrot.h, include/parrot/string.h,
6364         include/parrot/strnative.h, include/parrot/strutf16.h,
6365         include/parrot/strutf32.h, include/parrot/strutf8.h,
6366         include/parrot/transcode.h: Reworked the string code in line with
6367         Dan's latest design that separates character sets from encodings.
6369 2001-10-31 19:53  dan
6371         * docs/parrot_assembly.pod: Finished I/O section of docs
6373 2001-10-31 16:51  dan
6375         * core.ops, docs/parrot_assembly.pod, include/parrot/parrot.h:
6376         Moved includes out of core.ops and into parrot.h where they belong
6377         (suitably guarded with #ifdefs). Also some updates to
6378         parrot_assembly.pod
6380 2001-10-30 21:43  dan
6382         * core.ops, stacks.c, docs/parrot_assembly.pod,
6383         include/parrot/stacks.h: Added entrytype opcode to fetch the type
6384         of the entry on the stack
6386 2001-10-29 18:30  dan
6388         * stacks.c: You can turn off stack entry type validation on pop by
6389         passing in a type of 0 now. (For those cases where you just want to
6390         throw the darned thing away)
6392 2001-10-29 14:37  gregor
6394         * core.ops, languages/jako/jakoc:
6395           * New variants of the save ops to save constants on the stack.
6396         This is
6397             useful for saving zero arg and result counts on the stack, for
6398         example.
6400           * Modified jakoc to to adapt to the newly announced calling
6401         conventions.
6402             Even though Jako source code appears to show subroutines with
6403         fixed
6404             numbers of arguments and results, they are implemented with the
6405             variable count calling convention. Future modifications will be
6406         needed
6407             to ensure that an exception is raised if the stack frame is of
6408         the
6409             wrong size (or, at least that we pop the complete frame off).
6410         We'll
6411             also have to make more changes to support the true
6412         fixed-arg-count
6413             and fixed-result-count parts of the calling convention spec.
6415 2001-10-28 16:53  simon
6417         * MANIFEST, stacks.c, classes/scalarclass.c,
6418         include/parrot/stacks.h:
6419         Unbelievably bad errors of mine, plus a type incompatibility of
6420         Dan's.
6422 2001-10-28 08:30  simon
6424         * classes/scalarclass.c:
6425         Beginning of a scalar class.
6427 2001-10-28 08:29  simon
6429         * make_vtable_ops.pl, vtable.tbl, Parrot/Vtable.pm,
6430         lib/Parrot/Vtable.pm, classes/genclass.pl, classes/intclass.c,
6431         include/parrot/pmc.h:
6432         This fixes the problem with vtables and pointer arithmetic.
6434 2001-10-26 19:58  dan
6436         * core.ops, interpreter.c, stacks.c, include/parrot/interpreter.h,
6437         include/parrot/stacks.h: Split the generic stack into a user push
6438         stack and a control stack
6440 2001-10-26 02:59  bdwheele
6442         * Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm: [no log message]
6444 2001-10-24 20:27  dan
6446         * languages/scheme/: Makefile, Scheme.pm, schemec,
6447         Scheme/Generator.pm, Scheme/Parser.pm, Scheme/Test.pm,
6448         Scheme/Tokenizer.pm, t/harness, t/arith/basic.t, t/arith/logic.t,
6449         t/arith/nested.t, t/io/basic.t, t/logic/basic.t: Added the mini
6450         Scheme compiler
6452 2001-10-24 20:23  dan
6454         * MANIFEST, pdump.c, docs/parrot_assembly.pod: Update for
6455         interpreter needs in pdump.c. Added scheme bits to manifest
6457 2001-10-24 16:43  gregor
6459         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm:
6460           * Make the assembler handle octal character code escapes in
6461         string
6462             constants.
6464 2001-10-24 15:56  dan
6466         * MANIFEST, examples/assembly/life.pasm: Added an example in to
6467         play the game of life
6469 2001-10-24 15:54  dan
6471         * core.ops: Added sleep. We'll need to override this to do events
6472         properly anyway, so...
6474 2001-10-24 14:03  gregor
6476         * Makefile.in, pbc2c.pl, pdump.c:
6477           * Adapt pdump.c and pbc2c.pl to the new requirement to pass
6478         interpreter
6479             pointer into string functions.
6481         Courtesy of: Ryan O'Neil <talisman580@yahoo.com>
6483 2001-10-23 20:09  gregor
6485         * languages/jako/jakoc:
6486           * Terminological refinement in regexp capture comment.
6488 2001-10-23 15:23  simon
6490         * classes/genclass.pl:
6491         Use a saner ANSI C construct to make MIPSPro happy.
6493         Courtesy of: Alex Gough <alexander.gough@st-hughs.oxford.ac.uk>
6495 2001-10-23 00:34  tom
6497         * core.ops, string.c, strnative.c, strutf16.c, strutf32.c,
6498         strutf8.c, include/parrot/string.h: Make sure the interpreter
6499         structure is passed to the transcoder as necessary, including
6500         passing it to string_compare().
6502 2001-10-23 00:32  tom
6504         * Makefile.in: Make pdump build again by including resources.o in
6505         the link.
6507 2001-10-22 22:43  dan
6509         * core.ops, packfile.c, string.c, strnative.c, strutf16.c,
6510         strutf32.c, strutf8.c, test_main.c, transcode.c,
6511         include/parrot/packfile.h, include/parrot/parrot.h,
6512         include/parrot/resources.h, include/parrot/string.h,
6513         include/parrot/transcode.h: Everything now uses the allocators and
6514         deallocators in resources.c.
6516         Unfortunately we lost standalone string-test mode, but I can cope
6517         with that.
6519         Please note that until we have a real allocation/deallocation/GC
6520         system, this'll leak. A *lot*.
6522 2001-10-22 20:27  dan
6524         * MANIFEST, Makefile.in, pmc.c, resources.c,
6525         include/parrot/resources.h: First cut to handle arena allocation of
6526         PMC headers. (Amongst other things)
6528 2001-10-22 19:02  dan
6530         * Configure.pl, config_h.in, register.c, include/parrot/register.h:
6531         Now each register type has its own mask macro, which is the right
6532         thing to do.
6534         Patch courtesy of Jason Gloudon <perl@gloudon.com>
6536 2001-10-21 23:40  tom
6538         * stacks.c, t/op/stacks.t: Fix bug in handling of rollover to a new
6539         stack chunk and add a test to test this rollover in future.
6541         Courtesy of Jason Gloudon <perl@gloudon.com>.
6543 2001-10-21 19:14  dan
6545         * include/parrot/string.h: Changed string 'unused' field to the
6546         language field.
6548 2001-10-21 18:18  gregor
6550         * languages/jako/: Makefile, mops.jako:
6551           * Makefile: 'clean' target removes .list files, too. And, it does
6552         rm -f
6553             with wildcards rather than listing things explicitly.
6555           * mops.jako actually prints out the
6556         millions-of-operations-per-second
6557             (mops) value instead of just the operations-per-second value.
6559 2001-10-21 18:03  simon
6561         * classes/intclass.o:
6562         *smack*! WRONG!
6564 2001-10-21 17:47  simon
6566         * MANIFEST, Makefile.in, make_vtable_ops.pl, pmc.c, vtable_h.pl,
6567         Parrot/Vtable.pm, classes/genclass.pl, classes/intclass.c,
6568         classes/intclass.o, include/parrot/parrot.h, include/parrot/pmc.h,
6569         lib/Parrot/Vtable.pm:
6570         Initial work on PMCs. Explanation to follow
6572 2001-10-21 15:20  gregor
6574         * examples/assembly/queens.pasm:
6575           * Modernize the calling conventions in queens.pasm. It was using
6576         swap,
6577             which now must be rotate. Also, changed to use return values on
6578         the
6579             stack instead of in I0.
6581 2001-10-19 18:14  gregor
6583         * core.ops, stacks.c, include/parrot/stacks.h,
6584         languages/jako/jakoc:
6585         Per Dan's request, replacing 'swap' op by 'rotate'.
6587           * core.ops: Replaced 'swap()' by 'rotate(i|ic)'.
6589           * stacks.c and stacks.h: Removed swap-related functions from my
6590             prior commit, replacing them with stack_depth(), stack_entry()
6591             and rotate_entries().
6593             NOTE: The stack_depth() and rotate_entries() routines could
6594             be made more efficient through the caching of the sum of chunk
6595             'used' members from lower chunks in a field in the upper
6596             chunks. Also, if the interpreter's stack_base was changed to
6597             hold the pointer to the *top* chunk (since we usually come
6598             at the stack from the top down) instead of the *bottom*
6599             chunk. The code here at least works, and we can decide about
6600             bigger changes separately.
6602             For now, rotate only handles rotates in one direction and
6603             of magnituded one. A fully general rotate would do handle
6604             rotates in both directions and of arbitrary amounts. Again,
6605             this implementation is sufficient for current applications,
6606             and a feature-complete version can be developed if this turns
6607             out to be otherwise the right type of implementation.
6609             This change includes a new exception for ERROR_STACK_SHALLOW,
6610             meaning "not-empty-yet-not-deep-enough-for-what-you-asked".
6612           * jakoc: Changed the calling convention to use rotate instead
6613             of swap (of course). Also changed the convention for return
6614             value passing to use the stack as well.
6616 2001-10-19 13:36  gregor
6618         * MANIFEST, core.ops, disassemble.pl, stacks.c,
6619         examples/assembly/queens.pasm, include/parrot/stacks.h,
6620         languages/jako/.cvsignore, languages/jako/Makefile,
6621         languages/jako/bench.jako, languages/jako/euclid.jako,
6622         languages/jako/fact.jako, languages/jako/jakoc,
6623         languages/jako/mandelbrot.jako, languages/jako/mops.jako,
6624         languages/jako/primes.jako, languages/jako/queens.jako,
6625         languages/jako/sub.jako:
6626           * New stack functions push_entry(), pop_entry() and swap_entry().
6627             The first two exist for the support of the last one. These
6628             functions don't care what is in the stack entries. These exist
6629             to support the new 'swap' op (see next bullet).
6631           * New op 'swap' for swapping the top two elements on the stack.
6632             This is necessary for passing arguments to functions, since
6633             the return address will be on top of any arguments that have
6634             been pushed on the stack. This way, you can use a (swap, pop)
6635             pair to retrieve each argument (for subroutine linkage).
6637           * Disassembler now prints numbers in decimal by default, with
6638             a new '-x' flag to turn on hexadecimal display. Since other
6639             members of the Parrot Tool Set use decimal by default, this
6640             makes it easier to compare output from the various tools.
6642           * Jako compiler has more explanatory comments and the following
6643             new features:
6645               * Lexically scoped variables.
6647               * Subroutines that take arguments and return values:
6649                   sub int foo(int bar) {
6650                     if (bar == 1) {
6651                       return 42;
6652                     } else {
6653                       return 13;
6654                     }
6655                   }
6656               * ... if (...) and ... unless (...) statement modifiers
6657                 can be used on next, last and redo.
6659               * Bitwise and (&, &=) and or (|, |=) ops.
6661               * Type names are just 'int', 'num', 'str', and 'poly' now.
6662                 The old long names 'integer', 'number', 'string', and
6663                 'polytype' are no longer valid.
6665               * Integer variable assignments can now use 0b (binary),
6666                 0 (octal) and 0x (hexadecimal) radix prefixes on literals.
6668           * New Jako and Parrot assembly examples queens.{jako,pasm} for
6669             solving the eight-queens problem. The assembly example is a
6670             hand-modified version of the assembly code produced by the
6671             Jako compiler from queens.jako. A few unnecessary ops have
6672             been removed, lots of unnecessary labels have been removed,
6673             and all the Jako source code comments have been removed.
6675           * Makefile and .cvsignore in languages/jako modified so that
6676             the assembler produces listings when assembling the programs,
6677             yet the *.list files are ignored by CVS.
6679           * Made the default target in languages/jako/Makefile 'all'.
6681           * Modified some of the Jako examples to use some of the new
6682             features of Jako, such as subroutines and lexical variable
6683             scoping.
6685 2001-10-19 02:43  gregor
6687         * runops_cores.c, include/parrot/runops_cores.h:
6688         Bug fix (gcc doesn't complain, but MIPSpro does):
6690           * Added missing extern to runops_cores array declaration in
6691             include/parrot/runops_cores.h
6693           * Also added 'const' there and in runops_cores.c
6695 2001-10-18 15:18  gregor
6697         * .cvsignore, include/parrot/oplib/.cvsignore:
6698           * Ignore the vtable-related generated files.
6700 2001-10-18 15:14  gregor
6702         * core.ops:
6703           * left and right shifts now allow the 2nd argument to be a
6704         constant.
6706 2001-10-18 14:55  simon
6708         * make_vtable_ops.pl:
6709         This is C, not Perl. How on earth did that even compile?
6711 2001-10-18 14:54  simon
6713         * make_vtable_ops.pl:
6714         More vtable ops.
6716 2001-10-18 12:33  simon
6718         * Makefile.in, make_vtable_ops.pl, vtable.tbl:
6719         Initial stab at vtable opcode creation stuff.
6721 2001-10-18 02:15  gregor
6723         * MANIFEST, Makefile.in, interpreter.c, runops_cores.c, trace.c,
6724         include/parrot/interpreter.h, include/parrot/runops_cores.h,
6725         include/parrot/trace.h: Preparation for autogenerated runops cores:
6727           * Split tracing and runops core stuff out of interpreter.c into
6728             trace.c and runops_cores.c
6730           * Similar split of stuff from include/parrot/interpreter.h
6732           * Manifest and Makefile.in updates to make things still compile.
6734 2001-10-18 01:21  gregor
6736         * Makefile.in, ops2c.pl, ops2pm.pl, pbc2c.pl: Bug fixes:
6738           * Makefile.in: examples/assembly/mops.c depends on pbc2c.pl
6740           * Makefile.in: Parrot/OpLib/core.pm depends on ops2pm.pl
6742           * ops2c.pl: Added second arg to mkdir (perl 5.005_02 complains)
6744           * ops2pm.pl: Added second arg to mkdir (perl 5.005_02 complains)
6746           * pbc2c.pl: Removed explicit include of <math.h>, replacing it
6747         with
6748             copy of $ops->preamble.
6750 2001-10-17 22:32  bdwheele
6752         * interpreter.c: Moved op dump code into trace_op_dump, per Dan's
6753         request.
6755 2001-10-17 22:08  gregor
6757         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm:
6758           * Now handles label-and-comment-only lines.
6760 2001-10-17 22:04  bdwheele
6762         * interpreter.c: added more comprehensive trace output
6764 2001-10-17 16:50  tom
6766         * Makefile.in: Removed the explicit rule for building mops.o from
6767         mops.c so that the implicit rule for compiling C files is used
6768         instead. This means that the chosen C flags are used, including any
6769         optimisation options.
6771 2001-10-17 15:24  tom
6773         * core.ops, Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm: Enhanced the
6774         op explosion logic to be able to handle exploding this:
6776           sub(i, i|ic, i|ic)
6778         into these:
6780           sub(i, i, i)
6781           sub(i, i, ic)
6782           sub(i, ic, i)
6784         without also generating this unwanted version:
6786           sub(i, ic, ic)
6788         The enhanced version rejects any expansion where there is more than
6789         one expanded argument and all the expanded arguments are constants.
6791 2001-10-17 14:20  simon
6793         * Makefile.in, ops2c.pl, ops2pm.pl, examples/assembly/Makefile:
6794         Build fixes to use correct Perl version and ensure that things are
6795         running in the right directory.
6797         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
6799 2001-10-17 13:16  simon
6801         * Makefile.in:
6802         core.pm is more critical than that.
6804 2001-10-17 13:05  simon
6806         * core.ops, Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm:
6807         "Explode" ops into multiple versions for different parameters.
6809         Courtesy of: Tom Hughes <tom@compton.nu>
6811 2001-10-17 12:54  simon
6813         * Makefile.in:
6814         Fix dependencies and cleaning.
6816 2001-10-17 12:45  simon
6818         * Configure.pl, Makefile.in:
6819         Fixes to make Parrot compile without the temporary build hack
6821         Courtesy of: Jason Gloudon <perl@gloudon.com>
6823 2001-10-16 20:43  gregor
6825         * Makefile.in:
6826           * Fixed dependencies for building Parrot/OpLib/core.pm
6828 2001-10-16 19:35  bdwheele
6830         * core.ops, t/op/string.t: Changed set s,sc to use string_copy &
6831         added test, thanks to Alex Gough
6833 2001-10-16 16:49  bdwheele
6835         * core.ops: added opcode variants for constants and 3 arg concat
6837 2001-10-16 15:12  bdwheele
6839         * core.ops: added "set Sx,Sy" as a string copy to match the other
6840         register-to-register copies available
6842 2001-10-16 13:09  gregor
6844         * core.ops:
6845           * Added #include <sys/time.h> in the preamble for gettimeofday().
6847 2001-10-16 13:09  gregor
6849         * Makefile.in:
6850           * Removed cd t; make, which no longer applies
6852 2001-10-16 03:18  bdwheele
6854         * core.ops: fix save & restore operations to push correct type onto
6855         stack. [good eye to Jason Gloudon for noticing this]
6857 2001-10-16 01:38  bdwheele
6859         * core.ops, register.c, examples/assembly/fact.pasm,
6860         include/parrot/register.h: send in the clones:  clone routines for
6861         parrot + example program
6863 2001-10-15 22:37  gregor
6865         * MANIFEST, Makefile.in, examples/assembly/.cvsignore,
6866         examples/assembly/Makefile, examples/assembly/bsr.pasm,
6867         examples/assembly/call.pasm, examples/assembly/euclid.pasm,
6868         examples/assembly/jump.pasm, examples/assembly/local_label.pasm,
6869         examples/assembly/mops.pasm, examples/assembly/stack.pasm,
6870         examples/assembly/substr.pasm, examples/assembly/trace.pasm,
6871         t/.cvsignore, t/Makefile, t/call.pasm, t/euclid.pasm, t/jump.pasm,
6872         t/local_label.pasm, t/test.pasm, t/test2.pasm, t/test3.pasm,
6873         t/test4.pasm, t/test5.pasm, t/trace.pasm:
6874           * Moved examples from t/*.pasm to examples/assembly/*.pasm, with
6875         some
6876             renames so the names match what they demonstrate.
6878 2001-10-15 22:18  gregor
6880         * core.ops, t/test.pasm:
6881           * time_n uses gettimeofday() to get sub-second times.
6883           * t/test.pasm uses time_n directly rather than doing int stuff
6884         and
6885             converting to num later.
6887 2001-10-15 12:28  gregor
6889         * t/: test.pasm, test2.pasm, trace.pasm:
6890           * t/test.pasm prints using string constants instead of string
6891         regs.
6893           * t/test2.pasm assembles (using implicit op modes)
6895           * t/trace.pasm updated for new behavior of trace_ic, which does
6896         not
6897             require an 'end' after 'trace'.
6899 2001-10-15 00:47  gregor
6901         * core.ops, interpreter.c, test_main.c,
6902         include/parrot/interpreter.h, t/test.pasm:   * New interpreter flag
6903         PARROT_PROFILE_FLAG
6905           * New runops cores to handle profiling
6907           * Support for -p flag in test_prog to enable profiling
6909           * New profile_ic op to control profiling at run-time
6911 2001-10-14 21:54  gregor
6913         * core.ops, Parrot/OpsFile.pm, docs/.cvsignore, docs/Makefile,
6914         lib/Parrot/OpsFile.pm: Integrated op documentation.
6916           * core.ops now contains POD documentation of ops, interspersed
6917         with the
6918             ops themselves
6920           * Ops are organized into POD =head2 sections
6922           * Parrot/OpsFile.pm now treats the preamble of the ops file as
6923         anything
6924             up to the first POD directive OR op definition.
6926           * docs/Makefile now generates core_ops.pod from core.ops vi
6927         perldoc -u.
6929 2001-10-14 11:58  simon
6931         * Makefile.in:
6932         Unbreak Digital Un^W^WTru64
6934 2001-10-14 11:00  simon
6936         * Configure.pl:
6937         Remove weird typo.
6939 2001-10-14 10:56  tom
6941         * Configure.pl: Stop Configure trying to make op_info.c and op.h as
6942         op_info.c no longer exists and op.h is no longer a generated file.
6944 2001-10-14 10:54  tom
6946         * Makefile.in: Added vtable.h to the list of things removed by the
6947         clean target.
6949 2001-10-14 01:43  gregor
6951         * .cvsignore, MANIFEST, Makefile.in, basic_opcodes.ops,
6952         build_interp_starter.pl, core.ops, disassemble.pl, interpreter.c,
6953         make_op_header.pl, memory.c, opcheck.pl, opcode_table, ops2c.pl,
6954         ops2pm.pl, packfile.c, pbc2c.pl, process_opfunc.pl,
6955         Parrot/Assembler.pm, Parrot/Op.pm, Parrot/OpsFile.pm,
6956         Parrot/OpLib/.cvsignore, lib/Parrot/Assembler.pm, lib/Parrot/Op.pm,
6957         lib/Parrot/OpsFile.pm, lib/Parrot/OpLib/.cvsignore,
6958         include/parrot/.cvsignore, include/parrot/interp_guts.h,
6959         include/parrot/interpreter.h, include/parrot/op.h,
6960         include/parrot/oplib/.cvsignore, t/.cvsignore, t/Makefile,
6961         t/euclid.pasm, t/test.pasm, t/op/integer.t, t/op/number.t,
6962         t/op/stacks.t, t/op/string.t, t/op/trans.t:
6963         Moby Patch:
6965           * basic_opcodes.ops and opcode_table replaced by core.ops
6967           * process_opfunc.pl replaced by Parrot/OpsFile.pm, Parrot/Op.pm,
6968             and ops2c.pl. These convert *.ops to *_ops.c and
6969             include/parrot/oplib/*_ops.h
6971           * New ops2pm.pl converts *.ops to Parrot/OpLib/*.pm
6973           * disassemble.pl modified to use
6975           * interpreter.c modified to use structures in core_ops.c instead
6976             of the old op_info and op_func stuff. We're not yet to the
6977             point of handling multiple oplibs at a time, but we are getting
6978             there...
6980             Fingerprinting stuff disabled for now. We used to go off
6981             opcode_table. We need to rethink this. I have some ideas to
6982             make it unnecessary, but it remains to be seen whether others
6983             will like the direction they take us.
6985             Termination condition for while(){} loop in runops is now
6986             (pc) instead of (*pc). Any op can cause a HALT by returning
6987             a NULL pointer. Ops end, bounds and trace all do this. So, now
6988             the 'end' op body is actually executed, although all it does
6989             is HALT.
6991           * Makefile.in modified to perform a test build using pbc2c.pl,
6992             which is the bytecode --> C compiler I've posted to the
6993             list before.
6995           * Op full names are now autogenerated. Op root names must not
6996             contain underscores, so some op renamings have happened.
6997             Such as clear_i becoming cleari.
6999 2001-10-13 11:49  simon
7001         * Configure.pl, MANIFEST:
7002         Make parrot actually build again.
7004 2001-10-12 21:34  dan
7006         * docs/parrot_assembly.pod: Added docs for the new save/restore/bsr
7007         opcodes
7009 2001-10-12 20:56  dan
7011         * MANIFEST, Makefile.in, basic_opcodes.ops, interpreter.c,
7012         opcode_table, process_opfunc.pl, stacks.c, include/parrot/stacks.h,
7013         t/test3.pasm, t/test4.pasm, t/test5.pasm: Changes to support
7014         generic stack now in. We also have subroutines, of a simple sort!
7016 2001-10-12 19:15  tom
7018         * t/op/string.t: Improved string comparison tests try all string
7019         combinations with each of the comparison ops.
7021 2001-10-12 19:09  dan
7023         * interpreter.c: Properly sets up generic stack now
7025 2001-10-12 19:09  dan
7027         * include/parrot/interpreter.h: Fixed stack chunk struct type in
7028         interpreter structure
7030 2001-10-12 18:59  dan
7032         * stacks.c, include/parrot/parrot.h, include/parrot/stacks.h: More
7033         changes to get the generic stack working
7035 2001-10-12 18:59  dan
7037         * Configure.pl, MANIFEST, config_h.in, testparrotsizes_c.in,
7038         hints/vms.pl: Made the changes to figure out mask bits for various
7039         register and stack chunks
7041 2001-10-11 22:09  dan
7043         * docs/parrot_assembly.pod: Tossed the parameter for return
7045 2001-10-11 19:28  tom
7047         * strnative.c: Assignment, not comparison.  (Plus formatted for
7048         coding standards)
7050         Courtesy of Bryan C. Warnock
7052 2001-10-10 19:21  tom
7054         * basic_opcodes.ops, opcode_table, string.c, strnative.c,
7055         strutf16.c, strutf32.c, strutf8.c, docs/strings.pod,
7056         include/parrot/string.h, t/op/string.t: Added support for string
7057         comparisons and extended the comparison ops to include comparison
7058         of strings.
7060 2001-10-10 17:58  dan
7062         * MANIFEST: Shouldn't have added vtable.h to the manifest...
7064 2001-10-10 17:54  dan
7066         * MANIFEST, stacks.c, vtable_h.pl, Parrot/Vtable.pm,
7067         lib/Parrot/Vtable.pm: Now spits out the #defines for the various
7068         vtable type entries properly
7070 2001-10-10 15:37  dan
7072         * Parrot/Vtable.pm, lib/Parrot/Vtable.pm: Re-enabled change to
7073         parse new vtable.tbl file now that I've actually checked *in* the
7074         new format vtable.tbl file...
7076 2001-10-10 15:32  dan
7078         * vtable.tbl: New Column to indicate the type of the vtabel entry
7079         so we can know how many slots it takes
7081 2001-10-10 05:26  thgibbs
7083         * Parrot/Vtable.pm, lib/Parrot/Vtable.pm, vtable_h.pl: Patch to
7084         allow parrot to compile.  PACKAGE is not defined, therefore, I
7085         added a struct before it to have it not complain until we define
7086         PACKAGE.  Also, there was an extra shift in Vtable.pm and a missing
7087         semicolon at the end of the struct declaration.
7089 2001-10-10 05:09  thgibbs
7091         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm: This patch makes
7092         string constants of the form U"string" become unicode encoded
7093         parrot strings and the form N"string" become native encoded parrot
7094         strings.
7096         Courtesy of: Tom Hughes <tom@compton.nu>
7098 2001-10-10 04:55  dan
7100         * vtable_h.pl, Parrot/Vtable.pm, lib/Parrot/Vtable.pm: Start of
7101         support for generating the vtable function table offset macros
7103 2001-10-10 01:05  simon
7105         * t/op/integer.t:
7106         The test for cmod_i was using the 'mod Ix, Ix, Ix' form which
7107         compiles into the mod op, not the cmod_i op, hence wasn't testing
7108         what it thought it was.
7110         Courtesy of: Alex Gough <alexander.gough@st-hughs.oxford.ac.uk>
7112 2001-10-09 03:45  thgibbs
7114         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm: Patch to allow
7115         assembler to generate unicode strings.
7117         Courtesy of: Tom Hughes <tom@compton.nu>
7119 2001-10-08 19:30  brentdax
7121         * Configure.pl, test_c.in, hints/vms.pl: Cleaner VMS support, more
7122         info for Parrot::Config to remember, more flexible test.c stuff
7124 2001-10-08 15:04  gregor
7126         * basic_opcodes.ops:
7127           * Removed trash from early mod_i experiments (pardon our dust)
7129 2001-10-08 14:56  gregor
7131         * basic_opcodes.ops:
7132           * Fixed a couple of typos.
7134 2001-10-08 14:45  gregor
7136         * basic_opcodes.ops, opcode_table, t/op/integer.t, t/op/number.t:
7137         Arithmetic enhancements:
7139           * Renamed existing mod_i as cmod_i and added "corrected" mod_i:
7141             NOTE: This "uncorrected mod" algorithm uses the C language's
7142         built-in
7143             mod operator (x % y), which is
7145                 ... the remainder when x is divided by y, and thus is zero
7146         when y
7147                 divides x exactly.
7148                 ...
7149                 The direction of truncation for / and teh sign of the
7150         result for %
7151                 are machine-dependent for negative operands, as is the
7152         action taken
7153                 on overflow or underflow.
7154                                                                      --
7155         [1], page 41
7157             Also:
7159                 ... if the second operand is 0, the result is undefined.
7160         Otherwise, it
7161                 is always true that (a/b)*b + a%b is equal to z. I both
7162         operands are
7163                 non-negative, then teh remainder is non-negative and
7164         smaller than the
7165                 divisor; if not, it is guaranteed only that the absolute
7166         value of the
7167                 remainder is smaller than the absolute value of the
7168         divisor.
7169                                                                      --
7170         [1], page 205
7172             This op is provided for those who need it (such as
7173         speed-sensitive
7174             applications with heavy use of mod, but using it only with
7175         positive
7176             arguments), but a more mathematically useful numeric mod based
7177         on
7178             floor(x/y) and defined with y == 0 is provided by the mod_i op.
7180               [1] Brian W. Kernighan and Dennis M. Ritchie, *The C
7181         Programming
7182                   Language*, Second Edition. Prentice Hall, 1988.
7184           * Added "corrected" mod_i:
7186             NOTE: This "corrected mod" algorithm is based on the C code on
7187         page 70
7188             of [1]. Assuming correct behavior of C's built-in mod operator
7189         (%) with
7190             positive arguments, this algorithm implements a mathematically
7191         convenient
7192             version of mod, defined thus:
7194               x mod y = x - y * floor(x / y)
7196             For more information on this definition of mod, see section 3.4
7197         of [2],
7198             pages 81-85.
7200             References:
7202               [1] Donald E. Knuth, *MMIXware: A RISC Computer for the Third
7203                   Millennium* Springer, 1999.
7205               [2] Ronald L. Graham, Donald E. Knuth and Oren Patashnik,
7206         *Concrete
7207                   Mathematics*, Second Edition. Addison-Wesley, 1994.
7209           * Added mod_n, using the same formula as above, but with FLOATVAL
7210             arguments.
7212           * Added cmod_n, using the C math library's fmod() function:
7214             NOTE: This "uncorrected mod" algorithm uses the built-in C math
7215         library's
7216             fmod() function, which computes
7218                 ... the remainder of dividing x by y. The return value is x
7219         - n * y,
7220                 where n is the quotient of x / y, rounded towards zero to
7221         an
7222                 integer.
7223                                                 -- fmod() manpage on RedHat
7224         Linux 7.0
7226             In addition, fmod() returns
7228                 the remainder, unless y is zero, when the function fails
7229         and errno
7230                 is set.
7232             According to page 251 of [1], the result when y is zero is
7233         implementation-
7234             defined.
7236             This op is provided for those who need it, but a more
7237         mathematically
7238             useful numeric mod based on floor(x/y) instead of truncate(x/y)
7239         and
7240             defined with y == 0 is provided by the mod_n op.
7242               [1] Brian W. Kernighan and Dennis M. Ritchie, *The C
7243         Programming
7244                   Language*, Second Edition. Prentice Hall, 1988.
7246           * Added and modified tests as appropriate for the above.
7248 2001-10-08 08:49  thgibbs
7250         * include/parrot/exceptions.h, include/parrot/parrot.h,
7251         include/parrot/string.h, include/parrot/strutf16.h,
7252         include/parrot/strutf32.h, include/parrot/strutf8.h,
7253         include/parrot/transcode.h, include/parrot/unicode.h, MANIFEST,
7254         Makefile.in, global_setup.c, string.c, strnative.c, transcode.c,
7255         strutf16.c, strutf32.c, strutf8.c: Added code to handle unicode
7256         strings for utf8, utf16, and utf32.
7258         Courtesy of: Tom Hughes <tom@compton.nu>
7260 2001-10-08 08:10  thgibbs
7262         * memory.c: Fixed uninitialized variables.
7264         Courtesy of: Bryan C. Warnock <bwarnock@raba.com>
7266 2001-10-08 01:21  gregor
7268         * packfile.c:   * Casting a return value
7270           * Potential uninitialized variable fix
7272         Courtesy of Bryan C. Warnock <bwarnock@raba.com>
7274 2001-10-08 01:15  gregor
7276         * packfile.c, test_main.c: One of Bryan's languishing patches (with
7277         a few tweaks of my own):
7279           * Line wrapping
7281           * Printf format fixes
7283         Courtesy of: Bryan C. Warnock <bwarnock@raba.com>
7285 2001-10-07 22:39  thgibbs
7287         * build_interp_starter.pl: No longer adds (void*) casts to
7288         interp_guts.c function table as they are not necessary in ANSI C.
7290 2001-10-07 16:27  gregor
7292         * basic_opcodes.ops, interpreter.c, opcode_table,
7293         process_opfunc.pl, test_main.c, include/parrot/interpreter.h,
7294         t/trace.pasm:
7295           * Two new ops, trace_ic and bounds_ic that twiddle bits in
7296             interpreter->flags and set interpreter->resume_addr.
7298           * Two new runops core variants, so now we cover the relevant
7299             flag space over {trace, notrace} x {boundscheck, noboundscheck}
7301           * Runops core selection that converts the flags into an index
7302         into
7303             a core table (runops_cores) to get the core function pointer.
7305           * A new trace_op variant that doesn't do bounds checking (used by
7306             the non-bounds-checking-but-tracing runops core).
7308           * PC is passed into the cores so that they can be used when
7309             resuming (they used to assume starting at the beginning of the
7310             code, which would thwart resumption).
7312           * runops() itself is changed to have a while() loop in it so that
7313             any time we drop out of the core, we'll resume if we have an
7314             interpreter->resume_addr set (after reselecting the core,
7315         though).
7317           * process_opfunc.pl has a new "macro": RESUME(), that sets up
7318             interpreter->resume_addr. This is used by the new ops. The new
7319             ops still return the new PC as the next op (which MUST be an
7320             'end' op to force the core loop to terminate -- *pc being false
7321             is the only termination condition we can count on for all
7322         cores).
7324           * New interpreter flag: PARROT_BOUNDS_FLAG, used to control
7325             bounds checking core selection.
7327           * test_prog now has a '-b' flag in addition to the '-t' flag.
7328         Now,
7329             bounds checking is off by default (I saw a performance boost:
7330             6.3 Mop/s with -b, 7.0 Mop/s without).
7332           * A new sample/test program: t/trace.pasm that twiddles the trace
7333             flag while it is running.
7335 2001-10-07 15:41  gregor
7337         * .cvsignore, Makefile.in, build_interp_starter.pl, interpreter.c,
7338         include/parrot/.cvsignore, include/parrot/interpreter.h:
7339         Now that 0.0.2 is released, I can clear out the backlog of approved
7340         but uncommitted patches. Here's one Dan approved on 2001-09-21
7341         (Simplified DO_OP):
7343           * test_prog and pdump are linked with only the files the need,
7344         not
7345             al the files.
7347           * build_interp_starter.pl writes out op_info.[hc], too. These
7348         files
7349             contain op name, arg count and arg type information. This will
7350         be
7351             useful for multiple things in the future, including better
7352         trace
7353             output and the crystalizing loader.
7355           * The DO_OP macro is now simpler and doesn't require explicit
7356             temporaries.
7358           * interpreter.c is modified to use the new op info in tracing
7359         output.
7361           * The interpreter just points its opcode_funcs and opcode_info
7362             members at the default tables rather than allocating memory on
7363             the fly.
7365 2001-10-07 03:58  thgibbs
7367         * include/parrot/.cvsignore, vtable_h.pl: Minor updates fixing a
7368         comment and adding vtable.h to .cvsignore as it is produced by
7369         vtable_h.in
7371 2001-10-06 20:58  thgibbs
7373         * vtable.tbl: Added * to REGEX type.
7375         Courtesy of Bryan C. Warnock <bwarnock@raba.com>
7377 2001-10-06 13:41  simon
7379         * MANIFEST, Makefile.in, vtable.tbl, vtable_h.pl, Parrot/Vtable.pm,
7380         include/parrot/parrot.h, lib/Parrot/Vtable.pm:
7381         Framework for vtable functions.
7383 2001-10-06 06:52  thgibbs
7385         * make_op_header.pl: Removed confusing and unused typedef.
7387 2001-10-06 06:31  thgibbs
7389         * Parrot/Opcode.pm, lib/Parrot/Opcode.pm: Removed variables that
7390         are no longer used.
7392 2001-10-06 06:26  thgibbs
7394         * disassemble.pl: Changed intval to op in disassembler.
7396 2001-10-06 06:21  thgibbs
7398         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm: Fixed typo with
7399         Assembler, local labels, and integer constants.
7401 2001-10-06 03:11  ask
7403         * Makefile.in: make `make test` actually run the tests on
7404         darwin/macosx
7406 2001-10-06 02:04  thgibbs
7408         * Parrot/Assembler.pm, Parrot/Opcode.pm, Parrot/PackFile.pm,
7409         Parrot/String.pm, Parrot/PackFile/ConstTable.pm,
7410         Parrot/PackFile/Constant.pm, include/parrot/packfile.h,
7411         include/parrot/register.h, lib/Parrot/Assembler.pm,
7412         lib/Parrot/Opcode.pm, lib/Parrot/PackFile.pm, lib/Parrot/String.pm,
7413         lib/Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/Constant.pm,
7414         t/op/integer.t: No, it didn't mess anything up.  I just forgot to
7415         type make. :)
7417 2001-10-06 02:02  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: oops...this messed something up.  I must have
7426         missed something in the patch...I have reverted.
7428 2001-10-06 01:57  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, Types_pm.in, basic_opcodes.ops, config_h.in,
7437         memory.c, packfile.c, process_opfunc.pl, strnative.c, test_main.c:
7438         This patch ensures that all bytecode is of type opcode_t except for
7439         the constant table constants.  That means that almost all of the
7440         INTVALs in the code were replaced with opcode_t and the i pack type
7441         was replaced with the op pack type in calls to pack_arg and such.
7442         Also, since it has been declared that ALL integer constants are to
7443         be 32 bits, some test cases were changed to ensure that an integer
7444         constant was no bigger than 2 ** 31.
7446         process_opfunc.pl was also cleaned up to no longer look at either
7447         opcode_table or interp_guts.h but gather all of its information
7448         from Opcode.pm.
7450         The Assembler.pm module was changed to do late binding of arguments
7451         so that 0 could be treated like 0.0 without having to be so
7452         declared.  Also, only strings now use the [sc:N] intermediate form
7453         as it was unnecessary for integer and float types.
7455 2001-10-05 21:59  gregor
7457         * MANIFEST, languages/jako/Makefile:
7458         Fixed things due to the movement of little_languages/* to
7459         languages/jako.
7461 2001-10-05 18:31  gregor
7463         * MANIFEST:
7464         Updated MANIFEST to reflect recent additions for Jako.
7466 2001-10-05 17:54  gregor
7468         * languages/jako/: Makefile, bench.jako, euclid.jako, fact.jako,
7469         fib.jako, hello.jako, jakoc, leibniz.jako, mandelbrot.jako,
7470         mops.jako, primes.jako, sub.jako:
7471           * Compiler:
7473               * User-defined subroutines.
7474               * Generates assembly code with the Jako code in comments.
7475               * "end;" no longer required at the end of programs.
7476               * Better handling of const-reg and reg-const.
7477               * Optimizes const-const operations to compile-time
7478         evaluations.
7479               * Constants in addition to variables.
7480               * Arithmetic fixes.
7481               * Allow leading minus signs in integer and number constants
7482         (ahem).
7483               * goto's.
7485           * New sample programs:
7487               * leibniz.jako (based on Greg McCarroll's leibniz.pasm
7488         example)
7489               * mandelbrot.jako (based on Leon Brocard's translation of
7490         Glenn Rhodes' C code)
7491               * mops.jako (based on t/test.pasm)
7492               * primes.jako (based on Leon Brocard's primes.pasm example)
7493               * sub.jako (demonstrates a simple user-defined subroutine)
7495 2001-10-05 12:54  gregor
7497         * Parrot/Opcode.pm, lib/Parrot/Opcode.pm:
7498           * Removed mysterious extra copy of code after POD.
7500 2001-10-05 12:46  gregor
7502         * basic_opcodes.ops, t/op/string.t:
7503           * Enabled the previously SKIPped test of printing string regs
7504         after
7505             clear_s
7507           * Made print_s do nothing if the STRING pointer in the register
7508         file
7509             is NULL.
7511 2001-10-04 21:19  dan
7513         * Configure.pl: VMS tweaks
7515 2001-10-04 21:17  dan
7517         * hints/vms.pl: Hints file for VMS
7519 2001-10-04 00:58  bdwheele
7521         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm: fixed but in
7522         Assembler which stopped equates from working.
7524 2001-10-03 21:50  gregor
7526         * Makefile.in, docs/.cvsignore, docs/Makefile, docs/parrotbyte.pod:
7528           * More documentation updates for the packfile stuff.
7530 2001-10-03 21:37  gregor
7532         * docs/parrotbyte.pod:
7533           * Pointed the reader at Parrot::PackFile.
7535 2001-10-03 21:34  gregor
7537         * Parrot/PackFile.pm, lib/Parrot/PackFile.pm:
7538           * Updated documentation to match current implementation.
7540 2001-10-03 18:30  gregor
7542         * .cvsignore, disassemble.pl, Parrot/Assembler.pm,
7543         lib/Parrot/Assembler.pm, t/call.pasm, t/euclid.pasm,
7544         t/local_label.pasm, t/test.pasm, t/test2.pasm, t/test3.pasm,
7545         t/op/basic.t:
7546           * Added new syntax to the assembler to allow square-bracket
7547             arithmetic expressions involving (global) labels, the current
7548             instructions base address ('@'), numeric constants (not
7549         equates)
7550             and basic arithmetic operators (+, -, *, / -- although + and -
7551             are likely to be the only ones used in practice).
7553           * Fixed a bug in Parrot/Assemble.pl that caused macro expansion
7554         to
7555             fail (argument passing wasn't working).
7557           * Enabled t/op/basic.t's last test, which is actually a copy of
7558         the
7559             code from t/call.pasm. Now all tests there are enabled and
7560         working.
7562           * Added new example/test program t/call.pasm to demonstrate
7563         working
7564             macros and poor-man's subroutine calls
7566           * Added header comments to t/*.pasm
7568 2001-10-03 18:00  simon
7570         * ChangeLog:
7571         Needed, since it's in the MANIFEST.
7573 2001-10-03 17:56  simon
7575         * t/op/: string.t, time.t:
7576         Small fixes to help Win32 on its way.
7578 2001-10-03 17:41  simon
7580         * MANIFEST, README:
7581         Oops. Tiny bugs.
7583 2001-10-03 17:39  simon
7585         * MANIFEST, NEWS, README:
7586         README, NEWS and MANIFEST? Could it be time for Parrot 0.0.2? I
7587         think so!
7589 2001-10-03 17:21  simon
7591         * basic_opcodes.ops, interpreter.c, packfile.c:
7592         Evil printf bandaid (which allows Sparc64 to pass tests)
7594         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
7596 2001-10-03 16:58  simon
7598         * string.c, t/op/string.t:
7599         chop fixes for n < 0 and tests
7601         Courtesy of: Alex Gough <alex@rcon.org>
7603 2001-10-03 15:51  thgibbs
7605         * interpreter.c: Changed an occurrence of INTVAL to opcode_t
7607         Courtesy of: Bryan C. Warnock <bwarnock@raba.com>
7609 2001-10-02 17:48  dan
7611         * include/parrot/stacks.h: Fix typo in function name
7613 2001-10-02 17:35  dan
7615         * include/parrot/stacks.h: changed to support new stack stuff
7616         coming after 0.02
7618 2001-10-02 15:01  simon
7620         * Configure.pl, Types_pm.in, basic_opcodes.ops, config_h.in,
7621         interpreter.c, make_op_header.pl, memory.c, packfile.c,
7622         process_opfunc.pl, register.c, string.c, strnative.c,
7623         Parrot/Opcode.pm, Parrot/PackFile.pm, Parrot/String.pm,
7624         lib/Parrot/Opcode.pm, lib/Parrot/PackFile.pm, lib/Parrot/String.pm,
7625         Parrot/PackFile/ConstTable.pm, Parrot/PackFile/Constant.pm,
7626         docs/overview.pod, docs/strings.pod, include/parrot/interpreter.h,
7627         include/parrot/memory.h, include/parrot/packfile.h,
7628         include/parrot/parrot.h, include/parrot/register.h,
7629         include/parrot/stacks.h, include/parrot/string.h,
7630         lib/Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/Constant.pm:
7632         The Great Renaming.
7634 2001-10-02 12:49  gregor
7636         * process_opfunc.pl:
7637           * Fixed a tyop:  s/string/integer/ for INT_CONST expansion
7639 2001-10-02 12:40  simon
7641         * basic_opcodes.ops, process_opfunc.pl, register.c,
7642         include/parrot/register.h:
7643         Move preprocessing of register accessors to process_opfunc.pl
7645         Courtesy of: Jason Gloudon <perl@gloudon.com>
7647 2001-10-02 01:20  ask
7649         * README: add a few lines about lists.
7651 2001-10-01 23:00  brentdax
7653         * Configure.pl, Makefile.in, hints/mswin32.pl: Make 'make clean'
7654         work on Win32 (courtesy of Mattia Barbon <mbarbon@dsi.unive.it>)
7656 2001-10-01 22:50  brentdax
7658         * Configure.pl, test_c.in: More changes for 64-bit compatibility
7660 2001-10-01 21:51  simon
7662         * process_opfunc.pl:
7663         Michael Fischer's patch broke conditionals.
7665 2001-10-01 15:38  simon
7667         * process_opfunc.pl:
7668         Small hack to keep process_opfunc.pl from generating extra return()
7669         statements.
7671         Courtesy of: Michael Fischer <michael@visv.net>
7673 2001-10-01 15:32  simon
7675         * Parrot/Opcode.pm, lib/Parrot/Opcode.pm:
7676         Documentation fix.
7678         Courtesy of: Josh Wilmes <josh@hitchhiker.org>
7680 2001-10-01 01:49  simon
7682         * packfile.c:
7683         Simon is an idiot. Don't trust him with your code.
7685         Courtesy of: Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
7687 2001-10-01 00:59  simon
7689         * Parrot/String.pm, lib/Parrot/String.pm:
7690         Was in manifest, but not in CVS.
7692 2001-09-30 21:25  simon
7694         * MANIFEST, Types_pm.in, assemble.pl, basic_opcodes.ops,
7695         disassemble.pl, packfile.c, pdump.c, process_opfunc.pl,
7696         Parrot/Assembler.pm, Parrot/PackFile.pm,
7697         Parrot/PackFile/ConstTable.pm, Parrot/PackFile/Constant.pm,
7698         Parrot/PackFile/FixupTable.pm, lib/Parrot/Assembler.pm,
7699         lib/Parrot/PackFile.pm, lib/Parrot/PackFile/ConstTable.pm,
7700         lib/Parrot/PackFile/Constant.pm, lib/Parrot/PackFile/FixupTable.pm,
7701         include/parrot/packfile.h, include/parrot/string.h:
7702         Move NVs to the constant table.    * Changes to Types_pm.in to make
7703         life easier for some of the      packing/etc. I'm doing elsewhere.
7704         Also, we now pack 'n' as      'i'.
7706           * Moved the guts of assemble.pl to Parrot/Assembler.pm so that
7707             eventually we can use all these tools together inside scripts
7708             rather than call out to the shell to run the programs.
7710           * As I was tracking down problems, I converted the internal
7711             documentation of the assembler to POD from comments.
7713           * Changed the numeric regexp in the assembler to detect leading
7714             signs and trailing exponents.
7716           * Updated basic_opcodes.ops to fetch numeric constants from the
7717             constant table.
7719           * Enhanced the disassembler in a number of ways to make my life
7720             easier while tracking down bugs (try it out). It now puts in
7721             labels for ops that are the destinations of flow control ops.
7723           * packfile.c now has a TRACE_PACKFILE switch that can be set
7724             to get it to print info as it processes. I needed this while
7725             debugging, but I can remove it or change it before committing
7726             if its a problem.
7728           * Updated pdump.c because it was missing a call to init_world().
7730           * Updated process_opfunc.pl to deal with numeric constants
7731             being stored in the constant table instead of inline.
7733           * Added multiple type support to Parrot/PackFile/Constant.pm
7735           * Added Parrot/String.pm, to be used for constants.
7737           * Added packfile.[hc] functions for allocating new constants
7738             of various types.
7740           * Made string_copy visible to the world in parrot/string.h.
7742         Wow.
7744         Courtesy of: Gregor N. Purdy <gregor@focusresearch.com>
7746 2001-09-29 15:56  gregor
7748         * languages/jako/Makefile:
7749         Removed assumption that '.' is on the path.
7751 2001-09-29 15:55  gregor
7753         * languages/jako/Makefile:
7754         Removed references to leibnitz test program.
7756 2001-09-29 15:21  thgibbs
7758         * t/op/trans.t, basic_opcodes.ops: Added NV casts to transcendental
7759         math ops args to work on Solaris.
7761 2001-09-27 15:15  thgibbs
7763         * assemble.pl: Added case insensitive matches to hex and binary
7764         characters
7766         Courtesy of: Johnathan Scott Duff <duff@cbi.tamucc.edu>
7768 2001-09-27 04:46  thgibbs
7770         * assemble.pl: This patch makes integer constants of the form
7771         0b[01]+ work with perl 5.005.  The oct function in versions of perl
7772         before 5.6 did not handle the 0b numeric prefix; therefore, it was
7773         returning 0.  To fix this, I added a from_binary function that
7774         would take a binary string and return its decimal representation.
7775         Now, instead of blindly calilng oct, it makes a distinction between
7776         0/0x numbers and 0b numbers.
7778 2001-09-26 19:30  thgibbs
7780         * assemble.pl: Error now returns a non-zero status
7782         Courtesy of: Andrew Kuchling <akuchlin@mems-exchange.org>
7784 2001-09-26 19:13  gregor
7786         * MANIFEST, Makefile.in, basic_opcodes.ops, bytecode.c,
7787         interpreter.c, packfile.c, pdump.c, test_main.c,
7788         include/parrot/bytecode.h, include/parrot/interpreter.h,
7789         include/parrot/packfile.h, include/parrot/parrot.h, t/op/integer.t,
7790         t/op/stacks.t:
7791           * bytecode.[hc] removed. packfile.[hc] are the interface to the
7792             packfile/bytecode file from C. May be renamed in the future.
7794           * packfile.[hc] changed to use 'struct PackFile *', etc. instead
7795             of 'PackFile *', just like the interpreter, etc.
7797           * Constants are accessed via the interpreter's 'code' member
7798             (struct PackFile * code). Macros PCONST(i) and PNCONST are
7799             provided to access constants by index and the number of
7800             constants, respectively (assumes a variable 'interpreter' of
7801             the appropriate type is in scope).
7803           * Byte Code is accessed via the interpreter's 'code' member.
7805           * Changed PackFile_Constant to point to a STRING instead of
7806         having
7807             members for the string_make() arguments. Also has a 'type' IV
7808             in preparation for allowing multiple types of constants in
7809             const_table.
7811           * Removed hardcoded example program from test_main.c. We have
7812             plenty of test programs elsewhere.
7814           * test_prog now uses a PackFile to deal with the program before
7815             sending it on to the interpreter.
7817           * Added missing 'end' ops to some tests in t/op/integer.t and
7818             t/op/stacks.t.
7820 2001-09-26 18:38  thgibbs
7822         * assemble.pl: Separated code into functions and added comments.
7824 2001-09-26 18:29  simon
7826         * config_h.in:
7827         Fix 64-bit chunk-base issue.
7829 2001-09-26 06:55  thgibbs
7831         * t/op/bitwise.t: Added end to bitwise tests.
7833 2001-09-26 00:54  dan
7835         * docs/parrot_assembly.pod: Added in the base for threading, I/O,
7836         and interpreter creation. Skeleton only, but it's something to peer
7837         at.
7839 2001-09-25 21:44  thgibbs
7841         * t/op/trans.t: Removed loops in transcendtal op test.
7843 2001-09-25 10:12  simon
7845         * MANIFEST, t/op/basic.t, t/op/bitwise.t, t/op/integer.t,
7846         t/op/string.t, t/op/time.t:
7847         More tests
7849         Courtesy of: Alex Gough <alex@rcon.org>
7851 2001-09-24 19:08  gregor
7853         * t/op/number.t:
7854           * Enabled the clear_n test.
7856 2001-09-24 18:56  gregor
7858         * Parrot/.cvsignore:
7859           * Ignore the generated Types.pm file.
7861 2001-09-24 18:52  gregor
7863         * languages/jako/Makefile, t/op/number.t:
7864           * No need to skip the inc and dec numeric tests anymore. I fixed
7865         the
7866             assembler earlier today.
7868 2001-09-24 18:21  simon
7870         * MANIFEST, t/op/stacks.t:
7871         Oops.
7873 2001-09-24 18:19  simon
7875         * build_interp_starter.pl, interpreter.c, string.c, Parrot/Test.pm,
7876         include/parrot/exceptions.h, include/parrot/interpreter.h,
7877         lib/Parrot/Test.pm, t/op/string.t:
7878         1) captured error output, so can test errors, this might be bad,
7879         not sure.  2) basic tests for register stack frames, including some
7880         errors 3) I think we can stop skipping one of the string tests 4) I
7881         added some more substr tests, but substr was broken, so 5) changed
7882         substr to work with out of range values, or 6) throw an error if
7883         they're far too silly
7885         Courtesy of: Alex Gough <alex@rcon.org>
7887 2001-09-24 17:27  gregor
7889         * basic_opcodes.ops, opcode_table, t/op/number.t:
7890           * Op set_n was missing. Added it and a test for it. We now have
7891         the
7892             same int and num ops, except mod is int-only.
7894 2001-09-24 17:01  gregor
7896         * assemble.pl:
7897           * Fixed a typo: s/Line/line/
7899 2001-09-24 16:02  gregor
7901         * basic_opcodes.ops:
7902           * Fixed dec_n_nc opcode, which had += where it should have had
7903         -=.
7905 2001-09-24 15:34  gregor
7907         * assemble.pl:
7908           * Fixed handling of constants starting with '0' that should not
7909         be
7910             sent through oct(). For example 'set N2 0.1' was being
7911         interpreted
7912             as 'set N2 0' (naughty).
7914             As reported by Leon Brocard <acme@astray.com> in the comments
7915         of
7916             his mandelbrot.pasm example.
7918 2001-09-24 02:21  bdwheele
7920         * assemble.pl: fixed dumb code when --include was not specified.
7922 2001-09-24 02:17  simon
7924         * assemble.pl:
7925         Shit-sweeping.
7927 2001-09-24 01:56  bdwheele
7929         * assemble.pl: * Added --include=dir option to assembler to provide
7930         a path to look for included files.  * Error message of a macro is
7931         defined inside of a macro
7933 2001-09-23 21:29  bdwheele
7935         * assemble.pl: Added __FILE__ equate, fixed __LINE__ equate.
7937 2001-09-23 15:50  simon
7939         * Configure.pl:
7940         Fixed typo. Parrot might work again on non-8.3 filesystems. :)
7942 2001-09-23 02:03  ask
7944         * Configure.pl, test_c.in: fix missing newline at the end of test.c
7945         Courtesy of: acme@astray.com (Leon Brocard)
7947         rename 'test' executable used in Configure process to test_siz.
7949 2001-09-23 01:03  simon
7951         * process_opfunc.pl:
7952         iPaq fix. No, really.
7954 2001-09-23 00:47  simon
7956         * MANIFEST:
7957         Missed several, in fact.
7959 2001-09-23 00:46  simon
7961         * MANIFEST:
7962         Missed one.
7964 2001-09-22 21:13  simon
7966         * assemble.pl:
7967         Assembler register numbering rigour.
7969         Courtesy of: Leon Brocard <acme@astray.com>
7971 2001-09-22 18:20  simon
7973         * Makefile.in, lib/Test/More.pm, lib/Test/Simple.pm,
7974         lib/Test/Utils.pm:
7975         I'm sick of having to install Test::More everywhere. Temporary
7976         measure until we remove this silly dependency.
7978         Also a typo in Makefile.in which suggests some things were only
7979         happening correctly by sheer chance. :)
7981 2001-09-22 18:06  simon
7983         * README:
7984         test.pasm is dead, long like make test.
7986 2001-09-22 17:47  simon
7988         * t/op/number.t:
7989         De-fang overzealous floating point test.
7991 2001-09-22 17:39  simon
7993         * process_opfunc.pl:
7994         Remove hard-coded NV size assumption. Tru64 is nearly there!
7996 2001-09-22 17:18  simon
7998         * assemble.pl, disassemble.pl:
7999         More portability fixups.
8001 2001-09-22 16:44  simon
8003         * assemble.pl, Parrot/PackFile/Constant.pm,
8004         lib/Parrot/PackFile/Constant.pm:
8005         And I *think* this fixes Tru64.
8007 2001-09-22 16:37  simon
8009         * Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/ConstTable.pm:
8011         Oops.
8013 2001-09-22 16:36  simon
8015         * Parrot/PackFile.pm, Parrot/PackFile/ConstTable.pm,
8016         Parrot/PackFile/Constant.pm, lib/Parrot/PackFile.pm,
8017         lib/Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/Constant.pm:
8019         More removal of hard-coded pack formats.
8021 2001-09-22 15:21  simon
8023         * assemble.pl:
8025         Grrr. Why isn't this working?
8027 2001-09-22 15:18  simon
8029         * Parrot/PackFile.pm, Parrot/PackFile/ConstTable.pm,
8030         lib/Parrot/PackFile.pm, lib/Parrot/PackFile/ConstTable.pm:
8032         Make assemble use the PackFile modules; also fixed some bugs in
8033         them.
8035 2001-09-22 14:38  simon
8037         * Configure.pl, MANIFEST, Types_pm.in, assemble.pl, disassemble.pl:
8039         Abstract the argument and opcode packing types and functions out
8040         into a separate module. This *should* help us maintain consistency
8041         when we change the various types.
8043 2001-09-22 00:46  brentdax
8045         * Configure.pl: Delete test.o (or its equivalent) after Configure's
8046         test program finishes.
8048 2001-09-21 21:24  brentdax
8050         * Parrot/Test.pm, lib/Parrot/Test.pm: Fix error with \ as path
8051         separator (courtesy of Mattia Barbon <mbarbon@dsi.unive.it>)
8053 2001-09-21 21:09  gregor
8055         * Parrot/PackFile/ConstTable.pm, Parrot/PackFile/Constant.pm,
8056         lib/Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/Constant.pm:
8058           * Fixed pad calculation (similar to recent bug fix on C library)
8060 2001-09-21 20:23  simon
8062         * disassemble.pl:
8063         Pack types and sizes have gone askew.
8065 2001-09-21 20:18  brentdax
8067         * Configure.pl: Fix typo in setting stuff from the C test program
8069 2001-09-21 10:25  simon
8071         * basic_opcodes.ops, process_opfunc.pl:
8072         Document patches.
8074         Courtesy of: Leon Brocard <acme@astray.com>
8076 2001-09-21 06:06  ask
8078         * Config_pm.in, assemble.pl: fix 5.005_03.
8080 2001-09-21 06:03  ask
8082         * Configure.pl: make the ivsize detection work for us normal people
8083         without . in our PATH.  :-)
8085 2001-09-21 05:56  brentdax
8087         * test_main.c: Change _read to read for portability to Tru64
8088         (Damien Neil <neild@misago.org> and likely many others)
8090 2001-09-21 05:46  ask
8092         * Makefile.in: "update" target to update from cvs.
8094 2001-09-21 05:44  brentdax
8096         * Configure.pl, test_c.in: Fix issues with ivsize and nvsize
8098 2001-09-21 02:43  brentdax
8100         * Configure.pl: Fix a typo that forced the -g flag on
8102 2001-09-20 22:41  dan
8104         * packfile.c: Had some no-value returns. Naughty
8106 2001-09-20 22:40  dan
8108         * t/test.pasm: Added labels to output
8110 2001-09-20 15:39  simon
8112         * Parrot/Opcode.pm, Parrot/Test.pm, lib/Parrot/Opcode.pm,
8113         lib/Parrot/Test.pm:
8114         This patch does two only somewhat related things.
8116         Parrot/Opcode.pm:  Change the hard-wired assumption that sizeof(nv)
8117         = 2*sizeof(iv) to a PConfig-type computed value.
8119         Parrot/Test.pm:  Change it to run with the perl that was used to
8120         generate this version of Parrot.  This is useful if, for example,
8121         you want to use bleadperl to build and test parrot (e.g. to try out
8122         various 64-bit options) but you still have a 5.6.x (or 5.005_xx)
8123         installed as the default 'perl' on your system.  Since perl-5.7.x
8124         is installed 'version-only', a plain 'perl' is quite likely to pick
8125         up the older perl in such cases. Such an older perl might well not
8126         understand pack('q') used in the assembler.
8128         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
8130 2001-09-20 15:14  gregor
8132         * packfile.c:
8133           * Fixed a typo in pad calculation that throwing off unpack and
8134         pack.
8136 2001-09-20 15:03  thgibbs
8138         * t/op/integer.t: Removed overflow tests from integer.t.  set_i_ic
8139         tests now cover all registers.
8141         Courtesy of: Damien Neil neild@misago.org
8143 2001-09-20 14:48  thgibbs
8145         * process_opfunc.pl: Changed process_opfunc.pl to work on 64 bit
8146         machines.
8148 2001-09-20 14:35  simon
8150         * Configure.pl, assemble.pl:
8151         Pack IVs correctly.
8153         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
8155 2001-09-20 14:06  gregor
8157         * languages/jako/jakoc:
8158           * Fixed a tyop in the string interpolation regex.
8160         Courtesy of Michael L Maraist <maraist@UDel.Edu>
8162 2001-09-20 13:56  gregor
8164         * languages/jako/jakoc:
8165           * Updated jakoc to work with the single-destination comp ops.
8167 2001-09-20 05:08  bdwheele
8169         * assemble.pl: macro expansion.  Here's the test macro I was using:
8171         # this uses I32,I31 as temporaries.  # macro must be preceeded by a
8172         label.  testi       macro   num,got,want    print   "Test #"
8173         print   num     print   "..."   set     I32,want        set
8174         I31,got         eq      I32,I31,$ok     print   "NG\n"  branch
8175         $end $ok:       print   "OK\n" $end:    endm
8177         It is invoked as:
8179         Test1:  testi   1,I3,I2
8181 2001-09-20 03:52  dan
8183         * stacks.c, include/parrot/stacks.h: Preliminary files for the
8184         generic stack support
8186 2001-09-20 02:49  bdwheele
8188         * assemble.pl: Added include processing to assemble.pl  the syntax
8189         is: include 'file.to.include'
8191 2001-09-19 23:57  thgibbs
8193         * t/op/integer.t, t/op/number.t, assemble.pl, opcode_table: Fixed
8194         opcode_table listing of if_i_ic and if_n_ic.  Dan had changed the
8195         function to only use 2 args, but the opcode_table still had three
8196         listed.  Fixed integer.t and number.t to use the new comparison
8197         operators.  Improved assemble.pl ability to grok operators by
8198         constructing a function set and comparing operator types.
8200 2001-09-19 22:42  dan
8202         * assemble.pl: Binmodes the output filehandles now. (No more
8203         bytecode munching...)
8205 2001-09-19 22:32  dan
8207         * Configure.pl, basic_opcodes.ops, opcode_table, process_opfunc.pl,
8208         t/euclid.pasm, t/test.pasm, t/test2.pasm: Changed opcodes so
8209         conditional branches take a single argument, and fall through
8210         otherwise.
8212 2001-09-19 21:19  thgibbs
8214         * memory.c: Added explanation of mem_allocate_aligned give by Dan
8215         Sugalski
8217         Courtesy of: Josh Wilmes <josh@hitchhiker.org>
8219 2001-09-19 21:04  thgibbs
8221         * include/parrot/interpreter.h, Configure.pl,
8222         build_interp_starter.pl, bytecode.c, config_h.in, interpreter.c,
8223         process_opfunc.pl: Changed opcode_t from a union to a configurable
8224         type.
8226 2001-09-19 20:54  thgibbs
8228         * assemble.pl: Missed a couple of changes for 64 bit portability.
8230 2001-09-19 20:37  gregor
8232         * packfile.c, include/parrot/packfile.h:
8233           * Added "methods" for setting and getting all the various
8234         attributes,
8235             probably sufficient for an assembler to use the library.
8237 2001-09-19 20:04  thgibbs
8239         * assemble.pl: Modifications to run on 64 bit platforms.  To run on
8240         a 64 bit platform manually change the  setting for 'i' from 'l' to
8241         'q'.  This should be automatically done by a Configure setting in
8242         the near future.
8244 2001-09-19 19:10  thgibbs
8246         * config_h.in: changed c++ comment to c comment.
8248         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
8250 2001-09-19 17:48  gregor
8252         * .cvsignore, MANIFEST, Makefile.in, packfile.c, pdump.c,
8253         include/parrot/packfile.h:
8254           * C code for dealing with PackFiles as if they were objects.
8255         Mostly
8256             read-only interface for now, but it would not be hard to make
8257         it
8258             read-write. [packfile.c, include/parrot/packfile.h]
8260           * PackFile Dumping program that falls short of disassembling, but
8261             tests the above code and provides a hex listing of the byte
8262         code
8263             contents of the PackFile. [pdump.c]
8265           * New Makefile target 'pdump' for the above program, and related
8266             Makefile.in changes.
8268           * Updated MANIFEST to reflect the added files
8270           * Update .cvsignore to ignore pdump.
8272 2001-09-19 14:55  thgibbs
8274         * MANIFEST: Added number.t and trans.t to MANIFEST
8276 2001-09-19 05:40  thgibbs
8278         * process_opfunc.pl: Now taking & of opcode_t instead of i member
8279         of union opcode_t.  I hope this will be more portable for set_n_nc.
8281 2001-09-19 05:39  thgibbs
8283         * t/op/integer.t: Added end to test 1.
8285 2001-09-19 00:09  thgibbs
8287         * t/op/number.t: Added end to each test
8289 2001-09-19 00:00  simon
8291         * t/op/number.t:
8292         Number tests! Wooo!
8294         Courtesy of: Damien Neil <neild@misago.org>
8296 2001-09-18 23:52  thgibbs
8298         * interpreter.c: Added casts to appropriate types to make -Wall not
8299         complain on certain printf formats
8301 2001-09-18 23:31  thgibbs
8303         * t/op/integer.t: Added end to each test.
8305 2001-09-18 22:54  thgibbs
8307         * t/op/trans.t: Added trans.t for transcendental math function
8308         tests.
8310 2001-09-18 22:28  simon
8312         * MANIFEST:
8313         MANIFEST updates. (And notice how I carefully snuck in the
8314         t/op/integer.t there...)
8316         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
8318 2001-09-18 22:26  simon
8320         * t/: integer.t, op/integer.t:
8321         Except it doesn't go there. Duh.
8323 2001-09-18 22:25  simon
8325         * t/integer.t:
8326         Tests for integer ops.
8328         Courtesy of: Damien Neil <neild@misago.org>
8330 2001-09-18 22:03  thgibbs
8332         * include/parrot/bytecode.h, include/parrot/interpreter.h,
8333         build_interp_starter.pl, bytecode.c, config_h.in, interpreter.c,
8334         make_op_header.pl, process_opfunc.pl, test_main.c: Changed IV to
8335         opcode_t union for operators.  This required a few perl script
8336         changes to output the correct type.  There were also some changes
8337         to allow -pedantic in gcc
8339 2001-09-18 21:07  gregor
8341         * disassemble.pl, Parrot/PackFile.pm,
8342         Parrot/PackFile/ConstTable.pm, Parrot/PackFile/Constant.pm,
8343         lib/Parrot/PackFile.pm, lib/Parrot/PackFile/ConstTable.pm,
8344         lib/Parrot/PackFile/Constant.pm:
8345         Converted the disassembler to use the Parrot::PackFile Perl classes
8346         to do its job.
8348 2001-09-18 19:18  brentdax
8350         * Makefile.in: Fix missing functions for real this time.  (I
8351         swear!)
8353 2001-09-18 18:49  brentdax
8355         * Configure.pl: Remove unnecessary -I.. (courtesy of Andy Dougherty
8356         <doughera@lafayette.edu>}
8358 2001-09-18 18:47  brentdax
8360         * Makefile.in: Fix bugs with missing math, etc. functions
8362 2001-09-18 14:42  thgibbs
8364         * strnative.c: Sorry Simon...forgot bustart was a void* not a
8365         char*.
8367 2001-09-18 13:59  thgibbs
8369         * strnative.c: Removed unnecessary IV cast in concat.
8371 2001-09-18 13:58  thgibbs
8373         * t/op/string.t: Removed unnecessary IV cast in concat.  Added end
8374         to concat test in string.t
8376 2001-09-18 12:07  gregor
8378         * languages/jako/jakoc:
8379           * var num ... no longer requires assignment
8380           * automatic casting between int and num
8381           * Fixed an error message
8383         Courtesy of: Simon Cozens <simon@cvs.perl.org>
8385 2001-09-18 11:57  simon
8387         * TODO:
8388         Gonna have to start thinking of more things to do, soon.
8390 2001-09-18 10:42  simon
8392         * opcode_table:
8393         Introduce a little more tidiness into the opcode table.
8395 2001-09-18 03:06  gregor
8397         * basic_opcodes.ops, opcode_table, t/euclid.pasm:
8398         Resurrected register-const ops per Dan's request.
8400 2001-09-18 02:20  gregor
8402         * .cvsignore, Configure.pl, MANIFEST, Makefile.in,
8403         build_interp_starter.pl, bytecode.h, events.h, exceptions.h,
8404         global_setup.h, interpreter.h, io.h, memory.h, parrot.h,
8405         process_opfunc.pl, register.h, stacks.h, string.h, strnative.h:
8406         Committed some files that were missed in the last *.h moving
8407         commit.
8409 2001-09-18 02:17  gregor
8411         * include/parrot/.cvsignore: Fixed a typo in .cvsignore.
8413 2001-09-18 02:16  gregor
8415         * include/parrot/: .cvsignore, bytecode.h, events.h, exceptions.h,
8416         global_setup.h, interpreter.h, io.h, memory.h, parrot.h,
8417         register.h, stacks.h, string.h, strnative.h: Added .cvsignore file
8418         missed in last commit for the move of *.h to include/parrot.
8420 2001-09-18 01:32  simon
8422         * t/Makefile:
8423         Trivial "clean" target to t/Makefile.
8425 2001-09-18 01:32  simon
8427         * assemble.pl, build_interp_starter.pl, disassemble.pl,
8428         Parrot/Opcode.pm, lib/Parrot/Opcode.pm:
8429         Change icky Digest::MD5 for nice simple unpack()
8431         Courtesy of: Jonathan Scott Duff <duff@cbi.tamucc.edu>
8433 2001-09-18 00:35  simon
8435         * basic_opcodes.ops, opcode_table, docs/parrot_assembly.pod,
8436         t/op/string.t:
8437         New concat op. Hey, if I'm going to talk about it in an article,
8438         better implement it...
8440 2001-09-17 22:54  gregor
8442         * MANIFEST, Parrot/PackFile.pm, Parrot/PackFile/ConstTable.pm,
8443         Parrot/PackFile/Constant.pm, Parrot/PackFile/FixupTable.pm,
8444         lib/Parrot/PackFile.pm, lib/Parrot/PackFile/ConstTable.pm,
8445         lib/Parrot/PackFile/Constant.pm, lib/Parrot/PackFile/FixupTable.pm:
8447         Functions for reading, writing and manipulating Parrot Pack Files.
8448         NOTE: This is a proposed term based on the fact that the file
8449         contains more than just byte code, and another language (Java)
8450         calls its binary files by a broader notion of what's in them (Class
8451         Files). Since Perl has packages, and since we use pack() to write
8452         them, we'll call them PackFiles (at least for now).
8454         That does, however, beg the question of file extension. Should we
8455         name the files "foo.pack" instead of "foo.pbc"?
8457 2001-09-17 20:23  thgibbs
8459         * interpreter.c, test_main.c: Uncuddled else statements for coding
8460         standard.
8462 2001-09-17 19:57  gregor
8464         * Parrot/Opcode.pm, lib/Parrot/Opcode.pm:
8465         Added a $revision variable, parsing of the CVS Id line in
8466         opcode_table and a &revision() subroutine.
8468 2001-09-17 19:53  gregor
8470         * opcode_table:
8471         Added a CVS Id tag to it.
8473 2001-09-17 18:58  thgibbs
8475         * interpreter.c: Cleared interpreter flags on creation.
8477 2001-09-17 18:38  gregor
8479         * build_interp_starter.pl, bytecode.c, bytecode.h, interpreter.c,
8480         interpreter.h, test_main.c:
8481           * Provides macros in interp_guts.h for setting up arrays with
8482             op names and op arg counts (done via build_interp_starter.pl).
8484             These are used in the op tracing
8486           * The functions in bytecode.[hc] pass around a pointer to the
8487         length
8488             of the bytecode so that later when we get to runops, we know
8489             how much bytecode we've got and we can detect out-of-bounds
8490             jumping. The documentation is updated, too.
8492           * runops in interpreter.c now looks at interpreter->flags to
8493             decide if the core of runops should be runops_trace_core or
8494             runops_notrace_core. These new functions contain just the
8495             while-loop portion of runops. A new function runops_generic
8496             does any other setup (such as checking the bytecode
8497             fingerprint) or wrapup (such as complaining if we ended up
8498             out-of-bounds). NOTE: I didn't know what we should do for
8499             functions in here that are not part of the api, so I gave
8500             them docs with 'TODO' marks mentioning they really aren't
8501             part of the api. Guidance appreciated.
8503           * test_main.c now checks for '-t' arg and sets the tracing flag
8504             on its interpreter instance as appropriate.
8506 2001-09-17 17:47  bdwheele
8508         * assemble.pl: added some default equates, and if they're sub
8509         references, they are computed each time it is referenced.
8511 2001-09-17 16:15  dan
8513         * interpreter.h:
8515         Added flags to the interpreter structure and defined a few.
8517 2001-09-17 15:51  simon
8519         * bytecode.h, string.h:
8520         VAR_SCOPE on globals.
8522 2001-09-17 15:20  simon
8524         * MANIFEST:
8525         Parrot/Opcode.pm, Parrot/Test.pm into MANIFEST.
8527 2001-09-17 15:05  gregor
8529         * t/jump.pasm, MANIFEST:
8530         Added a test program to demonstrate jump_i.
8532 2001-09-17 14:44  thgibbs
8534         * register.c: Fixed register pop not using correct offset (off by
8535         one).
8537         Courtesy of: Philip Kendall <pak@ast.cam.ac.uk>
8539 2001-09-17 13:56  thgibbs
8541         * interpreter.c, register.c: Added code to call Parrot_clear_s
8542         during initialization and Parrot_clear_s and Parrot_clear_p when a
8543         new stack frame is pushed.
8545 2001-09-17 13:51  gregor
8547         * languages/jako/: Makefile, bench.jako, euclid.jako, fact.jako,
8548         fib.jako, hello.jako: Added bench.pasm to "clean"
8550 2001-09-17 13:49  gregor
8552         * languages/jako/: jakoc, Makefile:
8553         Added CVS Id tag.
8555 2001-09-17 13:49  gregor
8557         * languages/jako/jakoc:
8558         Code streamlining.
8560         Courtesy of: Buggs <buggs-perl6@splashground.de>
8562 2001-09-17 13:29  gregor
8564         * MANIFEST, opcheck.pl:
8565         Added an opcode_table checker to make sure that all opcodes listed
8566         there conform to a simple set of naming rules (rules themselves, of
8567         course, are subject to change).
8569 2001-09-17 13:23  thgibbs
8571         * string.c: Modified string.c to correctly use the return value of
8572         realloc.
8574 2001-09-17 05:26  brentdax
8576         * Makefile.in: Making the Makefile smarter
8578 2001-09-16 23:06  brentdax
8580         * hints/mswin32.pl: Finishing the Configure hints
8582 2001-09-16 23:05  brentdax
8584         * Configure.pl, Makefile.in, parrot.h, test_main.c,
8585         Parrot/Opcode.pm, lib/Parrot/Opcode.pm: Win32 compatibility,
8586         Configure hints, 5.005 compatibility, MANIFEST checking
8588 2001-09-16 19:25  bdwheele
8590         * assemble.pl: parrot assembly equates
8592 2001-09-16 18:03  gregor
8594         * Makefile.in:
8595         Added 'test' target to run new test suite.
8597 2001-09-16 17:33  simon
8599         * basic_opcodes.ops:
8600         'not' was being !, rather than ~. Too many Perl programmers here, I
8601         suspect.
8603         Courtesy of: Tom Hughes <tom@compton.nu>
8605 2001-09-16 17:21  simon
8607         * Parrot/Test.pm, lib/Parrot/Test.pm, t/harness, t/op/basic.t,
8608         t/op/string.t:
8609         A *real* test suite!
8611         Courtesy of: "Mattia Barbon" <mbarbon@dsi.unive.it>
8613 2001-09-16 16:49  gregor
8615         * basic_opcodes.ops, opcode_table:
8616         At Dan's request, my new register-constant comparison ops have been
8617         removed.
8619 2001-09-16 16:40  gregor
8621         * languages/jako/jakoc:
8622         Fixed a copy-paste error in one of jakoc's error messages.
8624         Courtesy of: Buggs <buggs-perl6-list@splashground.de>
8626 2001-09-16 16:37  gregor
8628         * languages/jako/jakoc:
8629         Modified comparison implementation to use temporary registers in
8630         the case of register-constant and constant-register comparisons.
8631         This will allow the compiler to emit code that works when the
8632         constant-comparison ops are backed out of Parrot. If the ops ever
8633         make their way back in, then jakoc can emit more efficient code
8634         again.
8636 2001-09-16 16:19  bdwheele
8638         * assemble.pl, t/local_label.pasm: Added local labels ($whatever)
8639         ... though not subroutine based like the documentation wants, they
8640         are local to the last non-local label defined.
8642 2001-09-16 14:02  simon
8644         * MANIFEST:
8645         And remember, when you add stuff, keep the manifest up to date.
8647 2001-09-16 02:55  ask
8649         * Makefile.in: a "shared" target for building libparrot.so
8651 2001-09-16 02:45  thgibbs
8653         * bytecode.c, bytecode.h, events.h, exceptions.h, global_setup.c,
8654         global_setup.h, interpreter.c, interpreter.h, io.h,
8655         make_op_header.pl, memory.c, memory.h, parrot.c, parrot.h,
8656         process_opfunc.pl, register.c, register.h, stacks.h, string.c,
8657         string.h, strnative.c, strnative.h, test_main.c: Updated files to
8658         use the coding standard PDD.  Also changed Perl_Interp to
8659         Parrot_Interp.
8661 2001-09-16 02:21  ask
8663         * README: emphasise the bits about the license not being worked out
8664         yet.
8666 2001-09-15 22:21  simon
8668         * process_opfunc.pl:
8669         basic_opcodes.c should *scream* that it's autogenerated.
8671 2001-09-15 21:58  gregor
8673         * languages/jako/Makefile:
8674         Fixed Makefile to use 'jakoc' instead of 'jako_compiler.pl' to
8675         compile.
8677 2001-09-15 21:58  gregor
8679         * languages/jako/: jako_compiler.pl, jakoc:
8680         Renamed the Jako compiler to jakoc from jako_compiler.pl
8682 2001-09-15 21:51  gregor
8684         * languages/jako/: Makefile, bench.jako, euclid.jako,
8685         jako_compiler.pl:
8686         Added a new bench.jako example based on Leon Brocard's Bench.java.
8688         Jako Compiler:   * fix a bug in assignment handling   * add some
8689         more conditionals to while and if   * revert to using implicit
8690         opcodes in a few cases that were broken     before the assembler
8691         patch went in recently.
8693 2001-09-15 21:46  gregor
8695         * assemble.pl, basic_opcodes.ops, opcode_table:
8696         New ops for register-constant INTEGER comparisons:
8698           {eq,ne,lt,le,gt,ge}_ic_ic
8700         New ops for register-register and register-constant NUMERIC
8701         comparisons:
8703           eq_nc_ic
8704           {ne,lt,le,gt,ge}_{n,nc}_ic
8706         Assembler:
8708           Allow uppercase and underscores in labels.
8710           Tweaks to the op infer code to make it work with the examples
8711         I've been
8712           creating.
8714 2001-09-15 19:16  thgibbs
8716         * README: Updated README to include Configure.pl
8718 2001-09-15 17:05  simon
8720         * build_interp_starter.pl:
8721         Casting happiness
8723         Courtesy of: Jarkko Hietaniemi <jhi@cc.hut.fi>
8725 2001-09-15 16:45  simon
8727         * assemble.pl:
8728         And the same again: Parrot/Opcode.pm wasn't "..-aware".
8730 2001-09-15 16:40  simon
8732         * t/Makefile:
8733         The Parrot/Opcode.pm dependency means we need to do -I.. in the
8734         test Makefile
8736 2001-09-15 12:26  simon
8738         * memory.c:
8739         Fixed to match the coding standards.
8741         Courtesy of: Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
8743 2001-09-15 01:57  ask
8745         * Configure.pl, Makefile.in, Parrot/Opcode.pm,
8746         lib/Parrot/Opcode.pm: make the Makefile use the perl that was used
8747         to run Configure.pl
8749 2001-09-15 01:48  ask
8751         * Parrot/Opcode.pm, lib/Parrot/Opcode.pm: if we need perl 5.6, just
8752         say so. :-)
8754 2001-09-15 01:42  gregor
8756         * languages/jako/: euclid.jako, fact.jako, fib.jako,
8757         jako_compiler.pl:
8758         Compiler: Added variable interpolation in double-quoted strings.
8759         Examples: Made use of variable interpolation.
8761 2001-09-15 01:28  gregor
8763         * Parrot/.cvsignore:
8764         Ignore the Config.pm generated file.
8766 2001-09-15 01:22  gregor
8768         * languages/jako/: .cvsignore, Makefile, euclid.jako, fact.jako,
8769         fib.jako, hello.jako, jako_compiler.pl:
8770         gnp: Added some more sample Jako files and added many more
8771         operators to the compiler. Preparations for supporting all the Math
8772         and bitwise ops.
8774 2001-09-14 19:06  simon
8776         * assemble.pl, build_interp_starter.pl, disassemble.pl,
8777         make_op_header.pl, process_opfunc.pl, Parrot/Opcode.pm,
8778         lib/Parrot/Opcode.pm:
8779         Move common table reading stuff to a module.
8781         Courtesy of: Damien Neil <neild@misago.org>
8783 2001-09-14 17:42  simon
8785         * .cvsignore:
8786         More .cvsignore foo.
8788 2001-09-14 17:40  simon
8790         * assemble.pl, config_h.in:
8791         De-coredump
8793         Courtesy of: Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
8795 2001-09-14 17:38  simon
8797         * assemble.pl, t/Makefile:
8798         Make assemble.pl look in its parent directory if the data files it
8799         needs aren't in the current one. Plus a Makefile that lets "make
8800         foo.pbc" work in t/
8802         Courtesy of: Rocco Caputo <troc@netrus.net>
8804 2001-09-14 16:29  simon
8806         * make_op_header.pl:
8807         Wildly experimental patch to make Parrot compile on FreeBSD. (And
8808         probably segfault everywhere else.)
8810 2001-09-14 15:58  dan
8812         * languages/jako/: euclid.jako, jako_compiler.pl:
8814         Added in the first mini-language that targets Parrot.
8816         Courtesy of: "Gregor N. Purdy" <gregor@focusresearch.com>
8818 2001-09-14 15:20  dan
8820         * memory.c: Was misaligning returned memory. Fixed.
8822 2001-09-14 15:08  simon
8824         * Makefile.in, basic_opcodes.ops, bytecode.c, global_setup.c,
8825         interpreter.c, interpreter.h, memory.c, parrot.c, parrot.h,
8826         register.c, register.h, string.c, string.h, strnative.c,
8827         test_main.c:
8828         Fixes to include <parrot/foo.h>
8830         Courtesy of: Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
8832 2001-09-14 12:05  simon
8834         * strnative.c:
8835         Appease Tru64.
8837 2001-09-14 12:01  simon
8839         * memory.c:
8840         Appease Tru64.
8842 2001-09-14 11:54  simon
8844         * interpreter.c:
8845         Remove lvalue cast.
8847 2001-09-14 11:45  simon
8849         * Configure.pl:
8850         Be 5.005 friendly.
8852 2001-09-14 11:39  simon
8854         * Configure.pl:
8855         Tru64 cc doesn't like -Wall
8857 2001-09-14 10:57  simon
8859         * Config_pm.in, Configure.pl, MANIFEST, Makefile, Makefile.in,
8860         assemble.pl, build_interp_starter.pl, bytecode.c, bytecode.h,
8861         config.h.in, config_h.in, disassemble.pl, interpreter.c:
8862         Configure now generates Makefile
8864         Courtesy of: Brent Dax <brentdax@cpan.org>
8866 2001-09-14 10:08  simon
8868         * t/test3.pasm:
8869         Add "end"
8871         Courtesy of: Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
8873 2001-09-14 10:07  simon
8875         * assemble.pl:
8876                 * uses Getopt::Long for options.  -c is now --checksyntax.
8877         I wasn't
8878         sure how to keep compatible (patches welcome!)         * options
8879         include:                 --help                 --version
8880               --verbose                 --output=file
8881         --listing=file                 --checksyntax         * produces
8882         verbose listing of what the assembler saw :)  Only one nitpick with
8883         it:  unknown symbols are given as 0xffffffff, unfortunately, this
8884         includes symbols which may be defined later in the file (i.e.
8885         forward jumps).
8887         Courtesy of: Brian Wheeler <bdwheele@indiana.edu>
8889 2001-09-14 10:06  simon
8891         * strnative.c:
8892         substr growth fixup
8894         Courtesy of: Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
8896 2001-09-14 10:03  simon
8898         * bytecode.c, global_setup.c, interpreter.c, memory.c, memory.h,
8899         register.c, string.c, strnative.c, test_main.c:
8900         Coding standards conformance
8902         Courtesy of Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
8904 2001-09-14 09:46  simon
8906         * assemble.pl:
8907         Make the assembler grok transcendental maths again.  Courtesy of:
8908         Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
8910 2001-09-13 17:29  simon
8912         * assemble.pl:
8913         Better opcode guessing, from Brian Wheeler. (Again!)
8915 2001-09-13 17:20  dan
8917         * docs/parrot_assembly.pod:
8919         Took out duplicate entries for iton, ntoi, and tostring.
8921 2001-09-13 17:16  simon
8923         * assemble.pl, basic_opcodes.ops, opcode_table:
8924         From Brian Wheeler:
8926         This patch gives the assembler support of '\a','\n','\r','\t', and
8927         '\\' in string constants.
8929         In addition, it changes (for all registers) "I reg %li is ..." to
8930         just the value of the register.  Printing constants is also
8931         supported, but alas, you have to specify the type (print_sc,
8932         print_ic, print_nc).
8934 2001-09-13 15:38  simon
8936         * assemble.pl:
8937         Why don't I actually *test* this stuff before applying it, eh?
8939 2001-09-13 15:34  simon
8941         * TODO, t/euclid.pasm:
8942         From: "Gregor N. Purdy" <gregor@focusresearch.com> Subject: [patch
8943         (really)] Removed opcode qualifers t/euclid.pasm to exercise opcode
8944         inference
8946 2001-09-13 14:42  simon
8948         * assemble.pl:
8949         A new assembler, from Brian Wheeler.
8951 2001-09-13 09:44  simon
8953         * basic_opcodes.ops, interpreter.h, parrot.h, strnative.c,
8954         test_main.c:
8955         Two more from Tom Hughes:     Patch to fix C++ style comments
8956         Patch to remove use of structure constant/cast
8958 2001-09-13 09:39  simon
8960         * TODO, docs/strings.pod:
8961         Update string docs.
8963 2001-09-13 09:36  simon
8965         * Makefile, basic_opcodes.ops:
8966         Tom Hughes      Patch to link with the maths library Tom Hughes
8967          Patch to fix += on rvalue
8969 2001-09-13 08:57  simon
8971         * MANIFEST:
8972         I guess nobody's been using the nightly builds...
8974 2001-09-13 08:27  simon
8976         * assemble.pl, basic_opcodes.ops, opcode_table:
8977         Bitwise ops, from Brian Wheeler.
8979 2001-09-13 08:23  simon
8981         * .cvsignore, t/.cvsignore:
8982         .cvsignore's, from Gregor Purdy.
8984 2001-09-13 08:22  simon
8986         * Makefile:
8987         Euclidean test and test output rearranging from Gregor Purdy.
8989 2001-09-13 08:21  simon
8991         * assemble.pl, basic_opcodes.ops, disassemble.pl, opcode_table:
8992         Math ops from Gibbs Tanton.
8994 2001-09-13 08:14  simon
8996         * basic_opcodes.ops, opcode_table, string.c, string.h, strnative.c,
8997         t/test2.pasm:
8998         String substr op; also rearranged "encoding" to be a vtable
8999         pointer, not an array index. Haven't changed docs to reflect this,
9000         oops.
9002         Simon
9004 2001-09-12 19:48  dan
9006         * t/euclid.pasm: Implementation of Euclid's Algorithm, courtesy of
9007         Gregor Purdy
9009 2001-09-12 19:39  dan
9011         * basic_opcodes.ops, opcode_table: From Gregor Purdy. Adds mod_i.
9013 2001-09-12 19:23  dan
9015         * interpreter.h, parrot.h: Quick placeholder entry for string
9016         function tables
9018 2001-09-12 18:58  dan
9020         * memory.c: Added in a cast to make gcc happy.
9022 2001-09-12 16:44  dan
9024         * docs/parrot_assembly.pod:
9026         PDD describing parrot's assembly language and the opcodes in it
9028 2001-09-12 14:20  dan
9030         * memory.c:
9031         Fixed alignment issues with allocation
9033 2001-09-12 10:54  simon
9035         * Makefile, assemble.pl, bytecode.c, disassemble.pl,
9036         make_op_header.pl, opcode_table, process_opfunc.pl:
9037         Brian Wheeler's big patch:
9039         * Changes the opcode_table file to provide additional information
9040         about the operands.  Case shouldn't be a problem since that data
9041         never becomes a C symbol [this is pretty much as before]
9043         * Padding errors solved:  assemble.pl and bytecode.c were padding
9044         the constants incorrectly.  It should have been 4-(size % 4), not
9045         just (size % 4).  It is now fixed in both places.
9047         * assembler has less special cases, and should be easier to hang
9048         error checking on
9050         * disassembler dumps constant table and the format is a bit
9051         prettier, including register names, etc.
9053 2001-09-11 23:21  dan
9055         * build_interp_starter.pl, interpreter.c:
9057         Abstracted the runops function core into a macro for easy
9058         replacement later.
9060 2001-09-11 10:43  simon
9062         * Configure.pl, MANIFEST, Makefile, config.h, config.h.in:
9063         Configure system from Brent Dax <brentdax@cpan.org>
9065 2001-09-11 09:38  simon
9067         * assemble.pl, test.pbc:
9068         From: Bryan C. Warnock <bwarnock@raba.com> Subject: Patch:
9069         assembler deferred output
9071         Also got rid of the bytecode, since that's probably way out of
9072         date.
9074 2001-09-11 09:26  simon
9076         * basic_opcodes.ops, opcode_table, t/test2.pasm:
9077         From: Bryan C. Warnock <bwarnock@raba.com> Subject: length_s_i
9078         patch
9080 2001-09-10 23:20  simon
9082         * MANIFEST:
9083         And that move needs a MANIFEST change. So many things to remember!
9085 2001-09-10 23:18  simon
9087         * t/: test.pasm, test2.pasm, test3.pasm:
9088         Move tests to t/. (Oh, CVS doesn't work the way I think it does.)
9090 2001-09-10 23:18  simon
9092         * test.pasm, test2.pasm, test3.pasm:
9093         Move tests to t/
9095 2001-09-10 23:04  dan
9097         * test3.pasm:
9099         Register push/pop test
9101 2001-09-10 22:47  simon
9103         * basic_opcodes.ops, bytecode.c, parrot.h, test_main.c:
9104         Fix up format warnings, from Sam Tregar <sam@tregar.com>.
9105         (Modified to avoid conflict with Dan's changes.)
9107 2001-09-10 22:45  dan
9109         * disassemble.pl:
9111         Happier about blanks in opcode_table
9113 2001-09-10 22:40  dan
9115         * interpreter.c, register.c:
9117         Yanked out debugging code, since these work OK. The bug I want is
9118         elsewhere.
9120 2001-09-10 22:30  simon
9122         * MANIFEST:
9123         Uhm. We want make_op_header.pl. We really, really do.
9125 2001-09-10 22:26  simon
9127         * Makefile, TODO, assemble.pl, basic_opcodes.ops,
9128         build_interp_starter.pl, disassemble.pl, make_op_header.pl,
9129         opcode_table, process_opfunc.pl:
9130         Automatic opcode numbering, from Leon Brocard <acme@astray.com>.
9131         This means we can add lots more opcodes without fiddling about with
9132         the numbers. Hooray!
9134         Don't forget that "end" needs to be op zero, else the interpreter
9135         falls off the end of the code. This is Bad, and I wonder if there's
9136         a way around it.
9138 2001-09-10 19:49  simon
9140         * MANIFEST, make_op_table_build.pl:
9141         Hey! This doesn't do anything...
9143 2001-09-10 19:46  simon
9145         * Makefile:
9146         "clean" target cleanup from Bryan C. Warnock <bwarnock@raba.com>.
9148 2001-09-10 18:31  simon
9150         * MANIFEST:
9151         You know what this means...
9153 2001-09-10 18:30  simon
9155         * assemble.pl:
9156         "use strict" patch from Leon Brocard <acme@astray.com>. Hey, why
9157         wait for a release...? :)
9159 2001-09-10 18:13  simon
9161         * interpreter.c:
9162         Bad Dan! No cookie!
9164 2001-09-10 17:56  simon
9166         * README:
9167         A *real* README file, which doesn't claim it isn't for public
9168         consumption.
9170 2001-09-10 17:02  simon
9172         * TODO:
9173         More things to do.
9175 2001-09-10 16:56  dan
9177         * TODO: Added in assembler gripe. Also added a few blank lines for
9178         clarity
9180 2001-09-10 16:49  dan
9182         * register.h, register.c: Renamed the core functions so the opcodes
9183         can find 'em OK. (There were some conflicts)
9185 2001-09-10 16:48  dan
9187         * basic_opcodes.ops, opcode_table: Added register window ops
9189 2001-09-10 11:07  simon
9191         * TODO:
9192         Trivial TODO list.
9194 2001-09-10 11:05  simon
9196         * test.pbc, test2.pasm, test_main.c: Other string bits and pieces;
9197         note "-s" flag to test prog.
9199 2001-09-10 11:01  simon
9201         * docs/strings.pod:
9202         New string documentation.
9204 2001-09-10 11:01  simon
9206         * basic_opcodes.ops, opcode_table:
9207         String ops.
9209 2001-09-10 10:53  simon
9211         * global_setup.c:
9212         More string fu.
9214 2001-09-10 10:51  simon
9216         * memory.h:
9217         Just some more aliases for now. Used by string handling stuff.
9219 2001-09-10 10:50  simon
9221         * assemble.pl, bytecode.c, bytecode.h:
9222         Temporary hack to store string constants in bytecode and recreate
9223         them at runtime.
9225 2001-09-10 10:48  simon
9227         * op.h:
9228         op.h is now generated by the Makefile; remove it.
9230 2001-09-10 10:47  simon
9232         * Makefile:
9233         clean and op.h Makefile targets.
9235 2001-09-10 10:45  simon
9237         * string.c, string.h, strnative.c:
9238         More string vtable stuff.
9240 2001-09-07 21:07  dan
9242         * assemble.pl:
9244         Much less picky about whitespace in the opcode_table now. (Doesn't
9245         whine on blank lines)
9247 2001-09-07 16:23  dan
9249         * Makefile, assemble.pl, global_setup.h, interpreter.c,
9250         interpreter.h, opcode_table, parrot.h, test.pasm: (Here's hoping
9251         this takes) Added global_setup.h to declare init_world function
9253         Moved variable declarations out of the interpreter loop for small
9254         speed boost.
9256         Changed end opcode to now be opcode #0. A function is provided for
9257         it, but isn't ever executed.
9259         When the interpreter sees an opcode 0 in the stream it means the
9260         end of stream. Things were coring on Cygwin otherwise. (I think I
9261         was dereferencing a zero, which is bad)
9263 2001-09-06 22:07  dan
9265         * basic_opcodes.ops, process_opfunc.pl:
9267         Minor tweaks to basic_opcodes.ops to fix some NV issues. The rest
9268         are minor changes now that things are in a fixed state.
9270 2001-09-06 16:13  dan
9272         * basic_opcodes.c, test_opcodes.c:
9273         test_opcodes.c is now irrelevant--they're all in basic_opcodes.ops.
9275         basic_opcodes.c is now autogenerated from basic_opcodes.ops, and
9276         should be nuked. So it is. :)
9278 2001-09-06 03:35  dan
9280         * basic_opcodes.ops, build_interp_starter.pl, process_opfunc.pl:
9281         Scripts to build the header file that holds the function table
9282         creation code, as well as the script to turn an opcode file to C
9283         source. (And the basic opcode functions turned into an opcode
9284         source file)
9286 2001-09-06 03:31  dan
9288         * Makefile, interpreter.c:
9289         Changes to support the autogeneration of the opcode function
9290         pointer table in interpreter.c, along with the changes to the
9291         Makefile needed.
9293 2001-09-05 13:27  simon
9295         * bytecode.c, config.h, docs/opcodes.pod, docs/overview.pod,
9296         docs/parrotbyte.pod, docs/vtables.pod:
9297         Added stubs for the documents; working on them this week. (What's
9298         left of it.) config.h change is just to type VTABLE, and the
9299         bytecode thing you might want to revoke. It's apidoc for the
9300         functions in there.
9302 2001-09-03 18:26  simon
9304         * docs/strings.pod:
9305         A start on the string API documentation.
9307 2001-09-03 17:43  simon
9309         * opcode_table:
9310         Since we specify the opcode number, we can rearrange to a more
9311         human-friendly ordering.
9313 2001-09-03 17:42  simon
9315         * basic_opcodes.c:
9316         Coupl'a logic bugs. (I think)
9318 2001-09-03 17:41  simon
9320         * string.c, string.h, strnative.c:
9321         Tidying up the string vtables.
9323 2001-09-03 17:38  simon
9325         * make_op_header.pl:
9326         Spit out the whole of op.h, not just the bit in the middle.
9328 2001-08-29 13:16  ask
9330         * README: it seems like we indeed can commit. What about sending
9331         commit mails?
9333 2001-08-29 13:07  simon
9335         * Makefile, README, assemble.pl, basic_opcodes.c, bytecode.c,
9336         bytecode.h, config.h, disassemble.pl, events.h, exceptions.h,
9337         global_setup.c, interpreter.c, interpreter.h, io.h,
9338         make_op_header.pl, make_op_table_build.pl, memory.c, memory.h,
9339         op.h, opcode_table, parrot.c, parrot.h, register.c, register.h,
9340         stacks.h, string.c, string.h, strnative.c, strnative.h, test.pasm,
9341         test.pbc, test_main.c, test_opcodes.c:
9342         Initial checkin of Simon's work directory - Dan, feel free to nuke.
9343          I'm still working on the string stuff, though.
9345 2001-08-29 12:44  ask
9347         * README: update README with list address
9349 2001-08-29 12:36  ask
9351         * README: first readme.