+ (Parrot_class_offset): Make "Not an object" a real_exception.
[parrot.git] / ChangeLog
bloba55e83f6a97c0a6062bbb10939068c6176bf3507
1 #1 $Id$
3 2006.12.12    particle
4         * added C<isnull> opcode
6 2006.11.14    chip
7         * Released 0.4.7
8         See NEWS for more.
10 2006.11.07      tewk
11         * added :init pragma functionality to subs
13 2006.10.28      jonathan
14         * added :vtable pragma functionality to subs
16 2006.09.18    chromatic
17         * added Parrot::Embed under ext/Parrot-Embed
19 2006.08.18    leo
20         * remove the None PMC - if needed it can trivially be reimplemented
21           in languages from r14189
23 2006.08.16    creiss
24         Merged Software Transactional Memory branch into trunk, adds:
25         * several new opcodes whose names start with stm_
26         * read-only PMC support
27         * several new PMC types (whose names start with STM*)
28         * support for threads (again)
30 2006.08.08    chip
31         * Released 0.4.6
32         See NEWS for more.
34 2006.08.02    chip
35         * opcodes: "in PMC" is no longer a synonym for "invar PMC";
36         there are opcodes now that want the real "in PMC".
37         * namespace and global opcodes now accept name arrays again, as
38         well as keys; the corresponding namespace PMC methods are gone.
40 2006.07.21    leo
41         * Parrot_exit, Parrot_on_exit take now an Interp * argument
43 2006.07.25    chip
44         * add experimental op find_type_i_p
45         * fix longstanding bug that sometimes didn't encode pasm keys as
46         Key PMCs (specifically "[S0]" and "['stringliteral']").
48 2006.07.24    chip
49         further implementation of new pdd21:
50         * new opcodes {get,set}*global
51           (old {find,store}*global will be supported for a short while)
53 2006.07.20    audreyt
54         * --maintainer prerequesites are now bison 2.2+ and flex 2.5.3x
55           (or some such --leo) 
56           (at the moment code is checking for 2.0 -- ambs)
58 2006.07.17    chip
59         partial implementation of new pdd21:
60         * old: "get_namespace KEY".  new: "get_hll_namespace KEY"
61         * get_namespace and find_global opcodes no longer accept arrays
62           of strings.  To use arrays, call namespace object methods.
64 2006.06.19    leo
65         * Released 0.4.5
66         See NEWS for more.
68 2006.06.03    leo
69         * I and N registers are never cleared to 0 / 0.0 on subroutine entry
71 2006.05.14    leo
72         * Released 0.4.4
73         See NEWS for more.
75 2006.04.30    bernhard
76         * Make the Perl PMCs dynamic and move them to src/dynpmc
78 2006.04.02    leo
79         * Released 0.4.3
80         See NEWS for more.
82 2006.03.06    leo
83         * Shifted argument type bits left by 2 according to r11754
84           change of docs/pdds/pdd03_calling_conventions.pod
85         * if you are creating PASM then code needs adjustment  
87 2006.02.22    leo
88         * Released 0.4.2
89         See NEWS for more.
91 2006.01.16    bernhard
92          * rename src/dynclasses to src/dynpmc 
93          * rename src/classes to src/pmc 
95 2006.01.15    leo
97          * find_global and friends returns a .Null PMC instead of .Undef on
98           lookup failure, iff lookup exceptions are off
100 2006.01.08    leo
101         * Released 0.4.1
102         See NEWS for more.
104 2005.12.28    particle
105         * renamed all .imc files to .pir
106         * modified all doc references to .pir as well
108 2005.12.13    particle
109         * moved jit/ directory to src/jit/
111 2005.12.12    particle
112         * moved io/ directory to src/io/
113         * moved classes/ directory to src/classes/
114         * moved dynclasses/ directory to src/dynclasses/
116 2005.12.08    particle
117         * moved types/ directory to src/types/
118         * moved pf/ directory to src/packfile/
119         * moved ops/ directory to src/ops/
121 2005.12.08    particle
122         * moved charset/ directory to src/charset/
123         * moved encodings/ directory to src/encodings/
125 2005.12.07    particle
126         * moved imcc/ directory to compilers/imcc/
128 2005.12.06    particle
129         * moved util/ directory to tools/util/
130         * removed imcc/examples/ directory
131         * moved ast/ directory to compilers/ast/
133 2005.12.05    particle
134         * moved imcc/docs/ directory to docs/imcc/
135         * moved build_tools/ directory to tools/build/
136         * modified MANIFEST, MANIFEST.generated, and MANIFEST.SKIP
138 2005.12.04    leo
139         * Released 0.4.0
140         * See NEWS for changes
142 2005.11.06    leo
143         * Released 0.3.1
144         * See NEWS for changes
146 2005.10.01    leo
147         * Released 0.3.0
148         * See NEWS for changes
150 2005.08.05    leo
151         * Released 0.2.3
152         * See NEWS for changes
154 2005.07.03    leo
155         * Released 0.2.2
156         * See NEWS for changes
158 2005.06.04    leo
159         * Released 0.2.1
160         * allow short names for object attributes
161         * string encoding and charset can now be set independently
162         * experimental mmap IO layer for slurping files
163         * enable compile opcode support for compilers written in PASM/PIR
164         * improved HLL support with .HLL and n_operators pragmas
165         * simplified hash code
166         * more strength reduce optimizations
167         * distinct debug and trace flag settings
168         * glob support in PGE
169         * new character classification opcodes and interfaces
170         * numerous bug fixes and enhancements
172 2005-05-08    leo
173         * Released 0.2.0
174         * parrot repository is now under subversion
175         * MMD (Multi Method Dispatch) enhanced
176         * new unary and infix opcodes that return new result PMCs
177         * dynamic scalar PMCs inherit now almost all from Parrot core PMCs
178         * more unification of PMCs and ParrotObjects
179         * tailcalls for functions and methods
180         * PGE (Parrot Grammar Engine) reworked
181         * Pugs creates Parrot code and Pugs is a registered compiler now
182         * new languages/lisp
183         * the usual bug fixes and improvements
185 2005-03-06    leo
186         * Released 0.1.2
187         * big rewrite of string code, not yet finished but ...
188         * partial implementation of a generational garbage collector
189         * indirect register frame addressing
190         * .return(args) PIR syntax
191         * moved most of the Python code to dynclasses
192         * a lot more Python functionality
193         * precalculate opcodes with all constants
194         * PGE - Parrot Grammar Engine
195         * scalar classes refactoring
196         * much more tests and big test system cleanup
197         * improved documentation
198         * and as always a lot more
200 2004-10-09    leo
201         * Released 0.1.1
202         * Need Perl 5.6 now for building
203         * Basic AST support, PAST file parser, bits of code generation
204         * BigInt PMC using GMP
205         * Complex PMC
206         * Dynamic loading improved including bundles of PMC classes
207         * Experimental support for "make install"
208         * IA64 and hppa JIT support
209         * ICU unicode support
210         * IO layer handling code
211         * IO readline and buffered IO fixes
212         * Incremental GC
213         * Internal pythonic functions: filter, map, reduce, max, min ...
214         * Languages updates for m4, tcl, perl6, regex. New parakeet language.
215         * Library updates, Stream and SDL library
216         * MMD - multi method dispatch for binary vtable methods
217         * Many new array PMCs
218         * Method call syntax in PIR obj."meth"(...)
219         * More OS stuff: stat, exec, system, gmtime, piped read and write
220         * New Python PMCs like Enumerate, None
221         * Non-branching compare opcodes
222         * PIR support for += and friends
223         * Python language subdir
224         * Python types mapped to existing PMCs
225         * Slices and range support
226         * Tons of bug fixes, documentation updates, new tests
227         * Win32 COFF exec support
228         * ... and a lot more
230 2004-02-29    leo
231         * Released 0.1.0
232         * "Ladies and gentlemen, I give you... objects!"
233         * Huge documentation overhaul
234         * More supported platforms, s. PLATFORMS
235         * Basic thread support for pthread based architectures
236         * Basic event handling for timers and signals including:
237         * PASM callbacks for NCI (native C) functions.
238         * Improved platform configuration
239         * COW stacks now working, stacks code redone
240         * Structure handling vastly improved
241         * Random PMC and rand primitives
242         * Better subroutine call syntax in PIR
243         * Make PIR subroutines compliant with pdd03
244         * Improved profiling (DOD, GC timings)
245         * Hash code improvements, incl. random key order support
246         * Experimental freeze/thaw code for some PMC types
247         * IO improvements for buffered layer and Win32
248         * String iterators
249         * String bitwise vtables
250         * Many new opcodes
251         * Support for JIT, where malloced memory isn't executable
252         * Priority DOD scheme for objects that need timely destruction
253         * Improved bytecode loading (e.g. onLoad functions)
254         * Language updates: forth, Perl6/P6C, m4
255         * Libraries: Getopt_Long, SDL, Dumper, Sort
256         * new JAPH examples
257         * Unified imcc and parrot test handling
258         * Many new tests (make test reports 1386 tests)
259         * Numerous bug fixes
262 2003-10-31    leo
263         * Released 0.0.13
264         * Yep thirteen - haunted by the ghost of 0.0.12
265         * Build imcc as parrot
266         * Objects more finished
267         * Delegate vtable methods to byte code
268         * Binary multi-method dispatching
269         * Isa and does methods for PMCs
270         * Call byte code from C
271         * Start of extension interface
272         * Experimental struct handling
273         * Catch access to NULL PMCs
274         * Experimental network socket interface code and opcodes
275         * IO fixes and improvements
276         * Dynamic opcode libraries
277         * Fix-assigned opcode numbers
278         * Argument flattening for function calls
279         * More native call interface (NCI) signatures
280         * Ncurses, postgres, and pcre interface libraries
281         * Forth language is vastly improved
282         * BSD and Win32 build improvements
283         * Many new tests and fixes
285 2003-10-22    melvin
286         * imcc moved from parrot/languages/ to parrot/
288 2003-09-20    sfink
290         * updated the native_pbc test files (from Leo)
291         * built 0.0.11.1 release tarball
293 2003-09-20    sfink
295         * CHANGES BUNDLED INTO 0.0.11:
296         * Executable output
297         * Dynamic PMC registration
298         * Trial exception system
299         * Beginnings of object system
300         * Iterators
301         * Ordered hashes
302         * I/O system improvements
303         * References
304         * Documentation for basic PMC types
305         * IMCC support of Parrot Calling Conventions
306         * Runtime loading of chartypes (and other string improvements)
307         * Conditional breakpoints
308         * Dramatically accelerated sweeps for finalizable objects
309         * Small PMCs (PMCs split into core and extensions)
310         * Loadable bytecode packfiles
311         * Constant PMCs
312         * Sub variants that deal with the stack correctly
313         * Switched runops core
314         * Line numbers in warnings
315         * Environment access
316         * Many documentation cleanups
317         * Conversion to CPS style!
318         * BASIC debugger and many other wacky features
319         * Filename, line number parsing support in IMCC
321 2003-07-21 17:31 chromatic
322         * applied copyright patch from Josh Wilmes
324 2003-06-14 13:50 dan
325         * Moved the registers out of the context structure, since they
326           really aren't context
327         * Changed the register stack frames to hold only 16 registers
328           rather than 32, added half-set push and pop ops, and reworked
329           the full set push/pops to do two half-set push/pops. Should
330           speed up saving register data on calls, since we usually only
331           care about the top half of the registers anyway.
332         * Started committing some of the new class/object framework
333         * Remembered to finally start updating the Changelog
335 2003-03-18 03:50  ask
337         * Various files
338           Update Yet Another copyright statements to reflect the (no longer
339           so) shiny new year.
341 2003-03-11 22:06  chip
343         * Configure.pl: print help on non-option command line args
345 2002-12-18 20:38  sfink: changes since 0.0.8
347         - Allow suppression of cgoto core to save memory during compile
348         * Native function calling interface
349         * Major rewrite of stack and list aggregates
350         - Scalar PMC added
351         * Scratchpads implemented
352         - Win32 libraries
353         - Internal memory subsystem documentation
354         * Preliminary DotGNU support
355         - Packfile fingerprinting
356         * Buffer/PMC unification (into PObjs)
357         * stabs debugging information support
358         * Major Jako overhaul, including:
359           - imcc integration
360           - native function calling
361         - Perl6 string interpolation
362         - languages/regex now targets IMCC
363         * Optional Lea memory allocator
364         * Full sprintf implementation
365         * Many, many new tests
366         * Miniparrot
367         - exchange ops
368         - runtime-controllable gc debugging
369         * PMC properties
370         - Crash info
371         * JIT: various improvements
372           - register usage tracking
373           - block register allocation
374           - optimizations
375           - more jitted ops
376           - restartable
377           - architecture abstraction layer
378           - debugging via GDB
379         * Beginning support for extensible packfiles
380         * Much better key support, generally
381         * splice()
382         * Restructured PMC hierarchy with better functionality inheritance
383         * IMCC: many, many improvements. See imcc/ChangeLog
384         * Perl6: index map grep join reverse defined
385         * Scheme with functions!
388 2002-03-19 22:54  nicholas
390         * docs/running.pod: Patch from Simon Glover <scog@amnh.org>:
392          We can now get usage information for test_parrot without having to
393          grep the source.
395 2002-03-19 22:53  simon
397         * Configure.pl:
398         Parrot is called parrot.
400 2002-03-19 22:53  nicholas
402         * docs/tests.pod: Patch from Simon Glover <scog@amnh.org>:
404          1. There are tests in t/pmc as well as t/op now.
405          2. Adds a comment about Parrot::Test
407 2002-03-19 18:09  dan
409         * Configure.pl, examples/assembly/life.pasm: Toss a prompt that
410         messes up automated builds
412         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
414 2002-03-19 00:33  mrjoltcola
416         * core.ops: Doc cleanup from Simon Glover.
418 2002-03-18 23:52  mrjoltcola
420         * io/io_unix.c: Typo fix for invalid lvalue caught by David Loyd.
422 2002-03-18 22:09  dan
424         * include/parrot/resources.h: Checked in old version
426 2002-03-18 20:17  dan
428         * include/parrot/resources.h: Forgot a prototype
430 2002-03-18 20:15  dan
432         * resources.c: D'oh! Thinko, fixed.
434         Courtesy of "Peter Gibbs" <peter@emkel.co.za>
436 2002-03-18 17:33  josh
438         * Configure.pl: Lowering the bar a bit.
440 2002-03-18 17:33  sfink
442         * languages/regex/: MAINTAINER, Makefile, README, regex.pl,
443         test.pl, lib/Regex.pm, lib/Regex/AsmOps.pm, lib/Regex/CodeGen.pm,
444         lib/Regex/Generate.pm, lib/Regex/Grammar.pm, lib/Regex/Grammar.y,
445         lib/Regex/Optimize.pm, lib/Regex/Parse.pm, lib/Regex/Pasm.pm,
446         lib/Regex/PreOptimize.pm, lib/Regex/RegexOps.pm,
447         lib/Regex/Rewrite.pm, lib/Regex/CodeGen/Re.pm,
448         lib/Regex/CodeGen/Rx.pm, lib/Regex/Rewrite/Re.pm,
449         lib/Regex/Rewrite/Rx.pm, lib/Regex/Rewrite/Stackless.pm,
450         t/example.t: Whoops, wrong time to check this in.
452 2002-03-18 16:42  dan
454         * memory.c, resources.c: Partial fix for GC's memory trouncing. At
455         least we consider the PMC and Buffer free pools worth collecting,
456         and initialize the Buffer pool stuff.  Still not 100% correct,
457         though.
459 2002-03-18 15:35  simon
461         * packfile.c:
462         Fix format arg bug.
464 2002-03-18 07:45  brentdax
466         * Configure.pl: Warn if you're using 64-bit ints on a 32-bit
467         system.
469 2002-03-18 00:09  sfink
471         * languages/regex/: MAINTAINER, Makefile, README, regex.pl,
472         test.pl, lib/Regex.pm, lib/Regex/AsmOps.pm, lib/Regex/CodeGen.pm,
473         lib/Regex/Generate.pm, lib/Regex/Grammar.pm, lib/Regex/Grammar.y,
474         lib/Regex/Optimize.pm, lib/Regex/Parse.pm, lib/Regex/Pasm.pm,
475         lib/Regex/PreOptimize.pm, lib/Regex/RegexOps.pm,
476         lib/Regex/Rewrite.pm, lib/Regex/CodeGen/Re.pm,
477         lib/Regex/CodeGen/Rx.pm, lib/Regex/Rewrite/Re.pm,
478         lib/Regex/Rewrite/Rx.pm, lib/Regex/Rewrite/Stackless.pm,
479         t/example.t: Buggy 1st version of regex compiler implementation.
480         Warning: the test code depends on features of the assembler that do
481         not yet exist.
483 2002-03-17 21:35  ajgough
485         * types/: bignum.c, bignum_atest.pl: Added a couple of quick routes
486         through addition and subtraction.  Also added the ability to run
487         all the tests, including the ones which deal with overflow and
488         underflow.  These fail, but that's expected.  Soon they'll pass.
489         Then I'll show them.  Yesssssss.  Tessssssssts my precioussssss,
490         passsssssssings tesssstsssss.
492 2002-03-17 20:06  ajgough
494         * types/: bignum.c, bignum.h, bignum_test.pl: Modified
495         check_(under|over)flow to test bignumbers, rather than values.
496         context now carries E_limit, from which max and min exp are found.
498         Added a default-context-creating function (although this isn't the
499         same as either of the default contexts defined in the eda).
501 2002-03-17 13:31  ajgough
503         * types/: bignum.c, bignum.h: Made BN_round and BN_iround so that
504         exported version matches prototypes of other public functions.
506 2002-03-17 06:44  josh
508         * chartype.c, encoding.c, memory.c, misc.c, packdump.c, packfile.c,
509         packout.c, resources.c, string.c, include/parrot/encoding.h: Some
510         last-minute re-indenting.
512 2002-03-17 05:07  mrjoltcola
514         * io/io_unix.c: Clear up unsigned compare caught by Solaris GCC.
516 2002-03-16 23:17  nicholas
518         * classes/default.pmc: Patch from Simon Glover <scog@amnh.org> to
519         remove warnings:
521          default.pmc: In function `Parrot_default_get_integer_keyed':
522          default.pmc:50: warning: control reaches end of non-void function
523          default.pmc: In function `Parrot_default_get_number_keyed':
524          default.pmc:58: warning: control reaches end of non-void function
525          default.pmc: In function `Parrot_default_get_string_keyed':
526          default.pmc:67: warning: control reaches end of non-void function
527          default.pmc: In function `Parrot_default_get_pmc_keyed':
528          default.pmc:87: warning: control reaches end of non-void function
530 2002-03-16 18:50  ajgough
532         * types/: bignum.c, bignum.h: Lots of prototypes changed in
533         readiness for nicely telling your caller about any oddness you've
534         caused in the persuit of flow.
536 2002-03-16 17:38  dan
538         * interpreter.c, resources.c, docs/pdds/pdd09_gc.pod,
539         include/parrot/interpreter.h, include/parrot/resources.h: Now we
540         can control the GC and DOD, to stop it when we don't really want
541         it.
543 2002-03-16 16:58  dan
545         * resources.c, vtable.tbl, classes/default.pmc,
546         include/parrot/resources.h: Added the last code to let PMCs control
547         their marking at DOD time
549 2002-03-16 16:57  ajgough
551         * types/bignum.c: Ok, I worked out how to not have lots of tabs.  I
552         feel a little more virtuous now.  Really I do.  You might not
553         believe me, but you should.  perl -pne 's/\t/        /g', if you're
554         curious.
556 2002-03-16 16:57  josh
558         * packfile.c, packout.c: M-x untabify is my new friend.
560 2002-03-16 16:50  josh
562         * trace.c, resources.c: Minor whitespace tweak for the benefit of
563         check_source_standards.pl
565 2002-03-16 16:50  ajgough
567         * types/: bignum.c, bignum.h: More documentation, separate
568         functions into public and private sorts, some initial stuff to cope
569         with over and underflow correctly.
571 2002-03-16 16:49  josh
573         * resources.c: Re-indented (sorry bout the big diff)
575 2002-03-16 16:47  bdwheele
577         * examples/assembly/fact.pasm: This fixes fact.pasm so it will
578         assemble again, both with Simon's new assembler and with the old
579         one.
581 2002-03-16 16:33  mrjoltcola
583         * io/TODO: Get the TODO up-to-date for 0.0.4.
585 2002-03-16 16:11  josh
587         * Configure.pl: Patch from Nicholas Clark <nick@unfortu.net>: stops
588         silly people (such as me) running Configure with
589         /usr/local/bin/perl (which is 5.004_05) and not realising their
590         mistake until the pmc subdirectory, where the first qr// is
591         encountered.
593         Syntax error messages don't tell you what you did wrong. This does:
595         /usr/local/bin/perl Configure.pl Perl 5.00503 required--this is
596         only version 5.00405, stopped at Configure.pl line 10.
598 2002-03-16 14:38  ajgough
600         * Makefile.in: Small fix to Makefile.in to keep Irix make happy
601         with commenting.
603 2002-03-16 11:45  simon
605         * MANIFEST, examples/assembly/xml_parser.pasm:
606         Added Clint Pierce's XML parser.
608 2002-03-15 22:24  simon
610         * packout.c:
611         Don't need that function.
613 2002-03-15 21:56  simon
615         * Makefile.in, include/parrot/packfile.h:
616         Rebuild packout.o, since it'll be used for the Packfile XS module
618 2002-03-15 19:45  dan
620         * include/parrot/: memory.h, pmc.h: Another add-in for GC
622 2002-03-14 19:48  dan
624         * core.ops: No string to int for some reason
626 2002-03-14 18:45  dan
628         * string.c, t/op/string.t: Fix 0-length substr problem
630 2002-03-14 14:46  dan
632         * core.ops, interpreter.c, resources.c, classes/array.pmc,
633         classes/perlarray.pmc, examples/assembly/life.pasm,
634         include/parrot/interpreter.h, include/parrot/resources.h: Added in
635         a counter for copied memory, with a display in life.pasm
637 2002-03-14 03:16  mrjoltcola
639         * MANIFEST: Update MANIFEST courtesy of Simon Glover.
641 2002-03-13 23:43  simon
643         * packfile.c:
644         Oops.
646 2002-03-13 23:43  simon
648         * packfile.c:
649         Hangs head in shame.
651 2002-03-13 21:31  simon
653         * MANIFEST:
654         FAQ moved.
656 2002-03-13 18:06  simon
658         * string.c:
660         Fix string_compare screw-up.
662 2002-03-13 18:02  brentdax
664         * docs/: parrot.pod, ParrotFAQ.htm, faq.pod: Move the FAQ into POD
665         and add a new question/answer pair.
667 2002-03-12 22:53  mrjoltcola
669         * io.ops: Quick and dirty read ops for PIO. No warranty provided.
671 2002-03-12 22:48  mrjoltcola
673         * examples/assembly/io2.pasm: Quick and dirty read ops for PIO. No
674         warranty provided.
676 2002-03-12 22:29  ajgough
678         * docs/pdds/pdd14_bignum.pod: Ooops, it is #14, really.
680 2002-03-12 22:24  ajgough
682         * docs/pdds/pdd14_bignum.pod: Creation of bignumber pdd, update to
683         version 1.1, Don't know if this is the correct number, but I don't
684         want this stuck on my harddrive where it will get lost, so 14 it is
685         :)
687 2002-03-12 11:35  simon
689         * MANIFEST, packdump.c, packout.c:
691         Just so the functionality doesn't disappear.
693 2002-03-12 11:33  simon
695         * Makefile.in, chartype.c, encoding.c, packfile.c,
696         chartypes/unicode.c, chartypes/usascii.c, encodings/singlebyte.c,
697         encodings/utf16.c, encodings/utf32.c, encodings/utf8.c,
698         include/parrot/chartype.h, include/parrot/encoding.h,
699         include/parrot/packfile.h:
701         Packfile axing.
703 2002-03-11 23:06  nicholas
705         * core.ops: Patch from Simon Glover <scog@roe.ac.uk>:
707           Core.ops documentation nits
709 2002-03-11 23:05  nicholas
711         * t/pmc/pmc.t: Patch from Simon Glover <scog@roe.ac.uk>:
713           Most of the PerlUndef tests in pmc.t appear to have been added
714         twice.
715           Enclosed patch removes the duplicates.
717 2002-03-10 23:40  nicholas
719         * t/pmc/perlstring.t: Patch from Simon Glover <scog@amnh.org>:
721          More tests for the PerlString test-suite.
723 2002-03-10 23:40  nicholas
725         * t/op/time.t: Patch from Simon Glover <scog@amnh.org>:
727         test for sleep with negative argument
729 2002-03-10 21:58  nicholas
731         * t/op/rx.t: Patch from Simon Glover <scog@amnh.org>:
733          Enclosed patch fixes up a few more holes in our test coverage.
735 2002-03-10 21:18  mrjoltcola
737         * classes/array.pmc, classes/default.pmc, classes/intqueue.pmc,
738         classes/parrotpointer.pmc, classes/perlarray.pmc,
739         classes/perlhash.pmc, classes/perlint.pmc, classes/perlnum.pmc,
740         classes/perlstring.pmc, classes/perlundef.pmc,
741         include/parrot/pmc.h, core.ops, pmc.c, vtable.tbl: Add size
742         argument to the init() vtable method so PMCs have the option to
743         know how to size themselves at creation. size could be N elements
744         or a byte count, depending on the PMC or it may simply be ignored.
745         Overloaded 'new' opcode for optional arg.
747 2002-03-10 21:15  mrjoltcola
749         * lib/Parrot/Assembler.pm: Minor patch to the assembler for the
750         new_p_ic_ic opcode to work same as new_p_ic (looks up a named
751         class).
753         Also added small hack for .sub directive (which simply translates
754         to a label, however we might eventually want to collect these to
755         validate bsr calls.
757 2002-03-10 15:09  ajgough
759         * types/: bignum.c, bignum.h, bignum_atest.pl, bignum_test.pl:
760         Added round_floor and round_ceiling.  3403 tests pass, none fail.
762 2002-03-10 03:56  ajgough
764         * types/: bignum.c, bignum_atest.pl: Added extended stuff to
765         divide, divide integer and remainder.  All filled in functions now
766         have special values capability.
768         Much remains to be done though, and the pdd needs to catch up.
770 2002-03-10 01:36  ajgough
772         * types/bignum.c: Added extended stuff to _add, _subtract.
774 2002-03-10 00:14  nicholas
776         * t/op/: integer.t, number.t: Patch from Simon Glover
777         <scog@roe.ac.uk>:
779          The enclosed patch fixes a few of the holes in our test coverage
780          uncovered by Josh Wilmes
782 2002-03-09 23:03  ajgough
784         * types/: bignum.c, bignum.h: Modified compare to work with
785         extended values.  Made a couple of changes here and there to allow
786         BN_comp to take a context, so that an is_zero check doesn't clobber
787         negative zeros.
789 2002-03-09 22:19  ajgough
791         * types/: bignum.c, bignum.h, bignum_atest.pl, bignum_test.pl:
792         Unary plus now copes with special values.
794 2002-03-09 04:25  ajgough
796         * types/: bignum.c, bignum_atest.pl, bignum_test.pl: Exception
797         traps and flags are now enabled and tested for all the standard
798         tests for all the functions which are currently implemented.  Test
799         harness faffed with to allow these to be tested.
801 2002-03-09 02:29  josh
803         * encodings/singlebyte.c, encodings/utf16.c, encodings/utf32.c,
804         encodings/utf8.c, chartypes/unicode.c, chartypes/usascii.c:
805         Re-indented
807 2002-03-09 02:22  josh
809         * config_h.in: tab-blastin'
811 2002-03-09 02:21  josh
813         * check_source_standards.pl: Play nicer with M-x compile- don't
814         bother giving line numbers for things you don't want to look at.
816 2002-03-09 02:10  josh
818         * examples/mops/mops.c: re-indented
820 2002-03-09 02:07  josh
822         * classes/pmc2c.pl: Use the usual header so that we can detect the
823         autogeneratedness.
825 2002-03-09 02:05  josh
827         * jit2h.pl: Avoid accidental /* inside a comment, which generates a
828         compiler warning
830 2002-03-09 01:59  josh
832         * io/: io.c, io_stdio.c, io_unix.c, io_win32.c: Another large
833         patch- re-indent io/*.c.
835 2002-03-09 01:52  ajgough
837         * types/: bignum.c, bignum.h, bignum_test.pl: Added handling of
838         special values to the string conversion functions, some other
839         functions now need context (to let -0 pass through really_zero)
840         which have also been added.
842 2002-03-09 01:47  josh
844         * test_main.c: Re-indented.
846 2002-03-09 01:41  josh
848         * rx.c: killed a stray tab
850 2002-03-09 01:38  josh
852         * rx.c: Re-indented.
854 2002-03-09 01:36  josh
856         * misc.c: Oops, some tabs remained- cleaned up.
858 2002-03-09 01:31  josh
860         * misc.c: Re-indented (major patch, sorry)
862 2002-03-09 00:59  josh
864         * embed.c: Re-indented.
866 2002-03-08 23:08  simon
868         * MANIFEST, docs/pdds/pdd10_embedding.pod,
869         docs/pdds/pdd11_extending.pod, docs/pdds/pdd12_assembly.pod,
870         docs/pdds/pdd13_bytecode.pod:
871         Placeholder PDDs.
873 2002-03-08 21:12  ajgough
875         * include/parrot/string.h: Added private flags to string.h, mostly
876         so that other GCed stuff can also have its very own private flags.
878 2002-03-08 19:53  simon
880         * MANIFEST:
881         Great PDD Renaming
883 2002-03-08 19:41  robert
885         * docs/pdds/: pdd0.pod, pdd1.pod, pdd2.pod, pdd4.pod, pdd5.pod,
886         pdd6.pod, pdd7.pod: Renamed...
888 2002-03-08 18:51  simon
890         * MANIFEST, docs/pdds/pdd08_keys.pod:
891         Add keys PDD.
893 2002-03-08 18:20  ajgough
895         * types/: bignum.c, bignum.h, bignum_atest.pl, bignum_test.pl:
896         Introduced exception handlers and exception flags to context, will
897         allow support of extended standard.  Unified exception checking
898         mechanism (sort of) and made minimal changes to bulk of code to use
899         this.  Tests pass, I'm happy, and further changes will happen more
900         gradually.
902 2002-03-08 04:38  josh
904         * interpreter.c, string.c, testparrotsizes_c.in: More indenting
905         tweaks.
907 2002-03-08 04:37  josh
909         * platforms/: generic.c, generic.h, win32.c, win32.h: Re-indented
911 2002-03-08 04:24  josh
913         * embed.c: A bit more re-indenting
915 2002-03-08 04:20  josh
917         * embed.c: Indenting fixes
919 2002-03-08 04:14  josh
921         * jit.c: Re-indented (run_indent.pl)
923 2002-03-08 03:36  josh
925         * ops2c.pl: Fix the line numbers which get reported while compiling
926         core_ops*.c
928 2002-03-08 03:22  josh
930         * packfile.c: -1552 cc: WARNING File = packfile.c, Line = 1537
931         The variable "type" is set but never used.
933               opcode_t type;
935 2002-03-08 03:04  josh
937         * resources.c, stacks.c, string.c, io/io.c, io/io_stdio.c,
938         io/io_unix.c: Clean up unused and set-but-not-referenced variables
939         noticed by the sgi compiler.
941 2002-03-08 03:02  josh
943         * misc.c: Fixes this warning (SGI) cc-1188 cc: WARNING File =
944         misc.c, Line = 417   The indicated type qualifier is meaningless on
945         cast type.
948         (const char) 'f');
949                                                                          ^
951 2002-03-08 02:55  josh
953         * Makefile.in: Clean up one of the object files it was missing
955 2002-03-08 01:15  josh
957         * include/parrot/interpreter.h: Fixes the following error (tcc):
958         "./include/parrot/interpreter.h", line 27: Error:   [Syntax]: Extra
959         comma at end of list.
961 2002-03-06 22:15  simon
963         * stacks.c:
964         Tidy up stack chunk allocation.
966 2002-03-06 21:00  simon
968         * interpreter.c:
969         Create strings only once we've got string register heads set up.
971 2002-03-06 20:31  simon
973         * classes/perlarray.pmc:
974         malloc(0) considered harmful.
976 2002-03-06 20:24  simon
978         * include/parrot/resources.h:
979         I like it when Parrot compiles.
981 2002-03-06 17:02  dan
983         * classes/array.pmc: Changed over to data pointing to a Buffer.
985 2002-03-06 15:45  dan
987         * core.ops, embed.c, exceptions.c, interpreter.c, memory.c,
988         packfile.c, pbc2c.pl, pdump.c, resources.c,
989         include/parrot/interpreter.h, include/parrot/memory.h,
990         include/parrot/resources.h, io/io.c: Three quick things: 1) INTVALs
991         and opcode_t > longs will now be even more suspect than what they
992         were beforehand.  2) Feel free to bicker with names.  I don't think
993         we've come to *any* sort of agreement with these, although we
994         really, really, need to.  3) I forget the third thing.  4) But I
995         thought of a fourth.  5) I've now remembered the third thing: IIRC,
996         ANSI C states that enums will fit within the smallest type (int or
997         greater) that can hold the values. Is that actually correct, and
998         does it state whether unsigned is preferred to signed for
999         non-negative enums? 6) Since I'm no longer constrained by "three"
1000         or "quick", I'm going size_t happy for a lot of memory-related
1001         storage.  (That's good.  No sense wasting the size or performance
1002         of an UINTVAL for strange values of UINTVAL.)  I'm also using it in
1003         a couple other internal things (like the GC stat counters, seen
1004         here).  Size and performance, again, and unpromotable to a bigint,
1005         so we know that we (theoretically) will wrap.  However, size_t
1006         isn't the best choice for the type.  (Not that there's anything
1007         wrong with size_t, just that it shouldn't be called size_t.)  Any
1008         thoughts?  I was thinking of just doing unsigned int, because,
1009         IIRC, int is usually the natural word size, and will be most
1010         efficient.  Thoughts? 7) I forgot what the fourth thing I thought
1011         of was while writing down the others.  Sorry.
1013         Courtesy of  "Bryan C. Warnock" <Bryan.Warnock@raba.com>
1015 2002-03-06 15:26  dan
1017         * memory.c, resources.c, string.c, classes/perlarray.pmc,
1018         include/parrot/resources.h: Now we allocate generic Buffers from
1019         arenas too
1021 2002-03-05 21:42  brentdax
1023         * Configure.pl: Minor cleanup and enhancements.
1025 2002-03-05 21:25  dan
1027         * resources.c: non-special GC now works with PMCs
1029 2002-03-05 19:48  brentdax
1031         * Configure.pl, DEVELOPING, MANIFEST, config_h.in, test_main.c:
1032         Parrot now "knows" if it's a development version or a release
1033         version.  See the instructions in the DEVELOPING file.
1035 2002-03-05 18:05  brentdax
1037         * MANIFEST: pasm.vim wasn't in the manifest.
1039 2002-03-05 17:57  simon
1041         * Makefile.in:
1042         Now, through much evilness, make distclean and make cvsclean work
1043         again.
1045 2002-03-05 17:38  dan
1047         * memory.c, resources.c, docs/pdds/pdd09_gc.pod,
1048         include/parrot/interpreter.h, include/parrot/pmc.h,
1049         include/parrot/resources.h: PMC tracing complete
1051 2002-03-05 16:28  gregor
1053         * languages/jako/Makefile.in:
1054         Changed -I ../../ to -I ../../lib when calling the assembler, since
1055         the perl modules have moved.
1057 2002-03-05 05:30  josh
1059         * packfile.c, pdump.c, pmc.c, register.c, rxstacks.c, stacks.c,
1060         string.c: More re-indenting via run_indent.pl.
1062 2002-03-05 05:17  josh
1064         * runops_cores.c, trace.c, warnings.c: Re-indented (via
1065         run_indent.pl)
1067 2002-03-05 04:26  josh
1069         * key.c, memory.c, test_gnuc.c, testparrotfuncptr.c: Re-indented
1070         using run_indent.pl and some minor tweaking.
1072 2002-03-05 04:21  josh
1074         * chartype.c, encoding.c, exceptions.c, global_setup.c,
1075         interpreter.c: Re-indented using run_indent.pl and some minor
1076         tweaking.
1078 2002-03-05 03:30  josh
1080         * include/parrot/trace.h: These functions are no longer used (or
1081         even implemented)
1083 2002-03-04 18:21  josh
1085         * include/parrot/trace.h: Fix a typo in the argument type.
1087         Patch from <daniel.ritz@gmx.ch>
1089 2002-03-04 03:39  josh
1091         * check_source_standards.pl, jit2h.pl: Add the "autogenerated file"
1092         header to jit_struct.h so we don't try to check it for conformance.
1093          (no way will it conform)
1095 2002-03-04 03:38  josh
1097         * include/parrot/: chartype.h, interpreter.h, io.h, rx.h, trace.h,
1098         unicode.h, warnings.h: Remove some remaining tabs and split some of
1099         the remaining long lines.
1101 2002-03-04 03:17  josh
1103         * include/parrot/: chartype.h, embed.h, encoding.h, exceptions.h,
1104         global_setup.h, interpreter.h, io.h, jit.h, key.h, memory.h,
1105         misc.h, op.h, oplib.h, packfile.h, parrot.h, pmc.h, register.h,
1106         resources.h, runops_cores.h, rx.h, rxstacks.h, stacks.h, string.h,
1107         string_funcs.h, trace.h, warnings.h: This is the first batch of
1108         re-indenting.   This patch is the result of running run_indent.pl
1109         on the header files and manually tweaking the results where errors
1110         were noticed.   This should get us closed, but some refinement may
1111         follow.
1113 2002-03-04 03:06  josh
1115         * resources.c: Return without parens, as mentioned in PDD 7
1117 2002-03-04 03:01  josh
1119         * core.ops: POD fixes.
1121 2002-03-04 02:58  josh
1123         * config_h.in, ops2c.pl, classes/pmc2c.pl: More consistent headers
1124         on autogenerated files- used by the check_source_standards.pl
1125         script (for now) to exempt autogenerated files from the checks.
1127 2002-03-04 02:51  josh
1129         * embed.c, key.c, pmc.c, resources.c, rx.c, testparrotfuncptr.c,
1130         warnings.c: Added the editor "boilerplate" footer to a few files
1131         which were missing it.
1133 2002-03-04 02:34  josh
1135         * check_source_standards.pl, interpreter.c, jit.c, test_gnuc.c,
1136         include/parrot/io.h, include/parrot/parrot.h, io/io_win32.c: Fixes
1137         c preprocessor directive indentation to comply with pdd 7.
1139         (also fixes the check for this indentation in
1140         check_source_standards.pl)
1142 2002-03-04 02:32  josh
1144         * lib/Parrot/Test.pm: Fixes this error seen on perl 5.005_02 on
1145         irix.
1147         perl t/harness t/op/basic..........Use of uninitialized value at
1148         lib/Parrot/Test.pm line 81.  #     Failed test (t/op/basic.t at
1149         line 6) #          got: undef #     expected: ''
1151 2002-03-04 02:30  josh
1153         * MANIFEST, run_indent.pl, docs/pdds/pdd07_codingstd.pod,
1154         docs/pdds/pdd7.pod: Added documentation and code to invoke the GNU
1155         "indent" program to enforce some of the code style standards
1156         outlined in PDD 7.
1158         Usage: ./run_indent.pl <file>
1160 2002-03-03 19:04  simon
1162         * examples/mops/mops.c:
1163         Let's make it compile, huh?
1165 2002-03-03 19:04  simon
1167         * examples/mops/mops.cs:
1168         I R AN IDIOT
1170 2002-03-03 18:11  simon
1172         * examples/mops/mops.cs, examples/mops/mops.il, MANIFEST:
1173         Added C# and MS-IL versions of mops tester.
1175 2002-03-03 14:52  simon
1177         * core.ops:
1178         Add a sub() op to make mops_p work.
1180 2002-03-02 18:12  nicholas
1182         * examples/mops/mops.c, include/parrot/embed.h,
1183         include/parrot/interp_guts.h, include/parrot/jit.h,
1184         include/parrot/misc.h, include/parrot/packfile.h,
1185         include/parrot/rx.h, include/parrot/warnings.h,
1186         platforms/generic.c, platforms/generic.h, platforms/win32.c,
1187         platforms/win32.h, types/bignum.c, types/bignum.h: Patch from Josh
1188         Wilmes to add the emacs and vim "ending boilerplate" that sets the
1189         indent variables correctly.
1191 2002-03-02 17:41  nicholas
1193         * resources.c: Patch from Josh Wilmes <josh@hitchhiker.org>: Little
1194         patch to fix a compiler warning.
1196 2002-03-01 22:35  dan
1198         * memory.c, resources.c, include/parrot/pmc.h,
1199         include/parrot/resources.h: PMCs now come out of arenas.
1201 2002-03-01 06:15  dan
1203         * string.c:
1204         A non-existing buffer + a non-existing buffer should be a
1205         non-existing buffer, not "", which is really '\0'.
1207         Courtesy of "Bryan C. Warnock" <Bryan.Warnock@raba.com>
1209 2002-03-01 06:02  dan
1211         * classes/: array.pmc, perlarray.pmc, perlhash.pmc, perlstring.pmc:
1213         TMTOWTDI, but strcmp is probably the worse.
1215         Courtesy of "Bryan C. Warnock" <Bryan.Warnock@raba.com>
1217 2002-03-01 02:32  brentdax
1219         * embed.c: Debug mode now prints out the GC data.
1221 2002-02-28 23:44  dan
1223         * core.ops, resources.c, include/parrot/resources.h: Added collect
1224         and sweep opcodes
1226 2002-02-28 22:58  dan
1228         * docs/pdds/: pdd06_pasm.pod, pdd6.pod: Add docs for interpinfo
1229         opcode
1231 2002-02-28 22:50  dan
1233         * core.ops, interpreter.c, resources.c,
1234         examples/assembly/life.pasm, include/parrot/interpreter.h,
1235         include/parrot/resources.h: Add some stat gathering to the resource
1236         allocation code.
1238         Also add an interpreter info retrieval op, and teach it about the
1239         different things it can retrieve.
1241         Finally, add some stat info to life.pasm as an example
1243 2002-02-28 21:27  dan
1245         * editor/pasm.vim: VIM mode commands for parrot assembly files
1247         Courtesy of Scott Beck <scott@gossamer-threads.com>
1249 2002-02-28 19:20  dan
1251         * examples/assembly/life.pasm: Fix a creeping string length leak.
1253         Courtesy of  "Bryan C. Warnock" <Bryan.Warnock@raba.com>
1255 2002-02-28 18:26  dan
1257         * string.c: When you clone a constant, it ain't constant no mo'.
1259         Cocurtesy of "Bryan C. Warnock" <Bryan.Warnock@raba.com>
1261 2002-02-28 00:51  dan
1263         * MANIFEST: Add missing files
1265         Courtesy of "Bryan C. Warnock" <Bryan.Warnock@raba.com>
1267 2002-02-28 00:49  dan
1269         * docs/pdds/: pdd0.pod, pdd00_pdd.pod: The pod version of PDD 0 in
1270         CVS seems to have several chunks missing out of it, too.  This
1271         patch is simply an administrative patch, with the differences
1272         between my last version, and the one currently in there.  There
1273         will be a forthcoming patch for some minor tweaking to the PDD, but
1274         I wanted a common baseline before I make any (potential) semantic
1275         changes.
1277         There's only one semi-major change, which noone needs to worry
1278         about just yet.  That's a change from PDD Format 1 to PDD Format
1279         6.0 - rationale can be found under 'Standard (Version #)' of the
1280         STANDARDS TRACK infomation.  Don't worry about this yet, because it
1281         should be 6.0.0, and we need to discuss Perl versus Parrot with
1282         PDDs.
1284         Courtesy of "Bryan C. Warnock" <bwarnock@raba.com>
1286 2002-02-28 00:27  dan
1288         * packfile.c, resources.c, examples/assembly/life.pasm,
1289         include/parrot/register.h, include/parrot/resources.h,
1290         include/parrot/string.h: First pass of semi-full GC. (Strings only,
1291         no PMCs yet)
1293         This patch now implements a real copying collector. We trace from
1294         our root set and compact the contents of Buffer structs.
1296         Todo:
1298         *) It's very STRING-centric and doesn't handle memory stuffed in
1299         Buffers.  But, then, we don't have pool allocation for Buffers
1300         either, and we need to have that soonish for this to work.
1302         *) Doesn't trace PMCs, so if you trigger a collection and there's
1303         memory or STRING structs only accessible from PMCs, you'll fail
1304         horribly. That needs fixing too
1306         *) Better algorithms for when to trace or collect vs when to just
1307         go allocate more memory from the system. Should probably be more
1308         cache friendly too.
1310 2002-02-27 21:04  dan
1312         * jit.c, memory.c, resources.c, string.c, docs/pdds/pdd09_gc.pod,
1313         examples/assembly/life.pasm, include/parrot/resources.h,
1314         include/parrot/string.h, include/parrot/string_funcs.h,
1315         jit/i386/core.jit: Start of GC in
1317 2002-02-26 16:41  dan
1319         * jit/i386/string.jit: Fix a typo
1321         Courtesy of Jonathan Stowe <gellyfish@gellyfish.com>
1323 2002-02-26 16:37  dan
1325         * interpreter.c: Fix solaris test failures
1327         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1329 2002-02-26 16:36  dan
1331         * include/parrot/: interp_guts.h, io.h, packfile.h, rx.h,
1332         unicode.h, warnings.h: Fixes various warts in header files, such
1333         as: * macros   -added parens to prevent problems with operator
1334         precedence   -removed ; at end * removed SSIZE_MAX, since ssize_t
1335         is no longer used * added some more INLINE definitions for MSVC and
1336         C99 compilers
1338         Courtesy of Brian Lee Ray <blray@ualr.edu>
1340 2002-02-26 16:20  dan
1342         * Configure.pl: Turns out we were using a warning flag which
1343         doesn't exist on 2.7.  Simple tweak though:
1345         Courtesy of  Josh Wilmes <josh@hitchhiker.org>
1347 2002-02-25 22:58  dan
1349         * MANIFEST, docs/pdds/pdd09_gc.pod: Add docs of GC
1351 2002-02-25 17:36  dan
1353         * include/parrot/pmc.h: Fix the bits
1355 2002-02-23 21:57  dan
1357         * include/parrot/resources.h: Another 1.5% never hurts
1359 2002-02-23 21:44  dan
1361         * global_setup.c, memory.c, resources.c, string.c,
1362         include/parrot/resources.h: Allocate STRING headers from an arena
1363         with freelist rather than with the system malloc. First step in a
1364         good (or even a bad) GC system.
1366 2002-02-23 20:37  brentdax
1368         * misc.c: lint has been doing Evil and Wrong things to misc.c.
1370 2002-02-22 14:59  ajgough
1372         * types/bignum.c: BN_multiply split into BN_multiply and
1373         BN_imultiply, the internal version to be used by idivide so that
1374         rounding isn't performed during intermediate stages of division.
1376         following test scripts now all pass: divide divideint add multiply
1377         subtract remainder compare rounding plus minus (these are all the
1378         operations currently implemented, rescale and power must still be
1379         written, so don't pass right now).
1381 2002-02-22 13:13  ajgough
1383         * types/bignum_atest.pl: Test harness modified to understand
1384         comments better, and be able to run unary (and rounding) tests.
1385         Currently a few rounding tests fail, which are being investigated.
1387 2002-02-22 01:41  dan
1389         * key.c: Although there's more work being done on the key stuff and
1390         this isn't the final fix, applying this patch does get parrot to
1391         build with two more compilers, so it's probably worthwhile.
1393         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1395 2002-02-22 00:53  dan
1397         * config_h.in, misc.c, include/parrot/embed.h,
1398         include/parrot/exceptions.h, include/parrot/interpreter.h,
1399         include/parrot/io.h, include/parrot/parrot.h, include/parrot/pmc.h,
1400         include/parrot/resources.h, include/parrot/rx.h,
1401         include/parrot/string.h, include/parrot/unicode.h,
1402         include/parrot/warnings.h, io/io_stdio.c, io/io_unix.c,
1403         io/io_win32.c: Fixes the following (lcc) warnings:
1405           - interpreter.c:470: warning: expression with no effect elided
1406                (related to the way warnings flags were defined)
1408           - misc.c:352: warning: unreachable code
1409             misc.c:483: warning: unreachable code
1410                (i introduced these with some overzealous de-linting)
1412           - numerous warnings like this:
1413             io/io_unix.c:383: warning: conversion from pointer to void' to
1414         pointer to
1415             pointer to struct _ParrotIO function(pointer to struct
1416         Parrot_Interp,pointer
1417             to struct _ParrotIOLayer,pointer to const char,pointer to const
1418         char,pointer
1419             to pointer to void)' is compiler dependent
1421         Fixes the following nits:    - remove bad indenting (tabs) in the
1422         includes
1424         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1426 2002-02-21 21:12  ajgough
1428         * types/: bignum.c, bignum.h: These might look like massive
1429         changes, but really it's just he imposition of coding standards.
1430         The file still isn't entirely compliant, but is now much more so.
1432         Also changed:
1434          o a few more comments
1435          o BN_compare uses internal BN_comp to compare
1436          o lost_digits behaviour is now correct (test harness modified to
1437         test
1438            this).
1440         All binary functions now pass all the tests in the basic standard.
1441         Unary functions not yet tested, will be soon.
1443 2002-02-21 18:20  dan
1445         * lib/Parrot/OpTrans/CPrederef.pm: The "inline" bit of that patch
1446         was no longer needed, and the ssize_t thing really shouldn't be
1447         needed either.
1449         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1451 2002-02-21 18:15  dan
1453         * Configure.pl, embed.c, pdump.c, hints/mswin32.pl,
1454         include/parrot/parrot.h: this patch adds support for the freely
1455         available borland c++ 5.5.1 compiler
1457         depends on: - josh's patch to remove ssize_t from CPrederef.pm -
1458         working borland compiler (compiler must know where to find headers
1459         and libs) - Perl's Config.pm modified to use cc='bcc32.exe' not of
1460         cc='cl.exe' - a working make utility (borland make doesn't work,
1461         nmake does)
1463         changes: - add bcc in hints/mswin32.pl - clean up for msvc++ in
1464         hints/mswin32.pl - remove a space from Configure.pl (very very
1465         important for bcc) - add a O_BINARY flag to open() in pdump.c,
1466         embed.c (required by bcc) - define O_BINARY 0 when it's not defined
1467         (win32 knows it, linux not)
1469         and the why: - parrot is MUCH faster when compiled with borland c
1470         (make test on p2-450, 320MB):   * msvc++: 313 seconds   * bcc: 251
1471         seconds
1473         Courtesy of "Ritz Daniel" <daniel_ritz@gmx.ch>
1475 2002-02-21 18:09  dan
1477         * jit.c, testparrotfuncptr.c, trace.c, classes/array.pmc, io/io.c,
1478         io/io_stdio.c, io/io_unix.c, io/io_win32.c: This patch removes
1479         cuddled elses, as required by PDD 7.
1481         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1483 2002-02-21 18:04  dan
1485         * MANIFEST, Makefile.in, check_source_standards.pl: This patch adds
1486         a new Makefile target called "check_source".  This target scans all
1487         the .c and .h files in the directory and checks for conformance to
1488         a number of the standards outlined in PDD 7.
1490         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1492 2002-02-21 16:38  ajgough
1494         * types/: bignum.c, bignum.h, bignum_atest.pl: Modifications to
1495         allow arithmetic with numbers with a fixed fractional part, buffer
1496         structures now more ready to be integrated into the parrot memory
1497         allocation game, test harness modified to allow lost_digits
1498         condition to be checked.  Some more comments.
1500 2002-02-21 15:53  simon
1502         * io/io_unix.c:
1503         Fix typo
1505         Courtesy of: "David M. Lloyd" <dmlloyd@tds.net>
1507 2002-02-20 16:41  dan
1509         * MANIFEST, docs/pdds/pdd_template.pod: Added in template PDD
1511 2002-02-18 18:25  dan
1513         * MANIFEST, lib_deps.pl: Added in lib_deps.pl and MANIFEST change.
1515         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1517 2002-02-18 18:21  dan
1519         * lib/Parrot/OpTrans/CPrederef.pm: this is a quick fix for
1520         CPrederef.pm to make to generated code compile with the MS
1521         compiler.
1523         fixes: - ms compiler allows inline only for c++, for c there's
1524         __inline - ms header files knows nothing about ssize_t
1526         Courtesy of "Ritz Daniel" <daniel_ritz@gmx.ch>
1528 2002-02-18 17:49  dan
1530         * MANIFEST: Add the PDDs
1532 2002-02-18 17:47  dan
1534         * docs/pdds/: pdd07_codingstd.pod, pdd7.pod: Added in PDD 7, the
1535         coding standards PDD.
1537 2002-02-18 17:40  dan
1539         * docs/pdds/: pdd06_pasm.pod, pdd6.pod: Updated to latest rev
1541 2002-02-18 12:41  gregor
1543         * test_main.c:
1544         Remove warning about exit() not being declared.
1546 2002-02-18 08:29  simon
1548         * misc.c, warnings.c, include/parrot/misc.h,
1549         include/parrot/warnings.h:
1550         This patch adds some missing const's to silence a number of gcc
1551         warnings.
1553         Courtesy of: Josh Wilmes <josh@hitchhiker.org>
1555 2002-02-18 08:26  simon
1557         * Makefile.in, core.ops, embed.c, interpreter.c, key.c, misc.c,
1558         ops2c.pl, packfile.c, pdump.c, stacks.c, string.c,
1559         classes/array.pmc, classes/perlarray.pmc, classes/perlhash.pmc,
1560         include/parrot/parrot.h, include/parrot/rx.h,
1561         include/parrot/stacks.h, io/io_stdio.c, io/io_unix.c,
1562         lib/Parrot/OpTrans/CPrederef.pm:
1563            - add makefile target and script to test for external libc
1564         dependencies
1565            - fix return values in hash and array PMCs (returning 0 in a
1566         void func)
1567            - remove unnecessary data pointer <=> function pointer
1568         conversions
1569              outside of the JIT code.
1570            - move the definition of the "INLINE" macro out of the rx header
1571         and make
1572              available for general use on C++ compilers and gcc.
1573            - remove a few unused variables
1575         Courtesy of: Josh Wilmes <josh@hitchhiker.org>
1577 2002-02-17 16:29  simon
1579         * docs/pdds/: pdd0.pod, pdd00_pdd.pod, pdd01_overview.pod,
1580         pdd02_vtables.pod, pdd04_datatypes.pod, pdd05_opfunc.pod,
1581         pdd06_pasm.pod, pdd1.pod, pdd2.pod, pdd4.pod, pdd5.pod, pdd6.pod:
1582         We're organised and responsible. Honest.
1584 2002-02-17 02:46  sfink
1586         * Makefile.in: Remove $^ for nmake compatibility.
1588 2002-02-16 09:20  brentdax
1590         * config_h.in, test_main.c, include/parrot/chartype.h,
1591         include/parrot/embed.h, include/parrot/encoding.h,
1592         include/parrot/string.h, include/parrot/string_funcs.h: Better
1593         embedding exposure and hiding, part 1.
1595 2002-02-16 04:38  dan
1597         * Makefile.in, core.ops, interpreter.c, pbc2c.pl, pdump.c,
1598         runops_cores.c, docs/running.pod, lib/Parrot/OpTrans/C.pm,
1599         lib/Parrot/OpTrans/CGoto.pm, lib/Parrot/OpTrans/CPrederef.pm:
1600         Anyway, here's a patch to repair pbc2c.pl, combined with removing
1601         typecasts in various places throughout the code. It probably won't
1602         work for Windows yet. The libparrot.a target might need to be
1603         modified to at least prevent it from confusing make on Windows; I
1604         don't know.
1606         Preliminary instructions for using pbc2c.pl are in
1607         docs/running.pod.  I'll try to do better later.
1609         Courtesy of Steve Fink <steve@fink.com>
1611 2002-02-16 04:15  dan
1613         * exceptions.c, include/parrot/exceptions.h: Warnings cleaned up
1615         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1617 2002-02-16 00:03  simon
1619         * classes/: perlarray.pmc, perlhash.pmc:
1621         pmc is already defined!
1623 2002-02-15 23:20  brentdax
1625         * Configure.pl, config_h.in, exceptions.c, pmc.c,
1626         include/parrot/exceptions.h: Far more informative panic messages.
1628 2002-02-15 03:24  dan
1630         * lib/Parrot/: Op.pm, OpsFile.pm, OpTrans/CPrederef.pm: Here's a
1631         much more extensive patch that fixes it to work properly, and
1632         deletes a bazillion casts as well.  It also points to the question
1633         "can we make the byte_code be an opcode_t* already?"
1635         Oh, and it makes some of the formatting prettier, so it's gotta be
1636         good.
1638         Courtesy of * Steve Fink <steve@fink.com>
1640 2002-02-15 02:30  dan
1642         * Makefile.in, core.ops, embed.c, misc.c, packfile.c, rx.ops,
1643         stacks.c: I've tweaked the "lint" target somewhat and fixed a few
1644         of the things it finds.  Attaching the patch as well as the current
1645         lint output.
1647         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1649 2002-02-15 01:59  dan
1651         * t/pmc/: array.t, perlhash.t: Disable non-functional bits for the
1652         moment.
1654 2002-02-15 01:48  dan
1656         * t/pmc/perlarray.t: Skip tests for features that need twiddling
1658 2002-02-15 01:40  dan
1660         * t/op/rx.t: Skip a test that's waiting for us to rejig some array
1661         things
1663 2002-02-14 23:30  dan
1665         * resources.c: Added comment for buffer tag routine. D'oh!
1667 2002-02-14 23:28  dan
1669         * resources.c, include/parrot/resources.h: Added buffer mark
1670         routine for GC
1672 2002-02-14 23:17  dan
1674         * memory.c, classes/array.pmc, classes/perlarray.pmc,
1675         include/parrot/memory.h, include/parrot/string.h, t/pmc/perlhash.t:
1676         Rejigged memory system a bit. Now should be ready for the horror
1677         that is garbage collection.
1679 2002-02-14 19:33  gregor
1681         * ops2c.pl, include/parrot/oplib.h:
1682         Added code to automatically generate a function within an oplib to
1683         lookup opinfos given the op name. This will come in handy in future
1684         when we want to twiddle opcode tables at run time and possibly at
1685         startup time.
1687 2002-02-14 19:25  gregor
1689         * examples/assembly/queens.pasm:
1690         Regenerated queens.pasm from queens.jako since the clone_* stuff
1691         went away.
1693 2002-02-14 17:12  dan
1695         * resources.c, include/parrot/resources.h: Finished up the
1696         interface for memory and tracked interpreter thingies.
1698 2002-02-14 16:53  dan
1700         * memory.c, include/parrot/memory.h: intercept free and realloc
1702 2002-02-14 05:53  dan
1704         * interpreter.c, runops_cores.c: The type changes in struct
1705         Packfile break the pointer math used in a few places to calculate
1706         the address of the end of the loaded byte code. This causes
1707         segfaults in build_asm in jit.c when using -j. It also breaks the
1708         bounds checking on opcode address in runops_slow_core.
1710         The patch adds the necessary cast to correct the code_end
1711         calculations.
1713         Courtesy of Jason Gloudon <perl@gloudon.com>
1715 2002-02-14 01:01  ajgough
1717         * types/: bignum.c, bignum.h, bignum_test.pl: Added support for
1718         BigInt operations (I think), tests for normal operation continue to
1719         pass.  Also a shed load of comments.
1721 2002-02-13 01:34  ajgough
1723         * types/: bignum.c, bignum.h, bignum_atest.pl, bignum_test.pl: This
1724         is a (mostly) working bignumber library.  There remains much work
1725         to do though, some functions are not yet implemented and headers
1726         need to find their way to the correct place RSN.  Also support for
1727         bigints and a sensible error reporting mechanism are needed.
1729 2002-02-12 18:51  dan
1731         * misc.c: Fix some warnings
1733 2002-02-12 17:10  dan
1735         * misc.c: Run through indent -kr -nce so I can read it
1737 2002-02-12 16:49  dan
1739         * misc.c: Need standard header/footer comments
1741 2002-02-11 20:32  simon
1743         * classes/array.pmc:
1744         get and set pmc methods.
1746 2002-02-11 20:19  simon
1748         * classes/array.pmc:
1749         Maybe the keys aren't integer...
1751 2002-02-11 20:03  simon
1753         * core.ops, vtable.tbl, classes/default.pmc:
1754         {g,s}et_pmc_keyed
1756 2002-02-11 19:07  simon
1758         * vtable.tbl, classes/default.pmc:
1759         Add set_pmc. Usee with caution.
1761 2002-02-11 18:20  dan
1763         * classes/: array.pmc, perlarray.pmc: Patch array classes to
1764         compile
1766 2002-02-11 17:59  simon
1768         * core.ops, embed.c, global_setup.c, key.c, rx.ops,
1769         classes/perlarray.pmc, classes/perlhash.pmc:
1770         Make it compile.
1772 2002-02-11 17:57  simon
1774         * packfile.c, include/parrot/packfile.h:
1775         Reduce warnings
1777         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
1779 2002-02-11 17:55  dan
1781         * docs/parrot_assembly.pod: Document some key ops
1783 2002-02-11 09:20  brentdax
1785         * pmc.c, include/parrot/exceptions.h: Adding a panic ought to be
1786         disgustingly easy.
1788 2002-02-11 00:34  simon
1790         * core.ops, include/parrot/exceptions.h:
1791         This is what keyed set ops look like. Remember, however, that for
1792         keyed functions, all operands must be PMCs. set(PMC, PMC, INT)
1793         means $1 = $2[$3], not $1[$2] = $3. set(PMC,PMC,PMC) is so
1794         obviously ambiguous that you ought to use the 4-arg version
1795         instead.
1797 2002-02-10 23:12  jgoff
1799         * classes/: array.pmc, perlarray.pmc: Properly allocate
1800         SELF->data's array of PMC* data in array and perlarray.pmc.  This
1801         isn't tested yet, but should be fairly straightforward.  PerlHash
1802         needs to be finished before the system will compile again, and that
1803         should be done in the next few days.
1805 2002-02-09 04:46  jgoff
1807         * classes/: array.pmc, default.pmc, intqueue.pmc,
1808         parrotpointer.pmc, perlarray.pmc, perlhash.pmc, perlundef.pmc:
1809         Added basic _keyed member functions.  Unfortunately this still
1810         doesn't fix the problems that are causing the build to break. It's
1811         a start though. I'm not implementing the PMC add functions just
1812         yet.
1814 2002-02-08 15:59  simon
1816         * classes/array.pmc:
1817         Some more work on getting the array stuff up to date.
1819 2002-02-08 12:23  simon
1821         * classes/array.pmc, classes/perlhash.pmc, include/parrot/key.h,
1822         lib/Parrot/Vtable.pm:
1823         Got array->get_integer_keyed doing what I think it ought to. One
1824         down, all the rest to go.
1826 2002-02-08 11:47  simon
1828         * vtable.tbl:
1829         Although I didn't intend it to be quite that broken...
1831 2002-02-08 11:42  simon
1833         * vtable.tbl, include/parrot/parrot.h, lib/Parrot/Vtable.pm:
1834         Completely break Parrot, but at least we get the key stuff right
1835         for now.
1837 2002-02-08 06:25  dan
1839         * hints/darwin.pl: Silences the warning about passing in
1840         -flat_namespace to the compile.  That's a link-only flag.
1842 2002-02-08 04:52  jgoff
1844         * classes/: array.pmc, default.pmc, intqueue.pmc,
1845         parrotpointer.pmc, perlarray.pmc, perlhash.pmc, perlint.pmc,
1846         perlnum.pmc, perlstring.pmc, perlundef.pmc: Filled in missing
1847         return values in *.pmc, added some missing casts to the repeat_foo
1848         members, and deleted the _index members from the perlscalar
1849         classes.  Basic cleanup, and getting ready for _keyed functions.
1851 2002-02-07 04:49  mrjoltcola
1853         * examples/assembly/bsr.pasm: Elaborated on the bsr/ret example,
1854         added a nested subroutine call.
1856 2002-02-07 04:32  jgoff
1858         * vtable.tbl, lib/Parrot/Vtable.pm: vtable.tbl got some minor
1859         changes in order to give the whitespace rules a little workout, and
1860         do a little bit more testing. No actual structural changes were
1861         made.  lib/Parrot/Vtable.pm got an interface change, and more
1862         importantly should be ready to support the new '_keyed' attribute,
1863         which will work roughly thus: PMC* src_value gets remapped to 'PMC*
1864         src_value' followed by 'KEY* src_key'.  This will be how the new
1865         _keyed operators will function, and those should be written within
1866         a few days.
1868 2002-02-06 18:00  doughera
1870         * misc.c: Change C++-style comments to C comments (again).  Remove
1871         unused perl5 code that was in #if 0/#endif.
1873 2002-02-06 17:59  doughera
1875         * warnings.c: Add trailing newline.
1877 2002-02-06 04:14  mrjoltcola
1879         * include/parrot/io.h, io/io.c: Minor cleanup.
1881 2002-02-06 03:11  mrjoltcola
1883         * examples/assembly/io1.pasm, io/io.c, io/io_win32.c: Tied up a
1884         couple of loose end in win32 IO stuff. Open behaves now but needs
1885         more work.
1887 2002-02-05 21:02  brentdax
1889         * classes/pmc2c.pl: Length on whoami init was always 7--a problem
1890         which showed up in Purify builds.
1892 2002-02-05 17:15  simon
1894         * misc.c:
1895         Warning fixes.
1897         Courtesy of: Jonathan Stowe <gellyfish@gellyfish.com>
1899 2002-02-05 17:08  doughera
1901         * misc.c: Avoid C++-style comments.
1903 2002-02-05 17:07  doughera
1905         * lib/Parrot/Jit/sun4Generic.pm: Generated assembly programs were
1906         not valid assembler for Sun's /usr/ccs/bin/as.  Now they are,
1907         thanks to Jason Gloudon <perl@gloudon.com>.
1909 2002-02-05 14:04  simon
1911         * misc.c:
1912         Make the problem different, perhaps even better.
1914 2002-02-05 13:49  simon
1916         * misc.c:
1917         Possibly fix a `short int' is promoted to `int' when passed through
1918         `...' scary error, possibly make things absolutely worse.
1920 2002-02-05 13:15  simon
1922         * Configure.pl:
1923         Placate Tru64.
1925 2002-02-05 13:12  simon
1927         * warnings.c:
1928         Not going to get far without this one...
1930 2002-02-05 11:41  simon
1932         * string.c:
1933         Don't barf when handed null pointers.
1935 2002-02-05 10:04  simon
1937         * misc.c, include/parrot/misc.h:
1938         Fix some trivial bugs in warnings code.
1940 2002-02-05 09:27  simon
1942         * misc.c:
1943         Oops, forgot this one; also added %P support.
1945 2002-02-05 09:20  simon
1947         * MANIFEST, Makefile.in, core.ops, embed.c, interpreter.c,
1948         test_main.c, classes/perlundef.pmc, include/parrot/embed.h,
1949         include/parrot/interpreter.h, include/parrot/misc.h,
1950         include/parrot/parrot.h, include/parrot/warnings.h:
1951         Warnings support.
1953         Courtesy of: Brent Dax <brentdax@cpan.org>
1955 2002-02-05 05:41  jgoff
1957         * vtable.tbl, lib/Parrot/Vtable.pm, t/pmc/perlstring.t: Changed the
1958         format of vtable.tbl to get rid of the tab-dependence.  The format
1959         now looks roughly like this:
1961         init() # 'void' and 'unique' are assumed INTVAL type ( ) # 'unique'
1962         is assumed str void concatenate (PMC* value, PMC* dest) # Nothing
1963         assumed here, but note the C-like prototyping.  Also had to disable
1964         one test that depended upon 'concat_p_p_s', which isn't necessary
1965         anyway.
1967         Vtable.pm will change again when the type '_keyed' is added,
1968         because that requires remapping parameters slightly differently
1969         again.  Also, note that it assumes 'value' is the first parameter
1970         in the list. This assumption will go away at the same time.
1972 2002-02-04 16:57  ajgough
1974         * core.ops, t/pmc/perlstring.t, t/pmc/pmc.t: More tests for pmc
1975         functions.  Thanks to Simon Glover.
1977 2002-02-04 02:47  ajgough
1979         * hints/os2.pl: Removes a flag from the os/2 hints file that isn't
1980         needed.  I suspect that the entire hints file isn't really needed,
1981         but there's no one to actually tell us this.
1983 2002-02-02 15:45  ask
1985         * docs/ParrotFAQ.htm: fix internal links
1987 2002-02-02 04:06  jgoff
1989         * classes/: array.pmc, intqueue.pmc, perlarray.pmc, perlhash.pmc:
1990         Moving the internal KEY structure from the cache.struct_val member,
1991         where it doesn't really belong, to the internal SELF->data member.
1992         This frees up the cache/type members for other usage.
1994         This is the first step in moving PMCs to the point where we can do
1995         multidimensional PMC handles. The next step is to change the
1996         assembler to accept the syntax of 'set P0["foo"],7'.
1998 2002-02-02 00:13  nicholas
2000         * include/parrot/global_setup.h: Patch from Jonathan Stowe to
2001         prototype Parrot_Array_class_init
2003 2002-02-02 00:13  nicholas
2005         * embed.c: Casts to tidy up warnings from Jonathan Stowe Change
2006         time to sum_time to avoid warning on FreeBSD about tracking a
2007         global [No, this warning does not appear on Linux. Yes, it is real
2008         :-)]
2010 2002-02-01 23:02  nicholas
2012         * embed.c: Fix fprintf format warning in Parrot_runcode. From Simon
2013         Glover
2015 2002-02-01 20:20  nicholas
2017         * t/pmc/pmc.t: Add end at end of asm in test (from Simon Glover)
2019 2002-02-01 18:20  nicholas
2021         * lib/Parrot/Test.pm: Env.pm on 5.005_03 doesn't do a use vars for
2022         you
2024 2002-02-01 13:22  nicholas
2026         * MANIFEST: Add docs/embed.pod and t/op/ifunless.t
2028 2002-02-01 12:19  simon
2030         * core.ops, t/op/ifunless.t, t/op/integer.t:
2031         Added "unless" op.
2033 2002-02-01 12:11  simon
2035         * lib/Parrot/Test.pm:
2036         Remove a warning.
2038 2002-02-01 01:38  nicholas
2040         * MANIFEST, MANIFEST.SKIP, Makefile.in: Add a MANIFEST.SKIP file,
2041         and a manitest target to Makefile.in that lets one test the
2042         manifest.
2044 2002-02-01 00:03  dan
2046         * core.ops, global_setup.c, include/parrot/pmc.h: More setup for
2047         PMC dynaloading
2049 2002-01-31 21:46  gregor
2051         * Configure.pl, Makefile.in, hints/mswin32.pl:
2052         A few more things are now configable, so we are closer to win32
2053         shared library builds. Not there yet, but closer.
2055 2002-01-31 21:00  dan
2057         * global_setup.c, classes/pmc2c.pl, include/parrot/global_setup.h,
2058         include/parrot/pmc.h: First step in dynamically loading PMC classes
2060 2002-01-31 19:38  dan
2062         * Makefile.in: Dependencies in the Makefile are currently too broad
2063         brush.  I don't enjoy waiting for everything to recompile every
2064         time I try to tweak the jit. The only file that #includes
2065         jit_struct.h is jit.c, so I feel that the Makefile dependencies
2066         should reflect this, and not cause a gratuitous recompile of
2067         everything.  There are probably other auto-generated header files
2068         that world+dog should not depend on.
2070         Courtesy of  Nicholas Clark <nick@unfortu.net>
2072 2002-01-31 19:03  gregor
2074         * Makefile.in, lib/Parrot/Test.pm, t/harness:
2075         Added two new make targets:
2077           * testp: Like 'make test', but passes -P to t/harness, so you get
2078         to
2079             see how broken predereferencing is.
2081           * testj: Like 'make test', but passes -j to t/harness, so you get
2082         to
2083             see how broken JIT is.
2085         Now, anyone who wants to see how good all three ways of running are
2086         can do so, at the cost of about 3x the time.
2088 2002-01-31 17:09  brentdax
2090         * embed.c, test_main.c: Implement the ARGV-in-P0 thing.
2092 2002-01-31 03:41  grunblatt
2094         * docs/jit.pod: Update jit.pod
2096 2002-01-31 03:20  grunblatt
2098         * jit/i386/core.jit: Hold this until we get an assemble tool,
2099         because of the different objdump problems.
2101 2002-01-31 03:13  grunblatt
2103         * Configure.pl, lib/Parrot/Jit/sun4-solaris.pm,
2104         lib/Parrot/Jit/sun4Generic.pm: Use dis intead of objdump.  Courtesy
2105         of: Jason Gloudon <perl@gloudon.com>
2107 2002-01-31 02:22  grunblatt
2109         * jit/i386/core.jit: Continue if the register is null
2111 2002-01-30 23:50  grunblatt
2113         * lib/Parrot/Jit/: alpha-bsd.pm, alpha-linux.pm, alphaGeneric.pm,
2114         i386-bsd.pm, i386-linux.pm, i386Generic.pm, sun4-solaris.pm,
2115         sun4Generic.pm: Move the AS and OBJDUMP constants to each os
2116         specific file.
2118 2002-01-30 23:35  mrjoltcola
2120         * io/io_win32.c: Change implementation of isatty on win32,
2121         suggested by Hong Zhang.
2123 2002-01-30 23:19  sfink
2125         * jit2h.pl, lib/Parrot/Op.pm, lib/Parrot/OpsFile.pm: Added
2126         Op::may_jump boolean method.
2128         Replaced jit2h's hardcoded pattern match to decide what ops might
2129         change the control flow.
2131 2002-01-30 22:13  dan
2133         * Configure.pl, MANIFEST, testparrotfuncptr.c: This patch allows
2134         parrot to mostly-build with tcc.  It allows one to skip compiling
2135         the JIT stuff (by specifying --define jitcapable=0), and it
2136         introduces a test program which gives a friendlier error in this
2137         case for compilers which are as picky as tcc is about function
2138         pointer conversion.
2140         If anyone figures out the proper way to cast these function
2141         pointers this may not be necessary.
2143         Courtesy of Josh Wilmes <josh@hitchhiker.org>
2145 2002-01-30 20:54  dan
2147         * docs/running.pod, lib/Parrot/Test.pm: I'm being anal again.
2148         Here's an update to docs/running.pod to better reflect the current
2149         state (both the test_parrot and assemble.pl improvements, plus
2150         documentation of a few more things.) And also a speling fiks
2151         s/POST_MORTERM/POST_MORTEM/.
2153         I could also replace some "perl foo" calls with "./foo" if someone
2154         wanted to set the executable flag in CVS on assemble.pl,
2155         optimize.pl, etc.
2157         Courtesy of Steve Fink <steve@fink.com>
2159 2002-01-30 20:43  dan
2161         * core.ops: find_global doesn't work, so stub out the wrong code
2163 2002-01-30 19:08  dan
2165         * lib/Parrot/Assembler.pm:  fixes the POD in Parrot::Assember so
2166         that perldoc
2167          can read it and just tidies it up generally. It also adds
2168         documentation
2169          for the constantize_integer and constantize_number functions.
2171         Courtesy of Simon Glover <scog@roe.ac.uk>
2173 2002-01-30 18:02  dan
2175         * assemble.pl, disassemble.pl, optimizer.pl, pbc2c.pl,
2176         classes/genclass.pl, classes/pmc2c.pl,
2177         languages/scheme/Scheme/Test.pm:  Many of the Perl scripts in the
2178         distribution (including assemble.pl !)
2179          can no longer find the Parrot::* modules. Enclosed patch fixes
2180         (although
2181          it would be nice if there were an easier way to do this).
2183         Courtesy of  Simon Glover <scog@roe.ac.uk>
2185 2002-01-30 16:00  mrjoltcola
2187         * io/io_win32.c: Correct function calls for win32_fdopen and arg
2188         types.
2190 2002-01-30 15:50  mrjoltcola
2192         * io/io_unix.c: Minor bug fix for fdopen flag arg type.
2194 2002-01-30 15:42  grunblatt
2196         * pbc2c.pl, examples/assembly/Makefile: Updates related to moving
2197         files around
2199 2002-01-30 15:38  grunblatt
2201         * MANIFEST: Enclosed patch adds the new SPARC-based JIT files to
2202         the manifest,  and also puts it back into alphabetical order.
2204         Courtesy of: Simon Glover <scog@roe.ac.uk>
2206 2002-01-30 14:41  nicholas
2208         * embed.c: Patch from Simon Glover to clean up warnings where
2209         prototype is () not (void)
2211 2002-01-30 13:54  nicholas
2213         * include/parrot/embed.h, test_main.c: Add void as an explicit
2214         parameter in test_main.c's usage(), version(void) and embed.h's
2215         Parrot_new() Without these gcc moans: include/parrot/embed.h:34:
2216         warning: function declaration isn't a prototype
2218 2002-01-30 12:08  simon
2220         * lib/Parrot/.cvsignore:
2221         Ignore generated Perl modules.
2223 2002-01-30 12:07  simon
2225         * t/harness:
2226         Run the PMC tests as well.
2228 2002-01-30 12:04  simon
2230         * MANIFEST:
2231         Fix MANIFEST after recent t/pmc rejig.
2233 2002-01-30 11:42  simon
2235         * lib/Parrot/Test.pm:
2236         Report non-zero exit codes.
2238         Courtesy of: Michael G Schwern <schwern@pobox.com>
2240 2002-01-30 11:39  simon
2242         * t/op/rx.t:
2243         Skip final test, TODO doesn't work yet.
2245 2002-01-30 09:54  brentdax
2247         * docs/embed.pod: Leon Brocard was kind enough to explain to me how
2248         predereferencing works.
2250 2002-01-30 09:38  brentdax
2252         * docs/: embed.pod, parrot.pod: Document this newfangled embedding
2253         subsystem.
2255 2002-01-30 09:37  brentdax
2257         * include/parrot/embed.h: Fix a mistake, clear up a warning.
2259 2002-01-30 09:37  brentdax
2261         * config_h.in: Expose another flag for embedders.
2263 2002-01-30 05:07  jgoff
2265         * make_vtable_ops.pl, t/harness: Both files didn't know of the new
2266         location for Parrot/, and t/harness wasn't able to run the new
2267         op/pmc tests. Both problems fixed, so I think I'm going to declare
2268         the build suitable for public consumption.
2270 2002-01-30 04:34  robert
2272         * docs/Makefile.in: update for CVS movement
2274 2002-01-30 04:32  robert
2276         * Makefile.in: Adjust for CVS reorganization.  (This time, edit the
2277         .in file, not the real Makefile)
2279 2002-01-30 04:20  robert
2281         * Configure.pl, jit2h.pl, ops2c.pl, ops2pm.pl, pmc_pm.pl,
2282         vtable_h.pl, classes/pmc2c.pl, include/parrot/parrot.h: Updates
2283         related to moving files around
2285 2002-01-30 04:10  robert
2287         * MANIFEST: Update MANIFEST to reflect CVS reorg.
2289 2002-01-30 04:07  robert
2291         * Configure.pl: Add './lib' to our @INC because Parrot/* moved.
2293 2002-01-30 03:56  robert
2295         * Parrot/: .cvsignore, Assembler.pm, BuildUtil.pm, Op.pm,
2296         OpTrans.pm, OpsFile.pm, Optimizer.pm, PackFile.pm, String.pm,
2297         Test.pm, Vtable.pm, Jit/alpha-bsd.pm, Jit/alpha-linux.pm,
2298         Jit/alphaGeneric.pm, Jit/i386-bsd.pm, Jit/i386-linux.pm,
2299         Jit/i386-nojit.pm, Jit/i386Generic.pm, Jit/sun4-solaris.pm,
2300         Jit/sun4Generic.pm, OpLib/.cvsignore, OpTrans/C.pm,
2301         OpTrans/CGoto.pm, OpTrans/CPrederef.pm, PackFile/ConstTable.pm,
2302         PackFile/Constant.pm, PackFile/FixupTable.pm: Moved Parrot/* to
2303         lib/Parrot/
2305 2002-01-30 03:46  robert
2307         * languages/miniperl/miniperlc: renamed to mpc
2309 2002-01-30 03:45  robert
2311         * t/op/: pmc.t, pmc_array.t, pmc_perlarray.t, pmc_perlhash.t,
2312         pmc_perlstring.t: Moved to t/op/pmc/
2314 2002-01-30 03:40  robert
2316         * include/parrot/register_funcs.h: Renamed to regfuncs.h
2318 2002-01-30 03:14  jgoff
2320         * classes/perlarray.pmc, t/op/pmc_perlarray.t, t/pmc/perlarray.t:
2321         Fixed some problems with PerlArray and added tests.  Previously,
2322         only integers could be accessed by negative indices.  After this
2323         change, all basic types can be accessed by negative indices, and
2324         they can also be set at negative indices.
2326 2002-01-29 22:13  brentdax
2328         * TODO: Just look at the stupid diff.
2330 2002-01-29 21:53  simon
2332         * TODO, docs/vtables.pod:
2333         New TODO, and tiny addition to vtables.pod
2335 2002-01-29 21:47  mrjoltcola
2337         * include/parrot/io.h, io/io_unix.c: Minor bug fix in io_unix.
2339 2002-01-29 21:38  mrjoltcola
2341         * Makefile.in: Makefile.in tweak for io depend.
2343 2002-01-29 21:15  brentdax
2345         * embed.c: Fix a segfault and some profiling formatting nits.
2347 2002-01-29 20:54  brentdax
2349         * pmc.c: Oops.
2351 2002-01-29 20:50  brentdax
2353         * pmc.c, include/parrot/exceptions.h: Exceptions are better than
2354         segfaults.
2356 2002-01-29 20:17  mrjoltcola
2358         * interpreter.c, core.ops, io.ops: CVS missed this.
2360 2002-01-29 20:17  mrjoltcola
2362         * io/io.c: These should have gone in Sunday with the rest. CVS is
2363         out to get me.
2365 2002-01-29 18:39  brentdax
2367         * platforms/win32.h: Fix Win32 whoops.
2369 2002-01-29 18:29  brentdax
2371         * embed.c, include/parrot/embed.h: A couple minor embedding fixes.
2373 2002-01-29 17:51  simon
2375         * MANIFEST, Makefile.in, config_h.in, embed.c, test_main.c,
2376         include/parrot/embed.h, include/parrot/parrot.h:
2377         Embedding support. Cool.
2379         Courtesy of: <brentdax@cpan.org>
2381 2002-01-29 15:40  grunblatt
2383         * Configure.pl: Detect if we can use "objdump".  Courtesy of: Jason
2384         Gloudon <perl@gloudon.com>
2386 2002-01-29 14:42  simon
2388         * include/parrot/parrot.h:
2389         Platform stuff has to be included *after* system headers.
2391 2002-01-29 14:05  grunblatt
2393         * interpreter.c, jit.c, Parrot/Jit/sun4-solaris.pm,
2394         Parrot/Jit/sun4Generic.pm, lib/Parrot/Jit/sun4-solaris.pm,
2395         lib/Parrot/Jit/sun4Generic.pm, include/parrot/jit.h,
2396         jit/sun4/core.jit, jit/sun4/lib.jit, jit/sun4/string.jit: Added
2397         support for SPARC.  Courtesy of: Jason Gloudon <perl@gloudon.com>
2399 2002-01-29 10:56  simon
2401         * platforms/generic.h:
2402         If we don't have a S_ISREG, produce something close to it.
2404 2002-01-29 06:01  dan
2406         * MANIFEST, README, LICENSES/Artistic: Finally added licenses
2408 2002-01-29 04:38  jgoff
2410         * classes/array.pmc: Forgot to remove some C++-isms from the
2411         get_{foo}_index routines.
2413 2002-01-29 04:26  jgoff
2415         * MANIFEST, Makefile.in, global_setup.c, classes/Makefile.in,
2416         classes/array.pmc, include/parrot/pmc.h, t/op/pmc_array.t,
2417         t/pmc/array.t: Added array class that languages other than perl can
2418         use for a basis.  It has no features like preextension, and the
2419         array index starts at 0.
2421         MANIFEST - added classes/array.pmc and t/op/pmc_array.t Makefile.in
2422         and classes/Makefile.in - Added array.pmc to the makefile.
2423         (Assuming rules like .pmc.o are portable (or even possible) I might
2424         alter classes/Makefile.in to autobuild the appropriate files.
2426 2002-01-29 02:32  dan
2428         * MANIFEST, Parrot/Test.pm, lib/Parrot/Test.pm,
2429         lib/Test/Builder.pm, lib/Test/More.pm, lib/Test/Simple.pm,
2430         lib/Test/Utils.pm, t/op/interp.t, t/op/macro.t, t/op/pmc.t,
2431         t/op/rx.t, t/op/stacks.t, t/pmc/pmc.t:
2432             Update to Test::More 0.41 which adds Test::Builder
2434             Delete the vestigal Test::Utils
2436             Change Parrot::Test so it uses Test::Builder instead of Evil
2437         Wrappers
2438             around Test::More
2440             output_* now returns whether the test passes or fails
2442             Parrot::Test no longer exports Test::More's functions.  Instead
2443         they
2444             can simply be used together.  The few tests which used
2445         Test::More
2446             features (ie. skip) have 'use Test::More' added.
2448             I ditched the export_to_level() crutch.  Do we expect parrot to
2449         work on
2450             5.004?  (literally 5.004, not 5.004_04)
2452         Courtesy of Michael G Schwern <schwern@pobox.com>
2454 2002-01-28 21:04  dan
2456         * docs/overview.pod:  There is no opcodes.pod; I'm assuming the
2457         pointer should actually be to
2458          parrot_assembly.pod, as the canonical documentation.
2460         Courtesy of Simon Glover <scog@roe.ac.uk>
2462 2002-01-28 20:21  dan
2464         * languages/jako/jakoc, t/op/stacks.t: Toss the last traces of
2465         clone[inps]
2467 2002-01-28 19:18  dan
2469         * core.ops, register.c: clone[insp] is dead
2471 2002-01-28 17:46  grunblatt
2473         * Parrot/Jit/i386Generic.pm, lib/Parrot/Jit/i386Generic.pm,
2474         jit/i386/core.jit: Fix to make the jit work in linux yet again.
2476 2002-01-28 16:45  dan
2478         * MANIFEST, README.OS_X: Added Mac OS X specific readme documenting
2479         the requirement for fink at the moment.
2481 2002-01-28 15:59  simon
2483         * test_main.c:
2484         People might try and run a directory file, with spectacular
2485         results.  We don't want that. No.
2487 2002-01-28 14:58  doughera
2489         * core.ops: Avoid C++-style comments.
2491 2002-01-28 14:16  grunblatt
2493         * jit.c, io/io.c: Changed jit.c to fit the way registers are
2494         accessed.  Readded the pio_(stdin|stdout|stderr) to make builds
2495         work again.
2497 2002-01-28 13:47  doughera
2499         * include/parrot/register.h: Avoid C++-style comment.
2501 2002-01-28 06:03  dan
2503         * MANIFEST, core.ops, interpreter.c, key.c, register.c, trace.c,
2504         Parrot/OpTrans/C.pm, Parrot/OpTrans/CGoto.pm,
2505         lib/Parrot/OpTrans/C.pm, lib/Parrot/OpTrans/CGoto.pm,
2506         docs/parrot_assembly.pod, include/parrot/interpreter.h,
2507         include/parrot/parrot.h, include/parrot/regfuncs.h,
2508         include/parrot/register.h, include/parrot/register_funcs.h,
2509         include/parrot/string.h, include/parrot/string_funcs.h: Registers
2510         are now stored in the interpreter structure itself, rather than
2511         just a pointer to the top of the register structure. Pushes and
2512         pops now involve memcpys, but register access has one fewer
2513         dereference.
2515         Fails four of the register stack tests, though, so not perfect.
2516         Needs fixing, but this is a good place to start.
2518 2002-01-28 04:40  mrjoltcola
2520         * test_main.c: cvs commit missed this. ??
2522 2002-01-28 04:27  mrjoltcola
2524         * examples/assembly/io1.pasm, include/parrot/exceptions.h,
2525         include/parrot/interpreter.h, include/parrot/io.h, io/io.c,
2526         io/io_stdio.c, io/io_unix.c, io/io_win32.c: ParrotIO local to each
2527         interpreter now (at least in theory).  IO handle array added.  Misc
2528         bug fixes in layer handling.  Changed any IO_ constants to PIO_ so
2529         we don't conflict         with system libraries.  Still have broken
2530         stuff in win32 and stdio layer.
2532 2002-01-28 04:01  mrjoltcola
2534         * include/parrot/chartype.h: Typo in chartype.h include guard.
2536 2002-01-28 03:41  mrjoltcola
2538         * t/op/interp.t: Fix flag for interp so we don't get "info"
2539         messages which break tests.
2541 2002-01-28 01:54  dan
2543         * include/parrot/string.h: A few more buffer/string flags
2545 2002-01-27 11:33  nicholas
2547         * chartypes/unicode.c: Cast unsigned argument to int in call to
2548         isdigit to silence gcc warning.
2550 2002-01-26 23:18  grunblatt
2552         * Parrot/Jit/i386Generic.pm, lib/Parrot/Jit/i386Generic.pm: Turn
2553         off that flag.
2555 2002-01-26 23:17  grunblatt
2557         * Parrot/Jit/i386Generic.pm, lib/Parrot/Jit/i386Generic.pm,
2558         jit/i386/core.jit: [no log message]
2560 2002-01-26 22:18  simon
2562         * jit/i386/core.jit:
2563         Jumping to 0x0 is a recipe for segfaults.
2565 2002-01-26 18:35  simon
2567         * t/harness:
2568         Allow user to select which tests to harness
2570         Courtesy of: Nicholas Clark <nick@unfortu.net>
2572 2002-01-26 17:20  grunblatt
2574         * Parrot/Jit/i386-linux.pm, Parrot/Jit/i386Generic.pm,
2575         lib/Parrot/Jit/i386-linux.pm, lib/Parrot/Jit/i386Generic.pm: Patch
2576         to make the jit work in linux again.
2578 2002-01-26 16:52  dan
2580         * Configure.pl, hints/darwin.pl: Add -Wno-shadow, as Darwin's
2581         headers can't cope with this. Darwin-only
2583 2002-01-26 16:04  dan
2585         * include/parrot/parrot.h: Quick note to remind folks that this
2586         isn't the file they're looking for if they're writing extensions or
2587         embedding parrot.
2589         Courtesy of Andy Dougherty <doughera@lafayette.edu>
2591 2002-01-26 00:41  mrjoltcola
2593         * MANIFEST: Oopsy.
2595 2002-01-26 00:37  mrjoltcola
2597         * docs/ParrotFAQ.htm: Parrot FAQ : Created and maintained by Adam
2598         Turoff
2600 2002-01-25 01:31  grunblatt
2602         * jit/alpha/core.jit: There is no neg or fneg.
2604 2002-01-25 01:27  grunblatt
2606         * core.ops, Parrot/Jit/alphaGeneric.pm, Parrot/Jit/i386Generic.pm,
2607         lib/Parrot/Jit/alphaGeneric.pm, lib/Parrot/Jit/i386Generic.pm,
2608         jit/alpha/core.jit, jit/i386/core.jit, t/op/integer.t,
2609         t/op/number.t: Added Parrot_neg.  Erase t.s
2611 2002-01-24 23:26  dan
2613         * interpreter.c: Best make sure unused elements are NULL
2615 2002-01-24 23:24  dan
2617         * interpreter.c: Fix stupid thinko
2619 2002-01-24 18:37  doughera
2621         * Makefile.in: Add a few missing dollar signs in the lifetest
2622         section so that ${exe} and the like get properly interpolated.
2624 2002-01-24 18:15  mrjoltcola
2626         * docs/: .cvsignore, Makefile.in, parrot.pod: Fix pod generation
2627         for io.ops file. Add reference to it in parrot.pod.  Courtesy of
2628         Simon Glover <scog@roe.ac.uk>
2630 2002-01-24 06:43  mrjoltcola
2632         * io/io_stdio.c: Oops.
2634 2002-01-24 06:34  mrjoltcola
2636         * include/parrot/io.h, io/TODO, io/io.c, io/io_stdio.c: Did a bit
2637         of work on the buffering layer.  Decided to use shared read/write
2638         buffer (as do most implementations) for now since its the simplest
2639         way to keep everything synced, (flush on seeks, flush read on
2640         writes, etc.)
2642 2002-01-24 03:38  mrjoltcola
2644         * test_main.c: Cleaned up option handling code a bit for main().
2646 2002-01-23 23:22  dan
2648         * interpreter.c, include/parrot/interpreter.h,
2649         include/parrot/resources.h: Now each interpreter gets its own hash
2650         for globals.
2652 2002-01-23 20:45  dan
2654         * Configure.pl: Fix a warning when there's no - in an architecture
2656 2002-01-22 23:57  grunblatt
2658         * docs/running.pod: [no log message]
2660 2002-01-22 20:29  doughera
2662         * KNOWN_ISSUES: long doubles don't work on SPARC either.  It
2663         appears to be a generic problem (if sizeof(long double) >
2664         sizeof(double)), not an x86-specific one.
2666 2002-01-22 16:57  doughera
2668         * runops_cores.c: Change variable name from time to starttime to
2669         avoid gcc warning about variable name shadowing.
2671 2002-01-22 16:55  doughera
2673         * classes/pmc2c.pl: Include class_init prototype too.
2675 2002-01-22 16:01  doughera
2677         * MANIFEST: [no log message]
2679 2002-01-22 01:04  ajgough
2681         * global_setup.c, classes/default.pmc, classes/intqueue.pmc,
2682         classes/parrotpointer.pmc, classes/perlarray.pmc,
2683         classes/perlhash.pmc, classes/perlint.pmc, classes/perlnum.pmc,
2684         classes/perlstring.pmc, classes/perlundef.pmc, classes/pmc2c.pl,
2685         include/parrot/global_setup.h: Patch from Nick Clark to quieten
2686         warnings from pmc files.  Message-ID:
2687         <20020121224719.GE1726@Bagpuss.unfortu.net>
2689 2002-01-22 00:53  ajgough
2691         * test_main.c: Clears up a couple of warnings in test_main.c.
2692         Thanks to Nick Clark.  Message-ID:
2693         <20020121190457.GB1726@Bagpuss.unfortu.net>
2695 2002-01-22 00:47  ajgough
2697         * string.c, chartypes/unicode.c, chartypes/usascii.c,
2698         include/parrot/chartype.h: Cause all codepoints to be treated as
2699         UNITVALS, and get_digit to return INTVAL, just in case. (Thanks to
2700         Nick Clark, see also: Message-ID:
2701         <20020121214137.GC2371@Bagpuss.unfortu.net> )
2703 2002-01-22 00:24  dan
2705         * key.c: We do mandate an ANSI conformant C compiler, don't we?
2707         Appended patch cures these warnings:
2709         key.c: In function `debug_key': key.c:29: warning: int format,
2710         INTVAL arg (arg 3) key.c:33: warning: int format, INTVAL arg (arg
2711         3) key.c:33: warning: int format, INTVAL arg (arg 4) key.c:36:
2712         warning: int format, INTVAL arg (arg 3) key.c:36: warning: int
2713         format, INTVAL arg (arg 4)
2715         Courtesy of Nicholas Clark <nick@unfortu.net>
2717 2002-01-21 12:41  mrjoltcola
2719         * MANIFEST, io.ops: For some reason cvs commit didn't get this, may
2720         be clock skew.
2722 2002-01-21 06:37  mrjoltcola
2724         * io/io.c: Cleanup a warning
2726 2002-01-21 06:28  mrjoltcola
2728         * examples/assembly/io1.pasm, include/parrot/io.h, io/io.c,
2729         io/io_stdio.c, io/io_unix.c, io/io_win32.c: Added 32/64 bit seek
2730         ops. Various other IO twiddlings.
2732 2002-01-21 03:25  grunblatt
2734         * Makefile.in: Use $jitcpuarch instead of $cpuarch.  Thanks to
2735         Melvin Smith for the catch up.
2737 2002-01-20 23:13  sfink
2739         * stacks.c: Fixed logic errors, need tests
2741 2002-01-20 22:17  brentdax
2743         * rx.c, rx.ops, include/parrot/rx.h, t/op/rx.t: Make /m work and
2744         prepare for /i to work.
2746 2002-01-20 20:52  grunblatt
2748         * Configure.pl, MANIFEST, Makefile.in, interpreter.c, jit.c,
2749         jit2h.pl, Parrot/Jit/alpha-bsd.pm, Parrot/Jit/alpha-linux.pm,
2750         Parrot/Jit/alphaGeneric.pm, Parrot/Jit/i386-bsd.pm,
2751         Parrot/Jit/i386-linux.pm, lib/Parrot/Jit/alpha-bsd.pm,
2752         lib/Parrot/Jit/alpha-linux.pm, lib/Parrot/Jit/alphaGeneric.pm,
2753         lib/Parrot/Jit/i386-bsd.pm, lib/Parrot/Jit/i386-linux.pm,
2754         Parrot/Jit/i386Generic.pm, lib/Parrot/Jit/i386Generic.pm,
2755         include/parrot/jit.h, jit/alpha/core.jit, jit/alpha/lib.jit,
2756         jit/alpha/string.jit:
2757         - Added support for ALPHA, by now linux and bsd.
2759         - Reduced jit2h.pl execution time by precompiling the call to the
2760         unimplemented op.
2762         - Reduced the duplicated code in Parrot/Jit/*.pm by adding
2763         Parrot/Jit/${cpuarch}Generic.pm
2765         - Changed the way to detect quads to what is written in "man
2766         perlfunc".
2768 2002-01-20 17:23  brentdax
2770         * rx.ops: There's no such thing as rx_allocateinfo.
2772 2002-01-19 08:26  brentdax
2774         * pbc2c.pl: Stop this stupid "hard-code the new oplib" stuff.
2776 2002-01-19 07:12  mrjoltcola
2778         * MANIFEST, core.ops, io.ops, pbc2c.pl: Separate pure ParrotIO ops
2779         into io.ops, leave the STDIO wrappers        in core.ops until they
2780         disappear.  Added debug op for switching on VM debug flag
2782 2002-01-19 01:55  mrjoltcola
2784         * include/parrot/io.h, io/TODO, io/io.c, io/io_stdio.c,
2785         io/io_unix.c, io/io_win32.c: Added a few more Win32 layer calls
2787 2002-01-19 00:55  brentdax
2789         * Makefile.in, rx.c, rx.ops, rxstacks.c, include/parrot/rx.h,
2790         include/parrot/rxstacks.h: Add regex-specific stacks for
2791         efficiency.
2793 2002-01-18 23:58  dan
2795         * Configure.pl: I think the optimal fix here is simply to remove
2796         -ansi -pedantic.  -ansi may well have some uses, but even the gcc
2797         man pages say "There is no reason to use this option [-pedantic];
2798         it exists only to satisfy pedants."
2800         Courtesy of Andy Dougherty <doughera@lafayette.edu>
2802 2002-01-18 23:23  dan
2804         * MANIFEST, docs/parrot.pod, docs/running.pod: This patch add
2805         docs/running.pod, which lists the various executables Parrot
2806         currently includes, examples of running them, and mentions of where
2807         they fail to work. It's more of a cry for help than a useful
2808         reference. :-) I've been having trouble recently when making
2809         changes in figuring out whether I broke anything, because any
2810         non-default way of running the system seems to be already broken. I
2811         can't tell what brokenness is expected and what isn't.
2813         Courtesy of  Steve Fink <steve@fink.com>
2815 2002-01-15 22:13  brentdax
2817         * include/parrot/rx.h, rx.c, rx.ops: Remove the last vestiges of
2818         substring use and enhance performance.
2820 2002-01-15 21:03  ajgough
2822         * string.c: Fix problem with string_transcode, &dest not being
2823         updated if src was already in desired encoding.
2825 2002-01-15 16:54  brentdax
2827         * rx.c, rx.ops, include/parrot/rx.h: Hunt down and destroy
2828         warnings.  Leaves only one warning, at rx.ops line 409, that I
2829         can't manage to get rid of.
2831 2002-01-15 16:50  dan
2833         * pbc2c.pl: Pointer arithmetic not quite right in the generated
2834         code.  Also patches pbc2c.pl to work with rx.ops.
2836         Courtesy of Jason Gloudon <perl@gloudon.com>
2838 2002-01-15 16:15  dan
2840         * classes/Makefile.in: All the C files in classes/ weren't being
2841         compiled with an of the gcc warnings flags. With this patch they
2842         are, and there are an awful lot of warnings, more than I could hope
2843         to understand and clear up (within any sensible time period before
2844         submitting a rash of patches, by which time everyone else would
2845         have moved the code on)
2847         Courtesy of Nicholas Clark <nick@unfortu.net>
2849 2002-01-15 16:10  dan
2851         * core.ops, ops2c.pl, Parrot/Op.pm, Parrot/OpTrans.pm,
2852         Parrot/OpsFile.pm, lib/Parrot/Op.pm, lib/Parrot/OpTrans.pm,
2853         lib/Parrot/OpsFile.pm, Parrot/OpTrans/C.pm,
2854         Parrot/OpTrans/CGoto.pm, Parrot/OpTrans/CPrederef.pm,
2855         lib/Parrot/OpTrans/C.pm, lib/Parrot/OpTrans/CGoto.pm,
2856         lib/Parrot/OpTrans/CPrederef.pm, chartypes/unicode.c,
2857         chartypes/usascii.c: This patch adds a few more macros for .ops
2858         files to use. In addition to the existing
2860          goto OFFSET(...)
2861          goto ADDRESS(...)
2862          goto POP()
2863          goto NEXT()
2865         it adds
2867          expr OFFSET(...)
2868          expr ADDRESS(...)
2869          expr POP()
2870          expr NEXT()
2872         This is intended mainly for use in helper functions in .ops files,
2873         but also for ops that need to eg push the address of the next
2874         opcode onto a stack. The only place this currently happens (outside
2875         of my private code) is in the bsr opcode, which previously
2876         hardcoded the computation.
2878         This patch also makes ops2c.pl move the CUR_OPCODE #define a bit
2879         higher in the generated file so that it can be used by static
2880         functions in the preamble.
2882         Finally, I ran into a parentheses matching problem -- should goto
2883         OFFSET(...) rewrite    \bgoto\s+OFFSET\((.*)\) or
2884         \bgoto\s+OFFSET\((.*?)\)
2886         It was done inconsistently for the different calculations, and of
2887         course neither are correct because you really want matching
2888         parentheses. But that seems like too much bother. (Currently,
2889         there's only one place that uses anything other than $n in the
2890         parentheses, and that's the enternative() op.) So I made them all
2891         .*? but emulated recent POD by also allowing (( ... )) (that's two
2892         parenthesis with a space padding the body.)
2894         The generated core_ops.c and core_ops_prederef.c files after this
2895         patch are identical except for the CUR_OPCODE and REL_PC macros
2896         getting moved a little higher, and the bsr in the regular path (not
2897         prederef) uses 'CUR_OPCODE' instead of the hardcoded 'cur_opcode'.
2899         In summary, this is a big wad of meaningless changes for the
2900         current code. But it will make adding some opcodes easier in the
2901         future, and cleans up a small nit in the current bsr.
2903         Courtesy of Steve Fink <steve@fink.com>
2905 2002-01-15 08:48  brentdax
2907         * include/parrot/rx.h: Bitmaps can now include chars >255 (well,
2908         sort of).
2910 2002-01-15 08:45  brentdax
2912         * rx.c, rx.ops: Bitmaps can now include chars >255 (well, sort of).
2914 2002-01-15 05:00  brentdax
2916         * rx.ops: Speed up rx_literal--roughly doubles benchmark
2917         performance.
2919 2002-01-14 20:18  dan
2921         * vtable.tbl, vtable_h.pl: Clean up a zillion warnings
2923         Courtesy of Nicholas Clark <nick@unfortu.net>
2925 2002-01-14 20:03  dan
2927         * Configure.pl, MANIFEST, Makefile.in, core.ops, exceptions.c,
2928         global_setup.c, interpreter.c, key.c, ops2c.pl, register.c,
2929         runops_cores.c, rx.ops, stacks.c, string.c, test_main.c, trace.c,
2930         chartypes/unicode.c, chartypes/usascii.c, classes/default.pmc,
2931         classes/parrotpointer.pmc, classes/perlarray.pmc,
2932         classes/perlhash.pmc, classes/perlint.pmc, classes/perlnum.pmc,
2933         classes/perlstring.pmc, classes/perlundef.pmc,
2934         encodings/singlebyte.c, encodings/utf16.c, encodings/utf32.c,
2935         encodings/utf8.c, include/parrot/exceptions.h, include/parrot/io.h,
2936         include/parrot/parrot.h, include/parrot/rx.h, io/io_stdio.c,
2937         io/io_win32.c, platforms/win32.c, platforms/win32.h, t/op/pmc.t,
2938         t/op/pmc_perlhash.t, t/op/rx.t, t/pmc/perlhash.t, t/pmc/pmc.t: This
2939         patch cleans up most of the MSVC-warnings when using warning level
2940         4 (the highest, one above the default level 3). It turns off two
2941         level-4 warnings for 'unreferenced formal parameter' and 'named
2942         type definition in parentheses', the latter of which was turning up
2943         warnings in MS VC headers.  Level 4 warnings also helped me find a
2944         couple of other lurking bugs in the parrot code.
2946         Replaces the various fprintf/exit combos with calls to
2947         internal_exception, which uses var_args to emulate printf. Various
2948         exception types were added as well. These are probably temporary
2949         until a real exception system arrives.
2951         Fixed some places in the IO code where wrong functions were being
2952         called, or put into the vtable.
2954         Courtesy of "Michel Lambert" <mlambert@legendent.com>
2956 2002-01-14 19:00  dan
2958         * MANIFEST: D'oh! Forgot a file.
2960         Courtesy of Andy Dougherty <doughera@lafayette.edu>
2962 2002-01-14 18:44  brentdax
2964         * rx.c, rx.ops, include/parrot/rx.h: Use bitmaps where it makes
2965         sense (and a few other enhancements to regexes).
2967 2002-01-14 07:07  brentdax
2969         * interpreter.c, runops_cores.c, test_main.c,
2970         include/parrot/interpreter.h: Make profiling a little more useful.
2972 2002-01-13 19:44  dan
2974         * Configure.pl: Turn off unsed things warnings for now
2976 2002-01-13 19:39  dan
2978         * key.c, classes/perlarray.pmc: key.c:   intialize KEY.keys
2980         classes/perlarray.c:  * get_string: is casting
2981         SELF->cache.struct_val to a STRING*,    while all other methods are
2982         using it as a KEY*; don't know    what a perlarray stringifies to,
2983         so replacing with NULL  * get_bool: the default behaviour does not
2984         look right to me
2986         Courtesy of "Mattia Barbon" <mbarbon@dsi.unive.it>
2988 2002-01-13 19:37  dan
2990         * Makefile.in, classes/Makefile.in: Makefile.in:   (Re)add ld_debug
2991         flags to LDFLAGS, so that Configure.pl --debugging   works with
2992         MSVC
2994         classes/Makefile.in   make easier to add pmb2c.pl flags to all
2995         pmc2c calls
2997         Courtesy of "Mattia Barbon" <mbarbon@dsi.unive.it>
2999 2002-01-13 19:36  dan
3001         * io/io_win32.c:   according to my MSVC docs, you should use
3002         _tcslen only after
3003           #including tchar.h
3005         Courtesy of  "Mattia Barbon" <mbarbon@dsi.unive.it>
3007 2002-01-13 19:35  dan
3009         * docs/intro.pod: Doc tweak.
3011         Courtesy of Simon Glover <scog@roe.ac.uk>
3013 2002-01-13 19:34  dan
3015         * t/: op/pmc_perlstring.t, pmc/perlstring.t:  Enclosed test checks
3016         that
3018           if Px, ...
3020          works with PerlString PMCs; these should be false if they are "",
3021         0, or
3022          are undefined, and true in every other case.
3024         Courtesy of Simon Glover <scog@roe.ac.uk>
3026 2002-01-13 19:23  dan
3028         * Configure.pl, config_h.in, core.ops, classes/perlnum.pmc: Change
3029         NUMVAL_FMT to FLOATVAL_FMT.
3031         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3033 2002-01-13 17:45  jgoff
3035         * Makefile.in, global_setup.c, classes/Makefile.in,
3036         classes/intqueue.pmc, include/parrot/pmc.h, t/op/pmc.t,
3037         t/pmc/pmc.t: IntQueue is for an upcoming article on perl.com on
3038         designing your own classes.
3040 2002-01-13 08:47  simon
3042         * interpreter.c, Parrot/OpTrans/CPrederef.pm,
3043         lib/Parrot/OpTrans/CPrederef.pm:
3044         Fix bsr in prederef mode.
3046         Courtesy of: Jason Gloudon <perl@gloudon.com>
3048 2002-01-12 15:33  dan
3050         * interpreter.c, key.c, packfile.c, register.c, resources.c,
3051         string.c, encodings/singlebyte.c, encodings/utf32.c,
3052         include/parrot/parrot.h, io/io.c, io/io_stdio.c, io/io_unix.c:
3053         Silence most of the unused variable warnings.
3055         Courtesy of Nicholas Clark <nick@unfortu.net>
3057 2002-01-12 15:18  dan
3059         * rx.ops: This patch fixes a warning and also changes an 'int' to
3060         an 'INTVAL'.  All tests should pass on Solaris.
3062         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3064 2002-01-12 15:13  dan
3066         * interpreter.c, string.c, test_main.c, classes/parrotpointer.pmc,
3067         examples/assembly/life.pasm, include/parrot/interpreter.h,
3068         include/parrot/io.h, io/io.c, io/io_stdio.c, io/io_unix.c,
3069         io/io_win32.c: More IO work. (Plus some misc twiddles)
3071         Courtesy of Melvin Smith <mrjoltcola@mindspring.com>
3073 2002-01-12 01:14  dan
3075         * include/parrot/string.h: fix a missing name
3077 2002-01-12 00:39  grunblatt
3079         * include/parrot/string.h: Few typos.
3081 2002-01-12 00:16  grunblatt
3083         * jit.c, jit2h.pl, jit/i386/core.jit: Added support for opcodes
3084         that change the program control flow.
3086 2002-01-11 23:53  brentdax
3088         * classes/parrotpointer.pmc: Tell the GC to keep its hands out of a
3089         ParrotPointer's guts.
3091 2002-01-11 23:03  dan
3093         * include/parrot/string.h: flags for the buffers, for GC
3095 2002-01-11 22:31  dan
3097         * include/parrot/pmc.h: PMC flag docs. Those'd be good...
3099 2002-01-11 22:21  dan
3101         * include/parrot/pmc.h: Started with PMC flags
3103 2002-01-11 19:33  dan
3105         * config_h.in, memory.c, resources.c, string.c,
3106         include/parrot/resources.h: Beginnings of a memory allocation/gc
3107         system. Without the GC part.
3109 2002-01-11 18:05  dan
3111         * core.ops: Make sure constant pushes are right on mixed 32/64 bit
3112         systems
3114         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3116 2002-01-11 17:50  dan
3118         * core.ops, pbc2c.pl, Parrot/OpTrans/CGoto.pm,
3119         lib/Parrot/OpTrans/CGoto.pm, include/parrot/interpreter.h: Here is
3120         a patch that makes pbc2c generated code work with the bsr opcode.
3121         It creates a new opcode 'enternative', and uses this to support a
3122         mixed model of interpretation and execution of compiled C code.
3124         Courtesy of Jason Gloudon <perl@gloudon.com>
3126 2002-01-11 17:48  dan
3128         * Makefile.in: Add life as a potential .exe target
3130 2002-01-11 17:30  dan
3132         * include/parrot/resources.h: Start of arena stuff for GC
3134 2002-01-11 05:34  brentdax
3136         * rx.ops: Docs modifications.
3138 2002-01-11 04:19  brentdax
3140         * rx.ops, include/parrot/rx.h: Remove unnecessary evilness from
3141         regular expressions.
3143 2002-01-11 03:44  grunblatt
3145         * jit/i386/core.jit: off by one.
3147 2002-01-11 02:25  dan
3149         * Makefile.in, examples/assembly/life.pasm: Tweak to life benchmark
3151         Courtesy of Steve Fink <steve@fink.com>
3153 2002-01-11 00:32  brentdax
3155         * MANIFEST: Forgot to put parrotpointer.pmc in the MANIFEST.
3157 2002-01-10 23:22  ajgough
3159         * string.c, docs/strings.pod: Removed all the nul termination code,
3160         as this is in general a bad idea.  Note added to docs/strings.pod
3161         to warn people away from assuming termination.
3163 2002-01-10 23:14  dan
3165         * core.ops, interpreter.c, jit.c, rx.c, rx.ops, stacks.c,
3166         testparrotsizes_c.in, include/parrot/interpreter.h,
3167         include/parrot/rx.h, include/parrot/stacks.h: Much nicer stack
3168         implementation
3170         Courtesy of Steve Fink <steve@fink.com>
3172 2002-01-10 22:48  dan
3174         * core.ops: Fix 'basic' test 1 for sizeof(opcode_t) !=
3175         sizeof(INTVAL)
3177         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3179 2002-01-10 22:46  dan
3181         * key.c, classes/perlhash.pmc, t/op/pmc_perlhash.t,
3182         t/pmc/perlhash.t:  Well, actually two bugs.
3184          The first is an off-by-one error in key.c than can cause parrot
3185          to segfault if hash % NUM_BUCKETS happens to be zero.
3187          The other is a bug in the PerlHash init() code that causes new
3188         PerlHash
3189          PMCs to start with the wrong size.
3191          Both fixed below; also tests to prevent them recurring.
3193         Courtesy of Simon Glover <scog@roe.ac.uk>
3195 2002-01-10 22:30  dan
3197         * classes/default.pmc, classes/perlarray.pmc, t/op/pmc_perlarray.t,
3198         t/pmc/perlarray.t:  The enclosed patch allows one to use the if op
3199         with a PerlArray,
3201         Courtesy of Simon Glover <scog@roe.ac.uk>
3203 2002-01-10 21:31  dan
3205         * examples/assembly/life.pasm: Tweaked to be a benchmarkable thing
3207 2002-01-10 20:30  grunblatt
3209         * jit.c, jit2h.pl, Parrot/Jit/i386-bsd.pm,
3210         Parrot/Jit/i386-linux.pm, lib/Parrot/Jit/i386-bsd.pm,
3211         lib/Parrot/Jit/i386-linux.pm, jit/i386/core.jit, jit/i386/lib.jit:
3212         All the op codes that doesn't change the program control flow now
3213         work in the JIT by calling the code generated by the compiler when
3214         the op is not in core.jit TODO:     * Make all the ops that change
3215         the program control flow (and are not on core.jit) work.      *
3216         Remove the dispatch payload.
3218 2002-01-10 17:13  dan
3220         * classes/parrotpointer.pmc: This patch fixes parrotpointer.pmc,
3221         which tries to return 0 from a void function.
3223         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3225 2002-01-10 17:12  dan
3227         * t/op/macro.t: Skip tests, don't comment them out.
3229         Courtesy of Simon Glover <scog@roe.ac.uk>
3231 2002-01-10 17:10  dan
3233         * rx.c: This fixes a couple of nits in rx.c:
3235            1. There's no newline at the end, which makes gcc unhappy.
3236            2. We should use NULL, not 0 or "", for creating null pointers.
3238         Courtesy of Simon Glover <scog@roe.ac.uk>
3240 2002-01-10 17:09  dan
3242         * MANIFEST:  Adds rx.t, removes duplicated rx.c and puts everything
3243         back in
3244          alphabetical order.
3246         Courtesy of Simon Glover <scog@roe.ac.uk>
3248 2002-01-10 16:54  ajgough
3250         * resources.c: Made free_string check that there was a string to
3251         free.  In reponse to a bug spotted by Joshua Nye.
3253 2002-01-09 22:44  dan
3255         * global_setup.c: Forgot the setup
3257 2002-01-09 22:35  dan
3259         * rx.ops: Forgot this one
3261 2002-01-09 22:35  dan
3263         * MANIFEST, Makefile.in, rx.c, string.c, include/parrot/pmc.h,
3264         include/parrot/rx.h, t/op/rx.t: Preliminary regex implementation.
3265         Tests don't work, though.
3267         Courtesy of "Brent Dax" <brentdax@cpan.org>
3269 2002-01-09 21:48  dan
3271         * t/: op/pmc_perlarray.t, pmc/perlarray.t: Whoops, forgot that
3273 2002-01-09 21:22  dan
3275         * classes/Makefile.in, classes/parrotpointer.pmc, Makefile.in:
3276         Generic pointer holder class
3278         Courtesy of "Brent Dax" <brentdax@cpan.org>
3280 2002-01-09 21:19  dan
3282         * MANIFEST, classes/perlarray.pmc, t/op/pmc.t, t/pmc/pmc.t: Array
3283         patches.
3285 2002-01-09 19:54  dan
3287         * io/io_unix.c: Whoops. Forgot one
3289 2002-01-09 19:43  dan
3291         * key.c, classes/perlhash.pmc, t/op/pmc_perlhash.t,
3292         t/pmc/perlhash.t: Fix hash crash bugs
3294         Courtesy of Simon Glover <scog@roe.ac.uk>
3296 2002-01-09 19:13  dan
3298         * memory.c: Signedness whoops.
3300         Courtesy of Simon Glover <scog@roe.ac.uk>
3302 2002-01-09 18:23  dan
3304         * MANIFEST, Makefile.in, include/parrot/io.h, io/io.c, io/io_os.c,
3305         io/io_stdio.c, io/io_win32.c: Changes:
3307         -Minor layer cleanups -Win32 layer added (mostly stubs for now) but
3308         will be using the   Win32 API and company rather than the unix-ish
3309         fake ones.  -stdin/stdout/stderr Win32 specific code added. Rather
3310         than use   0,1,2, Microsoft says use GetStdHandle(), etc. so that
3311         stuff is   there. Soon we should be able to start using these
3312         rather than   fprintf(stderr, ...) and remove stdio linkage.
3314         Courtesy of <mrjoltcola@mindspring.com>
3316 2002-01-09 17:26  dan
3318         * test_main.c: Fixes bad code gen on x86.
3320         Courtesy of Josh Wilmes <josh@hitchhiker.org>
3322 2002-01-09 17:24  dan
3324         * Configure.pl, config_h.in, core.ops, key.c, classes/perlint.pmc,
3325         classes/perlnum.pmc: This patch adds macros to the config.h file
3326         for INTVAL and NUMVAL printf formats.
3328         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3330 2002-01-08 22:55  ajgough
3332         * docs/vtables.pod: Clarify what get_string should do.
3334 2002-01-08 20:05  dan
3336         * key.c: Keep comments in sync.
3338         Courtesy of Simon Glover <scog@roe.ac.uk>
3340 2002-01-08 19:50  dan
3342         * memory.c, include/parrot/memory.h: Need a realloc
3344 2002-01-08 17:24  gregor
3346         * .cvsignore, Configure.pl, Makefile.in:
3347         Added 'reconfig' make target and corresponding --reconfig option to
3348         Configure.pl, so its very easy to re-run Configure.pl with the last
3349         (command-line) options you passed it.
3351 2002-01-08 16:33  dan
3353         * core.ops, make_vtable_ops.pl, Parrot/OpsFile.pm,
3354         lib/Parrot/OpsFile.pm: Add in, out, and inout parameters to teh ops
3355         in core.ops. Potential help for optimizers and JITters.
3357         Courtesy of gregor@linux1.kennedytech.com
3359 2002-01-08 16:32  dan
3361         * key.c: Grab key length from the right spot
3363         Courtesy of "Peter Gibbs" <peter@emkel.co.za>
3365 2002-01-08 13:27  ajgough
3367         * test_main.c: Fix slight thinko in realloc usage for reading from
3368         stdin.
3370 2002-01-08 11:34  ajgough
3372         * test_main.c: Allow test_parrot to read bytecode stream from
3373         stdin, adds -f command line option, with "-f -" doing the stdin
3374         stuff.
3376 2002-01-08 06:34  jgoff
3378         * key.c, include/parrot/key.h: key.c - Added simple implementation
3379         of buckets.  include/parrot/key.h - Added enum_key_bucket type
3381 2002-01-08 03:21  jgoff
3383         * include/parrot/key.h: Added an undef type to the key structure,
3384         so we can delete keys without confusion.
3386 2002-01-07 22:09  dan
3388         * key.c, packfile.c, string.c, include/parrot/key.h,
3389         include/parrot/packfile.h, include/parrot/string.h: Fix whines
3390         about index being redefined
3392         Courtesy of Nick Clark
3394 2002-01-07 21:15  dan
3396         * ops2pm.pl: Don't allow the same ops lib to be included twice.
3398         Courtesy of Steve Fink <steve@fink.com>
3400 2002-01-07 20:48  dan
3402         * Parrot/Test.pm, lib/Parrot/Test.pm: Report useful info for test
3403         failures
3405         Courtesy of "Brent Dax" <brentdax@cpan.org>
3407 2002-01-07 20:43  dan
3409         * docs/intro.pod: Missing a comma
3411         Courtesy of "coral" <coral@eekeek.org>
3413 2002-01-07 20:41  dan
3415         * global_setup.c: Quiet a warning
3417         Courtesy of Simon Glover <scog@roe.ac.uk>
3419 2002-01-07 18:58  gregor
3421         * t/op/.cvsignore:
3422         Ignore intermediate test files.
3424 2002-01-07 17:01  gregor
3426         * ops2c.pl:
3427         Print a warning if an .ops file is mentioned more than once on the
3428         command line.
3430 2002-01-07 16:12  ajgough
3432         * t/: op/pmc_perlhash.t, pmc/perlhash.t: A couple more hash tests,
3433         these shouldn't fail.
3435 2002-01-07 15:15  simon
3437         * t/: op/pmc_perlhash.t, pmc/perlhash.t:
3438         Stop segfaults.
3440 2002-01-07 15:11  simon
3442         * key.c:
3443         Fix zero-termination bug in hash function.
3445 2002-01-07 13:37  ajgough
3447         * MANIFEST, t/op/pmc_perlhash.t, t/pmc/perlhash.t: Added
3448         pmc_perlhash.t, one test currently fails, one passes, yin-yang fun.
3450 2002-01-07 11:53  brentdax
3452         * Configure.pl: Fixes the + thing in prompts, plus adds a synonym
3453         (:add{foo}) and a new deleting thing (:rem{foo})
3455 2002-01-07 11:43  simon
3457         * Configure.pl:
3458         Gobble the + before concatenating.
3460 2002-01-07 03:53  dan
3462         * Makefile.in: Dependency fix for new ops setup.
3464 2002-01-07 03:33  jgoff
3466         * classes/perlarray.pmc: Add negative indices, and fix a small
3467         allocation problem.
3469 2002-01-06 23:54  ajgough
3471         * hints/os2.pl: Makes the hints file take account of ldflags and
3472         ccflags being split.  This hints file is still very specific to
3473         builds with gnu tools, but a proper solution can wait.   Thanks to
3474         Nick Burch.
3476 2002-01-06 22:12  dan
3478         * Makefile.in, ops2c.pl, Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm:
3479             -changes Parrot::OpLib::core's dependencies to reflect the new
3480         selectable ops files    -allows some of the special forms of 'goto'
3481         inside the PREAMBLE of an opcode file
3483         Courtesy of "Brent Dax" <brentdax@cpan.org>
3485 2002-01-06 19:59  simon
3487         * Makefile.in:
3488         *cough*
3490 2002-01-06 18:19  dan
3492         * classes/perlhash.pmc: Fix some type issues.
3494         Courtesy of Josh Wilmes <josh@hitchhiker.org>
3496 2002-01-06 18:03  dan
3498         * Configure.pl, Makefile.in: It adds a prompt to Configure asking
3499         for a list of opcode files to use.  The default is everything
3500         available except for obscure.ops.
3502         In addition, it makes it so that if your answer to a question
3503         starts with '+', it will concatenate it to the default.  For
3504         example:
3506         What C compiler do you want to use? [cl] +HAHAHA!!!
3508         will result in $PConfig{cc} eq "cl HAHAHA!!!".  While that example
3509         is not terribly useful, it is quite useful with things like
3510         command-line flags and the like.
3512         Finally, it contains a couple tweaks so that my syntax-highlighting
3513         editor recognizes some heredocs correctly.  :^)
3515         Courtesy of "Brent Dax" <brentdax@cpan.org>
3517 2002-01-06 17:59  dan
3519         * KNOWN_ISSUES, MANIFEST, README: Doc Patches
3521         Courtesy of "Bryan C. Warnock" <bwarnock@raba.com>
3523 2002-01-06 17:58  dan
3525         * MANIFEST:  We're missing a couple of files from the MANIFEST.
3527         Courtesy of Simon Glover <scog@roe.ac.uk>
3529 2002-01-06 17:57  dan
3531         * ops2c.pl, Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm:   1.
3532         Compiler directives, etc. in files other than core.ops will now
3533         work.   2.  Compiler warnings will now display the file and line
3534         number of the  opcode file.
3536         Courtesy of "Brent Dax" <brentdax@cpan.org>
3538 2002-01-06 17:52  dan
3540         * languages/jako/jakoc: Fix breakage caused by iton/ntoi going away
3542         Courtesy of Simon Glover <scog@roe.ac.uk>
3544 2002-01-06 17:36  dan
3546         * docs/intro.pod: Lots of updates
3548         Courtesy of Simon Glover <scog@roe.ac.uk>
3550 2002-01-06 02:34  gregor
3552         * interpreter.c:
3553         Add some internal documentation on the theory of operation of the
3554         prederef code.
3556 2002-01-06 02:17  gregor
3558         * interpreter.c:
3559         Removed unnecessary include.
3561 2002-01-05 12:37  simon
3563         * classes/.cvsignore:
3564         Ignore generated .h files.
3566         Courtesy of: Josh Wilmes <josh@hitchhiker.org>
3568 2002-01-05 12:37  simon
3570         * Configure.pl:
3571         Make lcc happier by adding a dummy structure.
3573         Courtesy of: Josh Wilmes <josh@hitchhiker.org>
3575 2002-01-05 12:35  simon
3577         * global_setup.c, classes/perlundef.pmc, t/op/pmc.t, t/pmc/pmc.t:
3578         Make perlundef work. (And coincidentally stop segfaults in the
3579         tests :)
3581         Courtesy of: Jason Gloudon <perl@gloudon.com>
3583 2002-01-05 04:59  dan
3585         * t/: op/pmc.t, pmc/pmc.t: Undef tests added.
3587 2002-01-05 04:55  jgoff
3589         * classes/perlhash.pmc: Added perlhash class definition
3591 2002-01-05 04:48  dan
3593         * core.ops: Fix on 64 bit platforms with 32-bit opcode_t
3595         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3597 2002-01-05 03:57  jgoff
3599         * MANIFEST, Makefile.in, core.ops, global_setup.c, key.c,
3600         vtable.tbl, classes/Makefile.in, classes/default.pmc,
3601         include/parrot/key.h, include/parrot/pmc.h, t/op/pmc.t,
3602         t/pmc/pmc.t: Initial hash commit.
3604         core.ops - Adding set({i,n,s},p,s) and set(p,{i,n,s},s) operations.
3605          key.h  - Adding NUM_BUCKETS classes/default.pmc - Adding
3606         set_{integer,number,string}_index_s
3608         This does not yet do collision resolution, but will soon.
3610 2002-01-05 02:54  dan
3612         * interpreter.c: More unsigned fixes
3614         Courtesy of "Bryan C. Warnock" <bwarnock@raba.com>
3616 2002-01-04 22:13  dan
3618         * Configure.pl, hints/mswin32.pl: Makes config's building of the
3619         test programs happier.
3621         Courtesy of "Jason Diamond" <jason@injektilo.org>
3623 2002-01-04 19:00  dan
3625         * Configure.pl, Makefile.in, hints/darwin.pl: Add link flags as
3626         separate things
3628 2002-01-04 18:27  dan
3630         * Configure.pl, Makefile.in, classes/Makefile.in, hints/mswin32.pl:
3631         Fixes to get things configuring and building on Win32 Native.
3633         Courtesy of "Jason Diamond" <jason@injektilo.org>
3635 2002-01-04 17:39  dan
3637         * hints/vms.pl: debug cleanup
3639 2002-01-04 16:53  dan
3641         * docs/parrot.pod:  The enclosed patch brings the list of
3642         documentation in parrot.pod
3643          up to date.
3645         Courtesy of Simon Glover <scog@roe.ac.uk>
3647 2002-01-04 16:47  dan
3649         * test_main.c, Parrot/Jit/i386-linux.pm,
3650         lib/Parrot/Jit/i386-linux.pm: In an attempt to just keep knocking
3651         off warnings..
3653         Courtesy of Kevin Falcone <kevin@jibsheet.com>
3655 2002-01-04 16:44  dan
3657         * Configure.pl, Makefile.in: Fixed linking to use linker.
3659         Courtesy of Josh Wilmes <josh@hitchhiker.org>
3661 2002-01-04 16:39  dan
3663         * io/io_stdio.c: Added CVS tag info
3665 2002-01-04 16:35  dan
3667         * hints/cygwin.pl: Time for this. We need a sane linker, and ld2
3668         isn't it
3670 2002-01-04 16:26  dan
3672         * languages/miniperl/Miniperl/Tokenizer.pm: Quiet a warning in the
3673         Tokenizer test
3675         Courtesy of Jonathan Stowe <gellyfish@gellyfish.com>
3677 2002-01-04 16:17  dan
3679         * chartypes/unicode.c: Silence some warnings.
3681         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3683 2002-01-04 16:09  dan
3685         * classes/: genclass.pl, perlarray.pmc, perlint.pmc, perlnum.pmc,
3686         perlstring.pmc, perlundef.pmc:  - genclass.pl attempts to put $Id$
3687         into generated files
3688            but the $Id$ string gets mangled when it's committed.
3689            This patch fixes the existing .pmc files and fixes genclass.pl.
3691          - Makes capitalization in .pmc header match actual filenames
3693          - The command for calling genclass.pl in vtables.pod is incorrect,
3694            since it assumes you're running in classes/ but genclass.pl
3695         assumes
3696            it's being run from the main directory. I changed genclass.pl to
3697         not
3698            care.
3700         Courtesy of Steve Fink <steve@fink.com>
3702 2002-01-04 03:57  dan
3704         * MANIFEST, io/TODO, io/io_stdio.c: No wonder things worked for
3705         me--I *had* the files:wq!
3707 2002-01-04 03:40  dan
3709         * MANIFEST: Whoops--remove files not really there
3711 2002-01-04 03:37  dan
3713         * interpreter.c, stacks.c, include/parrot/stacks.h: The patch below
3714         my sig adds a new_stack() function to take care of the allocation
3715         and setup of "generic" stacks.
3717         Courtesy of "Brent Dax" <brentdax@cpan.org>
3719 2002-01-04 02:36  dan
3721         * core.ops:  The entry in core.ops for puts(s|sc) is missing a =cut
3722         and so
3723          writes a load of junk in core_ops.pod. Applied patch fixes.
3725         Courtesy of Simon Glover <scog@roe.ac.uk>
3727 2002-01-04 02:35  dan
3729         * classes/: perlint.pmc, perlnum.pmc, perlstring.pmc: The PerlInt
3730         logical-or is using get_integer instead of get_bool for logical
3731         operations. This patch corrects that.
3733         Perlnum and perlstring have working get_bool's, so the default
3734         logical_or and logical_and should be sufficient. The empty methods
3735         are pointed to the default logical_or.
3737         Courtesy of Jason Gloudon <perl@gloudon.com>
3739 2002-01-04 02:31  dan
3741         * Makefile.in: docs/Makefile should be removed by realclean, but
3742         isn't
3744         Courtesy of Kevin Falcone <kevin@jibsheet.com>
3746 2002-01-04 02:29  dan
3748         * classes/: Makefile.in, pmc2c.pl: PMC inheritance! Yay!
3750         Courtesy of Steve Fink <steve@fink.com>
3752 2002-01-04 00:51  dan
3754         * docs/vtables.pod: More docs
3756         Courtesy of Steve Fink <steve@fink.com>
3758 2002-01-04 00:47  dan
3760         * Configure.pl: Updated 64-bit patch
3762         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3764 2002-01-04 00:43  dan
3766         * Configure.pl: 64-bit Fix.
3768         Courtesy of "Bryan C. Warnock" <bwarnock@raba.com>
3770 2002-01-03 22:37  dan
3772         * MANIFEST, Makefile.in, interpreter.c, include/parrot/io.h,
3773         io/io.c, io/io_os.c: Code cleanup, started STDIO layer, started
3774         some buffering work.       Additional work on other layers.
3776         Courtesy of Melvin Smith <mrjoltcola@mindspring.com>
3778 2002-01-03 19:41  gregor
3780         * disassemble.pl, obscure.ops, packfile.c, pbc2c.pl:
3781         Updated copyright messages on top-level files.
3783 2002-01-03 04:23  robert
3785         * make.pl: Add author information.  Bonsai test.
3787 2002-01-03 04:02  dan
3789         * io/io_os.c: Twig Bonsai
3791 2002-01-03 03:45  dan
3793         * io/: io_os.c, io_os.c: Twig Bonsai
3795 2002-01-03 03:41  dan
3797         * io/io_os.c: Twig Bonsai
3799 2002-01-02 21:42  gregor
3801         * packfile.c, include/parrot/packfile.h:
3802         Get rid of warnings in packfile.[hc]
3804 2002-01-02 20:39  gregor
3806         * manicheck.pl:
3807         Bracketed translated patterns with ^ and $.
3809 2002-01-02 20:11  dan
3811         * io/io_os.c: silence a warning
3813 2002-01-02 19:52  grunblatt
3815         * jit.c, jit2h.pl, include/parrot/jit.h: Moved the definition of
3816         op_assembly to jit_struct.h, so that we get the real number of ops.
3817          Removed some warnings.
3819 2002-01-02 19:31  tom
3821         * string.c: Fix string transcoding so that it actually works.
3823         Patch from Peter Gibbs <peter@emkel.co.za>
3825 2002-01-02 19:20  gregor
3827         * manicheck.pl:
3828         A program to check the MANIFEST file, accounting for .cvsignore
3829         files.
3831 2002-01-02 19:19  dan
3833         * t/harness: twig bonsai
3835 2002-01-02 19:13  dan
3837         * t/harness: twig bonsai
3839 2002-01-02 18:54  dan
3841         * t/harness: Tweak to test Bonsai
3843 2002-01-02 16:27  dan
3845         * Configure.pl: Allow 64-bit build of parrot on systems with a
3846         mixed 32/64 bit perl
3848         Courtesy of David M. Lloyd <dmlloyd@tds.net>
3850 2002-01-02 15:33  simon
3852         * MANIFEST, docs/Makefile:
3853         Fixed up MANIFEST. (And I removed the Makefile in docs/)
3855         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
3857 2002-01-02 13:51  simon
3859         * Configure.pl:
3860         Die on broken manifest.
3862 2002-01-02 13:48  simon
3864         * jit2h.pl, examples/assembly/mops.pasm:
3865         Clear up JIT warnings.
3867         Courtesy of: Nick Clark <nick@unfortu.net>
3869 2002-01-02 04:10  dan
3871         * io/io.c, io/io_os.c, t/op/interp.t: IO stack now gets initialized
3872         only once, so new interp creation works again
3874         Courtesy of Melvin Smith <mrjoltcola@mindspring.com>
3876 2002-01-02 03:32  dan
3878         * t/op/interp.t: Stubbed the test out, since it's hanging at the
3879         moment.
3881 2002-01-02 00:55  dan
3883         * MANIFEST, Makefile.in, core.ops, include/parrot/io.h, io/io.c,
3884         io/io_os.c: Initial IO system patches
3886         Courtesy of <mrjoltcola@mindspring.com>
3888 2002-01-01 22:55  ajgough
3890         * classes/default.pmc: On second thoughts, and some prodding, the
3891         set_* methods now only set the appropriate part of the cache, and
3892         do nothing else.
3894 2002-01-01 22:29  ajgough
3896         * classes/default.pmc:  Wrote a whole host of default pmc methods.
3898          set_* create appropriate Perl* result.
3899          get_* simply grabs needed bit of cache.*_val
3901          Other methods do the rightest thing I can think of, at the moment.
3903          None yet cope with overflow, the modulus operation needs to be
3904         checked as
3905         I don't know quite which semantics we really want.
3907         Not tested yet.
3909 2002-01-01 20:23  dan
3911         * docs/Makefile, encodings/singlebyte.c, encodings/utf16.c,
3912         encodings/utf32.c, encodings/utf8.c, include/parrot/encoding.h: Got
3913         rid of unneeded tmp var and eliminated const from encode prototype
3914         since it does make changes to the string.
3916         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
3918 2002-01-01 20:11  dan
3920         * Makefile.in: Make clean now tosses pdump.o
3922         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
3924 2002-01-01 19:49  dan
3926         * pdump.c, test_main.c: Warnings cleanup
3928         Courtesy of Josh Wilmes <josh@sky.net>
3930 2002-01-01 19:45  dan
3932         * Configure.pl, Makefile.in, docs/.cvsignore, docs/Makefile.in,
3933         hints/mswin32.pl, languages/jako/Makefile.in,
3934         languages/scheme/Makefile.in: Makes cleanup better on non-Unix
3935         platforms
3937         Courtesy of "Jason Diamond" <jason@injektilo.org>
3939 2002-01-01 19:41  dan
3941         * include/parrot/register.h: Clean up some warnings
3943         Courtesy of Josh Wilmes <josh@hitchhiker.org>
3945 2002-01-01 19:10  simon
3947         * pbc2c.pl, Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm:
3948         Hack-around to enable compilation of code using vtable ops.
3950 2002-01-01 18:43  dan
3952         * encodings/: singlebyte.c, utf16.c, utf32.c, utf8.c: Toss <0
3953         checks on unsigned things
3955         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
3957 2002-01-01 18:26  dan
3959         * runops_cores.c: More warning silences.
3961         Courtesy of Nicholas Clark <nick@unfortu.net>
3963 2002-01-01 18:25  dan
3965         * trace.c: Shuts up a warning.
3967         Courtesy of Nicholas Clark <nick@unfortu.net>
3969 2002-01-01 18:24  dan
3971         * encodings/singlebyte.c: Clean up some warnings.
3973         Courtesy of Nicholas Clark <nick@unfortu.net>
3975 2002-01-01 18:20  dan
3977         * Configure.pl: Hey, those PPros are really x86 systems! Who'dve
3978         thunk it?
3980         Courtesy of "Bryan C. Warnock" <bwarnock@raba.com>
3982 2002-01-01 18:17  dan
3984         * packfile.c: Warning cleanup
3986         Courtesy of Nicholas Clark <nick@unfortu.net>
3988 2002-01-01 17:53  dan
3990         * string.c: New string size should be based on output encoding's
3991         size, not input encoding's size.
3993         Courtesy of: "Peter Gibbs" <peter@emkel.co.za>
3995 2002-01-01 17:22  dan
3997         * Configure.pl, core.ops, interpreter.c, memory.c, runops_cores.c,
3998         string.c, test_main.c, trace.c, include/parrot/exceptions.h,
3999         include/parrot/interpreter.h, include/parrot/memory.h,
4000         include/parrot/oplib.h, include/parrot/string.h, t/op/string.t:
4001         Warnings fixups.
4003         Courtesy of Chip Turner <cturner@redhat.com>
4005 2002-01-01 17:09  dan
4007         * encodings/singlebyte.c, encodings/utf16.c, encodings/utf32.c,
4008         encodings/utf8.c, include/parrot/encoding.h: Some signed things are
4009         now unsigned, as is proper.
4011         Courtesy of: "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4012         Courtesy of: "Bryan C. Warnock" <bwarnock@raba.com>
4014 2002-01-01 16:59  dan
4016         * include/parrot/trace.h: Useless debugging prototype removed
4018         Courtesy of: "Bryan C. Warnock" <bwarnock@raba.com>
4020 2002-01-01 16:58  dan
4022         * MANIFEST: We forgot a file.
4024         Courtesy of "Bryan C. Warnock" <bwarnock@raba.com>
4026 2002-01-01 03:53  dan
4028         * Configure.pl: Okay, I give. Removed some warnings because the
4029         darned system headers were triggering them. Sloppy, sloppy
4030         coding...
4032 2002-01-01 03:48  dan
4034         * config_h.in: Add in an unsigned INTVAL.
4036         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4038 2002-01-01 03:46  dan
4040         * global_setup.c: Clean up some compiler warnings.
4042         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4044 2002-01-01 03:43  dan
4046         * ops2c.pl, Parrot/OpTrans.pm, Parrot/OpTrans/CPrederef.pm,
4047         lib/Parrot/OpTrans.pm, lib/Parrot/OpTrans/CPrederef.pm,
4048         include/parrot/op.h: Cleaned up some things to make the compiler
4049         happier.
4051         Courtesy of Nicholas Clark <nick@unfortu.net>
4053 2002-01-01 03:14  dan
4055         * Configure.pl: Quad updates.
4057         Courtesy of Nicholas Clark <nick@unfortu.net>
4059 2001-12-31 22:53  dan
4061         * include/parrot/op.h: Typedef had parameters backwards. Threw
4062         core.ops for a big whiny warnings loop.
4064 2001-12-31 22:37  dan
4066         * Makefile.in, resources.c: Tweaks to try and get things to build
4067         in the right order.
4069 2001-12-31 21:58  dan
4071         * Configure.pl: Stupid thinko fix
4073 2001-12-31 21:34  dan
4075         * Configure.pl, hints/mswin32.pl: Tweaks for Win32 builds
4077         Courtesy of: "Jason Diamond" <jason@injektilo.org>
4079 2001-12-31 21:32  dan
4081         * Configure.pl: Fix for non-gcc systems
4083 2001-12-31 20:22  dan
4085         * interpreter.c: Tweak so we can build on non-JIT platforms
4087 2001-12-31 20:11  dan
4089         * Configure.pl: Force the time on some copied files to be 'now' to
4090         make the Win builds much less annoying.
4092         Courtesy of "Jason Diamond" <jason@injektilo.org>
4094 2001-12-31 20:07  dan
4096         * Configure.pl: Nuke all object files in the parrot tree that
4097         matter when configuring.  Shouldn't be necessary with good
4098         dependencies in the makefile, but we don't have those yet.
4100 2001-12-31 20:00  gregor
4102         * chartypes/unicode.c:
4103         Silence unused variable warnings.
4105 2001-12-31 19:40  dan
4107         * Configure.pl: Minor Win32 tweaks. Tossed -Wtraditional, too
4109 2001-12-31 19:37  gregor
4111         * interpreter.c, jit.c, include/parrot/jit.h:
4112         Created a prototype for JIT functions and used it in interpreter.c.
4114 2001-12-31 19:31  dan
4116         * Configure.pl, test_gnuc.c: Better GCC detection (and version
4117         detection) with really cranky warnings if we find we're using it.
4119         Courtesy of: Nicholas Clark <nick@unfortu.net>
4121 2001-12-31 18:01  gregor
4123         * interpreter.c, include/parrot/interpreter.h, include/parrot/op.h:
4125         Fixed a few warnings wrt prototypes, etc.
4127 2001-12-31 17:23  dan
4129         * string.c: Silenced most of the compiler whines
4131 2001-12-31 17:15  gregor
4133         * Configure.pl:
4134         Get the ccname from either ccname or just cc config var.
4136 2001-12-31 17:14  gregor
4138         * Parrot/Op.pm, lib/Parrot/Op.pm:
4139         Another intermediate opbody notation. Could come in handy. Explicit
4140         types.
4142 2001-12-31 17:05  dan
4144         * string.c: Minor warnings update
4146 2001-12-31 17:00  dan
4148         * include/parrot/string.h: Warnings cleanup
4150 2001-12-31 16:00  simon
4152         * encodings/utf8.c, include/parrot/encoding.h:
4153         Remove a couple more.
4155 2001-12-31 15:58  simon
4157         * vtable_h.pl, include/parrot/global_setup.h, include/parrot/jit.h,
4158         include/parrot/op.h:
4159         Rid ourselves of a few warnings.
4161 2001-12-31 15:32  dan
4163         * Configure.pl: Made GCC ever so much pickier.
4165         Switch list courtesy of Jarkko.
4167 2001-12-31 15:22  dan
4169         * string.c: Tightened up initial allocation.
4171         Courtesy of:  "Peter Gibbs" <peter@emkel.co.za>
4173 2001-12-31 06:48  dan
4175         * Configure.pl: Minor Windows tweak
4177 2001-12-31 05:32  dan
4179         * core.ops: Unused temp variable tossed.
4181         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4183 2001-12-31 05:09  grunblatt
4185         * Configure.pl, Makefile.in, interpreter.c: Link jit.o only on
4186         supported plataforms
4188 2001-12-31 03:05  dan
4190         * Configure.pl, Makefile.in, classes/Makefile.in: Added in a
4191         platform-independent quote substitution for the makefiles.
4192         Hopefully this'll make the Win32 builds happier.
4194 2001-12-30 21:08  dan
4196         * string.c, include/parrot/string.h: More string system tweaks.
4198         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4200 2001-12-30 20:45  dan
4202         * core.ops: Some pod cleanup
4204         Courtesy of Josh Wilmes <josh@hitchhiker.org>
4206 2001-12-30 20:22  ajgough
4208         * docs/parrot_assembly.pod: removed ntoi and iton ops from docs, as
4209         we aren't using them right now.  Clarified the workings of set Px,
4210         Py and clone Px, Py.
4212 2001-12-30 20:15  grunblatt
4214         * jit.c, jit2h.pl, jit/i386/core.jit: Removed the warnings in jit.c
4215         Added readjit() to read *.jit files Updated core.jit to the new
4216         set_n_i
4218 2001-12-30 20:14  ajgough
4220         * examples/assembly/mops.pasm: Changed iton/ntoi to set.
4222 2001-12-30 19:52  dan
4224         * packfile.c, pdump.c, register.c, string.c, include/parrot/key.h,
4225         include/parrot/trace.h, platforms/generic.c: Compiler whine
4226         cleanups
4228         Courtesy of Josh Wilmes <josh@hitchhiker.org>
4230 2001-12-30 19:13  dan
4232         * Configure.pl, Makefile.in: Make GCC pickier by default.
4234         Courtesy of: Josh Wilmes <josh@hitchhiker.org>
4236 2001-12-30 18:41  dan
4238         * core.ops, t/op/integer.t, t/op/number.t: Transformed iton and
4239         ntoi opcodes to sets.
4241         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4243 2001-12-30 17:58  gregor
4245         * Makefile.in:
4246         'make' no longer builds the mops test. Use 'make mops' for that. To
4247         run the test, you can do 'make mopstest'.
4249 2001-12-30 17:30  gregor
4251         * Makefile.in:
4252         Fixed one oversight. 'make clean' was removing Parrot/Types.pm. Bad
4253         Gregor.
4255 2001-12-30 17:26  gregor
4257         * .cvsignore, Configure.pl, Makefile.in, VERSION, config_h.in,
4258         core.ops, interpreter.c, make_vtable_ops.pl, obscure.ops, ops2c.pl,
4259         Parrot/BuildUtil.pm, Parrot/OpsFile.pm, lib/Parrot/BuildUtil.pm,
4260         lib/Parrot/OpsFile.pm, include/parrot/oplib.h:
4261         Build enhancements. Originally to support building shared
4262         libraries, but now of broader impact.
4264           * .cvsignore: Ignore the blib/ directory, about which more later.
4266           * Configure.pl:
4268               * Got rid of TAB formatting and lined a few things up.
4270               * Added header comment with CVS Id variable, and a few other
4271                 block header comments.
4273               * Uses new Parrot::BuildUtil module to determine the Parrot
4274                 version.
4276               * Reworded a few messages, added a couple, and wrapped
4277         messages
4278                 to 79 columns.
4280               * Added 2002 to the Copyright statement.
4282               * Added new configure variables: VERSION, MAJOR, MINOR and
4283         PATCH
4285               NOTE: Please see the 'Alas perl5.7.2' comment. 5.7.2 is
4286         greater
4287               than 5.6.0, but the comment implies it isn't.
4289           * Makefile.in:
4291               * Added $(SO), $(A) and $(AR_CRS) defines for library
4292         building.
4294               * Added $(RM_RF) define for removing directory trees
4296               * Grouped generated files into two classes: "sticky" (made by
4297         configure,
4298                 persisting across 'make clean') and 'fluid' (made during
4299         the build
4300                 process, deleted by 'make clean').
4302               * Added header comments.
4304               * Added target for test_prog linked with shared library.
4306               * Added rules to build shared libraries in blib/lib. The
4307         libraries are
4308                 built with trailing version numbers in their file names,
4309         and then
4310                 symbolic links are created for shorter and no version tag
4311         variants.
4313               * Added some missing dependencies
4315               * Added some missing 'make clean' targets.
4317               * Added 'make realclean' target that deletes files created by
4318                 Configure.pl (including Makefile), forcing a re-configure.
4320               * Added a 'status' CVS target.
4322           * VERSION: New file, contains only the version. This version
4323         number is
4324             propagated to a few places, such as the core oplib version
4325         number. This
4326             reduces the amount of coordination that has to happen to get
4327         version
4328             number stuff throughout the tree in sync and updated prior to
4329         cutting
4330             a new release. Feel free to grep for '0.0.3' to see the other
4331         files
4332             that contain the version number (but, do that in a fresh CVS
4333         copy, or
4334             after doing 'make realclean').
4336           * config_h.in: Renamed PARROT_CORE_OPLIB_*_VERSION to
4337         PARROT_*_VERSION,
4338             since the oplib and Parrot itself share a version number now.
4339         Added
4340             PARROT_PATCH_VERSION (the third component) and PARROT_VERSION
4341         (a
4342             string).
4344           * core.ops: Uses new notation "VERSION = PARROT_VERSION" instead
4345         of
4346             specifying the version by hand. Non-core oplibs will set this
4347         to
4348             a quoted dot-string with three natural number components
4349         without
4350             leading zeros.
4352           * interpreter.c: Make use of PARROT_VERSION to simplify some
4353         sprintf()s, and
4354             to get the complete version number in the resulting strings
4355         (including the
4356             new PATCH portion).
4358           * make_vtable_ops.pl: Put the "VERSION = PARROT_VERSION" line int
4359         the
4360             generated file.
4362           * obscure.ops: Use the new "VERSION = PARROT_VERSION" technique.
4364           * ops2c.pl: Account for the PATCH version, too. This affects the
4365         name of the
4366             oplib init function, and the oplib info struct initializer.
4368           * Parrot/BuildUtil.pm: New file for reading in and validating the
4369         contents of
4370             the new VERSION file. Other build utilities could go here in
4371         futuer.
4373           * Parrot/OpsFile.pm:
4375               * Allow three components in version number, and require that
4376         the value
4377                 be in double quotes.
4379               * Allow "VERSION = PARROT_VERSION", substituting the shared
4380         Parrot
4381                 VERSION in that case.
4383           * include/parrot/oplib.h: Add the patch_version member.
4385 2001-12-30 12:16  simon
4387         * MANIFEST, Makefile.in:
4388         More stuff forgotten from MANIFEST.
4390 2001-12-30 12:13  simon
4392         * MANIFEST:
4393         Missing JIT file.
4395 2001-12-30 12:12  simon
4397         * jit2h.pl:
4398         Safety first.
4400 2001-12-30 12:12  simon
4402         * Makefile.in:
4403         Gragh.
4405 2001-12-30 12:04  simon
4407         * Makefile.in, core.ops, packfile.c, pbc2c.pl, string.c,
4408         classes/perlstring.pmc, encodings/singlebyte.c, encodings/utf16.c,
4409         encodings/utf32.c, encodings/utf8.c, include/parrot/encoding.h,
4410         include/parrot/string.h, t/op/string.t:
4411         * Expand the strings test suite to be more complete * Make string
4412         commands more consistent (i.e, now the only string command that
4413         actually changes the original is chopn) * Significantly reduce the
4414         number of memory allocations and eliminate reallocations.
4416         Courtesy of: David Jacobs <jacobsl001@hawaii.rr.com>
4418 2001-12-29 22:12  dan
4420         * interpreter.c, key.c, register.c, stacks.c, string.c,
4421         test_main.c, trace.c: Updates to match the coding standards.
4423         Courtesy of Bryan C. Warnock <bwarnock@raba.com>
4425 2001-12-29 20:42  grunblatt
4427         * jit2h.pl, Parrot/Jit/i386-bsd.pm, Parrot/Jit/i386-linux.pm,
4428         Parrot/Jit/i386-nojit.pm, jit/i386/core.jit, jit/i386/lib.jit,
4429         jit/i386/string.jit, lib/Parrot/Jit/i386-bsd.pm,
4430         lib/Parrot/Jit/i386-linux.pm, lib/Parrot/Jit/i386-nojit.pm: Allow
4431         us to write asm in *.jit files instead of hex.  Courtesy of: Rafael
4432         Kitover <caelum@debian.org>
4434 2001-12-28 21:20  dan
4436         * core.ops: Okay, now print takes a preceding file handle.
4438         I feel so dirty now.
4440 2001-12-28 20:46  dan
4442         * core.ops, t/op/hacks.t: Added in the readline op, as well as
4443         changing the open op to use fopen under the hood.
4445         THESE OPS ARE EVIL! AND TEMPORARY! USE FOR DEBUGGING PURPOSES ONLY!
4447 2001-12-28 18:20  ajgough
4449         * core.ops, make_vtable_ops.pl, string.c, classes/default.pmc,
4450         classes/perlstring.pmc, docs/parrot_assembly.pod, docs/strings.pod,
4451         include/parrot/exceptions.h, include/parrot/string.h,
4452         t/op/pmc_perlstring.t, t/op/string.t, t/pmc/perlstring.t: Added
4453         repeat op, so that "foo" x 10 can be done.  Filled in PerlString
4454         vtables appropriately.  Also tests for same, new pmc_perlstring.t
4455         to hold tests specific to PerlStrings, as the pmc.t file is taking
4456         too long to run and slowing down my thought processes.
4458         Changes to strings.c etc to take string functions.
4460         Some changes to the strings docs, but not yet complete.
4462         Also, PerlString was copying pointers to strings, rather than
4463         strings themselves, so some action-at-a-distance bugs were creeping
4464         in, I think I've fixed this so everything works nicely.
4466 2001-12-28 04:56  gregor
4468         * examples/assembly/pmcmops.pasm:
4469         PMC-using version of mops.pasm.
4471         Courtesy of: Bryan C. Warnock <bwarnock@raba.com>
4473 2001-12-28 04:56  gregor
4475         * examples/assembly/.cvsignore:
4476         Small tinkering. Removed old stuff, etc.
4478 2001-12-28 01:26  gregor
4480         * examples/mops/mops.scheme:
4481         Scheme example. Major GC thrashing on umb-scheme here. Probably due
4482         to the very un-scheme-like implementation.
4484 2001-12-28 01:19  gregor
4486         * examples/mops/mops.c:
4487         Some people's picky compilers don't like us redefineing time(), so
4488         we call it time_n().  :)
4490 2001-12-28 00:28  gregor
4492         * examples/mops/: README, mops.ps:
4493         Added a PostScript example and a README.
4495 2001-12-27 23:57  gregor
4497         * Makefile.in:
4498         Build the C mops translation in examples/mops/mops.c
4500 2001-12-27 23:56  gregor
4502         * examples/mops/: .cvsignore, mops.c, mops.pl, mops.py, mops.rb:
4503         Some translations of mops.pasm into other languages, for inner loop
4504         performance comparisons.
4506 2001-12-27 22:40  gregor
4508         * examples/assembly/mops.pasm:
4509         Fixed erroneous file name in header comment.
4511 2001-12-27 21:18  gregor
4513         * pbc2c.pl:
4514         One-liner to avoid no-op gotos to the next op.
4516 2001-12-27 21:06  gregor
4518         * runops_cores.c:
4519         Fixed -p (profiling). Slow runops core was doing unconditional
4520         tracing, when it should have been checking the flags.
4522 2001-12-27 18:50  ajgough
4524         * core.ops, string.c, chartypes/unicode.c, chartypes/usascii.c,
4525         classes/perlstring.pmc, include/parrot/chartype.h,
4526         include/parrot/string.h, t/op/pmc.t, t/op/string.t, t/pmc/pmc.t:
4527         dded get_digit() to chartypes  * Added string_bool() to strings  *
4528         Added if_s_ic op, to use same  * Added (PerlString)->get_bool stuff
4529         to perlstring.pmc  * Tests for above, also a for couple of other
4530         ops without tests
4532         The unicode chartype has only had placeholders added for get_digit,
4533         string_to_num has been updated to use type->get_digit rather than
4534         the previous ascii-isms.  Some remain, but we need to carefully
4535         define what we mean by a number before we let thousands of code
4536         points act as a minus sign.
4538 2001-12-27 18:32  dan
4540         * classes/: perlint.pmc, perlnum.pmc, perlstring.pmc: Silenced some
4541         compiler warnings.
4543         Courtesy of "David  Jacobs" <jacobsl001@hawaii.rr.com>
4545 2001-12-27 18:23  dan
4547         * t/op/bitwise.t: More tests.
4549         Courtesy of "David Jacobs" <jacobsl001@hawaii.rr.com>
4551 2001-12-27 17:08  gregor
4553         * MANIFEST, Makefile.in, config_h.in, core.ops, interpreter.c,
4554         make_vtable_ops.pl, obscure.ops, ops2c.pl, ops2pm.pl, test_main.c,
4555         trace.c, Parrot/OpsFile.pm, include/parrot/interp_guts.h,
4556         include/parrot/interpreter.h, include/parrot/oplib.h,
4557         lib/Parrot/OpsFile.pm, platforms/generic.c, platforms/generic.h,
4558         platforms/win32.c, platforms/win32.h:
4559         Initial code for dynamic loading of oplibs, applied for now to the
4560         loading of the core_prederef oplib when the -P flag is passed to
4561         test_parrot.
4563           * MANIFEST: Added entry for the new file include/parrot/oplib.h.
4565           * Makefile.in:
4567               * Added libcore_prederef_0_3.so to the shared target.
4568               * Added build rule for libcore_prederef_0_3.so.
4569               * Added dependencies on Parrot/OpsFile.pm and Parrot/Op.pm
4570                 to Parrot/OpLib/core.pm, core_ops.c and
4571                 core_ops_prederef.c.
4573           * config_h.in: Added defines for constants used to locate the
4574             core oplib's init function, and the core_prederef oplib for
4575             dynaloading.
4577           * core.ops: Added a VERSION = 0.3 line near the top. This is now
4578             required by Parrot/OpsFile.pm.
4580           * interpreter.c:
4582               * Added init_prederef() and stop_prederef() functions to load
4583                 and unload the core_prederef oplib when we are in prederef
4584                 mode.
4586                 NOTE: In all likelihood, the prederef stuff has a rapidly
4587                 dwindling time-to-live. The JIT should provide vastly
4588         superior
4589                 performance, and loading an alternate set of core_ops isn't
4590                 the real direction for the dynaloading stuff. Loading
4591                 *additional* ops is. It does provide a handy test case for
4592         the
4593                 general idea for now, though.
4595               * Gets the core copcode table, etc. via the core oplibs oplib
4596                 info pointer, as returned by the core oplib's init
4597         function.
4599           * ops2c.pl
4601               * Make use of the version, major version and minor version
4602                 stuff parsed by Parrot/OpsFile.pm
4604               * The only exported symbol in the generated files is the init
4605                 function now, since that returns an oplib info struct
4606                 pointer, and all the important stuff can be found there.
4608           * ops2pm.pl: Put the oplib version in the generated .pm file.
4610           * test_main.c: Small changes necessitated by changes in the names
4611             of some members of the interpreter struct.
4613           * trace.c: Small changes necessitated by changes in the names
4614             of some members of the interpreter struct.
4616           * Parrot/OpsFile.pm: Require a "VERSION = x.y" line before any
4617             ops are found.
4619           * include/parrot/interp_guts.h: Small changes necessitated by
4620             changes in the names of some members of the interpreter struct.
4622           * include/parrot/interpreter.h: Include the new
4623             include/parrot/oplib.h header. Small changes to the oplib-
4624             related members.
4626           * include/parrot/oplib.h: Define the type of the oplib init
4627             function, and the struct type for the oplib info.
4629           * platforms/*.[hc]: Remove the second argument to Parrot_dlopen()
4630             since not all platforms have it. For those that do, a default
4631             second argument is provided.
4633 2001-12-26 05:12  gregor
4635         * Configure.pl:
4636         Make jitarch calculation not get tripped up by extra components to
4637         archname.
4639 2001-12-24 21:23  gregor
4641         * jit.c, jit2h.pl, Parrot/Jit/i386-bsd.pm,
4642         Parrot/Jit/i386-linux.pm, Parrot/Jit/i386-nojit.pm,
4643         include/parrot/jit.h, jit/i386/core.jit, jit/i386/lib.jit,
4644         jit/i386/string.jit, lib/Parrot/Jit/i386-bsd.pm,
4645         lib/Parrot/Jit/i386-linux.pm, lib/Parrot/Jit/i386-nojit.pm:
4646         Some more JIT work from Daniel Grunblatt.
4648           * Ops added set_s_s, set_s_sc, bsr_i and eq_s_sc but using calls
4649         to C
4650             functions.
4652           * Added JUMP(END) to place the number of bytes to the end of the
4653         current
4654             op.
4656           * The *.jit files syntax changed.
4658           * Added jit/i386/lib.jit to place handly functions as jump that
4659         take as
4660             argument the address where is the opcode number to jump to.
4662           * There is a bug at some point, but I will start writing
4663             jit/i386/string.jit and jit/i386/stacks.jit so that we don't
4664         have use
4665             calls, which make the jit as slow as the interpreter.
4667         Courtesy of: Daniel Grunblatt <daniel@grunblatt.com.ar>
4669 2001-12-24 03:46  dan
4671         * Parrot/OpTrans.pm, Parrot/OpTrans/C.pm, Parrot/OpTrans/CGoto.pm,
4672         Parrot/OpTrans/CPrederef.pm, lib/Parrot/OpTrans.pm,
4673         lib/Parrot/OpTrans/C.pm, lib/Parrot/OpTrans/CGoto.pm,
4674         lib/Parrot/OpTrans/CPrederef.pm: Commented out the use warnings.
4675         Perls before 5.6.0 don't like it.
4677 2001-12-22 16:02  ajgough
4679         * t/op/stacks.t: stopped skipping tests we can run now.  added
4680         clonep tests.
4682 2001-12-21 21:13  gregor
4684         * jit2h.pl, Parrot/Jit/i386-bsd.pm, Parrot/Jit/i386-linux.pm,
4685         Parrot/Jit/i386-nojit.pm, lib/Parrot/Jit/i386-bsd.pm,
4686         lib/Parrot/Jit/i386-linux.pm, lib/Parrot/Jit/i386-nojit.pm:
4687         Fixed some package name goofs.
4689         Thanks to: Andy Dougherty <doughera@mail.lafayette.edu>
4691 2001-12-21 19:32  gregor
4693         * MANIFEST, Makefile.in, core.ops, interpreter.c,
4694         make_vtable_ops.pl, obscure.ops, ops2c-prederef.pl, ops2c.pl,
4695         pbc2c.pl, stacks.c, Parrot/Op.pm, Parrot/OpTrans.pm,
4696         Parrot/Opcode.pm, Parrot/OpsFile.pm, lib/Parrot/Op.pm,
4697         lib/Parrot/OpTrans.pm, lib/Parrot/Opcode.pm, lib/Parrot/OpsFile.pm,
4698         Parrot/OpTrans/C.pm, Parrot/OpTrans/CGoto.pm,
4699         Parrot/OpTrans/CPrederef.pm, docs/intro.pod, include/parrot/op.h,
4700         include/parrot/stacks.h, lib/Parrot/OpTrans/C.pm,
4701         lib/Parrot/OpTrans/CGoto.pm, lib/Parrot/OpTrans/CPrederef.pm:
4702         Changes to syntax of .ops files and refactoring of ops2c*.pl and
4703         pbc2c.pl.
4705           * Removed ops2c-prederef.pl
4707           * (unrelated) Removed vestigial Parrot/Opcode.pm file.
4709           * Added Parrot/OpTrans.pm, Parrot/OpTrans/C.pm (needed for old
4710             functionality of ops2c.pl), Parrot/OpTrans/CPrederef.pm (needed
4711             for old functionality of ops2c-prederef.pl), and
4712             Parrot/OpTrans/CGoto.pm (needed for functionality of pbc2c.pl).
4714             "OpTrans" == "Op Transformation"
4716           * Makefile.in modifications to call "ops2c.pl C" where it used
4717             to be just "ops2c.pl", and "ops2c.pl CPrederef" where it used
4718             to be "ops2c-prederef.pl".
4720           * core.ops and obscure.ops changes to syntax. Semantics are
4721             identical with previous version:
4723               return HALT         -->  HALT()
4724               return AUTO         -->  goto NEXT()
4725               return RETREL(...)  -->  goto OFFSET(...)
4726               return RESTART(*)   -->  restart NEXT()
4728             Also, pop_generic_entry() stuff (local var + 5 lines of code)
4729             for dest-less branch ops replaced with new notation "goto
4730         POP()",
4731             which uses the new pop_dest() function in stacks.c. This also
4732             allowed these ops to become 'inline' ops, since they no longer
4733             have local variables.
4735             The 'ret' op also became simplified to just "goto POP()", and
4736             also became an inline op.
4738           * interpreter.c reflects the change in type name:
4740               prederef_op_func_t   -->  op_func_prederef_t
4742             that occurred in include/parrot/op.h
4744           * make_vtable_ops.pl uses "goto NEXT()" where it used to use
4745             "return AUTO".
4747           * ops2c.pl is now generic. Its first argument is the last
4748             package name component of a subclass of Parrot::OpTrans. These
4749             subclasses all have full names of the form Parrot::OpTrans::*.
4750             An instance of the class is created and later consulted for
4751             various bits of information needed to generate the C code.
4753           * pbc2c.pl now uses an instance of Parrot::OpTrans::CGoto to
4754             contain its transformation rules.
4756           * stacks.c has a new function pop_dest() that pops a destination
4757             off the control stack. include/parrot/stacks.h has the
4758         prototype.
4760           * Parrot/Op.pm now supports the syntax generated by
4761         Parrot::OpsFile
4762             for the "goto POP" case.
4764             Also, the source() method now expects its second argument to be
4765             an object that ISA Parrot::OpTrans. Methods of this object are
4766             called to perform the substitutions.
4768           * Parrot/OpsFile.pm supports the change in notation mentioned
4769             above.
4771           * docs/intro.pod reflects these changes.
4773           * include/parrot/op.h: Renamed type prederef_op_func_t to
4774             op_func_prederef_t because it made the implementation of the
4775             shared ops2c.pl easier.
4777 2001-12-21 13:47  gregor
4779         * Configure.pl, config_h.in, interpreter.c, test_main.c:
4780         Both test_parrot (via test_main.c) and the intepreter itself (via
4781         interpreter.c) use the JIT_CAPABLE config to decide whether to
4782         actually attempt JIT operation, or to complain.
4784 2001-12-20 23:25  gregor
4786         * core.ops, make_vtable_ops.pl, obscure.ops, Parrot/OpsFile.pm,
4787         lib/Parrot/OpsFile.pm, docs/intro.pod, include/parrot/op.h:
4788         Changes to the format of *.ops files. An attempt to provide hints
4789         for future opfunc processing logic that wants to know if an opfunc
4790         is simple enough to JIT (e.g.) inline, or not.
4792         See the POD in Parrot/OpsFile.pm and the updated docs/intro.pod in
4793         addition to The Source in core.ops and Parrot/OpsFile.pm for more
4794         info.
4796 2001-12-20 21:28  gregor
4798         * Configure.pl, jit.c, jit2h.pl, include/parrot/jit.h,
4799         jit/i386/core.jit:
4800         More JIT stuff:
4802           * A fix to Gregor's last Configure.pl update.
4804           * Remove the need for hardcoded "\n" at the end of the "%f"
4805             format for printing floating-point numbers.
4807           * New, improved *.jit syntax for references to registers,
4808             e.g. INT_REG[n].
4810           * Support for C() improved.
4812         Courtesy of: Daniel Grunblatt <daniel@grunblatt.com.ar>
4814 2001-12-20 16:55  dan
4816         * MANIFEST: Added jit.c to the manifest.
4818 2001-12-20 15:24  simon
4820         * jit2h.pl:
4821         Off-by-one error fixed.
4823 2001-12-20 14:18  simon
4825         * jit/i386/core.jit:
4826         Just a noop. It's the only machine code I know.
4828 2001-12-20 13:10  gregor
4830         * Configure.pl, Makefile.in, jit2h.pl:
4831         Attempt to fix Win32 builds.
4833           * No more empty braces in include/parrot/jit_struct.h
4835         Also:
4837           * ${jitarchname} has the *bsd -> bsd substitution on it, but
4838         ${archname}
4839             does not.
4841 2001-12-20 11:56  simon
4843         * Makefile.in:
4844         De-cp
4846 2001-12-20 01:57  gregor
4848         * Configure.pl, MANIFEST, Makefile.in, interpreter.c, jit.c,
4849         jit2h.pl, test_main.c, Parrot/.cvsignore, Parrot/Jit/i386-bsd.pm,
4850         Parrot/Jit/i386-linux.pm, Parrot/Jit/i386-nojit.pm, docs/jit.pod,
4851         include/parrot/.cvsignore, include/parrot/interpreter.h,
4852         include/parrot/jit.h, jit/i386/core.jit, jit/i386/string.jit,
4853         lib/Parrot/Jit/i386-bsd.pm, lib/Parrot/Jit/i386-linux.pm,
4854         lib/Parrot/Jit/i386-nojit.pm:
4855         Initial JIT implementation.
4857           * Enabled with test_parrot -j. 20x speed boosts seen.
4859           * Unsupported archs mapped to i386-nojit. Don't do -j on them.
4861           * More to come.
4863         Courtesy of: Daniel Grunblatt <daniel@grunblatt.com.ar>
4865 2001-12-20 01:53  jgoff
4867         * MANIFEST, core.ops, t/op/key.t: MANIFEST - Removed t/op/key.t
4868         core.ops - Removed key operators, they should be hidden from the
4869         assembler.  t/op/key.t - No need to test the nonexistent key
4870         operators.
4872 2001-12-20 00:13  ajgough
4874         * core.ops, t/op/stacks.t: Added tests for entrytype op, noticed
4875         that asking for type of entry at depth causes segfault as stack is
4876         zero based, fixed cmp in core.ops to reflect this.  Last test is
4877         skipped as we don't do exceptions right yet.
4879 2001-12-19 19:11  ajgough
4881         * t/op/debuginfo.t: Added C<end> ops to debuginfo.t, as thier
4882         non-being was causing Irix "issues".
4884 2001-12-19 03:37  jgoff
4886         * languages/miniperl/Miniperl/t/: 001_tokenizer.t, 003_generator.t,
4887         004_combined.t: Changed tests to make sure they pass with the
4888         addition of the clone operator.
4890 2001-12-18 20:06  gregor
4892         * interpreter.c, include/parrot/interp_guts.h:
4893         Performance improvements to the predereferencing code path
4894         suggested to me over lunch yesterday by my friend John Kennedy.
4895         The goal is to remove the additional test in the inner loop that
4896         was checking for NULL to decide whether or not to call the
4897         prederef() function. Also moved pc & pc_prederef syncing outside
4898         the inner loop.
4900           * Changed the prototype of the prederef() function in
4901             interpreter.c to match that of an opfunc.
4903           * Instead of initializing the prederef void * array with NULL,
4904             we initialize it with pointers to prederef().
4906           * prederef() now returns the prederef_pc passed in, so that
4907             after predereferencing, the same location is executed, but now
4908             with the real code being called.
4910         Thanks to: John Kennedy
4912 2001-12-18 19:59  ajgough
4914         * t/: op/pmc.t, pmc/pmc.t: Added some more num -> string tests
4915         (including some more in the skipped string -> int tests).
4917 2001-12-18 07:06  jgoff
4919         * MANIFEST: Forgot to add classes/perlarray.pmc
4921 2001-12-18 07:05  jgoff
4923         * Makefile.in, core.ops, global_setup.c, vtable.tbl,
4924         classes/Makefile.in, classes/default.pmc, classes/perlarray.pmc,
4925         classes/perlint.pmc, classes/perlnum.pmc, classes/perlstring.pmc,
4926         classes/perlundef.pmc, include/parrot/pmc.h, t/op/pmc.t,
4927         t/pmc/pmc.t: Big update...  Makefile.in - Added
4928         classes/perlarray.pmc core.ops - Added new series of set() ops for
4929         arrays global_setup.c - Initialized perlarray classes/Makefile.in -
4930         Added perlarray.pmc classes/*.pmc - Added
4931         set_{integer,number,string}_index and
4932         get_{integer,number,string}_index include/parrot/pmc.h - Added new
4933         type t/op/pmc.t - Added basic array test
4935         classes/perlarray.pmc - Added
4937 2001-12-17 05:29  jgoff
4939         * languages/miniperl/Miniperl/Generator.pm: Altered miniperl code
4940         generator to use clone operator instead of set Px,Py
4942 2001-12-17 05:25  jgoff
4944         * core.ops, classes/perlint.pmc, classes/perlnum.pmc,
4945         classes/perlstring.pmc, t/op/pmc.t, t/pmc/pmc.t: Added clone
4946         PMC,PMC operator. Uses the clone() vtable entries.
4948 2001-12-17 04:51  jgoff
4950         * MANIFEST: Added miniperl test suite, removed old Miniperl/Test.pm
4951         entry
4953 2001-12-17 04:41  jgoff
4955         * languages/miniperl/Miniperl/Makefile.PL: Now in its proper
4956         directory...
4958 2001-12-17 04:41  jgoff
4960         * languages/miniperl/Makefile.PL: Moved it to the proper directory.
4962 2001-12-17 04:39  jgoff
4964         * languages/miniperl/: Makefile.PL, Miniperl.pm, miniperlc, mpc,
4965         Miniperl/Tokenizer.pm: Makefile.PL to let us run the test suite in
4966         t/
4968 2001-12-17 04:27  jgoff
4970         * languages/miniperl/Miniperl.pm: Latest version of the driver.
4971         Admittedly it's a little thin on true OO, but the algorithms are
4972         the key.
4974 2001-12-17 04:24  jgoff
4976         * languages/miniperl/Miniperl/t/: 001_tokenizer.t, 002_parser.t,
4977         003_generator.t, 004_combined.t: Much more comprehensive test suite
4978         for the codegen et al
4980 2001-12-17 04:22  jgoff
4982         * languages/miniperl/Miniperl/: Generator.pm, Parser.pm,
4983         Tokenizer.pm: Newer codegen, tightened up parser output, added hash
4984         key handling
4986 2001-12-17 04:20  jgoff
4988         * languages/miniperl/Miniperl/Test.pm: The newer test suite is much
4989         more comprehensive.
4991 2001-12-17 04:17  jgoff
4993         * languages/miniperl/foo.mpl: Test file that'll be outdated by
4994         changes to the new compiler
4996 2001-12-17 04:11  jgoff
4998         * languages/miniperl/t/: harness, 001_basic/basic.t: Moving testing
4999         files to Miniperl/
5001 2001-12-16 14:11  simon
5003         * classes/perlint.pmc, examples/assembly/mops_p.pasm, t/op/pmc.t,
5004         t/pmc/pmc.t:
5005         Fix bogus assumption that multiplying an integer by an integer
5006         yields an integer.
5008 2001-12-16 12:48  simon
5010         * make_vtable_ops.pl:
5011         Fixed op exploder.
5013 2001-12-16 12:45  simon
5015         * make_vtable_ops.pl, Parrot/Vtable.pm, lib/Parrot/Vtable.pm:
5016         Expand multimethod vtable ops.
5018 2001-12-16 12:04  simon
5020         * Makefile.in:
5021         Added 'cvsclean' which doesn't zap CVS/* directories.
5023 2001-12-15 01:50  dan
5025         * include/parrot/string.h: Fixed typo in string.h. lagnuage,
5026         indeed!
5028         Thanks to grunblatt fom #parrot for the catch
5030 2001-12-15 01:39  dan
5032         * .cvsignore, Configure.pl, MANIFEST, languages/jako/Makefile.in,
5033         languages/miniperl/.cvsignore, languages/miniperl/Makefile,
5034         languages/miniperl/Makefile.in,
5035         languages/miniperl/Miniperl/Test.pm, languages/scheme/.cvsignore,
5036         languages/scheme/Makefile, languages/scheme/Makefile.in: Build
5037         tweaks.
5039         Courtesy of: Jay McCarthy <jay@kenyamountain.com>
5041 2001-12-14 17:39  dan
5043         * t/op/trans.t: More trans tests.
5045         Courtesy of: Simon Glover <scog@roe.ac.uk>
5047 2001-12-14 07:41  robert
5049         * make.pl: - define MAKE macro - topological sort and subgraph
5050         order - start of timestamp stuff   (still badly broken)
5052 2001-12-14 06:06  jgoff
5054         * optimizer.pl: Hopefully this should do the trick..
5056 2001-12-14 06:04  jgoff
5058         * Parrot/Optimizer.pm, lib/Parrot/Optimizer.pm: Optimizer
5060           optimizer.pl is the stub, Parrot/Optimizer.pm is the driver.
5062           The optimizer performs its work on a file post-macro expansion.
5063           Run it on a .pasm file, preferably with some trivially reducible
5064         operations
5065           like 'add I0,5,-6' or 'mul I0,I1,0'
5067 2001-12-14 05:48  robert
5069         * Makefile.in: case error EXE -> exe
5071 2001-12-14 05:42  robert
5073         * Makefile.in: remove legacy PDISASM macro
5075 2001-12-14 04:01  dan
5077         * classes/Makefile.in, languages/Makefile.in: Makefile tweaks for
5078         better Win building
5080         Courtesy of: Garrett Goebel <garrett@scriptpro.com>
5082 2001-12-13 22:03  dan
5084         * Configure.pl, Makefile.in, Parrot/Test.pm,
5085         languages/scheme/Makefile, languages/scheme/Scheme/Test.pm,
5086         lib/Parrot/Test.pm: Parrot test prog's now a config variable, so we
5087         can change it without having to change the world.
5089 2001-12-13 21:57  dan
5091         * core.ops, interpreter.c, docs/parrot_assembly.pod,
5092         include/parrot/interpreter.h, t/op/debuginfo.t: Added current
5093         file/line/package to interp structure, with ops to get and set
5094         them. Now we can know where we are!
5096 2001-12-13 19:43  dan
5098         * Configure.pl, Makefile.in: Makefile tweaks to hopefully make
5099         WinXP builds work out of the box
5101 2001-12-13 17:05  dan
5103         * Makefile.in, Parrot/Test.pm, lib/Parrot/Test.pm: Change test prog
5104         name again--makes case-insensitive systems much happier.
5106 2001-12-13 16:21  dan
5108         * core.ops, key.c, string.c, test_main.c, trace.c,
5109         classes/Makefile.in, include/parrot/trace.h: Fixes to clean up
5110         compiler warnings
5112         Courtesy of: Josh Wilmes <josh@sky.net>
5114 2001-12-13 13:33  gregor
5116         * languages/jako/Makefile.in:
5117         Improved the method of calling the assembler.
5119 2001-12-13 13:30  gregor
5121         * languages/jako/Makefile.in:
5122         Improve the build process. It now works from the main parrot dir,
5123         and from the languages/jako directory. Now uses the .SUFFIXES
5124         target and generic build rules to reduce clutter in the
5125         Makefile.in.
5127 2001-12-13 13:29  gregor
5129         * languages/jako/.cvsignore:
5130         Ignore the (now generated Makefile), and don't ignore .list files
5131         anymore, since we aren't generating them.
5133 2001-12-13 13:11  gregor
5135         * Configure.pl, MANIFEST, Makefile.in, languages/.cvsignore,
5136         languages/Makefile.in, languages/jako/Makefile,
5137         languages/jako/Makefile.in:
5138         Added a 'languages' target to the top-level Makefile.in, and
5139         modified the jako build procedure to involve Makefile.in -->
5140         Makefile too (done by Configure.pl).
5142         NOTE: languages/jako and language/scheme are built.
5143         languages/miniperl wasn't building right, so it was left off for
5144         now.
5146 2001-12-13 12:15  gregor
5148         * MANIFEST:
5149         Added MAINTAINER file and mandelzoom.jako from languages/jako to
5150         the MANIFEST.
5152 2001-12-13 12:12  gregor
5154         * .cvsignore, MANIFEST, Makefile.in, core.ops, interpreter.c,
5155         ops2c-prederef.pl, ops2c.pl, test_main.c,
5156         include/parrot/interp_guts.h, include/parrot/interpreter.h,
5157         include/parrot/op.h, include/parrot/oplib/.cvsignore:
5158         Welcome to the Just-in-Time Predereferencing Patch!
5160         This patch implements a "predereferencing" mode for parrot. That
5161         means that a lot of the dereferencing you see in DO_OP and in the
5162         opfuncs is done up front (really, JIT) rather than as and each time
5163         we execute each op in the byte code stream.
5165         This works by creating an array of void pointers with the same
5166         number of elements as the byte code array. This array starts out
5167         life zero-initialized.  Each time we go to execute an op, we check
5168         first to see if we have a NULL pointer at *cur_opcode. If so, we
5169         know we haven't done our predereferencing yet (this is the JIT
5170         part), so we call the prederef() function with sufficient args that
5171         it can go look up opfunc pointers and op arg types and put the
5172         opfunc and arg pointers at cur_opcode[0] .. cur_opcode[N - 1],
5173         where N is the number of args (counting the op itself as one arg).
5175         We assume that sizeof(INTVAL) <= sizeof(void *), so we can continue
5176         to have inline INTVAL constants.
5178         I've been getting about a 22% speed increase over vanilla code path
5179         when I compile with -O0. Advantage decreases at -O9 here. I tested
5180         with mops.pbc, and also by temporarily putting the -P flag in
5181         Parrot/Test.pm and running all the tests. So, this code is as
5182         correct as the test suite can detect.
5184         Here's how it plays out in the code:
5186           * New script ops2c-prederef.pl
5188             Copy-paste code reuse from ops2c.pl. Modified to expect the
5189         args to give
5190             a void ** cur_opcode and to return a void **.
5192           * Modified ops2c.pl
5194               * opfuncs are now static. Who needs to call them by name from
5195         outside,
5196                 anyway? They are accessed via the opfunc table.
5198               * Some MACRO stuff to make things work whether we prederef or
5199         not. It
5200                 may be possible to get rid of these some day if other folks
5201         agree
5202                 that we should be using CODE object pointers + offsets as
5203         our PC
5204                 rather than raw pointers to either opcode_t's or (void *)'s
5205                 (depending on prederef mode or no).
5207           * core.ops modified to be usable to build both kinds of opfuncs.
5208         For now,
5209             this means:
5211               * calls to push_generic_entry(... cur_opcode ...) were
5212         changed to
5213                 push_generic_entry(... CUR_OPCODE ...), where CUR_OPCODE is
5214         a
5215                 macro that does the right thing in both kinds of ops.c
5216         files.
5218                 This is applicable to the bsr op. If we treated
5219         destinations as
5220                 (Code PMC + local offset) rather than as
5221         pointer-to-memory-somewhere,
5222                 this wouldn't be a big deal. We may need to do that at some
5223         point
5224                 anyway, so that when you jump around and return not only do
5225         you have
5226                 the right PC (pointer, today), but you also have the
5227         thread/interpreter
5228                 knowing what chunk of bytecode it is in at all times
5229         (assuming we'll
5230                 allow reflection, as in ops that query or affect the
5231         current CODE PMC).
5233               * runinterp was modified. Instead of copying the top-level
5234         PackFile struct
5235                 and blasting its byte_code pointer, we simply call runops
5236         on the new
5237                 interp, passing in the pointer to the current interp's code
5238         and the
5239                 offset into that code at which to start (this last arg used
5240         to be a
5241                 pointer PC, now its an offset PC).
5243           * include/parrot/op.h
5245               * new typedef for prederef opfuncs (they return void **)
5247           * include/parrot/interp_guts.h
5249               * New DO_OP_PREDEREF() macro described above.
5251           * include/parrot/interpreter.h
5253               * New prototype of runops() -- see below.
5255               * resume_addr field changed to resume_flag and resume_offset
5256         pair of fields.
5257                 We might be resuming from interp using prederef to one not
5258         or vice-versa,
5259                 so pointers between the two don't play nice together.
5260         Offsets are beautiful.
5262               * New PARROT_PREDEREF_FLAG constant
5264           * interpreter.c
5266               * include "parrot/oplib/core_ops_prederef.h"
5268               * prederef() function described above.
5270               * runops_prederef() runops variant. Uses DO_OP_PREDEREF()
5271         macro as its core.
5273               * runops() modified to take size_t CODE-relative offset PC
5274         rather than
5275                 pointer PC. This made other things workable and doesn't
5276         seem to have lost
5277                 anything important (IMO).
5279           * test_main.c
5281               * New flag '-P' to enable predereferencing.
5283           * Makefile modified to build core_ops_prederef.c from core.ops
5284         via
5285             ops2c-prederef.pl.
5287             BTW, also added missing $(INC)/interp_guts.h to H_FILES.
5289             Added core_ops_prederef$(O) to O_FILES
5291 2001-12-13 12:12  gregor
5293         * languages/jako/MAINTAINER:
5294         Thought it would be nice to put this right in the code...
5296 2001-12-13 04:36  jgoff
5298         * languages/miniperl/Miniperl/Generator.pm: Commented out
5299         debugging, fixed register spillover algorithm
5301 2001-12-13 04:23  jgoff
5303         * make.pl: Found and fixed obob in the parser (Wasn't parsing last
5304         line) Restructured a bit of the dependency generator to fix a
5305         different obob bug.
5307 2001-12-13 03:43  robert
5309         * MANIFEST, docs/opcodes.pod: remove old docs/opcodes.pod
5311 2001-12-13 03:03  jgoff
5313         * make.pl: Added make.pl
5315 2001-12-13 02:44  jgoff
5317         * languages/miniperl/Miniperl.pm: Nearly-complete 'make'
5318         replacement in perl.  Non-compliant bits - Takes absolutely -NO-
5319         special flags...                     - Dies on undefined macros
5320         such as $(PDISASM) in current make                     - Dies on
5321         recursive macro expansions                       (Doesn't test for
5322         mutual or multipart loops)                     - In general it
5323         seems to be a little less lenient...  Missing bits - File
5324         mod/creation times aren't being looked at              - Actions
5325         aren't being taken              - The few funky variables ($@, $<)
5326         aren't being dealt with Bugs - Line numbers are slipping a bit.
5328 2001-12-13 02:29  jgoff
5330         * languages/miniperl/Miniperl/: Generator.pm, Parser.pm:
5331         Reconstructing files to make the parser flow a little better.
5333 2001-12-13 00:51  dan
5335         * resources.c: Be a bit less wasteful with resources that don't
5336         need to be aligned
5338 2001-12-12 18:22  dan
5340         * Makefile.in: D'oh! Fixed looping makefile bug.
5342         Courtesy of: "Jaen Saul" <jaen@saul.ee>
5344 2001-12-12 16:23  jgoff
5346         * languages/miniperl/t/001_basic/basic1.scheme: Bogus entry
5348 2001-12-12 16:22  jgoff
5350         * MANIFEST: Manifest additions for languages/miniperl
5352 2001-12-12 16:19  jgoff
5354         * languages/miniperl/t/001_basic/: basic.t, basic1.scheme: Basic
5355         tests. These are left over from the Scheme suite and shouldn't be
5356         used yet.
5358 2001-12-12 16:18  jgoff
5360         * languages/miniperl/: Miniperl/Generator.pm, Miniperl/Parser.pm,
5361         Miniperl/Test.pm, Miniperl/Tokenizer.pm, t/harness: Miniperl base
5362         modules. Miniperl/ is where the real work gets done.  t/ is largely
5363         vacant because it isn't ready to survive real tests yet.
5365 2001-12-12 16:17  jgoff
5367         * languages/miniperl/: Makefile, Miniperl.pm, foo.mpl, miniperlc,
5368         mpc: Final go-round, hopefully.
5370         languages/miniperl/Makefile - Used basically to run tests, as there
5371         is nothing                               here that needs to be
5372         dynamically built.  languages/miniperl/Miniperl.pm - Stub module
5373         that calls the real Miniperl/ mods languages/miniperl/foo.mpl -
5374         Sample miniperl file.  languages/miniperl/miniperlc - Miniperl
5375         compiler stub
5377 2001-12-12 16:09  dan
5379         * Configure.pl: Setting a variable with the make command name is
5380         useful.
5382 2001-12-12 15:07  simon
5384         * Makefile.in, languages/jako/Makefile, languages/scheme/Makefile:
5385         Recursive make considered "ow, don't do that".
5387 2001-12-12 14:45  dan
5389         * Makefile.in: Makefile had some non-portable code. (Okay, a lot of
5390         non-portable code) Killing builds on Win32 native. Small patch
5391         applied which hopefully fixes it.
5393 2001-12-12 06:12  ajgough
5395         * classes/Makefile.in: perl is $(PERL), you know it makes sense.
5397 2001-12-12 06:08  ajgough
5399         * Makefile.in: perl is $(PERL).
5401 2001-12-12 06:00  ajgough
5403         * t/op/integer.t: Added tests to integer.t so that all permutations
5404         of arguments are actually called at some point.
5406 2001-12-12 05:18  ajgough
5408         * t/op/time.t: I can't sleep, but I don't see why parrot shouldn't.
5409          Tests for sleep i|ic
5411 2001-12-12 05:09  ajgough
5413         * t/op/stacks.t: Added pushp and popp register stack tests.
5415 2001-12-12 04:51  ajgough
5417         * t/op/stacks.t: Added tests for save and restore, for all register
5418         types.  Let there be Haiku.
5420 2001-12-12 04:27  ajgough
5422         * t/op/basic.t: bsr_i test.  You know you want it.
5424 2001-12-12 02:55  ajgough
5426         * MANIFEST: Added hints/os2.pl to MANIFEST.
5428 2001-12-12 02:52  jgoff
5430         * core.ops, key.c: Final checkin... These are actually the correct
5431         copies.
5433 2001-12-12 02:12  jgoff
5435         * include/parrot/key.h: key.c - Removed a few functions,
5436         generalized set_element_value and element_value         to accept
5437         KEY_PAIRs from core.ops include/parrot/key.h - Modified header.
5438         core.ops - Modified to accept the new return style.
5440         This is a prelude to adding virtual-table methods to allow hashing
5441         &c. Expect at least one or two more redesigns before this settles
5442         down. However, it still passes the original tests.
5444 2001-12-11 13:35  gregor
5446         * runops_cores.c:
5447         Fixed a typo.
5449 2001-12-11 12:03  gregor
5451         * .cvsignore:
5452         Don't ignore test_prog, but do ignore parrot.
5454 2001-12-11 12:03  gregor
5456         * classes/.cvsignore:
5457         Ignore the generated file default.h
5459 2001-12-11 04:07  jgoff
5461         * key.c: Key source
5463 2001-12-11 04:05  jgoff
5465         * include/parrot/key.h, t/op/key.t: Needed header file, new test
5467 2001-12-11 04:00  jgoff
5469         * core.ops: Added new key aggregate operations to core ops.
5471 2001-12-11 04:00  jgoff
5473         * include/parrot/parrot.h: Added key.h to header list
5475 2001-12-11 03:59  jgoff
5477         * MANIFEST: Added key.c, include/parrot/key.h, t/op/key.t
5479 2001-12-11 03:58  jgoff
5481         * Makefile.in: Added implementation of key aggregates.
5483 2001-12-08 23:07  simon
5485         * README:
5486         README good to go.
5488 2001-12-08 23:05  simon
5490         * Configure.pl, Makefile.in, README, Parrot/Test.pm,
5491         docs/intro.pod, languages/jako/Makefile, languages/scheme/Makefile,
5492         languages/scheme/Scheme/Test.pm, lib/Parrot/Test.pm:
5493         test_prog? What is test_prog?
5495 2001-12-08 22:57  simon
5497         * ChangeLog:
5499         Oops, the changelog commit was on *this* machine.
5501 2001-12-08 22:56  simon
5503         * NEWS:
5504         Updates to NEWS and ChangeLog pre-release.
5506 2001-12-08 22:07  simon
5508         * MANIFEST, Makefile.in, classes/Makefile.in, classes/default.pmc,
5509         classes/perlnum.pmc, classes/pmc2c.pl:
5510         Add "default" PMC vtable so you can inherit implied stuff.
5512 2001-12-08 21:24  simon
5514         * Parrot/PackFile.pm, docs/parrot.pod, docs/parrotbyte.pod,
5515         docs/vtables.pod, lib/Parrot/PackFile.pm:
5516         Getting the documentation up to scratch.
5518 2001-12-08 21:21  simon
5520         * classes/pmc2c.pl:
5521         Allow inheriting from default class.
5523 2001-12-07 20:43  gregor
5525         * examples/assembly/queens.pasm:
5526         Regenerated the file with the latest jakoc.
5528 2001-12-07 20:29  simon
5530         * core.ops, t/op/stacks.t:
5531         Rename "rotate" to "rotate_up".
5533 2001-12-07 20:15  simon
5535         * t/op/stacks.t:
5536         Some tests for rotate.
5538 2001-12-07 00:55  gregor
5540         * core.ops:
5541         Cast the result of the pointer arithmetic, since without the cast
5542         there are warnings with some compilers, and without the parens
5543         around the pointer arithmetic, precedence breaks the meaning and
5544         causes crashes.
5546 2001-12-06 23:37  simon
5548         * core.ops:
5549         Temporary. I prefer compiler warnings to segfaults, thanks.
5551 2001-12-06 23:34  simon
5553         * runops_cores.c:
5554         Make "trace" work again.
5556 2001-12-06 21:23  dan
5558         * Parrot/Test.pm, lib/Parrot/Test.pm: Undo twiddles to test.pm
5560 2001-12-06 21:22  dan
5562         * core.ops, packfile.c, Parrot/Test.pm, include/parrot/stacks.h,
5563         lib/Parrot/Test.pm: Fix up source issues that made Dec C unhappy
5565 2001-12-06 19:22  simon
5567         * core.ops:
5568         Yet another "How the *%$! did that compile?" moment.
5570 2001-12-06 18:28  dan
5572         * hints/vms.pl: Fix to build, with a HERE logical required
5574 2001-12-06 17:48  dan
5576         * core.ops, interpreter.c, pbc2c.pl, pdump.c, test_main.c,
5577         docs/parrot_assembly.pod, include/parrot/interpreter.h: Sensible
5578         changes to the interpreter--flags are now part of the interp
5579         structure.
5581         Courtesy of "Melvin Smith" <mrjoltcola@mindspring.com>
5583 2001-12-06 14:02  gregor
5585         * docs/intro.pod:
5586         s/little_languages/languages/ in Jako section.
5588 2001-12-06 13:15  simon
5590         * Makefile.in:
5591         Ensure the documentation gets made.
5593 2001-12-06 13:12  simon
5595         * MANIFEST, docs/intro.pod:
5596         Documentation! Added the "Some Assembly Required" article with
5597         minor updates.
5599 2001-12-06 00:39  simon
5601         * core.ops:
5602         More "eq" support.
5604         Courtesy of: Nguon Hao Ching <hao@netaxs.com>
5606 2001-12-06 00:37  simon
5608         * test_main.c:
5609         Add the "-d" debug flag. Doesn't actually *do* anything yet.
5611         Courtesy of: Melvin <mrjoltcola@mindspring.com>
5613 2001-12-06 00:11  tom
5615         * string.c, chartypes/unicode.c, chartypes/usascii.c,
5616         encodings/singlebyte.c, encodings/utf16.c, encodings/utf8.c,
5617         include/parrot/chartype.h, include/parrot/encoding.h,
5618         include/parrot/parrot.h: Moved string to number conversion code out
5619         of the encoding layer and into the main string layer as neither the
5620         encoding layer nor the character type layer knows enough on it's
5621         own to do the conversion correctly.
5623 2001-12-05 23:12  tom
5625         * Makefile.in: Rebuild the classes directory if any of the object
5626         files for the classes are missing rather than only when perlint.o
5627         is missing.
5629 2001-12-05 19:43  gregor
5631         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm:
5632           * Reworked the constantize_string() stuff a little bit because it
5633         was
5634             puking on things like "\033[H\033[2J\0" (which occurs in the
5635             languages/jako/mandelzoom.jako example).
5637 2001-12-05 19:39  gregor
5639         * languages/jako/: Makefile, mandelzoom.jako:
5640         Added 'mandelzoom' example.
5642 2001-12-05 19:38  gregor
5644         * languages/jako/jakoc:
5645           * Added sleep()
5647           * Changed some instances of die() to confess()
5649 2001-12-05 18:34  gregor
5651         * t/: op/pmc.t, pmc/pmc.t:
5652         s/sting->int/string->int/
5654 2001-12-05 18:08  gregor
5656         * Parrot/.cvsignore:
5657         Ignore PMC.pm
5659 2001-12-05 18:05  gregor
5661         * classes/.cvsignore:
5662         Ignore the generated files.
5664 2001-12-05 17:19  gregor
5666         * pbc2c.pl:
5667           * Reverted recent changes, since they broke the script. Real fix
5668         coming
5669             later.
5671 2001-12-05 17:03  simon
5673         * classes/Makefile.in:
5674         Remember: change Makefile.in, not Makefile. D'oh.
5676 2001-12-05 17:02  simon
5678         * Makefile.in:
5679         Ensure PMC.pm gets remade.
5681 2001-12-05 16:58  simon
5683         * MANIFEST, Makefile.in, classes/Makefile.in,
5684         classes/perlundef.pmc, include/parrot/pmc.h:
5685         Add perlundef class.
5687 2001-12-05 16:45  simon
5689         * core.ops:
5690         Document "new P0, foo"
5692 2001-12-05 16:43  simon
5694         * MANIFEST, Makefile.in, pbc2c.pl, pmc_pm.pl, Parrot/Assembler.pm,
5695         lib/Parrot/Assembler.pm, t/op/pmc.t, t/pmc/pmc.t:
5696         Allow assembler to know about PMC class names.
5698 2001-12-04 13:39  ajgough
5700         * MANIFEST: Added t/op/pmc.t to MANIFEST.
5702 2001-12-04 05:02  ajgough
5704         * classes/perlnum.pmc: Picky compiler pointed out probable thinko
5705         in perlnum.c
5707 2001-12-04 04:24  ajgough
5709         * encodings/singlebyte.c, t/op/pmc.t, t/pmc/pmc.t: A much less
5710         broken form of strtod and appropriate tests.  Does not yet check
5711         for overflow.
5713 2001-12-04 01:31  ajgough
5715         * string.c, encodings/singlebyte.c, encodings/utf16.c,
5716         encodings/utf8.c, include/parrot/encoding.h: Added length parameter
5717         to extract_num and extract_int string vtables, without this it
5718         would be impossible to have strings with nulls in while still
5719         knowing where they ended.
5721 2001-12-03 18:40  ajgough
5723         * string.c, classes/perlstring.pmc, encodings/singlebyte.c,
5724         encodings/utf16.c, encodings/utf8.c, include/parrot/encoding.h,
5725         include/parrot/string.h: Moved pmc string to number conversion into
5726         the string encoding tables.
5728 2001-12-03 00:21  ajgough
5730         * core.ops, t/op/pmc.t, t/pmc/pmc.t: Added set i, p and some tests
5731         for p-> integer.
5733 2001-12-02 23:09  jgoff
5735         * classes/Makefile.in: Removed some redundant targets.
5737 2001-12-02 19:02  ajgough
5739         * t/: op/pmc.t, pmc/pmc.t: Modified all pmc tests to make use of fp
5740         equality macro rather than using perl to generate expected output,
5741         all tests now have <<OUTPUT.
5743 2001-12-02 17:44  ajgough
5745         * t/op/trans.t: Upgraded fp_eq and fp_ne macros to be more useful
5746         for pmc.t as well.  Will probably move macros into another file at
5747         some point, although this might be best left until the tests are
5748         unperled.
5750 2001-12-02 06:16  jgoff
5752         * classes/pmc2c.pl: It wasn't properly setting the vtable index
5753         within Parrot_Perl{Class}_init.
5755 2001-12-02 06:09  jgoff
5757         * classes/Makefile.in: I seem to have removed *$(O) twice..
5759 2001-12-02 05:06  jgoff
5761         * Configure.pl, MANIFEST, Makefile.in: (Hopefully the last time...)
5762         Configure.pl - Removed '-I./include', added classes/Makefile
5763         generation MANIFEST     - Added classes/Makefile.in Makefile.in  -
5764         Removed old classes/* make stuff                Added target for
5765         classes/Makefile
5767 2001-12-02 04:48  jgoff
5769         * classes/Makefile.in: Going to be used shortly...
5771 2001-12-02 04:40  jgoff
5773         * docs/Makefile: Configure.pl - Added automatic makefile creation
5774         for docs/ and classes/                Removed '-I./include' because
5775         it was getting incorrectly                passed to classes/
5776         MANIFEST - added docs/Makefile.in, classes/Makefile.in Makefile.in
5777         - Removed classes/ build stuff, replaced with classes/Makefile.in
5778                     Added '-I./include' locally docs/Makefile - Should no
5779         longer be used, but I'm not brave enough to do a
5780         cvs delete.
5782 2001-12-02 01:21  ajgough
5784         * t/op/trans.t: Refactored trans math tests to have hard coded
5785         expected return values and be more ready to be unperled at some
5786         point in the future.  Added $fp_equality_macro which is a
5787         "nearly-equal-to" function.
5789 2001-12-02 01:18  ajgough
5791         * Makefile.in: Humph.  People really ought to use Makefile
5792         variables, s/perl/$(PERL)/ throughout.
5794 2001-12-01 18:15  jgoff
5796         * classes/: perlint.pmc, perlnum.pmc: Temporary patch until we
5797         figure out what to do vis-a-vis the lack of snprintf.
5799 2001-11-30 13:14  ajgough
5801         * t/op/: integer.t, number.t: Added tests for abs ops to number.t
5802         and integer.t
5804 2001-11-30 13:14  ajgough
5806         * core.ops: Added abs(i|n, i|ic|n|nc) ops to core.ops, using if <0
5807         -, else ... form.
5809 2001-11-30 10:36  simon
5811         * core.ops:
5812         Rewrite print_p to do the right thing.
5814 2001-11-30 06:21  jgoff
5816         * t/: op/pmc.t, pmc/pmc.t: New tests for integer/number/string
5817         concat,               integer/number/string math
5819 2001-11-30 06:20  jgoff
5821         * classes/: perlint.pmc, perlnum.pmc, perlstring.pmc:
5822         classes/perlint.pmc - Fixes and expanding for concat and math with
5823         strings classes/perlnum.pmc - Fixes and expanding for concat and
5824         math with strings classes/perlstring.pmc - Fixes and expanding for
5825         concat and math with strings
5827 2001-11-29 15:21  ajgough
5829         * hints/os2.pl: This is a hints file for os/2, I've set $c{perl} as
5830         $^X lies, which confused bash which make uses to run things when
5831         doing its stuff.
5833 2001-11-29 04:58  jgoff
5835         * classes/perlstring.pmc: Removed C++-style comments for good
5836         measure
5838 2001-11-29 04:51  jgoff
5840         * t/: op/pmc.t, pmc/pmc.t: New tests for PMC integers
5842 2001-11-29 04:28  jgoff
5844         * global_setup.c: Initialize PMC strings
5846 2001-11-29 04:25  jgoff
5848         * core.ops: Added set_p_s and set_p_sc, modified print_p to handle
5849         string PMCs.
5851 2001-11-29 04:24  jgoff
5853         * classes/: perlint.pmc, perlnum.pmc, perlstring.pmc: Changed PMC
5854         files to properly upgrade int to num, do calculations.  Also added
5855         basic string operations. Currently errors out on anything but set
5856         operations, but this will be fixed soon.
5858 2001-11-29 04:22  jgoff
5860         * Makefile.in: PMC .c files weren't getting cleaned out.
5862 2001-11-28 17:00  simon
5864         * t/harness:
5866         Make csh-glob happy.
5868         Courtesy of: Andy Dougherty: <doughera@lafayette.edu>
5870 2001-11-28 16:40  simon
5872         * classes/perlnum.pmc:
5874         De-C++
5876 2001-11-28 15:22  simon
5878         * string.c:
5880         Fixes Alex's string concat worry.
5882 2001-11-28 14:27  ajgough
5884         * t/op/string.t: test "null onto null" incorrectly passing as it
5885         produced no output.  Output provided.
5887 2001-11-28 11:14  simon
5889         * include/parrot/pmc.h:
5891         Placate AIX.
5893 2001-11-26 21:03  dan
5895         * MANIFEST, hints/darwin.pl: Tweaks to build on Mac OS X 10.1
5897 2001-11-26 17:29  simon
5899         * classes/perlint.pmc:
5901         Various subtle but non-showstopper bugs.
5903 2001-11-26 11:23  simon
5905         * classes/pmc2c.pl:
5907         Replace dependency on Text::Balanced
5909         Courtesy of: Bart Lateur <bart.lateur@pandora.be>
5911 2001-11-26 05:22  jgoff
5913         * global_setup.c: Last file that should need to be committed. I
5914         swear.
5916 2001-11-26 05:09  jgoff
5918         * core.ops: Let's try this again... Changes to core.ops required
5920 2001-11-26 04:58  jgoff
5922         * classes/perlint.pmc, classes/perlnum.pmc, t/op/pmc.t,
5923         t/pmc/pmc.t: Makefile.in - Added missing cleanup line for perl*.c
5924         core.ops - Added set(p,n|nc), modified print(p) global_setup.c -
5925         Uncommented PerlNum_init classes/perlint.pmc - Added set_number
5926         functions classes/perlnum.pmc - Set up basic number functions
5927         t/op/pmc.t - Added tests for set P0.<number> and {add,mul,sub,div}
5928         tests against numbers and numbers+integers
5930 2001-11-25 13:18  simon
5932         * Makefile.in:
5933         Windows XP make doesn't like $<
5935 2001-11-25 12:56  simon
5937         * MANIFEST, Makefile.in, classes/genclass.pl, classes/perlint.c,
5938         classes/perlint.pmc, classes/perlnum.c, classes/perlnum.pmc,
5939         classes/perlstring.c, classes/perlstring.pmc, classes/pmc2c.pl,
5940         examples/assembly/mops_p.pasm:
5941         PMC preprocessor.
5943         Courtesy of: Angel Faus <afaus@corp.vlex.com>
5945         I (Simon) also added a couple more integer methods, but no tests
5946         since I'm a Bad Person.
5948 2001-11-25 08:40  brentdax
5950         * ops2c.pl, Parrot/Op.pm, Parrot/OpsFile.pm, lib/Parrot/Op.pm,
5951         lib/Parrot/OpsFile.pm: Allow _ in op names
5953 2001-11-25 05:54  jgoff
5955         * classes/perlint.c, t/op/pmc.t, t/pmc/pmc.t: classes/perlint.c -
5956         Added basic math ops t/op/pmc.t - Added tests of basic math ops
5958 2001-11-23 18:27  simon
5960         * core.ops, classes/perlint.c, examples/assembly/mops_p.pasm:
5961         Add everything you need to make MOPS use PMCs.
5963 2001-11-23 18:06  simon
5965         * core.ops:
5966         Eh, you'll need this for rewriting mops.pasm.
5968 2001-11-23 17:55  simon
5970         * core.ops, classes/perlint.c, include/parrot/pmc.h, t/op/pmc.t,
5971         t/pmc/pmc.t:
5972         More work on integer PMCs.
5974 2001-11-23 17:29  simon
5976         * Makefile.in:
5977         Surprise! Whitespace! HLAGHLAGHLAGH
5979 2001-11-23 17:28  simon
5981         * Makefile.in, ops2c.pl, ops2pm.pl:
5982         Add vtables.ops to the core
5984         Courtesy of: Jeff Goff <jgoff@speakeasy.net>
5986 2001-11-22 18:39  simon
5988         * core.ops, global_setup.c, docs/parrot_assembly.pod, t/op/pmc.t,
5989         t/pmc/pmc.t:
5990         We can now create PMCs.
5992 2001-11-21 05:49  jgoff
5994         * Makefile.in: Makefile cleans up *.pasm *.pbc *.out
5996 2001-11-20 16:00  simon
5998         * docs/vtables.pod, include/parrot/pmc.h:
5999         Reorder PMC flags so there's a fixed number of user-defined flags.
6001         Courtesy of: Dave Mitchell <davem@fdgroup.co.uk>
6003 2001-11-19 03:39  jgoff
6005         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm, t/op/basic.t:
6006         Parrot/Assembler.pm - Allow "print 'foo'", and properly escape
6007         nested quotes.  t/op/basic.t - Add tests for single-quoted strings,
6008         escaped quotes, and proper                handling of newlines.
6010 2001-11-16 22:03  simon
6012         * classes/perlint.c:
6013         More work on the Perl Integer class. More needed, though.
6015 2001-11-16 21:57  simon
6017         * pmc.c, vtable.tbl, classes/genclass.pl, classes/perlint.c:
6018         Rename ->new to ->init, and rework pmc.c:pmc_new to fiddle it.
6020 2001-11-16 20:49  simon
6022         * interpreter.c, runops_cores.c, trace.c,
6023         include/parrot/runops_cores.h:
6024         Kill superfluous runops cores.
6026 2001-11-16 17:50  simon
6028         * MANIFEST, Makefile.in, classes/intclass.c, classes/perlint.c,
6029         classes/perlnum.c, classes/perlstring.c, classes/scalarclass.c,
6030         include/parrot/parrot.h, include/parrot/pmc.h:
6031         Skeleton for Perl scalar types, done right.
6033 2001-11-16 16:15  simon
6035         * classes/genclass.pl:
6036         This tidies up genclass to deal with the new-style multimethods.
6038 2001-11-16 15:29  simon
6040         * Makefile.in, make_vtable_ops.pl, vtable.tbl, Parrot/Vtable.pm,
6041         lib/Parrot/Vtable.pm, include/parrot/parrot.h:
6042         Rework multimethods to be *true* multimethods - that is, have
6043         different types.
6045 2001-11-15 22:29  simon
6047         * MANIFEST, Makefile.in, pmc.c:
6048         pmc.c linkage and support. Oh, and making it compile.
6050 2001-11-15 22:26  dan
6052         * t/op/interp.t: Forgot to tell CVS about the test...
6054 2001-11-15 22:10  dan
6056         * MANIFEST, Types_pm.in, core.ops, vtable_h.pl,
6057         docs/parrot_assembly.pod, include/parrot/string.h: Added in support
6058         for PMC registers for the interpreter.
6060         Added in the docs for the runinterp opcode.
6062         Added in code for both the newinterp and runinterp opcodes, so we
6063         can now create new interpreters from within parrot and have them do
6064         things. (Though we can't pass data back and forth. Yet)
6066 2001-11-15 21:24  simon
6068         * vtable.tbl, classes/scalarclass.c, docs/vtables.pod:
6069         More documentation, and other changes as discussed with Dan.
6071 2001-11-15 19:51  simon
6073         * classes/scalarclass.c:
6074         De-cut-and-pasto.
6076 2001-11-15 19:50  simon
6078         * classes/scalarclass.c:
6079         A little code tidiness.
6081 2001-11-15 19:33  simon
6083         * include/parrot/pmc.h:
6084         Missed this in the previous commit - un-constantize the base for
6085         user-defined PMC flags.
6087 2001-11-15 19:28  simon
6089         * classes/scalarclass.c:
6090         Hey look, sanity.
6092 2001-11-15 17:09  simon
6094         * classes/scalarclass.c:
6095         It seems I have completely forgotten how to write C.
6097 2001-11-15 16:53  simon
6099         * docs/vtables.pod:
6100         Start of the PMC classes documentation.
6102 2001-11-15 14:46  simon
6104         * classes/scalarclass.c:
6105         Changing to use a Perl-style struct instead of the union cache.
6107 2001-11-13 23:56  tom
6109         * string.c: Removed leading _ from string_index as function names
6110         starting with _ are reserved to implementors by the C standard.
6112         Also fixed string_index to use the encoding routines instead of
6113         assuming a single byte encoding.
6115 2001-11-13 12:59  jgoff
6117         * string.c: Patched string_concat to accept null strings.  That
6118         test was failing. Nothing to do with ord().
6120 2001-11-13 12:43  jgoff
6122         * string.c: string_ord function, string_concat fixes
6124 2001-11-13 04:52  jgoff
6126         * core.ops: Added ord to core.ops
6128 2001-11-13 04:35  jgoff
6130         * docs/strings.pod, include/parrot/exceptions.h,
6131         include/parrot/string.h, t/op/string.t: core.ops - Added ord
6132         operator, documentation string.c - Added string_ord, _string_index
6133         (_string_index is a static helper)              Patched
6134         string_concat to handle null strings properly.  docs/strings.pod -
6135         Description of string_ord include/parrot/exceptions.h - Added
6136         ORD_OUT_OF_STRING exception include/parrot/string.h - Added
6137         string_ord() t/op/string.t - Added full set of test for
6138         ord_i_(s|sc)(_(i|ic))?
6140         string.c contains a bit of documentation explaining the logic
6141         behind _string_index, primarily having to do with multiple encoding
6142         formats.
6144 2001-11-12 22:30  simon
6146         * t/op/macro.t:
6147         Count 'em.
6149 2001-11-12 22:28  simon
6151         * Makefile.in:
6152         Add a rule to compile "platform"
6154 2001-11-12 22:26  simon
6156         * Makefile.in:
6157         Tidy up distclean target.
6159 2001-11-12 16:54  dan
6161         * MANIFEST, Parrot/Assembler.pm, lib/Parrot/Assembler.pm,
6162         t/op/macro.t: Fixes to the assembler's macro facility and a test
6164         Courtesy of: Jeff <jgoff@speakeasy.net>
6166 2001-11-12 16:50  dan
6168         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm: Allow input from
6169         stdin
6171         Courtesy of: Jeff <jgoff@speakeasy.net>
6173 2001-11-12 16:36  dan
6175         * Parrot/Test.pm, lib/Parrot/Test.pm: Fix to make test work on
6176         CygWin
6178         Courtesy of: Alex Gough <alexander.gough@st-hughs.oxford.ac.uk>
6180 2001-11-12 11:22  simon
6182         * examples/assembly/mops.pasm:
6184         Trivial tightening of mops loop.
6186 2001-11-07 23:57  ajgough
6188         * docs/tests.pod: This is a basic quide to writing tests with
6189         assembler.
6191 2001-11-07 22:29  dan
6193         * stacks.c: Added a little documentation on the cleanup parameter
6194         for an entry
6196 2001-11-07 14:43  dan
6198         * MANIFEST, platforms/generic.c, platforms/linux.c,
6199         platforms/linux.h: Portability patches.
6201         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
6203 2001-11-06 19:51  tom
6205         * Makefile.in: Clean up object files in the subdirectories as well
6206         as those in the top level directory.
6208         Enhanced version of patch from Daniel Grunblatt
6209         <daniel@grunblatt.com.ar>
6211 2001-11-06 16:14  dan
6213         * Configure.pl, MANIFEST, Makefile.in, core.ops,
6214         platforms/generic.c, platforms/generic.h: Made things a bit more
6215         platform-independent. Makefile still needs work to pick up changes
6216         to the platform-specific files.
6218 2001-11-05 21:32  dan
6220         * docs/parrot_assembly.pod: Added docs for the GC control ops
6222 2001-11-04 02:52  gregor
6224         * platforms/: win32.c, win32.h:
6225           * win32 dynamic loading functions.
6227         Courtesy of Jason Diamond <jason@injektilo.org>
6229 2001-11-04 00:04  brentdax
6231         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm: Assembler fixes:
6232         allows an absolute path to be used and gives a useful error message
6233         if the original source file can't be found
6235 2001-11-02 12:37  gregor
6237         * platforms/: linux.c, linux.h:
6238           * Beginning of dynamic loading support. Linux only for now.
6240 2001-11-02 12:13  gregor
6242         * MANIFEST, time.c, include/parrot/time.h:
6243           * Removed time.[hc], since they have been superseded by the new
6244         platform
6245             stuff.
6247 2001-11-02 12:11  gregor
6249         * Configure.pl, Makefile.in, core.ops, vtable.tbl,
6250         classes/intclass.c, classes/scalarclass.c, hints/mswin32.pl,
6251         include/parrot/parrot.h, platforms/linux.c, platforms/linux.h,
6252         platforms/win32.c, platforms/win32.h:
6253         Patch from Jason Diamond to make win32 platform stuff work:
6255         * Modified Configure.pl, mswin32.pl, and Makefile.in so that the
6256         platform specific files in the platforms directory gets copied to
6257         the correct directories. The Makefile will re-copy the platform.h
6258         and .c files if the original is modified.
6260         * #include platform.h in parrot.h instead of time.h.
6262         * Removed time.h and time.obj from the Makefile. time.h and time.c
6263         aren't being used anymore since that code was moved to linux.c and
6264         win32.c.
6266         * Renamed the BOOL typedef in parrot.h to BOOLVAL (inspired by
6267         INTVAL and FLOATVAL). This was conflicting with the BOOL typedef in
6268         windows.h. This required updating several files besides parrot.h.
6270         * Added a DEFAULT_OPEN_MODE to linux.h and win32.h and used that
6271         instead of the missing identifiers (on Windows) in core.ops in the
6272         calls to open.
6274         * Added Parrot_sleep and Parrot_setenv to both the linux and win32
6275         platform files and called those from core.ops. The Linux code for
6276         these functions came from core.ops so they should hopefully work.
6278         Courtesy of Jason Diamond <jason@injektilo.org>
6280 2001-11-02 06:43  brentdax
6282         * Makefile.in, hints/mswin32.pl: Fix classes/intclass.obj building
6283         for Win32 (courtesy of Jason Diamond <jason@injektilo.org>)
6285 2001-11-02 02:26  gregor
6287         * .cvsignore, MANIFEST, include/parrot/.cvsignore,
6288         platforms/linux.c, platforms/linux.h, platforms/win32.c,
6289         platforms/win32.h:
6290           * Beginnings of platform support files in platform/*.[hc]
6292 2001-11-01 23:37  tom
6294         * classes/intclass.c: Added missing *'s to STRING arguments and
6295         return values to avoid compiler warnings.
6297 2001-11-01 22:21  gregor
6299         * MANIFEST, Makefile.in, core.ops, obscure.ops, time.c,
6300         include/parrot/parrot.h, include/parrot/time.h:
6301         Initial "fix" of time(n) op for Win32:
6303           * Initial Win32 code Courtesy of Richard J Cox <rjcox@cix.co.uk>
6305           * time.c and include/parrot/time.h
6307             First attempt at getting this working across platforms. The
6308             macro WIN32 being tested might not be right.
6310           * New functions Parrot_intval_time() and Parrot_floatval_time()
6311             wrap the appropriate functionality depending upon platform.
6312             Changed core.ops to call these.
6314         Added obscure.ops with obscure transcendental ops.
6316         Added simple file I/O ops (close, open, read, write):
6318           * Initial versions Courtesy of Jeff <jgoff@speakeasy.net>
6320           * I changed some arg ordering stuff.
6322           * I added read/write of INTVALs and FLOATVALs.
6324         Added environment variable ops (getenv, setenv)
6326         Added system error ops (err(i) and err(s) for accessing errno and
6327         strerr().
6329         Moved print ops in with other "temporary" developer ops, since
6330         they'll move to a devel.ops or temp.ops oplib once we have oplibs.
6332 2001-10-31 22:51  tom
6334         * MANIFEST, Makefile.in, chartype.c, encoding.c, global_setup.c,
6335         packfile.c, string.c, strnative.c, strutf16.c, strutf32.c,
6336         strutf8.c, transcode.c, chartypes/unicode.c, chartypes/usascii.c,
6337         encodings/singlebyte.c, encodings/utf16.c, encodings/utf32.c,
6338         encodings/utf8.c, include/parrot/chartype.h,
6339         include/parrot/encoding.h, include/parrot/exceptions.h,
6340         include/parrot/parrot.h, include/parrot/string.h,
6341         include/parrot/strnative.h, include/parrot/strutf16.h,
6342         include/parrot/strutf32.h, include/parrot/strutf8.h,
6343         include/parrot/transcode.h: Reworked the string code in line with
6344         Dan's latest design that separates character sets from encodings.
6346 2001-10-31 19:53  dan
6348         * docs/parrot_assembly.pod: Finished I/O section of docs
6350 2001-10-31 16:51  dan
6352         * core.ops, docs/parrot_assembly.pod, include/parrot/parrot.h:
6353         Moved includes out of core.ops and into parrot.h where they belong
6354         (suitably guarded with #ifdefs). Also some updates to
6355         parrot_assembly.pod
6357 2001-10-30 21:43  dan
6359         * core.ops, stacks.c, docs/parrot_assembly.pod,
6360         include/parrot/stacks.h: Added entrytype opcode to fetch the type
6361         of the entry on the stack
6363 2001-10-29 18:30  dan
6365         * stacks.c: You can turn off stack entry type validation on pop by
6366         passing in a type of 0 now. (For those cases where you just want to
6367         throw the darned thing away)
6369 2001-10-29 14:37  gregor
6371         * core.ops, languages/jako/jakoc:
6372           * New variants of the save ops to save constants on the stack.
6373         This is
6374             useful for saving zero arg and result counts on the stack, for
6375         example.
6377           * Modified jakoc to to adapt to the newly announced calling
6378         conventions.
6379             Even though Jako source code appears to show subroutines with
6380         fixed
6381             numbers of arguments and results, they are implemented with the
6382             variable count calling convention. Future modifications will be
6383         needed
6384             to ensure that an exception is raised if the stack frame is of
6385         the
6386             wrong size (or, at least that we pop the complete frame off).
6387         We'll
6388             also have to make more changes to support the true
6389         fixed-arg-count
6390             and fixed-result-count parts of the calling convention spec.
6392 2001-10-28 16:53  simon
6394         * MANIFEST, stacks.c, classes/scalarclass.c,
6395         include/parrot/stacks.h:
6396         Unbelievably bad errors of mine, plus a type incompatibility of
6397         Dan's.
6399 2001-10-28 08:30  simon
6401         * classes/scalarclass.c:
6402         Beginning of a scalar class.
6404 2001-10-28 08:29  simon
6406         * make_vtable_ops.pl, vtable.tbl, Parrot/Vtable.pm,
6407         lib/Parrot/Vtable.pm, classes/genclass.pl, classes/intclass.c,
6408         include/parrot/pmc.h:
6409         This fixes the problem with vtables and pointer arithmetic.
6411 2001-10-26 19:58  dan
6413         * core.ops, interpreter.c, stacks.c, include/parrot/interpreter.h,
6414         include/parrot/stacks.h: Split the generic stack into a user push
6415         stack and a control stack
6417 2001-10-26 02:59  bdwheele
6419         * Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm: [no log message]
6421 2001-10-24 20:27  dan
6423         * languages/scheme/: Makefile, Scheme.pm, schemec,
6424         Scheme/Generator.pm, Scheme/Parser.pm, Scheme/Test.pm,
6425         Scheme/Tokenizer.pm, t/harness, t/arith/basic.t, t/arith/logic.t,
6426         t/arith/nested.t, t/io/basic.t, t/logic/basic.t: Added the mini
6427         Scheme compiler
6429 2001-10-24 20:23  dan
6431         * MANIFEST, pdump.c, docs/parrot_assembly.pod: Update for
6432         interpreter needs in pdump.c. Added scheme bits to manifest
6434 2001-10-24 16:43  gregor
6436         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm:
6437           * Make the assembler handle octal character code escapes in
6438         string
6439             constants.
6441 2001-10-24 15:56  dan
6443         * MANIFEST, examples/assembly/life.pasm: Added an example in to
6444         play the game of life
6446 2001-10-24 15:54  dan
6448         * core.ops: Added sleep. We'll need to override this to do events
6449         properly anyway, so...
6451 2001-10-24 14:03  gregor
6453         * Makefile.in, pbc2c.pl, pdump.c:
6454           * Adapt pdump.c and pbc2c.pl to the new requirement to pass
6455         interpreter
6456             pointer into string functions.
6458         Courtesy of: Ryan O'Neil <talisman580@yahoo.com>
6460 2001-10-23 20:09  gregor
6462         * languages/jako/jakoc:
6463           * Terminological refinement in regexp capture comment.
6465 2001-10-23 15:23  simon
6467         * classes/genclass.pl:
6468         Use a saner ANSI C construct to make MIPSPro happy.
6470         Courtesy of: Alex Gough <alexander.gough@st-hughs.oxford.ac.uk>
6472 2001-10-23 00:34  tom
6474         * core.ops, string.c, strnative.c, strutf16.c, strutf32.c,
6475         strutf8.c, include/parrot/string.h: Make sure the interpreter
6476         structure is passed to the transcoder as necessary, including
6477         passing it to string_compare().
6479 2001-10-23 00:32  tom
6481         * Makefile.in: Make pdump build again by including resources.o in
6482         the link.
6484 2001-10-22 22:43  dan
6486         * core.ops, packfile.c, string.c, strnative.c, strutf16.c,
6487         strutf32.c, strutf8.c, test_main.c, transcode.c,
6488         include/parrot/packfile.h, include/parrot/parrot.h,
6489         include/parrot/resources.h, include/parrot/string.h,
6490         include/parrot/transcode.h: Everything now uses the allocators and
6491         deallocators in resources.c.
6493         Unfortunately we lost standalone string-test mode, but I can cope
6494         with that.
6496         Please note that until we have a real allocation/deallocation/GC
6497         system, this'll leak. A *lot*.
6499 2001-10-22 20:27  dan
6501         * MANIFEST, Makefile.in, pmc.c, resources.c,
6502         include/parrot/resources.h: First cut to handle arena allocation of
6503         PMC headers. (Amongst other things)
6505 2001-10-22 19:02  dan
6507         * Configure.pl, config_h.in, register.c, include/parrot/register.h:
6508         Now each register type has its own mask macro, which is the right
6509         thing to do.
6511         Patch courtesy of Jason Gloudon <perl@gloudon.com>
6513 2001-10-21 23:40  tom
6515         * stacks.c, t/op/stacks.t: Fix bug in handling of rollover to a new
6516         stack chunk and add a test to test this rollover in future.
6518         Courtesy of Jason Gloudon <perl@gloudon.com>.
6520 2001-10-21 19:14  dan
6522         * include/parrot/string.h: Changed string 'unused' field to the
6523         language field.
6525 2001-10-21 18:18  gregor
6527         * languages/jako/: Makefile, mops.jako:
6528           * Makefile: 'clean' target removes .list files, too. And, it does
6529         rm -f
6530             with wildcards rather than listing things explicitly.
6532           * mops.jako actually prints out the
6533         millions-of-operations-per-second
6534             (mops) value instead of just the operations-per-second value.
6536 2001-10-21 18:03  simon
6538         * classes/intclass.o:
6539         *smack*! WRONG!
6541 2001-10-21 17:47  simon
6543         * MANIFEST, Makefile.in, make_vtable_ops.pl, pmc.c, vtable_h.pl,
6544         Parrot/Vtable.pm, classes/genclass.pl, classes/intclass.c,
6545         classes/intclass.o, include/parrot/parrot.h, include/parrot/pmc.h,
6546         lib/Parrot/Vtable.pm:
6547         Initial work on PMCs. Explanation to follow
6549 2001-10-21 15:20  gregor
6551         * examples/assembly/queens.pasm:
6552           * Modernize the calling conventions in queens.pasm. It was using
6553         swap,
6554             which now must be rotate. Also, changed to use return values on
6555         the
6556             stack instead of in I0.
6558 2001-10-19 18:14  gregor
6560         * core.ops, stacks.c, include/parrot/stacks.h,
6561         languages/jako/jakoc:
6562         Per Dan's request, replacing 'swap' op by 'rotate'.
6564           * core.ops: Replaced 'swap()' by 'rotate(i|ic)'.
6566           * stacks.c and stacks.h: Removed swap-related functions from my
6567             prior commit, replacing them with stack_depth(), stack_entry()
6568             and rotate_entries().
6570             NOTE: The stack_depth() and rotate_entries() routines could
6571             be made more efficient through the caching of the sum of chunk
6572             'used' members from lower chunks in a field in the upper
6573             chunks. Also, if the interpreter's stack_base was changed to
6574             hold the pointer to the *top* chunk (since we usually come
6575             at the stack from the top down) instead of the *bottom*
6576             chunk. The code here at least works, and we can decide about
6577             bigger changes separately.
6579             For now, rotate only handles rotates in one direction and
6580             of magnituded one. A fully general rotate would do handle
6581             rotates in both directions and of arbitrary amounts. Again,
6582             this implementation is sufficient for current applications,
6583             and a feature-complete version can be developed if this turns
6584             out to be otherwise the right type of implementation.
6586             This change includes a new exception for ERROR_STACK_SHALLOW,
6587             meaning "not-empty-yet-not-deep-enough-for-what-you-asked".
6589           * jakoc: Changed the calling convention to use rotate instead
6590             of swap (of course). Also changed the convention for return
6591             value passing to use the stack as well.
6593 2001-10-19 13:36  gregor
6595         * MANIFEST, core.ops, disassemble.pl, stacks.c,
6596         examples/assembly/queens.pasm, include/parrot/stacks.h,
6597         languages/jako/.cvsignore, languages/jako/Makefile,
6598         languages/jako/bench.jako, languages/jako/euclid.jako,
6599         languages/jako/fact.jako, languages/jako/jakoc,
6600         languages/jako/mandelbrot.jako, languages/jako/mops.jako,
6601         languages/jako/primes.jako, languages/jako/queens.jako,
6602         languages/jako/sub.jako:
6603           * New stack functions push_entry(), pop_entry() and swap_entry().
6604             The first two exist for the support of the last one. These
6605             functions don't care what is in the stack entries. These exist
6606             to support the new 'swap' op (see next bullet).
6608           * New op 'swap' for swapping the top two elements on the stack.
6609             This is necessary for passing arguments to functions, since
6610             the return address will be on top of any arguments that have
6611             been pushed on the stack. This way, you can use a (swap, pop)
6612             pair to retrieve each argument (for subroutine linkage).
6614           * Disassembler now prints numbers in decimal by default, with
6615             a new '-x' flag to turn on hexadecimal display. Since other
6616             members of the Parrot Tool Set use decimal by default, this
6617             makes it easier to compare output from the various tools.
6619           * Jako compiler has more explanatory comments and the following
6620             new features:
6622               * Lexically scoped variables.
6624               * Subroutines that take arguments and return values:
6626                   sub int foo(int bar) {
6627                     if (bar == 1) {
6628                       return 42;
6629                     } else {
6630                       return 13;
6631                     }
6632                   }
6633               * ... if (...) and ... unless (...) statement modifiers
6634                 can be used on next, last and redo.
6636               * Bitwise and (&, &=) and or (|, |=) ops.
6638               * Type names are just 'int', 'num', 'str', and 'poly' now.
6639                 The old long names 'integer', 'number', 'string', and
6640                 'polytype' are no longer valid.
6642               * Integer variable assignments can now use 0b (binary),
6643                 0 (octal) and 0x (hexadecimal) radix prefixes on literals.
6645           * New Jako and Parrot assembly examples queens.{jako,pasm} for
6646             solving the eight-queens problem. The assembly example is a
6647             hand-modified version of the assembly code produced by the
6648             Jako compiler from queens.jako. A few unnecessary ops have
6649             been removed, lots of unnecessary labels have been removed,
6650             and all the Jako source code comments have been removed.
6652           * Makefile and .cvsignore in languages/jako modified so that
6653             the assembler produces listings when assembling the programs,
6654             yet the *.list files are ignored by CVS.
6656           * Made the default target in languages/jako/Makefile 'all'.
6658           * Modified some of the Jako examples to use some of the new
6659             features of Jako, such as subroutines and lexical variable
6660             scoping.
6662 2001-10-19 02:43  gregor
6664         * runops_cores.c, include/parrot/runops_cores.h:
6665         Bug fix (gcc doesn't complain, but MIPSpro does):
6667           * Added missing extern to runops_cores array declaration in
6668             include/parrot/runops_cores.h
6670           * Also added 'const' there and in runops_cores.c
6672 2001-10-18 15:18  gregor
6674         * .cvsignore, include/parrot/oplib/.cvsignore:
6675           * Ignore the vtable-related generated files.
6677 2001-10-18 15:14  gregor
6679         * core.ops:
6680           * left and right shifts now allow the 2nd argument to be a
6681         constant.
6683 2001-10-18 14:55  simon
6685         * make_vtable_ops.pl:
6686         This is C, not Perl. How on earth did that even compile?
6688 2001-10-18 14:54  simon
6690         * make_vtable_ops.pl:
6691         More vtable ops.
6693 2001-10-18 12:33  simon
6695         * Makefile.in, make_vtable_ops.pl, vtable.tbl:
6696         Initial stab at vtable opcode creation stuff.
6698 2001-10-18 02:15  gregor
6700         * MANIFEST, Makefile.in, interpreter.c, runops_cores.c, trace.c,
6701         include/parrot/interpreter.h, include/parrot/runops_cores.h,
6702         include/parrot/trace.h: Preparation for autogenerated runops cores:
6704           * Split tracing and runops core stuff out of interpreter.c into
6705             trace.c and runops_cores.c
6707           * Similar split of stuff from include/parrot/interpreter.h
6709           * Manifest and Makefile.in updates to make things still compile.
6711 2001-10-18 01:21  gregor
6713         * Makefile.in, ops2c.pl, ops2pm.pl, pbc2c.pl: Bug fixes:
6715           * Makefile.in: examples/assembly/mops.c depends on pbc2c.pl
6717           * Makefile.in: Parrot/OpLib/core.pm depends on ops2pm.pl
6719           * ops2c.pl: Added second arg to mkdir (perl 5.005_02 complains)
6721           * ops2pm.pl: Added second arg to mkdir (perl 5.005_02 complains)
6723           * pbc2c.pl: Removed explicit include of <math.h>, replacing it
6724         with
6725             copy of $ops->preamble.
6727 2001-10-17 22:32  bdwheele
6729         * interpreter.c: Moved op dump code into trace_op_dump, per Dan's
6730         request.
6732 2001-10-17 22:08  gregor
6734         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm:
6735           * Now handles label-and-comment-only lines.
6737 2001-10-17 22:04  bdwheele
6739         * interpreter.c: added more comprehensive trace output
6741 2001-10-17 16:50  tom
6743         * Makefile.in: Removed the explicit rule for building mops.o from
6744         mops.c so that the implicit rule for compiling C files is used
6745         instead. This means that the chosen C flags are used, including any
6746         optimisation options.
6748 2001-10-17 15:24  tom
6750         * core.ops, Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm: Enhanced the
6751         op explosion logic to be able to handle exploding this:
6753           sub(i, i|ic, i|ic)
6755         into these:
6757           sub(i, i, i)
6758           sub(i, i, ic)
6759           sub(i, ic, i)
6761         without also generating this unwanted version:
6763           sub(i, ic, ic)
6765         The enhanced version rejects any expansion where there is more than
6766         one expanded argument and all the expanded arguments are constants.
6768 2001-10-17 14:20  simon
6770         * Makefile.in, ops2c.pl, ops2pm.pl, examples/assembly/Makefile:
6771         Build fixes to use correct Perl version and ensure that things are
6772         running in the right directory.
6774         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
6776 2001-10-17 13:16  simon
6778         * Makefile.in:
6779         core.pm is more critical than that.
6781 2001-10-17 13:05  simon
6783         * core.ops, Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm:
6784         "Explode" ops into multiple versions for different parameters.
6786         Courtesy of: Tom Hughes <tom@compton.nu>
6788 2001-10-17 12:54  simon
6790         * Makefile.in:
6791         Fix dependencies and cleaning.
6793 2001-10-17 12:45  simon
6795         * Configure.pl, Makefile.in:
6796         Fixes to make Parrot compile without the temporary build hack
6798         Courtesy of: Jason Gloudon <perl@gloudon.com>
6800 2001-10-16 20:43  gregor
6802         * Makefile.in:
6803           * Fixed dependencies for building Parrot/OpLib/core.pm
6805 2001-10-16 19:35  bdwheele
6807         * core.ops, t/op/string.t: Changed set s,sc to use string_copy &
6808         added test, thanks to Alex Gough
6810 2001-10-16 16:49  bdwheele
6812         * core.ops: added opcode variants for constants and 3 arg concat
6814 2001-10-16 15:12  bdwheele
6816         * core.ops: added "set Sx,Sy" as a string copy to match the other
6817         register-to-register copies available
6819 2001-10-16 13:09  gregor
6821         * core.ops:
6822           * Added #include <sys/time.h> in the preamble for gettimeofday().
6824 2001-10-16 13:09  gregor
6826         * Makefile.in:
6827           * Removed cd t; make, which no longer applies
6829 2001-10-16 03:18  bdwheele
6831         * core.ops: fix save & restore operations to push correct type onto
6832         stack. [good eye to Jason Gloudon for noticing this]
6834 2001-10-16 01:38  bdwheele
6836         * core.ops, register.c, examples/assembly/fact.pasm,
6837         include/parrot/register.h: send in the clones:  clone routines for
6838         parrot + example program
6840 2001-10-15 22:37  gregor
6842         * MANIFEST, Makefile.in, examples/assembly/.cvsignore,
6843         examples/assembly/Makefile, examples/assembly/bsr.pasm,
6844         examples/assembly/call.pasm, examples/assembly/euclid.pasm,
6845         examples/assembly/jump.pasm, examples/assembly/local_label.pasm,
6846         examples/assembly/mops.pasm, examples/assembly/stack.pasm,
6847         examples/assembly/substr.pasm, examples/assembly/trace.pasm,
6848         t/.cvsignore, t/Makefile, t/call.pasm, t/euclid.pasm, t/jump.pasm,
6849         t/local_label.pasm, t/test.pasm, t/test2.pasm, t/test3.pasm,
6850         t/test4.pasm, t/test5.pasm, t/trace.pasm:
6851           * Moved examples from t/*.pasm to examples/assembly/*.pasm, with
6852         some
6853             renames so the names match what they demonstrate.
6855 2001-10-15 22:18  gregor
6857         * core.ops, t/test.pasm:
6858           * time_n uses gettimeofday() to get sub-second times.
6860           * t/test.pasm uses time_n directly rather than doing int stuff
6861         and
6862             converting to num later.
6864 2001-10-15 12:28  gregor
6866         * t/: test.pasm, test2.pasm, trace.pasm:
6867           * t/test.pasm prints using string constants instead of string
6868         regs.
6870           * t/test2.pasm assembles (using implicit op modes)
6872           * t/trace.pasm updated for new behavior of trace_ic, which does
6873         not
6874             require an 'end' after 'trace'.
6876 2001-10-15 00:47  gregor
6878         * core.ops, interpreter.c, test_main.c,
6879         include/parrot/interpreter.h, t/test.pasm:   * New interpreter flag
6880         PARROT_PROFILE_FLAG
6882           * New runops cores to handle profiling
6884           * Support for -p flag in test_prog to enable profiling
6886           * New profile_ic op to control profiling at run-time
6888 2001-10-14 21:54  gregor
6890         * core.ops, Parrot/OpsFile.pm, docs/.cvsignore, docs/Makefile,
6891         lib/Parrot/OpsFile.pm: Integrated op documentation.
6893           * core.ops now contains POD documentation of ops, interspersed
6894         with the
6895             ops themselves
6897           * Ops are organized into POD =head2 sections
6899           * Parrot/OpsFile.pm now treats the preamble of the ops file as
6900         anything
6901             up to the first POD directive OR op definition.
6903           * docs/Makefile now generates core_ops.pod from core.ops vi
6904         perldoc -u.
6906 2001-10-14 11:58  simon
6908         * Makefile.in:
6909         Unbreak Digital Un^W^WTru64
6911 2001-10-14 11:00  simon
6913         * Configure.pl:
6914         Remove weird typo.
6916 2001-10-14 10:56  tom
6918         * Configure.pl: Stop Configure trying to make op_info.c and op.h as
6919         op_info.c no longer exists and op.h is no longer a generated file.
6921 2001-10-14 10:54  tom
6923         * Makefile.in: Added vtable.h to the list of things removed by the
6924         clean target.
6926 2001-10-14 01:43  gregor
6928         * .cvsignore, MANIFEST, Makefile.in, basic_opcodes.ops,
6929         build_interp_starter.pl, core.ops, disassemble.pl, interpreter.c,
6930         make_op_header.pl, memory.c, opcheck.pl, opcode_table, ops2c.pl,
6931         ops2pm.pl, packfile.c, pbc2c.pl, process_opfunc.pl,
6932         Parrot/Assembler.pm, Parrot/Op.pm, Parrot/OpsFile.pm,
6933         Parrot/OpLib/.cvsignore, lib/Parrot/Assembler.pm, lib/Parrot/Op.pm,
6934         lib/Parrot/OpsFile.pm, lib/Parrot/OpLib/.cvsignore,
6935         include/parrot/.cvsignore, include/parrot/interp_guts.h,
6936         include/parrot/interpreter.h, include/parrot/op.h,
6937         include/parrot/oplib/.cvsignore, t/.cvsignore, t/Makefile,
6938         t/euclid.pasm, t/test.pasm, t/op/integer.t, t/op/number.t,
6939         t/op/stacks.t, t/op/string.t, t/op/trans.t:
6940         Moby Patch:
6942           * basic_opcodes.ops and opcode_table replaced by core.ops
6944           * process_opfunc.pl replaced by Parrot/OpsFile.pm, Parrot/Op.pm,
6945             and ops2c.pl. These convert *.ops to *_ops.c and
6946             include/parrot/oplib/*_ops.h
6948           * New ops2pm.pl converts *.ops to Parrot/OpLib/*.pm
6950           * disassemble.pl modified to use
6952           * interpreter.c modified to use structures in core_ops.c instead
6953             of the old op_info and op_func stuff. We're not yet to the
6954             point of handling multiple oplibs at a time, but we are getting
6955             there...
6957             Fingerprinting stuff disabled for now. We used to go off
6958             opcode_table. We need to rethink this. I have some ideas to
6959             make it unnecessary, but it remains to be seen whether others
6960             will like the direction they take us.
6962             Termination condition for while(){} loop in runops is now
6963             (pc) instead of (*pc). Any op can cause a HALT by returning
6964             a NULL pointer. Ops end, bounds and trace all do this. So, now
6965             the 'end' op body is actually executed, although all it does
6966             is HALT.
6968           * Makefile.in modified to perform a test build using pbc2c.pl,
6969             which is the bytecode --> C compiler I've posted to the
6970             list before.
6972           * Op full names are now autogenerated. Op root names must not
6973             contain underscores, so some op renamings have happened.
6974             Such as clear_i becoming cleari.
6976 2001-10-13 11:49  simon
6978         * Configure.pl, MANIFEST:
6979         Make parrot actually build again.
6981 2001-10-12 21:34  dan
6983         * docs/parrot_assembly.pod: Added docs for the new save/restore/bsr
6984         opcodes
6986 2001-10-12 20:56  dan
6988         * MANIFEST, Makefile.in, basic_opcodes.ops, interpreter.c,
6989         opcode_table, process_opfunc.pl, stacks.c, include/parrot/stacks.h,
6990         t/test3.pasm, t/test4.pasm, t/test5.pasm: Changes to support
6991         generic stack now in. We also have subroutines, of a simple sort!
6993 2001-10-12 19:15  tom
6995         * t/op/string.t: Improved string comparison tests try all string
6996         combinations with each of the comparison ops.
6998 2001-10-12 19:09  dan
7000         * interpreter.c: Properly sets up generic stack now
7002 2001-10-12 19:09  dan
7004         * include/parrot/interpreter.h: Fixed stack chunk struct type in
7005         interpreter structure
7007 2001-10-12 18:59  dan
7009         * stacks.c, include/parrot/parrot.h, include/parrot/stacks.h: More
7010         changes to get the generic stack working
7012 2001-10-12 18:59  dan
7014         * Configure.pl, MANIFEST, config_h.in, testparrotsizes_c.in,
7015         hints/vms.pl: Made the changes to figure out mask bits for various
7016         register and stack chunks
7018 2001-10-11 22:09  dan
7020         * docs/parrot_assembly.pod: Tossed the parameter for return
7022 2001-10-11 19:28  tom
7024         * strnative.c: Assignment, not comparison.  (Plus formatted for
7025         coding standards)
7027         Courtesy of Bryan C. Warnock
7029 2001-10-10 19:21  tom
7031         * basic_opcodes.ops, opcode_table, string.c, strnative.c,
7032         strutf16.c, strutf32.c, strutf8.c, docs/strings.pod,
7033         include/parrot/string.h, t/op/string.t: Added support for string
7034         comparisons and extended the comparison ops to include comparison
7035         of strings.
7037 2001-10-10 17:58  dan
7039         * MANIFEST: Shouldn't have added vtable.h to the manifest...
7041 2001-10-10 17:54  dan
7043         * MANIFEST, stacks.c, vtable_h.pl, Parrot/Vtable.pm,
7044         lib/Parrot/Vtable.pm: Now spits out the #defines for the various
7045         vtable type entries properly
7047 2001-10-10 15:37  dan
7049         * Parrot/Vtable.pm, lib/Parrot/Vtable.pm: Re-enabled change to
7050         parse new vtable.tbl file now that I've actually checked *in* the
7051         new format vtable.tbl file...
7053 2001-10-10 15:32  dan
7055         * vtable.tbl: New Column to indicate the type of the vtabel entry
7056         so we can know how many slots it takes
7058 2001-10-10 05:26  thgibbs
7060         * Parrot/Vtable.pm, lib/Parrot/Vtable.pm, vtable_h.pl: Patch to
7061         allow parrot to compile.  PACKAGE is not defined, therefore, I
7062         added a struct before it to have it not complain until we define
7063         PACKAGE.  Also, there was an extra shift in Vtable.pm and a missing
7064         semicolon at the end of the struct declaration.
7066 2001-10-10 05:09  thgibbs
7068         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm: This patch makes
7069         string constants of the form U"string" become unicode encoded
7070         parrot strings and the form N"string" become native encoded parrot
7071         strings.
7073         Courtesy of: Tom Hughes <tom@compton.nu>
7075 2001-10-10 04:55  dan
7077         * vtable_h.pl, Parrot/Vtable.pm, lib/Parrot/Vtable.pm: Start of
7078         support for generating the vtable function table offset macros
7080 2001-10-10 01:05  simon
7082         * t/op/integer.t:
7083         The test for cmod_i was using the 'mod Ix, Ix, Ix' form which
7084         compiles into the mod op, not the cmod_i op, hence wasn't testing
7085         what it thought it was.
7087         Courtesy of: Alex Gough <alexander.gough@st-hughs.oxford.ac.uk>
7089 2001-10-09 03:45  thgibbs
7091         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm: Patch to allow
7092         assembler to generate unicode strings.
7094         Courtesy of: Tom Hughes <tom@compton.nu>
7096 2001-10-08 19:30  brentdax
7098         * Configure.pl, test_c.in, hints/vms.pl: Cleaner VMS support, more
7099         info for Parrot::Config to remember, more flexible test.c stuff
7101 2001-10-08 15:04  gregor
7103         * basic_opcodes.ops:
7104           * Removed trash from early mod_i experiments (pardon our dust)
7106 2001-10-08 14:56  gregor
7108         * basic_opcodes.ops:
7109           * Fixed a couple of typos.
7111 2001-10-08 14:45  gregor
7113         * basic_opcodes.ops, opcode_table, t/op/integer.t, t/op/number.t:
7114         Arithmetic enhancements:
7116           * Renamed existing mod_i as cmod_i and added "corrected" mod_i:
7118             NOTE: This "uncorrected mod" algorithm uses the C language's
7119         built-in
7120             mod operator (x % y), which is
7122                 ... the remainder when x is divided by y, and thus is zero
7123         when y
7124                 divides x exactly.
7125                 ...
7126                 The direction of truncation for / and teh sign of the
7127         result for %
7128                 are machine-dependent for negative operands, as is the
7129         action taken
7130                 on overflow or underflow.
7131                                                                      --
7132         [1], page 41
7134             Also:
7136                 ... if the second operand is 0, the result is undefined.
7137         Otherwise, it
7138                 is always true that (a/b)*b + a%b is equal to z. I both
7139         operands are
7140                 non-negative, then teh remainder is non-negative and
7141         smaller than the
7142                 divisor; if not, it is guaranteed only that the absolute
7143         value of the
7144                 remainder is smaller than the absolute value of the
7145         divisor.
7146                                                                      --
7147         [1], page 205
7149             This op is provided for those who need it (such as
7150         speed-sensitive
7151             applications with heavy use of mod, but using it only with
7152         positive
7153             arguments), but a more mathematically useful numeric mod based
7154         on
7155             floor(x/y) and defined with y == 0 is provided by the mod_i op.
7157               [1] Brian W. Kernighan and Dennis M. Ritchie, *The C
7158         Programming
7159                   Language*, Second Edition. Prentice Hall, 1988.
7161           * Added "corrected" mod_i:
7163             NOTE: This "corrected mod" algorithm is based on the C code on
7164         page 70
7165             of [1]. Assuming correct behavior of C's built-in mod operator
7166         (%) with
7167             positive arguments, this algorithm implements a mathematically
7168         convenient
7169             version of mod, defined thus:
7171               x mod y = x - y * floor(x / y)
7173             For more information on this definition of mod, see section 3.4
7174         of [2],
7175             pages 81-85.
7177             References:
7179               [1] Donald E. Knuth, *MMIXware: A RISC Computer for the Third
7180                   Millennium* Springer, 1999.
7182               [2] Ronald L. Graham, Donald E. Knuth and Oren Patashnik,
7183         *Concrete
7184                   Mathematics*, Second Edition. Addison-Wesley, 1994.
7186           * Added mod_n, using the same formula as above, but with FLOATVAL
7187             arguments.
7189           * Added cmod_n, using the C math library's fmod() function:
7191             NOTE: This "uncorrected mod" algorithm uses the built-in C math
7192         library's
7193             fmod() function, which computes
7195                 ... the remainder of dividing x by y. The return value is x
7196         - n * y,
7197                 where n is the quotient of x / y, rounded towards zero to
7198         an
7199                 integer.
7200                                                 -- fmod() manpage on RedHat
7201         Linux 7.0
7203             In addition, fmod() returns
7205                 the remainder, unless y is zero, when the function fails
7206         and errno
7207                 is set.
7209             According to page 251 of [1], the result when y is zero is
7210         implementation-
7211             defined.
7213             This op is provided for those who need it, but a more
7214         mathematically
7215             useful numeric mod based on floor(x/y) instead of truncate(x/y)
7216         and
7217             defined with y == 0 is provided by the mod_n op.
7219               [1] Brian W. Kernighan and Dennis M. Ritchie, *The C
7220         Programming
7221                   Language*, Second Edition. Prentice Hall, 1988.
7223           * Added and modified tests as appropriate for the above.
7225 2001-10-08 08:49  thgibbs
7227         * include/parrot/exceptions.h, include/parrot/parrot.h,
7228         include/parrot/string.h, include/parrot/strutf16.h,
7229         include/parrot/strutf32.h, include/parrot/strutf8.h,
7230         include/parrot/transcode.h, include/parrot/unicode.h, MANIFEST,
7231         Makefile.in, global_setup.c, string.c, strnative.c, transcode.c,
7232         strutf16.c, strutf32.c, strutf8.c: Added code to handle unicode
7233         strings for utf8, utf16, and utf32.
7235         Courtesy of: Tom Hughes <tom@compton.nu>
7237 2001-10-08 08:10  thgibbs
7239         * memory.c: Fixed uninitialized variables.
7241         Courtesy of: Bryan C. Warnock <bwarnock@raba.com>
7243 2001-10-08 01:21  gregor
7245         * packfile.c:   * Casting a return value
7247           * Potential uninitialized variable fix
7249         Courtesy of Bryan C. Warnock <bwarnock@raba.com>
7251 2001-10-08 01:15  gregor
7253         * packfile.c, test_main.c: One of Bryan's languishing patches (with
7254         a few tweaks of my own):
7256           * Line wrapping
7258           * Printf format fixes
7260         Courtesy of: Bryan C. Warnock <bwarnock@raba.com>
7262 2001-10-07 22:39  thgibbs
7264         * build_interp_starter.pl: No longer adds (void*) casts to
7265         interp_guts.c function table as they are not necessary in ANSI C.
7267 2001-10-07 16:27  gregor
7269         * basic_opcodes.ops, interpreter.c, opcode_table,
7270         process_opfunc.pl, test_main.c, include/parrot/interpreter.h,
7271         t/trace.pasm:
7272           * Two new ops, trace_ic and bounds_ic that twiddle bits in
7273             interpreter->flags and set interpreter->resume_addr.
7275           * Two new runops core variants, so now we cover the relevant
7276             flag space over {trace, notrace} x {boundscheck, noboundscheck}
7278           * Runops core selection that converts the flags into an index
7279         into
7280             a core table (runops_cores) to get the core function pointer.
7282           * A new trace_op variant that doesn't do bounds checking (used by
7283             the non-bounds-checking-but-tracing runops core).
7285           * PC is passed into the cores so that they can be used when
7286             resuming (they used to assume starting at the beginning of the
7287             code, which would thwart resumption).
7289           * runops() itself is changed to have a while() loop in it so that
7290             any time we drop out of the core, we'll resume if we have an
7291             interpreter->resume_addr set (after reselecting the core,
7292         though).
7294           * process_opfunc.pl has a new "macro": RESUME(), that sets up
7295             interpreter->resume_addr. This is used by the new ops. The new
7296             ops still return the new PC as the next op (which MUST be an
7297             'end' op to force the core loop to terminate -- *pc being false
7298             is the only termination condition we can count on for all
7299         cores).
7301           * New interpreter flag: PARROT_BOUNDS_FLAG, used to control
7302             bounds checking core selection.
7304           * test_prog now has a '-b' flag in addition to the '-t' flag.
7305         Now,
7306             bounds checking is off by default (I saw a performance boost:
7307             6.3 Mop/s with -b, 7.0 Mop/s without).
7309           * A new sample/test program: t/trace.pasm that twiddles the trace
7310             flag while it is running.
7312 2001-10-07 15:41  gregor
7314         * .cvsignore, Makefile.in, build_interp_starter.pl, interpreter.c,
7315         include/parrot/.cvsignore, include/parrot/interpreter.h:
7316         Now that 0.0.2 is released, I can clear out the backlog of approved
7317         but uncommitted patches. Here's one Dan approved on 2001-09-21
7318         (Simplified DO_OP):
7320           * test_prog and pdump are linked with only the files the need,
7321         not
7322             al the files.
7324           * build_interp_starter.pl writes out op_info.[hc], too. These
7325         files
7326             contain op name, arg count and arg type information. This will
7327         be
7328             useful for multiple things in the future, including better
7329         trace
7330             output and the crystalizing loader.
7332           * The DO_OP macro is now simpler and doesn't require explicit
7333             temporaries.
7335           * interpreter.c is modified to use the new op info in tracing
7336         output.
7338           * The interpreter just points its opcode_funcs and opcode_info
7339             members at the default tables rather than allocating memory on
7340             the fly.
7342 2001-10-07 03:58  thgibbs
7344         * include/parrot/.cvsignore, vtable_h.pl: Minor updates fixing a
7345         comment and adding vtable.h to .cvsignore as it is produced by
7346         vtable_h.in
7348 2001-10-06 20:58  thgibbs
7350         * vtable.tbl: Added * to REGEX type.
7352         Courtesy of Bryan C. Warnock <bwarnock@raba.com>
7354 2001-10-06 13:41  simon
7356         * MANIFEST, Makefile.in, vtable.tbl, vtable_h.pl, Parrot/Vtable.pm,
7357         include/parrot/parrot.h, lib/Parrot/Vtable.pm:
7358         Framework for vtable functions.
7360 2001-10-06 06:52  thgibbs
7362         * make_op_header.pl: Removed confusing and unused typedef.
7364 2001-10-06 06:31  thgibbs
7366         * Parrot/Opcode.pm, lib/Parrot/Opcode.pm: Removed variables that
7367         are no longer used.
7369 2001-10-06 06:26  thgibbs
7371         * disassemble.pl: Changed intval to op in disassembler.
7373 2001-10-06 06:21  thgibbs
7375         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm: Fixed typo with
7376         Assembler, local labels, and integer constants.
7378 2001-10-06 03:11  ask
7380         * Makefile.in: make `make test` actually run the tests on
7381         darwin/macosx
7383 2001-10-06 02:04  thgibbs
7385         * Parrot/Assembler.pm, Parrot/Opcode.pm, Parrot/PackFile.pm,
7386         Parrot/String.pm, Parrot/PackFile/ConstTable.pm,
7387         Parrot/PackFile/Constant.pm, include/parrot/packfile.h,
7388         include/parrot/register.h, lib/Parrot/Assembler.pm,
7389         lib/Parrot/Opcode.pm, lib/Parrot/PackFile.pm, lib/Parrot/String.pm,
7390         lib/Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/Constant.pm,
7391         t/op/integer.t: No, it didn't mess anything up.  I just forgot to
7392         type make. :)
7394 2001-10-06 02:02  thgibbs
7396         * Parrot/Assembler.pm, Parrot/Opcode.pm, Parrot/PackFile.pm,
7397         Parrot/String.pm, Parrot/PackFile/ConstTable.pm,
7398         Parrot/PackFile/Constant.pm, include/parrot/packfile.h,
7399         include/parrot/register.h, lib/Parrot/Assembler.pm,
7400         lib/Parrot/Opcode.pm, lib/Parrot/PackFile.pm, lib/Parrot/String.pm,
7401         lib/Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/Constant.pm,
7402         t/op/integer.t: oops...this messed something up.  I must have
7403         missed something in the patch...I have reverted.
7405 2001-10-06 01:57  thgibbs
7407         * Parrot/Assembler.pm, Parrot/Opcode.pm, Parrot/PackFile.pm,
7408         Parrot/String.pm, Parrot/PackFile/ConstTable.pm,
7409         Parrot/PackFile/Constant.pm, include/parrot/packfile.h,
7410         include/parrot/register.h, lib/Parrot/Assembler.pm,
7411         lib/Parrot/Opcode.pm, lib/Parrot/PackFile.pm, lib/Parrot/String.pm,
7412         lib/Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/Constant.pm,
7413         t/op/integer.t, Types_pm.in, basic_opcodes.ops, config_h.in,
7414         memory.c, packfile.c, process_opfunc.pl, strnative.c, test_main.c:
7415         This patch ensures that all bytecode is of type opcode_t except for
7416         the constant table constants.  That means that almost all of the
7417         INTVALs in the code were replaced with opcode_t and the i pack type
7418         was replaced with the op pack type in calls to pack_arg and such.
7419         Also, since it has been declared that ALL integer constants are to
7420         be 32 bits, some test cases were changed to ensure that an integer
7421         constant was no bigger than 2 ** 31.
7423         process_opfunc.pl was also cleaned up to no longer look at either
7424         opcode_table or interp_guts.h but gather all of its information
7425         from Opcode.pm.
7427         The Assembler.pm module was changed to do late binding of arguments
7428         so that 0 could be treated like 0.0 without having to be so
7429         declared.  Also, only strings now use the [sc:N] intermediate form
7430         as it was unnecessary for integer and float types.
7432 2001-10-05 21:59  gregor
7434         * MANIFEST, languages/jako/Makefile:
7435         Fixed things due to the movement of little_languages/* to
7436         languages/jako.
7438 2001-10-05 18:31  gregor
7440         * MANIFEST:
7441         Updated MANIFEST to reflect recent additions for Jako.
7443 2001-10-05 17:54  gregor
7445         * languages/jako/: Makefile, bench.jako, euclid.jako, fact.jako,
7446         fib.jako, hello.jako, jakoc, leibniz.jako, mandelbrot.jako,
7447         mops.jako, primes.jako, sub.jako:
7448           * Compiler:
7450               * User-defined subroutines.
7451               * Generates assembly code with the Jako code in comments.
7452               * "end;" no longer required at the end of programs.
7453               * Better handling of const-reg and reg-const.
7454               * Optimizes const-const operations to compile-time
7455         evaluations.
7456               * Constants in addition to variables.
7457               * Arithmetic fixes.
7458               * Allow leading minus signs in integer and number constants
7459         (ahem).
7460               * goto's.
7462           * New sample programs:
7464               * leibniz.jako (based on Greg McCarroll's leibniz.pasm
7465         example)
7466               * mandelbrot.jako (based on Leon Brocard's translation of
7467         Glenn Rhodes' C code)
7468               * mops.jako (based on t/test.pasm)
7469               * primes.jako (based on Leon Brocard's primes.pasm example)
7470               * sub.jako (demonstrates a simple user-defined subroutine)
7472 2001-10-05 12:54  gregor
7474         * Parrot/Opcode.pm, lib/Parrot/Opcode.pm:
7475           * Removed mysterious extra copy of code after POD.
7477 2001-10-05 12:46  gregor
7479         * basic_opcodes.ops, t/op/string.t:
7480           * Enabled the previously SKIPped test of printing string regs
7481         after
7482             clear_s
7484           * Made print_s do nothing if the STRING pointer in the register
7485         file
7486             is NULL.
7488 2001-10-04 21:19  dan
7490         * Configure.pl: VMS tweaks
7492 2001-10-04 21:17  dan
7494         * hints/vms.pl: Hints file for VMS
7496 2001-10-04 00:58  bdwheele
7498         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm: fixed but in
7499         Assembler which stopped equates from working.
7501 2001-10-03 21:50  gregor
7503         * Makefile.in, docs/.cvsignore, docs/Makefile, docs/parrotbyte.pod:
7505           * More documentation updates for the packfile stuff.
7507 2001-10-03 21:37  gregor
7509         * docs/parrotbyte.pod:
7510           * Pointed the reader at Parrot::PackFile.
7512 2001-10-03 21:34  gregor
7514         * Parrot/PackFile.pm, lib/Parrot/PackFile.pm:
7515           * Updated documentation to match current implementation.
7517 2001-10-03 18:30  gregor
7519         * .cvsignore, disassemble.pl, Parrot/Assembler.pm,
7520         lib/Parrot/Assembler.pm, t/call.pasm, t/euclid.pasm,
7521         t/local_label.pasm, t/test.pasm, t/test2.pasm, t/test3.pasm,
7522         t/op/basic.t:
7523           * Added new syntax to the assembler to allow square-bracket
7524             arithmetic expressions involving (global) labels, the current
7525             instructions base address ('@'), numeric constants (not
7526         equates)
7527             and basic arithmetic operators (+, -, *, / -- although + and -
7528             are likely to be the only ones used in practice).
7530           * Fixed a bug in Parrot/Assemble.pl that caused macro expansion
7531         to
7532             fail (argument passing wasn't working).
7534           * Enabled t/op/basic.t's last test, which is actually a copy of
7535         the
7536             code from t/call.pasm. Now all tests there are enabled and
7537         working.
7539           * Added new example/test program t/call.pasm to demonstrate
7540         working
7541             macros and poor-man's subroutine calls
7543           * Added header comments to t/*.pasm
7545 2001-10-03 18:00  simon
7547         * ChangeLog:
7548         Needed, since it's in the MANIFEST.
7550 2001-10-03 17:56  simon
7552         * t/op/: string.t, time.t:
7553         Small fixes to help Win32 on its way.
7555 2001-10-03 17:41  simon
7557         * MANIFEST, README:
7558         Oops. Tiny bugs.
7560 2001-10-03 17:39  simon
7562         * MANIFEST, NEWS, README:
7563         README, NEWS and MANIFEST? Could it be time for Parrot 0.0.2? I
7564         think so!
7566 2001-10-03 17:21  simon
7568         * basic_opcodes.ops, interpreter.c, packfile.c:
7569         Evil printf bandaid (which allows Sparc64 to pass tests)
7571         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
7573 2001-10-03 16:58  simon
7575         * string.c, t/op/string.t:
7576         chop fixes for n < 0 and tests
7578         Courtesy of: Alex Gough <alex@rcon.org>
7580 2001-10-03 15:51  thgibbs
7582         * interpreter.c: Changed an occurrence of INTVAL to opcode_t
7584         Courtesy of: Bryan C. Warnock <bwarnock@raba.com>
7586 2001-10-02 17:48  dan
7588         * include/parrot/stacks.h: Fix typo in function name
7590 2001-10-02 17:35  dan
7592         * include/parrot/stacks.h: changed to support new stack stuff
7593         coming after 0.02
7595 2001-10-02 15:01  simon
7597         * Configure.pl, Types_pm.in, basic_opcodes.ops, config_h.in,
7598         interpreter.c, make_op_header.pl, memory.c, packfile.c,
7599         process_opfunc.pl, register.c, string.c, strnative.c,
7600         Parrot/Opcode.pm, Parrot/PackFile.pm, Parrot/String.pm,
7601         lib/Parrot/Opcode.pm, lib/Parrot/PackFile.pm, lib/Parrot/String.pm,
7602         Parrot/PackFile/ConstTable.pm, Parrot/PackFile/Constant.pm,
7603         docs/overview.pod, docs/strings.pod, include/parrot/interpreter.h,
7604         include/parrot/memory.h, include/parrot/packfile.h,
7605         include/parrot/parrot.h, include/parrot/register.h,
7606         include/parrot/stacks.h, include/parrot/string.h,
7607         lib/Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/Constant.pm:
7609         The Great Renaming.
7611 2001-10-02 12:49  gregor
7613         * process_opfunc.pl:
7614           * Fixed a tyop:  s/string/integer/ for INT_CONST expansion
7616 2001-10-02 12:40  simon
7618         * basic_opcodes.ops, process_opfunc.pl, register.c,
7619         include/parrot/register.h:
7620         Move preprocessing of register accessors to process_opfunc.pl
7622         Courtesy of: Jason Gloudon <perl@gloudon.com>
7624 2001-10-02 01:20  ask
7626         * README: add a few lines about lists.
7628 2001-10-01 23:00  brentdax
7630         * Configure.pl, Makefile.in, hints/mswin32.pl: Make 'make clean'
7631         work on Win32 (courtesy of Mattia Barbon <mbarbon@dsi.unive.it>)
7633 2001-10-01 22:50  brentdax
7635         * Configure.pl, test_c.in: More changes for 64-bit compatibility
7637 2001-10-01 21:51  simon
7639         * process_opfunc.pl:
7640         Michael Fischer's patch broke conditionals.
7642 2001-10-01 15:38  simon
7644         * process_opfunc.pl:
7645         Small hack to keep process_opfunc.pl from generating extra return()
7646         statements.
7648         Courtesy of: Michael Fischer <michael@visv.net>
7650 2001-10-01 15:32  simon
7652         * Parrot/Opcode.pm, lib/Parrot/Opcode.pm:
7653         Documentation fix.
7655         Courtesy of: Josh Wilmes <josh@hitchhiker.org>
7657 2001-10-01 01:49  simon
7659         * packfile.c:
7660         Simon is an idiot. Don't trust him with your code.
7662         Courtesy of: Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
7664 2001-10-01 00:59  simon
7666         * Parrot/String.pm, lib/Parrot/String.pm:
7667         Was in manifest, but not in CVS.
7669 2001-09-30 21:25  simon
7671         * MANIFEST, Types_pm.in, assemble.pl, basic_opcodes.ops,
7672         disassemble.pl, packfile.c, pdump.c, process_opfunc.pl,
7673         Parrot/Assembler.pm, Parrot/PackFile.pm,
7674         Parrot/PackFile/ConstTable.pm, Parrot/PackFile/Constant.pm,
7675         Parrot/PackFile/FixupTable.pm, lib/Parrot/Assembler.pm,
7676         lib/Parrot/PackFile.pm, lib/Parrot/PackFile/ConstTable.pm,
7677         lib/Parrot/PackFile/Constant.pm, lib/Parrot/PackFile/FixupTable.pm,
7678         include/parrot/packfile.h, include/parrot/string.h:
7679         Move NVs to the constant table.    * Changes to Types_pm.in to make
7680         life easier for some of the      packing/etc. I'm doing elsewhere.
7681         Also, we now pack 'n' as      'i'.
7683           * Moved the guts of assemble.pl to Parrot/Assembler.pm so that
7684             eventually we can use all these tools together inside scripts
7685             rather than call out to the shell to run the programs.
7687           * As I was tracking down problems, I converted the internal
7688             documentation of the assembler to POD from comments.
7690           * Changed the numeric regexp in the assembler to detect leading
7691             signs and trailing exponents.
7693           * Updated basic_opcodes.ops to fetch numeric constants from the
7694             constant table.
7696           * Enhanced the disassembler in a number of ways to make my life
7697             easier while tracking down bugs (try it out). It now puts in
7698             labels for ops that are the destinations of flow control ops.
7700           * packfile.c now has a TRACE_PACKFILE switch that can be set
7701             to get it to print info as it processes. I needed this while
7702             debugging, but I can remove it or change it before committing
7703             if its a problem.
7705           * Updated pdump.c because it was missing a call to init_world().
7707           * Updated process_opfunc.pl to deal with numeric constants
7708             being stored in the constant table instead of inline.
7710           * Added multiple type support to Parrot/PackFile/Constant.pm
7712           * Added Parrot/String.pm, to be used for constants.
7714           * Added packfile.[hc] functions for allocating new constants
7715             of various types.
7717           * Made string_copy visible to the world in parrot/string.h.
7719         Wow.
7721         Courtesy of: Gregor N. Purdy <gregor@focusresearch.com>
7723 2001-09-29 15:56  gregor
7725         * languages/jako/Makefile:
7726         Removed assumption that '.' is on the path.
7728 2001-09-29 15:55  gregor
7730         * languages/jako/Makefile:
7731         Removed references to leibnitz test program.
7733 2001-09-29 15:21  thgibbs
7735         * t/op/trans.t, basic_opcodes.ops: Added NV casts to transcendental
7736         math ops args to work on Solaris.
7738 2001-09-27 15:15  thgibbs
7740         * assemble.pl: Added case insensitive matches to hex and binary
7741         characters
7743         Courtesy of: Johnathan Scott Duff <duff@cbi.tamucc.edu>
7745 2001-09-27 04:46  thgibbs
7747         * assemble.pl: This patch makes integer constants of the form
7748         0b[01]+ work with perl 5.005.  The oct function in versions of perl
7749         before 5.6 did not handle the 0b numeric prefix; therefore, it was
7750         returning 0.  To fix this, I added a from_binary function that
7751         would take a binary string and return its decimal representation.
7752         Now, instead of blindly calilng oct, it makes a distinction between
7753         0/0x numbers and 0b numbers.
7755 2001-09-26 19:30  thgibbs
7757         * assemble.pl: Error now returns a non-zero status
7759         Courtesy of: Andrew Kuchling <akuchlin@mems-exchange.org>
7761 2001-09-26 19:13  gregor
7763         * MANIFEST, Makefile.in, basic_opcodes.ops, bytecode.c,
7764         interpreter.c, packfile.c, pdump.c, test_main.c,
7765         include/parrot/bytecode.h, include/parrot/interpreter.h,
7766         include/parrot/packfile.h, include/parrot/parrot.h, t/op/integer.t,
7767         t/op/stacks.t:
7768           * bytecode.[hc] removed. packfile.[hc] are the interface to the
7769             packfile/bytecode file from C. May be renamed in the future.
7771           * packfile.[hc] changed to use 'struct PackFile *', etc. instead
7772             of 'PackFile *', just like the interpreter, etc.
7774           * Constants are accessed via the interpreter's 'code' member
7775             (struct PackFile * code). Macros PCONST(i) and PNCONST are
7776             provided to access constants by index and the number of
7777             constants, respectively (assumes a variable 'interpreter' of
7778             the appropriate type is in scope).
7780           * Byte Code is accessed via the interpreter's 'code' member.
7782           * Changed PackFile_Constant to point to a STRING instead of
7783         having
7784             members for the string_make() arguments. Also has a 'type' IV
7785             in preparation for allowing multiple types of constants in
7786             const_table.
7788           * Removed hardcoded example program from test_main.c. We have
7789             plenty of test programs elsewhere.
7791           * test_prog now uses a PackFile to deal with the program before
7792             sending it on to the interpreter.
7794           * Added missing 'end' ops to some tests in t/op/integer.t and
7795             t/op/stacks.t.
7797 2001-09-26 18:38  thgibbs
7799         * assemble.pl: Separated code into functions and added comments.
7801 2001-09-26 18:29  simon
7803         * config_h.in:
7804         Fix 64-bit chunk-base issue.
7806 2001-09-26 06:55  thgibbs
7808         * t/op/bitwise.t: Added end to bitwise tests.
7810 2001-09-26 00:54  dan
7812         * docs/parrot_assembly.pod: Added in the base for threading, I/O,
7813         and interpreter creation. Skeleton only, but it's something to peer
7814         at.
7816 2001-09-25 21:44  thgibbs
7818         * t/op/trans.t: Removed loops in transcendtal op test.
7820 2001-09-25 10:12  simon
7822         * MANIFEST, t/op/basic.t, t/op/bitwise.t, t/op/integer.t,
7823         t/op/string.t, t/op/time.t:
7824         More tests
7826         Courtesy of: Alex Gough <alex@rcon.org>
7828 2001-09-24 19:08  gregor
7830         * t/op/number.t:
7831           * Enabled the clear_n test.
7833 2001-09-24 18:56  gregor
7835         * Parrot/.cvsignore:
7836           * Ignore the generated Types.pm file.
7838 2001-09-24 18:52  gregor
7840         * languages/jako/Makefile, t/op/number.t:
7841           * No need to skip the inc and dec numeric tests anymore. I fixed
7842         the
7843             assembler earlier today.
7845 2001-09-24 18:21  simon
7847         * MANIFEST, t/op/stacks.t:
7848         Oops.
7850 2001-09-24 18:19  simon
7852         * build_interp_starter.pl, interpreter.c, string.c, Parrot/Test.pm,
7853         include/parrot/exceptions.h, include/parrot/interpreter.h,
7854         lib/Parrot/Test.pm, t/op/string.t:
7855         1) captured error output, so can test errors, this might be bad,
7856         not sure.  2) basic tests for register stack frames, including some
7857         errors 3) I think we can stop skipping one of the string tests 4) I
7858         added some more substr tests, but substr was broken, so 5) changed
7859         substr to work with out of range values, or 6) throw an error if
7860         they're far too silly
7862         Courtesy of: Alex Gough <alex@rcon.org>
7864 2001-09-24 17:27  gregor
7866         * basic_opcodes.ops, opcode_table, t/op/number.t:
7867           * Op set_n was missing. Added it and a test for it. We now have
7868         the
7869             same int and num ops, except mod is int-only.
7871 2001-09-24 17:01  gregor
7873         * assemble.pl:
7874           * Fixed a typo: s/Line/line/
7876 2001-09-24 16:02  gregor
7878         * basic_opcodes.ops:
7879           * Fixed dec_n_nc opcode, which had += where it should have had
7880         -=.
7882 2001-09-24 15:34  gregor
7884         * assemble.pl:
7885           * Fixed handling of constants starting with '0' that should not
7886         be
7887             sent through oct(). For example 'set N2 0.1' was being
7888         interpreted
7889             as 'set N2 0' (naughty).
7891             As reported by Leon Brocard <acme@astray.com> in the comments
7892         of
7893             his mandelbrot.pasm example.
7895 2001-09-24 02:21  bdwheele
7897         * assemble.pl: fixed dumb code when --include was not specified.
7899 2001-09-24 02:17  simon
7901         * assemble.pl:
7902         Shit-sweeping.
7904 2001-09-24 01:56  bdwheele
7906         * assemble.pl: * Added --include=dir option to assembler to provide
7907         a path to look for included files.  * Error message of a macro is
7908         defined inside of a macro
7910 2001-09-23 21:29  bdwheele
7912         * assemble.pl: Added __FILE__ equate, fixed __LINE__ equate.
7914 2001-09-23 15:50  simon
7916         * Configure.pl:
7917         Fixed typo. Parrot might work again on non-8.3 filesystems. :)
7919 2001-09-23 02:03  ask
7921         * Configure.pl, test_c.in: fix missing newline at the end of test.c
7922         Courtesy of: acme@astray.com (Leon Brocard)
7924         rename 'test' executable used in Configure process to test_siz.
7926 2001-09-23 01:03  simon
7928         * process_opfunc.pl:
7929         iPaq fix. No, really.
7931 2001-09-23 00:47  simon
7933         * MANIFEST:
7934         Missed several, in fact.
7936 2001-09-23 00:46  simon
7938         * MANIFEST:
7939         Missed one.
7941 2001-09-22 21:13  simon
7943         * assemble.pl:
7944         Assembler register numbering rigour.
7946         Courtesy of: Leon Brocard <acme@astray.com>
7948 2001-09-22 18:20  simon
7950         * Makefile.in, lib/Test/More.pm, lib/Test/Simple.pm,
7951         lib/Test/Utils.pm:
7952         I'm sick of having to install Test::More everywhere. Temporary
7953         measure until we remove this silly dependency.
7955         Also a typo in Makefile.in which suggests some things were only
7956         happening correctly by sheer chance. :)
7958 2001-09-22 18:06  simon
7960         * README:
7961         test.pasm is dead, long like make test.
7963 2001-09-22 17:47  simon
7965         * t/op/number.t:
7966         De-fang overzealous floating point test.
7968 2001-09-22 17:39  simon
7970         * process_opfunc.pl:
7971         Remove hard-coded NV size assumption. Tru64 is nearly there!
7973 2001-09-22 17:18  simon
7975         * assemble.pl, disassemble.pl:
7976         More portability fixups.
7978 2001-09-22 16:44  simon
7980         * assemble.pl, Parrot/PackFile/Constant.pm,
7981         lib/Parrot/PackFile/Constant.pm:
7982         And I *think* this fixes Tru64.
7984 2001-09-22 16:37  simon
7986         * Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/ConstTable.pm:
7988         Oops.
7990 2001-09-22 16:36  simon
7992         * Parrot/PackFile.pm, Parrot/PackFile/ConstTable.pm,
7993         Parrot/PackFile/Constant.pm, lib/Parrot/PackFile.pm,
7994         lib/Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/Constant.pm:
7996         More removal of hard-coded pack formats.
7998 2001-09-22 15:21  simon
8000         * assemble.pl:
8002         Grrr. Why isn't this working?
8004 2001-09-22 15:18  simon
8006         * Parrot/PackFile.pm, Parrot/PackFile/ConstTable.pm,
8007         lib/Parrot/PackFile.pm, lib/Parrot/PackFile/ConstTable.pm:
8009         Make assemble use the PackFile modules; also fixed some bugs in
8010         them.
8012 2001-09-22 14:38  simon
8014         * Configure.pl, MANIFEST, Types_pm.in, assemble.pl, disassemble.pl:
8016         Abstract the argument and opcode packing types and functions out
8017         into a separate module. This *should* help us maintain consistency
8018         when we change the various types.
8020 2001-09-22 00:46  brentdax
8022         * Configure.pl: Delete test.o (or its equivalent) after Configure's
8023         test program finishes.
8025 2001-09-21 21:24  brentdax
8027         * Parrot/Test.pm, lib/Parrot/Test.pm: Fix error with \ as path
8028         separator (courtesy of Mattia Barbon <mbarbon@dsi.unive.it>)
8030 2001-09-21 21:09  gregor
8032         * Parrot/PackFile/ConstTable.pm, Parrot/PackFile/Constant.pm,
8033         lib/Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/Constant.pm:
8035           * Fixed pad calculation (similar to recent bug fix on C library)
8037 2001-09-21 20:23  simon
8039         * disassemble.pl:
8040         Pack types and sizes have gone askew.
8042 2001-09-21 20:18  brentdax
8044         * Configure.pl: Fix typo in setting stuff from the C test program
8046 2001-09-21 10:25  simon
8048         * basic_opcodes.ops, process_opfunc.pl:
8049         Document patches.
8051         Courtesy of: Leon Brocard <acme@astray.com>
8053 2001-09-21 06:06  ask
8055         * Config_pm.in, assemble.pl: fix 5.005_03.
8057 2001-09-21 06:03  ask
8059         * Configure.pl: make the ivsize detection work for us normal people
8060         without . in our PATH.  :-)
8062 2001-09-21 05:56  brentdax
8064         * test_main.c: Change _read to read for portability to Tru64
8065         (Damien Neil <neild@misago.org> and likely many others)
8067 2001-09-21 05:46  ask
8069         * Makefile.in: "update" target to update from cvs.
8071 2001-09-21 05:44  brentdax
8073         * Configure.pl, test_c.in: Fix issues with ivsize and nvsize
8075 2001-09-21 02:43  brentdax
8077         * Configure.pl: Fix a typo that forced the -g flag on
8079 2001-09-20 22:41  dan
8081         * packfile.c: Had some no-value returns. Naughty
8083 2001-09-20 22:40  dan
8085         * t/test.pasm: Added labels to output
8087 2001-09-20 15:39  simon
8089         * Parrot/Opcode.pm, Parrot/Test.pm, lib/Parrot/Opcode.pm,
8090         lib/Parrot/Test.pm:
8091         This patch does two only somewhat related things.
8093         Parrot/Opcode.pm:  Change the hard-wired assumption that sizeof(nv)
8094         = 2*sizeof(iv) to a PConfig-type computed value.
8096         Parrot/Test.pm:  Change it to run with the perl that was used to
8097         generate this version of Parrot.  This is useful if, for example,
8098         you want to use bleadperl to build and test parrot (e.g. to try out
8099         various 64-bit options) but you still have a 5.6.x (or 5.005_xx)
8100         installed as the default 'perl' on your system.  Since perl-5.7.x
8101         is installed 'version-only', a plain 'perl' is quite likely to pick
8102         up the older perl in such cases. Such an older perl might well not
8103         understand pack('q') used in the assembler.
8105         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
8107 2001-09-20 15:14  gregor
8109         * packfile.c:
8110           * Fixed a typo in pad calculation that throwing off unpack and
8111         pack.
8113 2001-09-20 15:03  thgibbs
8115         * t/op/integer.t: Removed overflow tests from integer.t.  set_i_ic
8116         tests now cover all registers.
8118         Courtesy of: Damien Neil neild@misago.org
8120 2001-09-20 14:48  thgibbs
8122         * process_opfunc.pl: Changed process_opfunc.pl to work on 64 bit
8123         machines.
8125 2001-09-20 14:35  simon
8127         * Configure.pl, assemble.pl:
8128         Pack IVs correctly.
8130         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
8132 2001-09-20 14:06  gregor
8134         * languages/jako/jakoc:
8135           * Fixed a tyop in the string interpolation regex.
8137         Courtesy of Michael L Maraist <maraist@UDel.Edu>
8139 2001-09-20 13:56  gregor
8141         * languages/jako/jakoc:
8142           * Updated jakoc to work with the single-destination comp ops.
8144 2001-09-20 05:08  bdwheele
8146         * assemble.pl: macro expansion.  Here's the test macro I was using:
8148         # this uses I32,I31 as temporaries.  # macro must be preceeded by a
8149         label.  testi       macro   num,got,want    print   "Test #"
8150         print   num     print   "..."   set     I32,want        set
8151         I31,got         eq      I32,I31,$ok     print   "NG\n"  branch
8152         $end $ok:       print   "OK\n" $end:    endm
8154         It is invoked as:
8156         Test1:  testi   1,I3,I2
8158 2001-09-20 03:52  dan
8160         * stacks.c, include/parrot/stacks.h: Preliminary files for the
8161         generic stack support
8163 2001-09-20 02:49  bdwheele
8165         * assemble.pl: Added include processing to assemble.pl  the syntax
8166         is: include 'file.to.include'
8168 2001-09-19 23:57  thgibbs
8170         * t/op/integer.t, t/op/number.t, assemble.pl, opcode_table: Fixed
8171         opcode_table listing of if_i_ic and if_n_ic.  Dan had changed the
8172         function to only use 2 args, but the opcode_table still had three
8173         listed.  Fixed integer.t and number.t to use the new comparison
8174         operators.  Improved assemble.pl ability to grok operators by
8175         constructing a function set and comparing operator types.
8177 2001-09-19 22:42  dan
8179         * assemble.pl: Binmodes the output filehandles now. (No more
8180         bytecode munching...)
8182 2001-09-19 22:32  dan
8184         * Configure.pl, basic_opcodes.ops, opcode_table, process_opfunc.pl,
8185         t/euclid.pasm, t/test.pasm, t/test2.pasm: Changed opcodes so
8186         conditional branches take a single argument, and fall through
8187         otherwise.
8189 2001-09-19 21:19  thgibbs
8191         * memory.c: Added explanation of mem_allocate_aligned give by Dan
8192         Sugalski
8194         Courtesy of: Josh Wilmes <josh@hitchhiker.org>
8196 2001-09-19 21:04  thgibbs
8198         * include/parrot/interpreter.h, Configure.pl,
8199         build_interp_starter.pl, bytecode.c, config_h.in, interpreter.c,
8200         process_opfunc.pl: Changed opcode_t from a union to a configurable
8201         type.
8203 2001-09-19 20:54  thgibbs
8205         * assemble.pl: Missed a couple of changes for 64 bit portability.
8207 2001-09-19 20:37  gregor
8209         * packfile.c, include/parrot/packfile.h:
8210           * Added "methods" for setting and getting all the various
8211         attributes,
8212             probably sufficient for an assembler to use the library.
8214 2001-09-19 20:04  thgibbs
8216         * assemble.pl: Modifications to run on 64 bit platforms.  To run on
8217         a 64 bit platform manually change the  setting for 'i' from 'l' to
8218         'q'.  This should be automatically done by a Configure setting in
8219         the near future.
8221 2001-09-19 19:10  thgibbs
8223         * config_h.in: changed c++ comment to c comment.
8225         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
8227 2001-09-19 17:48  gregor
8229         * .cvsignore, MANIFEST, Makefile.in, packfile.c, pdump.c,
8230         include/parrot/packfile.h:
8231           * C code for dealing with PackFiles as if they were objects.
8232         Mostly
8233             read-only interface for now, but it would not be hard to make
8234         it
8235             read-write. [packfile.c, include/parrot/packfile.h]
8237           * PackFile Dumping program that falls short of disassembling, but
8238             tests the above code and provides a hex listing of the byte
8239         code
8240             contents of the PackFile. [pdump.c]
8242           * New Makefile target 'pdump' for the above program, and related
8243             Makefile.in changes.
8245           * Updated MANIFEST to reflect the added files
8247           * Update .cvsignore to ignore pdump.
8249 2001-09-19 14:55  thgibbs
8251         * MANIFEST: Added number.t and trans.t to MANIFEST
8253 2001-09-19 05:40  thgibbs
8255         * process_opfunc.pl: Now taking & of opcode_t instead of i member
8256         of union opcode_t.  I hope this will be more portable for set_n_nc.
8258 2001-09-19 05:39  thgibbs
8260         * t/op/integer.t: Added end to test 1.
8262 2001-09-19 00:09  thgibbs
8264         * t/op/number.t: Added end to each test
8266 2001-09-19 00:00  simon
8268         * t/op/number.t:
8269         Number tests! Wooo!
8271         Courtesy of: Damien Neil <neild@misago.org>
8273 2001-09-18 23:52  thgibbs
8275         * interpreter.c: Added casts to appropriate types to make -Wall not
8276         complain on certain printf formats
8278 2001-09-18 23:31  thgibbs
8280         * t/op/integer.t: Added end to each test.
8282 2001-09-18 22:54  thgibbs
8284         * t/op/trans.t: Added trans.t for transcendental math function
8285         tests.
8287 2001-09-18 22:28  simon
8289         * MANIFEST:
8290         MANIFEST updates. (And notice how I carefully snuck in the
8291         t/op/integer.t there...)
8293         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
8295 2001-09-18 22:26  simon
8297         * t/: integer.t, op/integer.t:
8298         Except it doesn't go there. Duh.
8300 2001-09-18 22:25  simon
8302         * t/integer.t:
8303         Tests for integer ops.
8305         Courtesy of: Damien Neil <neild@misago.org>
8307 2001-09-18 22:03  thgibbs
8309         * include/parrot/bytecode.h, include/parrot/interpreter.h,
8310         build_interp_starter.pl, bytecode.c, config_h.in, interpreter.c,
8311         make_op_header.pl, process_opfunc.pl, test_main.c: Changed IV to
8312         opcode_t union for operators.  This required a few perl script
8313         changes to output the correct type.  There were also some changes
8314         to allow -pedantic in gcc
8316 2001-09-18 21:07  gregor
8318         * disassemble.pl, Parrot/PackFile.pm,
8319         Parrot/PackFile/ConstTable.pm, Parrot/PackFile/Constant.pm,
8320         lib/Parrot/PackFile.pm, lib/Parrot/PackFile/ConstTable.pm,
8321         lib/Parrot/PackFile/Constant.pm:
8322         Converted the disassembler to use the Parrot::PackFile Perl classes
8323         to do its job.
8325 2001-09-18 19:18  brentdax
8327         * Makefile.in: Fix missing functions for real this time.  (I
8328         swear!)
8330 2001-09-18 18:49  brentdax
8332         * Configure.pl: Remove unnecessary -I.. (courtesy of Andy Dougherty
8333         <doughera@lafayette.edu>}
8335 2001-09-18 18:47  brentdax
8337         * Makefile.in: Fix bugs with missing math, etc. functions
8339 2001-09-18 14:42  thgibbs
8341         * strnative.c: Sorry Simon...forgot bustart was a void* not a
8342         char*.
8344 2001-09-18 13:59  thgibbs
8346         * strnative.c: Removed unnecessary IV cast in concat.
8348 2001-09-18 13:58  thgibbs
8350         * t/op/string.t: Removed unnecessary IV cast in concat.  Added end
8351         to concat test in string.t
8353 2001-09-18 12:07  gregor
8355         * languages/jako/jakoc:
8356           * var num ... no longer requires assignment
8357           * automatic casting between int and num
8358           * Fixed an error message
8360         Courtesy of: Simon Cozens <simon@cvs.perl.org>
8362 2001-09-18 11:57  simon
8364         * TODO:
8365         Gonna have to start thinking of more things to do, soon.
8367 2001-09-18 10:42  simon
8369         * opcode_table:
8370         Introduce a little more tidiness into the opcode table.
8372 2001-09-18 03:06  gregor
8374         * basic_opcodes.ops, opcode_table, t/euclid.pasm:
8375         Resurrected register-const ops per Dan's request.
8377 2001-09-18 02:20  gregor
8379         * .cvsignore, Configure.pl, MANIFEST, Makefile.in,
8380         build_interp_starter.pl, bytecode.h, events.h, exceptions.h,
8381         global_setup.h, interpreter.h, io.h, memory.h, parrot.h,
8382         process_opfunc.pl, register.h, stacks.h, string.h, strnative.h:
8383         Committed some files that were missed in the last *.h moving
8384         commit.
8386 2001-09-18 02:17  gregor
8388         * include/parrot/.cvsignore: Fixed a typo in .cvsignore.
8390 2001-09-18 02:16  gregor
8392         * include/parrot/: .cvsignore, bytecode.h, events.h, exceptions.h,
8393         global_setup.h, interpreter.h, io.h, memory.h, parrot.h,
8394         register.h, stacks.h, string.h, strnative.h: Added .cvsignore file
8395         missed in last commit for the move of *.h to include/parrot.
8397 2001-09-18 01:32  simon
8399         * t/Makefile:
8400         Trivial "clean" target to t/Makefile.
8402 2001-09-18 01:32  simon
8404         * assemble.pl, build_interp_starter.pl, disassemble.pl,
8405         Parrot/Opcode.pm, lib/Parrot/Opcode.pm:
8406         Change icky Digest::MD5 for nice simple unpack()
8408         Courtesy of: Jonathan Scott Duff <duff@cbi.tamucc.edu>
8410 2001-09-18 00:35  simon
8412         * basic_opcodes.ops, opcode_table, docs/parrot_assembly.pod,
8413         t/op/string.t:
8414         New concat op. Hey, if I'm going to talk about it in an article,
8415         better implement it...
8417 2001-09-17 22:54  gregor
8419         * MANIFEST, Parrot/PackFile.pm, Parrot/PackFile/ConstTable.pm,
8420         Parrot/PackFile/Constant.pm, Parrot/PackFile/FixupTable.pm,
8421         lib/Parrot/PackFile.pm, lib/Parrot/PackFile/ConstTable.pm,
8422         lib/Parrot/PackFile/Constant.pm, lib/Parrot/PackFile/FixupTable.pm:
8424         Functions for reading, writing and manipulating Parrot Pack Files.
8425         NOTE: This is a proposed term based on the fact that the file
8426         contains more than just byte code, and another language (Java)
8427         calls its binary files by a broader notion of what's in them (Class
8428         Files). Since Perl has packages, and since we use pack() to write
8429         them, we'll call them PackFiles (at least for now).
8431         That does, however, beg the question of file extension. Should we
8432         name the files "foo.pack" instead of "foo.pbc"?
8434 2001-09-17 20:23  thgibbs
8436         * interpreter.c, test_main.c: Uncuddled else statements for coding
8437         standard.
8439 2001-09-17 19:57  gregor
8441         * Parrot/Opcode.pm, lib/Parrot/Opcode.pm:
8442         Added a $revision variable, parsing of the CVS Id line in
8443         opcode_table and a &revision() subroutine.
8445 2001-09-17 19:53  gregor
8447         * opcode_table:
8448         Added a CVS Id tag to it.
8450 2001-09-17 18:58  thgibbs
8452         * interpreter.c: Cleared interpreter flags on creation.
8454 2001-09-17 18:38  gregor
8456         * build_interp_starter.pl, bytecode.c, bytecode.h, interpreter.c,
8457         interpreter.h, test_main.c:
8458           * Provides macros in interp_guts.h for setting up arrays with
8459             op names and op arg counts (done via build_interp_starter.pl).
8461             These are used in the op tracing
8463           * The functions in bytecode.[hc] pass around a pointer to the
8464         length
8465             of the bytecode so that later when we get to runops, we know
8466             how much bytecode we've got and we can detect out-of-bounds
8467             jumping. The documentation is updated, too.
8469           * runops in interpreter.c now looks at interpreter->flags to
8470             decide if the core of runops should be runops_trace_core or
8471             runops_notrace_core. These new functions contain just the
8472             while-loop portion of runops. A new function runops_generic
8473             does any other setup (such as checking the bytecode
8474             fingerprint) or wrapup (such as complaining if we ended up
8475             out-of-bounds). NOTE: I didn't know what we should do for
8476             functions in here that are not part of the api, so I gave
8477             them docs with 'TODO' marks mentioning they really aren't
8478             part of the api. Guidance appreciated.
8480           * test_main.c now checks for '-t' arg and sets the tracing flag
8481             on its interpreter instance as appropriate.
8483 2001-09-17 17:47  bdwheele
8485         * assemble.pl: added some default equates, and if they're sub
8486         references, they are computed each time it is referenced.
8488 2001-09-17 16:15  dan
8490         * interpreter.h:
8492         Added flags to the interpreter structure and defined a few.
8494 2001-09-17 15:51  simon
8496         * bytecode.h, string.h:
8497         VAR_SCOPE on globals.
8499 2001-09-17 15:20  simon
8501         * MANIFEST:
8502         Parrot/Opcode.pm, Parrot/Test.pm into MANIFEST.
8504 2001-09-17 15:05  gregor
8506         * t/jump.pasm, MANIFEST:
8507         Added a test program to demonstrate jump_i.
8509 2001-09-17 14:44  thgibbs
8511         * register.c: Fixed register pop not using correct offset (off by
8512         one).
8514         Courtesy of: Philip Kendall <pak@ast.cam.ac.uk>
8516 2001-09-17 13:56  thgibbs
8518         * interpreter.c, register.c: Added code to call Parrot_clear_s
8519         during initialization and Parrot_clear_s and Parrot_clear_p when a
8520         new stack frame is pushed.
8522 2001-09-17 13:51  gregor
8524         * languages/jako/: Makefile, bench.jako, euclid.jako, fact.jako,
8525         fib.jako, hello.jako: Added bench.pasm to "clean"
8527 2001-09-17 13:49  gregor
8529         * languages/jako/: jakoc, Makefile:
8530         Added CVS Id tag.
8532 2001-09-17 13:49  gregor
8534         * languages/jako/jakoc:
8535         Code streamlining.
8537         Courtesy of: Buggs <buggs-perl6@splashground.de>
8539 2001-09-17 13:29  gregor
8541         * MANIFEST, opcheck.pl:
8542         Added an opcode_table checker to make sure that all opcodes listed
8543         there conform to a simple set of naming rules (rules themselves, of
8544         course, are subject to change).
8546 2001-09-17 13:23  thgibbs
8548         * string.c: Modified string.c to correctly use the return value of
8549         realloc.
8551 2001-09-17 05:26  brentdax
8553         * Makefile.in: Making the Makefile smarter
8555 2001-09-16 23:06  brentdax
8557         * hints/mswin32.pl: Finishing the Configure hints
8559 2001-09-16 23:05  brentdax
8561         * Configure.pl, Makefile.in, parrot.h, test_main.c,
8562         Parrot/Opcode.pm, lib/Parrot/Opcode.pm: Win32 compatibility,
8563         Configure hints, 5.005 compatibility, MANIFEST checking
8565 2001-09-16 19:25  bdwheele
8567         * assemble.pl: parrot assembly equates
8569 2001-09-16 18:03  gregor
8571         * Makefile.in:
8572         Added 'test' target to run new test suite.
8574 2001-09-16 17:33  simon
8576         * basic_opcodes.ops:
8577         'not' was being !, rather than ~. Too many Perl programmers here, I
8578         suspect.
8580         Courtesy of: Tom Hughes <tom@compton.nu>
8582 2001-09-16 17:21  simon
8584         * Parrot/Test.pm, lib/Parrot/Test.pm, t/harness, t/op/basic.t,
8585         t/op/string.t:
8586         A *real* test suite!
8588         Courtesy of: "Mattia Barbon" <mbarbon@dsi.unive.it>
8590 2001-09-16 16:49  gregor
8592         * basic_opcodes.ops, opcode_table:
8593         At Dan's request, my new register-constant comparison ops have been
8594         removed.
8596 2001-09-16 16:40  gregor
8598         * languages/jako/jakoc:
8599         Fixed a copy-paste error in one of jakoc's error messages.
8601         Courtesy of: Buggs <buggs-perl6-list@splashground.de>
8603 2001-09-16 16:37  gregor
8605         * languages/jako/jakoc:
8606         Modified comparison implementation to use temporary registers in
8607         the case of register-constant and constant-register comparisons.
8608         This will allow the compiler to emit code that works when the
8609         constant-comparison ops are backed out of Parrot. If the ops ever
8610         make their way back in, then jakoc can emit more efficient code
8611         again.
8613 2001-09-16 16:19  bdwheele
8615         * assemble.pl, t/local_label.pasm: Added local labels ($whatever)
8616         ... though not subroutine based like the documentation wants, they
8617         are local to the last non-local label defined.
8619 2001-09-16 14:02  simon
8621         * MANIFEST:
8622         And remember, when you add stuff, keep the manifest up to date.
8624 2001-09-16 02:55  ask
8626         * Makefile.in: a "shared" target for building libparrot.so
8628 2001-09-16 02:45  thgibbs
8630         * bytecode.c, bytecode.h, events.h, exceptions.h, global_setup.c,
8631         global_setup.h, interpreter.c, interpreter.h, io.h,
8632         make_op_header.pl, memory.c, memory.h, parrot.c, parrot.h,
8633         process_opfunc.pl, register.c, register.h, stacks.h, string.c,
8634         string.h, strnative.c, strnative.h, test_main.c: Updated files to
8635         use the coding standard PDD.  Also changed Perl_Interp to
8636         Parrot_Interp.
8638 2001-09-16 02:21  ask
8640         * README: emphasise the bits about the license not being worked out
8641         yet.
8643 2001-09-15 22:21  simon
8645         * process_opfunc.pl:
8646         basic_opcodes.c should *scream* that it's autogenerated.
8648 2001-09-15 21:58  gregor
8650         * languages/jako/Makefile:
8651         Fixed Makefile to use 'jakoc' instead of 'jako_compiler.pl' to
8652         compile.
8654 2001-09-15 21:58  gregor
8656         * languages/jako/: jako_compiler.pl, jakoc:
8657         Renamed the Jako compiler to jakoc from jako_compiler.pl
8659 2001-09-15 21:51  gregor
8661         * languages/jako/: Makefile, bench.jako, euclid.jako,
8662         jako_compiler.pl:
8663         Added a new bench.jako example based on Leon Brocard's Bench.java.
8665         Jako Compiler:   * fix a bug in assignment handling   * add some
8666         more conditionals to while and if   * revert to using implicit
8667         opcodes in a few cases that were broken     before the assembler
8668         patch went in recently.
8670 2001-09-15 21:46  gregor
8672         * assemble.pl, basic_opcodes.ops, opcode_table:
8673         New ops for register-constant INTEGER comparisons:
8675           {eq,ne,lt,le,gt,ge}_ic_ic
8677         New ops for register-register and register-constant NUMERIC
8678         comparisons:
8680           eq_nc_ic
8681           {ne,lt,le,gt,ge}_{n,nc}_ic
8683         Assembler:
8685           Allow uppercase and underscores in labels.
8687           Tweaks to the op infer code to make it work with the examples
8688         I've been
8689           creating.
8691 2001-09-15 19:16  thgibbs
8693         * README: Updated README to include Configure.pl
8695 2001-09-15 17:05  simon
8697         * build_interp_starter.pl:
8698         Casting happiness
8700         Courtesy of: Jarkko Hietaniemi <jhi@cc.hut.fi>
8702 2001-09-15 16:45  simon
8704         * assemble.pl:
8705         And the same again: Parrot/Opcode.pm wasn't "..-aware".
8707 2001-09-15 16:40  simon
8709         * t/Makefile:
8710         The Parrot/Opcode.pm dependency means we need to do -I.. in the
8711         test Makefile
8713 2001-09-15 12:26  simon
8715         * memory.c:
8716         Fixed to match the coding standards.
8718         Courtesy of: Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
8720 2001-09-15 01:57  ask
8722         * Configure.pl, Makefile.in, Parrot/Opcode.pm,
8723         lib/Parrot/Opcode.pm: make the Makefile use the perl that was used
8724         to run Configure.pl
8726 2001-09-15 01:48  ask
8728         * Parrot/Opcode.pm, lib/Parrot/Opcode.pm: if we need perl 5.6, just
8729         say so. :-)
8731 2001-09-15 01:42  gregor
8733         * languages/jako/: euclid.jako, fact.jako, fib.jako,
8734         jako_compiler.pl:
8735         Compiler: Added variable interpolation in double-quoted strings.
8736         Examples: Made use of variable interpolation.
8738 2001-09-15 01:28  gregor
8740         * Parrot/.cvsignore:
8741         Ignore the Config.pm generated file.
8743 2001-09-15 01:22  gregor
8745         * languages/jako/: .cvsignore, Makefile, euclid.jako, fact.jako,
8746         fib.jako, hello.jako, jako_compiler.pl:
8747         gnp: Added some more sample Jako files and added many more
8748         operators to the compiler. Preparations for supporting all the Math
8749         and bitwise ops.
8751 2001-09-14 19:06  simon
8753         * assemble.pl, build_interp_starter.pl, disassemble.pl,
8754         make_op_header.pl, process_opfunc.pl, Parrot/Opcode.pm,
8755         lib/Parrot/Opcode.pm:
8756         Move common table reading stuff to a module.
8758         Courtesy of: Damien Neil <neild@misago.org>
8760 2001-09-14 17:42  simon
8762         * .cvsignore:
8763         More .cvsignore foo.
8765 2001-09-14 17:40  simon
8767         * assemble.pl, config_h.in:
8768         De-coredump
8770         Courtesy of: Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
8772 2001-09-14 17:38  simon
8774         * assemble.pl, t/Makefile:
8775         Make assemble.pl look in its parent directory if the data files it
8776         needs aren't in the current one. Plus a Makefile that lets "make
8777         foo.pbc" work in t/
8779         Courtesy of: Rocco Caputo <troc@netrus.net>
8781 2001-09-14 16:29  simon
8783         * make_op_header.pl:
8784         Wildly experimental patch to make Parrot compile on FreeBSD. (And
8785         probably segfault everywhere else.)
8787 2001-09-14 15:58  dan
8789         * languages/jako/: euclid.jako, jako_compiler.pl:
8791         Added in the first mini-language that targets Parrot.
8793         Courtesy of: "Gregor N. Purdy" <gregor@focusresearch.com>
8795 2001-09-14 15:20  dan
8797         * memory.c: Was misaligning returned memory. Fixed.
8799 2001-09-14 15:08  simon
8801         * Makefile.in, basic_opcodes.ops, bytecode.c, global_setup.c,
8802         interpreter.c, interpreter.h, memory.c, parrot.c, parrot.h,
8803         register.c, register.h, string.c, string.h, strnative.c,
8804         test_main.c:
8805         Fixes to include <parrot/foo.h>
8807         Courtesy of: Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
8809 2001-09-14 12:05  simon
8811         * strnative.c:
8812         Appease Tru64.
8814 2001-09-14 12:01  simon
8816         * memory.c:
8817         Appease Tru64.
8819 2001-09-14 11:54  simon
8821         * interpreter.c:
8822         Remove lvalue cast.
8824 2001-09-14 11:45  simon
8826         * Configure.pl:
8827         Be 5.005 friendly.
8829 2001-09-14 11:39  simon
8831         * Configure.pl:
8832         Tru64 cc doesn't like -Wall
8834 2001-09-14 10:57  simon
8836         * Config_pm.in, Configure.pl, MANIFEST, Makefile, Makefile.in,
8837         assemble.pl, build_interp_starter.pl, bytecode.c, bytecode.h,
8838         config.h.in, config_h.in, disassemble.pl, interpreter.c:
8839         Configure now generates Makefile
8841         Courtesy of: Brent Dax <brentdax@cpan.org>
8843 2001-09-14 10:08  simon
8845         * t/test3.pasm:
8846         Add "end"
8848         Courtesy of: Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
8850 2001-09-14 10:07  simon
8852         * assemble.pl:
8853                 * uses Getopt::Long for options.  -c is now --checksyntax.
8854         I wasn't
8855         sure how to keep compatible (patches welcome!)         * options
8856         include:                 --help                 --version
8857               --verbose                 --output=file
8858         --listing=file                 --checksyntax         * produces
8859         verbose listing of what the assembler saw :)  Only one nitpick with
8860         it:  unknown symbols are given as 0xffffffff, unfortunately, this
8861         includes symbols which may be defined later in the file (i.e.
8862         forward jumps).
8864         Courtesy of: Brian Wheeler <bdwheele@indiana.edu>
8866 2001-09-14 10:06  simon
8868         * strnative.c:
8869         substr growth fixup
8871         Courtesy of: Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
8873 2001-09-14 10:03  simon
8875         * bytecode.c, global_setup.c, interpreter.c, memory.c, memory.h,
8876         register.c, string.c, strnative.c, test_main.c:
8877         Coding standards conformance
8879         Courtesy of Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
8881 2001-09-14 09:46  simon
8883         * assemble.pl:
8884         Make the assembler grok transcendental maths again.  Courtesy of:
8885         Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
8887 2001-09-13 17:29  simon
8889         * assemble.pl:
8890         Better opcode guessing, from Brian Wheeler. (Again!)
8892 2001-09-13 17:20  dan
8894         * docs/parrot_assembly.pod:
8896         Took out duplicate entries for iton, ntoi, and tostring.
8898 2001-09-13 17:16  simon
8900         * assemble.pl, basic_opcodes.ops, opcode_table:
8901         From Brian Wheeler:
8903         This patch gives the assembler support of '\a','\n','\r','\t', and
8904         '\\' in string constants.
8906         In addition, it changes (for all registers) "I reg %li is ..." to
8907         just the value of the register.  Printing constants is also
8908         supported, but alas, you have to specify the type (print_sc,
8909         print_ic, print_nc).
8911 2001-09-13 15:38  simon
8913         * assemble.pl:
8914         Why don't I actually *test* this stuff before applying it, eh?
8916 2001-09-13 15:34  simon
8918         * TODO, t/euclid.pasm:
8919         From: "Gregor N. Purdy" <gregor@focusresearch.com> Subject: [patch
8920         (really)] Removed opcode qualifers t/euclid.pasm to exercise opcode
8921         inference
8923 2001-09-13 14:42  simon
8925         * assemble.pl:
8926         A new assembler, from Brian Wheeler.
8928 2001-09-13 09:44  simon
8930         * basic_opcodes.ops, interpreter.h, parrot.h, strnative.c,
8931         test_main.c:
8932         Two more from Tom Hughes:     Patch to fix C++ style comments
8933         Patch to remove use of structure constant/cast
8935 2001-09-13 09:39  simon
8937         * TODO, docs/strings.pod:
8938         Update string docs.
8940 2001-09-13 09:36  simon
8942         * Makefile, basic_opcodes.ops:
8943         Tom Hughes      Patch to link with the maths library Tom Hughes
8944          Patch to fix += on rvalue
8946 2001-09-13 08:57  simon
8948         * MANIFEST:
8949         I guess nobody's been using the nightly builds...
8951 2001-09-13 08:27  simon
8953         * assemble.pl, basic_opcodes.ops, opcode_table:
8954         Bitwise ops, from Brian Wheeler.
8956 2001-09-13 08:23  simon
8958         * .cvsignore, t/.cvsignore:
8959         .cvsignore's, from Gregor Purdy.
8961 2001-09-13 08:22  simon
8963         * Makefile:
8964         Euclidean test and test output rearranging from Gregor Purdy.
8966 2001-09-13 08:21  simon
8968         * assemble.pl, basic_opcodes.ops, disassemble.pl, opcode_table:
8969         Math ops from Gibbs Tanton.
8971 2001-09-13 08:14  simon
8973         * basic_opcodes.ops, opcode_table, string.c, string.h, strnative.c,
8974         t/test2.pasm:
8975         String substr op; also rearranged "encoding" to be a vtable
8976         pointer, not an array index. Haven't changed docs to reflect this,
8977         oops.
8979         Simon
8981 2001-09-12 19:48  dan
8983         * t/euclid.pasm: Implementation of Euclid's Algorithm, courtesy of
8984         Gregor Purdy
8986 2001-09-12 19:39  dan
8988         * basic_opcodes.ops, opcode_table: From Gregor Purdy. Adds mod_i.
8990 2001-09-12 19:23  dan
8992         * interpreter.h, parrot.h: Quick placeholder entry for string
8993         function tables
8995 2001-09-12 18:58  dan
8997         * memory.c: Added in a cast to make gcc happy.
8999 2001-09-12 16:44  dan
9001         * docs/parrot_assembly.pod:
9003         PDD describing parrot's assembly language and the opcodes in it
9005 2001-09-12 14:20  dan
9007         * memory.c:
9008         Fixed alignment issues with allocation
9010 2001-09-12 10:54  simon
9012         * Makefile, assemble.pl, bytecode.c, disassemble.pl,
9013         make_op_header.pl, opcode_table, process_opfunc.pl:
9014         Brian Wheeler's big patch:
9016         * Changes the opcode_table file to provide additional information
9017         about the operands.  Case shouldn't be a problem since that data
9018         never becomes a C symbol [this is pretty much as before]
9020         * Padding errors solved:  assemble.pl and bytecode.c were padding
9021         the constants incorrectly.  It should have been 4-(size % 4), not
9022         just (size % 4).  It is now fixed in both places.
9024         * assembler has less special cases, and should be easier to hang
9025         error checking on
9027         * disassembler dumps constant table and the format is a bit
9028         prettier, including register names, etc.
9030 2001-09-11 23:21  dan
9032         * build_interp_starter.pl, interpreter.c:
9034         Abstracted the runops function core into a macro for easy
9035         replacement later.
9037 2001-09-11 10:43  simon
9039         * Configure.pl, MANIFEST, Makefile, config.h, config.h.in:
9040         Configure system from Brent Dax <brentdax@cpan.org>
9042 2001-09-11 09:38  simon
9044         * assemble.pl, test.pbc:
9045         From: Bryan C. Warnock <bwarnock@raba.com> Subject: Patch:
9046         assembler deferred output
9048         Also got rid of the bytecode, since that's probably way out of
9049         date.
9051 2001-09-11 09:26  simon
9053         * basic_opcodes.ops, opcode_table, t/test2.pasm:
9054         From: Bryan C. Warnock <bwarnock@raba.com> Subject: length_s_i
9055         patch
9057 2001-09-10 23:20  simon
9059         * MANIFEST:
9060         And that move needs a MANIFEST change. So many things to remember!
9062 2001-09-10 23:18  simon
9064         * t/: test.pasm, test2.pasm, test3.pasm:
9065         Move tests to t/. (Oh, CVS doesn't work the way I think it does.)
9067 2001-09-10 23:18  simon
9069         * test.pasm, test2.pasm, test3.pasm:
9070         Move tests to t/
9072 2001-09-10 23:04  dan
9074         * test3.pasm:
9076         Register push/pop test
9078 2001-09-10 22:47  simon
9080         * basic_opcodes.ops, bytecode.c, parrot.h, test_main.c:
9081         Fix up format warnings, from Sam Tregar <sam@tregar.com>.
9082         (Modified to avoid conflict with Dan's changes.)
9084 2001-09-10 22:45  dan
9086         * disassemble.pl:
9088         Happier about blanks in opcode_table
9090 2001-09-10 22:40  dan
9092         * interpreter.c, register.c:
9094         Yanked out debugging code, since these work OK. The bug I want is
9095         elsewhere.
9097 2001-09-10 22:30  simon
9099         * MANIFEST:
9100         Uhm. We want make_op_header.pl. We really, really do.
9102 2001-09-10 22:26  simon
9104         * Makefile, TODO, assemble.pl, basic_opcodes.ops,
9105         build_interp_starter.pl, disassemble.pl, make_op_header.pl,
9106         opcode_table, process_opfunc.pl:
9107         Automatic opcode numbering, from Leon Brocard <acme@astray.com>.
9108         This means we can add lots more opcodes without fiddling about with
9109         the numbers. Hooray!
9111         Don't forget that "end" needs to be op zero, else the interpreter
9112         falls off the end of the code. This is Bad, and I wonder if there's
9113         a way around it.
9115 2001-09-10 19:49  simon
9117         * MANIFEST, make_op_table_build.pl:
9118         Hey! This doesn't do anything...
9120 2001-09-10 19:46  simon
9122         * Makefile:
9123         "clean" target cleanup from Bryan C. Warnock <bwarnock@raba.com>.
9125 2001-09-10 18:31  simon
9127         * MANIFEST:
9128         You know what this means...
9130 2001-09-10 18:30  simon
9132         * assemble.pl:
9133         "use strict" patch from Leon Brocard <acme@astray.com>. Hey, why
9134         wait for a release...? :)
9136 2001-09-10 18:13  simon
9138         * interpreter.c:
9139         Bad Dan! No cookie!
9141 2001-09-10 17:56  simon
9143         * README:
9144         A *real* README file, which doesn't claim it isn't for public
9145         consumption.
9147 2001-09-10 17:02  simon
9149         * TODO:
9150         More things to do.
9152 2001-09-10 16:56  dan
9154         * TODO: Added in assembler gripe. Also added a few blank lines for
9155         clarity
9157 2001-09-10 16:49  dan
9159         * register.h, register.c: Renamed the core functions so the opcodes
9160         can find 'em OK. (There were some conflicts)
9162 2001-09-10 16:48  dan
9164         * basic_opcodes.ops, opcode_table: Added register window ops
9166 2001-09-10 11:07  simon
9168         * TODO:
9169         Trivial TODO list.
9171 2001-09-10 11:05  simon
9173         * test.pbc, test2.pasm, test_main.c: Other string bits and pieces;
9174         note "-s" flag to test prog.
9176 2001-09-10 11:01  simon
9178         * docs/strings.pod:
9179         New string documentation.
9181 2001-09-10 11:01  simon
9183         * basic_opcodes.ops, opcode_table:
9184         String ops.
9186 2001-09-10 10:53  simon
9188         * global_setup.c:
9189         More string fu.
9191 2001-09-10 10:51  simon
9193         * memory.h:
9194         Just some more aliases for now. Used by string handling stuff.
9196 2001-09-10 10:50  simon
9198         * assemble.pl, bytecode.c, bytecode.h:
9199         Temporary hack to store string constants in bytecode and recreate
9200         them at runtime.
9202 2001-09-10 10:48  simon
9204         * op.h:
9205         op.h is now generated by the Makefile; remove it.
9207 2001-09-10 10:47  simon
9209         * Makefile:
9210         clean and op.h Makefile targets.
9212 2001-09-10 10:45  simon
9214         * string.c, string.h, strnative.c:
9215         More string vtable stuff.
9217 2001-09-07 21:07  dan
9219         * assemble.pl:
9221         Much less picky about whitespace in the opcode_table now. (Doesn't
9222         whine on blank lines)
9224 2001-09-07 16:23  dan
9226         * Makefile, assemble.pl, global_setup.h, interpreter.c,
9227         interpreter.h, opcode_table, parrot.h, test.pasm: (Here's hoping
9228         this takes) Added global_setup.h to declare init_world function
9230         Moved variable declarations out of the interpreter loop for small
9231         speed boost.
9233         Changed end opcode to now be opcode #0. A function is provided for
9234         it, but isn't ever executed.
9236         When the interpreter sees an opcode 0 in the stream it means the
9237         end of stream. Things were coring on Cygwin otherwise. (I think I
9238         was dereferencing a zero, which is bad)
9240 2001-09-06 22:07  dan
9242         * basic_opcodes.ops, process_opfunc.pl:
9244         Minor tweaks to basic_opcodes.ops to fix some NV issues. The rest
9245         are minor changes now that things are in a fixed state.
9247 2001-09-06 16:13  dan
9249         * basic_opcodes.c, test_opcodes.c:
9250         test_opcodes.c is now irrelevant--they're all in basic_opcodes.ops.
9252         basic_opcodes.c is now autogenerated from basic_opcodes.ops, and
9253         should be nuked. So it is. :)
9255 2001-09-06 03:35  dan
9257         * basic_opcodes.ops, build_interp_starter.pl, process_opfunc.pl:
9258         Scripts to build the header file that holds the function table
9259         creation code, as well as the script to turn an opcode file to C
9260         source. (And the basic opcode functions turned into an opcode
9261         source file)
9263 2001-09-06 03:31  dan
9265         * Makefile, interpreter.c:
9266         Changes to support the autogeneration of the opcode function
9267         pointer table in interpreter.c, along with the changes to the
9268         Makefile needed.
9270 2001-09-05 13:27  simon
9272         * bytecode.c, config.h, docs/opcodes.pod, docs/overview.pod,
9273         docs/parrotbyte.pod, docs/vtables.pod:
9274         Added stubs for the documents; working on them this week. (What's
9275         left of it.) config.h change is just to type VTABLE, and the
9276         bytecode thing you might want to revoke. It's apidoc for the
9277         functions in there.
9279 2001-09-03 18:26  simon
9281         * docs/strings.pod:
9282         A start on the string API documentation.
9284 2001-09-03 17:43  simon
9286         * opcode_table:
9287         Since we specify the opcode number, we can rearrange to a more
9288         human-friendly ordering.
9290 2001-09-03 17:42  simon
9292         * basic_opcodes.c:
9293         Coupl'a logic bugs. (I think)
9295 2001-09-03 17:41  simon
9297         * string.c, string.h, strnative.c:
9298         Tidying up the string vtables.
9300 2001-09-03 17:38  simon
9302         * make_op_header.pl:
9303         Spit out the whole of op.h, not just the bit in the middle.
9305 2001-08-29 13:16  ask
9307         * README: it seems like we indeed can commit. What about sending
9308         commit mails?
9310 2001-08-29 13:07  simon
9312         * Makefile, README, assemble.pl, basic_opcodes.c, bytecode.c,
9313         bytecode.h, config.h, disassemble.pl, events.h, exceptions.h,
9314         global_setup.c, interpreter.c, interpreter.h, io.h,
9315         make_op_header.pl, make_op_table_build.pl, memory.c, memory.h,
9316         op.h, opcode_table, parrot.c, parrot.h, register.c, register.h,
9317         stacks.h, string.c, string.h, strnative.c, strnative.h, test.pasm,
9318         test.pbc, test_main.c, test_opcodes.c:
9319         Initial checkin of Simon's work directory - Dan, feel free to nuke.
9320          I'm still working on the string stuff, though.
9322 2001-08-29 12:44  ask
9324         * README: update README with list address
9326 2001-08-29 12:36  ask
9328         * README: first readme.