* src/pbc_merge.c:
[parrot.git] / ChangeLog
blob5d525f44f6a29d8a281f039833932707fd296462
1 #1 $Id$
3 2008.08.19    rgrjr
4         * Released 0.7.0
5         See NEWS for more.
7 2008.07.15    barney
8         * Released 0.6.4
9         See NEWS for more.
11 2008.06.17    smash
12         * Released 0.6.3
13         See NEWS for more.
15 2008.05.20    chromatic
16         * Released 0.6.2
17         See NEWS for more.
19 2008.04.15    particle
20         * Released 0.6.1
21         See NEWS for more.
23 2008.03.18    bernhard
24         * Released 0.6.0
25         See NEWS for more.
27 2008.02.20    pmichaud
28         * Released 0.5.3
29         See NEWS for more.
31 2008.01.15    rgrjr
32         * Released 0.5.2
33         See NEWS for more.
35 2007.12.18    jonathan
36         * Released 0.5.1
37         See NEWS for more.
39 2007.11.20    chromatic
40         * Released 0.5.0
41         See NEWS for more.
43 2007.10.17    coke
44         * Released 0.4.17
45         See NEWS for more.
47 2007.09.18    particle
48         * Released 0.4.16
49         See NEWS for more.
51 2007.08.22    pmichaud
52         * Released 0.4.15
53         See NEWS for more.
55 2007.07.17    particle
56         * Released 0.4.14
57         See NEWS for more.
59 2007.06.19    allison
60         * Released 0.4.13
61         See NEWS for more.
63 2007.05.15    chromatic
64         * Released 0.4.12
65         See NEWS for more.
67 2007.04.17    mdiep
68         * Released 0.4.11
69         See NEWS for more.
71 2007.03.20    coke
72         * Released 0.4.10
73         See NEWS for more.
75 2007.3.10     coke
76         * removed parakeet
78 2007.02.22    pmichaud
79         * Released 0.4.9
80         See NEWS for more.
82 2007.01.17    chromatic
83         * changed 'name' method on namespaces to 'get_name' per pdd21
85 2007.01.16    particle
86         * Released 0.4.8
87         See NEWS for more.
89 2006.12.12    particle
90         * added C<isnull> opcode
92 2006.11.14    chip
93         * Released 0.4.7
94         See NEWS for more.
96 2006.11.07      tewk
97         * added :init pragma functionality to subs
99 2006.10.28      jonathan
100         * added :vtable pragma functionality to subs
102 2006.09.18    chromatic
103         * added Parrot::Embed under ext/Parrot-Embed
105 2006.08.18    leo
106         * remove the None PMC - if needed it can trivially be reimplemented
107           in languages from r14189
109 2006.08.16    creiss
110         Merged Software Transactional Memory branch into trunk, adds:
111         * several new opcodes whose names start with stm_
112         * read-only PMC support
113         * several new PMC types (whose names start with STM*)
114         * support for threads (again)
116 2006.08.08    chip
117         * Released 0.4.6
118         See NEWS for more.
120 2006.08.02    chip
121         * opcodes: "in PMC" is no longer a synonym for "invar PMC";
122         there are opcodes now that want the real "in PMC".
123         * namespace and global opcodes now accept name arrays again, as
124         well as keys; the corresponding namespace PMC methods are gone.
126 2006.07.21    leo
127         * Parrot_exit, Parrot_on_exit take now an Interp * argument
129 2006.07.25    chip
130         * add experimental op find_type_i_p
131         * fix longstanding bug that sometimes didn't encode pasm keys as
132         Key PMCs (specifically "[S0]" and "['stringliteral']").
134 2006.07.24    chip
135         further implementation of new pdd21:
136         * new opcodes {get,set}*global
137           (old {find,store}*global will be supported for a short while)
139 2006.07.20    audreyt
140         * --maintainer prerequesites are now bison 2.2+ and flex 2.5.3x
141           (or some such --leo) 
142           (at the moment code is checking for 2.0 -- ambs)
144 2006.07.17    chip
145         partial implementation of new pdd21:
146         * old: "get_namespace KEY".  new: "get_hll_namespace KEY"
147         * get_namespace and find_global opcodes no longer accept arrays
148           of strings.  To use arrays, call namespace object methods.
150 2006.06.19    leo
151         * Released 0.4.5
152         See NEWS for more.
154 2006.06.03    leo
155         * I and N registers are never cleared to 0 / 0.0 on subroutine entry
157 2006.05.14    leo
158         * Released 0.4.4
159         See NEWS for more.
161 2006.04.30    bernhard
162         * Make the Perl PMCs dynamic and move them to src/dynpmc
164 2006.04.02    leo
165         * Released 0.4.3
166         See NEWS for more.
168 2006.03.06    leo
169         * Shifted argument type bits left by 2 according to r11754
170           change of docs/pdds/pdd03_calling_conventions.pod
171         * if you are creating PASM then code needs adjustment  
173 2006.02.22    leo
174         * Released 0.4.2
175         See NEWS for more.
177 2006.01.16    bernhard
178          * rename src/dynclasses to src/dynpmc 
179          * rename src/classes to src/pmc 
181 2006.01.15    leo
183          * find_global and friends returns a .Null PMC instead of .Undef on
184           lookup failure, iff lookup exceptions are off
186 2006.01.08    leo
187         * Released 0.4.1
188         See NEWS for more.
190 2005.12.28    particle
191         * renamed all .imc files to .pir
192         * modified all doc references to .pir as well
194 2005.12.13    particle
195         * moved jit/ directory to src/jit/
197 2005.12.12    particle
198         * moved io/ directory to src/io/
199         * moved classes/ directory to src/classes/
200         * moved dynclasses/ directory to src/dynclasses/
202 2005.12.08    particle
203         * moved types/ directory to src/types/
204         * moved pf/ directory to src/packfile/
205         * moved ops/ directory to src/ops/
207 2005.12.08    particle
208         * moved charset/ directory to src/charset/
209         * moved encodings/ directory to src/encodings/
211 2005.12.07    particle
212         * moved imcc/ directory to compilers/imcc/
214 2005.12.06    particle
215         * moved util/ directory to tools/util/
216         * removed imcc/examples/ directory
217         * moved ast/ directory to compilers/ast/
219 2005.12.05    particle
220         * moved imcc/docs/ directory to docs/imcc/
221         * moved build_tools/ directory to tools/build/
222         * modified MANIFEST, MANIFEST.generated, and MANIFEST.SKIP
224 2005.12.04    leo
225         * Released 0.4.0
226         * See NEWS for changes
228 2005.11.06    leo
229         * Released 0.3.1
230         * See NEWS for changes
232 2005.10.01    leo
233         * Released 0.3.0
234         * See NEWS for changes
236 2005.08.05    leo
237         * Released 0.2.3
238         * See NEWS for changes
240 2005.07.03    leo
241         * Released 0.2.2
242         * See NEWS for changes
244 2005.06.04    leo
245         * Released 0.2.1
246         * allow short names for object attributes
247         * string encoding and charset can now be set independently
248         * experimental mmap IO layer for slurping files
249         * enable compile opcode support for compilers written in PASM/PIR
250         * improved HLL support with .HLL and n_operators pragmas
251         * simplified hash code
252         * more strength reduce optimizations
253         * distinct debug and trace flag settings
254         * glob support in PGE
255         * new character classification opcodes and interfaces
256         * numerous bug fixes and enhancements
258 2005-05-08    leo
259         * Released 0.2.0
260         * parrot repository is now under subversion
261         * MMD (Multi Method Dispatch) enhanced
262         * new unary and infix opcodes that return new result PMCs
263         * dynamic scalar PMCs inherit now almost all from Parrot core PMCs
264         * more unification of PMCs and ParrotObjects
265         * tailcalls for functions and methods
266         * PGE (Parrot Grammar Engine) reworked
267         * Pugs creates Parrot code and Pugs is a registered compiler now
268         * new languages/lisp
269         * the usual bug fixes and improvements
271 2005-03-06    leo
272         * Released 0.1.2
273         * big rewrite of string code, not yet finished but ...
274         * partial implementation of a generational garbage collector
275         * indirect register frame addressing
276         * .return(args) PIR syntax
277         * moved most of the Python code to dynclasses
278         * a lot more Python functionality
279         * precalculate opcodes with all constants
280         * PGE - Parrot Grammar Engine
281         * scalar classes refactoring
282         * much more tests and big test system cleanup
283         * improved documentation
284         * and as always a lot more
286 2004-10-09    leo
287         * Released 0.1.1
288         * Need Perl 5.6 now for building
289         * Basic AST support, PAST file parser, bits of code generation
290         * BigInt PMC using GMP
291         * Complex PMC
292         * Dynamic loading improved including bundles of PMC classes
293         * Experimental support for "make install"
294         * IA64 and hppa JIT support
295         * ICU unicode support
296         * IO layer handling code
297         * IO readline and buffered IO fixes
298         * Incremental GC
299         * Internal pythonic functions: filter, map, reduce, max, min ...
300         * Languages updates for m4, tcl, perl6, regex. New parakeet language.
301         * Library updates, Stream and SDL library
302         * MMD - multi method dispatch for binary vtable methods
303         * Many new array PMCs
304         * Method call syntax in PIR obj."meth"(...)
305         * More OS stuff: stat, exec, system, gmtime, piped read and write
306         * New Python PMCs like Enumerate, None
307         * Non-branching compare opcodes
308         * PIR support for += and friends
309         * Python language subdir
310         * Python types mapped to existing PMCs
311         * Slices and range support
312         * Tons of bug fixes, documentation updates, new tests
313         * Win32 COFF exec support
314         * ... and a lot more
316 2004-02-29    leo
317         * Released 0.1.0
318         * "Ladies and gentlemen, I give you... objects!"
319         * Huge documentation overhaul
320         * More supported platforms, s. PLATFORMS
321         * Basic thread support for pthread based architectures
322         * Basic event handling for timers and signals including:
323         * PASM callbacks for NCI (native C) functions.
324         * Improved platform configuration
325         * COW stacks now working, stacks code redone
326         * Structure handling vastly improved
327         * Random PMC and rand primitives
328         * Better subroutine call syntax in PIR
329         * Make PIR subroutines compliant with pdd03
330         * Improved profiling (DOD, GC timings)
331         * Hash code improvements, incl. random key order support
332         * Experimental freeze/thaw code for some PMC types
333         * IO improvements for buffered layer and Win32
334         * String iterators
335         * String bitwise vtables
336         * Many new opcodes
337         * Support for JIT, where malloced memory isn't executable
338         * Priority DOD scheme for objects that need timely destruction
339         * Improved bytecode loading (e.g. onLoad functions)
340         * Language updates: forth, Perl6/P6C, m4
341         * Libraries: Getopt_Long, SDL, Dumper, Sort
342         * new JAPH examples
343         * Unified imcc and parrot test handling
344         * Many new tests (make test reports 1386 tests)
345         * Numerous bug fixes
348 2003-10-31    leo
349         * Released 0.0.13
350         * Yep thirteen - haunted by the ghost of 0.0.12
351         * Build imcc as parrot
352         * Objects more finished
353         * Delegate vtable methods to byte code
354         * Binary multi-method dispatching
355         * Isa and does methods for PMCs
356         * Call byte code from C
357         * Start of extension interface
358         * Experimental struct handling
359         * Catch access to NULL PMCs
360         * Experimental network socket interface code and opcodes
361         * IO fixes and improvements
362         * Dynamic opcode libraries
363         * Fix-assigned opcode numbers
364         * Argument flattening for function calls
365         * More native call interface (NCI) signatures
366         * Ncurses, postgres, and pcre interface libraries
367         * Forth language is vastly improved
368         * BSD and Win32 build improvements
369         * Many new tests and fixes
371 2003-10-22    melvin
372         * imcc moved from parrot/languages/ to parrot/
374 2003-09-20    sfink
376         * updated the native_pbc test files (from Leo)
377         * built 0.0.11.1 release tarball
379 2003-09-20    sfink
381         * CHANGES BUNDLED INTO 0.0.11:
382         * Executable output
383         * Dynamic PMC registration
384         * Trial exception system
385         * Beginnings of object system
386         * Iterators
387         * Ordered hashes
388         * I/O system improvements
389         * References
390         * Documentation for basic PMC types
391         * IMCC support of Parrot Calling Conventions
392         * Runtime loading of chartypes (and other string improvements)
393         * Conditional breakpoints
394         * Dramatically accelerated sweeps for finalizable objects
395         * Small PMCs (PMCs split into core and extensions)
396         * Loadable bytecode packfiles
397         * Constant PMCs
398         * Sub variants that deal with the stack correctly
399         * Switched runops core
400         * Line numbers in warnings
401         * Environment access
402         * Many documentation cleanups
403         * Conversion to CPS style!
404         * BASIC debugger and many other wacky features
405         * Filename, line number parsing support in IMCC
407 2003-07-21 17:31 chromatic
408         * applied copyright patch from Josh Wilmes
410 2003-06-14 13:50 dan
411         * Moved the registers out of the context structure, since they
412           really aren't context
413         * Changed the register stack frames to hold only 16 registers
414           rather than 32, added half-set push and pop ops, and reworked
415           the full set push/pops to do two half-set push/pops. Should
416           speed up saving register data on calls, since we usually only
417           care about the top half of the registers anyway.
418         * Started committing some of the new class/object framework
419         * Remembered to finally start updating the Changelog
421 2003-03-18 03:50  ask
423         * Various files
424           Update Yet Another copyright statements to reflect the (no longer
425           so) shiny new year.
427 2003-03-11 22:06  chip
429         * Configure.pl: print help on non-option command line args
431 2002-12-18 20:38  sfink: changes since 0.0.8
433         - Allow suppression of cgoto core to save memory during compile
434         * Native function calling interface
435         * Major rewrite of stack and list aggregates
436         - Scalar PMC added
437         * Scratchpads implemented
438         - Win32 libraries
439         - Internal memory subsystem documentation
440         * Preliminary DotGNU support
441         - Packfile fingerprinting
442         * Buffer/PMC unification (into PObjs)
443         * stabs debugging information support
444         * Major Jako overhaul, including:
445           - imcc integration
446           - native function calling
447         - Perl6 string interpolation
448         - languages/regex now targets IMCC
449         * Optional Lea memory allocator
450         * Full sprintf implementation
451         * Many, many new tests
452         * Miniparrot
453         - exchange ops
454         - runtime-controllable gc debugging
455         * PMC properties
456         - Crash info
457         * JIT: various improvements
458           - register usage tracking
459           - block register allocation
460           - optimizations
461           - more jitted ops
462           - restartable
463           - architecture abstraction layer
464           - debugging via GDB
465         * Beginning support for extensible packfiles
466         * Much better key support, generally
467         * splice()
468         * Restructured PMC hierarchy with better functionality inheritance
469         * IMCC: many, many improvements. See imcc/ChangeLog
470         * Perl6: index map grep join reverse defined
471         * Scheme with functions!
474 2002-03-19 22:54  nicholas
476         * docs/running.pod: Patch from Simon Glover <scog@amnh.org>:
478          We can now get usage information for test_parrot without having to
479          grep the source.
481 2002-03-19 22:53  simon
483         * Configure.pl:
484         Parrot is called parrot.
486 2002-03-19 22:53  nicholas
488         * docs/tests.pod: Patch from Simon Glover <scog@amnh.org>:
490          1. There are tests in t/pmc as well as t/op now.
491          2. Adds a comment about Parrot::Test
493 2002-03-19 18:09  dan
495         * Configure.pl, examples/assembly/life.pasm: Toss a prompt that
496         messes up automated builds
498         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
500 2002-03-19 00:33  mrjoltcola
502         * core.ops: Doc cleanup from Simon Glover.
504 2002-03-18 23:52  mrjoltcola
506         * io/io_unix.c: Typo fix for invalid lvalue caught by David Loyd.
508 2002-03-18 22:09  dan
510         * include/parrot/resources.h: Checked in old version
512 2002-03-18 20:17  dan
514         * include/parrot/resources.h: Forgot a prototype
516 2002-03-18 20:15  dan
518         * resources.c: D'oh! Thinko, fixed.
520         Courtesy of "Peter Gibbs" <peter@emkel.co.za>
522 2002-03-18 17:33  josh
524         * Configure.pl: Lowering the bar a bit.
526 2002-03-18 17:33  sfink
528         * languages/regex/: MAINTAINER, Makefile, README, regex.pl,
529         test.pl, lib/Regex.pm, lib/Regex/AsmOps.pm, lib/Regex/CodeGen.pm,
530         lib/Regex/Generate.pm, lib/Regex/Grammar.pm, lib/Regex/Grammar.y,
531         lib/Regex/Optimize.pm, lib/Regex/Parse.pm, lib/Regex/Pasm.pm,
532         lib/Regex/PreOptimize.pm, lib/Regex/RegexOps.pm,
533         lib/Regex/Rewrite.pm, lib/Regex/CodeGen/Re.pm,
534         lib/Regex/CodeGen/Rx.pm, lib/Regex/Rewrite/Re.pm,
535         lib/Regex/Rewrite/Rx.pm, lib/Regex/Rewrite/Stackless.pm,
536         t/example.t: Whoops, wrong time to check this in.
538 2002-03-18 16:42  dan
540         * memory.c, resources.c: Partial fix for GC's memory trouncing. At
541         least we consider the PMC and Buffer free pools worth collecting,
542         and initialize the Buffer pool stuff.  Still not 100% correct,
543         though.
545 2002-03-18 15:35  simon
547         * packfile.c:
548         Fix format arg bug.
550 2002-03-18 07:45  brentdax
552         * Configure.pl: Warn if you're using 64-bit ints on a 32-bit
553         system.
555 2002-03-18 00:09  sfink
557         * languages/regex/: MAINTAINER, Makefile, README, regex.pl,
558         test.pl, lib/Regex.pm, lib/Regex/AsmOps.pm, lib/Regex/CodeGen.pm,
559         lib/Regex/Generate.pm, lib/Regex/Grammar.pm, lib/Regex/Grammar.y,
560         lib/Regex/Optimize.pm, lib/Regex/Parse.pm, lib/Regex/Pasm.pm,
561         lib/Regex/PreOptimize.pm, lib/Regex/RegexOps.pm,
562         lib/Regex/Rewrite.pm, lib/Regex/CodeGen/Re.pm,
563         lib/Regex/CodeGen/Rx.pm, lib/Regex/Rewrite/Re.pm,
564         lib/Regex/Rewrite/Rx.pm, lib/Regex/Rewrite/Stackless.pm,
565         t/example.t: Buggy 1st version of regex compiler implementation.
566         Warning: the test code depends on features of the assembler that do
567         not yet exist.
569 2002-03-17 21:35  ajgough
571         * types/: bignum.c, bignum_atest.pl: Added a couple of quick routes
572         through addition and subtraction.  Also added the ability to run
573         all the tests, including the ones which deal with overflow and
574         underflow.  These fail, but that's expected.  Soon they'll pass.
575         Then I'll show them.  Yesssssss.  Tessssssssts my precioussssss,
576         passsssssssings tesssstsssss.
578 2002-03-17 20:06  ajgough
580         * types/: bignum.c, bignum.h, bignum_test.pl: Modified
581         check_(under|over)flow to test bignumbers, rather than values.
582         context now carries E_limit, from which max and min exp are found.
584         Added a default-context-creating function (although this isn't the
585         same as either of the default contexts defined in the eda).
587 2002-03-17 13:31  ajgough
589         * types/: bignum.c, bignum.h: Made BN_round and BN_iround so that
590         exported version matches prototypes of other public functions.
592 2002-03-17 06:44  josh
594         * chartype.c, encoding.c, memory.c, misc.c, packdump.c, packfile.c,
595         packout.c, resources.c, string.c, include/parrot/encoding.h: Some
596         last-minute re-indenting.
598 2002-03-17 05:07  mrjoltcola
600         * io/io_unix.c: Clear up unsigned compare caught by Solaris GCC.
602 2002-03-16 23:17  nicholas
604         * classes/default.pmc: Patch from Simon Glover <scog@amnh.org> to
605         remove warnings:
607          default.pmc: In function `Parrot_default_get_integer_keyed':
608          default.pmc:50: warning: control reaches end of non-void function
609          default.pmc: In function `Parrot_default_get_number_keyed':
610          default.pmc:58: warning: control reaches end of non-void function
611          default.pmc: In function `Parrot_default_get_string_keyed':
612          default.pmc:67: warning: control reaches end of non-void function
613          default.pmc: In function `Parrot_default_get_pmc_keyed':
614          default.pmc:87: warning: control reaches end of non-void function
616 2002-03-16 18:50  ajgough
618         * types/: bignum.c, bignum.h: Lots of prototypes changed in
619         readiness for nicely telling your caller about any oddness you've
620         caused in the persuit of flow.
622 2002-03-16 17:38  dan
624         * interpreter.c, resources.c, docs/pdds/pdd09_gc.pod,
625         include/parrot/interpreter.h, include/parrot/resources.h: Now we
626         can control the GC and DOD, to stop it when we don't really want
627         it.
629 2002-03-16 16:58  dan
631         * resources.c, vtable.tbl, classes/default.pmc,
632         include/parrot/resources.h: Added the last code to let PMCs control
633         their marking at DOD time
635 2002-03-16 16:57  ajgough
637         * types/bignum.c: Ok, I worked out how to not have lots of tabs.  I
638         feel a little more virtuous now.  Really I do.  You might not
639         believe me, but you should.  perl -pne 's/\t/        /g', if you're
640         curious.
642 2002-03-16 16:57  josh
644         * packfile.c, packout.c: M-x untabify is my new friend.
646 2002-03-16 16:50  josh
648         * trace.c, resources.c: Minor whitespace tweak for the benefit of
649         check_source_standards.pl
651 2002-03-16 16:50  ajgough
653         * types/: bignum.c, bignum.h: More documentation, separate
654         functions into public and private sorts, some initial stuff to cope
655         with over and underflow correctly.
657 2002-03-16 16:49  josh
659         * resources.c: Re-indented (sorry bout the big diff)
661 2002-03-16 16:47  bdwheele
663         * examples/assembly/fact.pasm: This fixes fact.pasm so it will
664         assemble again, both with Simon's new assembler and with the old
665         one.
667 2002-03-16 16:33  mrjoltcola
669         * io/TODO: Get the TODO up-to-date for 0.0.4.
671 2002-03-16 16:11  josh
673         * Configure.pl: Patch from Nicholas Clark <nick@unfortu.net>: stops
674         silly people (such as me) running Configure with
675         /usr/local/bin/perl (which is 5.004_05) and not realising their
676         mistake until the pmc subdirectory, where the first qr// is
677         encountered.
679         Syntax error messages don't tell you what you did wrong. This does:
681         /usr/local/bin/perl Configure.pl Perl 5.00503 required--this is
682         only version 5.00405, stopped at Configure.pl line 10.
684 2002-03-16 14:38  ajgough
686         * Makefile.in: Small fix to Makefile.in to keep Irix make happy
687         with commenting.
689 2002-03-16 11:45  simon
691         * MANIFEST, examples/assembly/xml_parser.pasm:
692         Added Clint Pierce's XML parser.
694 2002-03-15 22:24  simon
696         * packout.c:
697         Don't need that function.
699 2002-03-15 21:56  simon
701         * Makefile.in, include/parrot/packfile.h:
702         Rebuild packout.o, since it'll be used for the Packfile XS module
704 2002-03-15 19:45  dan
706         * include/parrot/: memory.h, pmc.h: Another add-in for GC
708 2002-03-14 19:48  dan
710         * core.ops: No string to int for some reason
712 2002-03-14 18:45  dan
714         * string.c, t/op/string.t: Fix 0-length substr problem
716 2002-03-14 14:46  dan
718         * core.ops, interpreter.c, resources.c, classes/array.pmc,
719         classes/perlarray.pmc, examples/assembly/life.pasm,
720         include/parrot/interpreter.h, include/parrot/resources.h: Added in
721         a counter for copied memory, with a display in life.pasm
723 2002-03-14 03:16  mrjoltcola
725         * MANIFEST: Update MANIFEST courtesy of Simon Glover.
727 2002-03-13 23:43  simon
729         * packfile.c:
730         Oops.
732 2002-03-13 23:43  simon
734         * packfile.c:
735         Hangs head in shame.
737 2002-03-13 21:31  simon
739         * MANIFEST:
740         FAQ moved.
742 2002-03-13 18:06  simon
744         * string.c:
746         Fix string_compare screw-up.
748 2002-03-13 18:02  brentdax
750         * docs/: parrot.pod, ParrotFAQ.htm, faq.pod: Move the FAQ into POD
751         and add a new question/answer pair.
753 2002-03-12 22:53  mrjoltcola
755         * io.ops: Quick and dirty read ops for PIO. No warranty provided.
757 2002-03-12 22:48  mrjoltcola
759         * examples/assembly/io2.pasm: Quick and dirty read ops for PIO. No
760         warranty provided.
762 2002-03-12 22:29  ajgough
764         * docs/pdds/pdd14_bignum.pod: Ooops, it is #14, really.
766 2002-03-12 22:24  ajgough
768         * docs/pdds/pdd14_bignum.pod: Creation of bignumber pdd, update to
769         version 1.1, Don't know if this is the correct number, but I don't
770         want this stuck on my harddrive where it will get lost, so 14 it is
771         :)
773 2002-03-12 11:35  simon
775         * MANIFEST, packdump.c, packout.c:
777         Just so the functionality doesn't disappear.
779 2002-03-12 11:33  simon
781         * Makefile.in, chartype.c, encoding.c, packfile.c,
782         chartypes/unicode.c, chartypes/usascii.c, encodings/singlebyte.c,
783         encodings/utf16.c, encodings/utf32.c, encodings/utf8.c,
784         include/parrot/chartype.h, include/parrot/encoding.h,
785         include/parrot/packfile.h:
787         Packfile axing.
789 2002-03-11 23:06  nicholas
791         * core.ops: Patch from Simon Glover <scog@roe.ac.uk>:
793           Core.ops documentation nits
795 2002-03-11 23:05  nicholas
797         * t/pmc/pmc.t: Patch from Simon Glover <scog@roe.ac.uk>:
799           Most of the PerlUndef tests in pmc.t appear to have been added
800         twice.
801           Enclosed patch removes the duplicates.
803 2002-03-10 23:40  nicholas
805         * t/pmc/perlstring.t: Patch from Simon Glover <scog@amnh.org>:
807          More tests for the PerlString test-suite.
809 2002-03-10 23:40  nicholas
811         * t/op/time.t: Patch from Simon Glover <scog@amnh.org>:
813         test for sleep with negative argument
815 2002-03-10 21:58  nicholas
817         * t/op/rx.t: Patch from Simon Glover <scog@amnh.org>:
819          Enclosed patch fixes up a few more holes in our test coverage.
821 2002-03-10 21:18  mrjoltcola
823         * classes/array.pmc, classes/default.pmc, classes/intqueue.pmc,
824         classes/parrotpointer.pmc, classes/perlarray.pmc,
825         classes/perlhash.pmc, classes/perlint.pmc, classes/perlnum.pmc,
826         classes/perlstring.pmc, classes/perlundef.pmc,
827         include/parrot/pmc.h, core.ops, pmc.c, vtable.tbl: Add size
828         argument to the init() vtable method so PMCs have the option to
829         know how to size themselves at creation. size could be N elements
830         or a byte count, depending on the PMC or it may simply be ignored.
831         Overloaded 'new' opcode for optional arg.
833 2002-03-10 21:15  mrjoltcola
835         * lib/Parrot/Assembler.pm: Minor patch to the assembler for the
836         new_p_ic_ic opcode to work same as new_p_ic (looks up a named
837         class).
839         Also added small hack for .sub directive (which simply translates
840         to a label, however we might eventually want to collect these to
841         validate bsr calls.
843 2002-03-10 15:09  ajgough
845         * types/: bignum.c, bignum.h, bignum_atest.pl, bignum_test.pl:
846         Added round_floor and round_ceiling.  3403 tests pass, none fail.
848 2002-03-10 03:56  ajgough
850         * types/: bignum.c, bignum_atest.pl: Added extended stuff to
851         divide, divide integer and remainder.  All filled in functions now
852         have special values capability.
854         Much remains to be done though, and the pdd needs to catch up.
856 2002-03-10 01:36  ajgough
858         * types/bignum.c: Added extended stuff to _add, _subtract.
860 2002-03-10 00:14  nicholas
862         * t/op/: integer.t, number.t: Patch from Simon Glover
863         <scog@roe.ac.uk>:
865          The enclosed patch fixes a few of the holes in our test coverage
866          uncovered by Josh Wilmes
868 2002-03-09 23:03  ajgough
870         * types/: bignum.c, bignum.h: Modified compare to work with
871         extended values.  Made a couple of changes here and there to allow
872         BN_comp to take a context, so that an is_zero check doesn't clobber
873         negative zeros.
875 2002-03-09 22:19  ajgough
877         * types/: bignum.c, bignum.h, bignum_atest.pl, bignum_test.pl:
878         Unary plus now copes with special values.
880 2002-03-09 04:25  ajgough
882         * types/: bignum.c, bignum_atest.pl, bignum_test.pl: Exception
883         traps and flags are now enabled and tested for all the standard
884         tests for all the functions which are currently implemented.  Test
885         harness faffed with to allow these to be tested.
887 2002-03-09 02:29  josh
889         * encodings/singlebyte.c, encodings/utf16.c, encodings/utf32.c,
890         encodings/utf8.c, chartypes/unicode.c, chartypes/usascii.c:
891         Re-indented
893 2002-03-09 02:22  josh
895         * config_h.in: tab-blastin'
897 2002-03-09 02:21  josh
899         * check_source_standards.pl: Play nicer with M-x compile- don't
900         bother giving line numbers for things you don't want to look at.
902 2002-03-09 02:10  josh
904         * examples/mops/mops.c: re-indented
906 2002-03-09 02:07  josh
908         * classes/pmc2c.pl: Use the usual header so that we can detect the
909         autogeneratedness.
911 2002-03-09 02:05  josh
913         * jit2h.pl: Avoid accidental /* inside a comment, which generates a
914         compiler warning
916 2002-03-09 01:59  josh
918         * io/: io.c, io_stdio.c, io_unix.c, io_win32.c: Another large
919         patch- re-indent io/*.c.
921 2002-03-09 01:52  ajgough
923         * types/: bignum.c, bignum.h, bignum_test.pl: Added handling of
924         special values to the string conversion functions, some other
925         functions now need context (to let -0 pass through really_zero)
926         which have also been added.
928 2002-03-09 01:47  josh
930         * test_main.c: Re-indented.
932 2002-03-09 01:41  josh
934         * rx.c: killed a stray tab
936 2002-03-09 01:38  josh
938         * rx.c: Re-indented.
940 2002-03-09 01:36  josh
942         * misc.c: Oops, some tabs remained- cleaned up.
944 2002-03-09 01:31  josh
946         * misc.c: Re-indented (major patch, sorry)
948 2002-03-09 00:59  josh
950         * embed.c: Re-indented.
952 2002-03-08 23:08  simon
954         * MANIFEST, docs/pdds/pdd10_embedding.pod,
955         docs/pdds/pdd11_extending.pod, docs/pdds/pdd12_assembly.pod,
956         docs/pdds/pdd13_bytecode.pod:
957         Placeholder PDDs.
959 2002-03-08 21:12  ajgough
961         * include/parrot/string.h: Added private flags to string.h, mostly
962         so that other GCed stuff can also have its very own private flags.
964 2002-03-08 19:53  simon
966         * MANIFEST:
967         Great PDD Renaming
969 2002-03-08 19:41  robert
971         * docs/pdds/: pdd0.pod, pdd1.pod, pdd2.pod, pdd4.pod, pdd5.pod,
972         pdd6.pod, pdd7.pod: Renamed...
974 2002-03-08 18:51  simon
976         * MANIFEST, docs/pdds/pdd08_keys.pod:
977         Add keys PDD.
979 2002-03-08 18:20  ajgough
981         * types/: bignum.c, bignum.h, bignum_atest.pl, bignum_test.pl:
982         Introduced exception handlers and exception flags to context, will
983         allow support of extended standard.  Unified exception checking
984         mechanism (sort of) and made minimal changes to bulk of code to use
985         this.  Tests pass, I'm happy, and further changes will happen more
986         gradually.
988 2002-03-08 04:38  josh
990         * interpreter.c, string.c, testparrotsizes_c.in: More indenting
991         tweaks.
993 2002-03-08 04:37  josh
995         * platforms/: generic.c, generic.h, win32.c, win32.h: Re-indented
997 2002-03-08 04:24  josh
999         * embed.c: A bit more re-indenting
1001 2002-03-08 04:20  josh
1003         * embed.c: Indenting fixes
1005 2002-03-08 04:14  josh
1007         * jit.c: Re-indented (run_indent.pl)
1009 2002-03-08 03:36  josh
1011         * ops2c.pl: Fix the line numbers which get reported while compiling
1012         core_ops*.c
1014 2002-03-08 03:22  josh
1016         * packfile.c: -1552 cc: WARNING File = packfile.c, Line = 1537
1017         The variable "type" is set but never used.
1019               opcode_t type;
1021 2002-03-08 03:04  josh
1023         * resources.c, stacks.c, string.c, io/io.c, io/io_stdio.c,
1024         io/io_unix.c: Clean up unused and set-but-not-referenced variables
1025         noticed by the sgi compiler.
1027 2002-03-08 03:02  josh
1029         * misc.c: Fixes this warning (SGI) cc-1188 cc: WARNING File =
1030         misc.c, Line = 417   The indicated type qualifier is meaningless on
1031         cast type.
1034         (const char) 'f');
1035                                                                          ^
1037 2002-03-08 02:55  josh
1039         * Makefile.in: Clean up one of the object files it was missing
1041 2002-03-08 01:15  josh
1043         * include/parrot/interpreter.h: Fixes the following error (tcc):
1044         "./include/parrot/interpreter.h", line 27: Error:   [Syntax]: Extra
1045         comma at end of list.
1047 2002-03-06 22:15  simon
1049         * stacks.c:
1050         Tidy up stack chunk allocation.
1052 2002-03-06 21:00  simon
1054         * interpreter.c:
1055         Create strings only once we've got string register heads set up.
1057 2002-03-06 20:31  simon
1059         * classes/perlarray.pmc:
1060         malloc(0) considered harmful.
1062 2002-03-06 20:24  simon
1064         * include/parrot/resources.h:
1065         I like it when Parrot compiles.
1067 2002-03-06 17:02  dan
1069         * classes/array.pmc: Changed over to data pointing to a Buffer.
1071 2002-03-06 15:45  dan
1073         * core.ops, embed.c, exceptions.c, interpreter.c, memory.c,
1074         packfile.c, pbc2c.pl, pdump.c, resources.c,
1075         include/parrot/interpreter.h, include/parrot/memory.h,
1076         include/parrot/resources.h, io/io.c: Three quick things: 1) INTVALs
1077         and opcode_t > longs will now be even more suspect than what they
1078         were beforehand.  2) Feel free to bicker with names.  I don't think
1079         we've come to *any* sort of agreement with these, although we
1080         really, really, need to.  3) I forget the third thing.  4) But I
1081         thought of a fourth.  5) I've now remembered the third thing: IIRC,
1082         ANSI C states that enums will fit within the smallest type (int or
1083         greater) that can hold the values. Is that actually correct, and
1084         does it state whether unsigned is preferred to signed for
1085         non-negative enums? 6) Since I'm no longer constrained by "three"
1086         or "quick", I'm going size_t happy for a lot of memory-related
1087         storage.  (That's good.  No sense wasting the size or performance
1088         of an UINTVAL for strange values of UINTVAL.)  I'm also using it in
1089         a couple other internal things (like the GC stat counters, seen
1090         here).  Size and performance, again, and unpromotable to a bigint,
1091         so we know that we (theoretically) will wrap.  However, size_t
1092         isn't the best choice for the type.  (Not that there's anything
1093         wrong with size_t, just that it shouldn't be called size_t.)  Any
1094         thoughts?  I was thinking of just doing unsigned int, because,
1095         IIRC, int is usually the natural word size, and will be most
1096         efficient.  Thoughts? 7) I forgot what the fourth thing I thought
1097         of was while writing down the others.  Sorry.
1099         Courtesy of  "Bryan C. Warnock" <Bryan.Warnock@raba.com>
1101 2002-03-06 15:26  dan
1103         * memory.c, resources.c, string.c, classes/perlarray.pmc,
1104         include/parrot/resources.h: Now we allocate generic Buffers from
1105         arenas too
1107 2002-03-05 21:42  brentdax
1109         * Configure.pl: Minor cleanup and enhancements.
1111 2002-03-05 21:25  dan
1113         * resources.c: non-special GC now works with PMCs
1115 2002-03-05 19:48  brentdax
1117         * Configure.pl, DEVELOPING, MANIFEST, config_h.in, test_main.c:
1118         Parrot now "knows" if it's a development version or a release
1119         version.  See the instructions in the DEVELOPING file.
1121 2002-03-05 18:05  brentdax
1123         * MANIFEST: pasm.vim wasn't in the manifest.
1125 2002-03-05 17:57  simon
1127         * Makefile.in:
1128         Now, through much evilness, make distclean and make cvsclean work
1129         again.
1131 2002-03-05 17:38  dan
1133         * memory.c, resources.c, docs/pdds/pdd09_gc.pod,
1134         include/parrot/interpreter.h, include/parrot/pmc.h,
1135         include/parrot/resources.h: PMC tracing complete
1137 2002-03-05 16:28  gregor
1139         * languages/jako/Makefile.in:
1140         Changed -I ../../ to -I ../../lib when calling the assembler, since
1141         the perl modules have moved.
1143 2002-03-05 05:30  josh
1145         * packfile.c, pdump.c, pmc.c, register.c, rxstacks.c, stacks.c,
1146         string.c: More re-indenting via run_indent.pl.
1148 2002-03-05 05:17  josh
1150         * runops_cores.c, trace.c, warnings.c: Re-indented (via
1151         run_indent.pl)
1153 2002-03-05 04:26  josh
1155         * key.c, memory.c, test_gnuc.c, testparrotfuncptr.c: Re-indented
1156         using run_indent.pl and some minor tweaking.
1158 2002-03-05 04:21  josh
1160         * chartype.c, encoding.c, exceptions.c, global_setup.c,
1161         interpreter.c: Re-indented using run_indent.pl and some minor
1162         tweaking.
1164 2002-03-05 03:30  josh
1166         * include/parrot/trace.h: These functions are no longer used (or
1167         even implemented)
1169 2002-03-04 18:21  josh
1171         * include/parrot/trace.h: Fix a typo in the argument type.
1173         Patch from <daniel.ritz@gmx.ch>
1175 2002-03-04 03:39  josh
1177         * check_source_standards.pl, jit2h.pl: Add the "autogenerated file"
1178         header to jit_struct.h so we don't try to check it for conformance.
1179          (no way will it conform)
1181 2002-03-04 03:38  josh
1183         * include/parrot/: chartype.h, interpreter.h, io.h, rx.h, trace.h,
1184         unicode.h, warnings.h: Remove some remaining tabs and split some of
1185         the remaining long lines.
1187 2002-03-04 03:17  josh
1189         * include/parrot/: chartype.h, embed.h, encoding.h, exceptions.h,
1190         global_setup.h, interpreter.h, io.h, jit.h, key.h, memory.h,
1191         misc.h, op.h, oplib.h, packfile.h, parrot.h, pmc.h, register.h,
1192         resources.h, runops_cores.h, rx.h, rxstacks.h, stacks.h, string.h,
1193         string_funcs.h, trace.h, warnings.h: This is the first batch of
1194         re-indenting.   This patch is the result of running run_indent.pl
1195         on the header files and manually tweaking the results where errors
1196         were noticed.   This should get us closed, but some refinement may
1197         follow.
1199 2002-03-04 03:06  josh
1201         * resources.c: Return without parens, as mentioned in PDD 7
1203 2002-03-04 03:01  josh
1205         * core.ops: POD fixes.
1207 2002-03-04 02:58  josh
1209         * config_h.in, ops2c.pl, classes/pmc2c.pl: More consistent headers
1210         on autogenerated files- used by the check_source_standards.pl
1211         script (for now) to exempt autogenerated files from the checks.
1213 2002-03-04 02:51  josh
1215         * embed.c, key.c, pmc.c, resources.c, rx.c, testparrotfuncptr.c,
1216         warnings.c: Added the editor "boilerplate" footer to a few files
1217         which were missing it.
1219 2002-03-04 02:34  josh
1221         * check_source_standards.pl, interpreter.c, jit.c, test_gnuc.c,
1222         include/parrot/io.h, include/parrot/parrot.h, io/io_win32.c: Fixes
1223         c preprocessor directive indentation to comply with pdd 7.
1225         (also fixes the check for this indentation in
1226         check_source_standards.pl)
1228 2002-03-04 02:32  josh
1230         * lib/Parrot/Test.pm: Fixes this error seen on perl 5.005_02 on
1231         irix.
1233         perl t/harness t/op/basic..........Use of uninitialized value at
1234         lib/Parrot/Test.pm line 81.  #     Failed test (t/op/basic.t at
1235         line 6) #          got: undef #     expected: ''
1237 2002-03-04 02:30  josh
1239         * MANIFEST, run_indent.pl, docs/pdds/pdd07_codingstd.pod,
1240         docs/pdds/pdd7.pod: Added documentation and code to invoke the GNU
1241         "indent" program to enforce some of the code style standards
1242         outlined in PDD 7.
1244         Usage: ./run_indent.pl <file>
1246 2002-03-03 19:04  simon
1248         * examples/mops/mops.c:
1249         Let's make it compile, huh?
1251 2002-03-03 19:04  simon
1253         * examples/mops/mops.cs:
1254         I R AN IDIOT
1256 2002-03-03 18:11  simon
1258         * examples/mops/mops.cs, examples/mops/mops.il, MANIFEST:
1259         Added C# and MS-IL versions of mops tester.
1261 2002-03-03 14:52  simon
1263         * core.ops:
1264         Add a sub() op to make mops_p work.
1266 2002-03-02 18:12  nicholas
1268         * examples/mops/mops.c, include/parrot/embed.h,
1269         include/parrot/interp_guts.h, include/parrot/jit.h,
1270         include/parrot/misc.h, include/parrot/packfile.h,
1271         include/parrot/rx.h, include/parrot/warnings.h,
1272         platforms/generic.c, platforms/generic.h, platforms/win32.c,
1273         platforms/win32.h, types/bignum.c, types/bignum.h: Patch from Josh
1274         Wilmes to add the emacs and vim "ending boilerplate" that sets the
1275         indent variables correctly.
1277 2002-03-02 17:41  nicholas
1279         * resources.c: Patch from Josh Wilmes <josh@hitchhiker.org>: Little
1280         patch to fix a compiler warning.
1282 2002-03-01 22:35  dan
1284         * memory.c, resources.c, include/parrot/pmc.h,
1285         include/parrot/resources.h: PMCs now come out of arenas.
1287 2002-03-01 06:15  dan
1289         * string.c:
1290         A non-existing buffer + a non-existing buffer should be a
1291         non-existing buffer, not "", which is really '\0'.
1293         Courtesy of "Bryan C. Warnock" <Bryan.Warnock@raba.com>
1295 2002-03-01 06:02  dan
1297         * classes/: array.pmc, perlarray.pmc, perlhash.pmc, perlstring.pmc:
1299         TMTOWTDI, but strcmp is probably the worse.
1301         Courtesy of "Bryan C. Warnock" <Bryan.Warnock@raba.com>
1303 2002-03-01 02:32  brentdax
1305         * embed.c: Debug mode now prints out the GC data.
1307 2002-02-28 23:44  dan
1309         * core.ops, resources.c, include/parrot/resources.h: Added collect
1310         and sweep opcodes
1312 2002-02-28 22:58  dan
1314         * docs/pdds/: pdd06_pasm.pod, pdd6.pod: Add docs for interpinfo
1315         opcode
1317 2002-02-28 22:50  dan
1319         * core.ops, interpreter.c, resources.c,
1320         examples/assembly/life.pasm, include/parrot/interpreter.h,
1321         include/parrot/resources.h: Add some stat gathering to the resource
1322         allocation code.
1324         Also add an interpreter info retrieval op, and teach it about the
1325         different things it can retrieve.
1327         Finally, add some stat info to life.pasm as an example
1329 2002-02-28 21:27  dan
1331         * editor/pasm.vim: VIM mode commands for parrot assembly files
1333         Courtesy of Scott Beck <scott@gossamer-threads.com>
1335 2002-02-28 19:20  dan
1337         * examples/assembly/life.pasm: Fix a creeping string length leak.
1339         Courtesy of  "Bryan C. Warnock" <Bryan.Warnock@raba.com>
1341 2002-02-28 18:26  dan
1343         * string.c: When you clone a constant, it ain't constant no mo'.
1345         Cocurtesy of "Bryan C. Warnock" <Bryan.Warnock@raba.com>
1347 2002-02-28 00:51  dan
1349         * MANIFEST: Add missing files
1351         Courtesy of "Bryan C. Warnock" <Bryan.Warnock@raba.com>
1353 2002-02-28 00:49  dan
1355         * docs/pdds/: pdd0.pod, pdd00_pdd.pod: The pod version of PDD 0 in
1356         CVS seems to have several chunks missing out of it, too.  This
1357         patch is simply an administrative patch, with the differences
1358         between my last version, and the one currently in there.  There
1359         will be a forthcoming patch for some minor tweaking to the PDD, but
1360         I wanted a common baseline before I make any (potential) semantic
1361         changes.
1363         There's only one semi-major change, which noone needs to worry
1364         about just yet.  That's a change from PDD Format 1 to PDD Format
1365         6.0 - rationale can be found under 'Standard (Version #)' of the
1366         STANDARDS TRACK infomation.  Don't worry about this yet, because it
1367         should be 6.0.0, and we need to discuss Perl versus Parrot with
1368         PDDs.
1370         Courtesy of "Bryan C. Warnock" <bwarnock@raba.com>
1372 2002-02-28 00:27  dan
1374         * packfile.c, resources.c, examples/assembly/life.pasm,
1375         include/parrot/register.h, include/parrot/resources.h,
1376         include/parrot/string.h: First pass of semi-full GC. (Strings only,
1377         no PMCs yet)
1379         This patch now implements a real copying collector. We trace from
1380         our root set and compact the contents of Buffer structs.
1382         Todo:
1384         *) It's very STRING-centric and doesn't handle memory stuffed in
1385         Buffers.  But, then, we don't have pool allocation for Buffers
1386         either, and we need to have that soonish for this to work.
1388         *) Doesn't trace PMCs, so if you trigger a collection and there's
1389         memory or STRING structs only accessible from PMCs, you'll fail
1390         horribly. That needs fixing too
1392         *) Better algorithms for when to trace or collect vs when to just
1393         go allocate more memory from the system. Should probably be more
1394         cache friendly too.
1396 2002-02-27 21:04  dan
1398         * jit.c, memory.c, resources.c, string.c, docs/pdds/pdd09_gc.pod,
1399         examples/assembly/life.pasm, include/parrot/resources.h,
1400         include/parrot/string.h, include/parrot/string_funcs.h,
1401         jit/i386/core.jit: Start of GC in
1403 2002-02-26 16:41  dan
1405         * jit/i386/string.jit: Fix a typo
1407         Courtesy of Jonathan Stowe <gellyfish@gellyfish.com>
1409 2002-02-26 16:37  dan
1411         * interpreter.c: Fix solaris test failures
1413         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1415 2002-02-26 16:36  dan
1417         * include/parrot/: interp_guts.h, io.h, packfile.h, rx.h,
1418         unicode.h, warnings.h: Fixes various warts in header files, such
1419         as: * macros   -added parens to prevent problems with operator
1420         precedence   -removed ; at end * removed SSIZE_MAX, since ssize_t
1421         is no longer used * added some more INLINE definitions for MSVC and
1422         C99 compilers
1424         Courtesy of Brian Lee Ray <blray@ualr.edu>
1426 2002-02-26 16:20  dan
1428         * Configure.pl: Turns out we were using a warning flag which
1429         doesn't exist on 2.7.  Simple tweak though:
1431         Courtesy of  Josh Wilmes <josh@hitchhiker.org>
1433 2002-02-25 22:58  dan
1435         * MANIFEST, docs/pdds/pdd09_gc.pod: Add docs of GC
1437 2002-02-25 17:36  dan
1439         * include/parrot/pmc.h: Fix the bits
1441 2002-02-23 21:57  dan
1443         * include/parrot/resources.h: Another 1.5% never hurts
1445 2002-02-23 21:44  dan
1447         * global_setup.c, memory.c, resources.c, string.c,
1448         include/parrot/resources.h: Allocate STRING headers from an arena
1449         with freelist rather than with the system malloc. First step in a
1450         good (or even a bad) GC system.
1452 2002-02-23 20:37  brentdax
1454         * misc.c: lint has been doing Evil and Wrong things to misc.c.
1456 2002-02-22 14:59  ajgough
1458         * types/bignum.c: BN_multiply split into BN_multiply and
1459         BN_imultiply, the internal version to be used by idivide so that
1460         rounding isn't performed during intermediate stages of division.
1462         following test scripts now all pass: divide divideint add multiply
1463         subtract remainder compare rounding plus minus (these are all the
1464         operations currently implemented, rescale and power must still be
1465         written, so don't pass right now).
1467 2002-02-22 13:13  ajgough
1469         * types/bignum_atest.pl: Test harness modified to understand
1470         comments better, and be able to run unary (and rounding) tests.
1471         Currently a few rounding tests fail, which are being investigated.
1473 2002-02-22 01:41  dan
1475         * key.c: Although there's more work being done on the key stuff and
1476         this isn't the final fix, applying this patch does get parrot to
1477         build with two more compilers, so it's probably worthwhile.
1479         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1481 2002-02-22 00:53  dan
1483         * config_h.in, misc.c, include/parrot/embed.h,
1484         include/parrot/exceptions.h, include/parrot/interpreter.h,
1485         include/parrot/io.h, include/parrot/parrot.h, include/parrot/pmc.h,
1486         include/parrot/resources.h, include/parrot/rx.h,
1487         include/parrot/string.h, include/parrot/unicode.h,
1488         include/parrot/warnings.h, io/io_stdio.c, io/io_unix.c,
1489         io/io_win32.c: Fixes the following (lcc) warnings:
1491           - interpreter.c:470: warning: expression with no effect elided
1492                (related to the way warnings flags were defined)
1494           - misc.c:352: warning: unreachable code
1495             misc.c:483: warning: unreachable code
1496                (i introduced these with some overzealous de-linting)
1498           - numerous warnings like this:
1499             io/io_unix.c:383: warning: conversion from pointer to void' to
1500         pointer to
1501             pointer to struct _ParrotIO function(pointer to struct
1502         Parrot_Interp,pointer
1503             to struct _ParrotIOLayer,pointer to const char,pointer to const
1504         char,pointer
1505             to pointer to void)' is compiler dependent
1507         Fixes the following nits:    - remove bad indenting (tabs) in the
1508         includes
1510         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1512 2002-02-21 21:12  ajgough
1514         * types/: bignum.c, bignum.h: These might look like massive
1515         changes, but really it's just he imposition of coding standards.
1516         The file still isn't entirely compliant, but is now much more so.
1518         Also changed:
1520          o a few more comments
1521          o BN_compare uses internal BN_comp to compare
1522          o lost_digits behaviour is now correct (test harness modified to
1523         test
1524            this).
1526         All binary functions now pass all the tests in the basic standard.
1527         Unary functions not yet tested, will be soon.
1529 2002-02-21 18:20  dan
1531         * lib/Parrot/OpTrans/CPrederef.pm: The "inline" bit of that patch
1532         was no longer needed, and the ssize_t thing really shouldn't be
1533         needed either.
1535         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1537 2002-02-21 18:15  dan
1539         * Configure.pl, embed.c, pdump.c, hints/mswin32.pl,
1540         include/parrot/parrot.h: this patch adds support for the freely
1541         available borland c++ 5.5.1 compiler
1543         depends on: - josh's patch to remove ssize_t from CPrederef.pm -
1544         working borland compiler (compiler must know where to find headers
1545         and libs) - Perl's Config.pm modified to use cc='bcc32.exe' not of
1546         cc='cl.exe' - a working make utility (borland make doesn't work,
1547         nmake does)
1549         changes: - add bcc in hints/mswin32.pl - clean up for msvc++ in
1550         hints/mswin32.pl - remove a space from Configure.pl (very very
1551         important for bcc) - add a O_BINARY flag to open() in pdump.c,
1552         embed.c (required by bcc) - define O_BINARY 0 when it's not defined
1553         (win32 knows it, linux not)
1555         and the why: - parrot is MUCH faster when compiled with borland c
1556         (make test on p2-450, 320MB):   * msvc++: 313 seconds   * bcc: 251
1557         seconds
1559         Courtesy of "Ritz Daniel" <daniel_ritz@gmx.ch>
1561 2002-02-21 18:09  dan
1563         * jit.c, testparrotfuncptr.c, trace.c, classes/array.pmc, io/io.c,
1564         io/io_stdio.c, io/io_unix.c, io/io_win32.c: This patch removes
1565         cuddled elses, as required by PDD 7.
1567         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1569 2002-02-21 18:04  dan
1571         * MANIFEST, Makefile.in, check_source_standards.pl: This patch adds
1572         a new Makefile target called "check_source".  This target scans all
1573         the .c and .h files in the directory and checks for conformance to
1574         a number of the standards outlined in PDD 7.
1576         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1578 2002-02-21 16:38  ajgough
1580         * types/: bignum.c, bignum.h, bignum_atest.pl: Modifications to
1581         allow arithmetic with numbers with a fixed fractional part, buffer
1582         structures now more ready to be integrated into the parrot memory
1583         allocation game, test harness modified to allow lost_digits
1584         condition to be checked.  Some more comments.
1586 2002-02-21 15:53  simon
1588         * io/io_unix.c:
1589         Fix typo
1591         Courtesy of: "David M. Lloyd" <dmlloyd@tds.net>
1593 2002-02-20 16:41  dan
1595         * MANIFEST, docs/pdds/pdd_template.pod: Added in template PDD
1597 2002-02-18 18:25  dan
1599         * MANIFEST, lib_deps.pl: Added in lib_deps.pl and MANIFEST change.
1601         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1603 2002-02-18 18:21  dan
1605         * lib/Parrot/OpTrans/CPrederef.pm: this is a quick fix for
1606         CPrederef.pm to make to generated code compile with the MS
1607         compiler.
1609         fixes: - ms compiler allows inline only for c++, for c there's
1610         __inline - ms header files knows nothing about ssize_t
1612         Courtesy of "Ritz Daniel" <daniel_ritz@gmx.ch>
1614 2002-02-18 17:49  dan
1616         * MANIFEST: Add the PDDs
1618 2002-02-18 17:47  dan
1620         * docs/pdds/: pdd07_codingstd.pod, pdd7.pod: Added in PDD 7, the
1621         coding standards PDD.
1623 2002-02-18 17:40  dan
1625         * docs/pdds/: pdd06_pasm.pod, pdd6.pod: Updated to latest rev
1627 2002-02-18 12:41  gregor
1629         * test_main.c:
1630         Remove warning about exit() not being declared.
1632 2002-02-18 08:29  simon
1634         * misc.c, warnings.c, include/parrot/misc.h,
1635         include/parrot/warnings.h:
1636         This patch adds some missing const's to silence a number of gcc
1637         warnings.
1639         Courtesy of: Josh Wilmes <josh@hitchhiker.org>
1641 2002-02-18 08:26  simon
1643         * Makefile.in, core.ops, embed.c, interpreter.c, key.c, misc.c,
1644         ops2c.pl, packfile.c, pdump.c, stacks.c, string.c,
1645         classes/array.pmc, classes/perlarray.pmc, classes/perlhash.pmc,
1646         include/parrot/parrot.h, include/parrot/rx.h,
1647         include/parrot/stacks.h, io/io_stdio.c, io/io_unix.c,
1648         lib/Parrot/OpTrans/CPrederef.pm:
1649            - add makefile target and script to test for external libc
1650         dependencies
1651            - fix return values in hash and array PMCs (returning 0 in a
1652         void func)
1653            - remove unnecessary data pointer <=> function pointer
1654         conversions
1655              outside of the JIT code.
1656            - move the definition of the "INLINE" macro out of the rx header
1657         and make
1658              available for general use on C++ compilers and gcc.
1659            - remove a few unused variables
1661         Courtesy of: Josh Wilmes <josh@hitchhiker.org>
1663 2002-02-17 16:29  simon
1665         * docs/pdds/: pdd0.pod, pdd00_pdd.pod, pdd01_overview.pod,
1666         pdd02_vtables.pod, pdd04_datatypes.pod, pdd05_opfunc.pod,
1667         pdd06_pasm.pod, pdd1.pod, pdd2.pod, pdd4.pod, pdd5.pod, pdd6.pod:
1668         We're organised and responsible. Honest.
1670 2002-02-17 02:46  sfink
1672         * Makefile.in: Remove $^ for nmake compatibility.
1674 2002-02-16 09:20  brentdax
1676         * config_h.in, test_main.c, include/parrot/chartype.h,
1677         include/parrot/embed.h, include/parrot/encoding.h,
1678         include/parrot/string.h, include/parrot/string_funcs.h: Better
1679         embedding exposure and hiding, part 1.
1681 2002-02-16 04:38  dan
1683         * Makefile.in, core.ops, interpreter.c, pbc2c.pl, pdump.c,
1684         runops_cores.c, docs/running.pod, lib/Parrot/OpTrans/C.pm,
1685         lib/Parrot/OpTrans/CGoto.pm, lib/Parrot/OpTrans/CPrederef.pm:
1686         Anyway, here's a patch to repair pbc2c.pl, combined with removing
1687         typecasts in various places throughout the code. It probably won't
1688         work for Windows yet. The libparrot.a target might need to be
1689         modified to at least prevent it from confusing make on Windows; I
1690         don't know.
1692         Preliminary instructions for using pbc2c.pl are in
1693         docs/running.pod.  I'll try to do better later.
1695         Courtesy of Steve Fink <steve@fink.com>
1697 2002-02-16 04:15  dan
1699         * exceptions.c, include/parrot/exceptions.h: Warnings cleaned up
1701         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1703 2002-02-16 00:03  simon
1705         * classes/: perlarray.pmc, perlhash.pmc:
1707         pmc is already defined!
1709 2002-02-15 23:20  brentdax
1711         * Configure.pl, config_h.in, exceptions.c, pmc.c,
1712         include/parrot/exceptions.h: Far more informative panic messages.
1714 2002-02-15 03:24  dan
1716         * lib/Parrot/: Op.pm, OpsFile.pm, OpTrans/CPrederef.pm: Here's a
1717         much more extensive patch that fixes it to work properly, and
1718         deletes a bazillion casts as well.  It also points to the question
1719         "can we make the byte_code be an opcode_t* already?"
1721         Oh, and it makes some of the formatting prettier, so it's gotta be
1722         good.
1724         Courtesy of * Steve Fink <steve@fink.com>
1726 2002-02-15 02:30  dan
1728         * Makefile.in, core.ops, embed.c, misc.c, packfile.c, rx.ops,
1729         stacks.c: I've tweaked the "lint" target somewhat and fixed a few
1730         of the things it finds.  Attaching the patch as well as the current
1731         lint output.
1733         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1735 2002-02-15 01:59  dan
1737         * t/pmc/: array.t, perlhash.t: Disable non-functional bits for the
1738         moment.
1740 2002-02-15 01:48  dan
1742         * t/pmc/perlarray.t: Skip tests for features that need twiddling
1744 2002-02-15 01:40  dan
1746         * t/op/rx.t: Skip a test that's waiting for us to rejig some array
1747         things
1749 2002-02-14 23:30  dan
1751         * resources.c: Added comment for buffer tag routine. D'oh!
1753 2002-02-14 23:28  dan
1755         * resources.c, include/parrot/resources.h: Added buffer mark
1756         routine for GC
1758 2002-02-14 23:17  dan
1760         * memory.c, classes/array.pmc, classes/perlarray.pmc,
1761         include/parrot/memory.h, include/parrot/string.h, t/pmc/perlhash.t:
1762         Rejigged memory system a bit. Now should be ready for the horror
1763         that is garbage collection.
1765 2002-02-14 19:33  gregor
1767         * ops2c.pl, include/parrot/oplib.h:
1768         Added code to automatically generate a function within an oplib to
1769         lookup opinfos given the op name. This will come in handy in future
1770         when we want to twiddle opcode tables at run time and possibly at
1771         startup time.
1773 2002-02-14 19:25  gregor
1775         * examples/assembly/queens.pasm:
1776         Regenerated queens.pasm from queens.jako since the clone_* stuff
1777         went away.
1779 2002-02-14 17:12  dan
1781         * resources.c, include/parrot/resources.h: Finished up the
1782         interface for memory and tracked interpreter thingies.
1784 2002-02-14 16:53  dan
1786         * memory.c, include/parrot/memory.h: intercept free and realloc
1788 2002-02-14 05:53  dan
1790         * interpreter.c, runops_cores.c: The type changes in struct
1791         Packfile break the pointer math used in a few places to calculate
1792         the address of the end of the loaded byte code. This causes
1793         segfaults in build_asm in jit.c when using -j. It also breaks the
1794         bounds checking on opcode address in runops_slow_core.
1796         The patch adds the necessary cast to correct the code_end
1797         calculations.
1799         Courtesy of Jason Gloudon <perl@gloudon.com>
1801 2002-02-14 01:01  ajgough
1803         * types/: bignum.c, bignum.h, bignum_test.pl: Added support for
1804         BigInt operations (I think), tests for normal operation continue to
1805         pass.  Also a shed load of comments.
1807 2002-02-13 01:34  ajgough
1809         * types/: bignum.c, bignum.h, bignum_atest.pl, bignum_test.pl: This
1810         is a (mostly) working bignumber library.  There remains much work
1811         to do though, some functions are not yet implemented and headers
1812         need to find their way to the correct place RSN.  Also support for
1813         bigints and a sensible error reporting mechanism are needed.
1815 2002-02-12 18:51  dan
1817         * misc.c: Fix some warnings
1819 2002-02-12 17:10  dan
1821         * misc.c: Run through indent -kr -nce so I can read it
1823 2002-02-12 16:49  dan
1825         * misc.c: Need standard header/footer comments
1827 2002-02-11 20:32  simon
1829         * classes/array.pmc:
1830         get and set pmc methods.
1832 2002-02-11 20:19  simon
1834         * classes/array.pmc:
1835         Maybe the keys aren't integer...
1837 2002-02-11 20:03  simon
1839         * core.ops, vtable.tbl, classes/default.pmc:
1840         {g,s}et_pmc_keyed
1842 2002-02-11 19:07  simon
1844         * vtable.tbl, classes/default.pmc:
1845         Add set_pmc. Usee with caution.
1847 2002-02-11 18:20  dan
1849         * classes/: array.pmc, perlarray.pmc: Patch array classes to
1850         compile
1852 2002-02-11 17:59  simon
1854         * core.ops, embed.c, global_setup.c, key.c, rx.ops,
1855         classes/perlarray.pmc, classes/perlhash.pmc:
1856         Make it compile.
1858 2002-02-11 17:57  simon
1860         * packfile.c, include/parrot/packfile.h:
1861         Reduce warnings
1863         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
1865 2002-02-11 17:55  dan
1867         * docs/parrot_assembly.pod: Document some key ops
1869 2002-02-11 09:20  brentdax
1871         * pmc.c, include/parrot/exceptions.h: Adding a panic ought to be
1872         disgustingly easy.
1874 2002-02-11 00:34  simon
1876         * core.ops, include/parrot/exceptions.h:
1877         This is what keyed set ops look like. Remember, however, that for
1878         keyed functions, all operands must be PMCs. set(PMC, PMC, INT)
1879         means $1 = $2[$3], not $1[$2] = $3. set(PMC,PMC,PMC) is so
1880         obviously ambiguous that you ought to use the 4-arg version
1881         instead.
1883 2002-02-10 23:12  jgoff
1885         * classes/: array.pmc, perlarray.pmc: Properly allocate
1886         SELF->data's array of PMC* data in array and perlarray.pmc.  This
1887         isn't tested yet, but should be fairly straightforward.  PerlHash
1888         needs to be finished before the system will compile again, and that
1889         should be done in the next few days.
1891 2002-02-09 04:46  jgoff
1893         * classes/: array.pmc, default.pmc, intqueue.pmc,
1894         parrotpointer.pmc, perlarray.pmc, perlhash.pmc, perlundef.pmc:
1895         Added basic _keyed member functions.  Unfortunately this still
1896         doesn't fix the problems that are causing the build to break. It's
1897         a start though. I'm not implementing the PMC add functions just
1898         yet.
1900 2002-02-08 15:59  simon
1902         * classes/array.pmc:
1903         Some more work on getting the array stuff up to date.
1905 2002-02-08 12:23  simon
1907         * classes/array.pmc, classes/perlhash.pmc, include/parrot/key.h,
1908         lib/Parrot/Vtable.pm:
1909         Got array->get_integer_keyed doing what I think it ought to. One
1910         down, all the rest to go.
1912 2002-02-08 11:47  simon
1914         * vtable.tbl:
1915         Although I didn't intend it to be quite that broken...
1917 2002-02-08 11:42  simon
1919         * vtable.tbl, include/parrot/parrot.h, lib/Parrot/Vtable.pm:
1920         Completely break Parrot, but at least we get the key stuff right
1921         for now.
1923 2002-02-08 06:25  dan
1925         * hints/darwin.pl: Silences the warning about passing in
1926         -flat_namespace to the compile.  That's a link-only flag.
1928 2002-02-08 04:52  jgoff
1930         * classes/: array.pmc, default.pmc, intqueue.pmc,
1931         parrotpointer.pmc, perlarray.pmc, perlhash.pmc, perlint.pmc,
1932         perlnum.pmc, perlstring.pmc, perlundef.pmc: Filled in missing
1933         return values in *.pmc, added some missing casts to the repeat_foo
1934         members, and deleted the _index members from the perlscalar
1935         classes.  Basic cleanup, and getting ready for _keyed functions.
1937 2002-02-07 04:49  mrjoltcola
1939         * examples/assembly/bsr.pasm: Elaborated on the bsr/ret example,
1940         added a nested subroutine call.
1942 2002-02-07 04:32  jgoff
1944         * vtable.tbl, lib/Parrot/Vtable.pm: vtable.tbl got some minor
1945         changes in order to give the whitespace rules a little workout, and
1946         do a little bit more testing. No actual structural changes were
1947         made.  lib/Parrot/Vtable.pm got an interface change, and more
1948         importantly should be ready to support the new '_keyed' attribute,
1949         which will work roughly thus: PMC* src_value gets remapped to 'PMC*
1950         src_value' followed by 'KEY* src_key'.  This will be how the new
1951         _keyed operators will function, and those should be written within
1952         a few days.
1954 2002-02-06 18:00  doughera
1956         * misc.c: Change C++-style comments to C comments (again).  Remove
1957         unused perl5 code that was in #if 0/#endif.
1959 2002-02-06 17:59  doughera
1961         * warnings.c: Add trailing newline.
1963 2002-02-06 04:14  mrjoltcola
1965         * include/parrot/io.h, io/io.c: Minor cleanup.
1967 2002-02-06 03:11  mrjoltcola
1969         * examples/assembly/io1.pasm, io/io.c, io/io_win32.c: Tied up a
1970         couple of loose end in win32 IO stuff. Open behaves now but needs
1971         more work.
1973 2002-02-05 21:02  brentdax
1975         * classes/pmc2c.pl: Length on whoami init was always 7--a problem
1976         which showed up in Purify builds.
1978 2002-02-05 17:15  simon
1980         * misc.c:
1981         Warning fixes.
1983         Courtesy of: Jonathan Stowe <gellyfish@gellyfish.com>
1985 2002-02-05 17:08  doughera
1987         * misc.c: Avoid C++-style comments.
1989 2002-02-05 17:07  doughera
1991         * lib/Parrot/Jit/sun4Generic.pm: Generated assembly programs were
1992         not valid assembler for Sun's /usr/ccs/bin/as.  Now they are,
1993         thanks to Jason Gloudon <perl@gloudon.com>.
1995 2002-02-05 14:04  simon
1997         * misc.c:
1998         Make the problem different, perhaps even better.
2000 2002-02-05 13:49  simon
2002         * misc.c:
2003         Possibly fix a `short int' is promoted to `int' when passed through
2004         `...' scary error, possibly make things absolutely worse.
2006 2002-02-05 13:15  simon
2008         * Configure.pl:
2009         Placate Tru64.
2011 2002-02-05 13:12  simon
2013         * warnings.c:
2014         Not going to get far without this one...
2016 2002-02-05 11:41  simon
2018         * string.c:
2019         Don't barf when handed null pointers.
2021 2002-02-05 10:04  simon
2023         * misc.c, include/parrot/misc.h:
2024         Fix some trivial bugs in warnings code.
2026 2002-02-05 09:27  simon
2028         * misc.c:
2029         Oops, forgot this one; also added %P support.
2031 2002-02-05 09:20  simon
2033         * MANIFEST, Makefile.in, core.ops, embed.c, interpreter.c,
2034         test_main.c, classes/perlundef.pmc, include/parrot/embed.h,
2035         include/parrot/interpreter.h, include/parrot/misc.h,
2036         include/parrot/parrot.h, include/parrot/warnings.h:
2037         Warnings support.
2039         Courtesy of: Brent Dax <brentdax@cpan.org>
2041 2002-02-05 05:41  jgoff
2043         * vtable.tbl, lib/Parrot/Vtable.pm, t/pmc/perlstring.t: Changed the
2044         format of vtable.tbl to get rid of the tab-dependence.  The format
2045         now looks roughly like this:
2047         init() # 'void' and 'unique' are assumed INTVAL type ( ) # 'unique'
2048         is assumed str void concatenate (PMC* value, PMC* dest) # Nothing
2049         assumed here, but note the C-like prototyping.  Also had to disable
2050         one test that depended upon 'concat_p_p_s', which isn't necessary
2051         anyway.
2053         Vtable.pm will change again when the type '_keyed' is added,
2054         because that requires remapping parameters slightly differently
2055         again.  Also, note that it assumes 'value' is the first parameter
2056         in the list. This assumption will go away at the same time.
2058 2002-02-04 16:57  ajgough
2060         * core.ops, t/pmc/perlstring.t, t/pmc/pmc.t: More tests for pmc
2061         functions.  Thanks to Simon Glover.
2063 2002-02-04 02:47  ajgough
2065         * hints/os2.pl: Removes a flag from the os/2 hints file that isn't
2066         needed.  I suspect that the entire hints file isn't really needed,
2067         but there's no one to actually tell us this.
2069 2002-02-02 15:45  ask
2071         * docs/ParrotFAQ.htm: fix internal links
2073 2002-02-02 04:06  jgoff
2075         * classes/: array.pmc, intqueue.pmc, perlarray.pmc, perlhash.pmc:
2076         Moving the internal KEY structure from the cache.struct_val member,
2077         where it doesn't really belong, to the internal SELF->data member.
2078         This frees up the cache/type members for other usage.
2080         This is the first step in moving PMCs to the point where we can do
2081         multidimensional PMC handles. The next step is to change the
2082         assembler to accept the syntax of 'set P0["foo"],7'.
2084 2002-02-02 00:13  nicholas
2086         * include/parrot/global_setup.h: Patch from Jonathan Stowe to
2087         prototype Parrot_Array_class_init
2089 2002-02-02 00:13  nicholas
2091         * embed.c: Casts to tidy up warnings from Jonathan Stowe Change
2092         time to sum_time to avoid warning on FreeBSD about tracking a
2093         global [No, this warning does not appear on Linux. Yes, it is real
2094         :-)]
2096 2002-02-01 23:02  nicholas
2098         * embed.c: Fix fprintf format warning in Parrot_runcode. From Simon
2099         Glover
2101 2002-02-01 20:20  nicholas
2103         * t/pmc/pmc.t: Add end at end of asm in test (from Simon Glover)
2105 2002-02-01 18:20  nicholas
2107         * lib/Parrot/Test.pm: Env.pm on 5.005_03 doesn't do a use vars for
2108         you
2110 2002-02-01 13:22  nicholas
2112         * MANIFEST: Add docs/embed.pod and t/op/ifunless.t
2114 2002-02-01 12:19  simon
2116         * core.ops, t/op/ifunless.t, t/op/integer.t:
2117         Added "unless" op.
2119 2002-02-01 12:11  simon
2121         * lib/Parrot/Test.pm:
2122         Remove a warning.
2124 2002-02-01 01:38  nicholas
2126         * MANIFEST, MANIFEST.SKIP, Makefile.in: Add a MANIFEST.SKIP file,
2127         and a manitest target to Makefile.in that lets one test the
2128         manifest.
2130 2002-02-01 00:03  dan
2132         * core.ops, global_setup.c, include/parrot/pmc.h: More setup for
2133         PMC dynaloading
2135 2002-01-31 21:46  gregor
2137         * Configure.pl, Makefile.in, hints/mswin32.pl:
2138         A few more things are now configable, so we are closer to win32
2139         shared library builds. Not there yet, but closer.
2141 2002-01-31 21:00  dan
2143         * global_setup.c, classes/pmc2c.pl, include/parrot/global_setup.h,
2144         include/parrot/pmc.h: First step in dynamically loading PMC classes
2146 2002-01-31 19:38  dan
2148         * Makefile.in: Dependencies in the Makefile are currently too broad
2149         brush.  I don't enjoy waiting for everything to recompile every
2150         time I try to tweak the jit. The only file that #includes
2151         jit_struct.h is jit.c, so I feel that the Makefile dependencies
2152         should reflect this, and not cause a gratuitous recompile of
2153         everything.  There are probably other auto-generated header files
2154         that world+dog should not depend on.
2156         Courtesy of  Nicholas Clark <nick@unfortu.net>
2158 2002-01-31 19:03  gregor
2160         * Makefile.in, lib/Parrot/Test.pm, t/harness:
2161         Added two new make targets:
2163           * testp: Like 'make test', but passes -P to t/harness, so you get
2164         to
2165             see how broken predereferencing is.
2167           * testj: Like 'make test', but passes -j to t/harness, so you get
2168         to
2169             see how broken JIT is.
2171         Now, anyone who wants to see how good all three ways of running are
2172         can do so, at the cost of about 3x the time.
2174 2002-01-31 17:09  brentdax
2176         * embed.c, test_main.c: Implement the ARGV-in-P0 thing.
2178 2002-01-31 03:41  grunblatt
2180         * docs/jit.pod: Update jit.pod
2182 2002-01-31 03:20  grunblatt
2184         * jit/i386/core.jit: Hold this until we get an assemble tool,
2185         because of the different objdump problems.
2187 2002-01-31 03:13  grunblatt
2189         * Configure.pl, lib/Parrot/Jit/sun4-solaris.pm,
2190         lib/Parrot/Jit/sun4Generic.pm: Use dis intead of objdump.  Courtesy
2191         of: Jason Gloudon <perl@gloudon.com>
2193 2002-01-31 02:22  grunblatt
2195         * jit/i386/core.jit: Continue if the register is null
2197 2002-01-30 23:50  grunblatt
2199         * lib/Parrot/Jit/: alpha-bsd.pm, alpha-linux.pm, alphaGeneric.pm,
2200         i386-bsd.pm, i386-linux.pm, i386Generic.pm, sun4-solaris.pm,
2201         sun4Generic.pm: Move the AS and OBJDUMP constants to each os
2202         specific file.
2204 2002-01-30 23:35  mrjoltcola
2206         * io/io_win32.c: Change implementation of isatty on win32,
2207         suggested by Hong Zhang.
2209 2002-01-30 23:19  sfink
2211         * jit2h.pl, lib/Parrot/Op.pm, lib/Parrot/OpsFile.pm: Added
2212         Op::may_jump boolean method.
2214         Replaced jit2h's hardcoded pattern match to decide what ops might
2215         change the control flow.
2217 2002-01-30 22:13  dan
2219         * Configure.pl, MANIFEST, testparrotfuncptr.c: This patch allows
2220         parrot to mostly-build with tcc.  It allows one to skip compiling
2221         the JIT stuff (by specifying --define jitcapable=0), and it
2222         introduces a test program which gives a friendlier error in this
2223         case for compilers which are as picky as tcc is about function
2224         pointer conversion.
2226         If anyone figures out the proper way to cast these function
2227         pointers this may not be necessary.
2229         Courtesy of Josh Wilmes <josh@hitchhiker.org>
2231 2002-01-30 20:54  dan
2233         * docs/running.pod, lib/Parrot/Test.pm: I'm being anal again.
2234         Here's an update to docs/running.pod to better reflect the current
2235         state (both the test_parrot and assemble.pl improvements, plus
2236         documentation of a few more things.) And also a speling fiks
2237         s/POST_MORTERM/POST_MORTEM/.
2239         I could also replace some "perl foo" calls with "./foo" if someone
2240         wanted to set the executable flag in CVS on assemble.pl,
2241         optimize.pl, etc.
2243         Courtesy of Steve Fink <steve@fink.com>
2245 2002-01-30 20:43  dan
2247         * core.ops: find_global doesn't work, so stub out the wrong code
2249 2002-01-30 19:08  dan
2251         * lib/Parrot/Assembler.pm:  fixes the POD in Parrot::Assember so
2252         that perldoc
2253          can read it and just tidies it up generally. It also adds
2254         documentation
2255          for the constantize_integer and constantize_number functions.
2257         Courtesy of Simon Glover <scog@roe.ac.uk>
2259 2002-01-30 18:02  dan
2261         * assemble.pl, disassemble.pl, optimizer.pl, pbc2c.pl,
2262         classes/genclass.pl, classes/pmc2c.pl,
2263         languages/scheme/Scheme/Test.pm:  Many of the Perl scripts in the
2264         distribution (including assemble.pl !)
2265          can no longer find the Parrot::* modules. Enclosed patch fixes
2266         (although
2267          it would be nice if there were an easier way to do this).
2269         Courtesy of  Simon Glover <scog@roe.ac.uk>
2271 2002-01-30 16:00  mrjoltcola
2273         * io/io_win32.c: Correct function calls for win32_fdopen and arg
2274         types.
2276 2002-01-30 15:50  mrjoltcola
2278         * io/io_unix.c: Minor bug fix for fdopen flag arg type.
2280 2002-01-30 15:42  grunblatt
2282         * pbc2c.pl, examples/assembly/Makefile: Updates related to moving
2283         files around
2285 2002-01-30 15:38  grunblatt
2287         * MANIFEST: Enclosed patch adds the new SPARC-based JIT files to
2288         the manifest,  and also puts it back into alphabetical order.
2290         Courtesy of: Simon Glover <scog@roe.ac.uk>
2292 2002-01-30 14:41  nicholas
2294         * embed.c: Patch from Simon Glover to clean up warnings where
2295         prototype is () not (void)
2297 2002-01-30 13:54  nicholas
2299         * include/parrot/embed.h, test_main.c: Add void as an explicit
2300         parameter in test_main.c's usage(), version(void) and embed.h's
2301         Parrot_new() Without these gcc moans: include/parrot/embed.h:34:
2302         warning: function declaration isn't a prototype
2304 2002-01-30 12:08  simon
2306         * lib/Parrot/.cvsignore:
2307         Ignore generated Perl modules.
2309 2002-01-30 12:07  simon
2311         * t/harness:
2312         Run the PMC tests as well.
2314 2002-01-30 12:04  simon
2316         * MANIFEST:
2317         Fix MANIFEST after recent t/pmc rejig.
2319 2002-01-30 11:42  simon
2321         * lib/Parrot/Test.pm:
2322         Report non-zero exit codes.
2324         Courtesy of: Michael G Schwern <schwern@pobox.com>
2326 2002-01-30 11:39  simon
2328         * t/op/rx.t:
2329         Skip final test, TODO doesn't work yet.
2331 2002-01-30 09:54  brentdax
2333         * docs/embed.pod: Leon Brocard was kind enough to explain to me how
2334         predereferencing works.
2336 2002-01-30 09:38  brentdax
2338         * docs/: embed.pod, parrot.pod: Document this newfangled embedding
2339         subsystem.
2341 2002-01-30 09:37  brentdax
2343         * include/parrot/embed.h: Fix a mistake, clear up a warning.
2345 2002-01-30 09:37  brentdax
2347         * config_h.in: Expose another flag for embedders.
2349 2002-01-30 05:07  jgoff
2351         * make_vtable_ops.pl, t/harness: Both files didn't know of the new
2352         location for Parrot/, and t/harness wasn't able to run the new
2353         op/pmc tests. Both problems fixed, so I think I'm going to declare
2354         the build suitable for public consumption.
2356 2002-01-30 04:34  robert
2358         * docs/Makefile.in: update for CVS movement
2360 2002-01-30 04:32  robert
2362         * Makefile.in: Adjust for CVS reorganization.  (This time, edit the
2363         .in file, not the real Makefile)
2365 2002-01-30 04:20  robert
2367         * Configure.pl, jit2h.pl, ops2c.pl, ops2pm.pl, pmc_pm.pl,
2368         vtable_h.pl, classes/pmc2c.pl, include/parrot/parrot.h: Updates
2369         related to moving files around
2371 2002-01-30 04:10  robert
2373         * MANIFEST: Update MANIFEST to reflect CVS reorg.
2375 2002-01-30 04:07  robert
2377         * Configure.pl: Add './lib' to our @INC because Parrot/* moved.
2379 2002-01-30 03:56  robert
2381         * Parrot/: .cvsignore, Assembler.pm, BuildUtil.pm, Op.pm,
2382         OpTrans.pm, OpsFile.pm, Optimizer.pm, PackFile.pm, String.pm,
2383         Test.pm, Vtable.pm, Jit/alpha-bsd.pm, Jit/alpha-linux.pm,
2384         Jit/alphaGeneric.pm, Jit/i386-bsd.pm, Jit/i386-linux.pm,
2385         Jit/i386-nojit.pm, Jit/i386Generic.pm, Jit/sun4-solaris.pm,
2386         Jit/sun4Generic.pm, OpLib/.cvsignore, OpTrans/C.pm,
2387         OpTrans/CGoto.pm, OpTrans/CPrederef.pm, PackFile/ConstTable.pm,
2388         PackFile/Constant.pm, PackFile/FixupTable.pm: Moved Parrot/* to
2389         lib/Parrot/
2391 2002-01-30 03:46  robert
2393         * languages/miniperl/miniperlc: renamed to mpc
2395 2002-01-30 03:45  robert
2397         * t/op/: pmc.t, pmc_array.t, pmc_perlarray.t, pmc_perlhash.t,
2398         pmc_perlstring.t: Moved to t/op/pmc/
2400 2002-01-30 03:40  robert
2402         * include/parrot/register_funcs.h: Renamed to regfuncs.h
2404 2002-01-30 03:14  jgoff
2406         * classes/perlarray.pmc, t/op/pmc_perlarray.t, t/pmc/perlarray.t:
2407         Fixed some problems with PerlArray and added tests.  Previously,
2408         only integers could be accessed by negative indices.  After this
2409         change, all basic types can be accessed by negative indices, and
2410         they can also be set at negative indices.
2412 2002-01-29 22:13  brentdax
2414         * TODO: Just look at the stupid diff.
2416 2002-01-29 21:53  simon
2418         * TODO, docs/vtables.pod:
2419         New TODO, and tiny addition to vtables.pod
2421 2002-01-29 21:47  mrjoltcola
2423         * include/parrot/io.h, io/io_unix.c: Minor bug fix in io_unix.
2425 2002-01-29 21:38  mrjoltcola
2427         * Makefile.in: Makefile.in tweak for io depend.
2429 2002-01-29 21:15  brentdax
2431         * embed.c: Fix a segfault and some profiling formatting nits.
2433 2002-01-29 20:54  brentdax
2435         * pmc.c: Oops.
2437 2002-01-29 20:50  brentdax
2439         * pmc.c, include/parrot/exceptions.h: Exceptions are better than
2440         segfaults.
2442 2002-01-29 20:17  mrjoltcola
2444         * interpreter.c, core.ops, io.ops: CVS missed this.
2446 2002-01-29 20:17  mrjoltcola
2448         * io/io.c: These should have gone in Sunday with the rest. CVS is
2449         out to get me.
2451 2002-01-29 18:39  brentdax
2453         * platforms/win32.h: Fix Win32 whoops.
2455 2002-01-29 18:29  brentdax
2457         * embed.c, include/parrot/embed.h: A couple minor embedding fixes.
2459 2002-01-29 17:51  simon
2461         * MANIFEST, Makefile.in, config_h.in, embed.c, test_main.c,
2462         include/parrot/embed.h, include/parrot/parrot.h:
2463         Embedding support. Cool.
2465         Courtesy of: <brentdax@cpan.org>
2467 2002-01-29 15:40  grunblatt
2469         * Configure.pl: Detect if we can use "objdump".  Courtesy of: Jason
2470         Gloudon <perl@gloudon.com>
2472 2002-01-29 14:42  simon
2474         * include/parrot/parrot.h:
2475         Platform stuff has to be included *after* system headers.
2477 2002-01-29 14:05  grunblatt
2479         * interpreter.c, jit.c, Parrot/Jit/sun4-solaris.pm,
2480         Parrot/Jit/sun4Generic.pm, lib/Parrot/Jit/sun4-solaris.pm,
2481         lib/Parrot/Jit/sun4Generic.pm, include/parrot/jit.h,
2482         jit/sun4/core.jit, jit/sun4/lib.jit, jit/sun4/string.jit: Added
2483         support for SPARC.  Courtesy of: Jason Gloudon <perl@gloudon.com>
2485 2002-01-29 10:56  simon
2487         * platforms/generic.h:
2488         If we don't have a S_ISREG, produce something close to it.
2490 2002-01-29 06:01  dan
2492         * MANIFEST, README, LICENSES/Artistic: Finally added licenses
2494 2002-01-29 04:38  jgoff
2496         * classes/array.pmc: Forgot to remove some C++-isms from the
2497         get_{foo}_index routines.
2499 2002-01-29 04:26  jgoff
2501         * MANIFEST, Makefile.in, global_setup.c, classes/Makefile.in,
2502         classes/array.pmc, include/parrot/pmc.h, t/op/pmc_array.t,
2503         t/pmc/array.t: Added array class that languages other than perl can
2504         use for a basis.  It has no features like preextension, and the
2505         array index starts at 0.
2507         MANIFEST - added classes/array.pmc and t/op/pmc_array.t Makefile.in
2508         and classes/Makefile.in - Added array.pmc to the makefile.
2509         (Assuming rules like .pmc.o are portable (or even possible) I might
2510         alter classes/Makefile.in to autobuild the appropriate files.
2512 2002-01-29 02:32  dan
2514         * MANIFEST, Parrot/Test.pm, lib/Parrot/Test.pm,
2515         lib/Test/Builder.pm, lib/Test/More.pm, lib/Test/Simple.pm,
2516         lib/Test/Utils.pm, t/op/interp.t, t/op/macro.t, t/op/pmc.t,
2517         t/op/rx.t, t/op/stacks.t, t/pmc/pmc.t:
2518             Update to Test::More 0.41 which adds Test::Builder
2520             Delete the vestigal Test::Utils
2522             Change Parrot::Test so it uses Test::Builder instead of Evil
2523         Wrappers
2524             around Test::More
2526             output_* now returns whether the test passes or fails
2528             Parrot::Test no longer exports Test::More's functions.  Instead
2529         they
2530             can simply be used together.  The few tests which used
2531         Test::More
2532             features (ie. skip) have 'use Test::More' added.
2534             I ditched the export_to_level() crutch.  Do we expect parrot to
2535         work on
2536             5.004?  (literally 5.004, not 5.004_04)
2538         Courtesy of Michael G Schwern <schwern@pobox.com>
2540 2002-01-28 21:04  dan
2542         * docs/overview.pod:  There is no opcodes.pod; I'm assuming the
2543         pointer should actually be to
2544          parrot_assembly.pod, as the canonical documentation.
2546         Courtesy of Simon Glover <scog@roe.ac.uk>
2548 2002-01-28 20:21  dan
2550         * languages/jako/jakoc, t/op/stacks.t: Toss the last traces of
2551         clone[inps]
2553 2002-01-28 19:18  dan
2555         * core.ops, register.c: clone[insp] is dead
2557 2002-01-28 17:46  grunblatt
2559         * Parrot/Jit/i386Generic.pm, lib/Parrot/Jit/i386Generic.pm,
2560         jit/i386/core.jit: Fix to make the jit work in linux yet again.
2562 2002-01-28 16:45  dan
2564         * MANIFEST, README.OS_X: Added Mac OS X specific readme documenting
2565         the requirement for fink at the moment.
2567 2002-01-28 15:59  simon
2569         * test_main.c:
2570         People might try and run a directory file, with spectacular
2571         results.  We don't want that. No.
2573 2002-01-28 14:58  doughera
2575         * core.ops: Avoid C++-style comments.
2577 2002-01-28 14:16  grunblatt
2579         * jit.c, io/io.c: Changed jit.c to fit the way registers are
2580         accessed.  Readded the pio_(stdin|stdout|stderr) to make builds
2581         work again.
2583 2002-01-28 13:47  doughera
2585         * include/parrot/register.h: Avoid C++-style comment.
2587 2002-01-28 06:03  dan
2589         * MANIFEST, core.ops, interpreter.c, key.c, register.c, trace.c,
2590         Parrot/OpTrans/C.pm, Parrot/OpTrans/CGoto.pm,
2591         lib/Parrot/OpTrans/C.pm, lib/Parrot/OpTrans/CGoto.pm,
2592         docs/parrot_assembly.pod, include/parrot/interpreter.h,
2593         include/parrot/parrot.h, include/parrot/regfuncs.h,
2594         include/parrot/register.h, include/parrot/register_funcs.h,
2595         include/parrot/string.h, include/parrot/string_funcs.h: Registers
2596         are now stored in the interpreter structure itself, rather than
2597         just a pointer to the top of the register structure. Pushes and
2598         pops now involve memcpys, but register access has one fewer
2599         dereference.
2601         Fails four of the register stack tests, though, so not perfect.
2602         Needs fixing, but this is a good place to start.
2604 2002-01-28 04:40  mrjoltcola
2606         * test_main.c: cvs commit missed this. ??
2608 2002-01-28 04:27  mrjoltcola
2610         * examples/assembly/io1.pasm, include/parrot/exceptions.h,
2611         include/parrot/interpreter.h, include/parrot/io.h, io/io.c,
2612         io/io_stdio.c, io/io_unix.c, io/io_win32.c: ParrotIO local to each
2613         interpreter now (at least in theory).  IO handle array added.  Misc
2614         bug fixes in layer handling.  Changed any IO_ constants to PIO_ so
2615         we don't conflict         with system libraries.  Still have broken
2616         stuff in win32 and stdio layer.
2618 2002-01-28 04:01  mrjoltcola
2620         * include/parrot/chartype.h: Typo in chartype.h include guard.
2622 2002-01-28 03:41  mrjoltcola
2624         * t/op/interp.t: Fix flag for interp so we don't get "info"
2625         messages which break tests.
2627 2002-01-28 01:54  dan
2629         * include/parrot/string.h: A few more buffer/string flags
2631 2002-01-27 11:33  nicholas
2633         * chartypes/unicode.c: Cast unsigned argument to int in call to
2634         isdigit to silence gcc warning.
2636 2002-01-26 23:18  grunblatt
2638         * Parrot/Jit/i386Generic.pm, lib/Parrot/Jit/i386Generic.pm: Turn
2639         off that flag.
2641 2002-01-26 23:17  grunblatt
2643         * Parrot/Jit/i386Generic.pm, lib/Parrot/Jit/i386Generic.pm,
2644         jit/i386/core.jit: [no log message]
2646 2002-01-26 22:18  simon
2648         * jit/i386/core.jit:
2649         Jumping to 0x0 is a recipe for segfaults.
2651 2002-01-26 18:35  simon
2653         * t/harness:
2654         Allow user to select which tests to harness
2656         Courtesy of: Nicholas Clark <nick@unfortu.net>
2658 2002-01-26 17:20  grunblatt
2660         * Parrot/Jit/i386-linux.pm, Parrot/Jit/i386Generic.pm,
2661         lib/Parrot/Jit/i386-linux.pm, lib/Parrot/Jit/i386Generic.pm: Patch
2662         to make the jit work in linux again.
2664 2002-01-26 16:52  dan
2666         * Configure.pl, hints/darwin.pl: Add -Wno-shadow, as Darwin's
2667         headers can't cope with this. Darwin-only
2669 2002-01-26 16:04  dan
2671         * include/parrot/parrot.h: Quick note to remind folks that this
2672         isn't the file they're looking for if they're writing extensions or
2673         embedding parrot.
2675         Courtesy of Andy Dougherty <doughera@lafayette.edu>
2677 2002-01-26 00:41  mrjoltcola
2679         * MANIFEST: Oopsy.
2681 2002-01-26 00:37  mrjoltcola
2683         * docs/ParrotFAQ.htm: Parrot FAQ : Created and maintained by Adam
2684         Turoff
2686 2002-01-25 01:31  grunblatt
2688         * jit/alpha/core.jit: There is no neg or fneg.
2690 2002-01-25 01:27  grunblatt
2692         * core.ops, Parrot/Jit/alphaGeneric.pm, Parrot/Jit/i386Generic.pm,
2693         lib/Parrot/Jit/alphaGeneric.pm, lib/Parrot/Jit/i386Generic.pm,
2694         jit/alpha/core.jit, jit/i386/core.jit, t/op/integer.t,
2695         t/op/number.t: Added Parrot_neg.  Erase t.s
2697 2002-01-24 23:26  dan
2699         * interpreter.c: Best make sure unused elements are NULL
2701 2002-01-24 23:24  dan
2703         * interpreter.c: Fix stupid thinko
2705 2002-01-24 18:37  doughera
2707         * Makefile.in: Add a few missing dollar signs in the lifetest
2708         section so that ${exe} and the like get properly interpolated.
2710 2002-01-24 18:15  mrjoltcola
2712         * docs/: .cvsignore, Makefile.in, parrot.pod: Fix pod generation
2713         for io.ops file. Add reference to it in parrot.pod.  Courtesy of
2714         Simon Glover <scog@roe.ac.uk>
2716 2002-01-24 06:43  mrjoltcola
2718         * io/io_stdio.c: Oops.
2720 2002-01-24 06:34  mrjoltcola
2722         * include/parrot/io.h, io/TODO, io/io.c, io/io_stdio.c: Did a bit
2723         of work on the buffering layer.  Decided to use shared read/write
2724         buffer (as do most implementations) for now since its the simplest
2725         way to keep everything synced, (flush on seeks, flush read on
2726         writes, etc.)
2728 2002-01-24 03:38  mrjoltcola
2730         * test_main.c: Cleaned up option handling code a bit for main().
2732 2002-01-23 23:22  dan
2734         * interpreter.c, include/parrot/interpreter.h,
2735         include/parrot/resources.h: Now each interpreter gets its own hash
2736         for globals.
2738 2002-01-23 20:45  dan
2740         * Configure.pl: Fix a warning when there's no - in an architecture
2742 2002-01-22 23:57  grunblatt
2744         * docs/running.pod: [no log message]
2746 2002-01-22 20:29  doughera
2748         * KNOWN_ISSUES: long doubles don't work on SPARC either.  It
2749         appears to be a generic problem (if sizeof(long double) >
2750         sizeof(double)), not an x86-specific one.
2752 2002-01-22 16:57  doughera
2754         * runops_cores.c: Change variable name from time to starttime to
2755         avoid gcc warning about variable name shadowing.
2757 2002-01-22 16:55  doughera
2759         * classes/pmc2c.pl: Include class_init prototype too.
2761 2002-01-22 16:01  doughera
2763         * MANIFEST: [no log message]
2765 2002-01-22 01:04  ajgough
2767         * global_setup.c, classes/default.pmc, classes/intqueue.pmc,
2768         classes/parrotpointer.pmc, classes/perlarray.pmc,
2769         classes/perlhash.pmc, classes/perlint.pmc, classes/perlnum.pmc,
2770         classes/perlstring.pmc, classes/perlundef.pmc, classes/pmc2c.pl,
2771         include/parrot/global_setup.h: Patch from Nick Clark to quieten
2772         warnings from pmc files.  Message-ID:
2773         <20020121224719.GE1726@Bagpuss.unfortu.net>
2775 2002-01-22 00:53  ajgough
2777         * test_main.c: Clears up a couple of warnings in test_main.c.
2778         Thanks to Nick Clark.  Message-ID:
2779         <20020121190457.GB1726@Bagpuss.unfortu.net>
2781 2002-01-22 00:47  ajgough
2783         * string.c, chartypes/unicode.c, chartypes/usascii.c,
2784         include/parrot/chartype.h: Cause all codepoints to be treated as
2785         UNITVALS, and get_digit to return INTVAL, just in case. (Thanks to
2786         Nick Clark, see also: Message-ID:
2787         <20020121214137.GC2371@Bagpuss.unfortu.net> )
2789 2002-01-22 00:24  dan
2791         * key.c: We do mandate an ANSI conformant C compiler, don't we?
2793         Appended patch cures these warnings:
2795         key.c: In function `debug_key': key.c:29: warning: int format,
2796         INTVAL arg (arg 3) key.c:33: warning: int format, INTVAL arg (arg
2797         3) key.c:33: warning: int format, INTVAL arg (arg 4) key.c:36:
2798         warning: int format, INTVAL arg (arg 3) key.c:36: warning: int
2799         format, INTVAL arg (arg 4)
2801         Courtesy of Nicholas Clark <nick@unfortu.net>
2803 2002-01-21 12:41  mrjoltcola
2805         * MANIFEST, io.ops: For some reason cvs commit didn't get this, may
2806         be clock skew.
2808 2002-01-21 06:37  mrjoltcola
2810         * io/io.c: Cleanup a warning
2812 2002-01-21 06:28  mrjoltcola
2814         * examples/assembly/io1.pasm, include/parrot/io.h, io/io.c,
2815         io/io_stdio.c, io/io_unix.c, io/io_win32.c: Added 32/64 bit seek
2816         ops. Various other IO twiddlings.
2818 2002-01-21 03:25  grunblatt
2820         * Makefile.in: Use $jitcpuarch instead of $cpuarch.  Thanks to
2821         Melvin Smith for the catch up.
2823 2002-01-20 23:13  sfink
2825         * stacks.c: Fixed logic errors, need tests
2827 2002-01-20 22:17  brentdax
2829         * rx.c, rx.ops, include/parrot/rx.h, t/op/rx.t: Make /m work and
2830         prepare for /i to work.
2832 2002-01-20 20:52  grunblatt
2834         * Configure.pl, MANIFEST, Makefile.in, interpreter.c, jit.c,
2835         jit2h.pl, Parrot/Jit/alpha-bsd.pm, Parrot/Jit/alpha-linux.pm,
2836         Parrot/Jit/alphaGeneric.pm, Parrot/Jit/i386-bsd.pm,
2837         Parrot/Jit/i386-linux.pm, lib/Parrot/Jit/alpha-bsd.pm,
2838         lib/Parrot/Jit/alpha-linux.pm, lib/Parrot/Jit/alphaGeneric.pm,
2839         lib/Parrot/Jit/i386-bsd.pm, lib/Parrot/Jit/i386-linux.pm,
2840         Parrot/Jit/i386Generic.pm, lib/Parrot/Jit/i386Generic.pm,
2841         include/parrot/jit.h, jit/alpha/core.jit, jit/alpha/lib.jit,
2842         jit/alpha/string.jit:
2843         - Added support for ALPHA, by now linux and bsd.
2845         - Reduced jit2h.pl execution time by precompiling the call to the
2846         unimplemented op.
2848         - Reduced the duplicated code in Parrot/Jit/*.pm by adding
2849         Parrot/Jit/${cpuarch}Generic.pm
2851         - Changed the way to detect quads to what is written in "man
2852         perlfunc".
2854 2002-01-20 17:23  brentdax
2856         * rx.ops: There's no such thing as rx_allocateinfo.
2858 2002-01-19 08:26  brentdax
2860         * pbc2c.pl: Stop this stupid "hard-code the new oplib" stuff.
2862 2002-01-19 07:12  mrjoltcola
2864         * MANIFEST, core.ops, io.ops, pbc2c.pl: Separate pure ParrotIO ops
2865         into io.ops, leave the STDIO wrappers        in core.ops until they
2866         disappear.  Added debug op for switching on VM debug flag
2868 2002-01-19 01:55  mrjoltcola
2870         * include/parrot/io.h, io/TODO, io/io.c, io/io_stdio.c,
2871         io/io_unix.c, io/io_win32.c: Added a few more Win32 layer calls
2873 2002-01-19 00:55  brentdax
2875         * Makefile.in, rx.c, rx.ops, rxstacks.c, include/parrot/rx.h,
2876         include/parrot/rxstacks.h: Add regex-specific stacks for
2877         efficiency.
2879 2002-01-18 23:58  dan
2881         * Configure.pl: I think the optimal fix here is simply to remove
2882         -ansi -pedantic.  -ansi may well have some uses, but even the gcc
2883         man pages say "There is no reason to use this option [-pedantic];
2884         it exists only to satisfy pedants."
2886         Courtesy of Andy Dougherty <doughera@lafayette.edu>
2888 2002-01-18 23:23  dan
2890         * MANIFEST, docs/parrot.pod, docs/running.pod: This patch add
2891         docs/running.pod, which lists the various executables Parrot
2892         currently includes, examples of running them, and mentions of where
2893         they fail to work. It's more of a cry for help than a useful
2894         reference. :-) I've been having trouble recently when making
2895         changes in figuring out whether I broke anything, because any
2896         non-default way of running the system seems to be already broken. I
2897         can't tell what brokenness is expected and what isn't.
2899         Courtesy of  Steve Fink <steve@fink.com>
2901 2002-01-15 22:13  brentdax
2903         * include/parrot/rx.h, rx.c, rx.ops: Remove the last vestiges of
2904         substring use and enhance performance.
2906 2002-01-15 21:03  ajgough
2908         * string.c: Fix problem with string_transcode, &dest not being
2909         updated if src was already in desired encoding.
2911 2002-01-15 16:54  brentdax
2913         * rx.c, rx.ops, include/parrot/rx.h: Hunt down and destroy
2914         warnings.  Leaves only one warning, at rx.ops line 409, that I
2915         can't manage to get rid of.
2917 2002-01-15 16:50  dan
2919         * pbc2c.pl: Pointer arithmetic not quite right in the generated
2920         code.  Also patches pbc2c.pl to work with rx.ops.
2922         Courtesy of Jason Gloudon <perl@gloudon.com>
2924 2002-01-15 16:15  dan
2926         * classes/Makefile.in: All the C files in classes/ weren't being
2927         compiled with an of the gcc warnings flags. With this patch they
2928         are, and there are an awful lot of warnings, more than I could hope
2929         to understand and clear up (within any sensible time period before
2930         submitting a rash of patches, by which time everyone else would
2931         have moved the code on)
2933         Courtesy of Nicholas Clark <nick@unfortu.net>
2935 2002-01-15 16:10  dan
2937         * core.ops, ops2c.pl, Parrot/Op.pm, Parrot/OpTrans.pm,
2938         Parrot/OpsFile.pm, lib/Parrot/Op.pm, lib/Parrot/OpTrans.pm,
2939         lib/Parrot/OpsFile.pm, Parrot/OpTrans/C.pm,
2940         Parrot/OpTrans/CGoto.pm, Parrot/OpTrans/CPrederef.pm,
2941         lib/Parrot/OpTrans/C.pm, lib/Parrot/OpTrans/CGoto.pm,
2942         lib/Parrot/OpTrans/CPrederef.pm, chartypes/unicode.c,
2943         chartypes/usascii.c: This patch adds a few more macros for .ops
2944         files to use. In addition to the existing
2946          goto OFFSET(...)
2947          goto ADDRESS(...)
2948          goto POP()
2949          goto NEXT()
2951         it adds
2953          expr OFFSET(...)
2954          expr ADDRESS(...)
2955          expr POP()
2956          expr NEXT()
2958         This is intended mainly for use in helper functions in .ops files,
2959         but also for ops that need to eg push the address of the next
2960         opcode onto a stack. The only place this currently happens (outside
2961         of my private code) is in the bsr opcode, which previously
2962         hardcoded the computation.
2964         This patch also makes ops2c.pl move the CUR_OPCODE #define a bit
2965         higher in the generated file so that it can be used by static
2966         functions in the preamble.
2968         Finally, I ran into a parentheses matching problem -- should goto
2969         OFFSET(...) rewrite    \bgoto\s+OFFSET\((.*)\) or
2970         \bgoto\s+OFFSET\((.*?)\)
2972         It was done inconsistently for the different calculations, and of
2973         course neither are correct because you really want matching
2974         parentheses. But that seems like too much bother. (Currently,
2975         there's only one place that uses anything other than $n in the
2976         parentheses, and that's the enternative() op.) So I made them all
2977         .*? but emulated recent POD by also allowing (( ... )) (that's two
2978         parenthesis with a space padding the body.)
2980         The generated core_ops.c and core_ops_prederef.c files after this
2981         patch are identical except for the CUR_OPCODE and REL_PC macros
2982         getting moved a little higher, and the bsr in the regular path (not
2983         prederef) uses 'CUR_OPCODE' instead of the hardcoded 'cur_opcode'.
2985         In summary, this is a big wad of meaningless changes for the
2986         current code. But it will make adding some opcodes easier in the
2987         future, and cleans up a small nit in the current bsr.
2989         Courtesy of Steve Fink <steve@fink.com>
2991 2002-01-15 08:48  brentdax
2993         * include/parrot/rx.h: Bitmaps can now include chars >255 (well,
2994         sort of).
2996 2002-01-15 08:45  brentdax
2998         * rx.c, rx.ops: Bitmaps can now include chars >255 (well, sort of).
3000 2002-01-15 05:00  brentdax
3002         * rx.ops: Speed up rx_literal--roughly doubles benchmark
3003         performance.
3005 2002-01-14 20:18  dan
3007         * vtable.tbl, vtable_h.pl: Clean up a zillion warnings
3009         Courtesy of Nicholas Clark <nick@unfortu.net>
3011 2002-01-14 20:03  dan
3013         * Configure.pl, MANIFEST, Makefile.in, core.ops, exceptions.c,
3014         global_setup.c, interpreter.c, key.c, ops2c.pl, register.c,
3015         runops_cores.c, rx.ops, stacks.c, string.c, test_main.c, trace.c,
3016         chartypes/unicode.c, chartypes/usascii.c, classes/default.pmc,
3017         classes/parrotpointer.pmc, classes/perlarray.pmc,
3018         classes/perlhash.pmc, classes/perlint.pmc, classes/perlnum.pmc,
3019         classes/perlstring.pmc, classes/perlundef.pmc,
3020         encodings/singlebyte.c, encodings/utf16.c, encodings/utf32.c,
3021         encodings/utf8.c, include/parrot/exceptions.h, include/parrot/io.h,
3022         include/parrot/parrot.h, include/parrot/rx.h, io/io_stdio.c,
3023         io/io_win32.c, platforms/win32.c, platforms/win32.h, t/op/pmc.t,
3024         t/op/pmc_perlhash.t, t/op/rx.t, t/pmc/perlhash.t, t/pmc/pmc.t: This
3025         patch cleans up most of the MSVC-warnings when using warning level
3026         4 (the highest, one above the default level 3). It turns off two
3027         level-4 warnings for 'unreferenced formal parameter' and 'named
3028         type definition in parentheses', the latter of which was turning up
3029         warnings in MS VC headers.  Level 4 warnings also helped me find a
3030         couple of other lurking bugs in the parrot code.
3032         Replaces the various fprintf/exit combos with calls to
3033         internal_exception, which uses var_args to emulate printf. Various
3034         exception types were added as well. These are probably temporary
3035         until a real exception system arrives.
3037         Fixed some places in the IO code where wrong functions were being
3038         called, or put into the vtable.
3040         Courtesy of "Michel Lambert" <mlambert@legendent.com>
3042 2002-01-14 19:00  dan
3044         * MANIFEST: D'oh! Forgot a file.
3046         Courtesy of Andy Dougherty <doughera@lafayette.edu>
3048 2002-01-14 18:44  brentdax
3050         * rx.c, rx.ops, include/parrot/rx.h: Use bitmaps where it makes
3051         sense (and a few other enhancements to regexes).
3053 2002-01-14 07:07  brentdax
3055         * interpreter.c, runops_cores.c, test_main.c,
3056         include/parrot/interpreter.h: Make profiling a little more useful.
3058 2002-01-13 19:44  dan
3060         * Configure.pl: Turn off unsed things warnings for now
3062 2002-01-13 19:39  dan
3064         * key.c, classes/perlarray.pmc: key.c:   intialize KEY.keys
3066         classes/perlarray.c:  * get_string: is casting
3067         SELF->cache.struct_val to a STRING*,    while all other methods are
3068         using it as a KEY*; don't know    what a perlarray stringifies to,
3069         so replacing with NULL  * get_bool: the default behaviour does not
3070         look right to me
3072         Courtesy of "Mattia Barbon" <mbarbon@dsi.unive.it>
3074 2002-01-13 19:37  dan
3076         * Makefile.in, classes/Makefile.in: Makefile.in:   (Re)add ld_debug
3077         flags to LDFLAGS, so that Configure.pl --debugging   works with
3078         MSVC
3080         classes/Makefile.in   make easier to add pmb2c.pl flags to all
3081         pmc2c calls
3083         Courtesy of "Mattia Barbon" <mbarbon@dsi.unive.it>
3085 2002-01-13 19:36  dan
3087         * io/io_win32.c:   according to my MSVC docs, you should use
3088         _tcslen only after
3089           #including tchar.h
3091         Courtesy of  "Mattia Barbon" <mbarbon@dsi.unive.it>
3093 2002-01-13 19:35  dan
3095         * docs/intro.pod: Doc tweak.
3097         Courtesy of Simon Glover <scog@roe.ac.uk>
3099 2002-01-13 19:34  dan
3101         * t/: op/pmc_perlstring.t, pmc/perlstring.t:  Enclosed test checks
3102         that
3104           if Px, ...
3106          works with PerlString PMCs; these should be false if they are "",
3107         0, or
3108          are undefined, and true in every other case.
3110         Courtesy of Simon Glover <scog@roe.ac.uk>
3112 2002-01-13 19:23  dan
3114         * Configure.pl, config_h.in, core.ops, classes/perlnum.pmc: Change
3115         NUMVAL_FMT to FLOATVAL_FMT.
3117         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3119 2002-01-13 17:45  jgoff
3121         * Makefile.in, global_setup.c, classes/Makefile.in,
3122         classes/intqueue.pmc, include/parrot/pmc.h, t/op/pmc.t,
3123         t/pmc/pmc.t: IntQueue is for an upcoming article on perl.com on
3124         designing your own classes.
3126 2002-01-13 08:47  simon
3128         * interpreter.c, Parrot/OpTrans/CPrederef.pm,
3129         lib/Parrot/OpTrans/CPrederef.pm:
3130         Fix bsr in prederef mode.
3132         Courtesy of: Jason Gloudon <perl@gloudon.com>
3134 2002-01-12 15:33  dan
3136         * interpreter.c, key.c, packfile.c, register.c, resources.c,
3137         string.c, encodings/singlebyte.c, encodings/utf32.c,
3138         include/parrot/parrot.h, io/io.c, io/io_stdio.c, io/io_unix.c:
3139         Silence most of the unused variable warnings.
3141         Courtesy of Nicholas Clark <nick@unfortu.net>
3143 2002-01-12 15:18  dan
3145         * rx.ops: This patch fixes a warning and also changes an 'int' to
3146         an 'INTVAL'.  All tests should pass on Solaris.
3148         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3150 2002-01-12 15:13  dan
3152         * interpreter.c, string.c, test_main.c, classes/parrotpointer.pmc,
3153         examples/assembly/life.pasm, include/parrot/interpreter.h,
3154         include/parrot/io.h, io/io.c, io/io_stdio.c, io/io_unix.c,
3155         io/io_win32.c: More IO work. (Plus some misc twiddles)
3157         Courtesy of Melvin Smith <mrjoltcola@mindspring.com>
3159 2002-01-12 01:14  dan
3161         * include/parrot/string.h: fix a missing name
3163 2002-01-12 00:39  grunblatt
3165         * include/parrot/string.h: Few typos.
3167 2002-01-12 00:16  grunblatt
3169         * jit.c, jit2h.pl, jit/i386/core.jit: Added support for opcodes
3170         that change the program control flow.
3172 2002-01-11 23:53  brentdax
3174         * classes/parrotpointer.pmc: Tell the GC to keep its hands out of a
3175         ParrotPointer's guts.
3177 2002-01-11 23:03  dan
3179         * include/parrot/string.h: flags for the buffers, for GC
3181 2002-01-11 22:31  dan
3183         * include/parrot/pmc.h: PMC flag docs. Those'd be good...
3185 2002-01-11 22:21  dan
3187         * include/parrot/pmc.h: Started with PMC flags
3189 2002-01-11 19:33  dan
3191         * config_h.in, memory.c, resources.c, string.c,
3192         include/parrot/resources.h: Beginnings of a memory allocation/gc
3193         system. Without the GC part.
3195 2002-01-11 18:05  dan
3197         * core.ops: Make sure constant pushes are right on mixed 32/64 bit
3198         systems
3200         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3202 2002-01-11 17:50  dan
3204         * core.ops, pbc2c.pl, Parrot/OpTrans/CGoto.pm,
3205         lib/Parrot/OpTrans/CGoto.pm, include/parrot/interpreter.h: Here is
3206         a patch that makes pbc2c generated code work with the bsr opcode.
3207         It creates a new opcode 'enternative', and uses this to support a
3208         mixed model of interpretation and execution of compiled C code.
3210         Courtesy of Jason Gloudon <perl@gloudon.com>
3212 2002-01-11 17:48  dan
3214         * Makefile.in: Add life as a potential .exe target
3216 2002-01-11 17:30  dan
3218         * include/parrot/resources.h: Start of arena stuff for GC
3220 2002-01-11 05:34  brentdax
3222         * rx.ops: Docs modifications.
3224 2002-01-11 04:19  brentdax
3226         * rx.ops, include/parrot/rx.h: Remove unnecessary evilness from
3227         regular expressions.
3229 2002-01-11 03:44  grunblatt
3231         * jit/i386/core.jit: off by one.
3233 2002-01-11 02:25  dan
3235         * Makefile.in, examples/assembly/life.pasm: Tweak to life benchmark
3237         Courtesy of Steve Fink <steve@fink.com>
3239 2002-01-11 00:32  brentdax
3241         * MANIFEST: Forgot to put parrotpointer.pmc in the MANIFEST.
3243 2002-01-10 23:22  ajgough
3245         * string.c, docs/strings.pod: Removed all the nul termination code,
3246         as this is in general a bad idea.  Note added to docs/strings.pod
3247         to warn people away from assuming termination.
3249 2002-01-10 23:14  dan
3251         * core.ops, interpreter.c, jit.c, rx.c, rx.ops, stacks.c,
3252         testparrotsizes_c.in, include/parrot/interpreter.h,
3253         include/parrot/rx.h, include/parrot/stacks.h: Much nicer stack
3254         implementation
3256         Courtesy of Steve Fink <steve@fink.com>
3258 2002-01-10 22:48  dan
3260         * core.ops: Fix 'basic' test 1 for sizeof(opcode_t) !=
3261         sizeof(INTVAL)
3263         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3265 2002-01-10 22:46  dan
3267         * key.c, classes/perlhash.pmc, t/op/pmc_perlhash.t,
3268         t/pmc/perlhash.t:  Well, actually two bugs.
3270          The first is an off-by-one error in key.c than can cause parrot
3271          to segfault if hash % NUM_BUCKETS happens to be zero.
3273          The other is a bug in the PerlHash init() code that causes new
3274         PerlHash
3275          PMCs to start with the wrong size.
3277          Both fixed below; also tests to prevent them recurring.
3279         Courtesy of Simon Glover <scog@roe.ac.uk>
3281 2002-01-10 22:30  dan
3283         * classes/default.pmc, classes/perlarray.pmc, t/op/pmc_perlarray.t,
3284         t/pmc/perlarray.t:  The enclosed patch allows one to use the if op
3285         with a PerlArray,
3287         Courtesy of Simon Glover <scog@roe.ac.uk>
3289 2002-01-10 21:31  dan
3291         * examples/assembly/life.pasm: Tweaked to be a benchmarkable thing
3293 2002-01-10 20:30  grunblatt
3295         * jit.c, jit2h.pl, Parrot/Jit/i386-bsd.pm,
3296         Parrot/Jit/i386-linux.pm, lib/Parrot/Jit/i386-bsd.pm,
3297         lib/Parrot/Jit/i386-linux.pm, jit/i386/core.jit, jit/i386/lib.jit:
3298         All the op codes that doesn't change the program control flow now
3299         work in the JIT by calling the code generated by the compiler when
3300         the op is not in core.jit TODO:     * Make all the ops that change
3301         the program control flow (and are not on core.jit) work.      *
3302         Remove the dispatch payload.
3304 2002-01-10 17:13  dan
3306         * classes/parrotpointer.pmc: This patch fixes parrotpointer.pmc,
3307         which tries to return 0 from a void function.
3309         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3311 2002-01-10 17:12  dan
3313         * t/op/macro.t: Skip tests, don't comment them out.
3315         Courtesy of Simon Glover <scog@roe.ac.uk>
3317 2002-01-10 17:10  dan
3319         * rx.c: This fixes a couple of nits in rx.c:
3321            1. There's no newline at the end, which makes gcc unhappy.
3322            2. We should use NULL, not 0 or "", for creating null pointers.
3324         Courtesy of Simon Glover <scog@roe.ac.uk>
3326 2002-01-10 17:09  dan
3328         * MANIFEST:  Adds rx.t, removes duplicated rx.c and puts everything
3329         back in
3330          alphabetical order.
3332         Courtesy of Simon Glover <scog@roe.ac.uk>
3334 2002-01-10 16:54  ajgough
3336         * resources.c: Made free_string check that there was a string to
3337         free.  In reponse to a bug spotted by Joshua Nye.
3339 2002-01-09 22:44  dan
3341         * global_setup.c: Forgot the setup
3343 2002-01-09 22:35  dan
3345         * rx.ops: Forgot this one
3347 2002-01-09 22:35  dan
3349         * MANIFEST, Makefile.in, rx.c, string.c, include/parrot/pmc.h,
3350         include/parrot/rx.h, t/op/rx.t: Preliminary regex implementation.
3351         Tests don't work, though.
3353         Courtesy of "Brent Dax" <brentdax@cpan.org>
3355 2002-01-09 21:48  dan
3357         * t/: op/pmc_perlarray.t, pmc/perlarray.t: Whoops, forgot that
3359 2002-01-09 21:22  dan
3361         * classes/Makefile.in, classes/parrotpointer.pmc, Makefile.in:
3362         Generic pointer holder class
3364         Courtesy of "Brent Dax" <brentdax@cpan.org>
3366 2002-01-09 21:19  dan
3368         * MANIFEST, classes/perlarray.pmc, t/op/pmc.t, t/pmc/pmc.t: Array
3369         patches.
3371 2002-01-09 19:54  dan
3373         * io/io_unix.c: Whoops. Forgot one
3375 2002-01-09 19:43  dan
3377         * key.c, classes/perlhash.pmc, t/op/pmc_perlhash.t,
3378         t/pmc/perlhash.t: Fix hash crash bugs
3380         Courtesy of Simon Glover <scog@roe.ac.uk>
3382 2002-01-09 19:13  dan
3384         * memory.c: Signedness whoops.
3386         Courtesy of Simon Glover <scog@roe.ac.uk>
3388 2002-01-09 18:23  dan
3390         * MANIFEST, Makefile.in, include/parrot/io.h, io/io.c, io/io_os.c,
3391         io/io_stdio.c, io/io_win32.c: Changes:
3393         -Minor layer cleanups -Win32 layer added (mostly stubs for now) but
3394         will be using the   Win32 API and company rather than the unix-ish
3395         fake ones.  -stdin/stdout/stderr Win32 specific code added. Rather
3396         than use   0,1,2, Microsoft says use GetStdHandle(), etc. so that
3397         stuff is   there. Soon we should be able to start using these
3398         rather than   fprintf(stderr, ...) and remove stdio linkage.
3400         Courtesy of <mrjoltcola@mindspring.com>
3402 2002-01-09 17:26  dan
3404         * test_main.c: Fixes bad code gen on x86.
3406         Courtesy of Josh Wilmes <josh@hitchhiker.org>
3408 2002-01-09 17:24  dan
3410         * Configure.pl, config_h.in, core.ops, key.c, classes/perlint.pmc,
3411         classes/perlnum.pmc: This patch adds macros to the config.h file
3412         for INTVAL and NUMVAL printf formats.
3414         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3416 2002-01-08 22:55  ajgough
3418         * docs/vtables.pod: Clarify what get_string should do.
3420 2002-01-08 20:05  dan
3422         * key.c: Keep comments in sync.
3424         Courtesy of Simon Glover <scog@roe.ac.uk>
3426 2002-01-08 19:50  dan
3428         * memory.c, include/parrot/memory.h: Need a realloc
3430 2002-01-08 17:24  gregor
3432         * .cvsignore, Configure.pl, Makefile.in:
3433         Added 'reconfig' make target and corresponding --reconfig option to
3434         Configure.pl, so its very easy to re-run Configure.pl with the last
3435         (command-line) options you passed it.
3437 2002-01-08 16:33  dan
3439         * core.ops, make_vtable_ops.pl, Parrot/OpsFile.pm,
3440         lib/Parrot/OpsFile.pm: Add in, out, and inout parameters to teh ops
3441         in core.ops. Potential help for optimizers and JITters.
3443         Courtesy of gregor@linux1.kennedytech.com
3445 2002-01-08 16:32  dan
3447         * key.c: Grab key length from the right spot
3449         Courtesy of "Peter Gibbs" <peter@emkel.co.za>
3451 2002-01-08 13:27  ajgough
3453         * test_main.c: Fix slight thinko in realloc usage for reading from
3454         stdin.
3456 2002-01-08 11:34  ajgough
3458         * test_main.c: Allow test_parrot to read bytecode stream from
3459         stdin, adds -f command line option, with "-f -" doing the stdin
3460         stuff.
3462 2002-01-08 06:34  jgoff
3464         * key.c, include/parrot/key.h: key.c - Added simple implementation
3465         of buckets.  include/parrot/key.h - Added enum_key_bucket type
3467 2002-01-08 03:21  jgoff
3469         * include/parrot/key.h: Added an undef type to the key structure,
3470         so we can delete keys without confusion.
3472 2002-01-07 22:09  dan
3474         * key.c, packfile.c, string.c, include/parrot/key.h,
3475         include/parrot/packfile.h, include/parrot/string.h: Fix whines
3476         about index being redefined
3478         Courtesy of Nick Clark
3480 2002-01-07 21:15  dan
3482         * ops2pm.pl: Don't allow the same ops lib to be included twice.
3484         Courtesy of Steve Fink <steve@fink.com>
3486 2002-01-07 20:48  dan
3488         * Parrot/Test.pm, lib/Parrot/Test.pm: Report useful info for test
3489         failures
3491         Courtesy of "Brent Dax" <brentdax@cpan.org>
3493 2002-01-07 20:43  dan
3495         * docs/intro.pod: Missing a comma
3497         Courtesy of "coral" <coral@eekeek.org>
3499 2002-01-07 20:41  dan
3501         * global_setup.c: Quiet a warning
3503         Courtesy of Simon Glover <scog@roe.ac.uk>
3505 2002-01-07 18:58  gregor
3507         * t/op/.cvsignore:
3508         Ignore intermediate test files.
3510 2002-01-07 17:01  gregor
3512         * ops2c.pl:
3513         Print a warning if an .ops file is mentioned more than once on the
3514         command line.
3516 2002-01-07 16:12  ajgough
3518         * t/: op/pmc_perlhash.t, pmc/perlhash.t: A couple more hash tests,
3519         these shouldn't fail.
3521 2002-01-07 15:15  simon
3523         * t/: op/pmc_perlhash.t, pmc/perlhash.t:
3524         Stop segfaults.
3526 2002-01-07 15:11  simon
3528         * key.c:
3529         Fix zero-termination bug in hash function.
3531 2002-01-07 13:37  ajgough
3533         * MANIFEST, t/op/pmc_perlhash.t, t/pmc/perlhash.t: Added
3534         pmc_perlhash.t, one test currently fails, one passes, yin-yang fun.
3536 2002-01-07 11:53  brentdax
3538         * Configure.pl: Fixes the + thing in prompts, plus adds a synonym
3539         (:add{foo}) and a new deleting thing (:rem{foo})
3541 2002-01-07 11:43  simon
3543         * Configure.pl:
3544         Gobble the + before concatenating.
3546 2002-01-07 03:53  dan
3548         * Makefile.in: Dependency fix for new ops setup.
3550 2002-01-07 03:33  jgoff
3552         * classes/perlarray.pmc: Add negative indices, and fix a small
3553         allocation problem.
3555 2002-01-06 23:54  ajgough
3557         * hints/os2.pl: Makes the hints file take account of ldflags and
3558         ccflags being split.  This hints file is still very specific to
3559         builds with gnu tools, but a proper solution can wait.   Thanks to
3560         Nick Burch.
3562 2002-01-06 22:12  dan
3564         * Makefile.in, ops2c.pl, Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm:
3565             -changes Parrot::OpLib::core's dependencies to reflect the new
3566         selectable ops files    -allows some of the special forms of 'goto'
3567         inside the PREAMBLE of an opcode file
3569         Courtesy of "Brent Dax" <brentdax@cpan.org>
3571 2002-01-06 19:59  simon
3573         * Makefile.in:
3574         *cough*
3576 2002-01-06 18:19  dan
3578         * classes/perlhash.pmc: Fix some type issues.
3580         Courtesy of Josh Wilmes <josh@hitchhiker.org>
3582 2002-01-06 18:03  dan
3584         * Configure.pl, Makefile.in: It adds a prompt to Configure asking
3585         for a list of opcode files to use.  The default is everything
3586         available except for obscure.ops.
3588         In addition, it makes it so that if your answer to a question
3589         starts with '+', it will concatenate it to the default.  For
3590         example:
3592         What C compiler do you want to use? [cl] +HAHAHA!!!
3594         will result in $PConfig{cc} eq "cl HAHAHA!!!".  While that example
3595         is not terribly useful, it is quite useful with things like
3596         command-line flags and the like.
3598         Finally, it contains a couple tweaks so that my syntax-highlighting
3599         editor recognizes some heredocs correctly.  :^)
3601         Courtesy of "Brent Dax" <brentdax@cpan.org>
3603 2002-01-06 17:59  dan
3605         * KNOWN_ISSUES, MANIFEST, README: Doc Patches
3607         Courtesy of "Bryan C. Warnock" <bwarnock@raba.com>
3609 2002-01-06 17:58  dan
3611         * MANIFEST:  We're missing a couple of files from the MANIFEST.
3613         Courtesy of Simon Glover <scog@roe.ac.uk>
3615 2002-01-06 17:57  dan
3617         * ops2c.pl, Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm:   1.
3618         Compiler directives, etc. in files other than core.ops will now
3619         work.   2.  Compiler warnings will now display the file and line
3620         number of the  opcode file.
3622         Courtesy of "Brent Dax" <brentdax@cpan.org>
3624 2002-01-06 17:52  dan
3626         * languages/jako/jakoc: Fix breakage caused by iton/ntoi going away
3628         Courtesy of Simon Glover <scog@roe.ac.uk>
3630 2002-01-06 17:36  dan
3632         * docs/intro.pod: Lots of updates
3634         Courtesy of Simon Glover <scog@roe.ac.uk>
3636 2002-01-06 02:34  gregor
3638         * interpreter.c:
3639         Add some internal documentation on the theory of operation of the
3640         prederef code.
3642 2002-01-06 02:17  gregor
3644         * interpreter.c:
3645         Removed unnecessary include.
3647 2002-01-05 12:37  simon
3649         * classes/.cvsignore:
3650         Ignore generated .h files.
3652         Courtesy of: Josh Wilmes <josh@hitchhiker.org>
3654 2002-01-05 12:37  simon
3656         * Configure.pl:
3657         Make lcc happier by adding a dummy structure.
3659         Courtesy of: Josh Wilmes <josh@hitchhiker.org>
3661 2002-01-05 12:35  simon
3663         * global_setup.c, classes/perlundef.pmc, t/op/pmc.t, t/pmc/pmc.t:
3664         Make perlundef work. (And coincidentally stop segfaults in the
3665         tests :)
3667         Courtesy of: Jason Gloudon <perl@gloudon.com>
3669 2002-01-05 04:59  dan
3671         * t/: op/pmc.t, pmc/pmc.t: Undef tests added.
3673 2002-01-05 04:55  jgoff
3675         * classes/perlhash.pmc: Added perlhash class definition
3677 2002-01-05 04:48  dan
3679         * core.ops: Fix on 64 bit platforms with 32-bit opcode_t
3681         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3683 2002-01-05 03:57  jgoff
3685         * MANIFEST, Makefile.in, core.ops, global_setup.c, key.c,
3686         vtable.tbl, classes/Makefile.in, classes/default.pmc,
3687         include/parrot/key.h, include/parrot/pmc.h, t/op/pmc.t,
3688         t/pmc/pmc.t: Initial hash commit.
3690         core.ops - Adding set({i,n,s},p,s) and set(p,{i,n,s},s) operations.
3691          key.h  - Adding NUM_BUCKETS classes/default.pmc - Adding
3692         set_{integer,number,string}_index_s
3694         This does not yet do collision resolution, but will soon.
3696 2002-01-05 02:54  dan
3698         * interpreter.c: More unsigned fixes
3700         Courtesy of "Bryan C. Warnock" <bwarnock@raba.com>
3702 2002-01-04 22:13  dan
3704         * Configure.pl, hints/mswin32.pl: Makes config's building of the
3705         test programs happier.
3707         Courtesy of "Jason Diamond" <jason@injektilo.org>
3709 2002-01-04 19:00  dan
3711         * Configure.pl, Makefile.in, hints/darwin.pl: Add link flags as
3712         separate things
3714 2002-01-04 18:27  dan
3716         * Configure.pl, Makefile.in, classes/Makefile.in, hints/mswin32.pl:
3717         Fixes to get things configuring and building on Win32 Native.
3719         Courtesy of "Jason Diamond" <jason@injektilo.org>
3721 2002-01-04 17:39  dan
3723         * hints/vms.pl: debug cleanup
3725 2002-01-04 16:53  dan
3727         * docs/parrot.pod:  The enclosed patch brings the list of
3728         documentation in parrot.pod
3729          up to date.
3731         Courtesy of Simon Glover <scog@roe.ac.uk>
3733 2002-01-04 16:47  dan
3735         * test_main.c, Parrot/Jit/i386-linux.pm,
3736         lib/Parrot/Jit/i386-linux.pm: In an attempt to just keep knocking
3737         off warnings..
3739         Courtesy of Kevin Falcone <kevin@jibsheet.com>
3741 2002-01-04 16:44  dan
3743         * Configure.pl, Makefile.in: Fixed linking to use linker.
3745         Courtesy of Josh Wilmes <josh@hitchhiker.org>
3747 2002-01-04 16:39  dan
3749         * io/io_stdio.c: Added CVS tag info
3751 2002-01-04 16:35  dan
3753         * hints/cygwin.pl: Time for this. We need a sane linker, and ld2
3754         isn't it
3756 2002-01-04 16:26  dan
3758         * languages/miniperl/Miniperl/Tokenizer.pm: Quiet a warning in the
3759         Tokenizer test
3761         Courtesy of Jonathan Stowe <gellyfish@gellyfish.com>
3763 2002-01-04 16:17  dan
3765         * chartypes/unicode.c: Silence some warnings.
3767         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3769 2002-01-04 16:09  dan
3771         * classes/: genclass.pl, perlarray.pmc, perlint.pmc, perlnum.pmc,
3772         perlstring.pmc, perlundef.pmc:  - genclass.pl attempts to put $Id$
3773         into generated files
3774            but the $Id$ string gets mangled when it's committed.
3775            This patch fixes the existing .pmc files and fixes genclass.pl.
3777          - Makes capitalization in .pmc header match actual filenames
3779          - The command for calling genclass.pl in vtables.pod is incorrect,
3780            since it assumes you're running in classes/ but genclass.pl
3781         assumes
3782            it's being run from the main directory. I changed genclass.pl to
3783         not
3784            care.
3786         Courtesy of Steve Fink <steve@fink.com>
3788 2002-01-04 03:57  dan
3790         * MANIFEST, io/TODO, io/io_stdio.c: No wonder things worked for
3791         me--I *had* the files:wq!
3793 2002-01-04 03:40  dan
3795         * MANIFEST: Whoops--remove files not really there
3797 2002-01-04 03:37  dan
3799         * interpreter.c, stacks.c, include/parrot/stacks.h: The patch below
3800         my sig adds a new_stack() function to take care of the allocation
3801         and setup of "generic" stacks.
3803         Courtesy of "Brent Dax" <brentdax@cpan.org>
3805 2002-01-04 02:36  dan
3807         * core.ops:  The entry in core.ops for puts(s|sc) is missing a =cut
3808         and so
3809          writes a load of junk in core_ops.pod. Applied patch fixes.
3811         Courtesy of Simon Glover <scog@roe.ac.uk>
3813 2002-01-04 02:35  dan
3815         * classes/: perlint.pmc, perlnum.pmc, perlstring.pmc: The PerlInt
3816         logical-or is using get_integer instead of get_bool for logical
3817         operations. This patch corrects that.
3819         Perlnum and perlstring have working get_bool's, so the default
3820         logical_or and logical_and should be sufficient. The empty methods
3821         are pointed to the default logical_or.
3823         Courtesy of Jason Gloudon <perl@gloudon.com>
3825 2002-01-04 02:31  dan
3827         * Makefile.in: docs/Makefile should be removed by realclean, but
3828         isn't
3830         Courtesy of Kevin Falcone <kevin@jibsheet.com>
3832 2002-01-04 02:29  dan
3834         * classes/: Makefile.in, pmc2c.pl: PMC inheritance! Yay!
3836         Courtesy of Steve Fink <steve@fink.com>
3838 2002-01-04 00:51  dan
3840         * docs/vtables.pod: More docs
3842         Courtesy of Steve Fink <steve@fink.com>
3844 2002-01-04 00:47  dan
3846         * Configure.pl: Updated 64-bit patch
3848         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3850 2002-01-04 00:43  dan
3852         * Configure.pl: 64-bit Fix.
3854         Courtesy of "Bryan C. Warnock" <bwarnock@raba.com>
3856 2002-01-03 22:37  dan
3858         * MANIFEST, Makefile.in, interpreter.c, include/parrot/io.h,
3859         io/io.c, io/io_os.c: Code cleanup, started STDIO layer, started
3860         some buffering work.       Additional work on other layers.
3862         Courtesy of Melvin Smith <mrjoltcola@mindspring.com>
3864 2002-01-03 19:41  gregor
3866         * disassemble.pl, obscure.ops, packfile.c, pbc2c.pl:
3867         Updated copyright messages on top-level files.
3869 2002-01-03 04:23  robert
3871         * make.pl: Add author information.  Bonsai test.
3873 2002-01-03 04:02  dan
3875         * io/io_os.c: Twig Bonsai
3877 2002-01-03 03:45  dan
3879         * io/: io_os.c, io_os.c: Twig Bonsai
3881 2002-01-03 03:41  dan
3883         * io/io_os.c: Twig Bonsai
3885 2002-01-02 21:42  gregor
3887         * packfile.c, include/parrot/packfile.h:
3888         Get rid of warnings in packfile.[hc]
3890 2002-01-02 20:39  gregor
3892         * manicheck.pl:
3893         Bracketed translated patterns with ^ and $.
3895 2002-01-02 20:11  dan
3897         * io/io_os.c: silence a warning
3899 2002-01-02 19:52  grunblatt
3901         * jit.c, jit2h.pl, include/parrot/jit.h: Moved the definition of
3902         op_assembly to jit_struct.h, so that we get the real number of ops.
3903          Removed some warnings.
3905 2002-01-02 19:31  tom
3907         * string.c: Fix string transcoding so that it actually works.
3909         Patch from Peter Gibbs <peter@emkel.co.za>
3911 2002-01-02 19:20  gregor
3913         * manicheck.pl:
3914         A program to check the MANIFEST file, accounting for .cvsignore
3915         files.
3917 2002-01-02 19:19  dan
3919         * t/harness: twig bonsai
3921 2002-01-02 19:13  dan
3923         * t/harness: twig bonsai
3925 2002-01-02 18:54  dan
3927         * t/harness: Tweak to test Bonsai
3929 2002-01-02 16:27  dan
3931         * Configure.pl: Allow 64-bit build of parrot on systems with a
3932         mixed 32/64 bit perl
3934         Courtesy of David M. Lloyd <dmlloyd@tds.net>
3936 2002-01-02 15:33  simon
3938         * MANIFEST, docs/Makefile:
3939         Fixed up MANIFEST. (And I removed the Makefile in docs/)
3941         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
3943 2002-01-02 13:51  simon
3945         * Configure.pl:
3946         Die on broken manifest.
3948 2002-01-02 13:48  simon
3950         * jit2h.pl, examples/assembly/mops.pasm:
3951         Clear up JIT warnings.
3953         Courtesy of: Nick Clark <nick@unfortu.net>
3955 2002-01-02 04:10  dan
3957         * io/io.c, io/io_os.c, t/op/interp.t: IO stack now gets initialized
3958         only once, so new interp creation works again
3960         Courtesy of Melvin Smith <mrjoltcola@mindspring.com>
3962 2002-01-02 03:32  dan
3964         * t/op/interp.t: Stubbed the test out, since it's hanging at the
3965         moment.
3967 2002-01-02 00:55  dan
3969         * MANIFEST, Makefile.in, core.ops, include/parrot/io.h, io/io.c,
3970         io/io_os.c: Initial IO system patches
3972         Courtesy of <mrjoltcola@mindspring.com>
3974 2002-01-01 22:55  ajgough
3976         * classes/default.pmc: On second thoughts, and some prodding, the
3977         set_* methods now only set the appropriate part of the cache, and
3978         do nothing else.
3980 2002-01-01 22:29  ajgough
3982         * classes/default.pmc:  Wrote a whole host of default pmc methods.
3984          set_* create appropriate Perl* result.
3985          get_* simply grabs needed bit of cache.*_val
3987          Other methods do the rightest thing I can think of, at the moment.
3989          None yet cope with overflow, the modulus operation needs to be
3990         checked as
3991         I don't know quite which semantics we really want.
3993         Not tested yet.
3995 2002-01-01 20:23  dan
3997         * docs/Makefile, encodings/singlebyte.c, encodings/utf16.c,
3998         encodings/utf32.c, encodings/utf8.c, include/parrot/encoding.h: Got
3999         rid of unneeded tmp var and eliminated const from encode prototype
4000         since it does make changes to the string.
4002         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4004 2002-01-01 20:11  dan
4006         * Makefile.in: Make clean now tosses pdump.o
4008         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4010 2002-01-01 19:49  dan
4012         * pdump.c, test_main.c: Warnings cleanup
4014         Courtesy of Josh Wilmes <josh@sky.net>
4016 2002-01-01 19:45  dan
4018         * Configure.pl, Makefile.in, docs/.cvsignore, docs/Makefile.in,
4019         hints/mswin32.pl, languages/jako/Makefile.in,
4020         languages/scheme/Makefile.in: Makes cleanup better on non-Unix
4021         platforms
4023         Courtesy of "Jason Diamond" <jason@injektilo.org>
4025 2002-01-01 19:41  dan
4027         * include/parrot/register.h: Clean up some warnings
4029         Courtesy of Josh Wilmes <josh@hitchhiker.org>
4031 2002-01-01 19:10  simon
4033         * pbc2c.pl, Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm:
4034         Hack-around to enable compilation of code using vtable ops.
4036 2002-01-01 18:43  dan
4038         * encodings/: singlebyte.c, utf16.c, utf32.c, utf8.c: Toss <0
4039         checks on unsigned things
4041         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4043 2002-01-01 18:26  dan
4045         * runops_cores.c: More warning silences.
4047         Courtesy of Nicholas Clark <nick@unfortu.net>
4049 2002-01-01 18:25  dan
4051         * trace.c: Shuts up a warning.
4053         Courtesy of Nicholas Clark <nick@unfortu.net>
4055 2002-01-01 18:24  dan
4057         * encodings/singlebyte.c: Clean up some warnings.
4059         Courtesy of Nicholas Clark <nick@unfortu.net>
4061 2002-01-01 18:20  dan
4063         * Configure.pl: Hey, those PPros are really x86 systems! Who'dve
4064         thunk it?
4066         Courtesy of "Bryan C. Warnock" <bwarnock@raba.com>
4068 2002-01-01 18:17  dan
4070         * packfile.c: Warning cleanup
4072         Courtesy of Nicholas Clark <nick@unfortu.net>
4074 2002-01-01 17:53  dan
4076         * string.c: New string size should be based on output encoding's
4077         size, not input encoding's size.
4079         Courtesy of: "Peter Gibbs" <peter@emkel.co.za>
4081 2002-01-01 17:22  dan
4083         * Configure.pl, core.ops, interpreter.c, memory.c, runops_cores.c,
4084         string.c, test_main.c, trace.c, include/parrot/exceptions.h,
4085         include/parrot/interpreter.h, include/parrot/memory.h,
4086         include/parrot/oplib.h, include/parrot/string.h, t/op/string.t:
4087         Warnings fixups.
4089         Courtesy of Chip Turner <cturner@redhat.com>
4091 2002-01-01 17:09  dan
4093         * encodings/singlebyte.c, encodings/utf16.c, encodings/utf32.c,
4094         encodings/utf8.c, include/parrot/encoding.h: Some signed things are
4095         now unsigned, as is proper.
4097         Courtesy of: "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4098         Courtesy of: "Bryan C. Warnock" <bwarnock@raba.com>
4100 2002-01-01 16:59  dan
4102         * include/parrot/trace.h: Useless debugging prototype removed
4104         Courtesy of: "Bryan C. Warnock" <bwarnock@raba.com>
4106 2002-01-01 16:58  dan
4108         * MANIFEST: We forgot a file.
4110         Courtesy of "Bryan C. Warnock" <bwarnock@raba.com>
4112 2002-01-01 03:53  dan
4114         * Configure.pl: Okay, I give. Removed some warnings because the
4115         darned system headers were triggering them. Sloppy, sloppy
4116         coding...
4118 2002-01-01 03:48  dan
4120         * config_h.in: Add in an unsigned INTVAL.
4122         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4124 2002-01-01 03:46  dan
4126         * global_setup.c: Clean up some compiler warnings.
4128         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4130 2002-01-01 03:43  dan
4132         * ops2c.pl, Parrot/OpTrans.pm, Parrot/OpTrans/CPrederef.pm,
4133         lib/Parrot/OpTrans.pm, lib/Parrot/OpTrans/CPrederef.pm,
4134         include/parrot/op.h: Cleaned up some things to make the compiler
4135         happier.
4137         Courtesy of Nicholas Clark <nick@unfortu.net>
4139 2002-01-01 03:14  dan
4141         * Configure.pl: Quad updates.
4143         Courtesy of Nicholas Clark <nick@unfortu.net>
4145 2001-12-31 22:53  dan
4147         * include/parrot/op.h: Typedef had parameters backwards. Threw
4148         core.ops for a big whiny warnings loop.
4150 2001-12-31 22:37  dan
4152         * Makefile.in, resources.c: Tweaks to try and get things to build
4153         in the right order.
4155 2001-12-31 21:58  dan
4157         * Configure.pl: Stupid thinko fix
4159 2001-12-31 21:34  dan
4161         * Configure.pl, hints/mswin32.pl: Tweaks for Win32 builds
4163         Courtesy of: "Jason Diamond" <jason@injektilo.org>
4165 2001-12-31 21:32  dan
4167         * Configure.pl: Fix for non-gcc systems
4169 2001-12-31 20:22  dan
4171         * interpreter.c: Tweak so we can build on non-JIT platforms
4173 2001-12-31 20:11  dan
4175         * Configure.pl: Force the time on some copied files to be 'now' to
4176         make the Win builds much less annoying.
4178         Courtesy of "Jason Diamond" <jason@injektilo.org>
4180 2001-12-31 20:07  dan
4182         * Configure.pl: Nuke all object files in the parrot tree that
4183         matter when configuring.  Shouldn't be necessary with good
4184         dependencies in the makefile, but we don't have those yet.
4186 2001-12-31 20:00  gregor
4188         * chartypes/unicode.c:
4189         Silence unused variable warnings.
4191 2001-12-31 19:40  dan
4193         * Configure.pl: Minor Win32 tweaks. Tossed -Wtraditional, too
4195 2001-12-31 19:37  gregor
4197         * interpreter.c, jit.c, include/parrot/jit.h:
4198         Created a prototype for JIT functions and used it in interpreter.c.
4200 2001-12-31 19:31  dan
4202         * Configure.pl, test_gnuc.c: Better GCC detection (and version
4203         detection) with really cranky warnings if we find we're using it.
4205         Courtesy of: Nicholas Clark <nick@unfortu.net>
4207 2001-12-31 18:01  gregor
4209         * interpreter.c, include/parrot/interpreter.h, include/parrot/op.h:
4211         Fixed a few warnings wrt prototypes, etc.
4213 2001-12-31 17:23  dan
4215         * string.c: Silenced most of the compiler whines
4217 2001-12-31 17:15  gregor
4219         * Configure.pl:
4220         Get the ccname from either ccname or just cc config var.
4222 2001-12-31 17:14  gregor
4224         * Parrot/Op.pm, lib/Parrot/Op.pm:
4225         Another intermediate opbody notation. Could come in handy. Explicit
4226         types.
4228 2001-12-31 17:05  dan
4230         * string.c: Minor warnings update
4232 2001-12-31 17:00  dan
4234         * include/parrot/string.h: Warnings cleanup
4236 2001-12-31 16:00  simon
4238         * encodings/utf8.c, include/parrot/encoding.h:
4239         Remove a couple more.
4241 2001-12-31 15:58  simon
4243         * vtable_h.pl, include/parrot/global_setup.h, include/parrot/jit.h,
4244         include/parrot/op.h:
4245         Rid ourselves of a few warnings.
4247 2001-12-31 15:32  dan
4249         * Configure.pl: Made GCC ever so much pickier.
4251         Switch list courtesy of Jarkko.
4253 2001-12-31 15:22  dan
4255         * string.c: Tightened up initial allocation.
4257         Courtesy of:  "Peter Gibbs" <peter@emkel.co.za>
4259 2001-12-31 06:48  dan
4261         * Configure.pl: Minor Windows tweak
4263 2001-12-31 05:32  dan
4265         * core.ops: Unused temp variable tossed.
4267         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4269 2001-12-31 05:09  grunblatt
4271         * Configure.pl, Makefile.in, interpreter.c: Link jit.o only on
4272         supported plataforms
4274 2001-12-31 03:05  dan
4276         * Configure.pl, Makefile.in, classes/Makefile.in: Added in a
4277         platform-independent quote substitution for the makefiles.
4278         Hopefully this'll make the Win32 builds happier.
4280 2001-12-30 21:08  dan
4282         * string.c, include/parrot/string.h: More string system tweaks.
4284         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4286 2001-12-30 20:45  dan
4288         * core.ops: Some pod cleanup
4290         Courtesy of Josh Wilmes <josh@hitchhiker.org>
4292 2001-12-30 20:22  ajgough
4294         * docs/parrot_assembly.pod: removed ntoi and iton ops from docs, as
4295         we aren't using them right now.  Clarified the workings of set Px,
4296         Py and clone Px, Py.
4298 2001-12-30 20:15  grunblatt
4300         * jit.c, jit2h.pl, jit/i386/core.jit: Removed the warnings in jit.c
4301         Added readjit() to read *.jit files Updated core.jit to the new
4302         set_n_i
4304 2001-12-30 20:14  ajgough
4306         * examples/assembly/mops.pasm: Changed iton/ntoi to set.
4308 2001-12-30 19:52  dan
4310         * packfile.c, pdump.c, register.c, string.c, include/parrot/key.h,
4311         include/parrot/trace.h, platforms/generic.c: Compiler whine
4312         cleanups
4314         Courtesy of Josh Wilmes <josh@hitchhiker.org>
4316 2001-12-30 19:13  dan
4318         * Configure.pl, Makefile.in: Make GCC pickier by default.
4320         Courtesy of: Josh Wilmes <josh@hitchhiker.org>
4322 2001-12-30 18:41  dan
4324         * core.ops, t/op/integer.t, t/op/number.t: Transformed iton and
4325         ntoi opcodes to sets.
4327         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4329 2001-12-30 17:58  gregor
4331         * Makefile.in:
4332         'make' no longer builds the mops test. Use 'make mops' for that. To
4333         run the test, you can do 'make mopstest'.
4335 2001-12-30 17:30  gregor
4337         * Makefile.in:
4338         Fixed one oversight. 'make clean' was removing Parrot/Types.pm. Bad
4339         Gregor.
4341 2001-12-30 17:26  gregor
4343         * .cvsignore, Configure.pl, Makefile.in, VERSION, config_h.in,
4344         core.ops, interpreter.c, make_vtable_ops.pl, obscure.ops, ops2c.pl,
4345         Parrot/BuildUtil.pm, Parrot/OpsFile.pm, lib/Parrot/BuildUtil.pm,
4346         lib/Parrot/OpsFile.pm, include/parrot/oplib.h:
4347         Build enhancements. Originally to support building shared
4348         libraries, but now of broader impact.
4350           * .cvsignore: Ignore the blib/ directory, about which more later.
4352           * Configure.pl:
4354               * Got rid of TAB formatting and lined a few things up.
4356               * Added header comment with CVS Id variable, and a few other
4357                 block header comments.
4359               * Uses new Parrot::BuildUtil module to determine the Parrot
4360                 version.
4362               * Reworded a few messages, added a couple, and wrapped
4363         messages
4364                 to 79 columns.
4366               * Added 2002 to the Copyright statement.
4368               * Added new configure variables: VERSION, MAJOR, MINOR and
4369         PATCH
4371               NOTE: Please see the 'Alas perl5.7.2' comment. 5.7.2 is
4372         greater
4373               than 5.6.0, but the comment implies it isn't.
4375           * Makefile.in:
4377               * Added $(SO), $(A) and $(AR_CRS) defines for library
4378         building.
4380               * Added $(RM_RF) define for removing directory trees
4382               * Grouped generated files into two classes: "sticky" (made by
4383         configure,
4384                 persisting across 'make clean') and 'fluid' (made during
4385         the build
4386                 process, deleted by 'make clean').
4388               * Added header comments.
4390               * Added target for test_prog linked with shared library.
4392               * Added rules to build shared libraries in blib/lib. The
4393         libraries are
4394                 built with trailing version numbers in their file names,
4395         and then
4396                 symbolic links are created for shorter and no version tag
4397         variants.
4399               * Added some missing dependencies
4401               * Added some missing 'make clean' targets.
4403               * Added 'make realclean' target that deletes files created by
4404                 Configure.pl (including Makefile), forcing a re-configure.
4406               * Added a 'status' CVS target.
4408           * VERSION: New file, contains only the version. This version
4409         number is
4410             propagated to a few places, such as the core oplib version
4411         number. This
4412             reduces the amount of coordination that has to happen to get
4413         version
4414             number stuff throughout the tree in sync and updated prior to
4415         cutting
4416             a new release. Feel free to grep for '0.0.3' to see the other
4417         files
4418             that contain the version number (but, do that in a fresh CVS
4419         copy, or
4420             after doing 'make realclean').
4422           * config_h.in: Renamed PARROT_CORE_OPLIB_*_VERSION to
4423         PARROT_*_VERSION,
4424             since the oplib and Parrot itself share a version number now.
4425         Added
4426             PARROT_PATCH_VERSION (the third component) and PARROT_VERSION
4427         (a
4428             string).
4430           * core.ops: Uses new notation "VERSION = PARROT_VERSION" instead
4431         of
4432             specifying the version by hand. Non-core oplibs will set this
4433         to
4434             a quoted dot-string with three natural number components
4435         without
4436             leading zeros.
4438           * interpreter.c: Make use of PARROT_VERSION to simplify some
4439         sprintf()s, and
4440             to get the complete version number in the resulting strings
4441         (including the
4442             new PATCH portion).
4444           * make_vtable_ops.pl: Put the "VERSION = PARROT_VERSION" line int
4445         the
4446             generated file.
4448           * obscure.ops: Use the new "VERSION = PARROT_VERSION" technique.
4450           * ops2c.pl: Account for the PATCH version, too. This affects the
4451         name of the
4452             oplib init function, and the oplib info struct initializer.
4454           * Parrot/BuildUtil.pm: New file for reading in and validating the
4455         contents of
4456             the new VERSION file. Other build utilities could go here in
4457         futuer.
4459           * Parrot/OpsFile.pm:
4461               * Allow three components in version number, and require that
4462         the value
4463                 be in double quotes.
4465               * Allow "VERSION = PARROT_VERSION", substituting the shared
4466         Parrot
4467                 VERSION in that case.
4469           * include/parrot/oplib.h: Add the patch_version member.
4471 2001-12-30 12:16  simon
4473         * MANIFEST, Makefile.in:
4474         More stuff forgotten from MANIFEST.
4476 2001-12-30 12:13  simon
4478         * MANIFEST:
4479         Missing JIT file.
4481 2001-12-30 12:12  simon
4483         * jit2h.pl:
4484         Safety first.
4486 2001-12-30 12:12  simon
4488         * Makefile.in:
4489         Gragh.
4491 2001-12-30 12:04  simon
4493         * Makefile.in, core.ops, packfile.c, pbc2c.pl, string.c,
4494         classes/perlstring.pmc, encodings/singlebyte.c, encodings/utf16.c,
4495         encodings/utf32.c, encodings/utf8.c, include/parrot/encoding.h,
4496         include/parrot/string.h, t/op/string.t:
4497         * Expand the strings test suite to be more complete * Make string
4498         commands more consistent (i.e, now the only string command that
4499         actually changes the original is chopn) * Significantly reduce the
4500         number of memory allocations and eliminate reallocations.
4502         Courtesy of: David Jacobs <jacobsl001@hawaii.rr.com>
4504 2001-12-29 22:12  dan
4506         * interpreter.c, key.c, register.c, stacks.c, string.c,
4507         test_main.c, trace.c: Updates to match the coding standards.
4509         Courtesy of Bryan C. Warnock <bwarnock@raba.com>
4511 2001-12-29 20:42  grunblatt
4513         * jit2h.pl, Parrot/Jit/i386-bsd.pm, Parrot/Jit/i386-linux.pm,
4514         Parrot/Jit/i386-nojit.pm, jit/i386/core.jit, jit/i386/lib.jit,
4515         jit/i386/string.jit, lib/Parrot/Jit/i386-bsd.pm,
4516         lib/Parrot/Jit/i386-linux.pm, lib/Parrot/Jit/i386-nojit.pm: Allow
4517         us to write asm in *.jit files instead of hex.  Courtesy of: Rafael
4518         Kitover <caelum@debian.org>
4520 2001-12-28 21:20  dan
4522         * core.ops: Okay, now print takes a preceding file handle.
4524         I feel so dirty now.
4526 2001-12-28 20:46  dan
4528         * core.ops, t/op/hacks.t: Added in the readline op, as well as
4529         changing the open op to use fopen under the hood.
4531         THESE OPS ARE EVIL! AND TEMPORARY! USE FOR DEBUGGING PURPOSES ONLY!
4533 2001-12-28 18:20  ajgough
4535         * core.ops, make_vtable_ops.pl, string.c, classes/default.pmc,
4536         classes/perlstring.pmc, docs/parrot_assembly.pod, docs/strings.pod,
4537         include/parrot/exceptions.h, include/parrot/string.h,
4538         t/op/pmc_perlstring.t, t/op/string.t, t/pmc/perlstring.t: Added
4539         repeat op, so that "foo" x 10 can be done.  Filled in PerlString
4540         vtables appropriately.  Also tests for same, new pmc_perlstring.t
4541         to hold tests specific to PerlStrings, as the pmc.t file is taking
4542         too long to run and slowing down my thought processes.
4544         Changes to strings.c etc to take string functions.
4546         Some changes to the strings docs, but not yet complete.
4548         Also, PerlString was copying pointers to strings, rather than
4549         strings themselves, so some action-at-a-distance bugs were creeping
4550         in, I think I've fixed this so everything works nicely.
4552 2001-12-28 04:56  gregor
4554         * examples/assembly/pmcmops.pasm:
4555         PMC-using version of mops.pasm.
4557         Courtesy of: Bryan C. Warnock <bwarnock@raba.com>
4559 2001-12-28 04:56  gregor
4561         * examples/assembly/.cvsignore:
4562         Small tinkering. Removed old stuff, etc.
4564 2001-12-28 01:26  gregor
4566         * examples/mops/mops.scheme:
4567         Scheme example. Major GC thrashing on umb-scheme here. Probably due
4568         to the very un-scheme-like implementation.
4570 2001-12-28 01:19  gregor
4572         * examples/mops/mops.c:
4573         Some people's picky compilers don't like us redefineing time(), so
4574         we call it time_n().  :)
4576 2001-12-28 00:28  gregor
4578         * examples/mops/: README, mops.ps:
4579         Added a PostScript example and a README.
4581 2001-12-27 23:57  gregor
4583         * Makefile.in:
4584         Build the C mops translation in examples/mops/mops.c
4586 2001-12-27 23:56  gregor
4588         * examples/mops/: .cvsignore, mops.c, mops.pl, mops.py, mops.rb:
4589         Some translations of mops.pasm into other languages, for inner loop
4590         performance comparisons.
4592 2001-12-27 22:40  gregor
4594         * examples/assembly/mops.pasm:
4595         Fixed erroneous file name in header comment.
4597 2001-12-27 21:18  gregor
4599         * pbc2c.pl:
4600         One-liner to avoid no-op gotos to the next op.
4602 2001-12-27 21:06  gregor
4604         * runops_cores.c:
4605         Fixed -p (profiling). Slow runops core was doing unconditional
4606         tracing, when it should have been checking the flags.
4608 2001-12-27 18:50  ajgough
4610         * core.ops, string.c, chartypes/unicode.c, chartypes/usascii.c,
4611         classes/perlstring.pmc, include/parrot/chartype.h,
4612         include/parrot/string.h, t/op/pmc.t, t/op/string.t, t/pmc/pmc.t:
4613         dded get_digit() to chartypes  * Added string_bool() to strings  *
4614         Added if_s_ic op, to use same  * Added (PerlString)->get_bool stuff
4615         to perlstring.pmc  * Tests for above, also a for couple of other
4616         ops without tests
4618         The unicode chartype has only had placeholders added for get_digit,
4619         string_to_num has been updated to use type->get_digit rather than
4620         the previous ascii-isms.  Some remain, but we need to carefully
4621         define what we mean by a number before we let thousands of code
4622         points act as a minus sign.
4624 2001-12-27 18:32  dan
4626         * classes/: perlint.pmc, perlnum.pmc, perlstring.pmc: Silenced some
4627         compiler warnings.
4629         Courtesy of "David  Jacobs" <jacobsl001@hawaii.rr.com>
4631 2001-12-27 18:23  dan
4633         * t/op/bitwise.t: More tests.
4635         Courtesy of "David Jacobs" <jacobsl001@hawaii.rr.com>
4637 2001-12-27 17:08  gregor
4639         * MANIFEST, Makefile.in, config_h.in, core.ops, interpreter.c,
4640         make_vtable_ops.pl, obscure.ops, ops2c.pl, ops2pm.pl, test_main.c,
4641         trace.c, Parrot/OpsFile.pm, include/parrot/interp_guts.h,
4642         include/parrot/interpreter.h, include/parrot/oplib.h,
4643         lib/Parrot/OpsFile.pm, platforms/generic.c, platforms/generic.h,
4644         platforms/win32.c, platforms/win32.h:
4645         Initial code for dynamic loading of oplibs, applied for now to the
4646         loading of the core_prederef oplib when the -P flag is passed to
4647         test_parrot.
4649           * MANIFEST: Added entry for the new file include/parrot/oplib.h.
4651           * Makefile.in:
4653               * Added libcore_prederef_0_3.so to the shared target.
4654               * Added build rule for libcore_prederef_0_3.so.
4655               * Added dependencies on Parrot/OpsFile.pm and Parrot/Op.pm
4656                 to Parrot/OpLib/core.pm, core_ops.c and
4657                 core_ops_prederef.c.
4659           * config_h.in: Added defines for constants used to locate the
4660             core oplib's init function, and the core_prederef oplib for
4661             dynaloading.
4663           * core.ops: Added a VERSION = 0.3 line near the top. This is now
4664             required by Parrot/OpsFile.pm.
4666           * interpreter.c:
4668               * Added init_prederef() and stop_prederef() functions to load
4669                 and unload the core_prederef oplib when we are in prederef
4670                 mode.
4672                 NOTE: In all likelihood, the prederef stuff has a rapidly
4673                 dwindling time-to-live. The JIT should provide vastly
4674         superior
4675                 performance, and loading an alternate set of core_ops isn't
4676                 the real direction for the dynaloading stuff. Loading
4677                 *additional* ops is. It does provide a handy test case for
4678         the
4679                 general idea for now, though.
4681               * Gets the core copcode table, etc. via the core oplibs oplib
4682                 info pointer, as returned by the core oplib's init
4683         function.
4685           * ops2c.pl
4687               * Make use of the version, major version and minor version
4688                 stuff parsed by Parrot/OpsFile.pm
4690               * The only exported symbol in the generated files is the init
4691                 function now, since that returns an oplib info struct
4692                 pointer, and all the important stuff can be found there.
4694           * ops2pm.pl: Put the oplib version in the generated .pm file.
4696           * test_main.c: Small changes necessitated by changes in the names
4697             of some members of the interpreter struct.
4699           * trace.c: Small changes necessitated by changes in the names
4700             of some members of the interpreter struct.
4702           * Parrot/OpsFile.pm: Require a "VERSION = x.y" line before any
4703             ops are found.
4705           * include/parrot/interp_guts.h: Small changes necessitated by
4706             changes in the names of some members of the interpreter struct.
4708           * include/parrot/interpreter.h: Include the new
4709             include/parrot/oplib.h header. Small changes to the oplib-
4710             related members.
4712           * include/parrot/oplib.h: Define the type of the oplib init
4713             function, and the struct type for the oplib info.
4715           * platforms/*.[hc]: Remove the second argument to Parrot_dlopen()
4716             since not all platforms have it. For those that do, a default
4717             second argument is provided.
4719 2001-12-26 05:12  gregor
4721         * Configure.pl:
4722         Make jitarch calculation not get tripped up by extra components to
4723         archname.
4725 2001-12-24 21:23  gregor
4727         * jit.c, jit2h.pl, Parrot/Jit/i386-bsd.pm,
4728         Parrot/Jit/i386-linux.pm, Parrot/Jit/i386-nojit.pm,
4729         include/parrot/jit.h, jit/i386/core.jit, jit/i386/lib.jit,
4730         jit/i386/string.jit, lib/Parrot/Jit/i386-bsd.pm,
4731         lib/Parrot/Jit/i386-linux.pm, lib/Parrot/Jit/i386-nojit.pm:
4732         Some more JIT work from Daniel Grunblatt.
4734           * Ops added set_s_s, set_s_sc, bsr_i and eq_s_sc but using calls
4735         to C
4736             functions.
4738           * Added JUMP(END) to place the number of bytes to the end of the
4739         current
4740             op.
4742           * The *.jit files syntax changed.
4744           * Added jit/i386/lib.jit to place handly functions as jump that
4745         take as
4746             argument the address where is the opcode number to jump to.
4748           * There is a bug at some point, but I will start writing
4749             jit/i386/string.jit and jit/i386/stacks.jit so that we don't
4750         have use
4751             calls, which make the jit as slow as the interpreter.
4753         Courtesy of: Daniel Grunblatt <daniel@grunblatt.com.ar>
4755 2001-12-24 03:46  dan
4757         * Parrot/OpTrans.pm, Parrot/OpTrans/C.pm, Parrot/OpTrans/CGoto.pm,
4758         Parrot/OpTrans/CPrederef.pm, lib/Parrot/OpTrans.pm,
4759         lib/Parrot/OpTrans/C.pm, lib/Parrot/OpTrans/CGoto.pm,
4760         lib/Parrot/OpTrans/CPrederef.pm: Commented out the use warnings.
4761         Perls before 5.6.0 don't like it.
4763 2001-12-22 16:02  ajgough
4765         * t/op/stacks.t: stopped skipping tests we can run now.  added
4766         clonep tests.
4768 2001-12-21 21:13  gregor
4770         * jit2h.pl, Parrot/Jit/i386-bsd.pm, Parrot/Jit/i386-linux.pm,
4771         Parrot/Jit/i386-nojit.pm, lib/Parrot/Jit/i386-bsd.pm,
4772         lib/Parrot/Jit/i386-linux.pm, lib/Parrot/Jit/i386-nojit.pm:
4773         Fixed some package name goofs.
4775         Thanks to: Andy Dougherty <doughera@mail.lafayette.edu>
4777 2001-12-21 19:32  gregor
4779         * MANIFEST, Makefile.in, core.ops, interpreter.c,
4780         make_vtable_ops.pl, obscure.ops, ops2c-prederef.pl, ops2c.pl,
4781         pbc2c.pl, stacks.c, Parrot/Op.pm, Parrot/OpTrans.pm,
4782         Parrot/Opcode.pm, Parrot/OpsFile.pm, lib/Parrot/Op.pm,
4783         lib/Parrot/OpTrans.pm, lib/Parrot/Opcode.pm, lib/Parrot/OpsFile.pm,
4784         Parrot/OpTrans/C.pm, Parrot/OpTrans/CGoto.pm,
4785         Parrot/OpTrans/CPrederef.pm, docs/intro.pod, include/parrot/op.h,
4786         include/parrot/stacks.h, lib/Parrot/OpTrans/C.pm,
4787         lib/Parrot/OpTrans/CGoto.pm, lib/Parrot/OpTrans/CPrederef.pm:
4788         Changes to syntax of .ops files and refactoring of ops2c*.pl and
4789         pbc2c.pl.
4791           * Removed ops2c-prederef.pl
4793           * (unrelated) Removed vestigial Parrot/Opcode.pm file.
4795           * Added Parrot/OpTrans.pm, Parrot/OpTrans/C.pm (needed for old
4796             functionality of ops2c.pl), Parrot/OpTrans/CPrederef.pm (needed
4797             for old functionality of ops2c-prederef.pl), and
4798             Parrot/OpTrans/CGoto.pm (needed for functionality of pbc2c.pl).
4800             "OpTrans" == "Op Transformation"
4802           * Makefile.in modifications to call "ops2c.pl C" where it used
4803             to be just "ops2c.pl", and "ops2c.pl CPrederef" where it used
4804             to be "ops2c-prederef.pl".
4806           * core.ops and obscure.ops changes to syntax. Semantics are
4807             identical with previous version:
4809               return HALT         -->  HALT()
4810               return AUTO         -->  goto NEXT()
4811               return RETREL(...)  -->  goto OFFSET(...)
4812               return RESTART(*)   -->  restart NEXT()
4814             Also, pop_generic_entry() stuff (local var + 5 lines of code)
4815             for dest-less branch ops replaced with new notation "goto
4816         POP()",
4817             which uses the new pop_dest() function in stacks.c. This also
4818             allowed these ops to become 'inline' ops, since they no longer
4819             have local variables.
4821             The 'ret' op also became simplified to just "goto POP()", and
4822             also became an inline op.
4824           * interpreter.c reflects the change in type name:
4826               prederef_op_func_t   -->  op_func_prederef_t
4828             that occurred in include/parrot/op.h
4830           * make_vtable_ops.pl uses "goto NEXT()" where it used to use
4831             "return AUTO".
4833           * ops2c.pl is now generic. Its first argument is the last
4834             package name component of a subclass of Parrot::OpTrans. These
4835             subclasses all have full names of the form Parrot::OpTrans::*.
4836             An instance of the class is created and later consulted for
4837             various bits of information needed to generate the C code.
4839           * pbc2c.pl now uses an instance of Parrot::OpTrans::CGoto to
4840             contain its transformation rules.
4842           * stacks.c has a new function pop_dest() that pops a destination
4843             off the control stack. include/parrot/stacks.h has the
4844         prototype.
4846           * Parrot/Op.pm now supports the syntax generated by
4847         Parrot::OpsFile
4848             for the "goto POP" case.
4850             Also, the source() method now expects its second argument to be
4851             an object that ISA Parrot::OpTrans. Methods of this object are
4852             called to perform the substitutions.
4854           * Parrot/OpsFile.pm supports the change in notation mentioned
4855             above.
4857           * docs/intro.pod reflects these changes.
4859           * include/parrot/op.h: Renamed type prederef_op_func_t to
4860             op_func_prederef_t because it made the implementation of the
4861             shared ops2c.pl easier.
4863 2001-12-21 13:47  gregor
4865         * Configure.pl, config_h.in, interpreter.c, test_main.c:
4866         Both test_parrot (via test_main.c) and the intepreter itself (via
4867         interpreter.c) use the JIT_CAPABLE config to decide whether to
4868         actually attempt JIT operation, or to complain.
4870 2001-12-20 23:25  gregor
4872         * core.ops, make_vtable_ops.pl, obscure.ops, Parrot/OpsFile.pm,
4873         lib/Parrot/OpsFile.pm, docs/intro.pod, include/parrot/op.h:
4874         Changes to the format of *.ops files. An attempt to provide hints
4875         for future opfunc processing logic that wants to know if an opfunc
4876         is simple enough to JIT (e.g.) inline, or not.
4878         See the POD in Parrot/OpsFile.pm and the updated docs/intro.pod in
4879         addition to The Source in core.ops and Parrot/OpsFile.pm for more
4880         info.
4882 2001-12-20 21:28  gregor
4884         * Configure.pl, jit.c, jit2h.pl, include/parrot/jit.h,
4885         jit/i386/core.jit:
4886         More JIT stuff:
4888           * A fix to Gregor's last Configure.pl update.
4890           * Remove the need for hardcoded "\n" at the end of the "%f"
4891             format for printing floating-point numbers.
4893           * New, improved *.jit syntax for references to registers,
4894             e.g. INT_REG[n].
4896           * Support for C() improved.
4898         Courtesy of: Daniel Grunblatt <daniel@grunblatt.com.ar>
4900 2001-12-20 16:55  dan
4902         * MANIFEST: Added jit.c to the manifest.
4904 2001-12-20 15:24  simon
4906         * jit2h.pl:
4907         Off-by-one error fixed.
4909 2001-12-20 14:18  simon
4911         * jit/i386/core.jit:
4912         Just a noop. It's the only machine code I know.
4914 2001-12-20 13:10  gregor
4916         * Configure.pl, Makefile.in, jit2h.pl:
4917         Attempt to fix Win32 builds.
4919           * No more empty braces in include/parrot/jit_struct.h
4921         Also:
4923           * ${jitarchname} has the *bsd -> bsd substitution on it, but
4924         ${archname}
4925             does not.
4927 2001-12-20 11:56  simon
4929         * Makefile.in:
4930         De-cp
4932 2001-12-20 01:57  gregor
4934         * Configure.pl, MANIFEST, Makefile.in, interpreter.c, jit.c,
4935         jit2h.pl, test_main.c, Parrot/.cvsignore, Parrot/Jit/i386-bsd.pm,
4936         Parrot/Jit/i386-linux.pm, Parrot/Jit/i386-nojit.pm, docs/jit.pod,
4937         include/parrot/.cvsignore, include/parrot/interpreter.h,
4938         include/parrot/jit.h, jit/i386/core.jit, jit/i386/string.jit,
4939         lib/Parrot/Jit/i386-bsd.pm, lib/Parrot/Jit/i386-linux.pm,
4940         lib/Parrot/Jit/i386-nojit.pm:
4941         Initial JIT implementation.
4943           * Enabled with test_parrot -j. 20x speed boosts seen.
4945           * Unsupported archs mapped to i386-nojit. Don't do -j on them.
4947           * More to come.
4949         Courtesy of: Daniel Grunblatt <daniel@grunblatt.com.ar>
4951 2001-12-20 01:53  jgoff
4953         * MANIFEST, core.ops, t/op/key.t: MANIFEST - Removed t/op/key.t
4954         core.ops - Removed key operators, they should be hidden from the
4955         assembler.  t/op/key.t - No need to test the nonexistent key
4956         operators.
4958 2001-12-20 00:13  ajgough
4960         * core.ops, t/op/stacks.t: Added tests for entrytype op, noticed
4961         that asking for type of entry at depth causes segfault as stack is
4962         zero based, fixed cmp in core.ops to reflect this.  Last test is
4963         skipped as we don't do exceptions right yet.
4965 2001-12-19 19:11  ajgough
4967         * t/op/debuginfo.t: Added C<end> ops to debuginfo.t, as thier
4968         non-being was causing Irix "issues".
4970 2001-12-19 03:37  jgoff
4972         * languages/miniperl/Miniperl/t/: 001_tokenizer.t, 003_generator.t,
4973         004_combined.t: Changed tests to make sure they pass with the
4974         addition of the clone operator.
4976 2001-12-18 20:06  gregor
4978         * interpreter.c, include/parrot/interp_guts.h:
4979         Performance improvements to the predereferencing code path
4980         suggested to me over lunch yesterday by my friend John Kennedy.
4981         The goal is to remove the additional test in the inner loop that
4982         was checking for NULL to decide whether or not to call the
4983         prederef() function. Also moved pc & pc_prederef syncing outside
4984         the inner loop.
4986           * Changed the prototype of the prederef() function in
4987             interpreter.c to match that of an opfunc.
4989           * Instead of initializing the prederef void * array with NULL,
4990             we initialize it with pointers to prederef().
4992           * prederef() now returns the prederef_pc passed in, so that
4993             after predereferencing, the same location is executed, but now
4994             with the real code being called.
4996         Thanks to: John Kennedy
4998 2001-12-18 19:59  ajgough
5000         * t/: op/pmc.t, pmc/pmc.t: Added some more num -> string tests
5001         (including some more in the skipped string -> int tests).
5003 2001-12-18 07:06  jgoff
5005         * MANIFEST: Forgot to add classes/perlarray.pmc
5007 2001-12-18 07:05  jgoff
5009         * Makefile.in, core.ops, global_setup.c, vtable.tbl,
5010         classes/Makefile.in, classes/default.pmc, classes/perlarray.pmc,
5011         classes/perlint.pmc, classes/perlnum.pmc, classes/perlstring.pmc,
5012         classes/perlundef.pmc, include/parrot/pmc.h, t/op/pmc.t,
5013         t/pmc/pmc.t: Big update...  Makefile.in - Added
5014         classes/perlarray.pmc core.ops - Added new series of set() ops for
5015         arrays global_setup.c - Initialized perlarray classes/Makefile.in -
5016         Added perlarray.pmc classes/*.pmc - Added
5017         set_{integer,number,string}_index and
5018         get_{integer,number,string}_index include/parrot/pmc.h - Added new
5019         type t/op/pmc.t - Added basic array test
5021         classes/perlarray.pmc - Added
5023 2001-12-17 05:29  jgoff
5025         * languages/miniperl/Miniperl/Generator.pm: Altered miniperl code
5026         generator to use clone operator instead of set Px,Py
5028 2001-12-17 05:25  jgoff
5030         * core.ops, classes/perlint.pmc, classes/perlnum.pmc,
5031         classes/perlstring.pmc, t/op/pmc.t, t/pmc/pmc.t: Added clone
5032         PMC,PMC operator. Uses the clone() vtable entries.
5034 2001-12-17 04:51  jgoff
5036         * MANIFEST: Added miniperl test suite, removed old Miniperl/Test.pm
5037         entry
5039 2001-12-17 04:41  jgoff
5041         * languages/miniperl/Miniperl/Makefile.PL: Now in its proper
5042         directory...
5044 2001-12-17 04:41  jgoff
5046         * languages/miniperl/Makefile.PL: Moved it to the proper directory.
5048 2001-12-17 04:39  jgoff
5050         * languages/miniperl/: Makefile.PL, Miniperl.pm, miniperlc, mpc,
5051         Miniperl/Tokenizer.pm: Makefile.PL to let us run the test suite in
5052         t/
5054 2001-12-17 04:27  jgoff
5056         * languages/miniperl/Miniperl.pm: Latest version of the driver.
5057         Admittedly it's a little thin on true OO, but the algorithms are
5058         the key.
5060 2001-12-17 04:24  jgoff
5062         * languages/miniperl/Miniperl/t/: 001_tokenizer.t, 002_parser.t,
5063         003_generator.t, 004_combined.t: Much more comprehensive test suite
5064         for the codegen et al
5066 2001-12-17 04:22  jgoff
5068         * languages/miniperl/Miniperl/: Generator.pm, Parser.pm,
5069         Tokenizer.pm: Newer codegen, tightened up parser output, added hash
5070         key handling
5072 2001-12-17 04:20  jgoff
5074         * languages/miniperl/Miniperl/Test.pm: The newer test suite is much
5075         more comprehensive.
5077 2001-12-17 04:17  jgoff
5079         * languages/miniperl/foo.mpl: Test file that'll be outdated by
5080         changes to the new compiler
5082 2001-12-17 04:11  jgoff
5084         * languages/miniperl/t/: harness, 001_basic/basic.t: Moving testing
5085         files to Miniperl/
5087 2001-12-16 14:11  simon
5089         * classes/perlint.pmc, examples/assembly/mops_p.pasm, t/op/pmc.t,
5090         t/pmc/pmc.t:
5091         Fix bogus assumption that multiplying an integer by an integer
5092         yields an integer.
5094 2001-12-16 12:48  simon
5096         * make_vtable_ops.pl:
5097         Fixed op exploder.
5099 2001-12-16 12:45  simon
5101         * make_vtable_ops.pl, Parrot/Vtable.pm, lib/Parrot/Vtable.pm:
5102         Expand multimethod vtable ops.
5104 2001-12-16 12:04  simon
5106         * Makefile.in:
5107         Added 'cvsclean' which doesn't zap CVS/* directories.
5109 2001-12-15 01:50  dan
5111         * include/parrot/string.h: Fixed typo in string.h. lagnuage,
5112         indeed!
5114         Thanks to grunblatt fom #parrot for the catch
5116 2001-12-15 01:39  dan
5118         * .cvsignore, Configure.pl, MANIFEST, languages/jako/Makefile.in,
5119         languages/miniperl/.cvsignore, languages/miniperl/Makefile,
5120         languages/miniperl/Makefile.in,
5121         languages/miniperl/Miniperl/Test.pm, languages/scheme/.cvsignore,
5122         languages/scheme/Makefile, languages/scheme/Makefile.in: Build
5123         tweaks.
5125         Courtesy of: Jay McCarthy <jay@kenyamountain.com>
5127 2001-12-14 17:39  dan
5129         * t/op/trans.t: More trans tests.
5131         Courtesy of: Simon Glover <scog@roe.ac.uk>
5133 2001-12-14 07:41  robert
5135         * make.pl: - define MAKE macro - topological sort and subgraph
5136         order - start of timestamp stuff   (still badly broken)
5138 2001-12-14 06:06  jgoff
5140         * optimizer.pl: Hopefully this should do the trick..
5142 2001-12-14 06:04  jgoff
5144         * Parrot/Optimizer.pm, lib/Parrot/Optimizer.pm: Optimizer
5146           optimizer.pl is the stub, Parrot/Optimizer.pm is the driver.
5148           The optimizer performs its work on a file post-macro expansion.
5149           Run it on a .pasm file, preferably with some trivially reducible
5150         operations
5151           like 'add I0,5,-6' or 'mul I0,I1,0'
5153 2001-12-14 05:48  robert
5155         * Makefile.in: case error EXE -> exe
5157 2001-12-14 05:42  robert
5159         * Makefile.in: remove legacy PDISASM macro
5161 2001-12-14 04:01  dan
5163         * classes/Makefile.in, languages/Makefile.in: Makefile tweaks for
5164         better Win building
5166         Courtesy of: Garrett Goebel <garrett@scriptpro.com>
5168 2001-12-13 22:03  dan
5170         * Configure.pl, Makefile.in, Parrot/Test.pm,
5171         languages/scheme/Makefile, languages/scheme/Scheme/Test.pm,
5172         lib/Parrot/Test.pm: Parrot test prog's now a config variable, so we
5173         can change it without having to change the world.
5175 2001-12-13 21:57  dan
5177         * core.ops, interpreter.c, docs/parrot_assembly.pod,
5178         include/parrot/interpreter.h, t/op/debuginfo.t: Added current
5179         file/line/package to interp structure, with ops to get and set
5180         them. Now we can know where we are!
5182 2001-12-13 19:43  dan
5184         * Configure.pl, Makefile.in: Makefile tweaks to hopefully make
5185         WinXP builds work out of the box
5187 2001-12-13 17:05  dan
5189         * Makefile.in, Parrot/Test.pm, lib/Parrot/Test.pm: Change test prog
5190         name again--makes case-insensitive systems much happier.
5192 2001-12-13 16:21  dan
5194         * core.ops, key.c, string.c, test_main.c, trace.c,
5195         classes/Makefile.in, include/parrot/trace.h: Fixes to clean up
5196         compiler warnings
5198         Courtesy of: Josh Wilmes <josh@sky.net>
5200 2001-12-13 13:33  gregor
5202         * languages/jako/Makefile.in:
5203         Improved the method of calling the assembler.
5205 2001-12-13 13:30  gregor
5207         * languages/jako/Makefile.in:
5208         Improve the build process. It now works from the main parrot dir,
5209         and from the languages/jako directory. Now uses the .SUFFIXES
5210         target and generic build rules to reduce clutter in the
5211         Makefile.in.
5213 2001-12-13 13:29  gregor
5215         * languages/jako/.cvsignore:
5216         Ignore the (now generated Makefile), and don't ignore .list files
5217         anymore, since we aren't generating them.
5219 2001-12-13 13:11  gregor
5221         * Configure.pl, MANIFEST, Makefile.in, languages/.cvsignore,
5222         languages/Makefile.in, languages/jako/Makefile,
5223         languages/jako/Makefile.in:
5224         Added a 'languages' target to the top-level Makefile.in, and
5225         modified the jako build procedure to involve Makefile.in -->
5226         Makefile too (done by Configure.pl).
5228         NOTE: languages/jako and language/scheme are built.
5229         languages/miniperl wasn't building right, so it was left off for
5230         now.
5232 2001-12-13 12:15  gregor
5234         * MANIFEST:
5235         Added MAINTAINER file and mandelzoom.jako from languages/jako to
5236         the MANIFEST.
5238 2001-12-13 12:12  gregor
5240         * .cvsignore, MANIFEST, Makefile.in, core.ops, interpreter.c,
5241         ops2c-prederef.pl, ops2c.pl, test_main.c,
5242         include/parrot/interp_guts.h, include/parrot/interpreter.h,
5243         include/parrot/op.h, include/parrot/oplib/.cvsignore:
5244         Welcome to the Just-in-Time Predereferencing Patch!
5246         This patch implements a "predereferencing" mode for parrot. That
5247         means that a lot of the dereferencing you see in DO_OP and in the
5248         opfuncs is done up front (really, JIT) rather than as and each time
5249         we execute each op in the byte code stream.
5251         This works by creating an array of void pointers with the same
5252         number of elements as the byte code array. This array starts out
5253         life zero-initialized.  Each time we go to execute an op, we check
5254         first to see if we have a NULL pointer at *cur_opcode. If so, we
5255         know we haven't done our predereferencing yet (this is the JIT
5256         part), so we call the prederef() function with sufficient args that
5257         it can go look up opfunc pointers and op arg types and put the
5258         opfunc and arg pointers at cur_opcode[0] .. cur_opcode[N - 1],
5259         where N is the number of args (counting the op itself as one arg).
5261         We assume that sizeof(INTVAL) <= sizeof(void *), so we can continue
5262         to have inline INTVAL constants.
5264         I've been getting about a 22% speed increase over vanilla code path
5265         when I compile with -O0. Advantage decreases at -O9 here. I tested
5266         with mops.pbc, and also by temporarily putting the -P flag in
5267         Parrot/Test.pm and running all the tests. So, this code is as
5268         correct as the test suite can detect.
5270         Here's how it plays out in the code:
5272           * New script ops2c-prederef.pl
5274             Copy-paste code reuse from ops2c.pl. Modified to expect the
5275         args to give
5276             a void ** cur_opcode and to return a void **.
5278           * Modified ops2c.pl
5280               * opfuncs are now static. Who needs to call them by name from
5281         outside,
5282                 anyway? They are accessed via the opfunc table.
5284               * Some MACRO stuff to make things work whether we prederef or
5285         not. It
5286                 may be possible to get rid of these some day if other folks
5287         agree
5288                 that we should be using CODE object pointers + offsets as
5289         our PC
5290                 rather than raw pointers to either opcode_t's or (void *)'s
5291                 (depending on prederef mode or no).
5293           * core.ops modified to be usable to build both kinds of opfuncs.
5294         For now,
5295             this means:
5297               * calls to push_generic_entry(... cur_opcode ...) were
5298         changed to
5299                 push_generic_entry(... CUR_OPCODE ...), where CUR_OPCODE is
5300         a
5301                 macro that does the right thing in both kinds of ops.c
5302         files.
5304                 This is applicable to the bsr op. If we treated
5305         destinations as
5306                 (Code PMC + local offset) rather than as
5307         pointer-to-memory-somewhere,
5308                 this wouldn't be a big deal. We may need to do that at some
5309         point
5310                 anyway, so that when you jump around and return not only do
5311         you have
5312                 the right PC (pointer, today), but you also have the
5313         thread/interpreter
5314                 knowing what chunk of bytecode it is in at all times
5315         (assuming we'll
5316                 allow reflection, as in ops that query or affect the
5317         current CODE PMC).
5319               * runinterp was modified. Instead of copying the top-level
5320         PackFile struct
5321                 and blasting its byte_code pointer, we simply call runops
5322         on the new
5323                 interp, passing in the pointer to the current interp's code
5324         and the
5325                 offset into that code at which to start (this last arg used
5326         to be a
5327                 pointer PC, now its an offset PC).
5329           * include/parrot/op.h
5331               * new typedef for prederef opfuncs (they return void **)
5333           * include/parrot/interp_guts.h
5335               * New DO_OP_PREDEREF() macro described above.
5337           * include/parrot/interpreter.h
5339               * New prototype of runops() -- see below.
5341               * resume_addr field changed to resume_flag and resume_offset
5342         pair of fields.
5343                 We might be resuming from interp using prederef to one not
5344         or vice-versa,
5345                 so pointers between the two don't play nice together.
5346         Offsets are beautiful.
5348               * New PARROT_PREDEREF_FLAG constant
5350           * interpreter.c
5352               * include "parrot/oplib/core_ops_prederef.h"
5354               * prederef() function described above.
5356               * runops_prederef() runops variant. Uses DO_OP_PREDEREF()
5357         macro as its core.
5359               * runops() modified to take size_t CODE-relative offset PC
5360         rather than
5361                 pointer PC. This made other things workable and doesn't
5362         seem to have lost
5363                 anything important (IMO).
5365           * test_main.c
5367               * New flag '-P' to enable predereferencing.
5369           * Makefile modified to build core_ops_prederef.c from core.ops
5370         via
5371             ops2c-prederef.pl.
5373             BTW, also added missing $(INC)/interp_guts.h to H_FILES.
5375             Added core_ops_prederef$(O) to O_FILES
5377 2001-12-13 12:12  gregor
5379         * languages/jako/MAINTAINER:
5380         Thought it would be nice to put this right in the code...
5382 2001-12-13 04:36  jgoff
5384         * languages/miniperl/Miniperl/Generator.pm: Commented out
5385         debugging, fixed register spillover algorithm
5387 2001-12-13 04:23  jgoff
5389         * make.pl: Found and fixed obob in the parser (Wasn't parsing last
5390         line) Restructured a bit of the dependency generator to fix a
5391         different obob bug.
5393 2001-12-13 03:43  robert
5395         * MANIFEST, docs/opcodes.pod: remove old docs/opcodes.pod
5397 2001-12-13 03:03  jgoff
5399         * make.pl: Added make.pl
5401 2001-12-13 02:44  jgoff
5403         * languages/miniperl/Miniperl.pm: Nearly-complete 'make'
5404         replacement in perl.  Non-compliant bits - Takes absolutely -NO-
5405         special flags...                     - Dies on undefined macros
5406         such as $(PDISASM) in current make                     - Dies on
5407         recursive macro expansions                       (Doesn't test for
5408         mutual or multipart loops)                     - In general it
5409         seems to be a little less lenient...  Missing bits - File
5410         mod/creation times aren't being looked at              - Actions
5411         aren't being taken              - The few funky variables ($@, $<)
5412         aren't being dealt with Bugs - Line numbers are slipping a bit.
5414 2001-12-13 02:29  jgoff
5416         * languages/miniperl/Miniperl/: Generator.pm, Parser.pm:
5417         Reconstructing files to make the parser flow a little better.
5419 2001-12-13 00:51  dan
5421         * resources.c: Be a bit less wasteful with resources that don't
5422         need to be aligned
5424 2001-12-12 18:22  dan
5426         * Makefile.in: D'oh! Fixed looping makefile bug.
5428         Courtesy of: "Jaen Saul" <jaen@saul.ee>
5430 2001-12-12 16:23  jgoff
5432         * languages/miniperl/t/001_basic/basic1.scheme: Bogus entry
5434 2001-12-12 16:22  jgoff
5436         * MANIFEST: Manifest additions for languages/miniperl
5438 2001-12-12 16:19  jgoff
5440         * languages/miniperl/t/001_basic/: basic.t, basic1.scheme: Basic
5441         tests. These are left over from the Scheme suite and shouldn't be
5442         used yet.
5444 2001-12-12 16:18  jgoff
5446         * languages/miniperl/: Miniperl/Generator.pm, Miniperl/Parser.pm,
5447         Miniperl/Test.pm, Miniperl/Tokenizer.pm, t/harness: Miniperl base
5448         modules. Miniperl/ is where the real work gets done.  t/ is largely
5449         vacant because it isn't ready to survive real tests yet.
5451 2001-12-12 16:17  jgoff
5453         * languages/miniperl/: Makefile, Miniperl.pm, foo.mpl, miniperlc,
5454         mpc: Final go-round, hopefully.
5456         languages/miniperl/Makefile - Used basically to run tests, as there
5457         is nothing                               here that needs to be
5458         dynamically built.  languages/miniperl/Miniperl.pm - Stub module
5459         that calls the real Miniperl/ mods languages/miniperl/foo.mpl -
5460         Sample miniperl file.  languages/miniperl/miniperlc - Miniperl
5461         compiler stub
5463 2001-12-12 16:09  dan
5465         * Configure.pl: Setting a variable with the make command name is
5466         useful.
5468 2001-12-12 15:07  simon
5470         * Makefile.in, languages/jako/Makefile, languages/scheme/Makefile:
5471         Recursive make considered "ow, don't do that".
5473 2001-12-12 14:45  dan
5475         * Makefile.in: Makefile had some non-portable code. (Okay, a lot of
5476         non-portable code) Killing builds on Win32 native. Small patch
5477         applied which hopefully fixes it.
5479 2001-12-12 06:12  ajgough
5481         * classes/Makefile.in: perl is $(PERL), you know it makes sense.
5483 2001-12-12 06:08  ajgough
5485         * Makefile.in: perl is $(PERL).
5487 2001-12-12 06:00  ajgough
5489         * t/op/integer.t: Added tests to integer.t so that all permutations
5490         of arguments are actually called at some point.
5492 2001-12-12 05:18  ajgough
5494         * t/op/time.t: I can't sleep, but I don't see why parrot shouldn't.
5495          Tests for sleep i|ic
5497 2001-12-12 05:09  ajgough
5499         * t/op/stacks.t: Added pushp and popp register stack tests.
5501 2001-12-12 04:51  ajgough
5503         * t/op/stacks.t: Added tests for save and restore, for all register
5504         types.  Let there be Haiku.
5506 2001-12-12 04:27  ajgough
5508         * t/op/basic.t: bsr_i test.  You know you want it.
5510 2001-12-12 02:55  ajgough
5512         * MANIFEST: Added hints/os2.pl to MANIFEST.
5514 2001-12-12 02:52  jgoff
5516         * core.ops, key.c: Final checkin... These are actually the correct
5517         copies.
5519 2001-12-12 02:12  jgoff
5521         * include/parrot/key.h: key.c - Removed a few functions,
5522         generalized set_element_value and element_value         to accept
5523         KEY_PAIRs from core.ops include/parrot/key.h - Modified header.
5524         core.ops - Modified to accept the new return style.
5526         This is a prelude to adding virtual-table methods to allow hashing
5527         &c. Expect at least one or two more redesigns before this settles
5528         down. However, it still passes the original tests.
5530 2001-12-11 13:35  gregor
5532         * runops_cores.c:
5533         Fixed a typo.
5535 2001-12-11 12:03  gregor
5537         * .cvsignore:
5538         Don't ignore test_prog, but do ignore parrot.
5540 2001-12-11 12:03  gregor
5542         * classes/.cvsignore:
5543         Ignore the generated file default.h
5545 2001-12-11 04:07  jgoff
5547         * key.c: Key source
5549 2001-12-11 04:05  jgoff
5551         * include/parrot/key.h, t/op/key.t: Needed header file, new test
5553 2001-12-11 04:00  jgoff
5555         * core.ops: Added new key aggregate operations to core ops.
5557 2001-12-11 04:00  jgoff
5559         * include/parrot/parrot.h: Added key.h to header list
5561 2001-12-11 03:59  jgoff
5563         * MANIFEST: Added key.c, include/parrot/key.h, t/op/key.t
5565 2001-12-11 03:58  jgoff
5567         * Makefile.in: Added implementation of key aggregates.
5569 2001-12-08 23:07  simon
5571         * README:
5572         README good to go.
5574 2001-12-08 23:05  simon
5576         * Configure.pl, Makefile.in, README, Parrot/Test.pm,
5577         docs/intro.pod, languages/jako/Makefile, languages/scheme/Makefile,
5578         languages/scheme/Scheme/Test.pm, lib/Parrot/Test.pm:
5579         test_prog? What is test_prog?
5581 2001-12-08 22:57  simon
5583         * ChangeLog:
5585         Oops, the changelog commit was on *this* machine.
5587 2001-12-08 22:56  simon
5589         * NEWS:
5590         Updates to NEWS and ChangeLog pre-release.
5592 2001-12-08 22:07  simon
5594         * MANIFEST, Makefile.in, classes/Makefile.in, classes/default.pmc,
5595         classes/perlnum.pmc, classes/pmc2c.pl:
5596         Add "default" PMC vtable so you can inherit implied stuff.
5598 2001-12-08 21:24  simon
5600         * Parrot/PackFile.pm, docs/parrot.pod, docs/parrotbyte.pod,
5601         docs/vtables.pod, lib/Parrot/PackFile.pm:
5602         Getting the documentation up to scratch.
5604 2001-12-08 21:21  simon
5606         * classes/pmc2c.pl:
5607         Allow inheriting from default class.
5609 2001-12-07 20:43  gregor
5611         * examples/assembly/queens.pasm:
5612         Regenerated the file with the latest jakoc.
5614 2001-12-07 20:29  simon
5616         * core.ops, t/op/stacks.t:
5617         Rename "rotate" to "rotate_up".
5619 2001-12-07 20:15  simon
5621         * t/op/stacks.t:
5622         Some tests for rotate.
5624 2001-12-07 00:55  gregor
5626         * core.ops:
5627         Cast the result of the pointer arithmetic, since without the cast
5628         there are warnings with some compilers, and without the parens
5629         around the pointer arithmetic, precedence breaks the meaning and
5630         causes crashes.
5632 2001-12-06 23:37  simon
5634         * core.ops:
5635         Temporary. I prefer compiler warnings to segfaults, thanks.
5637 2001-12-06 23:34  simon
5639         * runops_cores.c:
5640         Make "trace" work again.
5642 2001-12-06 21:23  dan
5644         * Parrot/Test.pm, lib/Parrot/Test.pm: Undo twiddles to test.pm
5646 2001-12-06 21:22  dan
5648         * core.ops, packfile.c, Parrot/Test.pm, include/parrot/stacks.h,
5649         lib/Parrot/Test.pm: Fix up source issues that made Dec C unhappy
5651 2001-12-06 19:22  simon
5653         * core.ops:
5654         Yet another "How the *%$! did that compile?" moment.
5656 2001-12-06 18:28  dan
5658         * hints/vms.pl: Fix to build, with a HERE logical required
5660 2001-12-06 17:48  dan
5662         * core.ops, interpreter.c, pbc2c.pl, pdump.c, test_main.c,
5663         docs/parrot_assembly.pod, include/parrot/interpreter.h: Sensible
5664         changes to the interpreter--flags are now part of the interp
5665         structure.
5667         Courtesy of "Melvin Smith" <mrjoltcola@mindspring.com>
5669 2001-12-06 14:02  gregor
5671         * docs/intro.pod:
5672         s/little_languages/languages/ in Jako section.
5674 2001-12-06 13:15  simon
5676         * Makefile.in:
5677         Ensure the documentation gets made.
5679 2001-12-06 13:12  simon
5681         * MANIFEST, docs/intro.pod:
5682         Documentation! Added the "Some Assembly Required" article with
5683         minor updates.
5685 2001-12-06 00:39  simon
5687         * core.ops:
5688         More "eq" support.
5690         Courtesy of: Nguon Hao Ching <hao@netaxs.com>
5692 2001-12-06 00:37  simon
5694         * test_main.c:
5695         Add the "-d" debug flag. Doesn't actually *do* anything yet.
5697         Courtesy of: Melvin <mrjoltcola@mindspring.com>
5699 2001-12-06 00:11  tom
5701         * string.c, chartypes/unicode.c, chartypes/usascii.c,
5702         encodings/singlebyte.c, encodings/utf16.c, encodings/utf8.c,
5703         include/parrot/chartype.h, include/parrot/encoding.h,
5704         include/parrot/parrot.h: Moved string to number conversion code out
5705         of the encoding layer and into the main string layer as neither the
5706         encoding layer nor the character type layer knows enough on it's
5707         own to do the conversion correctly.
5709 2001-12-05 23:12  tom
5711         * Makefile.in: Rebuild the classes directory if any of the object
5712         files for the classes are missing rather than only when perlint.o
5713         is missing.
5715 2001-12-05 19:43  gregor
5717         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm:
5718           * Reworked the constantize_string() stuff a little bit because it
5719         was
5720             puking on things like "\033[H\033[2J\0" (which occurs in the
5721             languages/jako/mandelzoom.jako example).
5723 2001-12-05 19:39  gregor
5725         * languages/jako/: Makefile, mandelzoom.jako:
5726         Added 'mandelzoom' example.
5728 2001-12-05 19:38  gregor
5730         * languages/jako/jakoc:
5731           * Added sleep()
5733           * Changed some instances of die() to confess()
5735 2001-12-05 18:34  gregor
5737         * t/: op/pmc.t, pmc/pmc.t:
5738         s/sting->int/string->int/
5740 2001-12-05 18:08  gregor
5742         * Parrot/.cvsignore:
5743         Ignore PMC.pm
5745 2001-12-05 18:05  gregor
5747         * classes/.cvsignore:
5748         Ignore the generated files.
5750 2001-12-05 17:19  gregor
5752         * pbc2c.pl:
5753           * Reverted recent changes, since they broke the script. Real fix
5754         coming
5755             later.
5757 2001-12-05 17:03  simon
5759         * classes/Makefile.in:
5760         Remember: change Makefile.in, not Makefile. D'oh.
5762 2001-12-05 17:02  simon
5764         * Makefile.in:
5765         Ensure PMC.pm gets remade.
5767 2001-12-05 16:58  simon
5769         * MANIFEST, Makefile.in, classes/Makefile.in,
5770         classes/perlundef.pmc, include/parrot/pmc.h:
5771         Add perlundef class.
5773 2001-12-05 16:45  simon
5775         * core.ops:
5776         Document "new P0, foo"
5778 2001-12-05 16:43  simon
5780         * MANIFEST, Makefile.in, pbc2c.pl, pmc_pm.pl, Parrot/Assembler.pm,
5781         lib/Parrot/Assembler.pm, t/op/pmc.t, t/pmc/pmc.t:
5782         Allow assembler to know about PMC class names.
5784 2001-12-04 13:39  ajgough
5786         * MANIFEST: Added t/op/pmc.t to MANIFEST.
5788 2001-12-04 05:02  ajgough
5790         * classes/perlnum.pmc: Picky compiler pointed out probable thinko
5791         in perlnum.c
5793 2001-12-04 04:24  ajgough
5795         * encodings/singlebyte.c, t/op/pmc.t, t/pmc/pmc.t: A much less
5796         broken form of strtod and appropriate tests.  Does not yet check
5797         for overflow.
5799 2001-12-04 01:31  ajgough
5801         * string.c, encodings/singlebyte.c, encodings/utf16.c,
5802         encodings/utf8.c, include/parrot/encoding.h: Added length parameter
5803         to extract_num and extract_int string vtables, without this it
5804         would be impossible to have strings with nulls in while still
5805         knowing where they ended.
5807 2001-12-03 18:40  ajgough
5809         * string.c, classes/perlstring.pmc, encodings/singlebyte.c,
5810         encodings/utf16.c, encodings/utf8.c, include/parrot/encoding.h,
5811         include/parrot/string.h: Moved pmc string to number conversion into
5812         the string encoding tables.
5814 2001-12-03 00:21  ajgough
5816         * core.ops, t/op/pmc.t, t/pmc/pmc.t: Added set i, p and some tests
5817         for p-> integer.
5819 2001-12-02 23:09  jgoff
5821         * classes/Makefile.in: Removed some redundant targets.
5823 2001-12-02 19:02  ajgough
5825         * t/: op/pmc.t, pmc/pmc.t: Modified all pmc tests to make use of fp
5826         equality macro rather than using perl to generate expected output,
5827         all tests now have <<OUTPUT.
5829 2001-12-02 17:44  ajgough
5831         * t/op/trans.t: Upgraded fp_eq and fp_ne macros to be more useful
5832         for pmc.t as well.  Will probably move macros into another file at
5833         some point, although this might be best left until the tests are
5834         unperled.
5836 2001-12-02 06:16  jgoff
5838         * classes/pmc2c.pl: It wasn't properly setting the vtable index
5839         within Parrot_Perl{Class}_init.
5841 2001-12-02 06:09  jgoff
5843         * classes/Makefile.in: I seem to have removed *$(O) twice..
5845 2001-12-02 05:06  jgoff
5847         * Configure.pl, MANIFEST, Makefile.in: (Hopefully the last time...)
5848         Configure.pl - Removed '-I./include', added classes/Makefile
5849         generation MANIFEST     - Added classes/Makefile.in Makefile.in  -
5850         Removed old classes/* make stuff                Added target for
5851         classes/Makefile
5853 2001-12-02 04:48  jgoff
5855         * classes/Makefile.in: Going to be used shortly...
5857 2001-12-02 04:40  jgoff
5859         * docs/Makefile: Configure.pl - Added automatic makefile creation
5860         for docs/ and classes/                Removed '-I./include' because
5861         it was getting incorrectly                passed to classes/
5862         MANIFEST - added docs/Makefile.in, classes/Makefile.in Makefile.in
5863         - Removed classes/ build stuff, replaced with classes/Makefile.in
5864                     Added '-I./include' locally docs/Makefile - Should no
5865         longer be used, but I'm not brave enough to do a
5866         cvs delete.
5868 2001-12-02 01:21  ajgough
5870         * t/op/trans.t: Refactored trans math tests to have hard coded
5871         expected return values and be more ready to be unperled at some
5872         point in the future.  Added $fp_equality_macro which is a
5873         "nearly-equal-to" function.
5875 2001-12-02 01:18  ajgough
5877         * Makefile.in: Humph.  People really ought to use Makefile
5878         variables, s/perl/$(PERL)/ throughout.
5880 2001-12-01 18:15  jgoff
5882         * classes/: perlint.pmc, perlnum.pmc: Temporary patch until we
5883         figure out what to do vis-a-vis the lack of snprintf.
5885 2001-11-30 13:14  ajgough
5887         * t/op/: integer.t, number.t: Added tests for abs ops to number.t
5888         and integer.t
5890 2001-11-30 13:14  ajgough
5892         * core.ops: Added abs(i|n, i|ic|n|nc) ops to core.ops, using if <0
5893         -, else ... form.
5895 2001-11-30 10:36  simon
5897         * core.ops:
5898         Rewrite print_p to do the right thing.
5900 2001-11-30 06:21  jgoff
5902         * t/: op/pmc.t, pmc/pmc.t: New tests for integer/number/string
5903         concat,               integer/number/string math
5905 2001-11-30 06:20  jgoff
5907         * classes/: perlint.pmc, perlnum.pmc, perlstring.pmc:
5908         classes/perlint.pmc - Fixes and expanding for concat and math with
5909         strings classes/perlnum.pmc - Fixes and expanding for concat and
5910         math with strings classes/perlstring.pmc - Fixes and expanding for
5911         concat and math with strings
5913 2001-11-29 15:21  ajgough
5915         * hints/os2.pl: This is a hints file for os/2, I've set $c{perl} as
5916         $^X lies, which confused bash which make uses to run things when
5917         doing its stuff.
5919 2001-11-29 04:58  jgoff
5921         * classes/perlstring.pmc: Removed C++-style comments for good
5922         measure
5924 2001-11-29 04:51  jgoff
5926         * t/: op/pmc.t, pmc/pmc.t: New tests for PMC integers
5928 2001-11-29 04:28  jgoff
5930         * global_setup.c: Initialize PMC strings
5932 2001-11-29 04:25  jgoff
5934         * core.ops: Added set_p_s and set_p_sc, modified print_p to handle
5935         string PMCs.
5937 2001-11-29 04:24  jgoff
5939         * classes/: perlint.pmc, perlnum.pmc, perlstring.pmc: Changed PMC
5940         files to properly upgrade int to num, do calculations.  Also added
5941         basic string operations. Currently errors out on anything but set
5942         operations, but this will be fixed soon.
5944 2001-11-29 04:22  jgoff
5946         * Makefile.in: PMC .c files weren't getting cleaned out.
5948 2001-11-28 17:00  simon
5950         * t/harness:
5952         Make csh-glob happy.
5954         Courtesy of: Andy Dougherty: <doughera@lafayette.edu>
5956 2001-11-28 16:40  simon
5958         * classes/perlnum.pmc:
5960         De-C++
5962 2001-11-28 15:22  simon
5964         * string.c:
5966         Fixes Alex's string concat worry.
5968 2001-11-28 14:27  ajgough
5970         * t/op/string.t: test "null onto null" incorrectly passing as it
5971         produced no output.  Output provided.
5973 2001-11-28 11:14  simon
5975         * include/parrot/pmc.h:
5977         Placate AIX.
5979 2001-11-26 21:03  dan
5981         * MANIFEST, hints/darwin.pl: Tweaks to build on Mac OS X 10.1
5983 2001-11-26 17:29  simon
5985         * classes/perlint.pmc:
5987         Various subtle but non-showstopper bugs.
5989 2001-11-26 11:23  simon
5991         * classes/pmc2c.pl:
5993         Replace dependency on Text::Balanced
5995         Courtesy of: Bart Lateur <bart.lateur@pandora.be>
5997 2001-11-26 05:22  jgoff
5999         * global_setup.c: Last file that should need to be committed. I
6000         swear.
6002 2001-11-26 05:09  jgoff
6004         * core.ops: Let's try this again... Changes to core.ops required
6006 2001-11-26 04:58  jgoff
6008         * classes/perlint.pmc, classes/perlnum.pmc, t/op/pmc.t,
6009         t/pmc/pmc.t: Makefile.in - Added missing cleanup line for perl*.c
6010         core.ops - Added set(p,n|nc), modified print(p) global_setup.c -
6011         Uncommented PerlNum_init classes/perlint.pmc - Added set_number
6012         functions classes/perlnum.pmc - Set up basic number functions
6013         t/op/pmc.t - Added tests for set P0.<number> and {add,mul,sub,div}
6014         tests against numbers and numbers+integers
6016 2001-11-25 13:18  simon
6018         * Makefile.in:
6019         Windows XP make doesn't like $<
6021 2001-11-25 12:56  simon
6023         * MANIFEST, Makefile.in, classes/genclass.pl, classes/perlint.c,
6024         classes/perlint.pmc, classes/perlnum.c, classes/perlnum.pmc,
6025         classes/perlstring.c, classes/perlstring.pmc, classes/pmc2c.pl,
6026         examples/assembly/mops_p.pasm:
6027         PMC preprocessor.
6029         Courtesy of: Angel Faus <afaus@corp.vlex.com>
6031         I (Simon) also added a couple more integer methods, but no tests
6032         since I'm a Bad Person.
6034 2001-11-25 08:40  brentdax
6036         * ops2c.pl, Parrot/Op.pm, Parrot/OpsFile.pm, lib/Parrot/Op.pm,
6037         lib/Parrot/OpsFile.pm: Allow _ in op names
6039 2001-11-25 05:54  jgoff
6041         * classes/perlint.c, t/op/pmc.t, t/pmc/pmc.t: classes/perlint.c -
6042         Added basic math ops t/op/pmc.t - Added tests of basic math ops
6044 2001-11-23 18:27  simon
6046         * core.ops, classes/perlint.c, examples/assembly/mops_p.pasm:
6047         Add everything you need to make MOPS use PMCs.
6049 2001-11-23 18:06  simon
6051         * core.ops:
6052         Eh, you'll need this for rewriting mops.pasm.
6054 2001-11-23 17:55  simon
6056         * core.ops, classes/perlint.c, include/parrot/pmc.h, t/op/pmc.t,
6057         t/pmc/pmc.t:
6058         More work on integer PMCs.
6060 2001-11-23 17:29  simon
6062         * Makefile.in:
6063         Surprise! Whitespace! HLAGHLAGHLAGH
6065 2001-11-23 17:28  simon
6067         * Makefile.in, ops2c.pl, ops2pm.pl:
6068         Add vtables.ops to the core
6070         Courtesy of: Jeff Goff <jgoff@speakeasy.net>
6072 2001-11-22 18:39  simon
6074         * core.ops, global_setup.c, docs/parrot_assembly.pod, t/op/pmc.t,
6075         t/pmc/pmc.t:
6076         We can now create PMCs.
6078 2001-11-21 05:49  jgoff
6080         * Makefile.in: Makefile cleans up *.pasm *.pbc *.out
6082 2001-11-20 16:00  simon
6084         * docs/vtables.pod, include/parrot/pmc.h:
6085         Reorder PMC flags so there's a fixed number of user-defined flags.
6087         Courtesy of: Dave Mitchell <davem@fdgroup.co.uk>
6089 2001-11-19 03:39  jgoff
6091         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm, t/op/basic.t:
6092         Parrot/Assembler.pm - Allow "print 'foo'", and properly escape
6093         nested quotes.  t/op/basic.t - Add tests for single-quoted strings,
6094         escaped quotes, and proper                handling of newlines.
6096 2001-11-16 22:03  simon
6098         * classes/perlint.c:
6099         More work on the Perl Integer class. More needed, though.
6101 2001-11-16 21:57  simon
6103         * pmc.c, vtable.tbl, classes/genclass.pl, classes/perlint.c:
6104         Rename ->new to ->init, and rework pmc.c:pmc_new to fiddle it.
6106 2001-11-16 20:49  simon
6108         * interpreter.c, runops_cores.c, trace.c,
6109         include/parrot/runops_cores.h:
6110         Kill superfluous runops cores.
6112 2001-11-16 17:50  simon
6114         * MANIFEST, Makefile.in, classes/intclass.c, classes/perlint.c,
6115         classes/perlnum.c, classes/perlstring.c, classes/scalarclass.c,
6116         include/parrot/parrot.h, include/parrot/pmc.h:
6117         Skeleton for Perl scalar types, done right.
6119 2001-11-16 16:15  simon
6121         * classes/genclass.pl:
6122         This tidies up genclass to deal with the new-style multimethods.
6124 2001-11-16 15:29  simon
6126         * Makefile.in, make_vtable_ops.pl, vtable.tbl, Parrot/Vtable.pm,
6127         lib/Parrot/Vtable.pm, include/parrot/parrot.h:
6128         Rework multimethods to be *true* multimethods - that is, have
6129         different types.
6131 2001-11-15 22:29  simon
6133         * MANIFEST, Makefile.in, pmc.c:
6134         pmc.c linkage and support. Oh, and making it compile.
6136 2001-11-15 22:26  dan
6138         * t/op/interp.t: Forgot to tell CVS about the test...
6140 2001-11-15 22:10  dan
6142         * MANIFEST, Types_pm.in, core.ops, vtable_h.pl,
6143         docs/parrot_assembly.pod, include/parrot/string.h: Added in support
6144         for PMC registers for the interpreter.
6146         Added in the docs for the runinterp opcode.
6148         Added in code for both the newinterp and runinterp opcodes, so we
6149         can now create new interpreters from within parrot and have them do
6150         things. (Though we can't pass data back and forth. Yet)
6152 2001-11-15 21:24  simon
6154         * vtable.tbl, classes/scalarclass.c, docs/vtables.pod:
6155         More documentation, and other changes as discussed with Dan.
6157 2001-11-15 19:51  simon
6159         * classes/scalarclass.c:
6160         De-cut-and-pasto.
6162 2001-11-15 19:50  simon
6164         * classes/scalarclass.c:
6165         A little code tidiness.
6167 2001-11-15 19:33  simon
6169         * include/parrot/pmc.h:
6170         Missed this in the previous commit - un-constantize the base for
6171         user-defined PMC flags.
6173 2001-11-15 19:28  simon
6175         * classes/scalarclass.c:
6176         Hey look, sanity.
6178 2001-11-15 17:09  simon
6180         * classes/scalarclass.c:
6181         It seems I have completely forgotten how to write C.
6183 2001-11-15 16:53  simon
6185         * docs/vtables.pod:
6186         Start of the PMC classes documentation.
6188 2001-11-15 14:46  simon
6190         * classes/scalarclass.c:
6191         Changing to use a Perl-style struct instead of the union cache.
6193 2001-11-13 23:56  tom
6195         * string.c: Removed leading _ from string_index as function names
6196         starting with _ are reserved to implementors by the C standard.
6198         Also fixed string_index to use the encoding routines instead of
6199         assuming a single byte encoding.
6201 2001-11-13 12:59  jgoff
6203         * string.c: Patched string_concat to accept null strings.  That
6204         test was failing. Nothing to do with ord().
6206 2001-11-13 12:43  jgoff
6208         * string.c: string_ord function, string_concat fixes
6210 2001-11-13 04:52  jgoff
6212         * core.ops: Added ord to core.ops
6214 2001-11-13 04:35  jgoff
6216         * docs/strings.pod, include/parrot/exceptions.h,
6217         include/parrot/string.h, t/op/string.t: core.ops - Added ord
6218         operator, documentation string.c - Added string_ord, _string_index
6219         (_string_index is a static helper)              Patched
6220         string_concat to handle null strings properly.  docs/strings.pod -
6221         Description of string_ord include/parrot/exceptions.h - Added
6222         ORD_OUT_OF_STRING exception include/parrot/string.h - Added
6223         string_ord() t/op/string.t - Added full set of test for
6224         ord_i_(s|sc)(_(i|ic))?
6226         string.c contains a bit of documentation explaining the logic
6227         behind _string_index, primarily having to do with multiple encoding
6228         formats.
6230 2001-11-12 22:30  simon
6232         * t/op/macro.t:
6233         Count 'em.
6235 2001-11-12 22:28  simon
6237         * Makefile.in:
6238         Add a rule to compile "platform"
6240 2001-11-12 22:26  simon
6242         * Makefile.in:
6243         Tidy up distclean target.
6245 2001-11-12 16:54  dan
6247         * MANIFEST, Parrot/Assembler.pm, lib/Parrot/Assembler.pm,
6248         t/op/macro.t: Fixes to the assembler's macro facility and a test
6250         Courtesy of: Jeff <jgoff@speakeasy.net>
6252 2001-11-12 16:50  dan
6254         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm: Allow input from
6255         stdin
6257         Courtesy of: Jeff <jgoff@speakeasy.net>
6259 2001-11-12 16:36  dan
6261         * Parrot/Test.pm, lib/Parrot/Test.pm: Fix to make test work on
6262         CygWin
6264         Courtesy of: Alex Gough <alexander.gough@st-hughs.oxford.ac.uk>
6266 2001-11-12 11:22  simon
6268         * examples/assembly/mops.pasm:
6270         Trivial tightening of mops loop.
6272 2001-11-07 23:57  ajgough
6274         * docs/tests.pod: This is a basic quide to writing tests with
6275         assembler.
6277 2001-11-07 22:29  dan
6279         * stacks.c: Added a little documentation on the cleanup parameter
6280         for an entry
6282 2001-11-07 14:43  dan
6284         * MANIFEST, platforms/generic.c, platforms/linux.c,
6285         platforms/linux.h: Portability patches.
6287         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
6289 2001-11-06 19:51  tom
6291         * Makefile.in: Clean up object files in the subdirectories as well
6292         as those in the top level directory.
6294         Enhanced version of patch from Daniel Grunblatt
6295         <daniel@grunblatt.com.ar>
6297 2001-11-06 16:14  dan
6299         * Configure.pl, MANIFEST, Makefile.in, core.ops,
6300         platforms/generic.c, platforms/generic.h: Made things a bit more
6301         platform-independent. Makefile still needs work to pick up changes
6302         to the platform-specific files.
6304 2001-11-05 21:32  dan
6306         * docs/parrot_assembly.pod: Added docs for the GC control ops
6308 2001-11-04 02:52  gregor
6310         * platforms/: win32.c, win32.h:
6311           * win32 dynamic loading functions.
6313         Courtesy of Jason Diamond <jason@injektilo.org>
6315 2001-11-04 00:04  brentdax
6317         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm: Assembler fixes:
6318         allows an absolute path to be used and gives a useful error message
6319         if the original source file can't be found
6321 2001-11-02 12:37  gregor
6323         * platforms/: linux.c, linux.h:
6324           * Beginning of dynamic loading support. Linux only for now.
6326 2001-11-02 12:13  gregor
6328         * MANIFEST, time.c, include/parrot/time.h:
6329           * Removed time.[hc], since they have been superseded by the new
6330         platform
6331             stuff.
6333 2001-11-02 12:11  gregor
6335         * Configure.pl, Makefile.in, core.ops, vtable.tbl,
6336         classes/intclass.c, classes/scalarclass.c, hints/mswin32.pl,
6337         include/parrot/parrot.h, platforms/linux.c, platforms/linux.h,
6338         platforms/win32.c, platforms/win32.h:
6339         Patch from Jason Diamond to make win32 platform stuff work:
6341         * Modified Configure.pl, mswin32.pl, and Makefile.in so that the
6342         platform specific files in the platforms directory gets copied to
6343         the correct directories. The Makefile will re-copy the platform.h
6344         and .c files if the original is modified.
6346         * #include platform.h in parrot.h instead of time.h.
6348         * Removed time.h and time.obj from the Makefile. time.h and time.c
6349         aren't being used anymore since that code was moved to linux.c and
6350         win32.c.
6352         * Renamed the BOOL typedef in parrot.h to BOOLVAL (inspired by
6353         INTVAL and FLOATVAL). This was conflicting with the BOOL typedef in
6354         windows.h. This required updating several files besides parrot.h.
6356         * Added a DEFAULT_OPEN_MODE to linux.h and win32.h and used that
6357         instead of the missing identifiers (on Windows) in core.ops in the
6358         calls to open.
6360         * Added Parrot_sleep and Parrot_setenv to both the linux and win32
6361         platform files and called those from core.ops. The Linux code for
6362         these functions came from core.ops so they should hopefully work.
6364         Courtesy of Jason Diamond <jason@injektilo.org>
6366 2001-11-02 06:43  brentdax
6368         * Makefile.in, hints/mswin32.pl: Fix classes/intclass.obj building
6369         for Win32 (courtesy of Jason Diamond <jason@injektilo.org>)
6371 2001-11-02 02:26  gregor
6373         * .cvsignore, MANIFEST, include/parrot/.cvsignore,
6374         platforms/linux.c, platforms/linux.h, platforms/win32.c,
6375         platforms/win32.h:
6376           * Beginnings of platform support files in platform/*.[hc]
6378 2001-11-01 23:37  tom
6380         * classes/intclass.c: Added missing *'s to STRING arguments and
6381         return values to avoid compiler warnings.
6383 2001-11-01 22:21  gregor
6385         * MANIFEST, Makefile.in, core.ops, obscure.ops, time.c,
6386         include/parrot/parrot.h, include/parrot/time.h:
6387         Initial "fix" of time(n) op for Win32:
6389           * Initial Win32 code Courtesy of Richard J Cox <rjcox@cix.co.uk>
6391           * time.c and include/parrot/time.h
6393             First attempt at getting this working across platforms. The
6394             macro WIN32 being tested might not be right.
6396           * New functions Parrot_intval_time() and Parrot_floatval_time()
6397             wrap the appropriate functionality depending upon platform.
6398             Changed core.ops to call these.
6400         Added obscure.ops with obscure transcendental ops.
6402         Added simple file I/O ops (close, open, read, write):
6404           * Initial versions Courtesy of Jeff <jgoff@speakeasy.net>
6406           * I changed some arg ordering stuff.
6408           * I added read/write of INTVALs and FLOATVALs.
6410         Added environment variable ops (getenv, setenv)
6412         Added system error ops (err(i) and err(s) for accessing errno and
6413         strerr().
6415         Moved print ops in with other "temporary" developer ops, since
6416         they'll move to a devel.ops or temp.ops oplib once we have oplibs.
6418 2001-10-31 22:51  tom
6420         * MANIFEST, Makefile.in, chartype.c, encoding.c, global_setup.c,
6421         packfile.c, string.c, strnative.c, strutf16.c, strutf32.c,
6422         strutf8.c, transcode.c, chartypes/unicode.c, chartypes/usascii.c,
6423         encodings/singlebyte.c, encodings/utf16.c, encodings/utf32.c,
6424         encodings/utf8.c, include/parrot/chartype.h,
6425         include/parrot/encoding.h, include/parrot/exceptions.h,
6426         include/parrot/parrot.h, include/parrot/string.h,
6427         include/parrot/strnative.h, include/parrot/strutf16.h,
6428         include/parrot/strutf32.h, include/parrot/strutf8.h,
6429         include/parrot/transcode.h: Reworked the string code in line with
6430         Dan's latest design that separates character sets from encodings.
6432 2001-10-31 19:53  dan
6434         * docs/parrot_assembly.pod: Finished I/O section of docs
6436 2001-10-31 16:51  dan
6438         * core.ops, docs/parrot_assembly.pod, include/parrot/parrot.h:
6439         Moved includes out of core.ops and into parrot.h where they belong
6440         (suitably guarded with #ifdefs). Also some updates to
6441         parrot_assembly.pod
6443 2001-10-30 21:43  dan
6445         * core.ops, stacks.c, docs/parrot_assembly.pod,
6446         include/parrot/stacks.h: Added entrytype opcode to fetch the type
6447         of the entry on the stack
6449 2001-10-29 18:30  dan
6451         * stacks.c: You can turn off stack entry type validation on pop by
6452         passing in a type of 0 now. (For those cases where you just want to
6453         throw the darned thing away)
6455 2001-10-29 14:37  gregor
6457         * core.ops, languages/jako/jakoc:
6458           * New variants of the save ops to save constants on the stack.
6459         This is
6460             useful for saving zero arg and result counts on the stack, for
6461         example.
6463           * Modified jakoc to to adapt to the newly announced calling
6464         conventions.
6465             Even though Jako source code appears to show subroutines with
6466         fixed
6467             numbers of arguments and results, they are implemented with the
6468             variable count calling convention. Future modifications will be
6469         needed
6470             to ensure that an exception is raised if the stack frame is of
6471         the
6472             wrong size (or, at least that we pop the complete frame off).
6473         We'll
6474             also have to make more changes to support the true
6475         fixed-arg-count
6476             and fixed-result-count parts of the calling convention spec.
6478 2001-10-28 16:53  simon
6480         * MANIFEST, stacks.c, classes/scalarclass.c,
6481         include/parrot/stacks.h:
6482         Unbelievably bad errors of mine, plus a type incompatibility of
6483         Dan's.
6485 2001-10-28 08:30  simon
6487         * classes/scalarclass.c:
6488         Beginning of a scalar class.
6490 2001-10-28 08:29  simon
6492         * make_vtable_ops.pl, vtable.tbl, Parrot/Vtable.pm,
6493         lib/Parrot/Vtable.pm, classes/genclass.pl, classes/intclass.c,
6494         include/parrot/pmc.h:
6495         This fixes the problem with vtables and pointer arithmetic.
6497 2001-10-26 19:58  dan
6499         * core.ops, interpreter.c, stacks.c, include/parrot/interpreter.h,
6500         include/parrot/stacks.h: Split the generic stack into a user push
6501         stack and a control stack
6503 2001-10-26 02:59  bdwheele
6505         * Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm: [no log message]
6507 2001-10-24 20:27  dan
6509         * languages/scheme/: Makefile, Scheme.pm, schemec,
6510         Scheme/Generator.pm, Scheme/Parser.pm, Scheme/Test.pm,
6511         Scheme/Tokenizer.pm, t/harness, t/arith/basic.t, t/arith/logic.t,
6512         t/arith/nested.t, t/io/basic.t, t/logic/basic.t: Added the mini
6513         Scheme compiler
6515 2001-10-24 20:23  dan
6517         * MANIFEST, pdump.c, docs/parrot_assembly.pod: Update for
6518         interpreter needs in pdump.c. Added scheme bits to manifest
6520 2001-10-24 16:43  gregor
6522         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm:
6523           * Make the assembler handle octal character code escapes in
6524         string
6525             constants.
6527 2001-10-24 15:56  dan
6529         * MANIFEST, examples/assembly/life.pasm: Added an example in to
6530         play the game of life
6532 2001-10-24 15:54  dan
6534         * core.ops: Added sleep. We'll need to override this to do events
6535         properly anyway, so...
6537 2001-10-24 14:03  gregor
6539         * Makefile.in, pbc2c.pl, pdump.c:
6540           * Adapt pdump.c and pbc2c.pl to the new requirement to pass
6541         interpreter
6542             pointer into string functions.
6544         Courtesy of: Ryan O'Neil <talisman580@yahoo.com>
6546 2001-10-23 20:09  gregor
6548         * languages/jako/jakoc:
6549           * Terminological refinement in regexp capture comment.
6551 2001-10-23 15:23  simon
6553         * classes/genclass.pl:
6554         Use a saner ANSI C construct to make MIPSPro happy.
6556         Courtesy of: Alex Gough <alexander.gough@st-hughs.oxford.ac.uk>
6558 2001-10-23 00:34  tom
6560         * core.ops, string.c, strnative.c, strutf16.c, strutf32.c,
6561         strutf8.c, include/parrot/string.h: Make sure the interpreter
6562         structure is passed to the transcoder as necessary, including
6563         passing it to string_compare().
6565 2001-10-23 00:32  tom
6567         * Makefile.in: Make pdump build again by including resources.o in
6568         the link.
6570 2001-10-22 22:43  dan
6572         * core.ops, packfile.c, string.c, strnative.c, strutf16.c,
6573         strutf32.c, strutf8.c, test_main.c, transcode.c,
6574         include/parrot/packfile.h, include/parrot/parrot.h,
6575         include/parrot/resources.h, include/parrot/string.h,
6576         include/parrot/transcode.h: Everything now uses the allocators and
6577         deallocators in resources.c.
6579         Unfortunately we lost standalone string-test mode, but I can cope
6580         with that.
6582         Please note that until we have a real allocation/deallocation/GC
6583         system, this'll leak. A *lot*.
6585 2001-10-22 20:27  dan
6587         * MANIFEST, Makefile.in, pmc.c, resources.c,
6588         include/parrot/resources.h: First cut to handle arena allocation of
6589         PMC headers. (Amongst other things)
6591 2001-10-22 19:02  dan
6593         * Configure.pl, config_h.in, register.c, include/parrot/register.h:
6594         Now each register type has its own mask macro, which is the right
6595         thing to do.
6597         Patch courtesy of Jason Gloudon <perl@gloudon.com>
6599 2001-10-21 23:40  tom
6601         * stacks.c, t/op/stacks.t: Fix bug in handling of rollover to a new
6602         stack chunk and add a test to test this rollover in future.
6604         Courtesy of Jason Gloudon <perl@gloudon.com>.
6606 2001-10-21 19:14  dan
6608         * include/parrot/string.h: Changed string 'unused' field to the
6609         language field.
6611 2001-10-21 18:18  gregor
6613         * languages/jako/: Makefile, mops.jako:
6614           * Makefile: 'clean' target removes .list files, too. And, it does
6615         rm -f
6616             with wildcards rather than listing things explicitly.
6618           * mops.jako actually prints out the
6619         millions-of-operations-per-second
6620             (mops) value instead of just the operations-per-second value.
6622 2001-10-21 18:03  simon
6624         * classes/intclass.o:
6625         *smack*! WRONG!
6627 2001-10-21 17:47  simon
6629         * MANIFEST, Makefile.in, make_vtable_ops.pl, pmc.c, vtable_h.pl,
6630         Parrot/Vtable.pm, classes/genclass.pl, classes/intclass.c,
6631         classes/intclass.o, include/parrot/parrot.h, include/parrot/pmc.h,
6632         lib/Parrot/Vtable.pm:
6633         Initial work on PMCs. Explanation to follow
6635 2001-10-21 15:20  gregor
6637         * examples/assembly/queens.pasm:
6638           * Modernize the calling conventions in queens.pasm. It was using
6639         swap,
6640             which now must be rotate. Also, changed to use return values on
6641         the
6642             stack instead of in I0.
6644 2001-10-19 18:14  gregor
6646         * core.ops, stacks.c, include/parrot/stacks.h,
6647         languages/jako/jakoc:
6648         Per Dan's request, replacing 'swap' op by 'rotate'.
6650           * core.ops: Replaced 'swap()' by 'rotate(i|ic)'.
6652           * stacks.c and stacks.h: Removed swap-related functions from my
6653             prior commit, replacing them with stack_depth(), stack_entry()
6654             and rotate_entries().
6656             NOTE: The stack_depth() and rotate_entries() routines could
6657             be made more efficient through the caching of the sum of chunk
6658             'used' members from lower chunks in a field in the upper
6659             chunks. Also, if the interpreter's stack_base was changed to
6660             hold the pointer to the *top* chunk (since we usually come
6661             at the stack from the top down) instead of the *bottom*
6662             chunk. The code here at least works, and we can decide about
6663             bigger changes separately.
6665             For now, rotate only handles rotates in one direction and
6666             of magnituded one. A fully general rotate would do handle
6667             rotates in both directions and of arbitrary amounts. Again,
6668             this implementation is sufficient for current applications,
6669             and a feature-complete version can be developed if this turns
6670             out to be otherwise the right type of implementation.
6672             This change includes a new exception for ERROR_STACK_SHALLOW,
6673             meaning "not-empty-yet-not-deep-enough-for-what-you-asked".
6675           * jakoc: Changed the calling convention to use rotate instead
6676             of swap (of course). Also changed the convention for return
6677             value passing to use the stack as well.
6679 2001-10-19 13:36  gregor
6681         * MANIFEST, core.ops, disassemble.pl, stacks.c,
6682         examples/assembly/queens.pasm, include/parrot/stacks.h,
6683         languages/jako/.cvsignore, languages/jako/Makefile,
6684         languages/jako/bench.jako, languages/jako/euclid.jako,
6685         languages/jako/fact.jako, languages/jako/jakoc,
6686         languages/jako/mandelbrot.jako, languages/jako/mops.jako,
6687         languages/jako/primes.jako, languages/jako/queens.jako,
6688         languages/jako/sub.jako:
6689           * New stack functions push_entry(), pop_entry() and swap_entry().
6690             The first two exist for the support of the last one. These
6691             functions don't care what is in the stack entries. These exist
6692             to support the new 'swap' op (see next bullet).
6694           * New op 'swap' for swapping the top two elements on the stack.
6695             This is necessary for passing arguments to functions, since
6696             the return address will be on top of any arguments that have
6697             been pushed on the stack. This way, you can use a (swap, pop)
6698             pair to retrieve each argument (for subroutine linkage).
6700           * Disassembler now prints numbers in decimal by default, with
6701             a new '-x' flag to turn on hexadecimal display. Since other
6702             members of the Parrot Tool Set use decimal by default, this
6703             makes it easier to compare output from the various tools.
6705           * Jako compiler has more explanatory comments and the following
6706             new features:
6708               * Lexically scoped variables.
6710               * Subroutines that take arguments and return values:
6712                   sub int foo(int bar) {
6713                     if (bar == 1) {
6714                       return 42;
6715                     } else {
6716                       return 13;
6717                     }
6718                   }
6719               * ... if (...) and ... unless (...) statement modifiers
6720                 can be used on next, last and redo.
6722               * Bitwise and (&, &=) and or (|, |=) ops.
6724               * Type names are just 'int', 'num', 'str', and 'poly' now.
6725                 The old long names 'integer', 'number', 'string', and
6726                 'polytype' are no longer valid.
6728               * Integer variable assignments can now use 0b (binary),
6729                 0 (octal) and 0x (hexadecimal) radix prefixes on literals.
6731           * New Jako and Parrot assembly examples queens.{jako,pasm} for
6732             solving the eight-queens problem. The assembly example is a
6733             hand-modified version of the assembly code produced by the
6734             Jako compiler from queens.jako. A few unnecessary ops have
6735             been removed, lots of unnecessary labels have been removed,
6736             and all the Jako source code comments have been removed.
6738           * Makefile and .cvsignore in languages/jako modified so that
6739             the assembler produces listings when assembling the programs,
6740             yet the *.list files are ignored by CVS.
6742           * Made the default target in languages/jako/Makefile 'all'.
6744           * Modified some of the Jako examples to use some of the new
6745             features of Jako, such as subroutines and lexical variable
6746             scoping.
6748 2001-10-19 02:43  gregor
6750         * runops_cores.c, include/parrot/runops_cores.h:
6751         Bug fix (gcc doesn't complain, but MIPSpro does):
6753           * Added missing extern to runops_cores array declaration in
6754             include/parrot/runops_cores.h
6756           * Also added 'const' there and in runops_cores.c
6758 2001-10-18 15:18  gregor
6760         * .cvsignore, include/parrot/oplib/.cvsignore:
6761           * Ignore the vtable-related generated files.
6763 2001-10-18 15:14  gregor
6765         * core.ops:
6766           * left and right shifts now allow the 2nd argument to be a
6767         constant.
6769 2001-10-18 14:55  simon
6771         * make_vtable_ops.pl:
6772         This is C, not Perl. How on earth did that even compile?
6774 2001-10-18 14:54  simon
6776         * make_vtable_ops.pl:
6777         More vtable ops.
6779 2001-10-18 12:33  simon
6781         * Makefile.in, make_vtable_ops.pl, vtable.tbl:
6782         Initial stab at vtable opcode creation stuff.
6784 2001-10-18 02:15  gregor
6786         * MANIFEST, Makefile.in, interpreter.c, runops_cores.c, trace.c,
6787         include/parrot/interpreter.h, include/parrot/runops_cores.h,
6788         include/parrot/trace.h: Preparation for autogenerated runops cores:
6790           * Split tracing and runops core stuff out of interpreter.c into
6791             trace.c and runops_cores.c
6793           * Similar split of stuff from include/parrot/interpreter.h
6795           * Manifest and Makefile.in updates to make things still compile.
6797 2001-10-18 01:21  gregor
6799         * Makefile.in, ops2c.pl, ops2pm.pl, pbc2c.pl: Bug fixes:
6801           * Makefile.in: examples/assembly/mops.c depends on pbc2c.pl
6803           * Makefile.in: Parrot/OpLib/core.pm depends on ops2pm.pl
6805           * ops2c.pl: Added second arg to mkdir (perl 5.005_02 complains)
6807           * ops2pm.pl: Added second arg to mkdir (perl 5.005_02 complains)
6809           * pbc2c.pl: Removed explicit include of <math.h>, replacing it
6810         with
6811             copy of $ops->preamble.
6813 2001-10-17 22:32  bdwheele
6815         * interpreter.c: Moved op dump code into trace_op_dump, per Dan's
6816         request.
6818 2001-10-17 22:08  gregor
6820         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm:
6821           * Now handles label-and-comment-only lines.
6823 2001-10-17 22:04  bdwheele
6825         * interpreter.c: added more comprehensive trace output
6827 2001-10-17 16:50  tom
6829         * Makefile.in: Removed the explicit rule for building mops.o from
6830         mops.c so that the implicit rule for compiling C files is used
6831         instead. This means that the chosen C flags are used, including any
6832         optimisation options.
6834 2001-10-17 15:24  tom
6836         * core.ops, Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm: Enhanced the
6837         op explosion logic to be able to handle exploding this:
6839           sub(i, i|ic, i|ic)
6841         into these:
6843           sub(i, i, i)
6844           sub(i, i, ic)
6845           sub(i, ic, i)
6847         without also generating this unwanted version:
6849           sub(i, ic, ic)
6851         The enhanced version rejects any expansion where there is more than
6852         one expanded argument and all the expanded arguments are constants.
6854 2001-10-17 14:20  simon
6856         * Makefile.in, ops2c.pl, ops2pm.pl, examples/assembly/Makefile:
6857         Build fixes to use correct Perl version and ensure that things are
6858         running in the right directory.
6860         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
6862 2001-10-17 13:16  simon
6864         * Makefile.in:
6865         core.pm is more critical than that.
6867 2001-10-17 13:05  simon
6869         * core.ops, Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm:
6870         "Explode" ops into multiple versions for different parameters.
6872         Courtesy of: Tom Hughes <tom@compton.nu>
6874 2001-10-17 12:54  simon
6876         * Makefile.in:
6877         Fix dependencies and cleaning.
6879 2001-10-17 12:45  simon
6881         * Configure.pl, Makefile.in:
6882         Fixes to make Parrot compile without the temporary build hack
6884         Courtesy of: Jason Gloudon <perl@gloudon.com>
6886 2001-10-16 20:43  gregor
6888         * Makefile.in:
6889           * Fixed dependencies for building Parrot/OpLib/core.pm
6891 2001-10-16 19:35  bdwheele
6893         * core.ops, t/op/string.t: Changed set s,sc to use string_copy &
6894         added test, thanks to Alex Gough
6896 2001-10-16 16:49  bdwheele
6898         * core.ops: added opcode variants for constants and 3 arg concat
6900 2001-10-16 15:12  bdwheele
6902         * core.ops: added "set Sx,Sy" as a string copy to match the other
6903         register-to-register copies available
6905 2001-10-16 13:09  gregor
6907         * core.ops:
6908           * Added #include <sys/time.h> in the preamble for gettimeofday().
6910 2001-10-16 13:09  gregor
6912         * Makefile.in:
6913           * Removed cd t; make, which no longer applies
6915 2001-10-16 03:18  bdwheele
6917         * core.ops: fix save & restore operations to push correct type onto
6918         stack. [good eye to Jason Gloudon for noticing this]
6920 2001-10-16 01:38  bdwheele
6922         * core.ops, register.c, examples/assembly/fact.pasm,
6923         include/parrot/register.h: send in the clones:  clone routines for
6924         parrot + example program
6926 2001-10-15 22:37  gregor
6928         * MANIFEST, Makefile.in, examples/assembly/.cvsignore,
6929         examples/assembly/Makefile, examples/assembly/bsr.pasm,
6930         examples/assembly/call.pasm, examples/assembly/euclid.pasm,
6931         examples/assembly/jump.pasm, examples/assembly/local_label.pasm,
6932         examples/assembly/mops.pasm, examples/assembly/stack.pasm,
6933         examples/assembly/substr.pasm, examples/assembly/trace.pasm,
6934         t/.cvsignore, t/Makefile, t/call.pasm, t/euclid.pasm, t/jump.pasm,
6935         t/local_label.pasm, t/test.pasm, t/test2.pasm, t/test3.pasm,
6936         t/test4.pasm, t/test5.pasm, t/trace.pasm:
6937           * Moved examples from t/*.pasm to examples/assembly/*.pasm, with
6938         some
6939             renames so the names match what they demonstrate.
6941 2001-10-15 22:18  gregor
6943         * core.ops, t/test.pasm:
6944           * time_n uses gettimeofday() to get sub-second times.
6946           * t/test.pasm uses time_n directly rather than doing int stuff
6947         and
6948             converting to num later.
6950 2001-10-15 12:28  gregor
6952         * t/: test.pasm, test2.pasm, trace.pasm:
6953           * t/test.pasm prints using string constants instead of string
6954         regs.
6956           * t/test2.pasm assembles (using implicit op modes)
6958           * t/trace.pasm updated for new behavior of trace_ic, which does
6959         not
6960             require an 'end' after 'trace'.
6962 2001-10-15 00:47  gregor
6964         * core.ops, interpreter.c, test_main.c,
6965         include/parrot/interpreter.h, t/test.pasm:   * New interpreter flag
6966         PARROT_PROFILE_FLAG
6968           * New runops cores to handle profiling
6970           * Support for -p flag in test_prog to enable profiling
6972           * New profile_ic op to control profiling at run-time
6974 2001-10-14 21:54  gregor
6976         * core.ops, Parrot/OpsFile.pm, docs/.cvsignore, docs/Makefile,
6977         lib/Parrot/OpsFile.pm: Integrated op documentation.
6979           * core.ops now contains POD documentation of ops, interspersed
6980         with the
6981             ops themselves
6983           * Ops are organized into POD =head2 sections
6985           * Parrot/OpsFile.pm now treats the preamble of the ops file as
6986         anything
6987             up to the first POD directive OR op definition.
6989           * docs/Makefile now generates core_ops.pod from core.ops vi
6990         perldoc -u.
6992 2001-10-14 11:58  simon
6994         * Makefile.in:
6995         Unbreak Digital Un^W^WTru64
6997 2001-10-14 11:00  simon
6999         * Configure.pl:
7000         Remove weird typo.
7002 2001-10-14 10:56  tom
7004         * Configure.pl: Stop Configure trying to make op_info.c and op.h as
7005         op_info.c no longer exists and op.h is no longer a generated file.
7007 2001-10-14 10:54  tom
7009         * Makefile.in: Added vtable.h to the list of things removed by the
7010         clean target.
7012 2001-10-14 01:43  gregor
7014         * .cvsignore, MANIFEST, Makefile.in, basic_opcodes.ops,
7015         build_interp_starter.pl, core.ops, disassemble.pl, interpreter.c,
7016         make_op_header.pl, memory.c, opcheck.pl, opcode_table, ops2c.pl,
7017         ops2pm.pl, packfile.c, pbc2c.pl, process_opfunc.pl,
7018         Parrot/Assembler.pm, Parrot/Op.pm, Parrot/OpsFile.pm,
7019         Parrot/OpLib/.cvsignore, lib/Parrot/Assembler.pm, lib/Parrot/Op.pm,
7020         lib/Parrot/OpsFile.pm, lib/Parrot/OpLib/.cvsignore,
7021         include/parrot/.cvsignore, include/parrot/interp_guts.h,
7022         include/parrot/interpreter.h, include/parrot/op.h,
7023         include/parrot/oplib/.cvsignore, t/.cvsignore, t/Makefile,
7024         t/euclid.pasm, t/test.pasm, t/op/integer.t, t/op/number.t,
7025         t/op/stacks.t, t/op/string.t, t/op/trans.t:
7026         Moby Patch:
7028           * basic_opcodes.ops and opcode_table replaced by core.ops
7030           * process_opfunc.pl replaced by Parrot/OpsFile.pm, Parrot/Op.pm,
7031             and ops2c.pl. These convert *.ops to *_ops.c and
7032             include/parrot/oplib/*_ops.h
7034           * New ops2pm.pl converts *.ops to Parrot/OpLib/*.pm
7036           * disassemble.pl modified to use
7038           * interpreter.c modified to use structures in core_ops.c instead
7039             of the old op_info and op_func stuff. We're not yet to the
7040             point of handling multiple oplibs at a time, but we are getting
7041             there...
7043             Fingerprinting stuff disabled for now. We used to go off
7044             opcode_table. We need to rethink this. I have some ideas to
7045             make it unnecessary, but it remains to be seen whether others
7046             will like the direction they take us.
7048             Termination condition for while(){} loop in runops is now
7049             (pc) instead of (*pc). Any op can cause a HALT by returning
7050             a NULL pointer. Ops end, bounds and trace all do this. So, now
7051             the 'end' op body is actually executed, although all it does
7052             is HALT.
7054           * Makefile.in modified to perform a test build using pbc2c.pl,
7055             which is the bytecode --> C compiler I've posted to the
7056             list before.
7058           * Op full names are now autogenerated. Op root names must not
7059             contain underscores, so some op renamings have happened.
7060             Such as clear_i becoming cleari.
7062 2001-10-13 11:49  simon
7064         * Configure.pl, MANIFEST:
7065         Make parrot actually build again.
7067 2001-10-12 21:34  dan
7069         * docs/parrot_assembly.pod: Added docs for the new save/restore/bsr
7070         opcodes
7072 2001-10-12 20:56  dan
7074         * MANIFEST, Makefile.in, basic_opcodes.ops, interpreter.c,
7075         opcode_table, process_opfunc.pl, stacks.c, include/parrot/stacks.h,
7076         t/test3.pasm, t/test4.pasm, t/test5.pasm: Changes to support
7077         generic stack now in. We also have subroutines, of a simple sort!
7079 2001-10-12 19:15  tom
7081         * t/op/string.t: Improved string comparison tests try all string
7082         combinations with each of the comparison ops.
7084 2001-10-12 19:09  dan
7086         * interpreter.c: Properly sets up generic stack now
7088 2001-10-12 19:09  dan
7090         * include/parrot/interpreter.h: Fixed stack chunk struct type in
7091         interpreter structure
7093 2001-10-12 18:59  dan
7095         * stacks.c, include/parrot/parrot.h, include/parrot/stacks.h: More
7096         changes to get the generic stack working
7098 2001-10-12 18:59  dan
7100         * Configure.pl, MANIFEST, config_h.in, testparrotsizes_c.in,
7101         hints/vms.pl: Made the changes to figure out mask bits for various
7102         register and stack chunks
7104 2001-10-11 22:09  dan
7106         * docs/parrot_assembly.pod: Tossed the parameter for return
7108 2001-10-11 19:28  tom
7110         * strnative.c: Assignment, not comparison.  (Plus formatted for
7111         coding standards)
7113         Courtesy of Bryan C. Warnock
7115 2001-10-10 19:21  tom
7117         * basic_opcodes.ops, opcode_table, string.c, strnative.c,
7118         strutf16.c, strutf32.c, strutf8.c, docs/strings.pod,
7119         include/parrot/string.h, t/op/string.t: Added support for string
7120         comparisons and extended the comparison ops to include comparison
7121         of strings.
7123 2001-10-10 17:58  dan
7125         * MANIFEST: Shouldn't have added vtable.h to the manifest...
7127 2001-10-10 17:54  dan
7129         * MANIFEST, stacks.c, vtable_h.pl, Parrot/Vtable.pm,
7130         lib/Parrot/Vtable.pm: Now spits out the #defines for the various
7131         vtable type entries properly
7133 2001-10-10 15:37  dan
7135         * Parrot/Vtable.pm, lib/Parrot/Vtable.pm: Re-enabled change to
7136         parse new vtable.tbl file now that I've actually checked *in* the
7137         new format vtable.tbl file...
7139 2001-10-10 15:32  dan
7141         * vtable.tbl: New Column to indicate the type of the vtabel entry
7142         so we can know how many slots it takes
7144 2001-10-10 05:26  thgibbs
7146         * Parrot/Vtable.pm, lib/Parrot/Vtable.pm, vtable_h.pl: Patch to
7147         allow parrot to compile.  PACKAGE is not defined, therefore, I
7148         added a struct before it to have it not complain until we define
7149         PACKAGE.  Also, there was an extra shift in Vtable.pm and a missing
7150         semicolon at the end of the struct declaration.
7152 2001-10-10 05:09  thgibbs
7154         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm: This patch makes
7155         string constants of the form U"string" become unicode encoded
7156         parrot strings and the form N"string" become native encoded parrot
7157         strings.
7159         Courtesy of: Tom Hughes <tom@compton.nu>
7161 2001-10-10 04:55  dan
7163         * vtable_h.pl, Parrot/Vtable.pm, lib/Parrot/Vtable.pm: Start of
7164         support for generating the vtable function table offset macros
7166 2001-10-10 01:05  simon
7168         * t/op/integer.t:
7169         The test for cmod_i was using the 'mod Ix, Ix, Ix' form which
7170         compiles into the mod op, not the cmod_i op, hence wasn't testing
7171         what it thought it was.
7173         Courtesy of: Alex Gough <alexander.gough@st-hughs.oxford.ac.uk>
7175 2001-10-09 03:45  thgibbs
7177         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm: Patch to allow
7178         assembler to generate unicode strings.
7180         Courtesy of: Tom Hughes <tom@compton.nu>
7182 2001-10-08 19:30  brentdax
7184         * Configure.pl, test_c.in, hints/vms.pl: Cleaner VMS support, more
7185         info for Parrot::Config to remember, more flexible test.c stuff
7187 2001-10-08 15:04  gregor
7189         * basic_opcodes.ops:
7190           * Removed trash from early mod_i experiments (pardon our dust)
7192 2001-10-08 14:56  gregor
7194         * basic_opcodes.ops:
7195           * Fixed a couple of typos.
7197 2001-10-08 14:45  gregor
7199         * basic_opcodes.ops, opcode_table, t/op/integer.t, t/op/number.t:
7200         Arithmetic enhancements:
7202           * Renamed existing mod_i as cmod_i and added "corrected" mod_i:
7204             NOTE: This "uncorrected mod" algorithm uses the C language's
7205         built-in
7206             mod operator (x % y), which is
7208                 ... the remainder when x is divided by y, and thus is zero
7209         when y
7210                 divides x exactly.
7211                 ...
7212                 The direction of truncation for / and teh sign of the
7213         result for %
7214                 are machine-dependent for negative operands, as is the
7215         action taken
7216                 on overflow or underflow.
7217                                                                      --
7218         [1], page 41
7220             Also:
7222                 ... if the second operand is 0, the result is undefined.
7223         Otherwise, it
7224                 is always true that (a/b)*b + a%b is equal to z. I both
7225         operands are
7226                 non-negative, then teh remainder is non-negative and
7227         smaller than the
7228                 divisor; if not, it is guaranteed only that the absolute
7229         value of the
7230                 remainder is smaller than the absolute value of the
7231         divisor.
7232                                                                      --
7233         [1], page 205
7235             This op is provided for those who need it (such as
7236         speed-sensitive
7237             applications with heavy use of mod, but using it only with
7238         positive
7239             arguments), but a more mathematically useful numeric mod based
7240         on
7241             floor(x/y) and defined with y == 0 is provided by the mod_i op.
7243               [1] Brian W. Kernighan and Dennis M. Ritchie, *The C
7244         Programming
7245                   Language*, Second Edition. Prentice Hall, 1988.
7247           * Added "corrected" mod_i:
7249             NOTE: This "corrected mod" algorithm is based on the C code on
7250         page 70
7251             of [1]. Assuming correct behavior of C's built-in mod operator
7252         (%) with
7253             positive arguments, this algorithm implements a mathematically
7254         convenient
7255             version of mod, defined thus:
7257               x mod y = x - y * floor(x / y)
7259             For more information on this definition of mod, see section 3.4
7260         of [2],
7261             pages 81-85.
7263             References:
7265               [1] Donald E. Knuth, *MMIXware: A RISC Computer for the Third
7266                   Millennium* Springer, 1999.
7268               [2] Ronald L. Graham, Donald E. Knuth and Oren Patashnik,
7269         *Concrete
7270                   Mathematics*, Second Edition. Addison-Wesley, 1994.
7272           * Added mod_n, using the same formula as above, but with FLOATVAL
7273             arguments.
7275           * Added cmod_n, using the C math library's fmod() function:
7277             NOTE: This "uncorrected mod" algorithm uses the built-in C math
7278         library's
7279             fmod() function, which computes
7281                 ... the remainder of dividing x by y. The return value is x
7282         - n * y,
7283                 where n is the quotient of x / y, rounded towards zero to
7284         an
7285                 integer.
7286                                                 -- fmod() manpage on RedHat
7287         Linux 7.0
7289             In addition, fmod() returns
7291                 the remainder, unless y is zero, when the function fails
7292         and errno
7293                 is set.
7295             According to page 251 of [1], the result when y is zero is
7296         implementation-
7297             defined.
7299             This op is provided for those who need it, but a more
7300         mathematically
7301             useful numeric mod based on floor(x/y) instead of truncate(x/y)
7302         and
7303             defined with y == 0 is provided by the mod_n op.
7305               [1] Brian W. Kernighan and Dennis M. Ritchie, *The C
7306         Programming
7307                   Language*, Second Edition. Prentice Hall, 1988.
7309           * Added and modified tests as appropriate for the above.
7311 2001-10-08 08:49  thgibbs
7313         * include/parrot/exceptions.h, include/parrot/parrot.h,
7314         include/parrot/string.h, include/parrot/strutf16.h,
7315         include/parrot/strutf32.h, include/parrot/strutf8.h,
7316         include/parrot/transcode.h, include/parrot/unicode.h, MANIFEST,
7317         Makefile.in, global_setup.c, string.c, strnative.c, transcode.c,
7318         strutf16.c, strutf32.c, strutf8.c: Added code to handle unicode
7319         strings for utf8, utf16, and utf32.
7321         Courtesy of: Tom Hughes <tom@compton.nu>
7323 2001-10-08 08:10  thgibbs
7325         * memory.c: Fixed uninitialized variables.
7327         Courtesy of: Bryan C. Warnock <bwarnock@raba.com>
7329 2001-10-08 01:21  gregor
7331         * packfile.c:   * Casting a return value
7333           * Potential uninitialized variable fix
7335         Courtesy of Bryan C. Warnock <bwarnock@raba.com>
7337 2001-10-08 01:15  gregor
7339         * packfile.c, test_main.c: One of Bryan's languishing patches (with
7340         a few tweaks of my own):
7342           * Line wrapping
7344           * Printf format fixes
7346         Courtesy of: Bryan C. Warnock <bwarnock@raba.com>
7348 2001-10-07 22:39  thgibbs
7350         * build_interp_starter.pl: No longer adds (void*) casts to
7351         interp_guts.c function table as they are not necessary in ANSI C.
7353 2001-10-07 16:27  gregor
7355         * basic_opcodes.ops, interpreter.c, opcode_table,
7356         process_opfunc.pl, test_main.c, include/parrot/interpreter.h,
7357         t/trace.pasm:
7358           * Two new ops, trace_ic and bounds_ic that twiddle bits in
7359             interpreter->flags and set interpreter->resume_addr.
7361           * Two new runops core variants, so now we cover the relevant
7362             flag space over {trace, notrace} x {boundscheck, noboundscheck}
7364           * Runops core selection that converts the flags into an index
7365         into
7366             a core table (runops_cores) to get the core function pointer.
7368           * A new trace_op variant that doesn't do bounds checking (used by
7369             the non-bounds-checking-but-tracing runops core).
7371           * PC is passed into the cores so that they can be used when
7372             resuming (they used to assume starting at the beginning of the
7373             code, which would thwart resumption).
7375           * runops() itself is changed to have a while() loop in it so that
7376             any time we drop out of the core, we'll resume if we have an
7377             interpreter->resume_addr set (after reselecting the core,
7378         though).
7380           * process_opfunc.pl has a new "macro": RESUME(), that sets up
7381             interpreter->resume_addr. This is used by the new ops. The new
7382             ops still return the new PC as the next op (which MUST be an
7383             'end' op to force the core loop to terminate -- *pc being false
7384             is the only termination condition we can count on for all
7385         cores).
7387           * New interpreter flag: PARROT_BOUNDS_FLAG, used to control
7388             bounds checking core selection.
7390           * test_prog now has a '-b' flag in addition to the '-t' flag.
7391         Now,
7392             bounds checking is off by default (I saw a performance boost:
7393             6.3 Mop/s with -b, 7.0 Mop/s without).
7395           * A new sample/test program: t/trace.pasm that twiddles the trace
7396             flag while it is running.
7398 2001-10-07 15:41  gregor
7400         * .cvsignore, Makefile.in, build_interp_starter.pl, interpreter.c,
7401         include/parrot/.cvsignore, include/parrot/interpreter.h:
7402         Now that 0.0.2 is released, I can clear out the backlog of approved
7403         but uncommitted patches. Here's one Dan approved on 2001-09-21
7404         (Simplified DO_OP):
7406           * test_prog and pdump are linked with only the files the need,
7407         not
7408             al the files.
7410           * build_interp_starter.pl writes out op_info.[hc], too. These
7411         files
7412             contain op name, arg count and arg type information. This will
7413         be
7414             useful for multiple things in the future, including better
7415         trace
7416             output and the crystalizing loader.
7418           * The DO_OP macro is now simpler and doesn't require explicit
7419             temporaries.
7421           * interpreter.c is modified to use the new op info in tracing
7422         output.
7424           * The interpreter just points its opcode_funcs and opcode_info
7425             members at the default tables rather than allocating memory on
7426             the fly.
7428 2001-10-07 03:58  thgibbs
7430         * include/parrot/.cvsignore, vtable_h.pl: Minor updates fixing a
7431         comment and adding vtable.h to .cvsignore as it is produced by
7432         vtable_h.in
7434 2001-10-06 20:58  thgibbs
7436         * vtable.tbl: Added * to REGEX type.
7438         Courtesy of Bryan C. Warnock <bwarnock@raba.com>
7440 2001-10-06 13:41  simon
7442         * MANIFEST, Makefile.in, vtable.tbl, vtable_h.pl, Parrot/Vtable.pm,
7443         include/parrot/parrot.h, lib/Parrot/Vtable.pm:
7444         Framework for vtable functions.
7446 2001-10-06 06:52  thgibbs
7448         * make_op_header.pl: Removed confusing and unused typedef.
7450 2001-10-06 06:31  thgibbs
7452         * Parrot/Opcode.pm, lib/Parrot/Opcode.pm: Removed variables that
7453         are no longer used.
7455 2001-10-06 06:26  thgibbs
7457         * disassemble.pl: Changed intval to op in disassembler.
7459 2001-10-06 06:21  thgibbs
7461         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm: Fixed typo with
7462         Assembler, local labels, and integer constants.
7464 2001-10-06 03:11  ask
7466         * Makefile.in: make `make test` actually run the tests on
7467         darwin/macosx
7469 2001-10-06 02:04  thgibbs
7471         * Parrot/Assembler.pm, Parrot/Opcode.pm, Parrot/PackFile.pm,
7472         Parrot/String.pm, Parrot/PackFile/ConstTable.pm,
7473         Parrot/PackFile/Constant.pm, include/parrot/packfile.h,
7474         include/parrot/register.h, lib/Parrot/Assembler.pm,
7475         lib/Parrot/Opcode.pm, lib/Parrot/PackFile.pm, lib/Parrot/String.pm,
7476         lib/Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/Constant.pm,
7477         t/op/integer.t: No, it didn't mess anything up.  I just forgot to
7478         type make. :)
7480 2001-10-06 02:02  thgibbs
7482         * Parrot/Assembler.pm, Parrot/Opcode.pm, Parrot/PackFile.pm,
7483         Parrot/String.pm, Parrot/PackFile/ConstTable.pm,
7484         Parrot/PackFile/Constant.pm, include/parrot/packfile.h,
7485         include/parrot/register.h, lib/Parrot/Assembler.pm,
7486         lib/Parrot/Opcode.pm, lib/Parrot/PackFile.pm, lib/Parrot/String.pm,
7487         lib/Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/Constant.pm,
7488         t/op/integer.t: oops...this messed something up.  I must have
7489         missed something in the patch...I have reverted.
7491 2001-10-06 01:57  thgibbs
7493         * Parrot/Assembler.pm, Parrot/Opcode.pm, Parrot/PackFile.pm,
7494         Parrot/String.pm, Parrot/PackFile/ConstTable.pm,
7495         Parrot/PackFile/Constant.pm, include/parrot/packfile.h,
7496         include/parrot/register.h, lib/Parrot/Assembler.pm,
7497         lib/Parrot/Opcode.pm, lib/Parrot/PackFile.pm, lib/Parrot/String.pm,
7498         lib/Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/Constant.pm,
7499         t/op/integer.t, Types_pm.in, basic_opcodes.ops, config_h.in,
7500         memory.c, packfile.c, process_opfunc.pl, strnative.c, test_main.c:
7501         This patch ensures that all bytecode is of type opcode_t except for
7502         the constant table constants.  That means that almost all of the
7503         INTVALs in the code were replaced with opcode_t and the i pack type
7504         was replaced with the op pack type in calls to pack_arg and such.
7505         Also, since it has been declared that ALL integer constants are to
7506         be 32 bits, some test cases were changed to ensure that an integer
7507         constant was no bigger than 2 ** 31.
7509         process_opfunc.pl was also cleaned up to no longer look at either
7510         opcode_table or interp_guts.h but gather all of its information
7511         from Opcode.pm.
7513         The Assembler.pm module was changed to do late binding of arguments
7514         so that 0 could be treated like 0.0 without having to be so
7515         declared.  Also, only strings now use the [sc:N] intermediate form
7516         as it was unnecessary for integer and float types.
7518 2001-10-05 21:59  gregor
7520         * MANIFEST, languages/jako/Makefile:
7521         Fixed things due to the movement of little_languages/* to
7522         languages/jako.
7524 2001-10-05 18:31  gregor
7526         * MANIFEST:
7527         Updated MANIFEST to reflect recent additions for Jako.
7529 2001-10-05 17:54  gregor
7531         * languages/jako/: Makefile, bench.jako, euclid.jako, fact.jako,
7532         fib.jako, hello.jako, jakoc, leibniz.jako, mandelbrot.jako,
7533         mops.jako, primes.jako, sub.jako:
7534           * Compiler:
7536               * User-defined subroutines.
7537               * Generates assembly code with the Jako code in comments.
7538               * "end;" no longer required at the end of programs.
7539               * Better handling of const-reg and reg-const.
7540               * Optimizes const-const operations to compile-time
7541         evaluations.
7542               * Constants in addition to variables.
7543               * Arithmetic fixes.
7544               * Allow leading minus signs in integer and number constants
7545         (ahem).
7546               * goto's.
7548           * New sample programs:
7550               * leibniz.jako (based on Greg McCarroll's leibniz.pasm
7551         example)
7552               * mandelbrot.jako (based on Leon Brocard's translation of
7553         Glenn Rhodes' C code)
7554               * mops.jako (based on t/test.pasm)
7555               * primes.jako (based on Leon Brocard's primes.pasm example)
7556               * sub.jako (demonstrates a simple user-defined subroutine)
7558 2001-10-05 12:54  gregor
7560         * Parrot/Opcode.pm, lib/Parrot/Opcode.pm:
7561           * Removed mysterious extra copy of code after POD.
7563 2001-10-05 12:46  gregor
7565         * basic_opcodes.ops, t/op/string.t:
7566           * Enabled the previously SKIPped test of printing string regs
7567         after
7568             clear_s
7570           * Made print_s do nothing if the STRING pointer in the register
7571         file
7572             is NULL.
7574 2001-10-04 21:19  dan
7576         * Configure.pl: VMS tweaks
7578 2001-10-04 21:17  dan
7580         * hints/vms.pl: Hints file for VMS
7582 2001-10-04 00:58  bdwheele
7584         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm: fixed but in
7585         Assembler which stopped equates from working.
7587 2001-10-03 21:50  gregor
7589         * Makefile.in, docs/.cvsignore, docs/Makefile, docs/parrotbyte.pod:
7591           * More documentation updates for the packfile stuff.
7593 2001-10-03 21:37  gregor
7595         * docs/parrotbyte.pod:
7596           * Pointed the reader at Parrot::PackFile.
7598 2001-10-03 21:34  gregor
7600         * Parrot/PackFile.pm, lib/Parrot/PackFile.pm:
7601           * Updated documentation to match current implementation.
7603 2001-10-03 18:30  gregor
7605         * .cvsignore, disassemble.pl, Parrot/Assembler.pm,
7606         lib/Parrot/Assembler.pm, t/call.pasm, t/euclid.pasm,
7607         t/local_label.pasm, t/test.pasm, t/test2.pasm, t/test3.pasm,
7608         t/op/basic.t:
7609           * Added new syntax to the assembler to allow square-bracket
7610             arithmetic expressions involving (global) labels, the current
7611             instructions base address ('@'), numeric constants (not
7612         equates)
7613             and basic arithmetic operators (+, -, *, / -- although + and -
7614             are likely to be the only ones used in practice).
7616           * Fixed a bug in Parrot/Assemble.pl that caused macro expansion
7617         to
7618             fail (argument passing wasn't working).
7620           * Enabled t/op/basic.t's last test, which is actually a copy of
7621         the
7622             code from t/call.pasm. Now all tests there are enabled and
7623         working.
7625           * Added new example/test program t/call.pasm to demonstrate
7626         working
7627             macros and poor-man's subroutine calls
7629           * Added header comments to t/*.pasm
7631 2001-10-03 18:00  simon
7633         * ChangeLog:
7634         Needed, since it's in the MANIFEST.
7636 2001-10-03 17:56  simon
7638         * t/op/: string.t, time.t:
7639         Small fixes to help Win32 on its way.
7641 2001-10-03 17:41  simon
7643         * MANIFEST, README:
7644         Oops. Tiny bugs.
7646 2001-10-03 17:39  simon
7648         * MANIFEST, NEWS, README:
7649         README, NEWS and MANIFEST? Could it be time for Parrot 0.0.2? I
7650         think so!
7652 2001-10-03 17:21  simon
7654         * basic_opcodes.ops, interpreter.c, packfile.c:
7655         Evil printf bandaid (which allows Sparc64 to pass tests)
7657         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
7659 2001-10-03 16:58  simon
7661         * string.c, t/op/string.t:
7662         chop fixes for n < 0 and tests
7664         Courtesy of: Alex Gough <alex@rcon.org>
7666 2001-10-03 15:51  thgibbs
7668         * interpreter.c: Changed an occurrence of INTVAL to opcode_t
7670         Courtesy of: Bryan C. Warnock <bwarnock@raba.com>
7672 2001-10-02 17:48  dan
7674         * include/parrot/stacks.h: Fix typo in function name
7676 2001-10-02 17:35  dan
7678         * include/parrot/stacks.h: changed to support new stack stuff
7679         coming after 0.02
7681 2001-10-02 15:01  simon
7683         * Configure.pl, Types_pm.in, basic_opcodes.ops, config_h.in,
7684         interpreter.c, make_op_header.pl, memory.c, packfile.c,
7685         process_opfunc.pl, register.c, string.c, strnative.c,
7686         Parrot/Opcode.pm, Parrot/PackFile.pm, Parrot/String.pm,
7687         lib/Parrot/Opcode.pm, lib/Parrot/PackFile.pm, lib/Parrot/String.pm,
7688         Parrot/PackFile/ConstTable.pm, Parrot/PackFile/Constant.pm,
7689         docs/overview.pod, docs/strings.pod, include/parrot/interpreter.h,
7690         include/parrot/memory.h, include/parrot/packfile.h,
7691         include/parrot/parrot.h, include/parrot/register.h,
7692         include/parrot/stacks.h, include/parrot/string.h,
7693         lib/Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/Constant.pm:
7695         The Great Renaming.
7697 2001-10-02 12:49  gregor
7699         * process_opfunc.pl:
7700           * Fixed a tyop:  s/string/integer/ for INT_CONST expansion
7702 2001-10-02 12:40  simon
7704         * basic_opcodes.ops, process_opfunc.pl, register.c,
7705         include/parrot/register.h:
7706         Move preprocessing of register accessors to process_opfunc.pl
7708         Courtesy of: Jason Gloudon <perl@gloudon.com>
7710 2001-10-02 01:20  ask
7712         * README: add a few lines about lists.
7714 2001-10-01 23:00  brentdax
7716         * Configure.pl, Makefile.in, hints/mswin32.pl: Make 'make clean'
7717         work on Win32 (courtesy of Mattia Barbon <mbarbon@dsi.unive.it>)
7719 2001-10-01 22:50  brentdax
7721         * Configure.pl, test_c.in: More changes for 64-bit compatibility
7723 2001-10-01 21:51  simon
7725         * process_opfunc.pl:
7726         Michael Fischer's patch broke conditionals.
7728 2001-10-01 15:38  simon
7730         * process_opfunc.pl:
7731         Small hack to keep process_opfunc.pl from generating extra return()
7732         statements.
7734         Courtesy of: Michael Fischer <michael@visv.net>
7736 2001-10-01 15:32  simon
7738         * Parrot/Opcode.pm, lib/Parrot/Opcode.pm:
7739         Documentation fix.
7741         Courtesy of: Josh Wilmes <josh@hitchhiker.org>
7743 2001-10-01 01:49  simon
7745         * packfile.c:
7746         Simon is an idiot. Don't trust him with your code.
7748         Courtesy of: Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
7750 2001-10-01 00:59  simon
7752         * Parrot/String.pm, lib/Parrot/String.pm:
7753         Was in manifest, but not in CVS.
7755 2001-09-30 21:25  simon
7757         * MANIFEST, Types_pm.in, assemble.pl, basic_opcodes.ops,
7758         disassemble.pl, packfile.c, pdump.c, process_opfunc.pl,
7759         Parrot/Assembler.pm, Parrot/PackFile.pm,
7760         Parrot/PackFile/ConstTable.pm, Parrot/PackFile/Constant.pm,
7761         Parrot/PackFile/FixupTable.pm, lib/Parrot/Assembler.pm,
7762         lib/Parrot/PackFile.pm, lib/Parrot/PackFile/ConstTable.pm,
7763         lib/Parrot/PackFile/Constant.pm, lib/Parrot/PackFile/FixupTable.pm,
7764         include/parrot/packfile.h, include/parrot/string.h:
7765         Move NVs to the constant table.    * Changes to Types_pm.in to make
7766         life easier for some of the      packing/etc. I'm doing elsewhere.
7767         Also, we now pack 'n' as      'i'.
7769           * Moved the guts of assemble.pl to Parrot/Assembler.pm so that
7770             eventually we can use all these tools together inside scripts
7771             rather than call out to the shell to run the programs.
7773           * As I was tracking down problems, I converted the internal
7774             documentation of the assembler to POD from comments.
7776           * Changed the numeric regexp in the assembler to detect leading
7777             signs and trailing exponents.
7779           * Updated basic_opcodes.ops to fetch numeric constants from the
7780             constant table.
7782           * Enhanced the disassembler in a number of ways to make my life
7783             easier while tracking down bugs (try it out). It now puts in
7784             labels for ops that are the destinations of flow control ops.
7786           * packfile.c now has a TRACE_PACKFILE switch that can be set
7787             to get it to print info as it processes. I needed this while
7788             debugging, but I can remove it or change it before committing
7789             if its a problem.
7791           * Updated pdump.c because it was missing a call to init_world().
7793           * Updated process_opfunc.pl to deal with numeric constants
7794             being stored in the constant table instead of inline.
7796           * Added multiple type support to Parrot/PackFile/Constant.pm
7798           * Added Parrot/String.pm, to be used for constants.
7800           * Added packfile.[hc] functions for allocating new constants
7801             of various types.
7803           * Made string_copy visible to the world in parrot/string.h.
7805         Wow.
7807         Courtesy of: Gregor N. Purdy <gregor@focusresearch.com>
7809 2001-09-29 15:56  gregor
7811         * languages/jako/Makefile:
7812         Removed assumption that '.' is on the path.
7814 2001-09-29 15:55  gregor
7816         * languages/jako/Makefile:
7817         Removed references to leibnitz test program.
7819 2001-09-29 15:21  thgibbs
7821         * t/op/trans.t, basic_opcodes.ops: Added NV casts to transcendental
7822         math ops args to work on Solaris.
7824 2001-09-27 15:15  thgibbs
7826         * assemble.pl: Added case insensitive matches to hex and binary
7827         characters
7829         Courtesy of: Johnathan Scott Duff <duff@cbi.tamucc.edu>
7831 2001-09-27 04:46  thgibbs
7833         * assemble.pl: This patch makes integer constants of the form
7834         0b[01]+ work with perl 5.005.  The oct function in versions of perl
7835         before 5.6 did not handle the 0b numeric prefix; therefore, it was
7836         returning 0.  To fix this, I added a from_binary function that
7837         would take a binary string and return its decimal representation.
7838         Now, instead of blindly calilng oct, it makes a distinction between
7839         0/0x numbers and 0b numbers.
7841 2001-09-26 19:30  thgibbs
7843         * assemble.pl: Error now returns a non-zero status
7845         Courtesy of: Andrew Kuchling <akuchlin@mems-exchange.org>
7847 2001-09-26 19:13  gregor
7849         * MANIFEST, Makefile.in, basic_opcodes.ops, bytecode.c,
7850         interpreter.c, packfile.c, pdump.c, test_main.c,
7851         include/parrot/bytecode.h, include/parrot/interpreter.h,
7852         include/parrot/packfile.h, include/parrot/parrot.h, t/op/integer.t,
7853         t/op/stacks.t:
7854           * bytecode.[hc] removed. packfile.[hc] are the interface to the
7855             packfile/bytecode file from C. May be renamed in the future.
7857           * packfile.[hc] changed to use 'struct PackFile *', etc. instead
7858             of 'PackFile *', just like the interpreter, etc.
7860           * Constants are accessed via the interpreter's 'code' member
7861             (struct PackFile * code). Macros PCONST(i) and PNCONST are
7862             provided to access constants by index and the number of
7863             constants, respectively (assumes a variable 'interpreter' of
7864             the appropriate type is in scope).
7866           * Byte Code is accessed via the interpreter's 'code' member.
7868           * Changed PackFile_Constant to point to a STRING instead of
7869         having
7870             members for the string_make() arguments. Also has a 'type' IV
7871             in preparation for allowing multiple types of constants in
7872             const_table.
7874           * Removed hardcoded example program from test_main.c. We have
7875             plenty of test programs elsewhere.
7877           * test_prog now uses a PackFile to deal with the program before
7878             sending it on to the interpreter.
7880           * Added missing 'end' ops to some tests in t/op/integer.t and
7881             t/op/stacks.t.
7883 2001-09-26 18:38  thgibbs
7885         * assemble.pl: Separated code into functions and added comments.
7887 2001-09-26 18:29  simon
7889         * config_h.in:
7890         Fix 64-bit chunk-base issue.
7892 2001-09-26 06:55  thgibbs
7894         * t/op/bitwise.t: Added end to bitwise tests.
7896 2001-09-26 00:54  dan
7898         * docs/parrot_assembly.pod: Added in the base for threading, I/O,
7899         and interpreter creation. Skeleton only, but it's something to peer
7900         at.
7902 2001-09-25 21:44  thgibbs
7904         * t/op/trans.t: Removed loops in transcendtal op test.
7906 2001-09-25 10:12  simon
7908         * MANIFEST, t/op/basic.t, t/op/bitwise.t, t/op/integer.t,
7909         t/op/string.t, t/op/time.t:
7910         More tests
7912         Courtesy of: Alex Gough <alex@rcon.org>
7914 2001-09-24 19:08  gregor
7916         * t/op/number.t:
7917           * Enabled the clear_n test.
7919 2001-09-24 18:56  gregor
7921         * Parrot/.cvsignore:
7922           * Ignore the generated Types.pm file.
7924 2001-09-24 18:52  gregor
7926         * languages/jako/Makefile, t/op/number.t:
7927           * No need to skip the inc and dec numeric tests anymore. I fixed
7928         the
7929             assembler earlier today.
7931 2001-09-24 18:21  simon
7933         * MANIFEST, t/op/stacks.t:
7934         Oops.
7936 2001-09-24 18:19  simon
7938         * build_interp_starter.pl, interpreter.c, string.c, Parrot/Test.pm,
7939         include/parrot/exceptions.h, include/parrot/interpreter.h,
7940         lib/Parrot/Test.pm, t/op/string.t:
7941         1) captured error output, so can test errors, this might be bad,
7942         not sure.  2) basic tests for register stack frames, including some
7943         errors 3) I think we can stop skipping one of the string tests 4) I
7944         added some more substr tests, but substr was broken, so 5) changed
7945         substr to work with out of range values, or 6) throw an error if
7946         they're far too silly
7948         Courtesy of: Alex Gough <alex@rcon.org>
7950 2001-09-24 17:27  gregor
7952         * basic_opcodes.ops, opcode_table, t/op/number.t:
7953           * Op set_n was missing. Added it and a test for it. We now have
7954         the
7955             same int and num ops, except mod is int-only.
7957 2001-09-24 17:01  gregor
7959         * assemble.pl:
7960           * Fixed a typo: s/Line/line/
7962 2001-09-24 16:02  gregor
7964         * basic_opcodes.ops:
7965           * Fixed dec_n_nc opcode, which had += where it should have had
7966         -=.
7968 2001-09-24 15:34  gregor
7970         * assemble.pl:
7971           * Fixed handling of constants starting with '0' that should not
7972         be
7973             sent through oct(). For example 'set N2 0.1' was being
7974         interpreted
7975             as 'set N2 0' (naughty).
7977             As reported by Leon Brocard <acme@astray.com> in the comments
7978         of
7979             his mandelbrot.pasm example.
7981 2001-09-24 02:21  bdwheele
7983         * assemble.pl: fixed dumb code when --include was not specified.
7985 2001-09-24 02:17  simon
7987         * assemble.pl:
7988         Shit-sweeping.
7990 2001-09-24 01:56  bdwheele
7992         * assemble.pl: * Added --include=dir option to assembler to provide
7993         a path to look for included files.  * Error message of a macro is
7994         defined inside of a macro
7996 2001-09-23 21:29  bdwheele
7998         * assemble.pl: Added __FILE__ equate, fixed __LINE__ equate.
8000 2001-09-23 15:50  simon
8002         * Configure.pl:
8003         Fixed typo. Parrot might work again on non-8.3 filesystems. :)
8005 2001-09-23 02:03  ask
8007         * Configure.pl, test_c.in: fix missing newline at the end of test.c
8008         Courtesy of: acme@astray.com (Leon Brocard)
8010         rename 'test' executable used in Configure process to test_siz.
8012 2001-09-23 01:03  simon
8014         * process_opfunc.pl:
8015         iPaq fix. No, really.
8017 2001-09-23 00:47  simon
8019         * MANIFEST:
8020         Missed several, in fact.
8022 2001-09-23 00:46  simon
8024         * MANIFEST:
8025         Missed one.
8027 2001-09-22 21:13  simon
8029         * assemble.pl:
8030         Assembler register numbering rigour.
8032         Courtesy of: Leon Brocard <acme@astray.com>
8034 2001-09-22 18:20  simon
8036         * Makefile.in, lib/Test/More.pm, lib/Test/Simple.pm,
8037         lib/Test/Utils.pm:
8038         I'm sick of having to install Test::More everywhere. Temporary
8039         measure until we remove this silly dependency.
8041         Also a typo in Makefile.in which suggests some things were only
8042         happening correctly by sheer chance. :)
8044 2001-09-22 18:06  simon
8046         * README:
8047         test.pasm is dead, long like make test.
8049 2001-09-22 17:47  simon
8051         * t/op/number.t:
8052         De-fang overzealous floating point test.
8054 2001-09-22 17:39  simon
8056         * process_opfunc.pl:
8057         Remove hard-coded NV size assumption. Tru64 is nearly there!
8059 2001-09-22 17:18  simon
8061         * assemble.pl, disassemble.pl:
8062         More portability fixups.
8064 2001-09-22 16:44  simon
8066         * assemble.pl, Parrot/PackFile/Constant.pm,
8067         lib/Parrot/PackFile/Constant.pm:
8068         And I *think* this fixes Tru64.
8070 2001-09-22 16:37  simon
8072         * Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/ConstTable.pm:
8074         Oops.
8076 2001-09-22 16:36  simon
8078         * Parrot/PackFile.pm, Parrot/PackFile/ConstTable.pm,
8079         Parrot/PackFile/Constant.pm, lib/Parrot/PackFile.pm,
8080         lib/Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/Constant.pm:
8082         More removal of hard-coded pack formats.
8084 2001-09-22 15:21  simon
8086         * assemble.pl:
8088         Grrr. Why isn't this working?
8090 2001-09-22 15:18  simon
8092         * Parrot/PackFile.pm, Parrot/PackFile/ConstTable.pm,
8093         lib/Parrot/PackFile.pm, lib/Parrot/PackFile/ConstTable.pm:
8095         Make assemble use the PackFile modules; also fixed some bugs in
8096         them.
8098 2001-09-22 14:38  simon
8100         * Configure.pl, MANIFEST, Types_pm.in, assemble.pl, disassemble.pl:
8102         Abstract the argument and opcode packing types and functions out
8103         into a separate module. This *should* help us maintain consistency
8104         when we change the various types.
8106 2001-09-22 00:46  brentdax
8108         * Configure.pl: Delete test.o (or its equivalent) after Configure's
8109         test program finishes.
8111 2001-09-21 21:24  brentdax
8113         * Parrot/Test.pm, lib/Parrot/Test.pm: Fix error with \ as path
8114         separator (courtesy of Mattia Barbon <mbarbon@dsi.unive.it>)
8116 2001-09-21 21:09  gregor
8118         * Parrot/PackFile/ConstTable.pm, Parrot/PackFile/Constant.pm,
8119         lib/Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/Constant.pm:
8121           * Fixed pad calculation (similar to recent bug fix on C library)
8123 2001-09-21 20:23  simon
8125         * disassemble.pl:
8126         Pack types and sizes have gone askew.
8128 2001-09-21 20:18  brentdax
8130         * Configure.pl: Fix typo in setting stuff from the C test program
8132 2001-09-21 10:25  simon
8134         * basic_opcodes.ops, process_opfunc.pl:
8135         Document patches.
8137         Courtesy of: Leon Brocard <acme@astray.com>
8139 2001-09-21 06:06  ask
8141         * Config_pm.in, assemble.pl: fix 5.005_03.
8143 2001-09-21 06:03  ask
8145         * Configure.pl: make the ivsize detection work for us normal people
8146         without . in our PATH.  :-)
8148 2001-09-21 05:56  brentdax
8150         * test_main.c: Change _read to read for portability to Tru64
8151         (Damien Neil <neild@misago.org> and likely many others)
8153 2001-09-21 05:46  ask
8155         * Makefile.in: "update" target to update from cvs.
8157 2001-09-21 05:44  brentdax
8159         * Configure.pl, test_c.in: Fix issues with ivsize and nvsize
8161 2001-09-21 02:43  brentdax
8163         * Configure.pl: Fix a typo that forced the -g flag on
8165 2001-09-20 22:41  dan
8167         * packfile.c: Had some no-value returns. Naughty
8169 2001-09-20 22:40  dan
8171         * t/test.pasm: Added labels to output
8173 2001-09-20 15:39  simon
8175         * Parrot/Opcode.pm, Parrot/Test.pm, lib/Parrot/Opcode.pm,
8176         lib/Parrot/Test.pm:
8177         This patch does two only somewhat related things.
8179         Parrot/Opcode.pm:  Change the hard-wired assumption that sizeof(nv)
8180         = 2*sizeof(iv) to a PConfig-type computed value.
8182         Parrot/Test.pm:  Change it to run with the perl that was used to
8183         generate this version of Parrot.  This is useful if, for example,
8184         you want to use bleadperl to build and test parrot (e.g. to try out
8185         various 64-bit options) but you still have a 5.6.x (or 5.005_xx)
8186         installed as the default 'perl' on your system.  Since perl-5.7.x
8187         is installed 'version-only', a plain 'perl' is quite likely to pick
8188         up the older perl in such cases. Such an older perl might well not
8189         understand pack('q') used in the assembler.
8191         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
8193 2001-09-20 15:14  gregor
8195         * packfile.c:
8196           * Fixed a typo in pad calculation that throwing off unpack and
8197         pack.
8199 2001-09-20 15:03  thgibbs
8201         * t/op/integer.t: Removed overflow tests from integer.t.  set_i_ic
8202         tests now cover all registers.
8204         Courtesy of: Damien Neil neild@misago.org
8206 2001-09-20 14:48  thgibbs
8208         * process_opfunc.pl: Changed process_opfunc.pl to work on 64 bit
8209         machines.
8211 2001-09-20 14:35  simon
8213         * Configure.pl, assemble.pl:
8214         Pack IVs correctly.
8216         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
8218 2001-09-20 14:06  gregor
8220         * languages/jako/jakoc:
8221           * Fixed a tyop in the string interpolation regex.
8223         Courtesy of Michael L Maraist <maraist@UDel.Edu>
8225 2001-09-20 13:56  gregor
8227         * languages/jako/jakoc:
8228           * Updated jakoc to work with the single-destination comp ops.
8230 2001-09-20 05:08  bdwheele
8232         * assemble.pl: macro expansion.  Here's the test macro I was using:
8234         # this uses I32,I31 as temporaries.  # macro must be preceeded by a
8235         label.  testi       macro   num,got,want    print   "Test #"
8236         print   num     print   "..."   set     I32,want        set
8237         I31,got         eq      I32,I31,$ok     print   "NG\n"  branch
8238         $end $ok:       print   "OK\n" $end:    endm
8240         It is invoked as:
8242         Test1:  testi   1,I3,I2
8244 2001-09-20 03:52  dan
8246         * stacks.c, include/parrot/stacks.h: Preliminary files for the
8247         generic stack support
8249 2001-09-20 02:49  bdwheele
8251         * assemble.pl: Added include processing to assemble.pl  the syntax
8252         is: include 'file.to.include'
8254 2001-09-19 23:57  thgibbs
8256         * t/op/integer.t, t/op/number.t, assemble.pl, opcode_table: Fixed
8257         opcode_table listing of if_i_ic and if_n_ic.  Dan had changed the
8258         function to only use 2 args, but the opcode_table still had three
8259         listed.  Fixed integer.t and number.t to use the new comparison
8260         operators.  Improved assemble.pl ability to grok operators by
8261         constructing a function set and comparing operator types.
8263 2001-09-19 22:42  dan
8265         * assemble.pl: Binmodes the output filehandles now. (No more
8266         bytecode munching...)
8268 2001-09-19 22:32  dan
8270         * Configure.pl, basic_opcodes.ops, opcode_table, process_opfunc.pl,
8271         t/euclid.pasm, t/test.pasm, t/test2.pasm: Changed opcodes so
8272         conditional branches take a single argument, and fall through
8273         otherwise.
8275 2001-09-19 21:19  thgibbs
8277         * memory.c: Added explanation of mem_allocate_aligned give by Dan
8278         Sugalski
8280         Courtesy of: Josh Wilmes <josh@hitchhiker.org>
8282 2001-09-19 21:04  thgibbs
8284         * include/parrot/interpreter.h, Configure.pl,
8285         build_interp_starter.pl, bytecode.c, config_h.in, interpreter.c,
8286         process_opfunc.pl: Changed opcode_t from a union to a configurable
8287         type.
8289 2001-09-19 20:54  thgibbs
8291         * assemble.pl: Missed a couple of changes for 64 bit portability.
8293 2001-09-19 20:37  gregor
8295         * packfile.c, include/parrot/packfile.h:
8296           * Added "methods" for setting and getting all the various
8297         attributes,
8298             probably sufficient for an assembler to use the library.
8300 2001-09-19 20:04  thgibbs
8302         * assemble.pl: Modifications to run on 64 bit platforms.  To run on
8303         a 64 bit platform manually change the  setting for 'i' from 'l' to
8304         'q'.  This should be automatically done by a Configure setting in
8305         the near future.
8307 2001-09-19 19:10  thgibbs
8309         * config_h.in: changed c++ comment to c comment.
8311         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
8313 2001-09-19 17:48  gregor
8315         * .cvsignore, MANIFEST, Makefile.in, packfile.c, pdump.c,
8316         include/parrot/packfile.h:
8317           * C code for dealing with PackFiles as if they were objects.
8318         Mostly
8319             read-only interface for now, but it would not be hard to make
8320         it
8321             read-write. [packfile.c, include/parrot/packfile.h]
8323           * PackFile Dumping program that falls short of disassembling, but
8324             tests the above code and provides a hex listing of the byte
8325         code
8326             contents of the PackFile. [pdump.c]
8328           * New Makefile target 'pdump' for the above program, and related
8329             Makefile.in changes.
8331           * Updated MANIFEST to reflect the added files
8333           * Update .cvsignore to ignore pdump.
8335 2001-09-19 14:55  thgibbs
8337         * MANIFEST: Added number.t and trans.t to MANIFEST
8339 2001-09-19 05:40  thgibbs
8341         * process_opfunc.pl: Now taking & of opcode_t instead of i member
8342         of union opcode_t.  I hope this will be more portable for set_n_nc.
8344 2001-09-19 05:39  thgibbs
8346         * t/op/integer.t: Added end to test 1.
8348 2001-09-19 00:09  thgibbs
8350         * t/op/number.t: Added end to each test
8352 2001-09-19 00:00  simon
8354         * t/op/number.t:
8355         Number tests! Wooo!
8357         Courtesy of: Damien Neil <neild@misago.org>
8359 2001-09-18 23:52  thgibbs
8361         * interpreter.c: Added casts to appropriate types to make -Wall not
8362         complain on certain printf formats
8364 2001-09-18 23:31  thgibbs
8366         * t/op/integer.t: Added end to each test.
8368 2001-09-18 22:54  thgibbs
8370         * t/op/trans.t: Added trans.t for transcendental math function
8371         tests.
8373 2001-09-18 22:28  simon
8375         * MANIFEST:
8376         MANIFEST updates. (And notice how I carefully snuck in the
8377         t/op/integer.t there...)
8379         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
8381 2001-09-18 22:26  simon
8383         * t/: integer.t, op/integer.t:
8384         Except it doesn't go there. Duh.
8386 2001-09-18 22:25  simon
8388         * t/integer.t:
8389         Tests for integer ops.
8391         Courtesy of: Damien Neil <neild@misago.org>
8393 2001-09-18 22:03  thgibbs
8395         * include/parrot/bytecode.h, include/parrot/interpreter.h,
8396         build_interp_starter.pl, bytecode.c, config_h.in, interpreter.c,
8397         make_op_header.pl, process_opfunc.pl, test_main.c: Changed IV to
8398         opcode_t union for operators.  This required a few perl script
8399         changes to output the correct type.  There were also some changes
8400         to allow -pedantic in gcc
8402 2001-09-18 21:07  gregor
8404         * disassemble.pl, Parrot/PackFile.pm,
8405         Parrot/PackFile/ConstTable.pm, Parrot/PackFile/Constant.pm,
8406         lib/Parrot/PackFile.pm, lib/Parrot/PackFile/ConstTable.pm,
8407         lib/Parrot/PackFile/Constant.pm:
8408         Converted the disassembler to use the Parrot::PackFile Perl classes
8409         to do its job.
8411 2001-09-18 19:18  brentdax
8413         * Makefile.in: Fix missing functions for real this time.  (I
8414         swear!)
8416 2001-09-18 18:49  brentdax
8418         * Configure.pl: Remove unnecessary -I.. (courtesy of Andy Dougherty
8419         <doughera@lafayette.edu>}
8421 2001-09-18 18:47  brentdax
8423         * Makefile.in: Fix bugs with missing math, etc. functions
8425 2001-09-18 14:42  thgibbs
8427         * strnative.c: Sorry Simon...forgot bustart was a void* not a
8428         char*.
8430 2001-09-18 13:59  thgibbs
8432         * strnative.c: Removed unnecessary IV cast in concat.
8434 2001-09-18 13:58  thgibbs
8436         * t/op/string.t: Removed unnecessary IV cast in concat.  Added end
8437         to concat test in string.t
8439 2001-09-18 12:07  gregor
8441         * languages/jako/jakoc:
8442           * var num ... no longer requires assignment
8443           * automatic casting between int and num
8444           * Fixed an error message
8446         Courtesy of: Simon Cozens <simon@cvs.perl.org>
8448 2001-09-18 11:57  simon
8450         * TODO:
8451         Gonna have to start thinking of more things to do, soon.
8453 2001-09-18 10:42  simon
8455         * opcode_table:
8456         Introduce a little more tidiness into the opcode table.
8458 2001-09-18 03:06  gregor
8460         * basic_opcodes.ops, opcode_table, t/euclid.pasm:
8461         Resurrected register-const ops per Dan's request.
8463 2001-09-18 02:20  gregor
8465         * .cvsignore, Configure.pl, MANIFEST, Makefile.in,
8466         build_interp_starter.pl, bytecode.h, events.h, exceptions.h,
8467         global_setup.h, interpreter.h, io.h, memory.h, parrot.h,
8468         process_opfunc.pl, register.h, stacks.h, string.h, strnative.h:
8469         Committed some files that were missed in the last *.h moving
8470         commit.
8472 2001-09-18 02:17  gregor
8474         * include/parrot/.cvsignore: Fixed a typo in .cvsignore.
8476 2001-09-18 02:16  gregor
8478         * include/parrot/: .cvsignore, bytecode.h, events.h, exceptions.h,
8479         global_setup.h, interpreter.h, io.h, memory.h, parrot.h,
8480         register.h, stacks.h, string.h, strnative.h: Added .cvsignore file
8481         missed in last commit for the move of *.h to include/parrot.
8483 2001-09-18 01:32  simon
8485         * t/Makefile:
8486         Trivial "clean" target to t/Makefile.
8488 2001-09-18 01:32  simon
8490         * assemble.pl, build_interp_starter.pl, disassemble.pl,
8491         Parrot/Opcode.pm, lib/Parrot/Opcode.pm:
8492         Change icky Digest::MD5 for nice simple unpack()
8494         Courtesy of: Jonathan Scott Duff <duff@cbi.tamucc.edu>
8496 2001-09-18 00:35  simon
8498         * basic_opcodes.ops, opcode_table, docs/parrot_assembly.pod,
8499         t/op/string.t:
8500         New concat op. Hey, if I'm going to talk about it in an article,
8501         better implement it...
8503 2001-09-17 22:54  gregor
8505         * MANIFEST, Parrot/PackFile.pm, Parrot/PackFile/ConstTable.pm,
8506         Parrot/PackFile/Constant.pm, Parrot/PackFile/FixupTable.pm,
8507         lib/Parrot/PackFile.pm, lib/Parrot/PackFile/ConstTable.pm,
8508         lib/Parrot/PackFile/Constant.pm, lib/Parrot/PackFile/FixupTable.pm:
8510         Functions for reading, writing and manipulating Parrot Pack Files.
8511         NOTE: This is a proposed term based on the fact that the file
8512         contains more than just byte code, and another language (Java)
8513         calls its binary files by a broader notion of what's in them (Class
8514         Files). Since Perl has packages, and since we use pack() to write
8515         them, we'll call them PackFiles (at least for now).
8517         That does, however, beg the question of file extension. Should we
8518         name the files "foo.pack" instead of "foo.pbc"?
8520 2001-09-17 20:23  thgibbs
8522         * interpreter.c, test_main.c: Uncuddled else statements for coding
8523         standard.
8525 2001-09-17 19:57  gregor
8527         * Parrot/Opcode.pm, lib/Parrot/Opcode.pm:
8528         Added a $revision variable, parsing of the CVS Id line in
8529         opcode_table and a &revision() subroutine.
8531 2001-09-17 19:53  gregor
8533         * opcode_table:
8534         Added a CVS Id tag to it.
8536 2001-09-17 18:58  thgibbs
8538         * interpreter.c: Cleared interpreter flags on creation.
8540 2001-09-17 18:38  gregor
8542         * build_interp_starter.pl, bytecode.c, bytecode.h, interpreter.c,
8543         interpreter.h, test_main.c:
8544           * Provides macros in interp_guts.h for setting up arrays with
8545             op names and op arg counts (done via build_interp_starter.pl).
8547             These are used in the op tracing
8549           * The functions in bytecode.[hc] pass around a pointer to the
8550         length
8551             of the bytecode so that later when we get to runops, we know
8552             how much bytecode we've got and we can detect out-of-bounds
8553             jumping. The documentation is updated, too.
8555           * runops in interpreter.c now looks at interpreter->flags to
8556             decide if the core of runops should be runops_trace_core or
8557             runops_notrace_core. These new functions contain just the
8558             while-loop portion of runops. A new function runops_generic
8559             does any other setup (such as checking the bytecode
8560             fingerprint) or wrapup (such as complaining if we ended up
8561             out-of-bounds). NOTE: I didn't know what we should do for
8562             functions in here that are not part of the api, so I gave
8563             them docs with 'TODO' marks mentioning they really aren't
8564             part of the api. Guidance appreciated.
8566           * test_main.c now checks for '-t' arg and sets the tracing flag
8567             on its interpreter instance as appropriate.
8569 2001-09-17 17:47  bdwheele
8571         * assemble.pl: added some default equates, and if they're sub
8572         references, they are computed each time it is referenced.
8574 2001-09-17 16:15  dan
8576         * interpreter.h:
8578         Added flags to the interpreter structure and defined a few.
8580 2001-09-17 15:51  simon
8582         * bytecode.h, string.h:
8583         VAR_SCOPE on globals.
8585 2001-09-17 15:20  simon
8587         * MANIFEST:
8588         Parrot/Opcode.pm, Parrot/Test.pm into MANIFEST.
8590 2001-09-17 15:05  gregor
8592         * t/jump.pasm, MANIFEST:
8593         Added a test program to demonstrate jump_i.
8595 2001-09-17 14:44  thgibbs
8597         * register.c: Fixed register pop not using correct offset (off by
8598         one).
8600         Courtesy of: Philip Kendall <pak@ast.cam.ac.uk>
8602 2001-09-17 13:56  thgibbs
8604         * interpreter.c, register.c: Added code to call Parrot_clear_s
8605         during initialization and Parrot_clear_s and Parrot_clear_p when a
8606         new stack frame is pushed.
8608 2001-09-17 13:51  gregor
8610         * languages/jako/: Makefile, bench.jako, euclid.jako, fact.jako,
8611         fib.jako, hello.jako: Added bench.pasm to "clean"
8613 2001-09-17 13:49  gregor
8615         * languages/jako/: jakoc, Makefile:
8616         Added CVS Id tag.
8618 2001-09-17 13:49  gregor
8620         * languages/jako/jakoc:
8621         Code streamlining.
8623         Courtesy of: Buggs <buggs-perl6@splashground.de>
8625 2001-09-17 13:29  gregor
8627         * MANIFEST, opcheck.pl:
8628         Added an opcode_table checker to make sure that all opcodes listed
8629         there conform to a simple set of naming rules (rules themselves, of
8630         course, are subject to change).
8632 2001-09-17 13:23  thgibbs
8634         * string.c: Modified string.c to correctly use the return value of
8635         realloc.
8637 2001-09-17 05:26  brentdax
8639         * Makefile.in: Making the Makefile smarter
8641 2001-09-16 23:06  brentdax
8643         * hints/mswin32.pl: Finishing the Configure hints
8645 2001-09-16 23:05  brentdax
8647         * Configure.pl, Makefile.in, parrot.h, test_main.c,
8648         Parrot/Opcode.pm, lib/Parrot/Opcode.pm: Win32 compatibility,
8649         Configure hints, 5.005 compatibility, MANIFEST checking
8651 2001-09-16 19:25  bdwheele
8653         * assemble.pl: parrot assembly equates
8655 2001-09-16 18:03  gregor
8657         * Makefile.in:
8658         Added 'test' target to run new test suite.
8660 2001-09-16 17:33  simon
8662         * basic_opcodes.ops:
8663         'not' was being !, rather than ~. Too many Perl programmers here, I
8664         suspect.
8666         Courtesy of: Tom Hughes <tom@compton.nu>
8668 2001-09-16 17:21  simon
8670         * Parrot/Test.pm, lib/Parrot/Test.pm, t/harness, t/op/basic.t,
8671         t/op/string.t:
8672         A *real* test suite!
8674         Courtesy of: "Mattia Barbon" <mbarbon@dsi.unive.it>
8676 2001-09-16 16:49  gregor
8678         * basic_opcodes.ops, opcode_table:
8679         At Dan's request, my new register-constant comparison ops have been
8680         removed.
8682 2001-09-16 16:40  gregor
8684         * languages/jako/jakoc:
8685         Fixed a copy-paste error in one of jakoc's error messages.
8687         Courtesy of: Buggs <buggs-perl6-list@splashground.de>
8689 2001-09-16 16:37  gregor
8691         * languages/jako/jakoc:
8692         Modified comparison implementation to use temporary registers in
8693         the case of register-constant and constant-register comparisons.
8694         This will allow the compiler to emit code that works when the
8695         constant-comparison ops are backed out of Parrot. If the ops ever
8696         make their way back in, then jakoc can emit more efficient code
8697         again.
8699 2001-09-16 16:19  bdwheele
8701         * assemble.pl, t/local_label.pasm: Added local labels ($whatever)
8702         ... though not subroutine based like the documentation wants, they
8703         are local to the last non-local label defined.
8705 2001-09-16 14:02  simon
8707         * MANIFEST:
8708         And remember, when you add stuff, keep the manifest up to date.
8710 2001-09-16 02:55  ask
8712         * Makefile.in: a "shared" target for building libparrot.so
8714 2001-09-16 02:45  thgibbs
8716         * bytecode.c, bytecode.h, events.h, exceptions.h, global_setup.c,
8717         global_setup.h, interpreter.c, interpreter.h, io.h,
8718         make_op_header.pl, memory.c, memory.h, parrot.c, parrot.h,
8719         process_opfunc.pl, register.c, register.h, stacks.h, string.c,
8720         string.h, strnative.c, strnative.h, test_main.c: Updated files to
8721         use the coding standard PDD.  Also changed Perl_Interp to
8722         Parrot_Interp.
8724 2001-09-16 02:21  ask
8726         * README: emphasise the bits about the license not being worked out
8727         yet.
8729 2001-09-15 22:21  simon
8731         * process_opfunc.pl:
8732         basic_opcodes.c should *scream* that it's autogenerated.
8734 2001-09-15 21:58  gregor
8736         * languages/jako/Makefile:
8737         Fixed Makefile to use 'jakoc' instead of 'jako_compiler.pl' to
8738         compile.
8740 2001-09-15 21:58  gregor
8742         * languages/jako/: jako_compiler.pl, jakoc:
8743         Renamed the Jako compiler to jakoc from jako_compiler.pl
8745 2001-09-15 21:51  gregor
8747         * languages/jako/: Makefile, bench.jako, euclid.jako,
8748         jako_compiler.pl:
8749         Added a new bench.jako example based on Leon Brocard's Bench.java.
8751         Jako Compiler:   * fix a bug in assignment handling   * add some
8752         more conditionals to while and if   * revert to using implicit
8753         opcodes in a few cases that were broken     before the assembler
8754         patch went in recently.
8756 2001-09-15 21:46  gregor
8758         * assemble.pl, basic_opcodes.ops, opcode_table:
8759         New ops for register-constant INTEGER comparisons:
8761           {eq,ne,lt,le,gt,ge}_ic_ic
8763         New ops for register-register and register-constant NUMERIC
8764         comparisons:
8766           eq_nc_ic
8767           {ne,lt,le,gt,ge}_{n,nc}_ic
8769         Assembler:
8771           Allow uppercase and underscores in labels.
8773           Tweaks to the op infer code to make it work with the examples
8774         I've been
8775           creating.
8777 2001-09-15 19:16  thgibbs
8779         * README: Updated README to include Configure.pl
8781 2001-09-15 17:05  simon
8783         * build_interp_starter.pl:
8784         Casting happiness
8786         Courtesy of: Jarkko Hietaniemi <jhi@cc.hut.fi>
8788 2001-09-15 16:45  simon
8790         * assemble.pl:
8791         And the same again: Parrot/Opcode.pm wasn't "..-aware".
8793 2001-09-15 16:40  simon
8795         * t/Makefile:
8796         The Parrot/Opcode.pm dependency means we need to do -I.. in the
8797         test Makefile
8799 2001-09-15 12:26  simon
8801         * memory.c:
8802         Fixed to match the coding standards.
8804         Courtesy of: Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
8806 2001-09-15 01:57  ask
8808         * Configure.pl, Makefile.in, Parrot/Opcode.pm,
8809         lib/Parrot/Opcode.pm: make the Makefile use the perl that was used
8810         to run Configure.pl
8812 2001-09-15 01:48  ask
8814         * Parrot/Opcode.pm, lib/Parrot/Opcode.pm: if we need perl 5.6, just
8815         say so. :-)
8817 2001-09-15 01:42  gregor
8819         * languages/jako/: euclid.jako, fact.jako, fib.jako,
8820         jako_compiler.pl:
8821         Compiler: Added variable interpolation in double-quoted strings.
8822         Examples: Made use of variable interpolation.
8824 2001-09-15 01:28  gregor
8826         * Parrot/.cvsignore:
8827         Ignore the Config.pm generated file.
8829 2001-09-15 01:22  gregor
8831         * languages/jako/: .cvsignore, Makefile, euclid.jako, fact.jako,
8832         fib.jako, hello.jako, jako_compiler.pl:
8833         gnp: Added some more sample Jako files and added many more
8834         operators to the compiler. Preparations for supporting all the Math
8835         and bitwise ops.
8837 2001-09-14 19:06  simon
8839         * assemble.pl, build_interp_starter.pl, disassemble.pl,
8840         make_op_header.pl, process_opfunc.pl, Parrot/Opcode.pm,
8841         lib/Parrot/Opcode.pm:
8842         Move common table reading stuff to a module.
8844         Courtesy of: Damien Neil <neild@misago.org>
8846 2001-09-14 17:42  simon
8848         * .cvsignore:
8849         More .cvsignore foo.
8851 2001-09-14 17:40  simon
8853         * assemble.pl, config_h.in:
8854         De-coredump
8856         Courtesy of: Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
8858 2001-09-14 17:38  simon
8860         * assemble.pl, t/Makefile:
8861         Make assemble.pl look in its parent directory if the data files it
8862         needs aren't in the current one. Plus a Makefile that lets "make
8863         foo.pbc" work in t/
8865         Courtesy of: Rocco Caputo <troc@netrus.net>
8867 2001-09-14 16:29  simon
8869         * make_op_header.pl:
8870         Wildly experimental patch to make Parrot compile on FreeBSD. (And
8871         probably segfault everywhere else.)
8873 2001-09-14 15:58  dan
8875         * languages/jako/: euclid.jako, jako_compiler.pl:
8877         Added in the first mini-language that targets Parrot.
8879         Courtesy of: "Gregor N. Purdy" <gregor@focusresearch.com>
8881 2001-09-14 15:20  dan
8883         * memory.c: Was misaligning returned memory. Fixed.
8885 2001-09-14 15:08  simon
8887         * Makefile.in, basic_opcodes.ops, bytecode.c, global_setup.c,
8888         interpreter.c, interpreter.h, memory.c, parrot.c, parrot.h,
8889         register.c, register.h, string.c, string.h, strnative.c,
8890         test_main.c:
8891         Fixes to include <parrot/foo.h>
8893         Courtesy of: Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
8895 2001-09-14 12:05  simon
8897         * strnative.c:
8898         Appease Tru64.
8900 2001-09-14 12:01  simon
8902         * memory.c:
8903         Appease Tru64.
8905 2001-09-14 11:54  simon
8907         * interpreter.c:
8908         Remove lvalue cast.
8910 2001-09-14 11:45  simon
8912         * Configure.pl:
8913         Be 5.005 friendly.
8915 2001-09-14 11:39  simon
8917         * Configure.pl:
8918         Tru64 cc doesn't like -Wall
8920 2001-09-14 10:57  simon
8922         * Config_pm.in, Configure.pl, MANIFEST, Makefile, Makefile.in,
8923         assemble.pl, build_interp_starter.pl, bytecode.c, bytecode.h,
8924         config.h.in, config_h.in, disassemble.pl, interpreter.c:
8925         Configure now generates Makefile
8927         Courtesy of: Brent Dax <brentdax@cpan.org>
8929 2001-09-14 10:08  simon
8931         * t/test3.pasm:
8932         Add "end"
8934         Courtesy of: Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
8936 2001-09-14 10:07  simon
8938         * assemble.pl:
8939                 * uses Getopt::Long for options.  -c is now --checksyntax.
8940         I wasn't
8941         sure how to keep compatible (patches welcome!)         * options
8942         include:                 --help                 --version
8943               --verbose                 --output=file
8944         --listing=file                 --checksyntax         * produces
8945         verbose listing of what the assembler saw :)  Only one nitpick with
8946         it:  unknown symbols are given as 0xffffffff, unfortunately, this
8947         includes symbols which may be defined later in the file (i.e.
8948         forward jumps).
8950         Courtesy of: Brian Wheeler <bdwheele@indiana.edu>
8952 2001-09-14 10:06  simon
8954         * strnative.c:
8955         substr growth fixup
8957         Courtesy of: Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
8959 2001-09-14 10:03  simon
8961         * bytecode.c, global_setup.c, interpreter.c, memory.c, memory.h,
8962         register.c, string.c, strnative.c, test_main.c:
8963         Coding standards conformance
8965         Courtesy of Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
8967 2001-09-14 09:46  simon
8969         * assemble.pl:
8970         Make the assembler grok transcendental maths again.  Courtesy of:
8971         Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
8973 2001-09-13 17:29  simon
8975         * assemble.pl:
8976         Better opcode guessing, from Brian Wheeler. (Again!)
8978 2001-09-13 17:20  dan
8980         * docs/parrot_assembly.pod:
8982         Took out duplicate entries for iton, ntoi, and tostring.
8984 2001-09-13 17:16  simon
8986         * assemble.pl, basic_opcodes.ops, opcode_table:
8987         From Brian Wheeler:
8989         This patch gives the assembler support of '\a','\n','\r','\t', and
8990         '\\' in string constants.
8992         In addition, it changes (for all registers) "I reg %li is ..." to
8993         just the value of the register.  Printing constants is also
8994         supported, but alas, you have to specify the type (print_sc,
8995         print_ic, print_nc).
8997 2001-09-13 15:38  simon
8999         * assemble.pl:
9000         Why don't I actually *test* this stuff before applying it, eh?
9002 2001-09-13 15:34  simon
9004         * TODO, t/euclid.pasm:
9005         From: "Gregor N. Purdy" <gregor@focusresearch.com> Subject: [patch
9006         (really)] Removed opcode qualifers t/euclid.pasm to exercise opcode
9007         inference
9009 2001-09-13 14:42  simon
9011         * assemble.pl:
9012         A new assembler, from Brian Wheeler.
9014 2001-09-13 09:44  simon
9016         * basic_opcodes.ops, interpreter.h, parrot.h, strnative.c,
9017         test_main.c:
9018         Two more from Tom Hughes:     Patch to fix C++ style comments
9019         Patch to remove use of structure constant/cast
9021 2001-09-13 09:39  simon
9023         * TODO, docs/strings.pod:
9024         Update string docs.
9026 2001-09-13 09:36  simon
9028         * Makefile, basic_opcodes.ops:
9029         Tom Hughes      Patch to link with the maths library Tom Hughes
9030          Patch to fix += on rvalue
9032 2001-09-13 08:57  simon
9034         * MANIFEST:
9035         I guess nobody's been using the nightly builds...
9037 2001-09-13 08:27  simon
9039         * assemble.pl, basic_opcodes.ops, opcode_table:
9040         Bitwise ops, from Brian Wheeler.
9042 2001-09-13 08:23  simon
9044         * .cvsignore, t/.cvsignore:
9045         .cvsignore's, from Gregor Purdy.
9047 2001-09-13 08:22  simon
9049         * Makefile:
9050         Euclidean test and test output rearranging from Gregor Purdy.
9052 2001-09-13 08:21  simon
9054         * assemble.pl, basic_opcodes.ops, disassemble.pl, opcode_table:
9055         Math ops from Gibbs Tanton.
9057 2001-09-13 08:14  simon
9059         * basic_opcodes.ops, opcode_table, string.c, string.h, strnative.c,
9060         t/test2.pasm:
9061         String substr op; also rearranged "encoding" to be a vtable
9062         pointer, not an array index. Haven't changed docs to reflect this,
9063         oops.
9065         Simon
9067 2001-09-12 19:48  dan
9069         * t/euclid.pasm: Implementation of Euclid's Algorithm, courtesy of
9070         Gregor Purdy
9072 2001-09-12 19:39  dan
9074         * basic_opcodes.ops, opcode_table: From Gregor Purdy. Adds mod_i.
9076 2001-09-12 19:23  dan
9078         * interpreter.h, parrot.h: Quick placeholder entry for string
9079         function tables
9081 2001-09-12 18:58  dan
9083         * memory.c: Added in a cast to make gcc happy.
9085 2001-09-12 16:44  dan
9087         * docs/parrot_assembly.pod:
9089         PDD describing parrot's assembly language and the opcodes in it
9091 2001-09-12 14:20  dan
9093         * memory.c:
9094         Fixed alignment issues with allocation
9096 2001-09-12 10:54  simon
9098         * Makefile, assemble.pl, bytecode.c, disassemble.pl,
9099         make_op_header.pl, opcode_table, process_opfunc.pl:
9100         Brian Wheeler's big patch:
9102         * Changes the opcode_table file to provide additional information
9103         about the operands.  Case shouldn't be a problem since that data
9104         never becomes a C symbol [this is pretty much as before]
9106         * Padding errors solved:  assemble.pl and bytecode.c were padding
9107         the constants incorrectly.  It should have been 4-(size % 4), not
9108         just (size % 4).  It is now fixed in both places.
9110         * assembler has less special cases, and should be easier to hang
9111         error checking on
9113         * disassembler dumps constant table and the format is a bit
9114         prettier, including register names, etc.
9116 2001-09-11 23:21  dan
9118         * build_interp_starter.pl, interpreter.c:
9120         Abstracted the runops function core into a macro for easy
9121         replacement later.
9123 2001-09-11 10:43  simon
9125         * Configure.pl, MANIFEST, Makefile, config.h, config.h.in:
9126         Configure system from Brent Dax <brentdax@cpan.org>
9128 2001-09-11 09:38  simon
9130         * assemble.pl, test.pbc:
9131         From: Bryan C. Warnock <bwarnock@raba.com> Subject: Patch:
9132         assembler deferred output
9134         Also got rid of the bytecode, since that's probably way out of
9135         date.
9137 2001-09-11 09:26  simon
9139         * basic_opcodes.ops, opcode_table, t/test2.pasm:
9140         From: Bryan C. Warnock <bwarnock@raba.com> Subject: length_s_i
9141         patch
9143 2001-09-10 23:20  simon
9145         * MANIFEST:
9146         And that move needs a MANIFEST change. So many things to remember!
9148 2001-09-10 23:18  simon
9150         * t/: test.pasm, test2.pasm, test3.pasm:
9151         Move tests to t/. (Oh, CVS doesn't work the way I think it does.)
9153 2001-09-10 23:18  simon
9155         * test.pasm, test2.pasm, test3.pasm:
9156         Move tests to t/
9158 2001-09-10 23:04  dan
9160         * test3.pasm:
9162         Register push/pop test
9164 2001-09-10 22:47  simon
9166         * basic_opcodes.ops, bytecode.c, parrot.h, test_main.c:
9167         Fix up format warnings, from Sam Tregar <sam@tregar.com>.
9168         (Modified to avoid conflict with Dan's changes.)
9170 2001-09-10 22:45  dan
9172         * disassemble.pl:
9174         Happier about blanks in opcode_table
9176 2001-09-10 22:40  dan
9178         * interpreter.c, register.c:
9180         Yanked out debugging code, since these work OK. The bug I want is
9181         elsewhere.
9183 2001-09-10 22:30  simon
9185         * MANIFEST:
9186         Uhm. We want make_op_header.pl. We really, really do.
9188 2001-09-10 22:26  simon
9190         * Makefile, TODO, assemble.pl, basic_opcodes.ops,
9191         build_interp_starter.pl, disassemble.pl, make_op_header.pl,
9192         opcode_table, process_opfunc.pl:
9193         Automatic opcode numbering, from Leon Brocard <acme@astray.com>.
9194         This means we can add lots more opcodes without fiddling about with
9195         the numbers. Hooray!
9197         Don't forget that "end" needs to be op zero, else the interpreter
9198         falls off the end of the code. This is Bad, and I wonder if there's
9199         a way around it.
9201 2001-09-10 19:49  simon
9203         * MANIFEST, make_op_table_build.pl:
9204         Hey! This doesn't do anything...
9206 2001-09-10 19:46  simon
9208         * Makefile:
9209         "clean" target cleanup from Bryan C. Warnock <bwarnock@raba.com>.
9211 2001-09-10 18:31  simon
9213         * MANIFEST:
9214         You know what this means...
9216 2001-09-10 18:30  simon
9218         * assemble.pl:
9219         "use strict" patch from Leon Brocard <acme@astray.com>. Hey, why
9220         wait for a release...? :)
9222 2001-09-10 18:13  simon
9224         * interpreter.c:
9225         Bad Dan! No cookie!
9227 2001-09-10 17:56  simon
9229         * README:
9230         A *real* README file, which doesn't claim it isn't for public
9231         consumption.
9233 2001-09-10 17:02  simon
9235         * TODO:
9236         More things to do.
9238 2001-09-10 16:56  dan
9240         * TODO: Added in assembler gripe. Also added a few blank lines for
9241         clarity
9243 2001-09-10 16:49  dan
9245         * register.h, register.c: Renamed the core functions so the opcodes
9246         can find 'em OK. (There were some conflicts)
9248 2001-09-10 16:48  dan
9250         * basic_opcodes.ops, opcode_table: Added register window ops
9252 2001-09-10 11:07  simon
9254         * TODO:
9255         Trivial TODO list.
9257 2001-09-10 11:05  simon
9259         * test.pbc, test2.pasm, test_main.c: Other string bits and pieces;
9260         note "-s" flag to test prog.
9262 2001-09-10 11:01  simon
9264         * docs/strings.pod:
9265         New string documentation.
9267 2001-09-10 11:01  simon
9269         * basic_opcodes.ops, opcode_table:
9270         String ops.
9272 2001-09-10 10:53  simon
9274         * global_setup.c:
9275         More string fu.
9277 2001-09-10 10:51  simon
9279         * memory.h:
9280         Just some more aliases for now. Used by string handling stuff.
9282 2001-09-10 10:50  simon
9284         * assemble.pl, bytecode.c, bytecode.h:
9285         Temporary hack to store string constants in bytecode and recreate
9286         them at runtime.
9288 2001-09-10 10:48  simon
9290         * op.h:
9291         op.h is now generated by the Makefile; remove it.
9293 2001-09-10 10:47  simon
9295         * Makefile:
9296         clean and op.h Makefile targets.
9298 2001-09-10 10:45  simon
9300         * string.c, string.h, strnative.c:
9301         More string vtable stuff.
9303 2001-09-07 21:07  dan
9305         * assemble.pl:
9307         Much less picky about whitespace in the opcode_table now. (Doesn't
9308         whine on blank lines)
9310 2001-09-07 16:23  dan
9312         * Makefile, assemble.pl, global_setup.h, interpreter.c,
9313         interpreter.h, opcode_table, parrot.h, test.pasm: (Here's hoping
9314         this takes) Added global_setup.h to declare init_world function
9316         Moved variable declarations out of the interpreter loop for small
9317         speed boost.
9319         Changed end opcode to now be opcode #0. A function is provided for
9320         it, but isn't ever executed.
9322         When the interpreter sees an opcode 0 in the stream it means the
9323         end of stream. Things were coring on Cygwin otherwise. (I think I
9324         was dereferencing a zero, which is bad)
9326 2001-09-06 22:07  dan
9328         * basic_opcodes.ops, process_opfunc.pl:
9330         Minor tweaks to basic_opcodes.ops to fix some NV issues. The rest
9331         are minor changes now that things are in a fixed state.
9333 2001-09-06 16:13  dan
9335         * basic_opcodes.c, test_opcodes.c:
9336         test_opcodes.c is now irrelevant--they're all in basic_opcodes.ops.
9338         basic_opcodes.c is now autogenerated from basic_opcodes.ops, and
9339         should be nuked. So it is. :)
9341 2001-09-06 03:35  dan
9343         * basic_opcodes.ops, build_interp_starter.pl, process_opfunc.pl:
9344         Scripts to build the header file that holds the function table
9345         creation code, as well as the script to turn an opcode file to C
9346         source. (And the basic opcode functions turned into an opcode
9347         source file)
9349 2001-09-06 03:31  dan
9351         * Makefile, interpreter.c:
9352         Changes to support the autogeneration of the opcode function
9353         pointer table in interpreter.c, along with the changes to the
9354         Makefile needed.
9356 2001-09-05 13:27  simon
9358         * bytecode.c, config.h, docs/opcodes.pod, docs/overview.pod,
9359         docs/parrotbyte.pod, docs/vtables.pod:
9360         Added stubs for the documents; working on them this week. (What's
9361         left of it.) config.h change is just to type VTABLE, and the
9362         bytecode thing you might want to revoke. It's apidoc for the
9363         functions in there.
9365 2001-09-03 18:26  simon
9367         * docs/strings.pod:
9368         A start on the string API documentation.
9370 2001-09-03 17:43  simon
9372         * opcode_table:
9373         Since we specify the opcode number, we can rearrange to a more
9374         human-friendly ordering.
9376 2001-09-03 17:42  simon
9378         * basic_opcodes.c:
9379         Coupl'a logic bugs. (I think)
9381 2001-09-03 17:41  simon
9383         * string.c, string.h, strnative.c:
9384         Tidying up the string vtables.
9386 2001-09-03 17:38  simon
9388         * make_op_header.pl:
9389         Spit out the whole of op.h, not just the bit in the middle.
9391 2001-08-29 13:16  ask
9393         * README: it seems like we indeed can commit. What about sending
9394         commit mails?
9396 2001-08-29 13:07  simon
9398         * Makefile, README, assemble.pl, basic_opcodes.c, bytecode.c,
9399         bytecode.h, config.h, disassemble.pl, events.h, exceptions.h,
9400         global_setup.c, interpreter.c, interpreter.h, io.h,
9401         make_op_header.pl, make_op_table_build.pl, memory.c, memory.h,
9402         op.h, opcode_table, parrot.c, parrot.h, register.c, register.h,
9403         stacks.h, string.c, string.h, strnative.c, strnative.h, test.pasm,
9404         test.pbc, test_main.c, test_opcodes.c:
9405         Initial checkin of Simon's work directory - Dan, feel free to nuke.
9406          I'm still working on the string stuff, though.
9408 2001-08-29 12:44  ask
9410         * README: update README with list address
9412 2001-08-29 12:36  ask
9414         * README: first readme.