[debugger] Add ability to assign to registers
[parrot.git] / ChangeLog
blobb4801bcc49a241acbd851432c6c9409e0ef33992
1 #1 $Id$
3 2009.7.21     cotto
4         * Released 1.4.0
5         See NEWS for more.
7 2009.06.16    Whiteknight
8         * Released 1.3.0
9         Ses NEWS for more.
11 2009.05.19    Infinoid
12         * Released 1.2.0
13         See NEWS for more.
15 2009.04.21    fperrad
16         * Released 1.1.0
17         See NEWS for more.
19 2009.03.17    allison
20         * Released 1.0.0
21         See NEWS for more.
23 2009.02.17    kjs
24         * Released 0.9.1
25         See NEWS for more.
27 2009.01.20    chromatic
28         * Released 0.9.0
29         See NEWS for more.
31 2008.12.16    Whiteknight
32         * Released 0.8.2
33         See NEWS for more.
35 2008.11.18    chromatic
36         * Released 0.8.1
37         See NEWS for more.
39 2008.10.21    particle
40         * Released 0.8.0
41         See NEWS for more.
43 2008.09.16    pmichaud
44         * Released 0.7.1
45         See NEWS for more.
47 2008.08.19    rgrjr
48         * Released 0.7.0
49         See NEWS for more.
51 2008.07.15    barney
52         * Released 0.6.4
53         See NEWS for more.
55 2008.06.17    smash
56         * Released 0.6.3
57         See NEWS for more.
59 2008.05.20    chromatic
60         * Released 0.6.2
61         See NEWS for more.
63 2008.04.15    particle
64         * Released 0.6.1
65         See NEWS for more.
67 2008.03.18    bernhard
68         * Released 0.6.0
69         See NEWS for more.
71 2008.02.20    pmichaud
72         * Released 0.5.3
73         See NEWS for more.
75 2008.01.15    rgrjr
76         * Released 0.5.2
77         See NEWS for more.
79 2007.12.18    jonathan
80         * Released 0.5.1
81         See NEWS for more.
83 2007.11.20    chromatic
84         * Released 0.5.0
85         See NEWS for more.
87 2007.10.17    coke
88         * Released 0.4.17
89         See NEWS for more.
91 2007.09.18    particle
92         * Released 0.4.16
93         See NEWS for more.
95 2007.08.22    pmichaud
96         * Released 0.4.15
97         See NEWS for more.
99 2007.07.17    particle
100         * Released 0.4.14
101         See NEWS for more.
103 2007.06.19    allison
104         * Released 0.4.13
105         See NEWS for more.
107 2007.05.15    chromatic
108         * Released 0.4.12
109         See NEWS for more.
111 2007.04.17    mdiep
112         * Released 0.4.11
113         See NEWS for more.
115 2007.03.20    coke
116         * Released 0.4.10
117         See NEWS for more.
119 2007.3.10     coke
120         * removed parakeet
122 2007.02.22    pmichaud
123         * Released 0.4.9
124         See NEWS for more.
126 2007.01.17    chromatic
127         * changed 'name' method on namespaces to 'get_name' per pdd21
129 2007.01.16    particle
130         * Released 0.4.8
131         See NEWS for more.
133 2006.12.12    particle
134         * added C<isnull> opcode
136 2006.11.14    chip
137         * Released 0.4.7
138         See NEWS for more.
140 2006.11.07      tewk
141         * added :init pragma functionality to subs
143 2006.10.28      jonathan
144         * added :vtable pragma functionality to subs
146 2006.09.18    chromatic
147         * added Parrot::Embed under ext/Parrot-Embed
149 2006.08.18    leo
150         * remove the None PMC - if needed it can trivially be reimplemented
151           in languages from r14189
153 2006.08.16    creiss
154         Merged Software Transactional Memory branch into trunk, adds:
155         * several new opcodes whose names start with stm_
156         * read-only PMC support
157         * several new PMC types (whose names start with STM*)
158         * support for threads (again)
160 2006.08.08    chip
161         * Released 0.4.6
162         See NEWS for more.
164 2006.08.02    chip
165         * opcodes: "in PMC" is no longer a synonym for "invar PMC";
166         there are opcodes now that want the real "in PMC".
167         * namespace and global opcodes now accept name arrays again, as
168         well as keys; the corresponding namespace PMC methods are gone.
170 2006.07.21    leo
171         * Parrot_exit, Parrot_on_exit take now an Interp * argument
173 2006.07.25    chip
174         * add experimental op find_type_i_p
175         * fix longstanding bug that sometimes didn't encode pasm keys as
176         Key PMCs (specifically "[S0]" and "['stringliteral']").
178 2006.07.24    chip
179         further implementation of new pdd21:
180         * new opcodes {get,set}*global
181           (old {find,store}*global will be supported for a short while)
183 2006.07.20    audreyt
184         * --maintainer prerequesites are now bison 2.2+ and flex 2.5.3x
185           (or some such --leo)
186           (at the moment code is checking for 2.0 -- ambs)
188 2006.07.17    chip
189         partial implementation of new pdd21:
190         * old: "get_namespace KEY".  new: "get_hll_namespace KEY"
191         * get_namespace and find_global opcodes no longer accept arrays
192           of strings.  To use arrays, call namespace object methods.
194 2006.06.19    leo
195         * Released 0.4.5
196         See NEWS for more.
198 2006.06.03    leo
199         * I and N registers are never cleared to 0 / 0.0 on subroutine entry
201 2006.05.14    leo
202         * Released 0.4.4
203         See NEWS for more.
205 2006.04.30    bernhard
206         * Make the Perl PMCs dynamic and move them to src/dynpmc
208 2006.04.02    leo
209         * Released 0.4.3
210         See NEWS for more.
212 2006.03.06    leo
213         * Shifted argument type bits left by 2 according to r11754
214           change of docs/pdds/pdd03_calling_conventions.pod
215         * if you are creating PASM then code needs adjustment
217 2006.02.22    leo
218         * Released 0.4.2
219         See NEWS for more.
221 2006.01.16    bernhard
222          * rename src/dynclasses to src/dynpmc
223          * rename src/classes to src/pmc
225 2006.01.15    leo
227          * find_global and friends returns a .Null PMC instead of .Undef on
228           lookup failure, iff lookup exceptions are off
230 2006.01.08    leo
231         * Released 0.4.1
232         See NEWS for more.
234 2005.12.28    particle
235         * renamed all .imc files to .pir
236         * modified all doc references to .pir as well
238 2005.12.13    particle
239         * moved jit/ directory to src/jit/
241 2005.12.12    particle
242         * moved io/ directory to src/io/
243         * moved classes/ directory to src/classes/
244         * moved dynclasses/ directory to src/dynclasses/
246 2005.12.08    particle
247         * moved types/ directory to src/types/
248         * moved pf/ directory to src/packfile/
249         * moved ops/ directory to src/ops/
251 2005.12.08    particle
252         * moved charset/ directory to src/charset/
253         * moved encodings/ directory to src/encodings/
255 2005.12.07    particle
256         * moved imcc/ directory to compilers/imcc/
258 2005.12.06    particle
259         * moved util/ directory to tools/util/
260         * removed imcc/examples/ directory
261         * moved ast/ directory to compilers/ast/
263 2005.12.05    particle
264         * moved imcc/docs/ directory to docs/imcc/
265         * moved build_tools/ directory to tools/build/
266         * modified MANIFEST, MANIFEST.generated, and MANIFEST.SKIP
268 2005.12.04    leo
269         * Released 0.4.0
270         * See NEWS for changes
272 2005.11.06    leo
273         * Released 0.3.1
274         * See NEWS for changes
276 2005.10.01    leo
277         * Released 0.3.0
278         * See NEWS for changes
280 2005.08.05    leo
281         * Released 0.2.3
282         * See NEWS for changes
284 2005.07.03    leo
285         * Released 0.2.2
286         * See NEWS for changes
288 2005.06.04    leo
289         * Released 0.2.1
290         * allow short names for object attributes
291         * string encoding and charset can now be set independently
292         * experimental mmap IO layer for slurping files
293         * enable compile opcode support for compilers written in PASM/PIR
294         * improved HLL support with .HLL and n_operators pragmas
295         * simplified hash code
296         * more strength reduce optimizations
297         * distinct debug and trace flag settings
298         * glob support in PGE
299         * new character classification opcodes and interfaces
300         * numerous bug fixes and enhancements
302 2005-05-08    leo
303         * Released 0.2.0
304         * parrot repository is now under subversion
305         * MMD (Multi Method Dispatch) enhanced
306         * new unary and infix opcodes that return new result PMCs
307         * dynamic scalar PMCs inherit now almost all from Parrot core PMCs
308         * more unification of PMCs and ParrotObjects
309         * tailcalls for functions and methods
310         * PGE (Parrot Grammar Engine) reworked
311         * Pugs creates Parrot code and Pugs is a registered compiler now
312         * new languages/lisp
313         * the usual bug fixes and improvements
315 2005-03-06    leo
316         * Released 0.1.2
317         * big rewrite of string code, not yet finished but ...
318         * partial implementation of a generational garbage collector
319         * indirect register frame addressing
320         * .return(args) PIR syntax
321         * moved most of the Python code to dynclasses
322         * a lot more Python functionality
323         * precalculate opcodes with all constants
324         * PGE - Parrot Grammar Engine
325         * scalar classes refactoring
326         * much more tests and big test system cleanup
327         * improved documentation
328         * and as always a lot more
330 2004-10-09    leo
331         * Released 0.1.1
332         * Need Perl 5.6 now for building
333         * Basic AST support, PAST file parser, bits of code generation
334         * BigInt PMC using GMP
335         * Complex PMC
336         * Dynamic loading improved including bundles of PMC classes
337         * Experimental support for "make install"
338         * IA64 and hppa JIT support
339         * ICU unicode support
340         * IO layer handling code
341         * IO readline and buffered IO fixes
342         * Incremental GC
343         * Internal pythonic functions: filter, map, reduce, max, min ...
344         * Languages updates for m4, tcl, perl6, regex. New parakeet language.
345         * Library updates, Stream and SDL library
346         * MMD - multi method dispatch for binary vtable methods
347         * Many new array PMCs
348         * Method call syntax in PIR obj."meth"(...)
349         * More OS stuff: stat, exec, system, gmtime, piped read and write
350         * New Python PMCs like Enumerate, None
351         * Non-branching compare opcodes
352         * PIR support for += and friends
353         * Python language subdir
354         * Python types mapped to existing PMCs
355         * Slices and range support
356         * Tons of bug fixes, documentation updates, new tests
357         * Win32 COFF exec support
358         * ... and a lot more
360 2004-02-29    leo
361         * Released 0.1.0
362         * "Ladies and gentlemen, I give you... objects!"
363         * Huge documentation overhaul
364         * More supported platforms, s. PLATFORMS
365         * Basic thread support for pthread based architectures
366         * Basic event handling for timers and signals including:
367         * PASM callbacks for NCI (native C) functions.
368         * Improved platform configuration
369         * COW stacks now working, stacks code redone
370         * Structure handling vastly improved
371         * Random PMC and rand primitives
372         * Better subroutine call syntax in PIR
373         * Make PIR subroutines compliant with pdd03
374         * Improved profiling (DOD, GC timings)
375         * Hash code improvements, incl. random key order support
376         * Experimental freeze/thaw code for some PMC types
377         * IO improvements for buffered layer and Win32
378         * String iterators
379         * String bitwise vtables
380         * Many new opcodes
381         * Support for JIT, where malloced memory isn't executable
382         * Priority DOD scheme for objects that need timely destruction
383         * Improved bytecode loading (e.g. onLoad functions)
384         * Language updates: forth, Perl6/P6C, m4
385         * Libraries: Getopt_Long, SDL, Dumper, Sort
386         * new JAPH examples
387         * Unified imcc and parrot test handling
388         * Many new tests (make test reports 1386 tests)
389         * Numerous bug fixes
392 2003-10-31    leo
393         * Released 0.0.13
394         * Yep thirteen - haunted by the ghost of 0.0.12
395         * Build imcc as parrot
396         * Objects more finished
397         * Delegate vtable methods to byte code
398         * Binary multi-method dispatching
399         * Isa and does methods for PMCs
400         * Call byte code from C
401         * Start of extension interface
402         * Experimental struct handling
403         * Catch access to NULL PMCs
404         * Experimental network socket interface code and opcodes
405         * IO fixes and improvements
406         * Dynamic opcode libraries
407         * Fix-assigned opcode numbers
408         * Argument flattening for function calls
409         * More native call interface (NCI) signatures
410         * Ncurses, postgres, and pcre interface libraries
411         * Forth language is vastly improved
412         * BSD and Win32 build improvements
413         * Many new tests and fixes
415 2003-10-22    melvin
416         * imcc moved from parrot/languages/ to parrot/
418 2003-09-20    sfink
420         * updated the native_pbc test files (from Leo)
421         * built 0.0.11.1 release tarball
423 2003-09-20    sfink
425         * CHANGES BUNDLED INTO 0.0.11:
426         * Executable output
427         * Dynamic PMC registration
428         * Trial exception system
429         * Beginnings of object system
430         * Iterators
431         * Ordered hashes
432         * I/O system improvements
433         * References
434         * Documentation for basic PMC types
435         * IMCC support of Parrot Calling Conventions
436         * Runtime loading of chartypes (and other string improvements)
437         * Conditional breakpoints
438         * Dramatically accelerated sweeps for finalizable objects
439         * Small PMCs (PMCs split into core and extensions)
440         * Loadable bytecode packfiles
441         * Constant PMCs
442         * Sub variants that deal with the stack correctly
443         * Switched runops core
444         * Line numbers in warnings
445         * Environment access
446         * Many documentation cleanups
447         * Conversion to CPS style!
448         * BASIC debugger and many other wacky features
449         * Filename, line number parsing support in IMCC
451 2003-07-21 17:31 chromatic
452         * applied copyright patch from Josh Wilmes
454 2003-06-14 13:50 dan
455         * Moved the registers out of the context structure, since they
456           really aren't context
457         * Changed the register stack frames to hold only 16 registers
458           rather than 32, added half-set push and pop ops, and reworked
459           the full set push/pops to do two half-set push/pops. Should
460           speed up saving register data on calls, since we usually only
461           care about the top half of the registers anyway.
462         * Started committing some of the new class/object framework
463         * Remembered to finally start updating the Changelog
465 2003-03-18 03:50  ask
467         * Various files
468           Update Yet Another copyright statements to reflect the (no longer
469           so) shiny new year.
471 2003-03-11 22:06  chip
473         * Configure.pl: print help on non-option command line args
475 2002-12-18 20:38  sfink: changes since 0.0.8
477         - Allow suppression of cgoto core to save memory during compile
478         * Native function calling interface
479         * Major rewrite of stack and list aggregates
480         - Scalar PMC added
481         * Scratchpads implemented
482         - Win32 libraries
483         - Internal memory subsystem documentation
484         * Preliminary DotGNU support
485         - Packfile fingerprinting
486         * Buffer/PMC unification (into PObjs)
487         * stabs debugging information support
488         * Major Jako overhaul, including:
489           - imcc integration
490           - native function calling
491         - Perl6 string interpolation
492         - languages/regex now targets IMCC
493         * Optional Lea memory allocator
494         * Full sprintf implementation
495         * Many, many new tests
496         * Miniparrot
497         - exchange ops
498         - runtime-controllable gc debugging
499         * PMC properties
500         - Crash info
501         * JIT: various improvements
502           - register usage tracking
503           - block register allocation
504           - optimizations
505           - more jitted ops
506           - restartable
507           - architecture abstraction layer
508           - debugging via GDB
509         * Beginning support for extensible packfiles
510         * Much better key support, generally
511         * splice()
512         * Restructured PMC hierarchy with better functionality inheritance
513         * IMCC: many, many improvements. See imcc/ChangeLog
514         * Perl6: index map grep join reverse defined
515         * Scheme with functions!
518 2002-03-19 22:54  nicholas
520         * docs/running.pod: Patch from Simon Glover <scog@amnh.org>:
522          We can now get usage information for test_parrot without having to
523          grep the source.
525 2002-03-19 22:53  simon
527         * Configure.pl:
528         Parrot is called parrot.
530 2002-03-19 22:53  nicholas
532         * docs/tests.pod: Patch from Simon Glover <scog@amnh.org>:
534          1. There are tests in t/pmc as well as t/op now.
535          2. Adds a comment about Parrot::Test
537 2002-03-19 18:09  dan
539         * Configure.pl, examples/assembly/life.pasm: Toss a prompt that
540         messes up automated builds
542         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
544 2002-03-19 00:33  mrjoltcola
546         * core.ops: Doc cleanup from Simon Glover.
548 2002-03-18 23:52  mrjoltcola
550         * io/io_unix.c: Typo fix for invalid lvalue caught by David Loyd.
552 2002-03-18 22:09  dan
554         * include/parrot/resources.h: Checked in old version
556 2002-03-18 20:17  dan
558         * include/parrot/resources.h: Forgot a prototype
560 2002-03-18 20:15  dan
562         * resources.c: D'oh! Thinko, fixed.
564         Courtesy of "Peter Gibbs" <peter@emkel.co.za>
566 2002-03-18 17:33  josh
568         * Configure.pl: Lowering the bar a bit.
570 2002-03-18 17:33  sfink
572         * languages/regex/: MAINTAINER, Makefile, README, regex.pl,
573         test.pl, lib/Regex.pm, lib/Regex/AsmOps.pm, lib/Regex/CodeGen.pm,
574         lib/Regex/Generate.pm, lib/Regex/Grammar.pm, lib/Regex/Grammar.y,
575         lib/Regex/Optimize.pm, lib/Regex/Parse.pm, lib/Regex/Pasm.pm,
576         lib/Regex/PreOptimize.pm, lib/Regex/RegexOps.pm,
577         lib/Regex/Rewrite.pm, lib/Regex/CodeGen/Re.pm,
578         lib/Regex/CodeGen/Rx.pm, lib/Regex/Rewrite/Re.pm,
579         lib/Regex/Rewrite/Rx.pm, lib/Regex/Rewrite/Stackless.pm,
580         t/example.t: Whoops, wrong time to check this in.
582 2002-03-18 16:42  dan
584         * memory.c, resources.c: Partial fix for GC's memory trouncing. At
585         least we consider the PMC and Buffer free pools worth collecting,
586         and initialize the Buffer pool stuff.  Still not 100% correct,
587         though.
589 2002-03-18 15:35  simon
591         * packfile.c:
592         Fix format arg bug.
594 2002-03-18 07:45  brentdax
596         * Configure.pl: Warn if you're using 64-bit ints on a 32-bit
597         system.
599 2002-03-18 00:09  sfink
601         * languages/regex/: MAINTAINER, Makefile, README, regex.pl,
602         test.pl, lib/Regex.pm, lib/Regex/AsmOps.pm, lib/Regex/CodeGen.pm,
603         lib/Regex/Generate.pm, lib/Regex/Grammar.pm, lib/Regex/Grammar.y,
604         lib/Regex/Optimize.pm, lib/Regex/Parse.pm, lib/Regex/Pasm.pm,
605         lib/Regex/PreOptimize.pm, lib/Regex/RegexOps.pm,
606         lib/Regex/Rewrite.pm, lib/Regex/CodeGen/Re.pm,
607         lib/Regex/CodeGen/Rx.pm, lib/Regex/Rewrite/Re.pm,
608         lib/Regex/Rewrite/Rx.pm, lib/Regex/Rewrite/Stackless.pm,
609         t/example.t: Buggy 1st version of regex compiler implementation.
610         Warning: the test code depends on features of the assembler that do
611         not yet exist.
613 2002-03-17 21:35  ajgough
615         * types/: bignum.c, bignum_atest.pl: Added a couple of quick routes
616         through addition and subtraction.  Also added the ability to run
617         all the tests, including the ones which deal with overflow and
618         underflow.  These fail, but that's expected.  Soon they'll pass.
619         Then I'll show them.  Yesssssss.  Tessssssssts my precioussssss,
620         passsssssssings tesssstsssss.
622 2002-03-17 20:06  ajgough
624         * types/: bignum.c, bignum.h, bignum_test.pl: Modified
625         check_(under|over)flow to test bignumbers, rather than values.
626         context now carries E_limit, from which max and min exp are found.
628         Added a default-context-creating function (although this isn't the
629         same as either of the default contexts defined in the eda).
631 2002-03-17 13:31  ajgough
633         * types/: bignum.c, bignum.h: Made BN_round and BN_iround so that
634         exported version matches prototypes of other public functions.
636 2002-03-17 06:44  josh
638         * chartype.c, encoding.c, memory.c, misc.c, packdump.c, packfile.c,
639         packout.c, resources.c, string.c, include/parrot/encoding.h: Some
640         last-minute re-indenting.
642 2002-03-17 05:07  mrjoltcola
644         * io/io_unix.c: Clear up unsigned compare caught by Solaris GCC.
646 2002-03-16 23:17  nicholas
648         * classes/default.pmc: Patch from Simon Glover <scog@amnh.org> to
649         remove warnings:
651          default.pmc: In function `Parrot_default_get_integer_keyed':
652          default.pmc:50: warning: control reaches end of non-void function
653          default.pmc: In function `Parrot_default_get_number_keyed':
654          default.pmc:58: warning: control reaches end of non-void function
655          default.pmc: In function `Parrot_default_get_string_keyed':
656          default.pmc:67: warning: control reaches end of non-void function
657          default.pmc: In function `Parrot_default_get_pmc_keyed':
658          default.pmc:87: warning: control reaches end of non-void function
660 2002-03-16 18:50  ajgough
662         * types/: bignum.c, bignum.h: Lots of prototypes changed in
663         readiness for nicely telling your caller about any oddness you've
664         caused in the persuit of flow.
666 2002-03-16 17:38  dan
668         * interpreter.c, resources.c, docs/pdds/pdd09_gc.pod,
669         include/parrot/interpreter.h, include/parrot/resources.h: Now we
670         can control the GC and DOD, to stop it when we don't really want
671         it.
673 2002-03-16 16:58  dan
675         * resources.c, vtable.tbl, classes/default.pmc,
676         include/parrot/resources.h: Added the last code to let PMCs control
677         their marking at DOD time
679 2002-03-16 16:57  ajgough
681         * types/bignum.c: Ok, I worked out how to not have lots of tabs.  I
682         feel a little more virtuous now.  Really I do.  You might not
683         believe me, but you should.  perl -pne 's/\t/        /g', if you're
684         curious.
686 2002-03-16 16:57  josh
688         * packfile.c, packout.c: M-x untabify is my new friend.
690 2002-03-16 16:50  josh
692         * trace.c, resources.c: Minor whitespace tweak for the benefit of
693         check_source_standards.pl
695 2002-03-16 16:50  ajgough
697         * types/: bignum.c, bignum.h: More documentation, separate
698         functions into public and private sorts, some initial stuff to cope
699         with over and underflow correctly.
701 2002-03-16 16:49  josh
703         * resources.c: Re-indented (sorry bout the big diff)
705 2002-03-16 16:47  bdwheele
707         * examples/assembly/fact.pasm: This fixes fact.pasm so it will
708         assemble again, both with Simon's new assembler and with the old
709         one.
711 2002-03-16 16:33  mrjoltcola
713         * io/TODO: Get the TODO up-to-date for 0.0.4.
715 2002-03-16 16:11  josh
717         * Configure.pl: Patch from Nicholas Clark <nick@unfortu.net>: stops
718         silly people (such as me) running Configure with
719         /usr/local/bin/perl (which is 5.004_05) and not realising their
720         mistake until the pmc subdirectory, where the first qr// is
721         encountered.
723         Syntax error messages don't tell you what you did wrong. This does:
725         /usr/local/bin/perl Configure.pl Perl 5.00503 required--this is
726         only version 5.00405, stopped at Configure.pl line 10.
728 2002-03-16 14:38  ajgough
730         * Makefile.in: Small fix to Makefile.in to keep Irix make happy
731         with commenting.
733 2002-03-16 11:45  simon
735         * MANIFEST, examples/assembly/xml_parser.pasm:
736         Added Clint Pierce's XML parser.
738 2002-03-15 22:24  simon
740         * packout.c:
741         Don't need that function.
743 2002-03-15 21:56  simon
745         * Makefile.in, include/parrot/packfile.h:
746         Rebuild packout.o, since it'll be used for the Packfile XS module
748 2002-03-15 19:45  dan
750         * include/parrot/: memory.h, pmc.h: Another add-in for GC
752 2002-03-14 19:48  dan
754         * core.ops: No string to int for some reason
756 2002-03-14 18:45  dan
758         * string.c, t/op/string.t: Fix 0-length substr problem
760 2002-03-14 14:46  dan
762         * core.ops, interpreter.c, resources.c, classes/array.pmc,
763         classes/perlarray.pmc, examples/assembly/life.pasm,
764         include/parrot/interpreter.h, include/parrot/resources.h: Added in
765         a counter for copied memory, with a display in life.pasm
767 2002-03-14 03:16  mrjoltcola
769         * MANIFEST: Update MANIFEST courtesy of Simon Glover.
771 2002-03-13 23:43  simon
773         * packfile.c:
774         Oops.
776 2002-03-13 23:43  simon
778         * packfile.c:
779         Hangs head in shame.
781 2002-03-13 21:31  simon
783         * MANIFEST:
784         FAQ moved.
786 2002-03-13 18:06  simon
788         * string.c:
790         Fix string_compare screw-up.
792 2002-03-13 18:02  brentdax
794         * docs/: parrot.pod, ParrotFAQ.htm, faq.pod: Move the FAQ into POD
795         and add a new question/answer pair.
797 2002-03-12 22:53  mrjoltcola
799         * io.ops: Quick and dirty read ops for PIO. No warranty provided.
801 2002-03-12 22:48  mrjoltcola
803         * examples/assembly/io2.pasm: Quick and dirty read ops for PIO. No
804         warranty provided.
806 2002-03-12 22:29  ajgough
808         * docs/pdds/pdd14_bignum.pod: Ooops, it is #14, really.
810 2002-03-12 22:24  ajgough
812         * docs/pdds/pdd14_bignum.pod: Creation of bignumber pdd, update to
813         version 1.1, Don't know if this is the correct number, but I don't
814         want this stuck on my harddrive where it will get lost, so 14 it is
815         :)
817 2002-03-12 11:35  simon
819         * MANIFEST, packdump.c, packout.c:
821         Just so the functionality doesn't disappear.
823 2002-03-12 11:33  simon
825         * Makefile.in, chartype.c, encoding.c, packfile.c,
826         chartypes/unicode.c, chartypes/usascii.c, encodings/singlebyte.c,
827         encodings/utf16.c, encodings/utf32.c, encodings/utf8.c,
828         include/parrot/chartype.h, include/parrot/encoding.h,
829         include/parrot/packfile.h:
831         Packfile axing.
833 2002-03-11 23:06  nicholas
835         * core.ops: Patch from Simon Glover <scog@roe.ac.uk>:
837           Core.ops documentation nits
839 2002-03-11 23:05  nicholas
841         * t/pmc/pmc.t: Patch from Simon Glover <scog@roe.ac.uk>:
843           Most of the PerlUndef tests in pmc.t appear to have been added
844         twice.
845           Enclosed patch removes the duplicates.
847 2002-03-10 23:40  nicholas
849         * t/pmc/perlstring.t: Patch from Simon Glover <scog@amnh.org>:
851          More tests for the PerlString test-suite.
853 2002-03-10 23:40  nicholas
855         * t/op/time.t: Patch from Simon Glover <scog@amnh.org>:
857         test for sleep with negative argument
859 2002-03-10 21:58  nicholas
861         * t/op/rx.t: Patch from Simon Glover <scog@amnh.org>:
863          Enclosed patch fixes up a few more holes in our test coverage.
865 2002-03-10 21:18  mrjoltcola
867         * classes/array.pmc, classes/default.pmc, classes/intqueue.pmc,
868         classes/parrotpointer.pmc, classes/perlarray.pmc,
869         classes/perlhash.pmc, classes/perlint.pmc, classes/perlnum.pmc,
870         classes/perlstring.pmc, classes/perlundef.pmc,
871         include/parrot/pmc.h, core.ops, pmc.c, vtable.tbl: Add size
872         argument to the init() vtable method so PMCs have the option to
873         know how to size themselves at creation. size could be N elements
874         or a byte count, depending on the PMC or it may simply be ignored.
875         Overloaded 'new' opcode for optional arg.
877 2002-03-10 21:15  mrjoltcola
879         * lib/Parrot/Assembler.pm: Minor patch to the assembler for the
880         new_p_ic_ic opcode to work same as new_p_ic (looks up a named
881         class).
883         Also added small hack for .sub directive (which simply translates
884         to a label, however we might eventually want to collect these to
885         validate bsr calls.
887 2002-03-10 15:09  ajgough
889         * types/: bignum.c, bignum.h, bignum_atest.pl, bignum_test.pl:
890         Added round_floor and round_ceiling.  3403 tests pass, none fail.
892 2002-03-10 03:56  ajgough
894         * types/: bignum.c, bignum_atest.pl: Added extended stuff to
895         divide, divide integer and remainder.  All filled in functions now
896         have special values capability.
898         Much remains to be done though, and the pdd needs to catch up.
900 2002-03-10 01:36  ajgough
902         * types/bignum.c: Added extended stuff to _add, _subtract.
904 2002-03-10 00:14  nicholas
906         * t/op/: integer.t, number.t: Patch from Simon Glover
907         <scog@roe.ac.uk>:
909          The enclosed patch fixes a few of the holes in our test coverage
910          uncovered by Josh Wilmes
912 2002-03-09 23:03  ajgough
914         * types/: bignum.c, bignum.h: Modified compare to work with
915         extended values.  Made a couple of changes here and there to allow
916         BN_comp to take a context, so that an is_zero check doesn't clobber
917         negative zeros.
919 2002-03-09 22:19  ajgough
921         * types/: bignum.c, bignum.h, bignum_atest.pl, bignum_test.pl:
922         Unary plus now copes with special values.
924 2002-03-09 04:25  ajgough
926         * types/: bignum.c, bignum_atest.pl, bignum_test.pl: Exception
927         traps and flags are now enabled and tested for all the standard
928         tests for all the functions which are currently implemented.  Test
929         harness faffed with to allow these to be tested.
931 2002-03-09 02:29  josh
933         * encodings/singlebyte.c, encodings/utf16.c, encodings/utf32.c,
934         encodings/utf8.c, chartypes/unicode.c, chartypes/usascii.c:
935         Re-indented
937 2002-03-09 02:22  josh
939         * config_h.in: tab-blastin'
941 2002-03-09 02:21  josh
943         * check_source_standards.pl: Play nicer with M-x compile- don't
944         bother giving line numbers for things you don't want to look at.
946 2002-03-09 02:10  josh
948         * examples/mops/mops.c: re-indented
950 2002-03-09 02:07  josh
952         * classes/pmc2c.pl: Use the usual header so that we can detect the
953         autogeneratedness.
955 2002-03-09 02:05  josh
957         * jit2h.pl: Avoid accidental /* inside a comment, which generates a
958         compiler warning
960 2002-03-09 01:59  josh
962         * io/: io.c, io_stdio.c, io_unix.c, io_win32.c: Another large
963         patch- re-indent io/*.c.
965 2002-03-09 01:52  ajgough
967         * types/: bignum.c, bignum.h, bignum_test.pl: Added handling of
968         special values to the string conversion functions, some other
969         functions now need context (to let -0 pass through really_zero)
970         which have also been added.
972 2002-03-09 01:47  josh
974         * test_main.c: Re-indented.
976 2002-03-09 01:41  josh
978         * rx.c: killed a stray tab
980 2002-03-09 01:38  josh
982         * rx.c: Re-indented.
984 2002-03-09 01:36  josh
986         * misc.c: Oops, some tabs remained- cleaned up.
988 2002-03-09 01:31  josh
990         * misc.c: Re-indented (major patch, sorry)
992 2002-03-09 00:59  josh
994         * embed.c: Re-indented.
996 2002-03-08 23:08  simon
998         * MANIFEST, docs/pdds/pdd10_embedding.pod,
999         docs/pdds/pdd11_extending.pod, docs/pdds/pdd12_assembly.pod,
1000         docs/pdds/pdd13_bytecode.pod:
1001         Placeholder PDDs.
1003 2002-03-08 21:12  ajgough
1005         * include/parrot/string.h: Added private flags to string.h, mostly
1006         so that other GCed stuff can also have its very own private flags.
1008 2002-03-08 19:53  simon
1010         * MANIFEST:
1011         Great PDD Renaming
1013 2002-03-08 19:41  robert
1015         * docs/pdds/: pdd0.pod, pdd1.pod, pdd2.pod, pdd4.pod, pdd5.pod,
1016         pdd6.pod, pdd7.pod: Renamed...
1018 2002-03-08 18:51  simon
1020         * MANIFEST, docs/pdds/pdd08_keys.pod:
1021         Add keys PDD.
1023 2002-03-08 18:20  ajgough
1025         * types/: bignum.c, bignum.h, bignum_atest.pl, bignum_test.pl:
1026         Introduced exception handlers and exception flags to context, will
1027         allow support of extended standard.  Unified exception checking
1028         mechanism (sort of) and made minimal changes to bulk of code to use
1029         this.  Tests pass, I'm happy, and further changes will happen more
1030         gradually.
1032 2002-03-08 04:38  josh
1034         * interpreter.c, string.c, testparrotsizes_c.in: More indenting
1035         tweaks.
1037 2002-03-08 04:37  josh
1039         * platforms/: generic.c, generic.h, win32.c, win32.h: Re-indented
1041 2002-03-08 04:24  josh
1043         * embed.c: A bit more re-indenting
1045 2002-03-08 04:20  josh
1047         * embed.c: Indenting fixes
1049 2002-03-08 04:14  josh
1051         * jit.c: Re-indented (run_indent.pl)
1053 2002-03-08 03:36  josh
1055         * ops2c.pl: Fix the line numbers which get reported while compiling
1056         core_ops*.c
1058 2002-03-08 03:22  josh
1060         * packfile.c: -1552 cc: WARNING File = packfile.c, Line = 1537
1061         The variable "type" is set but never used.
1063               opcode_t type;
1065 2002-03-08 03:04  josh
1067         * resources.c, stacks.c, string.c, io/io.c, io/io_stdio.c,
1068         io/io_unix.c: Clean up unused and set-but-not-referenced variables
1069         noticed by the sgi compiler.
1071 2002-03-08 03:02  josh
1073         * misc.c: Fixes this warning (SGI) cc-1188 cc: WARNING File =
1074         misc.c, Line = 417   The indicated type qualifier is meaningless on
1075         cast type.
1078         (const char) 'f');
1079                                                                          ^
1081 2002-03-08 02:55  josh
1083         * Makefile.in: Clean up one of the object files it was missing
1085 2002-03-08 01:15  josh
1087         * include/parrot/interpreter.h: Fixes the following error (tcc):
1088         "./include/parrot/interpreter.h", line 27: Error:   [Syntax]: Extra
1089         comma at end of list.
1091 2002-03-06 22:15  simon
1093         * stacks.c:
1094         Tidy up stack chunk allocation.
1096 2002-03-06 21:00  simon
1098         * interpreter.c:
1099         Create strings only once we've got string register heads set up.
1101 2002-03-06 20:31  simon
1103         * classes/perlarray.pmc:
1104         malloc(0) considered harmful.
1106 2002-03-06 20:24  simon
1108         * include/parrot/resources.h:
1109         I like it when Parrot compiles.
1111 2002-03-06 17:02  dan
1113         * classes/array.pmc: Changed over to data pointing to a Buffer.
1115 2002-03-06 15:45  dan
1117         * core.ops, embed.c, exceptions.c, interpreter.c, memory.c,
1118         packfile.c, pbc2c.pl, pdump.c, resources.c,
1119         include/parrot/interpreter.h, include/parrot/memory.h,
1120         include/parrot/resources.h, io/io.c: Three quick things: 1) INTVALs
1121         and opcode_t > longs will now be even more suspect than what they
1122         were beforehand.  2) Feel free to bicker with names.  I don't think
1123         we've come to *any* sort of agreement with these, although we
1124         really, really, need to.  3) I forget the third thing.  4) But I
1125         thought of a fourth.  5) I've now remembered the third thing: IIRC,
1126         ANSI C states that enums will fit within the smallest type (int or
1127         greater) that can hold the values. Is that actually correct, and
1128         does it state whether unsigned is preferred to signed for
1129         non-negative enums? 6) Since I'm no longer constrained by "three"
1130         or "quick", I'm going size_t happy for a lot of memory-related
1131         storage.  (That's good.  No sense wasting the size or performance
1132         of an UINTVAL for strange values of UINTVAL.)  I'm also using it in
1133         a couple other internal things (like the GC stat counters, seen
1134         here).  Size and performance, again, and unpromotable to a bigint,
1135         so we know that we (theoretically) will wrap.  However, size_t
1136         isn't the best choice for the type.  (Not that there's anything
1137         wrong with size_t, just that it shouldn't be called size_t.)  Any
1138         thoughts?  I was thinking of just doing unsigned int, because,
1139         IIRC, int is usually the natural word size, and will be most
1140         efficient.  Thoughts? 7) I forgot what the fourth thing I thought
1141         of was while writing down the others.  Sorry.
1143         Courtesy of  "Bryan C. Warnock" <Bryan.Warnock@raba.com>
1145 2002-03-06 15:26  dan
1147         * memory.c, resources.c, string.c, classes/perlarray.pmc,
1148         include/parrot/resources.h: Now we allocate generic Buffers from
1149         arenas too
1151 2002-03-05 21:42  brentdax
1153         * Configure.pl: Minor cleanup and enhancements.
1155 2002-03-05 21:25  dan
1157         * resources.c: non-special GC now works with PMCs
1159 2002-03-05 19:48  brentdax
1161         * Configure.pl, DEVELOPING, MANIFEST, config_h.in, test_main.c:
1162         Parrot now "knows" if it's a development version or a release
1163         version.  See the instructions in the DEVELOPING file.
1165 2002-03-05 18:05  brentdax
1167         * MANIFEST: pasm.vim wasn't in the manifest.
1169 2002-03-05 17:57  simon
1171         * Makefile.in:
1172         Now, through much evilness, make distclean and make cvsclean work
1173         again.
1175 2002-03-05 17:38  dan
1177         * memory.c, resources.c, docs/pdds/pdd09_gc.pod,
1178         include/parrot/interpreter.h, include/parrot/pmc.h,
1179         include/parrot/resources.h: PMC tracing complete
1181 2002-03-05 16:28  gregor
1183         * languages/jako/Makefile.in:
1184         Changed -I ../../ to -I ../../lib when calling the assembler, since
1185         the perl modules have moved.
1187 2002-03-05 05:30  josh
1189         * packfile.c, pdump.c, pmc.c, register.c, rxstacks.c, stacks.c,
1190         string.c: More re-indenting via run_indent.pl.
1192 2002-03-05 05:17  josh
1194         * runops_cores.c, trace.c, warnings.c: Re-indented (via
1195         run_indent.pl)
1197 2002-03-05 04:26  josh
1199         * key.c, memory.c, test_gnuc.c, testparrotfuncptr.c: Re-indented
1200         using run_indent.pl and some minor tweaking.
1202 2002-03-05 04:21  josh
1204         * chartype.c, encoding.c, exceptions.c, global_setup.c,
1205         interpreter.c: Re-indented using run_indent.pl and some minor
1206         tweaking.
1208 2002-03-05 03:30  josh
1210         * include/parrot/trace.h: These functions are no longer used (or
1211         even implemented)
1213 2002-03-04 18:21  josh
1215         * include/parrot/trace.h: Fix a typo in the argument type.
1217         Patch from <daniel.ritz@gmx.ch>
1219 2002-03-04 03:39  josh
1221         * check_source_standards.pl, jit2h.pl: Add the "autogenerated file"
1222         header to jit_struct.h so we don't try to check it for conformance.
1223          (no way will it conform)
1225 2002-03-04 03:38  josh
1227         * include/parrot/: chartype.h, interpreter.h, io.h, rx.h, trace.h,
1228         unicode.h, warnings.h: Remove some remaining tabs and split some of
1229         the remaining long lines.
1231 2002-03-04 03:17  josh
1233         * include/parrot/: chartype.h, embed.h, encoding.h, exceptions.h,
1234         global_setup.h, interpreter.h, io.h, jit.h, key.h, memory.h,
1235         misc.h, op.h, oplib.h, packfile.h, parrot.h, pmc.h, register.h,
1236         resources.h, runops_cores.h, rx.h, rxstacks.h, stacks.h, string.h,
1237         string_funcs.h, trace.h, warnings.h: This is the first batch of
1238         re-indenting.   This patch is the result of running run_indent.pl
1239         on the header files and manually tweaking the results where errors
1240         were noticed.   This should get us closed, but some refinement may
1241         follow.
1243 2002-03-04 03:06  josh
1245         * resources.c: Return without parens, as mentioned in PDD 7
1247 2002-03-04 03:01  josh
1249         * core.ops: POD fixes.
1251 2002-03-04 02:58  josh
1253         * config_h.in, ops2c.pl, classes/pmc2c.pl: More consistent headers
1254         on autogenerated files- used by the check_source_standards.pl
1255         script (for now) to exempt autogenerated files from the checks.
1257 2002-03-04 02:51  josh
1259         * embed.c, key.c, pmc.c, resources.c, rx.c, testparrotfuncptr.c,
1260         warnings.c: Added the editor "boilerplate" footer to a few files
1261         which were missing it.
1263 2002-03-04 02:34  josh
1265         * check_source_standards.pl, interpreter.c, jit.c, test_gnuc.c,
1266         include/parrot/io.h, include/parrot/parrot.h, io/io_win32.c: Fixes
1267         c preprocessor directive indentation to comply with pdd 7.
1269         (also fixes the check for this indentation in
1270         check_source_standards.pl)
1272 2002-03-04 02:32  josh
1274         * lib/Parrot/Test.pm: Fixes this error seen on perl 5.005_02 on
1275         irix.
1277         perl t/harness t/op/basic..........Use of uninitialized value at
1278         lib/Parrot/Test.pm line 81.  #     Failed test (t/op/basic.t at
1279         line 6) #          got: undef #     expected: ''
1281 2002-03-04 02:30  josh
1283         * MANIFEST, run_indent.pl, docs/pdds/pdd07_codingstd.pod,
1284         docs/pdds/pdd7.pod: Added documentation and code to invoke the GNU
1285         "indent" program to enforce some of the code style standards
1286         outlined in PDD 7.
1288         Usage: ./run_indent.pl <file>
1290 2002-03-03 19:04  simon
1292         * examples/mops/mops.c:
1293         Let's make it compile, huh?
1295 2002-03-03 19:04  simon
1297         * examples/mops/mops.cs:
1298         I R AN IDIOT
1300 2002-03-03 18:11  simon
1302         * examples/mops/mops.cs, examples/mops/mops.il, MANIFEST:
1303         Added C# and MS-IL versions of mops tester.
1305 2002-03-03 14:52  simon
1307         * core.ops:
1308         Add a sub() op to make mops_p work.
1310 2002-03-02 18:12  nicholas
1312         * examples/mops/mops.c, include/parrot/embed.h,
1313         include/parrot/interp_guts.h, include/parrot/jit.h,
1314         include/parrot/misc.h, include/parrot/packfile.h,
1315         include/parrot/rx.h, include/parrot/warnings.h,
1316         platforms/generic.c, platforms/generic.h, platforms/win32.c,
1317         platforms/win32.h, types/bignum.c, types/bignum.h: Patch from Josh
1318         Wilmes to add the emacs and vim "ending boilerplate" that sets the
1319         indent variables correctly.
1321 2002-03-02 17:41  nicholas
1323         * resources.c: Patch from Josh Wilmes <josh@hitchhiker.org>: Little
1324         patch to fix a compiler warning.
1326 2002-03-01 22:35  dan
1328         * memory.c, resources.c, include/parrot/pmc.h,
1329         include/parrot/resources.h: PMCs now come out of arenas.
1331 2002-03-01 06:15  dan
1333         * string.c:
1334         A non-existing buffer + a non-existing buffer should be a
1335         non-existing buffer, not "", which is really '\0'.
1337         Courtesy of "Bryan C. Warnock" <Bryan.Warnock@raba.com>
1339 2002-03-01 06:02  dan
1341         * classes/: array.pmc, perlarray.pmc, perlhash.pmc, perlstring.pmc:
1343         TMTOWTDI, but strcmp is probably the worse.
1345         Courtesy of "Bryan C. Warnock" <Bryan.Warnock@raba.com>
1347 2002-03-01 02:32  brentdax
1349         * embed.c: Debug mode now prints out the GC data.
1351 2002-02-28 23:44  dan
1353         * core.ops, resources.c, include/parrot/resources.h: Added collect
1354         and sweep opcodes
1356 2002-02-28 22:58  dan
1358         * docs/pdds/: pdd06_pasm.pod, pdd6.pod: Add docs for interpinfo
1359         opcode
1361 2002-02-28 22:50  dan
1363         * core.ops, interpreter.c, resources.c,
1364         examples/assembly/life.pasm, include/parrot/interpreter.h,
1365         include/parrot/resources.h: Add some stat gathering to the resource
1366         allocation code.
1368         Also add an interpreter info retrieval op, and teach it about the
1369         different things it can retrieve.
1371         Finally, add some stat info to life.pasm as an example
1373 2002-02-28 21:27  dan
1375         * editor/pasm.vim: VIM mode commands for parrot assembly files
1377         Courtesy of Scott Beck <scott@gossamer-threads.com>
1379 2002-02-28 19:20  dan
1381         * examples/assembly/life.pasm: Fix a creeping string length leak.
1383         Courtesy of  "Bryan C. Warnock" <Bryan.Warnock@raba.com>
1385 2002-02-28 18:26  dan
1387         * string.c: When you clone a constant, it ain't constant no mo'.
1389         Cocurtesy of "Bryan C. Warnock" <Bryan.Warnock@raba.com>
1391 2002-02-28 00:51  dan
1393         * MANIFEST: Add missing files
1395         Courtesy of "Bryan C. Warnock" <Bryan.Warnock@raba.com>
1397 2002-02-28 00:49  dan
1399         * docs/pdds/: pdd0.pod, pdd00_pdd.pod: The pod version of PDD 0 in
1400         CVS seems to have several chunks missing out of it, too.  This
1401         patch is simply an administrative patch, with the differences
1402         between my last version, and the one currently in there.  There
1403         will be a forthcoming patch for some minor tweaking to the PDD, but
1404         I wanted a common baseline before I make any (potential) semantic
1405         changes.
1407         There's only one semi-major change, which noone needs to worry
1408         about just yet.  That's a change from PDD Format 1 to PDD Format
1409         6.0 - rationale can be found under 'Standard (Version #)' of the
1410         STANDARDS TRACK infomation.  Don't worry about this yet, because it
1411         should be 6.0.0, and we need to discuss Perl versus Parrot with
1412         PDDs.
1414         Courtesy of "Bryan C. Warnock" <bwarnock@raba.com>
1416 2002-02-28 00:27  dan
1418         * packfile.c, resources.c, examples/assembly/life.pasm,
1419         include/parrot/register.h, include/parrot/resources.h,
1420         include/parrot/string.h: First pass of semi-full GC. (Strings only,
1421         no PMCs yet)
1423         This patch now implements a real copying collector. We trace from
1424         our root set and compact the contents of Buffer structs.
1426         Todo:
1428         *) It's very STRING-centric and doesn't handle memory stuffed in
1429         Buffers.  But, then, we don't have pool allocation for Buffers
1430         either, and we need to have that soonish for this to work.
1432         *) Doesn't trace PMCs, so if you trigger a collection and there's
1433         memory or STRING structs only accessible from PMCs, you'll fail
1434         horribly. That needs fixing too
1436         *) Better algorithms for when to trace or collect vs when to just
1437         go allocate more memory from the system. Should probably be more
1438         cache friendly too.
1440 2002-02-27 21:04  dan
1442         * jit.c, memory.c, resources.c, string.c, docs/pdds/pdd09_gc.pod,
1443         examples/assembly/life.pasm, include/parrot/resources.h,
1444         include/parrot/string.h, include/parrot/string_funcs.h,
1445         jit/i386/core.jit: Start of GC in
1447 2002-02-26 16:41  dan
1449         * jit/i386/string.jit: Fix a typo
1451         Courtesy of Jonathan Stowe <gellyfish@gellyfish.com>
1453 2002-02-26 16:37  dan
1455         * interpreter.c: Fix solaris test failures
1457         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1459 2002-02-26 16:36  dan
1461         * include/parrot/: interp_guts.h, io.h, packfile.h, rx.h,
1462         unicode.h, warnings.h: Fixes various warts in header files, such
1463         as: * macros   -added parens to prevent problems with operator
1464         precedence   -removed ; at end * removed SSIZE_MAX, since ssize_t
1465         is no longer used * added some more INLINE definitions for MSVC and
1466         C99 compilers
1468         Courtesy of Brian Lee Ray <blray@ualr.edu>
1470 2002-02-26 16:20  dan
1472         * Configure.pl: Turns out we were using a warning flag which
1473         doesn't exist on 2.7.  Simple tweak though:
1475         Courtesy of  Josh Wilmes <josh@hitchhiker.org>
1477 2002-02-25 22:58  dan
1479         * MANIFEST, docs/pdds/pdd09_gc.pod: Add docs of GC
1481 2002-02-25 17:36  dan
1483         * include/parrot/pmc.h: Fix the bits
1485 2002-02-23 21:57  dan
1487         * include/parrot/resources.h: Another 1.5% never hurts
1489 2002-02-23 21:44  dan
1491         * global_setup.c, memory.c, resources.c, string.c,
1492         include/parrot/resources.h: Allocate STRING headers from an arena
1493         with freelist rather than with the system malloc. First step in a
1494         good (or even a bad) GC system.
1496 2002-02-23 20:37  brentdax
1498         * misc.c: lint has been doing Evil and Wrong things to misc.c.
1500 2002-02-22 14:59  ajgough
1502         * types/bignum.c: BN_multiply split into BN_multiply and
1503         BN_imultiply, the internal version to be used by idivide so that
1504         rounding isn't performed during intermediate stages of division.
1506         following test scripts now all pass: divide divideint add multiply
1507         subtract remainder compare rounding plus minus (these are all the
1508         operations currently implemented, rescale and power must still be
1509         written, so don't pass right now).
1511 2002-02-22 13:13  ajgough
1513         * types/bignum_atest.pl: Test harness modified to understand
1514         comments better, and be able to run unary (and rounding) tests.
1515         Currently a few rounding tests fail, which are being investigated.
1517 2002-02-22 01:41  dan
1519         * key.c: Although there's more work being done on the key stuff and
1520         this isn't the final fix, applying this patch does get parrot to
1521         build with two more compilers, so it's probably worthwhile.
1523         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1525 2002-02-22 00:53  dan
1527         * config_h.in, misc.c, include/parrot/embed.h,
1528         include/parrot/exceptions.h, include/parrot/interpreter.h,
1529         include/parrot/io.h, include/parrot/parrot.h, include/parrot/pmc.h,
1530         include/parrot/resources.h, include/parrot/rx.h,
1531         include/parrot/string.h, include/parrot/unicode.h,
1532         include/parrot/warnings.h, io/io_stdio.c, io/io_unix.c,
1533         io/io_win32.c: Fixes the following (lcc) warnings:
1535           - interpreter.c:470: warning: expression with no effect elided
1536                (related to the way warnings flags were defined)
1538           - misc.c:352: warning: unreachable code
1539             misc.c:483: warning: unreachable code
1540                (i introduced these with some overzealous de-linting)
1542           - numerous warnings like this:
1543             io/io_unix.c:383: warning: conversion from pointer to void' to
1544         pointer to
1545             pointer to struct _ParrotIO function(pointer to struct
1546         Parrot_Interp,pointer
1547             to struct _ParrotIOLayer,pointer to const char,pointer to const
1548         char,pointer
1549             to pointer to void)' is compiler dependent
1551         Fixes the following nits:    - remove bad indenting (tabs) in the
1552         includes
1554         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1556 2002-02-21 21:12  ajgough
1558         * types/: bignum.c, bignum.h: These might look like massive
1559         changes, but really it's just he imposition of coding standards.
1560         The file still isn't entirely compliant, but is now much more so.
1562         Also changed:
1564          o a few more comments
1565          o BN_compare uses internal BN_comp to compare
1566          o lost_digits behaviour is now correct (test harness modified to
1567         test
1568            this).
1570         All binary functions now pass all the tests in the basic standard.
1571         Unary functions not yet tested, will be soon.
1573 2002-02-21 18:20  dan
1575         * lib/Parrot/OpTrans/CPrederef.pm: The "inline" bit of that patch
1576         was no longer needed, and the ssize_t thing really shouldn't be
1577         needed either.
1579         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1581 2002-02-21 18:15  dan
1583         * Configure.pl, embed.c, pdump.c, hints/mswin32.pl,
1584         include/parrot/parrot.h: this patch adds support for the freely
1585         available borland c++ 5.5.1 compiler
1587         depends on: - josh's patch to remove ssize_t from CPrederef.pm -
1588         working borland compiler (compiler must know where to find headers
1589         and libs) - Perl's Config.pm modified to use cc='bcc32.exe' not of
1590         cc='cl.exe' - a working make utility (borland make doesn't work,
1591         nmake does)
1593         changes: - add bcc in hints/mswin32.pl - clean up for msvc++ in
1594         hints/mswin32.pl - remove a space from Configure.pl (very very
1595         important for bcc) - add a O_BINARY flag to open() in pdump.c,
1596         embed.c (required by bcc) - define O_BINARY 0 when it's not defined
1597         (win32 knows it, linux not)
1599         and the why: - parrot is MUCH faster when compiled with borland c
1600         (make test on p2-450, 320MB):   * msvc++: 313 seconds   * bcc: 251
1601         seconds
1603         Courtesy of "Ritz Daniel" <daniel_ritz@gmx.ch>
1605 2002-02-21 18:09  dan
1607         * jit.c, testparrotfuncptr.c, trace.c, classes/array.pmc, io/io.c,
1608         io/io_stdio.c, io/io_unix.c, io/io_win32.c: This patch removes
1609         cuddled elses, as required by PDD 7.
1611         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1613 2002-02-21 18:04  dan
1615         * MANIFEST, Makefile.in, check_source_standards.pl: This patch adds
1616         a new Makefile target called "check_source".  This target scans all
1617         the .c and .h files in the directory and checks for conformance to
1618         a number of the standards outlined in PDD 7.
1620         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1622 2002-02-21 16:38  ajgough
1624         * types/: bignum.c, bignum.h, bignum_atest.pl: Modifications to
1625         allow arithmetic with numbers with a fixed fractional part, buffer
1626         structures now more ready to be integrated into the parrot memory
1627         allocation game, test harness modified to allow lost_digits
1628         condition to be checked.  Some more comments.
1630 2002-02-21 15:53  simon
1632         * io/io_unix.c:
1633         Fix typo
1635         Courtesy of: "David M. Lloyd" <dmlloyd@tds.net>
1637 2002-02-20 16:41  dan
1639         * MANIFEST, docs/pdds/pdd_template.pod: Added in template PDD
1641 2002-02-18 18:25  dan
1643         * MANIFEST, lib_deps.pl: Added in lib_deps.pl and MANIFEST change.
1645         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1647 2002-02-18 18:21  dan
1649         * lib/Parrot/OpTrans/CPrederef.pm: this is a quick fix for
1650         CPrederef.pm to make to generated code compile with the MS
1651         compiler.
1653         fixes: - ms compiler allows inline only for c++, for c there's
1654         __inline - ms header files knows nothing about ssize_t
1656         Courtesy of "Ritz Daniel" <daniel_ritz@gmx.ch>
1658 2002-02-18 17:49  dan
1660         * MANIFEST: Add the PDDs
1662 2002-02-18 17:47  dan
1664         * docs/pdds/: pdd07_codingstd.pod, pdd7.pod: Added in PDD 7, the
1665         coding standards PDD.
1667 2002-02-18 17:40  dan
1669         * docs/pdds/: pdd06_pasm.pod, pdd6.pod: Updated to latest rev
1671 2002-02-18 12:41  gregor
1673         * test_main.c:
1674         Remove warning about exit() not being declared.
1676 2002-02-18 08:29  simon
1678         * misc.c, warnings.c, include/parrot/misc.h,
1679         include/parrot/warnings.h:
1680         This patch adds some missing const's to silence a number of gcc
1681         warnings.
1683         Courtesy of: Josh Wilmes <josh@hitchhiker.org>
1685 2002-02-18 08:26  simon
1687         * Makefile.in, core.ops, embed.c, interpreter.c, key.c, misc.c,
1688         ops2c.pl, packfile.c, pdump.c, stacks.c, string.c,
1689         classes/array.pmc, classes/perlarray.pmc, classes/perlhash.pmc,
1690         include/parrot/parrot.h, include/parrot/rx.h,
1691         include/parrot/stacks.h, io/io_stdio.c, io/io_unix.c,
1692         lib/Parrot/OpTrans/CPrederef.pm:
1693            - add makefile target and script to test for external libc
1694         dependencies
1695            - fix return values in hash and array PMCs (returning 0 in a
1696         void func)
1697            - remove unnecessary data pointer <=> function pointer
1698         conversions
1699              outside of the JIT code.
1700            - move the definition of the "INLINE" macro out of the rx header
1701         and make
1702              available for general use on C++ compilers and gcc.
1703            - remove a few unused variables
1705         Courtesy of: Josh Wilmes <josh@hitchhiker.org>
1707 2002-02-17 16:29  simon
1709         * docs/pdds/: pdd0.pod, pdd00_pdd.pod, pdd01_overview.pod,
1710         pdd02_vtables.pod, pdd04_datatypes.pod, pdd05_opfunc.pod,
1711         pdd06_pasm.pod, pdd1.pod, pdd2.pod, pdd4.pod, pdd5.pod, pdd6.pod:
1712         We're organised and responsible. Honest.
1714 2002-02-17 02:46  sfink
1716         * Makefile.in: Remove $^ for nmake compatibility.
1718 2002-02-16 09:20  brentdax
1720         * config_h.in, test_main.c, include/parrot/chartype.h,
1721         include/parrot/embed.h, include/parrot/encoding.h,
1722         include/parrot/string.h, include/parrot/string_funcs.h: Better
1723         embedding exposure and hiding, part 1.
1725 2002-02-16 04:38  dan
1727         * Makefile.in, core.ops, interpreter.c, pbc2c.pl, pdump.c,
1728         runops_cores.c, docs/running.pod, lib/Parrot/OpTrans/C.pm,
1729         lib/Parrot/OpTrans/CGoto.pm, lib/Parrot/OpTrans/CPrederef.pm:
1730         Anyway, here's a patch to repair pbc2c.pl, combined with removing
1731         typecasts in various places throughout the code. It probably won't
1732         work for Windows yet. The libparrot.a target might need to be
1733         modified to at least prevent it from confusing make on Windows; I
1734         don't know.
1736         Preliminary instructions for using pbc2c.pl are in
1737         docs/running.pod.  I'll try to do better later.
1739         Courtesy of Steve Fink <steve@fink.com>
1741 2002-02-16 04:15  dan
1743         * exceptions.c, include/parrot/exceptions.h: Warnings cleaned up
1745         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1747 2002-02-16 00:03  simon
1749         * classes/: perlarray.pmc, perlhash.pmc:
1751         pmc is already defined!
1753 2002-02-15 23:20  brentdax
1755         * Configure.pl, config_h.in, exceptions.c, pmc.c,
1756         include/parrot/exceptions.h: Far more informative panic messages.
1758 2002-02-15 03:24  dan
1760         * lib/Parrot/: Op.pm, OpsFile.pm, OpTrans/CPrederef.pm: Here's a
1761         much more extensive patch that fixes it to work properly, and
1762         deletes a bazillion casts as well.  It also points to the question
1763         "can we make the byte_code be an opcode_t* already?"
1765         Oh, and it makes some of the formatting prettier, so it's gotta be
1766         good.
1768         Courtesy of * Steve Fink <steve@fink.com>
1770 2002-02-15 02:30  dan
1772         * Makefile.in, core.ops, embed.c, misc.c, packfile.c, rx.ops,
1773         stacks.c: I've tweaked the "lint" target somewhat and fixed a few
1774         of the things it finds.  Attaching the patch as well as the current
1775         lint output.
1777         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1779 2002-02-15 01:59  dan
1781         * t/pmc/: array.t, perlhash.t: Disable non-functional bits for the
1782         moment.
1784 2002-02-15 01:48  dan
1786         * t/pmc/perlarray.t: Skip tests for features that need twiddling
1788 2002-02-15 01:40  dan
1790         * t/op/rx.t: Skip a test that's waiting for us to rejig some array
1791         things
1793 2002-02-14 23:30  dan
1795         * resources.c: Added comment for buffer tag routine. D'oh!
1797 2002-02-14 23:28  dan
1799         * resources.c, include/parrot/resources.h: Added buffer mark
1800         routine for GC
1802 2002-02-14 23:17  dan
1804         * memory.c, classes/array.pmc, classes/perlarray.pmc,
1805         include/parrot/memory.h, include/parrot/string.h, t/pmc/perlhash.t:
1806         Rejigged memory system a bit. Now should be ready for the horror
1807         that is garbage collection.
1809 2002-02-14 19:33  gregor
1811         * ops2c.pl, include/parrot/oplib.h:
1812         Added code to automatically generate a function within an oplib to
1813         lookup opinfos given the op name. This will come in handy in future
1814         when we want to twiddle opcode tables at run time and possibly at
1815         startup time.
1817 2002-02-14 19:25  gregor
1819         * examples/assembly/queens.pasm:
1820         Regenerated queens.pasm from queens.jako since the clone_* stuff
1821         went away.
1823 2002-02-14 17:12  dan
1825         * resources.c, include/parrot/resources.h: Finished up the
1826         interface for memory and tracked interpreter thingies.
1828 2002-02-14 16:53  dan
1830         * memory.c, include/parrot/memory.h: intercept free and realloc
1832 2002-02-14 05:53  dan
1834         * interpreter.c, runops_cores.c: The type changes in struct
1835         Packfile break the pointer math used in a few places to calculate
1836         the address of the end of the loaded byte code. This causes
1837         segfaults in build_asm in jit.c when using -j. It also breaks the
1838         bounds checking on opcode address in runops_slow_core.
1840         The patch adds the necessary cast to correct the code_end
1841         calculations.
1843         Courtesy of Jason Gloudon <perl@gloudon.com>
1845 2002-02-14 01:01  ajgough
1847         * types/: bignum.c, bignum.h, bignum_test.pl: Added support for
1848         BigInt operations (I think), tests for normal operation continue to
1849         pass.  Also a shed load of comments.
1851 2002-02-13 01:34  ajgough
1853         * types/: bignum.c, bignum.h, bignum_atest.pl, bignum_test.pl: This
1854         is a (mostly) working bignumber library.  There remains much work
1855         to do though, some functions are not yet implemented and headers
1856         need to find their way to the correct place RSN.  Also support for
1857         bigints and a sensible error reporting mechanism are needed.
1859 2002-02-12 18:51  dan
1861         * misc.c: Fix some warnings
1863 2002-02-12 17:10  dan
1865         * misc.c: Run through indent -kr -nce so I can read it
1867 2002-02-12 16:49  dan
1869         * misc.c: Need standard header/footer comments
1871 2002-02-11 20:32  simon
1873         * classes/array.pmc:
1874         get and set pmc methods.
1876 2002-02-11 20:19  simon
1878         * classes/array.pmc:
1879         Maybe the keys aren't integer...
1881 2002-02-11 20:03  simon
1883         * core.ops, vtable.tbl, classes/default.pmc:
1884         {g,s}et_pmc_keyed
1886 2002-02-11 19:07  simon
1888         * vtable.tbl, classes/default.pmc:
1889         Add set_pmc. Usee with caution.
1891 2002-02-11 18:20  dan
1893         * classes/: array.pmc, perlarray.pmc: Patch array classes to
1894         compile
1896 2002-02-11 17:59  simon
1898         * core.ops, embed.c, global_setup.c, key.c, rx.ops,
1899         classes/perlarray.pmc, classes/perlhash.pmc:
1900         Make it compile.
1902 2002-02-11 17:57  simon
1904         * packfile.c, include/parrot/packfile.h:
1905         Reduce warnings
1907         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
1909 2002-02-11 17:55  dan
1911         * docs/parrot_assembly.pod: Document some key ops
1913 2002-02-11 09:20  brentdax
1915         * pmc.c, include/parrot/exceptions.h: Adding a panic ought to be
1916         disgustingly easy.
1918 2002-02-11 00:34  simon
1920         * core.ops, include/parrot/exceptions.h:
1921         This is what keyed set ops look like. Remember, however, that for
1922         keyed functions, all operands must be PMCs. set(PMC, PMC, INT)
1923         means $1 = $2[$3], not $1[$2] = $3. set(PMC,PMC,PMC) is so
1924         obviously ambiguous that you ought to use the 4-arg version
1925         instead.
1927 2002-02-10 23:12  jgoff
1929         * classes/: array.pmc, perlarray.pmc: Properly allocate
1930         SELF->data's array of PMC* data in array and perlarray.pmc.  This
1931         isn't tested yet, but should be fairly straightforward.  PerlHash
1932         needs to be finished before the system will compile again, and that
1933         should be done in the next few days.
1935 2002-02-09 04:46  jgoff
1937         * classes/: array.pmc, default.pmc, intqueue.pmc,
1938         parrotpointer.pmc, perlarray.pmc, perlhash.pmc, perlundef.pmc:
1939         Added basic _keyed member functions.  Unfortunately this still
1940         doesn't fix the problems that are causing the build to break. It's
1941         a start though. I'm not implementing the PMC add functions just
1942         yet.
1944 2002-02-08 15:59  simon
1946         * classes/array.pmc:
1947         Some more work on getting the array stuff up to date.
1949 2002-02-08 12:23  simon
1951         * classes/array.pmc, classes/perlhash.pmc, include/parrot/key.h,
1952         lib/Parrot/Vtable.pm:
1953         Got array->get_integer_keyed doing what I think it ought to. One
1954         down, all the rest to go.
1956 2002-02-08 11:47  simon
1958         * vtable.tbl:
1959         Although I didn't intend it to be quite that broken...
1961 2002-02-08 11:42  simon
1963         * vtable.tbl, include/parrot/parrot.h, lib/Parrot/Vtable.pm:
1964         Completely break Parrot, but at least we get the key stuff right
1965         for now.
1967 2002-02-08 06:25  dan
1969         * hints/darwin.pl: Silences the warning about passing in
1970         -flat_namespace to the compile.  That's a link-only flag.
1972 2002-02-08 04:52  jgoff
1974         * classes/: array.pmc, default.pmc, intqueue.pmc,
1975         parrotpointer.pmc, perlarray.pmc, perlhash.pmc, perlint.pmc,
1976         perlnum.pmc, perlstring.pmc, perlundef.pmc: Filled in missing
1977         return values in *.pmc, added some missing casts to the repeat_foo
1978         members, and deleted the _index members from the perlscalar
1979         classes.  Basic cleanup, and getting ready for _keyed functions.
1981 2002-02-07 04:49  mrjoltcola
1983         * examples/assembly/bsr.pasm: Elaborated on the bsr/ret example,
1984         added a nested subroutine call.
1986 2002-02-07 04:32  jgoff
1988         * vtable.tbl, lib/Parrot/Vtable.pm: vtable.tbl got some minor
1989         changes in order to give the whitespace rules a little workout, and
1990         do a little bit more testing. No actual structural changes were
1991         made.  lib/Parrot/Vtable.pm got an interface change, and more
1992         importantly should be ready to support the new '_keyed' attribute,
1993         which will work roughly thus: PMC* src_value gets remapped to 'PMC*
1994         src_value' followed by 'KEY* src_key'.  This will be how the new
1995         _keyed operators will function, and those should be written within
1996         a few days.
1998 2002-02-06 18:00  doughera
2000         * misc.c: Change C++-style comments to C comments (again).  Remove
2001         unused perl5 code that was in #if 0/#endif.
2003 2002-02-06 17:59  doughera
2005         * warnings.c: Add trailing newline.
2007 2002-02-06 04:14  mrjoltcola
2009         * include/parrot/io.h, io/io.c: Minor cleanup.
2011 2002-02-06 03:11  mrjoltcola
2013         * examples/assembly/io1.pasm, io/io.c, io/io_win32.c: Tied up a
2014         couple of loose end in win32 IO stuff. Open behaves now but needs
2015         more work.
2017 2002-02-05 21:02  brentdax
2019         * classes/pmc2c.pl: Length on whoami init was always 7--a problem
2020         which showed up in Purify builds.
2022 2002-02-05 17:15  simon
2024         * misc.c:
2025         Warning fixes.
2027         Courtesy of: Jonathan Stowe <gellyfish@gellyfish.com>
2029 2002-02-05 17:08  doughera
2031         * misc.c: Avoid C++-style comments.
2033 2002-02-05 17:07  doughera
2035         * lib/Parrot/Jit/sun4Generic.pm: Generated assembly programs were
2036         not valid assembler for Sun's /usr/ccs/bin/as.  Now they are,
2037         thanks to Jason Gloudon <perl@gloudon.com>.
2039 2002-02-05 14:04  simon
2041         * misc.c:
2042         Make the problem different, perhaps even better.
2044 2002-02-05 13:49  simon
2046         * misc.c:
2047         Possibly fix a `short int' is promoted to `int' when passed through
2048         `...' scary error, possibly make things absolutely worse.
2050 2002-02-05 13:15  simon
2052         * Configure.pl:
2053         Placate Tru64.
2055 2002-02-05 13:12  simon
2057         * warnings.c:
2058         Not going to get far without this one...
2060 2002-02-05 11:41  simon
2062         * string.c:
2063         Don't barf when handed null pointers.
2065 2002-02-05 10:04  simon
2067         * misc.c, include/parrot/misc.h:
2068         Fix some trivial bugs in warnings code.
2070 2002-02-05 09:27  simon
2072         * misc.c:
2073         Oops, forgot this one; also added %P support.
2075 2002-02-05 09:20  simon
2077         * MANIFEST, Makefile.in, core.ops, embed.c, interpreter.c,
2078         test_main.c, classes/perlundef.pmc, include/parrot/embed.h,
2079         include/parrot/interpreter.h, include/parrot/misc.h,
2080         include/parrot/parrot.h, include/parrot/warnings.h:
2081         Warnings support.
2083         Courtesy of: Brent Dax <brentdax@cpan.org>
2085 2002-02-05 05:41  jgoff
2087         * vtable.tbl, lib/Parrot/Vtable.pm, t/pmc/perlstring.t: Changed the
2088         format of vtable.tbl to get rid of the tab-dependence.  The format
2089         now looks roughly like this:
2091         init() # 'void' and 'unique' are assumed INTVAL type ( ) # 'unique'
2092         is assumed str void concatenate (PMC* value, PMC* dest) # Nothing
2093         assumed here, but note the C-like prototyping.  Also had to disable
2094         one test that depended upon 'concat_p_p_s', which isn't necessary
2095         anyway.
2097         Vtable.pm will change again when the type '_keyed' is added,
2098         because that requires remapping parameters slightly differently
2099         again.  Also, note that it assumes 'value' is the first parameter
2100         in the list. This assumption will go away at the same time.
2102 2002-02-04 16:57  ajgough
2104         * core.ops, t/pmc/perlstring.t, t/pmc/pmc.t: More tests for pmc
2105         functions.  Thanks to Simon Glover.
2107 2002-02-04 02:47  ajgough
2109         * hints/os2.pl: Removes a flag from the os/2 hints file that isn't
2110         needed.  I suspect that the entire hints file isn't really needed,
2111         but there's no one to actually tell us this.
2113 2002-02-02 15:45  ask
2115         * docs/ParrotFAQ.htm: fix internal links
2117 2002-02-02 04:06  jgoff
2119         * classes/: array.pmc, intqueue.pmc, perlarray.pmc, perlhash.pmc:
2120         Moving the internal KEY structure from the cache.struct_val member,
2121         where it doesn't really belong, to the internal SELF->data member.
2122         This frees up the cache/type members for other usage.
2124         This is the first step in moving PMCs to the point where we can do
2125         multidimensional PMC handles. The next step is to change the
2126         assembler to accept the syntax of 'set P0["foo"],7'.
2128 2002-02-02 00:13  nicholas
2130         * include/parrot/global_setup.h: Patch from Jonathan Stowe to
2131         prototype Parrot_Array_class_init
2133 2002-02-02 00:13  nicholas
2135         * embed.c: Casts to tidy up warnings from Jonathan Stowe Change
2136         time to sum_time to avoid warning on FreeBSD about tracking a
2137         global [No, this warning does not appear on Linux. Yes, it is real
2138         :-)]
2140 2002-02-01 23:02  nicholas
2142         * embed.c: Fix fprintf format warning in Parrot_runcode. From Simon
2143         Glover
2145 2002-02-01 20:20  nicholas
2147         * t/pmc/pmc.t: Add end at end of asm in test (from Simon Glover)
2149 2002-02-01 18:20  nicholas
2151         * lib/Parrot/Test.pm: Env.pm on 5.005_03 doesn't do a use vars for
2152         you
2154 2002-02-01 13:22  nicholas
2156         * MANIFEST: Add docs/embed.pod and t/op/ifunless.t
2158 2002-02-01 12:19  simon
2160         * core.ops, t/op/ifunless.t, t/op/integer.t:
2161         Added "unless" op.
2163 2002-02-01 12:11  simon
2165         * lib/Parrot/Test.pm:
2166         Remove a warning.
2168 2002-02-01 01:38  nicholas
2170         * MANIFEST, MANIFEST.SKIP, Makefile.in: Add a MANIFEST.SKIP file,
2171         and a manitest target to Makefile.in that lets one test the
2172         manifest.
2174 2002-02-01 00:03  dan
2176         * core.ops, global_setup.c, include/parrot/pmc.h: More setup for
2177         PMC dynaloading
2179 2002-01-31 21:46  gregor
2181         * Configure.pl, Makefile.in, hints/mswin32.pl:
2182         A few more things are now configable, so we are closer to win32
2183         shared library builds. Not there yet, but closer.
2185 2002-01-31 21:00  dan
2187         * global_setup.c, classes/pmc2c.pl, include/parrot/global_setup.h,
2188         include/parrot/pmc.h: First step in dynamically loading PMC classes
2190 2002-01-31 19:38  dan
2192         * Makefile.in: Dependencies in the Makefile are currently too broad
2193         brush.  I don't enjoy waiting for everything to recompile every
2194         time I try to tweak the jit. The only file that #includes
2195         jit_struct.h is jit.c, so I feel that the Makefile dependencies
2196         should reflect this, and not cause a gratuitous recompile of
2197         everything.  There are probably other auto-generated header files
2198         that world+dog should not depend on.
2200         Courtesy of  Nicholas Clark <nick@unfortu.net>
2202 2002-01-31 19:03  gregor
2204         * Makefile.in, lib/Parrot/Test.pm, t/harness:
2205         Added two new make targets:
2207           * testp: Like 'make test', but passes -P to t/harness, so you get
2208         to
2209             see how broken predereferencing is.
2211           * testj: Like 'make test', but passes -j to t/harness, so you get
2212         to
2213             see how broken JIT is.
2215         Now, anyone who wants to see how good all three ways of running are
2216         can do so, at the cost of about 3x the time.
2218 2002-01-31 17:09  brentdax
2220         * embed.c, test_main.c: Implement the ARGV-in-P0 thing.
2222 2002-01-31 03:41  grunblatt
2224         * docs/jit.pod: Update jit.pod
2226 2002-01-31 03:20  grunblatt
2228         * jit/i386/core.jit: Hold this until we get an assemble tool,
2229         because of the different objdump problems.
2231 2002-01-31 03:13  grunblatt
2233         * Configure.pl, lib/Parrot/Jit/sun4-solaris.pm,
2234         lib/Parrot/Jit/sun4Generic.pm: Use dis intead of objdump.  Courtesy
2235         of: Jason Gloudon <perl@gloudon.com>
2237 2002-01-31 02:22  grunblatt
2239         * jit/i386/core.jit: Continue if the register is null
2241 2002-01-30 23:50  grunblatt
2243         * lib/Parrot/Jit/: alpha-bsd.pm, alpha-linux.pm, alphaGeneric.pm,
2244         i386-bsd.pm, i386-linux.pm, i386Generic.pm, sun4-solaris.pm,
2245         sun4Generic.pm: Move the AS and OBJDUMP constants to each os
2246         specific file.
2248 2002-01-30 23:35  mrjoltcola
2250         * io/io_win32.c: Change implementation of isatty on win32,
2251         suggested by Hong Zhang.
2253 2002-01-30 23:19  sfink
2255         * jit2h.pl, lib/Parrot/Op.pm, lib/Parrot/OpsFile.pm: Added
2256         Op::may_jump boolean method.
2258         Replaced jit2h's hardcoded pattern match to decide what ops might
2259         change the control flow.
2261 2002-01-30 22:13  dan
2263         * Configure.pl, MANIFEST, testparrotfuncptr.c: This patch allows
2264         parrot to mostly-build with tcc.  It allows one to skip compiling
2265         the JIT stuff (by specifying --define jitcapable=0), and it
2266         introduces a test program which gives a friendlier error in this
2267         case for compilers which are as picky as tcc is about function
2268         pointer conversion.
2270         If anyone figures out the proper way to cast these function
2271         pointers this may not be necessary.
2273         Courtesy of Josh Wilmes <josh@hitchhiker.org>
2275 2002-01-30 20:54  dan
2277         * docs/running.pod, lib/Parrot/Test.pm: I'm being anal again.
2278         Here's an update to docs/running.pod to better reflect the current
2279         state (both the test_parrot and assemble.pl improvements, plus
2280         documentation of a few more things.) And also a speling fiks
2281         s/POST_MORTERM/POST_MORTEM/.
2283         I could also replace some "perl foo" calls with "./foo" if someone
2284         wanted to set the executable flag in CVS on assemble.pl,
2285         optimize.pl, etc.
2287         Courtesy of Steve Fink <steve@fink.com>
2289 2002-01-30 20:43  dan
2291         * core.ops: find_global doesn't work, so stub out the wrong code
2293 2002-01-30 19:08  dan
2295         * lib/Parrot/Assembler.pm:  fixes the POD in Parrot::Assember so
2296         that perldoc
2297          can read it and just tidies it up generally. It also adds
2298         documentation
2299          for the constantize_integer and constantize_number functions.
2301         Courtesy of Simon Glover <scog@roe.ac.uk>
2303 2002-01-30 18:02  dan
2305         * assemble.pl, disassemble.pl, optimizer.pl, pbc2c.pl,
2306         classes/genclass.pl, classes/pmc2c.pl,
2307         languages/scheme/Scheme/Test.pm:  Many of the Perl scripts in the
2308         distribution (including assemble.pl !)
2309          can no longer find the Parrot::* modules. Enclosed patch fixes
2310         (although
2311          it would be nice if there were an easier way to do this).
2313         Courtesy of  Simon Glover <scog@roe.ac.uk>
2315 2002-01-30 16:00  mrjoltcola
2317         * io/io_win32.c: Correct function calls for win32_fdopen and arg
2318         types.
2320 2002-01-30 15:50  mrjoltcola
2322         * io/io_unix.c: Minor bug fix for fdopen flag arg type.
2324 2002-01-30 15:42  grunblatt
2326         * pbc2c.pl, examples/assembly/Makefile: Updates related to moving
2327         files around
2329 2002-01-30 15:38  grunblatt
2331         * MANIFEST: Enclosed patch adds the new SPARC-based JIT files to
2332         the manifest,  and also puts it back into alphabetical order.
2334         Courtesy of: Simon Glover <scog@roe.ac.uk>
2336 2002-01-30 14:41  nicholas
2338         * embed.c: Patch from Simon Glover to clean up warnings where
2339         prototype is () not (void)
2341 2002-01-30 13:54  nicholas
2343         * include/parrot/embed.h, test_main.c: Add void as an explicit
2344         parameter in test_main.c's usage(), version(void) and embed.h's
2345         Parrot_new() Without these gcc moans: include/parrot/embed.h:34:
2346         warning: function declaration isn't a prototype
2348 2002-01-30 12:08  simon
2350         * lib/Parrot/.cvsignore:
2351         Ignore generated Perl modules.
2353 2002-01-30 12:07  simon
2355         * t/harness:
2356         Run the PMC tests as well.
2358 2002-01-30 12:04  simon
2360         * MANIFEST:
2361         Fix MANIFEST after recent t/pmc rejig.
2363 2002-01-30 11:42  simon
2365         * lib/Parrot/Test.pm:
2366         Report non-zero exit codes.
2368         Courtesy of: Michael G Schwern <schwern@pobox.com>
2370 2002-01-30 11:39  simon
2372         * t/op/rx.t:
2373         Skip final test, TODO doesn't work yet.
2375 2002-01-30 09:54  brentdax
2377         * docs/embed.pod: Leon Brocard was kind enough to explain to me how
2378         predereferencing works.
2380 2002-01-30 09:38  brentdax
2382         * docs/: embed.pod, parrot.pod: Document this newfangled embedding
2383         subsystem.
2385 2002-01-30 09:37  brentdax
2387         * include/parrot/embed.h: Fix a mistake, clear up a warning.
2389 2002-01-30 09:37  brentdax
2391         * config_h.in: Expose another flag for embedders.
2393 2002-01-30 05:07  jgoff
2395         * make_vtable_ops.pl, t/harness: Both files didn't know of the new
2396         location for Parrot/, and t/harness wasn't able to run the new
2397         op/pmc tests. Both problems fixed, so I think I'm going to declare
2398         the build suitable for public consumption.
2400 2002-01-30 04:34  robert
2402         * docs/Makefile.in: update for CVS movement
2404 2002-01-30 04:32  robert
2406         * Makefile.in: Adjust for CVS reorganization.  (This time, edit the
2407         .in file, not the real Makefile)
2409 2002-01-30 04:20  robert
2411         * Configure.pl, jit2h.pl, ops2c.pl, ops2pm.pl, pmc_pm.pl,
2412         vtable_h.pl, classes/pmc2c.pl, include/parrot/parrot.h: Updates
2413         related to moving files around
2415 2002-01-30 04:10  robert
2417         * MANIFEST: Update MANIFEST to reflect CVS reorg.
2419 2002-01-30 04:07  robert
2421         * Configure.pl: Add './lib' to our @INC because Parrot/* moved.
2423 2002-01-30 03:56  robert
2425         * Parrot/: .cvsignore, Assembler.pm, BuildUtil.pm, Op.pm,
2426         OpTrans.pm, OpsFile.pm, Optimizer.pm, PackFile.pm, String.pm,
2427         Test.pm, Vtable.pm, Jit/alpha-bsd.pm, Jit/alpha-linux.pm,
2428         Jit/alphaGeneric.pm, Jit/i386-bsd.pm, Jit/i386-linux.pm,
2429         Jit/i386-nojit.pm, Jit/i386Generic.pm, Jit/sun4-solaris.pm,
2430         Jit/sun4Generic.pm, OpLib/.cvsignore, OpTrans/C.pm,
2431         OpTrans/CGoto.pm, OpTrans/CPrederef.pm, PackFile/ConstTable.pm,
2432         PackFile/Constant.pm, PackFile/FixupTable.pm: Moved Parrot/* to
2433         lib/Parrot/
2435 2002-01-30 03:46  robert
2437         * languages/miniperl/miniperlc: renamed to mpc
2439 2002-01-30 03:45  robert
2441         * t/op/: pmc.t, pmc_array.t, pmc_perlarray.t, pmc_perlhash.t,
2442         pmc_perlstring.t: Moved to t/op/pmc/
2444 2002-01-30 03:40  robert
2446         * include/parrot/register_funcs.h: Renamed to regfuncs.h
2448 2002-01-30 03:14  jgoff
2450         * classes/perlarray.pmc, t/op/pmc_perlarray.t, t/pmc/perlarray.t:
2451         Fixed some problems with PerlArray and added tests.  Previously,
2452         only integers could be accessed by negative indices.  After this
2453         change, all basic types can be accessed by negative indices, and
2454         they can also be set at negative indices.
2456 2002-01-29 22:13  brentdax
2458         * TODO: Just look at the stupid diff.
2460 2002-01-29 21:53  simon
2462         * TODO, docs/vtables.pod:
2463         New TODO, and tiny addition to vtables.pod
2465 2002-01-29 21:47  mrjoltcola
2467         * include/parrot/io.h, io/io_unix.c: Minor bug fix in io_unix.
2469 2002-01-29 21:38  mrjoltcola
2471         * Makefile.in: Makefile.in tweak for io depend.
2473 2002-01-29 21:15  brentdax
2475         * embed.c: Fix a segfault and some profiling formatting nits.
2477 2002-01-29 20:54  brentdax
2479         * pmc.c: Oops.
2481 2002-01-29 20:50  brentdax
2483         * pmc.c, include/parrot/exceptions.h: Exceptions are better than
2484         segfaults.
2486 2002-01-29 20:17  mrjoltcola
2488         * interpreter.c, core.ops, io.ops: CVS missed this.
2490 2002-01-29 20:17  mrjoltcola
2492         * io/io.c: These should have gone in Sunday with the rest. CVS is
2493         out to get me.
2495 2002-01-29 18:39  brentdax
2497         * platforms/win32.h: Fix Win32 whoops.
2499 2002-01-29 18:29  brentdax
2501         * embed.c, include/parrot/embed.h: A couple minor embedding fixes.
2503 2002-01-29 17:51  simon
2505         * MANIFEST, Makefile.in, config_h.in, embed.c, test_main.c,
2506         include/parrot/embed.h, include/parrot/parrot.h:
2507         Embedding support. Cool.
2509         Courtesy of: <brentdax@cpan.org>
2511 2002-01-29 15:40  grunblatt
2513         * Configure.pl: Detect if we can use "objdump".  Courtesy of: Jason
2514         Gloudon <perl@gloudon.com>
2516 2002-01-29 14:42  simon
2518         * include/parrot/parrot.h:
2519         Platform stuff has to be included *after* system headers.
2521 2002-01-29 14:05  grunblatt
2523         * interpreter.c, jit.c, Parrot/Jit/sun4-solaris.pm,
2524         Parrot/Jit/sun4Generic.pm, lib/Parrot/Jit/sun4-solaris.pm,
2525         lib/Parrot/Jit/sun4Generic.pm, include/parrot/jit.h,
2526         jit/sun4/core.jit, jit/sun4/lib.jit, jit/sun4/string.jit: Added
2527         support for SPARC.  Courtesy of: Jason Gloudon <perl@gloudon.com>
2529 2002-01-29 10:56  simon
2531         * platforms/generic.h:
2532         If we don't have a S_ISREG, produce something close to it.
2534 2002-01-29 06:01  dan
2536         * MANIFEST, README, LICENSES/Artistic: Finally added licenses
2538 2002-01-29 04:38  jgoff
2540         * classes/array.pmc: Forgot to remove some C++-isms from the
2541         get_{foo}_index routines.
2543 2002-01-29 04:26  jgoff
2545         * MANIFEST, Makefile.in, global_setup.c, classes/Makefile.in,
2546         classes/array.pmc, include/parrot/pmc.h, t/op/pmc_array.t,
2547         t/pmc/array.t: Added array class that languages other than perl can
2548         use for a basis.  It has no features like preextension, and the
2549         array index starts at 0.
2551         MANIFEST - added classes/array.pmc and t/op/pmc_array.t Makefile.in
2552         and classes/Makefile.in - Added array.pmc to the makefile.
2553         (Assuming rules like .pmc.o are portable (or even possible) I might
2554         alter classes/Makefile.in to autobuild the appropriate files.
2556 2002-01-29 02:32  dan
2558         * MANIFEST, Parrot/Test.pm, lib/Parrot/Test.pm,
2559         lib/Test/Builder.pm, lib/Test/More.pm, lib/Test/Simple.pm,
2560         lib/Test/Utils.pm, t/op/interp.t, t/op/macro.t, t/op/pmc.t,
2561         t/op/rx.t, t/op/stacks.t, t/pmc/pmc.t:
2562             Update to Test::More 0.41 which adds Test::Builder
2564             Delete the vestigal Test::Utils
2566             Change Parrot::Test so it uses Test::Builder instead of Evil
2567         Wrappers
2568             around Test::More
2570             output_* now returns whether the test passes or fails
2572             Parrot::Test no longer exports Test::More's functions.  Instead
2573         they
2574             can simply be used together.  The few tests which used
2575         Test::More
2576             features (ie. skip) have 'use Test::More' added.
2578             I ditched the export_to_level() crutch.  Do we expect parrot to
2579         work on
2580             5.004?  (literally 5.004, not 5.004_04)
2582         Courtesy of Michael G Schwern <schwern@pobox.com>
2584 2002-01-28 21:04  dan
2586         * docs/overview.pod:  There is no opcodes.pod; I'm assuming the
2587         pointer should actually be to
2588          parrot_assembly.pod, as the canonical documentation.
2590         Courtesy of Simon Glover <scog@roe.ac.uk>
2592 2002-01-28 20:21  dan
2594         * languages/jako/jakoc, t/op/stacks.t: Toss the last traces of
2595         clone[inps]
2597 2002-01-28 19:18  dan
2599         * core.ops, register.c: clone[insp] is dead
2601 2002-01-28 17:46  grunblatt
2603         * Parrot/Jit/i386Generic.pm, lib/Parrot/Jit/i386Generic.pm,
2604         jit/i386/core.jit: Fix to make the jit work in linux yet again.
2606 2002-01-28 16:45  dan
2608         * MANIFEST, README.OS_X: Added Mac OS X specific readme documenting
2609         the requirement for fink at the moment.
2611 2002-01-28 15:59  simon
2613         * test_main.c:
2614         People might try and run a directory file, with spectacular
2615         results.  We don't want that. No.
2617 2002-01-28 14:58  doughera
2619         * core.ops: Avoid C++-style comments.
2621 2002-01-28 14:16  grunblatt
2623         * jit.c, io/io.c: Changed jit.c to fit the way registers are
2624         accessed.  Readded the pio_(stdin|stdout|stderr) to make builds
2625         work again.
2627 2002-01-28 13:47  doughera
2629         * include/parrot/register.h: Avoid C++-style comment.
2631 2002-01-28 06:03  dan
2633         * MANIFEST, core.ops, interpreter.c, key.c, register.c, trace.c,
2634         Parrot/OpTrans/C.pm, Parrot/OpTrans/CGoto.pm,
2635         lib/Parrot/OpTrans/C.pm, lib/Parrot/OpTrans/CGoto.pm,
2636         docs/parrot_assembly.pod, include/parrot/interpreter.h,
2637         include/parrot/parrot.h, include/parrot/regfuncs.h,
2638         include/parrot/register.h, include/parrot/register_funcs.h,
2639         include/parrot/string.h, include/parrot/string_funcs.h: Registers
2640         are now stored in the interpreter structure itself, rather than
2641         just a pointer to the top of the register structure. Pushes and
2642         pops now involve memcpys, but register access has one fewer
2643         dereference.
2645         Fails four of the register stack tests, though, so not perfect.
2646         Needs fixing, but this is a good place to start.
2648 2002-01-28 04:40  mrjoltcola
2650         * test_main.c: cvs commit missed this. ??
2652 2002-01-28 04:27  mrjoltcola
2654         * examples/assembly/io1.pasm, include/parrot/exceptions.h,
2655         include/parrot/interpreter.h, include/parrot/io.h, io/io.c,
2656         io/io_stdio.c, io/io_unix.c, io/io_win32.c: ParrotIO local to each
2657         interpreter now (at least in theory).  IO handle array added.  Misc
2658         bug fixes in layer handling.  Changed any IO_ constants to PIO_ so
2659         we don't conflict         with system libraries.  Still have broken
2660         stuff in win32 and stdio layer.
2662 2002-01-28 04:01  mrjoltcola
2664         * include/parrot/chartype.h: Typo in chartype.h include guard.
2666 2002-01-28 03:41  mrjoltcola
2668         * t/op/interp.t: Fix flag for interp so we don't get "info"
2669         messages which break tests.
2671 2002-01-28 01:54  dan
2673         * include/parrot/string.h: A few more buffer/string flags
2675 2002-01-27 11:33  nicholas
2677         * chartypes/unicode.c: Cast unsigned argument to int in call to
2678         isdigit to silence gcc warning.
2680 2002-01-26 23:18  grunblatt
2682         * Parrot/Jit/i386Generic.pm, lib/Parrot/Jit/i386Generic.pm: Turn
2683         off that flag.
2685 2002-01-26 23:17  grunblatt
2687         * Parrot/Jit/i386Generic.pm, lib/Parrot/Jit/i386Generic.pm,
2688         jit/i386/core.jit: [no log message]
2690 2002-01-26 22:18  simon
2692         * jit/i386/core.jit:
2693         Jumping to 0x0 is a recipe for segfaults.
2695 2002-01-26 18:35  simon
2697         * t/harness:
2698         Allow user to select which tests to harness
2700         Courtesy of: Nicholas Clark <nick@unfortu.net>
2702 2002-01-26 17:20  grunblatt
2704         * Parrot/Jit/i386-linux.pm, Parrot/Jit/i386Generic.pm,
2705         lib/Parrot/Jit/i386-linux.pm, lib/Parrot/Jit/i386Generic.pm: Patch
2706         to make the jit work in linux again.
2708 2002-01-26 16:52  dan
2710         * Configure.pl, hints/darwin.pl: Add -Wno-shadow, as Darwin's
2711         headers can't cope with this. Darwin-only
2713 2002-01-26 16:04  dan
2715         * include/parrot/parrot.h: Quick note to remind folks that this
2716         isn't the file they're looking for if they're writing extensions or
2717         embedding parrot.
2719         Courtesy of Andy Dougherty <doughera@lafayette.edu>
2721 2002-01-26 00:41  mrjoltcola
2723         * MANIFEST: Oopsy.
2725 2002-01-26 00:37  mrjoltcola
2727         * docs/ParrotFAQ.htm: Parrot FAQ : Created and maintained by Adam
2728         Turoff
2730 2002-01-25 01:31  grunblatt
2732         * jit/alpha/core.jit: There is no neg or fneg.
2734 2002-01-25 01:27  grunblatt
2736         * core.ops, Parrot/Jit/alphaGeneric.pm, Parrot/Jit/i386Generic.pm,
2737         lib/Parrot/Jit/alphaGeneric.pm, lib/Parrot/Jit/i386Generic.pm,
2738         jit/alpha/core.jit, jit/i386/core.jit, t/op/integer.t,
2739         t/op/number.t: Added Parrot_neg.  Erase t.s
2741 2002-01-24 23:26  dan
2743         * interpreter.c: Best make sure unused elements are NULL
2745 2002-01-24 23:24  dan
2747         * interpreter.c: Fix stupid thinko
2749 2002-01-24 18:37  doughera
2751         * Makefile.in: Add a few missing dollar signs in the lifetest
2752         section so that ${exe} and the like get properly interpolated.
2754 2002-01-24 18:15  mrjoltcola
2756         * docs/: .cvsignore, Makefile.in, parrot.pod: Fix pod generation
2757         for io.ops file. Add reference to it in parrot.pod.  Courtesy of
2758         Simon Glover <scog@roe.ac.uk>
2760 2002-01-24 06:43  mrjoltcola
2762         * io/io_stdio.c: Oops.
2764 2002-01-24 06:34  mrjoltcola
2766         * include/parrot/io.h, io/TODO, io/io.c, io/io_stdio.c: Did a bit
2767         of work on the buffering layer.  Decided to use shared read/write
2768         buffer (as do most implementations) for now since its the simplest
2769         way to keep everything synced, (flush on seeks, flush read on
2770         writes, etc.)
2772 2002-01-24 03:38  mrjoltcola
2774         * test_main.c: Cleaned up option handling code a bit for main().
2776 2002-01-23 23:22  dan
2778         * interpreter.c, include/parrot/interpreter.h,
2779         include/parrot/resources.h: Now each interpreter gets its own hash
2780         for globals.
2782 2002-01-23 20:45  dan
2784         * Configure.pl: Fix a warning when there's no - in an architecture
2786 2002-01-22 23:57  grunblatt
2788         * docs/running.pod: [no log message]
2790 2002-01-22 20:29  doughera
2792         * KNOWN_ISSUES: long doubles don't work on SPARC either.  It
2793         appears to be a generic problem (if sizeof(long double) >
2794         sizeof(double)), not an x86-specific one.
2796 2002-01-22 16:57  doughera
2798         * runops_cores.c: Change variable name from time to starttime to
2799         avoid gcc warning about variable name shadowing.
2801 2002-01-22 16:55  doughera
2803         * classes/pmc2c.pl: Include class_init prototype too.
2805 2002-01-22 16:01  doughera
2807         * MANIFEST: [no log message]
2809 2002-01-22 01:04  ajgough
2811         * global_setup.c, classes/default.pmc, classes/intqueue.pmc,
2812         classes/parrotpointer.pmc, classes/perlarray.pmc,
2813         classes/perlhash.pmc, classes/perlint.pmc, classes/perlnum.pmc,
2814         classes/perlstring.pmc, classes/perlundef.pmc, classes/pmc2c.pl,
2815         include/parrot/global_setup.h: Patch from Nick Clark to quieten
2816         warnings from pmc files.  Message-ID:
2817         <20020121224719.GE1726@Bagpuss.unfortu.net>
2819 2002-01-22 00:53  ajgough
2821         * test_main.c: Clears up a couple of warnings in test_main.c.
2822         Thanks to Nick Clark.  Message-ID:
2823         <20020121190457.GB1726@Bagpuss.unfortu.net>
2825 2002-01-22 00:47  ajgough
2827         * string.c, chartypes/unicode.c, chartypes/usascii.c,
2828         include/parrot/chartype.h: Cause all codepoints to be treated as
2829         UNITVALS, and get_digit to return INTVAL, just in case. (Thanks to
2830         Nick Clark, see also: Message-ID:
2831         <20020121214137.GC2371@Bagpuss.unfortu.net> )
2833 2002-01-22 00:24  dan
2835         * key.c: We do mandate an ANSI conformant C compiler, don't we?
2837         Appended patch cures these warnings:
2839         key.c: In function `debug_key': key.c:29: warning: int format,
2840         INTVAL arg (arg 3) key.c:33: warning: int format, INTVAL arg (arg
2841         3) key.c:33: warning: int format, INTVAL arg (arg 4) key.c:36:
2842         warning: int format, INTVAL arg (arg 3) key.c:36: warning: int
2843         format, INTVAL arg (arg 4)
2845         Courtesy of Nicholas Clark <nick@unfortu.net>
2847 2002-01-21 12:41  mrjoltcola
2849         * MANIFEST, io.ops: For some reason cvs commit didn't get this, may
2850         be clock skew.
2852 2002-01-21 06:37  mrjoltcola
2854         * io/io.c: Cleanup a warning
2856 2002-01-21 06:28  mrjoltcola
2858         * examples/assembly/io1.pasm, include/parrot/io.h, io/io.c,
2859         io/io_stdio.c, io/io_unix.c, io/io_win32.c: Added 32/64 bit seek
2860         ops. Various other IO twiddlings.
2862 2002-01-21 03:25  grunblatt
2864         * Makefile.in: Use $jitcpuarch instead of $cpuarch.  Thanks to
2865         Melvin Smith for the catch up.
2867 2002-01-20 23:13  sfink
2869         * stacks.c: Fixed logic errors, need tests
2871 2002-01-20 22:17  brentdax
2873         * rx.c, rx.ops, include/parrot/rx.h, t/op/rx.t: Make /m work and
2874         prepare for /i to work.
2876 2002-01-20 20:52  grunblatt
2878         * Configure.pl, MANIFEST, Makefile.in, interpreter.c, jit.c,
2879         jit2h.pl, Parrot/Jit/alpha-bsd.pm, Parrot/Jit/alpha-linux.pm,
2880         Parrot/Jit/alphaGeneric.pm, Parrot/Jit/i386-bsd.pm,
2881         Parrot/Jit/i386-linux.pm, lib/Parrot/Jit/alpha-bsd.pm,
2882         lib/Parrot/Jit/alpha-linux.pm, lib/Parrot/Jit/alphaGeneric.pm,
2883         lib/Parrot/Jit/i386-bsd.pm, lib/Parrot/Jit/i386-linux.pm,
2884         Parrot/Jit/i386Generic.pm, lib/Parrot/Jit/i386Generic.pm,
2885         include/parrot/jit.h, jit/alpha/core.jit, jit/alpha/lib.jit,
2886         jit/alpha/string.jit:
2887         - Added support for ALPHA, by now linux and bsd.
2889         - Reduced jit2h.pl execution time by precompiling the call to the
2890         unimplemented op.
2892         - Reduced the duplicated code in Parrot/Jit/*.pm by adding
2893         Parrot/Jit/${cpuarch}Generic.pm
2895         - Changed the way to detect quads to what is written in "man
2896         perlfunc".
2898 2002-01-20 17:23  brentdax
2900         * rx.ops: There's no such thing as rx_allocateinfo.
2902 2002-01-19 08:26  brentdax
2904         * pbc2c.pl: Stop this stupid "hard-code the new oplib" stuff.
2906 2002-01-19 07:12  mrjoltcola
2908         * MANIFEST, core.ops, io.ops, pbc2c.pl: Separate pure ParrotIO ops
2909         into io.ops, leave the STDIO wrappers        in core.ops until they
2910         disappear.  Added debug op for switching on VM debug flag
2912 2002-01-19 01:55  mrjoltcola
2914         * include/parrot/io.h, io/TODO, io/io.c, io/io_stdio.c,
2915         io/io_unix.c, io/io_win32.c: Added a few more Win32 layer calls
2917 2002-01-19 00:55  brentdax
2919         * Makefile.in, rx.c, rx.ops, rxstacks.c, include/parrot/rx.h,
2920         include/parrot/rxstacks.h: Add regex-specific stacks for
2921         efficiency.
2923 2002-01-18 23:58  dan
2925         * Configure.pl: I think the optimal fix here is simply to remove
2926         -ansi -pedantic.  -ansi may well have some uses, but even the gcc
2927         man pages say "There is no reason to use this option [-pedantic];
2928         it exists only to satisfy pedants."
2930         Courtesy of Andy Dougherty <doughera@lafayette.edu>
2932 2002-01-18 23:23  dan
2934         * MANIFEST, docs/parrot.pod, docs/running.pod: This patch add
2935         docs/running.pod, which lists the various executables Parrot
2936         currently includes, examples of running them, and mentions of where
2937         they fail to work. It's more of a cry for help than a useful
2938         reference. :-) I've been having trouble recently when making
2939         changes in figuring out whether I broke anything, because any
2940         non-default way of running the system seems to be already broken. I
2941         can't tell what brokenness is expected and what isn't.
2943         Courtesy of  Steve Fink <steve@fink.com>
2945 2002-01-15 22:13  brentdax
2947         * include/parrot/rx.h, rx.c, rx.ops: Remove the last vestiges of
2948         substring use and enhance performance.
2950 2002-01-15 21:03  ajgough
2952         * string.c: Fix problem with string_transcode, &dest not being
2953         updated if src was already in desired encoding.
2955 2002-01-15 16:54  brentdax
2957         * rx.c, rx.ops, include/parrot/rx.h: Hunt down and destroy
2958         warnings.  Leaves only one warning, at rx.ops line 409, that I
2959         can't manage to get rid of.
2961 2002-01-15 16:50  dan
2963         * pbc2c.pl: Pointer arithmetic not quite right in the generated
2964         code.  Also patches pbc2c.pl to work with rx.ops.
2966         Courtesy of Jason Gloudon <perl@gloudon.com>
2968 2002-01-15 16:15  dan
2970         * classes/Makefile.in: All the C files in classes/ weren't being
2971         compiled with an of the gcc warnings flags. With this patch they
2972         are, and there are an awful lot of warnings, more than I could hope
2973         to understand and clear up (within any sensible time period before
2974         submitting a rash of patches, by which time everyone else would
2975         have moved the code on)
2977         Courtesy of Nicholas Clark <nick@unfortu.net>
2979 2002-01-15 16:10  dan
2981         * core.ops, ops2c.pl, Parrot/Op.pm, Parrot/OpTrans.pm,
2982         Parrot/OpsFile.pm, lib/Parrot/Op.pm, lib/Parrot/OpTrans.pm,
2983         lib/Parrot/OpsFile.pm, Parrot/OpTrans/C.pm,
2984         Parrot/OpTrans/CGoto.pm, Parrot/OpTrans/CPrederef.pm,
2985         lib/Parrot/OpTrans/C.pm, lib/Parrot/OpTrans/CGoto.pm,
2986         lib/Parrot/OpTrans/CPrederef.pm, chartypes/unicode.c,
2987         chartypes/usascii.c: This patch adds a few more macros for .ops
2988         files to use. In addition to the existing
2990          goto OFFSET(...)
2991          goto ADDRESS(...)
2992          goto POP()
2993          goto NEXT()
2995         it adds
2997          expr OFFSET(...)
2998          expr ADDRESS(...)
2999          expr POP()
3000          expr NEXT()
3002         This is intended mainly for use in helper functions in .ops files,
3003         but also for ops that need to eg push the address of the next
3004         opcode onto a stack. The only place this currently happens (outside
3005         of my private code) is in the bsr opcode, which previously
3006         hardcoded the computation.
3008         This patch also makes ops2c.pl move the CUR_OPCODE #define a bit
3009         higher in the generated file so that it can be used by static
3010         functions in the preamble.
3012         Finally, I ran into a parentheses matching problem -- should goto
3013         OFFSET(...) rewrite    \bgoto\s+OFFSET\((.*)\) or
3014         \bgoto\s+OFFSET\((.*?)\)
3016         It was done inconsistently for the different calculations, and of
3017         course neither are correct because you really want matching
3018         parentheses. But that seems like too much bother. (Currently,
3019         there's only one place that uses anything other than $n in the
3020         parentheses, and that's the enternative() op.) So I made them all
3021         .*? but emulated recent POD by also allowing (( ... )) (that's two
3022         parenthesis with a space padding the body.)
3024         The generated core_ops.c and core_ops_prederef.c files after this
3025         patch are identical except for the CUR_OPCODE and REL_PC macros
3026         getting moved a little higher, and the bsr in the regular path (not
3027         prederef) uses 'CUR_OPCODE' instead of the hardcoded 'cur_opcode'.
3029         In summary, this is a big wad of meaningless changes for the
3030         current code. But it will make adding some opcodes easier in the
3031         future, and cleans up a small nit in the current bsr.
3033         Courtesy of Steve Fink <steve@fink.com>
3035 2002-01-15 08:48  brentdax
3037         * include/parrot/rx.h: Bitmaps can now include chars >255 (well,
3038         sort of).
3040 2002-01-15 08:45  brentdax
3042         * rx.c, rx.ops: Bitmaps can now include chars >255 (well, sort of).
3044 2002-01-15 05:00  brentdax
3046         * rx.ops: Speed up rx_literal--roughly doubles benchmark
3047         performance.
3049 2002-01-14 20:18  dan
3051         * vtable.tbl, vtable_h.pl: Clean up a zillion warnings
3053         Courtesy of Nicholas Clark <nick@unfortu.net>
3055 2002-01-14 20:03  dan
3057         * Configure.pl, MANIFEST, Makefile.in, core.ops, exceptions.c,
3058         global_setup.c, interpreter.c, key.c, ops2c.pl, register.c,
3059         runops_cores.c, rx.ops, stacks.c, string.c, test_main.c, trace.c,
3060         chartypes/unicode.c, chartypes/usascii.c, classes/default.pmc,
3061         classes/parrotpointer.pmc, classes/perlarray.pmc,
3062         classes/perlhash.pmc, classes/perlint.pmc, classes/perlnum.pmc,
3063         classes/perlstring.pmc, classes/perlundef.pmc,
3064         encodings/singlebyte.c, encodings/utf16.c, encodings/utf32.c,
3065         encodings/utf8.c, include/parrot/exceptions.h, include/parrot/io.h,
3066         include/parrot/parrot.h, include/parrot/rx.h, io/io_stdio.c,
3067         io/io_win32.c, platforms/win32.c, platforms/win32.h, t/op/pmc.t,
3068         t/op/pmc_perlhash.t, t/op/rx.t, t/pmc/perlhash.t, t/pmc/pmc.t: This
3069         patch cleans up most of the MSVC-warnings when using warning level
3070         4 (the highest, one above the default level 3). It turns off two
3071         level-4 warnings for 'unreferenced formal parameter' and 'named
3072         type definition in parentheses', the latter of which was turning up
3073         warnings in MS VC headers.  Level 4 warnings also helped me find a
3074         couple of other lurking bugs in the parrot code.
3076         Replaces the various fprintf/exit combos with calls to
3077         internal_exception, which uses var_args to emulate printf. Various
3078         exception types were added as well. These are probably temporary
3079         until a real exception system arrives.
3081         Fixed some places in the IO code where wrong functions were being
3082         called, or put into the vtable.
3084         Courtesy of "Michel Lambert" <mlambert@legendent.com>
3086 2002-01-14 19:00  dan
3088         * MANIFEST: D'oh! Forgot a file.
3090         Courtesy of Andy Dougherty <doughera@lafayette.edu>
3092 2002-01-14 18:44  brentdax
3094         * rx.c, rx.ops, include/parrot/rx.h: Use bitmaps where it makes
3095         sense (and a few other enhancements to regexes).
3097 2002-01-14 07:07  brentdax
3099         * interpreter.c, runops_cores.c, test_main.c,
3100         include/parrot/interpreter.h: Make profiling a little more useful.
3102 2002-01-13 19:44  dan
3104         * Configure.pl: Turn off unsed things warnings for now
3106 2002-01-13 19:39  dan
3108         * key.c, classes/perlarray.pmc: key.c:   intialize KEY.keys
3110         classes/perlarray.c:  * get_string: is casting
3111         SELF->cache.struct_val to a STRING*,    while all other methods are
3112         using it as a KEY*; don't know    what a perlarray stringifies to,
3113         so replacing with NULL  * get_bool: the default behaviour does not
3114         look right to me
3116         Courtesy of "Mattia Barbon" <mbarbon@dsi.unive.it>
3118 2002-01-13 19:37  dan
3120         * Makefile.in, classes/Makefile.in: Makefile.in:   (Re)add ld_debug
3121         flags to LDFLAGS, so that Configure.pl --debugging   works with
3122         MSVC
3124         classes/Makefile.in   make easier to add pmb2c.pl flags to all
3125         pmc2c calls
3127         Courtesy of "Mattia Barbon" <mbarbon@dsi.unive.it>
3129 2002-01-13 19:36  dan
3131         * io/io_win32.c:   according to my MSVC docs, you should use
3132         _tcslen only after
3133           #including tchar.h
3135         Courtesy of  "Mattia Barbon" <mbarbon@dsi.unive.it>
3137 2002-01-13 19:35  dan
3139         * docs/intro.pod: Doc tweak.
3141         Courtesy of Simon Glover <scog@roe.ac.uk>
3143 2002-01-13 19:34  dan
3145         * t/: op/pmc_perlstring.t, pmc/perlstring.t:  Enclosed test checks
3146         that
3148           if Px, ...
3150          works with PerlString PMCs; these should be false if they are "",
3151         0, or
3152          are undefined, and true in every other case.
3154         Courtesy of Simon Glover <scog@roe.ac.uk>
3156 2002-01-13 19:23  dan
3158         * Configure.pl, config_h.in, core.ops, classes/perlnum.pmc: Change
3159         NUMVAL_FMT to FLOATVAL_FMT.
3161         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3163 2002-01-13 17:45  jgoff
3165         * Makefile.in, global_setup.c, classes/Makefile.in,
3166         classes/intqueue.pmc, include/parrot/pmc.h, t/op/pmc.t,
3167         t/pmc/pmc.t: IntQueue is for an upcoming article on perl.com on
3168         designing your own classes.
3170 2002-01-13 08:47  simon
3172         * interpreter.c, Parrot/OpTrans/CPrederef.pm,
3173         lib/Parrot/OpTrans/CPrederef.pm:
3174         Fix bsr in prederef mode.
3176         Courtesy of: Jason Gloudon <perl@gloudon.com>
3178 2002-01-12 15:33  dan
3180         * interpreter.c, key.c, packfile.c, register.c, resources.c,
3181         string.c, encodings/singlebyte.c, encodings/utf32.c,
3182         include/parrot/parrot.h, io/io.c, io/io_stdio.c, io/io_unix.c:
3183         Silence most of the unused variable warnings.
3185         Courtesy of Nicholas Clark <nick@unfortu.net>
3187 2002-01-12 15:18  dan
3189         * rx.ops: This patch fixes a warning and also changes an 'int' to
3190         an 'INTVAL'.  All tests should pass on Solaris.
3192         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3194 2002-01-12 15:13  dan
3196         * interpreter.c, string.c, test_main.c, classes/parrotpointer.pmc,
3197         examples/assembly/life.pasm, include/parrot/interpreter.h,
3198         include/parrot/io.h, io/io.c, io/io_stdio.c, io/io_unix.c,
3199         io/io_win32.c: More IO work. (Plus some misc twiddles)
3201         Courtesy of Melvin Smith <mrjoltcola@mindspring.com>
3203 2002-01-12 01:14  dan
3205         * include/parrot/string.h: fix a missing name
3207 2002-01-12 00:39  grunblatt
3209         * include/parrot/string.h: Few typos.
3211 2002-01-12 00:16  grunblatt
3213         * jit.c, jit2h.pl, jit/i386/core.jit: Added support for opcodes
3214         that change the program control flow.
3216 2002-01-11 23:53  brentdax
3218         * classes/parrotpointer.pmc: Tell the GC to keep its hands out of a
3219         ParrotPointer's guts.
3221 2002-01-11 23:03  dan
3223         * include/parrot/string.h: flags for the buffers, for GC
3225 2002-01-11 22:31  dan
3227         * include/parrot/pmc.h: PMC flag docs. Those'd be good...
3229 2002-01-11 22:21  dan
3231         * include/parrot/pmc.h: Started with PMC flags
3233 2002-01-11 19:33  dan
3235         * config_h.in, memory.c, resources.c, string.c,
3236         include/parrot/resources.h: Beginnings of a memory allocation/gc
3237         system. Without the GC part.
3239 2002-01-11 18:05  dan
3241         * core.ops: Make sure constant pushes are right on mixed 32/64 bit
3242         systems
3244         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3246 2002-01-11 17:50  dan
3248         * core.ops, pbc2c.pl, Parrot/OpTrans/CGoto.pm,
3249         lib/Parrot/OpTrans/CGoto.pm, include/parrot/interpreter.h: Here is
3250         a patch that makes pbc2c generated code work with the bsr opcode.
3251         It creates a new opcode 'enternative', and uses this to support a
3252         mixed model of interpretation and execution of compiled C code.
3254         Courtesy of Jason Gloudon <perl@gloudon.com>
3256 2002-01-11 17:48  dan
3258         * Makefile.in: Add life as a potential .exe target
3260 2002-01-11 17:30  dan
3262         * include/parrot/resources.h: Start of arena stuff for GC
3264 2002-01-11 05:34  brentdax
3266         * rx.ops: Docs modifications.
3268 2002-01-11 04:19  brentdax
3270         * rx.ops, include/parrot/rx.h: Remove unnecessary evilness from
3271         regular expressions.
3273 2002-01-11 03:44  grunblatt
3275         * jit/i386/core.jit: off by one.
3277 2002-01-11 02:25  dan
3279         * Makefile.in, examples/assembly/life.pasm: Tweak to life benchmark
3281         Courtesy of Steve Fink <steve@fink.com>
3283 2002-01-11 00:32  brentdax
3285         * MANIFEST: Forgot to put parrotpointer.pmc in the MANIFEST.
3287 2002-01-10 23:22  ajgough
3289         * string.c, docs/strings.pod: Removed all the nul termination code,
3290         as this is in general a bad idea.  Note added to docs/strings.pod
3291         to warn people away from assuming termination.
3293 2002-01-10 23:14  dan
3295         * core.ops, interpreter.c, jit.c, rx.c, rx.ops, stacks.c,
3296         testparrotsizes_c.in, include/parrot/interpreter.h,
3297         include/parrot/rx.h, include/parrot/stacks.h: Much nicer stack
3298         implementation
3300         Courtesy of Steve Fink <steve@fink.com>
3302 2002-01-10 22:48  dan
3304         * core.ops: Fix 'basic' test 1 for sizeof(opcode_t) !=
3305         sizeof(INTVAL)
3307         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3309 2002-01-10 22:46  dan
3311         * key.c, classes/perlhash.pmc, t/op/pmc_perlhash.t,
3312         t/pmc/perlhash.t:  Well, actually two bugs.
3314          The first is an off-by-one error in key.c than can cause parrot
3315          to segfault if hash % NUM_BUCKETS happens to be zero.
3317          The other is a bug in the PerlHash init() code that causes new
3318         PerlHash
3319          PMCs to start with the wrong size.
3321          Both fixed below; also tests to prevent them recurring.
3323         Courtesy of Simon Glover <scog@roe.ac.uk>
3325 2002-01-10 22:30  dan
3327         * classes/default.pmc, classes/perlarray.pmc, t/op/pmc_perlarray.t,
3328         t/pmc/perlarray.t:  The enclosed patch allows one to use the if op
3329         with a PerlArray,
3331         Courtesy of Simon Glover <scog@roe.ac.uk>
3333 2002-01-10 21:31  dan
3335         * examples/assembly/life.pasm: Tweaked to be a benchmarkable thing
3337 2002-01-10 20:30  grunblatt
3339         * jit.c, jit2h.pl, Parrot/Jit/i386-bsd.pm,
3340         Parrot/Jit/i386-linux.pm, lib/Parrot/Jit/i386-bsd.pm,
3341         lib/Parrot/Jit/i386-linux.pm, jit/i386/core.jit, jit/i386/lib.jit:
3342         All the op codes that doesn't change the program control flow now
3343         work in the JIT by calling the code generated by the compiler when
3344         the op is not in core.jit TODO:     * Make all the ops that change
3345         the program control flow (and are not on core.jit) work.      *
3346         Remove the dispatch payload.
3348 2002-01-10 17:13  dan
3350         * classes/parrotpointer.pmc: This patch fixes parrotpointer.pmc,
3351         which tries to return 0 from a void function.
3353         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3355 2002-01-10 17:12  dan
3357         * t/op/macro.t: Skip tests, don't comment them out.
3359         Courtesy of Simon Glover <scog@roe.ac.uk>
3361 2002-01-10 17:10  dan
3363         * rx.c: This fixes a couple of nits in rx.c:
3365            1. There's no newline at the end, which makes gcc unhappy.
3366            2. We should use NULL, not 0 or "", for creating null pointers.
3368         Courtesy of Simon Glover <scog@roe.ac.uk>
3370 2002-01-10 17:09  dan
3372         * MANIFEST:  Adds rx.t, removes duplicated rx.c and puts everything
3373         back in
3374          alphabetical order.
3376         Courtesy of Simon Glover <scog@roe.ac.uk>
3378 2002-01-10 16:54  ajgough
3380         * resources.c: Made free_string check that there was a string to
3381         free.  In reponse to a bug spotted by Joshua Nye.
3383 2002-01-09 22:44  dan
3385         * global_setup.c: Forgot the setup
3387 2002-01-09 22:35  dan
3389         * rx.ops: Forgot this one
3391 2002-01-09 22:35  dan
3393         * MANIFEST, Makefile.in, rx.c, string.c, include/parrot/pmc.h,
3394         include/parrot/rx.h, t/op/rx.t: Preliminary regex implementation.
3395         Tests don't work, though.
3397         Courtesy of "Brent Dax" <brentdax@cpan.org>
3399 2002-01-09 21:48  dan
3401         * t/: op/pmc_perlarray.t, pmc/perlarray.t: Whoops, forgot that
3403 2002-01-09 21:22  dan
3405         * classes/Makefile.in, classes/parrotpointer.pmc, Makefile.in:
3406         Generic pointer holder class
3408         Courtesy of "Brent Dax" <brentdax@cpan.org>
3410 2002-01-09 21:19  dan
3412         * MANIFEST, classes/perlarray.pmc, t/op/pmc.t, t/pmc/pmc.t: Array
3413         patches.
3415 2002-01-09 19:54  dan
3417         * io/io_unix.c: Whoops. Forgot one
3419 2002-01-09 19:43  dan
3421         * key.c, classes/perlhash.pmc, t/op/pmc_perlhash.t,
3422         t/pmc/perlhash.t: Fix hash crash bugs
3424         Courtesy of Simon Glover <scog@roe.ac.uk>
3426 2002-01-09 19:13  dan
3428         * memory.c: Signedness whoops.
3430         Courtesy of Simon Glover <scog@roe.ac.uk>
3432 2002-01-09 18:23  dan
3434         * MANIFEST, Makefile.in, include/parrot/io.h, io/io.c, io/io_os.c,
3435         io/io_stdio.c, io/io_win32.c: Changes:
3437         -Minor layer cleanups -Win32 layer added (mostly stubs for now) but
3438         will be using the   Win32 API and company rather than the unix-ish
3439         fake ones.  -stdin/stdout/stderr Win32 specific code added. Rather
3440         than use   0,1,2, Microsoft says use GetStdHandle(), etc. so that
3441         stuff is   there. Soon we should be able to start using these
3442         rather than   fprintf(stderr, ...) and remove stdio linkage.
3444         Courtesy of <mrjoltcola@mindspring.com>
3446 2002-01-09 17:26  dan
3448         * test_main.c: Fixes bad code gen on x86.
3450         Courtesy of Josh Wilmes <josh@hitchhiker.org>
3452 2002-01-09 17:24  dan
3454         * Configure.pl, config_h.in, core.ops, key.c, classes/perlint.pmc,
3455         classes/perlnum.pmc: This patch adds macros to the config.h file
3456         for INTVAL and NUMVAL printf formats.
3458         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3460 2002-01-08 22:55  ajgough
3462         * docs/vtables.pod: Clarify what get_string should do.
3464 2002-01-08 20:05  dan
3466         * key.c: Keep comments in sync.
3468         Courtesy of Simon Glover <scog@roe.ac.uk>
3470 2002-01-08 19:50  dan
3472         * memory.c, include/parrot/memory.h: Need a realloc
3474 2002-01-08 17:24  gregor
3476         * .cvsignore, Configure.pl, Makefile.in:
3477         Added 'reconfig' make target and corresponding --reconfig option to
3478         Configure.pl, so its very easy to re-run Configure.pl with the last
3479         (command-line) options you passed it.
3481 2002-01-08 16:33  dan
3483         * core.ops, make_vtable_ops.pl, Parrot/OpsFile.pm,
3484         lib/Parrot/OpsFile.pm: Add in, out, and inout parameters to teh ops
3485         in core.ops. Potential help for optimizers and JITters.
3487         Courtesy of gregor@linux1.kennedytech.com
3489 2002-01-08 16:32  dan
3491         * key.c: Grab key length from the right spot
3493         Courtesy of "Peter Gibbs" <peter@emkel.co.za>
3495 2002-01-08 13:27  ajgough
3497         * test_main.c: Fix slight thinko in realloc usage for reading from
3498         stdin.
3500 2002-01-08 11:34  ajgough
3502         * test_main.c: Allow test_parrot to read bytecode stream from
3503         stdin, adds -f command line option, with "-f -" doing the stdin
3504         stuff.
3506 2002-01-08 06:34  jgoff
3508         * key.c, include/parrot/key.h: key.c - Added simple implementation
3509         of buckets.  include/parrot/key.h - Added enum_key_bucket type
3511 2002-01-08 03:21  jgoff
3513         * include/parrot/key.h: Added an undef type to the key structure,
3514         so we can delete keys without confusion.
3516 2002-01-07 22:09  dan
3518         * key.c, packfile.c, string.c, include/parrot/key.h,
3519         include/parrot/packfile.h, include/parrot/string.h: Fix whines
3520         about index being redefined
3522         Courtesy of Nick Clark
3524 2002-01-07 21:15  dan
3526         * ops2pm.pl: Don't allow the same ops lib to be included twice.
3528         Courtesy of Steve Fink <steve@fink.com>
3530 2002-01-07 20:48  dan
3532         * Parrot/Test.pm, lib/Parrot/Test.pm: Report useful info for test
3533         failures
3535         Courtesy of "Brent Dax" <brentdax@cpan.org>
3537 2002-01-07 20:43  dan
3539         * docs/intro.pod: Missing a comma
3541         Courtesy of "coral" <coral@eekeek.org>
3543 2002-01-07 20:41  dan
3545         * global_setup.c: Quiet a warning
3547         Courtesy of Simon Glover <scog@roe.ac.uk>
3549 2002-01-07 18:58  gregor
3551         * t/op/.cvsignore:
3552         Ignore intermediate test files.
3554 2002-01-07 17:01  gregor
3556         * ops2c.pl:
3557         Print a warning if an .ops file is mentioned more than once on the
3558         command line.
3560 2002-01-07 16:12  ajgough
3562         * t/: op/pmc_perlhash.t, pmc/perlhash.t: A couple more hash tests,
3563         these shouldn't fail.
3565 2002-01-07 15:15  simon
3567         * t/: op/pmc_perlhash.t, pmc/perlhash.t:
3568         Stop segfaults.
3570 2002-01-07 15:11  simon
3572         * key.c:
3573         Fix zero-termination bug in hash function.
3575 2002-01-07 13:37  ajgough
3577         * MANIFEST, t/op/pmc_perlhash.t, t/pmc/perlhash.t: Added
3578         pmc_perlhash.t, one test currently fails, one passes, yin-yang fun.
3580 2002-01-07 11:53  brentdax
3582         * Configure.pl: Fixes the + thing in prompts, plus adds a synonym
3583         (:add{foo}) and a new deleting thing (:rem{foo})
3585 2002-01-07 11:43  simon
3587         * Configure.pl:
3588         Gobble the + before concatenating.
3590 2002-01-07 03:53  dan
3592         * Makefile.in: Dependency fix for new ops setup.
3594 2002-01-07 03:33  jgoff
3596         * classes/perlarray.pmc: Add negative indices, and fix a small
3597         allocation problem.
3599 2002-01-06 23:54  ajgough
3601         * hints/os2.pl: Makes the hints file take account of ldflags and
3602         ccflags being split.  This hints file is still very specific to
3603         builds with gnu tools, but a proper solution can wait.   Thanks to
3604         Nick Burch.
3606 2002-01-06 22:12  dan
3608         * Makefile.in, ops2c.pl, Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm:
3609             -changes Parrot::OpLib::core's dependencies to reflect the new
3610         selectable ops files    -allows some of the special forms of 'goto'
3611         inside the PREAMBLE of an opcode file
3613         Courtesy of "Brent Dax" <brentdax@cpan.org>
3615 2002-01-06 19:59  simon
3617         * Makefile.in:
3618         *cough*
3620 2002-01-06 18:19  dan
3622         * classes/perlhash.pmc: Fix some type issues.
3624         Courtesy of Josh Wilmes <josh@hitchhiker.org>
3626 2002-01-06 18:03  dan
3628         * Configure.pl, Makefile.in: It adds a prompt to Configure asking
3629         for a list of opcode files to use.  The default is everything
3630         available except for obscure.ops.
3632         In addition, it makes it so that if your answer to a question
3633         starts with '+', it will concatenate it to the default.  For
3634         example:
3636         What C compiler do you want to use? [cl] +HAHAHA!!!
3638         will result in $PConfig{cc} eq "cl HAHAHA!!!".  While that example
3639         is not terribly useful, it is quite useful with things like
3640         command-line flags and the like.
3642         Finally, it contains a couple tweaks so that my syntax-highlighting
3643         editor recognizes some heredocs correctly.  :^)
3645         Courtesy of "Brent Dax" <brentdax@cpan.org>
3647 2002-01-06 17:59  dan
3649         * KNOWN_ISSUES, MANIFEST, README: Doc Patches
3651         Courtesy of "Bryan C. Warnock" <bwarnock@raba.com>
3653 2002-01-06 17:58  dan
3655         * MANIFEST:  We're missing a couple of files from the MANIFEST.
3657         Courtesy of Simon Glover <scog@roe.ac.uk>
3659 2002-01-06 17:57  dan
3661         * ops2c.pl, Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm:   1.
3662         Compiler directives, etc. in files other than core.ops will now
3663         work.   2.  Compiler warnings will now display the file and line
3664         number of the  opcode file.
3666         Courtesy of "Brent Dax" <brentdax@cpan.org>
3668 2002-01-06 17:52  dan
3670         * languages/jako/jakoc: Fix breakage caused by iton/ntoi going away
3672         Courtesy of Simon Glover <scog@roe.ac.uk>
3674 2002-01-06 17:36  dan
3676         * docs/intro.pod: Lots of updates
3678         Courtesy of Simon Glover <scog@roe.ac.uk>
3680 2002-01-06 02:34  gregor
3682         * interpreter.c:
3683         Add some internal documentation on the theory of operation of the
3684         prederef code.
3686 2002-01-06 02:17  gregor
3688         * interpreter.c:
3689         Removed unnecessary include.
3691 2002-01-05 12:37  simon
3693         * classes/.cvsignore:
3694         Ignore generated .h files.
3696         Courtesy of: Josh Wilmes <josh@hitchhiker.org>
3698 2002-01-05 12:37  simon
3700         * Configure.pl:
3701         Make lcc happier by adding a dummy structure.
3703         Courtesy of: Josh Wilmes <josh@hitchhiker.org>
3705 2002-01-05 12:35  simon
3707         * global_setup.c, classes/perlundef.pmc, t/op/pmc.t, t/pmc/pmc.t:
3708         Make perlundef work. (And coincidentally stop segfaults in the
3709         tests :)
3711         Courtesy of: Jason Gloudon <perl@gloudon.com>
3713 2002-01-05 04:59  dan
3715         * t/: op/pmc.t, pmc/pmc.t: Undef tests added.
3717 2002-01-05 04:55  jgoff
3719         * classes/perlhash.pmc: Added perlhash class definition
3721 2002-01-05 04:48  dan
3723         * core.ops: Fix on 64 bit platforms with 32-bit opcode_t
3725         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3727 2002-01-05 03:57  jgoff
3729         * MANIFEST, Makefile.in, core.ops, global_setup.c, key.c,
3730         vtable.tbl, classes/Makefile.in, classes/default.pmc,
3731         include/parrot/key.h, include/parrot/pmc.h, t/op/pmc.t,
3732         t/pmc/pmc.t: Initial hash commit.
3734         core.ops - Adding set({i,n,s},p,s) and set(p,{i,n,s},s) operations.
3735          key.h  - Adding NUM_BUCKETS classes/default.pmc - Adding
3736         set_{integer,number,string}_index_s
3738         This does not yet do collision resolution, but will soon.
3740 2002-01-05 02:54  dan
3742         * interpreter.c: More unsigned fixes
3744         Courtesy of "Bryan C. Warnock" <bwarnock@raba.com>
3746 2002-01-04 22:13  dan
3748         * Configure.pl, hints/mswin32.pl: Makes config's building of the
3749         test programs happier.
3751         Courtesy of "Jason Diamond" <jason@injektilo.org>
3753 2002-01-04 19:00  dan
3755         * Configure.pl, Makefile.in, hints/darwin.pl: Add link flags as
3756         separate things
3758 2002-01-04 18:27  dan
3760         * Configure.pl, Makefile.in, classes/Makefile.in, hints/mswin32.pl:
3761         Fixes to get things configuring and building on Win32 Native.
3763         Courtesy of "Jason Diamond" <jason@injektilo.org>
3765 2002-01-04 17:39  dan
3767         * hints/vms.pl: debug cleanup
3769 2002-01-04 16:53  dan
3771         * docs/parrot.pod:  The enclosed patch brings the list of
3772         documentation in parrot.pod
3773          up to date.
3775         Courtesy of Simon Glover <scog@roe.ac.uk>
3777 2002-01-04 16:47  dan
3779         * test_main.c, Parrot/Jit/i386-linux.pm,
3780         lib/Parrot/Jit/i386-linux.pm: In an attempt to just keep knocking
3781         off warnings..
3783         Courtesy of Kevin Falcone <kevin@jibsheet.com>
3785 2002-01-04 16:44  dan
3787         * Configure.pl, Makefile.in: Fixed linking to use linker.
3789         Courtesy of Josh Wilmes <josh@hitchhiker.org>
3791 2002-01-04 16:39  dan
3793         * io/io_stdio.c: Added CVS tag info
3795 2002-01-04 16:35  dan
3797         * hints/cygwin.pl: Time for this. We need a sane linker, and ld2
3798         isn't it
3800 2002-01-04 16:26  dan
3802         * languages/miniperl/Miniperl/Tokenizer.pm: Quiet a warning in the
3803         Tokenizer test
3805         Courtesy of Jonathan Stowe <gellyfish@gellyfish.com>
3807 2002-01-04 16:17  dan
3809         * chartypes/unicode.c: Silence some warnings.
3811         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3813 2002-01-04 16:09  dan
3815         * classes/: genclass.pl, perlarray.pmc, perlint.pmc, perlnum.pmc,
3816         perlstring.pmc, perlundef.pmc:  - genclass.pl attempts to put $Id$
3817         into generated files
3818            but the $Id$ string gets mangled when it's committed.
3819            This patch fixes the existing .pmc files and fixes genclass.pl.
3821          - Makes capitalization in .pmc header match actual filenames
3823          - The command for calling genclass.pl in vtables.pod is incorrect,
3824            since it assumes you're running in classes/ but genclass.pl
3825         assumes
3826            it's being run from the main directory. I changed genclass.pl to
3827         not
3828            care.
3830         Courtesy of Steve Fink <steve@fink.com>
3832 2002-01-04 03:57  dan
3834         * MANIFEST, io/TODO, io/io_stdio.c: No wonder things worked for
3835         me--I *had* the files:wq!
3837 2002-01-04 03:40  dan
3839         * MANIFEST: Whoops--remove files not really there
3841 2002-01-04 03:37  dan
3843         * interpreter.c, stacks.c, include/parrot/stacks.h: The patch below
3844         my sig adds a new_stack() function to take care of the allocation
3845         and setup of "generic" stacks.
3847         Courtesy of "Brent Dax" <brentdax@cpan.org>
3849 2002-01-04 02:36  dan
3851         * core.ops:  The entry in core.ops for puts(s|sc) is missing a =cut
3852         and so
3853          writes a load of junk in core_ops.pod. Applied patch fixes.
3855         Courtesy of Simon Glover <scog@roe.ac.uk>
3857 2002-01-04 02:35  dan
3859         * classes/: perlint.pmc, perlnum.pmc, perlstring.pmc: The PerlInt
3860         logical-or is using get_integer instead of get_bool for logical
3861         operations. This patch corrects that.
3863         Perlnum and perlstring have working get_bool's, so the default
3864         logical_or and logical_and should be sufficient. The empty methods
3865         are pointed to the default logical_or.
3867         Courtesy of Jason Gloudon <perl@gloudon.com>
3869 2002-01-04 02:31  dan
3871         * Makefile.in: docs/Makefile should be removed by realclean, but
3872         isn't
3874         Courtesy of Kevin Falcone <kevin@jibsheet.com>
3876 2002-01-04 02:29  dan
3878         * classes/: Makefile.in, pmc2c.pl: PMC inheritance! Yay!
3880         Courtesy of Steve Fink <steve@fink.com>
3882 2002-01-04 00:51  dan
3884         * docs/vtables.pod: More docs
3886         Courtesy of Steve Fink <steve@fink.com>
3888 2002-01-04 00:47  dan
3890         * Configure.pl: Updated 64-bit patch
3892         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3894 2002-01-04 00:43  dan
3896         * Configure.pl: 64-bit Fix.
3898         Courtesy of "Bryan C. Warnock" <bwarnock@raba.com>
3900 2002-01-03 22:37  dan
3902         * MANIFEST, Makefile.in, interpreter.c, include/parrot/io.h,
3903         io/io.c, io/io_os.c: Code cleanup, started STDIO layer, started
3904         some buffering work.       Additional work on other layers.
3906         Courtesy of Melvin Smith <mrjoltcola@mindspring.com>
3908 2002-01-03 19:41  gregor
3910         * disassemble.pl, obscure.ops, packfile.c, pbc2c.pl:
3911         Updated copyright messages on top-level files.
3913 2002-01-03 04:23  robert
3915         * make.pl: Add author information.  Bonsai test.
3917 2002-01-03 04:02  dan
3919         * io/io_os.c: Twig Bonsai
3921 2002-01-03 03:45  dan
3923         * io/: io_os.c, io_os.c: Twig Bonsai
3925 2002-01-03 03:41  dan
3927         * io/io_os.c: Twig Bonsai
3929 2002-01-02 21:42  gregor
3931         * packfile.c, include/parrot/packfile.h:
3932         Get rid of warnings in packfile.[hc]
3934 2002-01-02 20:39  gregor
3936         * manicheck.pl:
3937         Bracketed translated patterns with ^ and $.
3939 2002-01-02 20:11  dan
3941         * io/io_os.c: silence a warning
3943 2002-01-02 19:52  grunblatt
3945         * jit.c, jit2h.pl, include/parrot/jit.h: Moved the definition of
3946         op_assembly to jit_struct.h, so that we get the real number of ops.
3947          Removed some warnings.
3949 2002-01-02 19:31  tom
3951         * string.c: Fix string transcoding so that it actually works.
3953         Patch from Peter Gibbs <peter@emkel.co.za>
3955 2002-01-02 19:20  gregor
3957         * manicheck.pl:
3958         A program to check the MANIFEST file, accounting for .cvsignore
3959         files.
3961 2002-01-02 19:19  dan
3963         * t/harness: twig bonsai
3965 2002-01-02 19:13  dan
3967         * t/harness: twig bonsai
3969 2002-01-02 18:54  dan
3971         * t/harness: Tweak to test Bonsai
3973 2002-01-02 16:27  dan
3975         * Configure.pl: Allow 64-bit build of parrot on systems with a
3976         mixed 32/64 bit perl
3978         Courtesy of David M. Lloyd <dmlloyd@tds.net>
3980 2002-01-02 15:33  simon
3982         * MANIFEST, docs/Makefile:
3983         Fixed up MANIFEST. (And I removed the Makefile in docs/)
3985         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
3987 2002-01-02 13:51  simon
3989         * Configure.pl:
3990         Die on broken manifest.
3992 2002-01-02 13:48  simon
3994         * jit2h.pl, examples/assembly/mops.pasm:
3995         Clear up JIT warnings.
3997         Courtesy of: Nick Clark <nick@unfortu.net>
3999 2002-01-02 04:10  dan
4001         * io/io.c, io/io_os.c, t/op/interp.t: IO stack now gets initialized
4002         only once, so new interp creation works again
4004         Courtesy of Melvin Smith <mrjoltcola@mindspring.com>
4006 2002-01-02 03:32  dan
4008         * t/op/interp.t: Stubbed the test out, since it's hanging at the
4009         moment.
4011 2002-01-02 00:55  dan
4013         * MANIFEST, Makefile.in, core.ops, include/parrot/io.h, io/io.c,
4014         io/io_os.c: Initial IO system patches
4016         Courtesy of <mrjoltcola@mindspring.com>
4018 2002-01-01 22:55  ajgough
4020         * classes/default.pmc: On second thoughts, and some prodding, the
4021         set_* methods now only set the appropriate part of the cache, and
4022         do nothing else.
4024 2002-01-01 22:29  ajgough
4026         * classes/default.pmc:  Wrote a whole host of default pmc methods.
4028          set_* create appropriate Perl* result.
4029          get_* simply grabs needed bit of cache.*_val
4031          Other methods do the rightest thing I can think of, at the moment.
4033          None yet cope with overflow, the modulus operation needs to be
4034         checked as
4035         I don't know quite which semantics we really want.
4037         Not tested yet.
4039 2002-01-01 20:23  dan
4041         * docs/Makefile, encodings/singlebyte.c, encodings/utf16.c,
4042         encodings/utf32.c, encodings/utf8.c, include/parrot/encoding.h: Got
4043         rid of unneeded tmp var and eliminated const from encode prototype
4044         since it does make changes to the string.
4046         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4048 2002-01-01 20:11  dan
4050         * Makefile.in: Make clean now tosses pdump.o
4052         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4054 2002-01-01 19:49  dan
4056         * pdump.c, test_main.c: Warnings cleanup
4058         Courtesy of Josh Wilmes <josh@sky.net>
4060 2002-01-01 19:45  dan
4062         * Configure.pl, Makefile.in, docs/.cvsignore, docs/Makefile.in,
4063         hints/mswin32.pl, languages/jako/Makefile.in,
4064         languages/scheme/Makefile.in: Makes cleanup better on non-Unix
4065         platforms
4067         Courtesy of "Jason Diamond" <jason@injektilo.org>
4069 2002-01-01 19:41  dan
4071         * include/parrot/register.h: Clean up some warnings
4073         Courtesy of Josh Wilmes <josh@hitchhiker.org>
4075 2002-01-01 19:10  simon
4077         * pbc2c.pl, Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm:
4078         Hack-around to enable compilation of code using vtable ops.
4080 2002-01-01 18:43  dan
4082         * encodings/: singlebyte.c, utf16.c, utf32.c, utf8.c: Toss <0
4083         checks on unsigned things
4085         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4087 2002-01-01 18:26  dan
4089         * runops_cores.c: More warning silences.
4091         Courtesy of Nicholas Clark <nick@unfortu.net>
4093 2002-01-01 18:25  dan
4095         * trace.c: Shuts up a warning.
4097         Courtesy of Nicholas Clark <nick@unfortu.net>
4099 2002-01-01 18:24  dan
4101         * encodings/singlebyte.c: Clean up some warnings.
4103         Courtesy of Nicholas Clark <nick@unfortu.net>
4105 2002-01-01 18:20  dan
4107         * Configure.pl: Hey, those PPros are really x86 systems! Who'dve
4108         thunk it?
4110         Courtesy of "Bryan C. Warnock" <bwarnock@raba.com>
4112 2002-01-01 18:17  dan
4114         * packfile.c: Warning cleanup
4116         Courtesy of Nicholas Clark <nick@unfortu.net>
4118 2002-01-01 17:53  dan
4120         * string.c: New string size should be based on output encoding's
4121         size, not input encoding's size.
4123         Courtesy of: "Peter Gibbs" <peter@emkel.co.za>
4125 2002-01-01 17:22  dan
4127         * Configure.pl, core.ops, interpreter.c, memory.c, runops_cores.c,
4128         string.c, test_main.c, trace.c, include/parrot/exceptions.h,
4129         include/parrot/interpreter.h, include/parrot/memory.h,
4130         include/parrot/oplib.h, include/parrot/string.h, t/op/string.t:
4131         Warnings fixups.
4133         Courtesy of Chip Turner <cturner@redhat.com>
4135 2002-01-01 17:09  dan
4137         * encodings/singlebyte.c, encodings/utf16.c, encodings/utf32.c,
4138         encodings/utf8.c, include/parrot/encoding.h: Some signed things are
4139         now unsigned, as is proper.
4141         Courtesy of: "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4142         Courtesy of: "Bryan C. Warnock" <bwarnock@raba.com>
4144 2002-01-01 16:59  dan
4146         * include/parrot/trace.h: Useless debugging prototype removed
4148         Courtesy of: "Bryan C. Warnock" <bwarnock@raba.com>
4150 2002-01-01 16:58  dan
4152         * MANIFEST: We forgot a file.
4154         Courtesy of "Bryan C. Warnock" <bwarnock@raba.com>
4156 2002-01-01 03:53  dan
4158         * Configure.pl: Okay, I give. Removed some warnings because the
4159         darned system headers were triggering them. Sloppy, sloppy
4160         coding...
4162 2002-01-01 03:48  dan
4164         * config_h.in: Add in an unsigned INTVAL.
4166         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4168 2002-01-01 03:46  dan
4170         * global_setup.c: Clean up some compiler warnings.
4172         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4174 2002-01-01 03:43  dan
4176         * ops2c.pl, Parrot/OpTrans.pm, Parrot/OpTrans/CPrederef.pm,
4177         lib/Parrot/OpTrans.pm, lib/Parrot/OpTrans/CPrederef.pm,
4178         include/parrot/op.h: Cleaned up some things to make the compiler
4179         happier.
4181         Courtesy of Nicholas Clark <nick@unfortu.net>
4183 2002-01-01 03:14  dan
4185         * Configure.pl: Quad updates.
4187         Courtesy of Nicholas Clark <nick@unfortu.net>
4189 2001-12-31 22:53  dan
4191         * include/parrot/op.h: Typedef had parameters backwards. Threw
4192         core.ops for a big whiny warnings loop.
4194 2001-12-31 22:37  dan
4196         * Makefile.in, resources.c: Tweaks to try and get things to build
4197         in the right order.
4199 2001-12-31 21:58  dan
4201         * Configure.pl: Stupid thinko fix
4203 2001-12-31 21:34  dan
4205         * Configure.pl, hints/mswin32.pl: Tweaks for Win32 builds
4207         Courtesy of: "Jason Diamond" <jason@injektilo.org>
4209 2001-12-31 21:32  dan
4211         * Configure.pl: Fix for non-gcc systems
4213 2001-12-31 20:22  dan
4215         * interpreter.c: Tweak so we can build on non-JIT platforms
4217 2001-12-31 20:11  dan
4219         * Configure.pl: Force the time on some copied files to be 'now' to
4220         make the Win builds much less annoying.
4222         Courtesy of "Jason Diamond" <jason@injektilo.org>
4224 2001-12-31 20:07  dan
4226         * Configure.pl: Nuke all object files in the parrot tree that
4227         matter when configuring.  Shouldn't be necessary with good
4228         dependencies in the makefile, but we don't have those yet.
4230 2001-12-31 20:00  gregor
4232         * chartypes/unicode.c:
4233         Silence unused variable warnings.
4235 2001-12-31 19:40  dan
4237         * Configure.pl: Minor Win32 tweaks. Tossed -Wtraditional, too
4239 2001-12-31 19:37  gregor
4241         * interpreter.c, jit.c, include/parrot/jit.h:
4242         Created a prototype for JIT functions and used it in interpreter.c.
4244 2001-12-31 19:31  dan
4246         * Configure.pl, test_gnuc.c: Better GCC detection (and version
4247         detection) with really cranky warnings if we find we're using it.
4249         Courtesy of: Nicholas Clark <nick@unfortu.net>
4251 2001-12-31 18:01  gregor
4253         * interpreter.c, include/parrot/interpreter.h, include/parrot/op.h:
4255         Fixed a few warnings wrt prototypes, etc.
4257 2001-12-31 17:23  dan
4259         * string.c: Silenced most of the compiler whines
4261 2001-12-31 17:15  gregor
4263         * Configure.pl:
4264         Get the ccname from either ccname or just cc config var.
4266 2001-12-31 17:14  gregor
4268         * Parrot/Op.pm, lib/Parrot/Op.pm:
4269         Another intermediate opbody notation. Could come in handy. Explicit
4270         types.
4272 2001-12-31 17:05  dan
4274         * string.c: Minor warnings update
4276 2001-12-31 17:00  dan
4278         * include/parrot/string.h: Warnings cleanup
4280 2001-12-31 16:00  simon
4282         * encodings/utf8.c, include/parrot/encoding.h:
4283         Remove a couple more.
4285 2001-12-31 15:58  simon
4287         * vtable_h.pl, include/parrot/global_setup.h, include/parrot/jit.h,
4288         include/parrot/op.h:
4289         Rid ourselves of a few warnings.
4291 2001-12-31 15:32  dan
4293         * Configure.pl: Made GCC ever so much pickier.
4295         Switch list courtesy of Jarkko.
4297 2001-12-31 15:22  dan
4299         * string.c: Tightened up initial allocation.
4301         Courtesy of:  "Peter Gibbs" <peter@emkel.co.za>
4303 2001-12-31 06:48  dan
4305         * Configure.pl: Minor Windows tweak
4307 2001-12-31 05:32  dan
4309         * core.ops: Unused temp variable tossed.
4311         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4313 2001-12-31 05:09  grunblatt
4315         * Configure.pl, Makefile.in, interpreter.c: Link jit.o only on
4316         supported plataforms
4318 2001-12-31 03:05  dan
4320         * Configure.pl, Makefile.in, classes/Makefile.in: Added in a
4321         platform-independent quote substitution for the makefiles.
4322         Hopefully this'll make the Win32 builds happier.
4324 2001-12-30 21:08  dan
4326         * string.c, include/parrot/string.h: More string system tweaks.
4328         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4330 2001-12-30 20:45  dan
4332         * core.ops: Some pod cleanup
4334         Courtesy of Josh Wilmes <josh@hitchhiker.org>
4336 2001-12-30 20:22  ajgough
4338         * docs/parrot_assembly.pod: removed ntoi and iton ops from docs, as
4339         we aren't using them right now.  Clarified the workings of set Px,
4340         Py and clone Px, Py.
4342 2001-12-30 20:15  grunblatt
4344         * jit.c, jit2h.pl, jit/i386/core.jit: Removed the warnings in jit.c
4345         Added readjit() to read *.jit files Updated core.jit to the new
4346         set_n_i
4348 2001-12-30 20:14  ajgough
4350         * examples/assembly/mops.pasm: Changed iton/ntoi to set.
4352 2001-12-30 19:52  dan
4354         * packfile.c, pdump.c, register.c, string.c, include/parrot/key.h,
4355         include/parrot/trace.h, platforms/generic.c: Compiler whine
4356         cleanups
4358         Courtesy of Josh Wilmes <josh@hitchhiker.org>
4360 2001-12-30 19:13  dan
4362         * Configure.pl, Makefile.in: Make GCC pickier by default.
4364         Courtesy of: Josh Wilmes <josh@hitchhiker.org>
4366 2001-12-30 18:41  dan
4368         * core.ops, t/op/integer.t, t/op/number.t: Transformed iton and
4369         ntoi opcodes to sets.
4371         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4373 2001-12-30 17:58  gregor
4375         * Makefile.in:
4376         'make' no longer builds the mops test. Use 'make mops' for that. To
4377         run the test, you can do 'make mopstest'.
4379 2001-12-30 17:30  gregor
4381         * Makefile.in:
4382         Fixed one oversight. 'make clean' was removing Parrot/Types.pm. Bad
4383         Gregor.
4385 2001-12-30 17:26  gregor
4387         * .cvsignore, Configure.pl, Makefile.in, VERSION, config_h.in,
4388         core.ops, interpreter.c, make_vtable_ops.pl, obscure.ops, ops2c.pl,
4389         Parrot/BuildUtil.pm, Parrot/OpsFile.pm, lib/Parrot/BuildUtil.pm,
4390         lib/Parrot/OpsFile.pm, include/parrot/oplib.h:
4391         Build enhancements. Originally to support building shared
4392         libraries, but now of broader impact.
4394           * .cvsignore: Ignore the blib/ directory, about which more later.
4396           * Configure.pl:
4398               * Got rid of TAB formatting and lined a few things up.
4400               * Added header comment with CVS Id variable, and a few other
4401                 block header comments.
4403               * Uses new Parrot::BuildUtil module to determine the Parrot
4404                 version.
4406               * Reworded a few messages, added a couple, and wrapped
4407         messages
4408                 to 79 columns.
4410               * Added 2002 to the Copyright statement.
4412               * Added new configure variables: VERSION, MAJOR, MINOR and
4413         PATCH
4415               NOTE: Please see the 'Alas perl5.7.2' comment. 5.7.2 is
4416         greater
4417               than 5.6.0, but the comment implies it isn't.
4419           * Makefile.in:
4421               * Added $(SO), $(A) and $(AR_CRS) defines for library
4422         building.
4424               * Added $(RM_RF) define for removing directory trees
4426               * Grouped generated files into two classes: "sticky" (made by
4427         configure,
4428                 persisting across 'make clean') and 'fluid' (made during
4429         the build
4430                 process, deleted by 'make clean').
4432               * Added header comments.
4434               * Added target for test_prog linked with shared library.
4436               * Added rules to build shared libraries in blib/lib. The
4437         libraries are
4438                 built with trailing version numbers in their file names,
4439         and then
4440                 symbolic links are created for shorter and no version tag
4441         variants.
4443               * Added some missing dependencies
4445               * Added some missing 'make clean' targets.
4447               * Added 'make realclean' target that deletes files created by
4448                 Configure.pl (including Makefile), forcing a re-configure.
4450               * Added a 'status' CVS target.
4452           * VERSION: New file, contains only the version. This version
4453         number is
4454             propagated to a few places, such as the core oplib version
4455         number. This
4456             reduces the amount of coordination that has to happen to get
4457         version
4458             number stuff throughout the tree in sync and updated prior to
4459         cutting
4460             a new release. Feel free to grep for '0.0.3' to see the other
4461         files
4462             that contain the version number (but, do that in a fresh CVS
4463         copy, or
4464             after doing 'make realclean').
4466           * config_h.in: Renamed PARROT_CORE_OPLIB_*_VERSION to
4467         PARROT_*_VERSION,
4468             since the oplib and Parrot itself share a version number now.
4469         Added
4470             PARROT_PATCH_VERSION (the third component) and PARROT_VERSION
4471         (a
4472             string).
4474           * core.ops: Uses new notation "VERSION = PARROT_VERSION" instead
4475         of
4476             specifying the version by hand. Non-core oplibs will set this
4477         to
4478             a quoted dot-string with three natural number components
4479         without
4480             leading zeros.
4482           * interpreter.c: Make use of PARROT_VERSION to simplify some
4483         sprintf()s, and
4484             to get the complete version number in the resulting strings
4485         (including the
4486             new PATCH portion).
4488           * make_vtable_ops.pl: Put the "VERSION = PARROT_VERSION" line int
4489         the
4490             generated file.
4492           * obscure.ops: Use the new "VERSION = PARROT_VERSION" technique.
4494           * ops2c.pl: Account for the PATCH version, too. This affects the
4495         name of the
4496             oplib init function, and the oplib info struct initializer.
4498           * Parrot/BuildUtil.pm: New file for reading in and validating the
4499         contents of
4500             the new VERSION file. Other build utilities could go here in
4501         futuer.
4503           * Parrot/OpsFile.pm:
4505               * Allow three components in version number, and require that
4506         the value
4507                 be in double quotes.
4509               * Allow "VERSION = PARROT_VERSION", substituting the shared
4510         Parrot
4511                 VERSION in that case.
4513           * include/parrot/oplib.h: Add the patch_version member.
4515 2001-12-30 12:16  simon
4517         * MANIFEST, Makefile.in:
4518         More stuff forgotten from MANIFEST.
4520 2001-12-30 12:13  simon
4522         * MANIFEST:
4523         Missing JIT file.
4525 2001-12-30 12:12  simon
4527         * jit2h.pl:
4528         Safety first.
4530 2001-12-30 12:12  simon
4532         * Makefile.in:
4533         Gragh.
4535 2001-12-30 12:04  simon
4537         * Makefile.in, core.ops, packfile.c, pbc2c.pl, string.c,
4538         classes/perlstring.pmc, encodings/singlebyte.c, encodings/utf16.c,
4539         encodings/utf32.c, encodings/utf8.c, include/parrot/encoding.h,
4540         include/parrot/string.h, t/op/string.t:
4541         * Expand the strings test suite to be more complete * Make string
4542         commands more consistent (i.e, now the only string command that
4543         actually changes the original is chopn) * Significantly reduce the
4544         number of memory allocations and eliminate reallocations.
4546         Courtesy of: David Jacobs <jacobsl001@hawaii.rr.com>
4548 2001-12-29 22:12  dan
4550         * interpreter.c, key.c, register.c, stacks.c, string.c,
4551         test_main.c, trace.c: Updates to match the coding standards.
4553         Courtesy of Bryan C. Warnock <bwarnock@raba.com>
4555 2001-12-29 20:42  grunblatt
4557         * jit2h.pl, Parrot/Jit/i386-bsd.pm, Parrot/Jit/i386-linux.pm,
4558         Parrot/Jit/i386-nojit.pm, jit/i386/core.jit, jit/i386/lib.jit,
4559         jit/i386/string.jit, lib/Parrot/Jit/i386-bsd.pm,
4560         lib/Parrot/Jit/i386-linux.pm, lib/Parrot/Jit/i386-nojit.pm: Allow
4561         us to write asm in *.jit files instead of hex.  Courtesy of: Rafael
4562         Kitover <caelum@debian.org>
4564 2001-12-28 21:20  dan
4566         * core.ops: Okay, now print takes a preceding file handle.
4568         I feel so dirty now.
4570 2001-12-28 20:46  dan
4572         * core.ops, t/op/hacks.t: Added in the readline op, as well as
4573         changing the open op to use fopen under the hood.
4575         THESE OPS ARE EVIL! AND TEMPORARY! USE FOR DEBUGGING PURPOSES ONLY!
4577 2001-12-28 18:20  ajgough
4579         * core.ops, make_vtable_ops.pl, string.c, classes/default.pmc,
4580         classes/perlstring.pmc, docs/parrot_assembly.pod, docs/strings.pod,
4581         include/parrot/exceptions.h, include/parrot/string.h,
4582         t/op/pmc_perlstring.t, t/op/string.t, t/pmc/perlstring.t: Added
4583         repeat op, so that "foo" x 10 can be done.  Filled in PerlString
4584         vtables appropriately.  Also tests for same, new pmc_perlstring.t
4585         to hold tests specific to PerlStrings, as the pmc.t file is taking
4586         too long to run and slowing down my thought processes.
4588         Changes to strings.c etc to take string functions.
4590         Some changes to the strings docs, but not yet complete.
4592         Also, PerlString was copying pointers to strings, rather than
4593         strings themselves, so some action-at-a-distance bugs were creeping
4594         in, I think I've fixed this so everything works nicely.
4596 2001-12-28 04:56  gregor
4598         * examples/assembly/pmcmops.pasm:
4599         PMC-using version of mops.pasm.
4601         Courtesy of: Bryan C. Warnock <bwarnock@raba.com>
4603 2001-12-28 04:56  gregor
4605         * examples/assembly/.cvsignore:
4606         Small tinkering. Removed old stuff, etc.
4608 2001-12-28 01:26  gregor
4610         * examples/mops/mops.scheme:
4611         Scheme example. Major GC thrashing on umb-scheme here. Probably due
4612         to the very un-scheme-like implementation.
4614 2001-12-28 01:19  gregor
4616         * examples/mops/mops.c:
4617         Some people's picky compilers don't like us redefineing time(), so
4618         we call it time_n().  :)
4620 2001-12-28 00:28  gregor
4622         * examples/mops/: README, mops.ps:
4623         Added a PostScript example and a README.
4625 2001-12-27 23:57  gregor
4627         * Makefile.in:
4628         Build the C mops translation in examples/mops/mops.c
4630 2001-12-27 23:56  gregor
4632         * examples/mops/: .cvsignore, mops.c, mops.pl, mops.py, mops.rb:
4633         Some translations of mops.pasm into other languages, for inner loop
4634         performance comparisons.
4636 2001-12-27 22:40  gregor
4638         * examples/assembly/mops.pasm:
4639         Fixed erroneous file name in header comment.
4641 2001-12-27 21:18  gregor
4643         * pbc2c.pl:
4644         One-liner to avoid no-op gotos to the next op.
4646 2001-12-27 21:06  gregor
4648         * runops_cores.c:
4649         Fixed -p (profiling). Slow runops core was doing unconditional
4650         tracing, when it should have been checking the flags.
4652 2001-12-27 18:50  ajgough
4654         * core.ops, string.c, chartypes/unicode.c, chartypes/usascii.c,
4655         classes/perlstring.pmc, include/parrot/chartype.h,
4656         include/parrot/string.h, t/op/pmc.t, t/op/string.t, t/pmc/pmc.t:
4657         dded get_digit() to chartypes  * Added string_bool() to strings  *
4658         Added if_s_ic op, to use same  * Added (PerlString)->get_bool stuff
4659         to perlstring.pmc  * Tests for above, also a for couple of other
4660         ops without tests
4662         The unicode chartype has only had placeholders added for get_digit,
4663         string_to_num has been updated to use type->get_digit rather than
4664         the previous ascii-isms.  Some remain, but we need to carefully
4665         define what we mean by a number before we let thousands of code
4666         points act as a minus sign.
4668 2001-12-27 18:32  dan
4670         * classes/: perlint.pmc, perlnum.pmc, perlstring.pmc: Silenced some
4671         compiler warnings.
4673         Courtesy of "David  Jacobs" <jacobsl001@hawaii.rr.com>
4675 2001-12-27 18:23  dan
4677         * t/op/bitwise.t: More tests.
4679         Courtesy of "David Jacobs" <jacobsl001@hawaii.rr.com>
4681 2001-12-27 17:08  gregor
4683         * MANIFEST, Makefile.in, config_h.in, core.ops, interpreter.c,
4684         make_vtable_ops.pl, obscure.ops, ops2c.pl, ops2pm.pl, test_main.c,
4685         trace.c, Parrot/OpsFile.pm, include/parrot/interp_guts.h,
4686         include/parrot/interpreter.h, include/parrot/oplib.h,
4687         lib/Parrot/OpsFile.pm, platforms/generic.c, platforms/generic.h,
4688         platforms/win32.c, platforms/win32.h:
4689         Initial code for dynamic loading of oplibs, applied for now to the
4690         loading of the core_prederef oplib when the -P flag is passed to
4691         test_parrot.
4693           * MANIFEST: Added entry for the new file include/parrot/oplib.h.
4695           * Makefile.in:
4697               * Added libcore_prederef_0_3.so to the shared target.
4698               * Added build rule for libcore_prederef_0_3.so.
4699               * Added dependencies on Parrot/OpsFile.pm and Parrot/Op.pm
4700                 to Parrot/OpLib/core.pm, core_ops.c and
4701                 core_ops_prederef.c.
4703           * config_h.in: Added defines for constants used to locate the
4704             core oplib's init function, and the core_prederef oplib for
4705             dynaloading.
4707           * core.ops: Added a VERSION = 0.3 line near the top. This is now
4708             required by Parrot/OpsFile.pm.
4710           * interpreter.c:
4712               * Added init_prederef() and stop_prederef() functions to load
4713                 and unload the core_prederef oplib when we are in prederef
4714                 mode.
4716                 NOTE: In all likelihood, the prederef stuff has a rapidly
4717                 dwindling time-to-live. The JIT should provide vastly
4718         superior
4719                 performance, and loading an alternate set of core_ops isn't
4720                 the real direction for the dynaloading stuff. Loading
4721                 *additional* ops is. It does provide a handy test case for
4722         the
4723                 general idea for now, though.
4725               * Gets the core copcode table, etc. via the core oplibs oplib
4726                 info pointer, as returned by the core oplib's init
4727         function.
4729           * ops2c.pl
4731               * Make use of the version, major version and minor version
4732                 stuff parsed by Parrot/OpsFile.pm
4734               * The only exported symbol in the generated files is the init
4735                 function now, since that returns an oplib info struct
4736                 pointer, and all the important stuff can be found there.
4738           * ops2pm.pl: Put the oplib version in the generated .pm file.
4740           * test_main.c: Small changes necessitated by changes in the names
4741             of some members of the interpreter struct.
4743           * trace.c: Small changes necessitated by changes in the names
4744             of some members of the interpreter struct.
4746           * Parrot/OpsFile.pm: Require a "VERSION = x.y" line before any
4747             ops are found.
4749           * include/parrot/interp_guts.h: Small changes necessitated by
4750             changes in the names of some members of the interpreter struct.
4752           * include/parrot/interpreter.h: Include the new
4753             include/parrot/oplib.h header. Small changes to the oplib-
4754             related members.
4756           * include/parrot/oplib.h: Define the type of the oplib init
4757             function, and the struct type for the oplib info.
4759           * platforms/*.[hc]: Remove the second argument to Parrot_dlopen()
4760             since not all platforms have it. For those that do, a default
4761             second argument is provided.
4763 2001-12-26 05:12  gregor
4765         * Configure.pl:
4766         Make jitarch calculation not get tripped up by extra components to
4767         archname.
4769 2001-12-24 21:23  gregor
4771         * jit.c, jit2h.pl, Parrot/Jit/i386-bsd.pm,
4772         Parrot/Jit/i386-linux.pm, Parrot/Jit/i386-nojit.pm,
4773         include/parrot/jit.h, jit/i386/core.jit, jit/i386/lib.jit,
4774         jit/i386/string.jit, lib/Parrot/Jit/i386-bsd.pm,
4775         lib/Parrot/Jit/i386-linux.pm, lib/Parrot/Jit/i386-nojit.pm:
4776         Some more JIT work from Daniel Grunblatt.
4778           * Ops added set_s_s, set_s_sc, bsr_i and eq_s_sc but using calls
4779         to C
4780             functions.
4782           * Added JUMP(END) to place the number of bytes to the end of the
4783         current
4784             op.
4786           * The *.jit files syntax changed.
4788           * Added jit/i386/lib.jit to place handly functions as jump that
4789         take as
4790             argument the address where is the opcode number to jump to.
4792           * There is a bug at some point, but I will start writing
4793             jit/i386/string.jit and jit/i386/stacks.jit so that we don't
4794         have use
4795             calls, which make the jit as slow as the interpreter.
4797         Courtesy of: Daniel Grunblatt <daniel@grunblatt.com.ar>
4799 2001-12-24 03:46  dan
4801         * Parrot/OpTrans.pm, Parrot/OpTrans/C.pm, Parrot/OpTrans/CGoto.pm,
4802         Parrot/OpTrans/CPrederef.pm, lib/Parrot/OpTrans.pm,
4803         lib/Parrot/OpTrans/C.pm, lib/Parrot/OpTrans/CGoto.pm,
4804         lib/Parrot/OpTrans/CPrederef.pm: Commented out the use warnings.
4805         Perls before 5.6.0 don't like it.
4807 2001-12-22 16:02  ajgough
4809         * t/op/stacks.t: stopped skipping tests we can run now.  added
4810         clonep tests.
4812 2001-12-21 21:13  gregor
4814         * jit2h.pl, Parrot/Jit/i386-bsd.pm, Parrot/Jit/i386-linux.pm,
4815         Parrot/Jit/i386-nojit.pm, lib/Parrot/Jit/i386-bsd.pm,
4816         lib/Parrot/Jit/i386-linux.pm, lib/Parrot/Jit/i386-nojit.pm:
4817         Fixed some package name goofs.
4819         Thanks to: Andy Dougherty <doughera@mail.lafayette.edu>
4821 2001-12-21 19:32  gregor
4823         * MANIFEST, Makefile.in, core.ops, interpreter.c,
4824         make_vtable_ops.pl, obscure.ops, ops2c-prederef.pl, ops2c.pl,
4825         pbc2c.pl, stacks.c, Parrot/Op.pm, Parrot/OpTrans.pm,
4826         Parrot/Opcode.pm, Parrot/OpsFile.pm, lib/Parrot/Op.pm,
4827         lib/Parrot/OpTrans.pm, lib/Parrot/Opcode.pm, lib/Parrot/OpsFile.pm,
4828         Parrot/OpTrans/C.pm, Parrot/OpTrans/CGoto.pm,
4829         Parrot/OpTrans/CPrederef.pm, docs/intro.pod, include/parrot/op.h,
4830         include/parrot/stacks.h, lib/Parrot/OpTrans/C.pm,
4831         lib/Parrot/OpTrans/CGoto.pm, lib/Parrot/OpTrans/CPrederef.pm:
4832         Changes to syntax of .ops files and refactoring of ops2c*.pl and
4833         pbc2c.pl.
4835           * Removed ops2c-prederef.pl
4837           * (unrelated) Removed vestigial Parrot/Opcode.pm file.
4839           * Added Parrot/OpTrans.pm, Parrot/OpTrans/C.pm (needed for old
4840             functionality of ops2c.pl), Parrot/OpTrans/CPrederef.pm (needed
4841             for old functionality of ops2c-prederef.pl), and
4842             Parrot/OpTrans/CGoto.pm (needed for functionality of pbc2c.pl).
4844             "OpTrans" == "Op Transformation"
4846           * Makefile.in modifications to call "ops2c.pl C" where it used
4847             to be just "ops2c.pl", and "ops2c.pl CPrederef" where it used
4848             to be "ops2c-prederef.pl".
4850           * core.ops and obscure.ops changes to syntax. Semantics are
4851             identical with previous version:
4853               return HALT         -->  HALT()
4854               return AUTO         -->  goto NEXT()
4855               return RETREL(...)  -->  goto OFFSET(...)
4856               return RESTART(*)   -->  restart NEXT()
4858             Also, pop_generic_entry() stuff (local var + 5 lines of code)
4859             for dest-less branch ops replaced with new notation "goto
4860         POP()",
4861             which uses the new pop_dest() function in stacks.c. This also
4862             allowed these ops to become 'inline' ops, since they no longer
4863             have local variables.
4865             The 'ret' op also became simplified to just "goto POP()", and
4866             also became an inline op.
4868           * interpreter.c reflects the change in type name:
4870               prederef_op_func_t   -->  op_func_prederef_t
4872             that occurred in include/parrot/op.h
4874           * make_vtable_ops.pl uses "goto NEXT()" where it used to use
4875             "return AUTO".
4877           * ops2c.pl is now generic. Its first argument is the last
4878             package name component of a subclass of Parrot::OpTrans. These
4879             subclasses all have full names of the form Parrot::OpTrans::*.
4880             An instance of the class is created and later consulted for
4881             various bits of information needed to generate the C code.
4883           * pbc2c.pl now uses an instance of Parrot::OpTrans::CGoto to
4884             contain its transformation rules.
4886           * stacks.c has a new function pop_dest() that pops a destination
4887             off the control stack. include/parrot/stacks.h has the
4888         prototype.
4890           * Parrot/Op.pm now supports the syntax generated by
4891         Parrot::OpsFile
4892             for the "goto POP" case.
4894             Also, the source() method now expects its second argument to be
4895             an object that ISA Parrot::OpTrans. Methods of this object are
4896             called to perform the substitutions.
4898           * Parrot/OpsFile.pm supports the change in notation mentioned
4899             above.
4901           * docs/intro.pod reflects these changes.
4903           * include/parrot/op.h: Renamed type prederef_op_func_t to
4904             op_func_prederef_t because it made the implementation of the
4905             shared ops2c.pl easier.
4907 2001-12-21 13:47  gregor
4909         * Configure.pl, config_h.in, interpreter.c, test_main.c:
4910         Both test_parrot (via test_main.c) and the intepreter itself (via
4911         interpreter.c) use the JIT_CAPABLE config to decide whether to
4912         actually attempt JIT operation, or to complain.
4914 2001-12-20 23:25  gregor
4916         * core.ops, make_vtable_ops.pl, obscure.ops, Parrot/OpsFile.pm,
4917         lib/Parrot/OpsFile.pm, docs/intro.pod, include/parrot/op.h:
4918         Changes to the format of *.ops files. An attempt to provide hints
4919         for future opfunc processing logic that wants to know if an opfunc
4920         is simple enough to JIT (e.g.) inline, or not.
4922         See the POD in Parrot/OpsFile.pm and the updated docs/intro.pod in
4923         addition to The Source in core.ops and Parrot/OpsFile.pm for more
4924         info.
4926 2001-12-20 21:28  gregor
4928         * Configure.pl, jit.c, jit2h.pl, include/parrot/jit.h,
4929         jit/i386/core.jit:
4930         More JIT stuff:
4932           * A fix to Gregor's last Configure.pl update.
4934           * Remove the need for hardcoded "\n" at the end of the "%f"
4935             format for printing floating-point numbers.
4937           * New, improved *.jit syntax for references to registers,
4938             e.g. INT_REG[n].
4940           * Support for C() improved.
4942         Courtesy of: Daniel Grunblatt <daniel@grunblatt.com.ar>
4944 2001-12-20 16:55  dan
4946         * MANIFEST: Added jit.c to the manifest.
4948 2001-12-20 15:24  simon
4950         * jit2h.pl:
4951         Off-by-one error fixed.
4953 2001-12-20 14:18  simon
4955         * jit/i386/core.jit:
4956         Just a noop. It's the only machine code I know.
4958 2001-12-20 13:10  gregor
4960         * Configure.pl, Makefile.in, jit2h.pl:
4961         Attempt to fix Win32 builds.
4963           * No more empty braces in include/parrot/jit_struct.h
4965         Also:
4967           * ${jitarchname} has the *bsd -> bsd substitution on it, but
4968         ${archname}
4969             does not.
4971 2001-12-20 11:56  simon
4973         * Makefile.in:
4974         De-cp
4976 2001-12-20 01:57  gregor
4978         * Configure.pl, MANIFEST, Makefile.in, interpreter.c, jit.c,
4979         jit2h.pl, test_main.c, Parrot/.cvsignore, Parrot/Jit/i386-bsd.pm,
4980         Parrot/Jit/i386-linux.pm, Parrot/Jit/i386-nojit.pm, docs/jit.pod,
4981         include/parrot/.cvsignore, include/parrot/interpreter.h,
4982         include/parrot/jit.h, jit/i386/core.jit, jit/i386/string.jit,
4983         lib/Parrot/Jit/i386-bsd.pm, lib/Parrot/Jit/i386-linux.pm,
4984         lib/Parrot/Jit/i386-nojit.pm:
4985         Initial JIT implementation.
4987           * Enabled with test_parrot -j. 20x speed boosts seen.
4989           * Unsupported archs mapped to i386-nojit. Don't do -j on them.
4991           * More to come.
4993         Courtesy of: Daniel Grunblatt <daniel@grunblatt.com.ar>
4995 2001-12-20 01:53  jgoff
4997         * MANIFEST, core.ops, t/op/key.t: MANIFEST - Removed t/op/key.t
4998         core.ops - Removed key operators, they should be hidden from the
4999         assembler.  t/op/key.t - No need to test the nonexistent key
5000         operators.
5002 2001-12-20 00:13  ajgough
5004         * core.ops, t/op/stacks.t: Added tests for entrytype op, noticed
5005         that asking for type of entry at depth causes segfault as stack is
5006         zero based, fixed cmp in core.ops to reflect this.  Last test is
5007         skipped as we don't do exceptions right yet.
5009 2001-12-19 19:11  ajgough
5011         * t/op/debuginfo.t: Added C<end> ops to debuginfo.t, as thier
5012         non-being was causing Irix "issues".
5014 2001-12-19 03:37  jgoff
5016         * languages/miniperl/Miniperl/t/: 001_tokenizer.t, 003_generator.t,
5017         004_combined.t: Changed tests to make sure they pass with the
5018         addition of the clone operator.
5020 2001-12-18 20:06  gregor
5022         * interpreter.c, include/parrot/interp_guts.h:
5023         Performance improvements to the predereferencing code path
5024         suggested to me over lunch yesterday by my friend John Kennedy.
5025         The goal is to remove the additional test in the inner loop that
5026         was checking for NULL to decide whether or not to call the
5027         prederef() function. Also moved pc & pc_prederef syncing outside
5028         the inner loop.
5030           * Changed the prototype of the prederef() function in
5031             interpreter.c to match that of an opfunc.
5033           * Instead of initializing the prederef void * array with NULL,
5034             we initialize it with pointers to prederef().
5036           * prederef() now returns the prederef_pc passed in, so that
5037             after predereferencing, the same location is executed, but now
5038             with the real code being called.
5040         Thanks to: John Kennedy
5042 2001-12-18 19:59  ajgough
5044         * t/: op/pmc.t, pmc/pmc.t: Added some more num -> string tests
5045         (including some more in the skipped string -> int tests).
5047 2001-12-18 07:06  jgoff
5049         * MANIFEST: Forgot to add classes/perlarray.pmc
5051 2001-12-18 07:05  jgoff
5053         * Makefile.in, core.ops, global_setup.c, vtable.tbl,
5054         classes/Makefile.in, classes/default.pmc, classes/perlarray.pmc,
5055         classes/perlint.pmc, classes/perlnum.pmc, classes/perlstring.pmc,
5056         classes/perlundef.pmc, include/parrot/pmc.h, t/op/pmc.t,
5057         t/pmc/pmc.t: Big update...  Makefile.in - Added
5058         classes/perlarray.pmc core.ops - Added new series of set() ops for
5059         arrays global_setup.c - Initialized perlarray classes/Makefile.in -
5060         Added perlarray.pmc classes/*.pmc - Added
5061         set_{integer,number,string}_index and
5062         get_{integer,number,string}_index include/parrot/pmc.h - Added new
5063         type t/op/pmc.t - Added basic array test
5065         classes/perlarray.pmc - Added
5067 2001-12-17 05:29  jgoff
5069         * languages/miniperl/Miniperl/Generator.pm: Altered miniperl code
5070         generator to use clone operator instead of set Px,Py
5072 2001-12-17 05:25  jgoff
5074         * core.ops, classes/perlint.pmc, classes/perlnum.pmc,
5075         classes/perlstring.pmc, t/op/pmc.t, t/pmc/pmc.t: Added clone
5076         PMC,PMC operator. Uses the clone() vtable entries.
5078 2001-12-17 04:51  jgoff
5080         * MANIFEST: Added miniperl test suite, removed old Miniperl/Test.pm
5081         entry
5083 2001-12-17 04:41  jgoff
5085         * languages/miniperl/Miniperl/Makefile.PL: Now in its proper
5086         directory...
5088 2001-12-17 04:41  jgoff
5090         * languages/miniperl/Makefile.PL: Moved it to the proper directory.
5092 2001-12-17 04:39  jgoff
5094         * languages/miniperl/: Makefile.PL, Miniperl.pm, miniperlc, mpc,
5095         Miniperl/Tokenizer.pm: Makefile.PL to let us run the test suite in
5096         t/
5098 2001-12-17 04:27  jgoff
5100         * languages/miniperl/Miniperl.pm: Latest version of the driver.
5101         Admittedly it's a little thin on true OO, but the algorithms are
5102         the key.
5104 2001-12-17 04:24  jgoff
5106         * languages/miniperl/Miniperl/t/: 001_tokenizer.t, 002_parser.t,
5107         003_generator.t, 004_combined.t: Much more comprehensive test suite
5108         for the codegen et al
5110 2001-12-17 04:22  jgoff
5112         * languages/miniperl/Miniperl/: Generator.pm, Parser.pm,
5113         Tokenizer.pm: Newer codegen, tightened up parser output, added hash
5114         key handling
5116 2001-12-17 04:20  jgoff
5118         * languages/miniperl/Miniperl/Test.pm: The newer test suite is much
5119         more comprehensive.
5121 2001-12-17 04:17  jgoff
5123         * languages/miniperl/foo.mpl: Test file that'll be outdated by
5124         changes to the new compiler
5126 2001-12-17 04:11  jgoff
5128         * languages/miniperl/t/: harness, 001_basic/basic.t: Moving testing
5129         files to Miniperl/
5131 2001-12-16 14:11  simon
5133         * classes/perlint.pmc, examples/assembly/mops_p.pasm, t/op/pmc.t,
5134         t/pmc/pmc.t:
5135         Fix bogus assumption that multiplying an integer by an integer
5136         yields an integer.
5138 2001-12-16 12:48  simon
5140         * make_vtable_ops.pl:
5141         Fixed op exploder.
5143 2001-12-16 12:45  simon
5145         * make_vtable_ops.pl, Parrot/Vtable.pm, lib/Parrot/Vtable.pm:
5146         Expand multimethod vtable ops.
5148 2001-12-16 12:04  simon
5150         * Makefile.in:
5151         Added 'cvsclean' which doesn't zap CVS/* directories.
5153 2001-12-15 01:50  dan
5155         * include/parrot/string.h: Fixed typo in string.h. lagnuage,
5156         indeed!
5158         Thanks to grunblatt fom #parrot for the catch
5160 2001-12-15 01:39  dan
5162         * .cvsignore, Configure.pl, MANIFEST, languages/jako/Makefile.in,
5163         languages/miniperl/.cvsignore, languages/miniperl/Makefile,
5164         languages/miniperl/Makefile.in,
5165         languages/miniperl/Miniperl/Test.pm, languages/scheme/.cvsignore,
5166         languages/scheme/Makefile, languages/scheme/Makefile.in: Build
5167         tweaks.
5169         Courtesy of: Jay McCarthy <jay@kenyamountain.com>
5171 2001-12-14 17:39  dan
5173         * t/op/trans.t: More trans tests.
5175         Courtesy of: Simon Glover <scog@roe.ac.uk>
5177 2001-12-14 07:41  robert
5179         * make.pl: - define MAKE macro - topological sort and subgraph
5180         order - start of timestamp stuff   (still badly broken)
5182 2001-12-14 06:06  jgoff
5184         * optimizer.pl: Hopefully this should do the trick..
5186 2001-12-14 06:04  jgoff
5188         * Parrot/Optimizer.pm, lib/Parrot/Optimizer.pm: Optimizer
5190           optimizer.pl is the stub, Parrot/Optimizer.pm is the driver.
5192           The optimizer performs its work on a file post-macro expansion.
5193           Run it on a .pasm file, preferably with some trivially reducible
5194         operations
5195           like 'add I0,5,-6' or 'mul I0,I1,0'
5197 2001-12-14 05:48  robert
5199         * Makefile.in: case error EXE -> exe
5201 2001-12-14 05:42  robert
5203         * Makefile.in: remove legacy PDISASM macro
5205 2001-12-14 04:01  dan
5207         * classes/Makefile.in, languages/Makefile.in: Makefile tweaks for
5208         better Win building
5210         Courtesy of: Garrett Goebel <garrett@scriptpro.com>
5212 2001-12-13 22:03  dan
5214         * Configure.pl, Makefile.in, Parrot/Test.pm,
5215         languages/scheme/Makefile, languages/scheme/Scheme/Test.pm,
5216         lib/Parrot/Test.pm: Parrot test prog's now a config variable, so we
5217         can change it without having to change the world.
5219 2001-12-13 21:57  dan
5221         * core.ops, interpreter.c, docs/parrot_assembly.pod,
5222         include/parrot/interpreter.h, t/op/debuginfo.t: Added current
5223         file/line/package to interp structure, with ops to get and set
5224         them. Now we can know where we are!
5226 2001-12-13 19:43  dan
5228         * Configure.pl, Makefile.in: Makefile tweaks to hopefully make
5229         WinXP builds work out of the box
5231 2001-12-13 17:05  dan
5233         * Makefile.in, Parrot/Test.pm, lib/Parrot/Test.pm: Change test prog
5234         name again--makes case-insensitive systems much happier.
5236 2001-12-13 16:21  dan
5238         * core.ops, key.c, string.c, test_main.c, trace.c,
5239         classes/Makefile.in, include/parrot/trace.h: Fixes to clean up
5240         compiler warnings
5242         Courtesy of: Josh Wilmes <josh@sky.net>
5244 2001-12-13 13:33  gregor
5246         * languages/jako/Makefile.in:
5247         Improved the method of calling the assembler.
5249 2001-12-13 13:30  gregor
5251         * languages/jako/Makefile.in:
5252         Improve the build process. It now works from the main parrot dir,
5253         and from the languages/jako directory. Now uses the .SUFFIXES
5254         target and generic build rules to reduce clutter in the
5255         Makefile.in.
5257 2001-12-13 13:29  gregor
5259         * languages/jako/.cvsignore:
5260         Ignore the (now generated Makefile), and don't ignore .list files
5261         anymore, since we aren't generating them.
5263 2001-12-13 13:11  gregor
5265         * Configure.pl, MANIFEST, Makefile.in, languages/.cvsignore,
5266         languages/Makefile.in, languages/jako/Makefile,
5267         languages/jako/Makefile.in:
5268         Added a 'languages' target to the top-level Makefile.in, and
5269         modified the jako build procedure to involve Makefile.in -->
5270         Makefile too (done by Configure.pl).
5272         NOTE: languages/jako and language/scheme are built.
5273         languages/miniperl wasn't building right, so it was left off for
5274         now.
5276 2001-12-13 12:15  gregor
5278         * MANIFEST:
5279         Added MAINTAINER file and mandelzoom.jako from languages/jako to
5280         the MANIFEST.
5282 2001-12-13 12:12  gregor
5284         * .cvsignore, MANIFEST, Makefile.in, core.ops, interpreter.c,
5285         ops2c-prederef.pl, ops2c.pl, test_main.c,
5286         include/parrot/interp_guts.h, include/parrot/interpreter.h,
5287         include/parrot/op.h, include/parrot/oplib/.cvsignore:
5288         Welcome to the Just-in-Time Predereferencing Patch!
5290         This patch implements a "predereferencing" mode for parrot. That
5291         means that a lot of the dereferencing you see in DO_OP and in the
5292         opfuncs is done up front (really, JIT) rather than as and each time
5293         we execute each op in the byte code stream.
5295         This works by creating an array of void pointers with the same
5296         number of elements as the byte code array. This array starts out
5297         life zero-initialized.  Each time we go to execute an op, we check
5298         first to see if we have a NULL pointer at *cur_opcode. If so, we
5299         know we haven't done our predereferencing yet (this is the JIT
5300         part), so we call the prederef() function with sufficient args that
5301         it can go look up opfunc pointers and op arg types and put the
5302         opfunc and arg pointers at cur_opcode[0] .. cur_opcode[N - 1],
5303         where N is the number of args (counting the op itself as one arg).
5305         We assume that sizeof(INTVAL) <= sizeof(void *), so we can continue
5306         to have inline INTVAL constants.
5308         I've been getting about a 22% speed increase over vanilla code path
5309         when I compile with -O0. Advantage decreases at -O9 here. I tested
5310         with mops.pbc, and also by temporarily putting the -P flag in
5311         Parrot/Test.pm and running all the tests. So, this code is as
5312         correct as the test suite can detect.
5314         Here's how it plays out in the code:
5316           * New script ops2c-prederef.pl
5318             Copy-paste code reuse from ops2c.pl. Modified to expect the
5319         args to give
5320             a void ** cur_opcode and to return a void **.
5322           * Modified ops2c.pl
5324               * opfuncs are now static. Who needs to call them by name from
5325         outside,
5326                 anyway? They are accessed via the opfunc table.
5328               * Some MACRO stuff to make things work whether we prederef or
5329         not. It
5330                 may be possible to get rid of these some day if other folks
5331         agree
5332                 that we should be using CODE object pointers + offsets as
5333         our PC
5334                 rather than raw pointers to either opcode_t's or (void *)'s
5335                 (depending on prederef mode or no).
5337           * core.ops modified to be usable to build both kinds of opfuncs.
5338         For now,
5339             this means:
5341               * calls to push_generic_entry(... cur_opcode ...) were
5342         changed to
5343                 push_generic_entry(... CUR_OPCODE ...), where CUR_OPCODE is
5344         a
5345                 macro that does the right thing in both kinds of ops.c
5346         files.
5348                 This is applicable to the bsr op. If we treated
5349         destinations as
5350                 (Code PMC + local offset) rather than as
5351         pointer-to-memory-somewhere,
5352                 this wouldn't be a big deal. We may need to do that at some
5353         point
5354                 anyway, so that when you jump around and return not only do
5355         you have
5356                 the right PC (pointer, today), but you also have the
5357         thread/interpreter
5358                 knowing what chunk of bytecode it is in at all times
5359         (assuming we'll
5360                 allow reflection, as in ops that query or affect the
5361         current CODE PMC).
5363               * runinterp was modified. Instead of copying the top-level
5364         PackFile struct
5365                 and blasting its byte_code pointer, we simply call runops
5366         on the new
5367                 interp, passing in the pointer to the current interp's code
5368         and the
5369                 offset into that code at which to start (this last arg used
5370         to be a
5371                 pointer PC, now its an offset PC).
5373           * include/parrot/op.h
5375               * new typedef for prederef opfuncs (they return void **)
5377           * include/parrot/interp_guts.h
5379               * New DO_OP_PREDEREF() macro described above.
5381           * include/parrot/interpreter.h
5383               * New prototype of runops() -- see below.
5385               * resume_addr field changed to resume_flag and resume_offset
5386         pair of fields.
5387                 We might be resuming from interp using prederef to one not
5388         or vice-versa,
5389                 so pointers between the two don't play nice together.
5390         Offsets are beautiful.
5392               * New PARROT_PREDEREF_FLAG constant
5394           * interpreter.c
5396               * include "parrot/oplib/core_ops_prederef.h"
5398               * prederef() function described above.
5400               * runops_prederef() runops variant. Uses DO_OP_PREDEREF()
5401         macro as its core.
5403               * runops() modified to take size_t CODE-relative offset PC
5404         rather than
5405                 pointer PC. This made other things workable and doesn't
5406         seem to have lost
5407                 anything important (IMO).
5409           * test_main.c
5411               * New flag '-P' to enable predereferencing.
5413           * Makefile modified to build core_ops_prederef.c from core.ops
5414         via
5415             ops2c-prederef.pl.
5417             BTW, also added missing $(INC)/interp_guts.h to H_FILES.
5419             Added core_ops_prederef$(O) to O_FILES
5421 2001-12-13 12:12  gregor
5423         * languages/jako/MAINTAINER:
5424         Thought it would be nice to put this right in the code...
5426 2001-12-13 04:36  jgoff
5428         * languages/miniperl/Miniperl/Generator.pm: Commented out
5429         debugging, fixed register spillover algorithm
5431 2001-12-13 04:23  jgoff
5433         * make.pl: Found and fixed obob in the parser (Wasn't parsing last
5434         line) Restructured a bit of the dependency generator to fix a
5435         different obob bug.
5437 2001-12-13 03:43  robert
5439         * MANIFEST, docs/opcodes.pod: remove old docs/opcodes.pod
5441 2001-12-13 03:03  jgoff
5443         * make.pl: Added make.pl
5445 2001-12-13 02:44  jgoff
5447         * languages/miniperl/Miniperl.pm: Nearly-complete 'make'
5448         replacement in perl.  Non-compliant bits - Takes absolutely -NO-
5449         special flags...                     - Dies on undefined macros
5450         such as $(PDISASM) in current make                     - Dies on
5451         recursive macro expansions                       (Doesn't test for
5452         mutual or multipart loops)                     - In general it
5453         seems to be a little less lenient...  Missing bits - File
5454         mod/creation times aren't being looked at              - Actions
5455         aren't being taken              - The few funky variables ($@, $<)
5456         aren't being dealt with Bugs - Line numbers are slipping a bit.
5458 2001-12-13 02:29  jgoff
5460         * languages/miniperl/Miniperl/: Generator.pm, Parser.pm:
5461         Reconstructing files to make the parser flow a little better.
5463 2001-12-13 00:51  dan
5465         * resources.c: Be a bit less wasteful with resources that don't
5466         need to be aligned
5468 2001-12-12 18:22  dan
5470         * Makefile.in: D'oh! Fixed looping makefile bug.
5472         Courtesy of: "Jaen Saul" <jaen@saul.ee>
5474 2001-12-12 16:23  jgoff
5476         * languages/miniperl/t/001_basic/basic1.scheme: Bogus entry
5478 2001-12-12 16:22  jgoff
5480         * MANIFEST: Manifest additions for languages/miniperl
5482 2001-12-12 16:19  jgoff
5484         * languages/miniperl/t/001_basic/: basic.t, basic1.scheme: Basic
5485         tests. These are left over from the Scheme suite and shouldn't be
5486         used yet.
5488 2001-12-12 16:18  jgoff
5490         * languages/miniperl/: Miniperl/Generator.pm, Miniperl/Parser.pm,
5491         Miniperl/Test.pm, Miniperl/Tokenizer.pm, t/harness: Miniperl base
5492         modules. Miniperl/ is where the real work gets done.  t/ is largely
5493         vacant because it isn't ready to survive real tests yet.
5495 2001-12-12 16:17  jgoff
5497         * languages/miniperl/: Makefile, Miniperl.pm, foo.mpl, miniperlc,
5498         mpc: Final go-round, hopefully.
5500         languages/miniperl/Makefile - Used basically to run tests, as there
5501         is nothing                               here that needs to be
5502         dynamically built.  languages/miniperl/Miniperl.pm - Stub module
5503         that calls the real Miniperl/ mods languages/miniperl/foo.mpl -
5504         Sample miniperl file.  languages/miniperl/miniperlc - Miniperl
5505         compiler stub
5507 2001-12-12 16:09  dan
5509         * Configure.pl: Setting a variable with the make command name is
5510         useful.
5512 2001-12-12 15:07  simon
5514         * Makefile.in, languages/jako/Makefile, languages/scheme/Makefile:
5515         Recursive make considered "ow, don't do that".
5517 2001-12-12 14:45  dan
5519         * Makefile.in: Makefile had some non-portable code. (Okay, a lot of
5520         non-portable code) Killing builds on Win32 native. Small patch
5521         applied which hopefully fixes it.
5523 2001-12-12 06:12  ajgough
5525         * classes/Makefile.in: perl is $(PERL), you know it makes sense.
5527 2001-12-12 06:08  ajgough
5529         * Makefile.in: perl is $(PERL).
5531 2001-12-12 06:00  ajgough
5533         * t/op/integer.t: Added tests to integer.t so that all permutations
5534         of arguments are actually called at some point.
5536 2001-12-12 05:18  ajgough
5538         * t/op/time.t: I can't sleep, but I don't see why parrot shouldn't.
5539          Tests for sleep i|ic
5541 2001-12-12 05:09  ajgough
5543         * t/op/stacks.t: Added pushp and popp register stack tests.
5545 2001-12-12 04:51  ajgough
5547         * t/op/stacks.t: Added tests for save and restore, for all register
5548         types.  Let there be Haiku.
5550 2001-12-12 04:27  ajgough
5552         * t/op/basic.t: bsr_i test.  You know you want it.
5554 2001-12-12 02:55  ajgough
5556         * MANIFEST: Added hints/os2.pl to MANIFEST.
5558 2001-12-12 02:52  jgoff
5560         * core.ops, key.c: Final checkin... These are actually the correct
5561         copies.
5563 2001-12-12 02:12  jgoff
5565         * include/parrot/key.h: key.c - Removed a few functions,
5566         generalized set_element_value and element_value         to accept
5567         KEY_PAIRs from core.ops include/parrot/key.h - Modified header.
5568         core.ops - Modified to accept the new return style.
5570         This is a prelude to adding virtual-table methods to allow hashing
5571         &c. Expect at least one or two more redesigns before this settles
5572         down. However, it still passes the original tests.
5574 2001-12-11 13:35  gregor
5576         * runops_cores.c:
5577         Fixed a typo.
5579 2001-12-11 12:03  gregor
5581         * .cvsignore:
5582         Don't ignore test_prog, but do ignore parrot.
5584 2001-12-11 12:03  gregor
5586         * classes/.cvsignore:
5587         Ignore the generated file default.h
5589 2001-12-11 04:07  jgoff
5591         * key.c: Key source
5593 2001-12-11 04:05  jgoff
5595         * include/parrot/key.h, t/op/key.t: Needed header file, new test
5597 2001-12-11 04:00  jgoff
5599         * core.ops: Added new key aggregate operations to core ops.
5601 2001-12-11 04:00  jgoff
5603         * include/parrot/parrot.h: Added key.h to header list
5605 2001-12-11 03:59  jgoff
5607         * MANIFEST: Added key.c, include/parrot/key.h, t/op/key.t
5609 2001-12-11 03:58  jgoff
5611         * Makefile.in: Added implementation of key aggregates.
5613 2001-12-08 23:07  simon
5615         * README:
5616         README good to go.
5618 2001-12-08 23:05  simon
5620         * Configure.pl, Makefile.in, README, Parrot/Test.pm,
5621         docs/intro.pod, languages/jako/Makefile, languages/scheme/Makefile,
5622         languages/scheme/Scheme/Test.pm, lib/Parrot/Test.pm:
5623         test_prog? What is test_prog?
5625 2001-12-08 22:57  simon
5627         * ChangeLog:
5629         Oops, the changelog commit was on *this* machine.
5631 2001-12-08 22:56  simon
5633         * NEWS:
5634         Updates to NEWS and ChangeLog pre-release.
5636 2001-12-08 22:07  simon
5638         * MANIFEST, Makefile.in, classes/Makefile.in, classes/default.pmc,
5639         classes/perlnum.pmc, classes/pmc2c.pl:
5640         Add "default" PMC vtable so you can inherit implied stuff.
5642 2001-12-08 21:24  simon
5644         * Parrot/PackFile.pm, docs/parrot.pod, docs/parrotbyte.pod,
5645         docs/vtables.pod, lib/Parrot/PackFile.pm:
5646         Getting the documentation up to scratch.
5648 2001-12-08 21:21  simon
5650         * classes/pmc2c.pl:
5651         Allow inheriting from default class.
5653 2001-12-07 20:43  gregor
5655         * examples/assembly/queens.pasm:
5656         Regenerated the file with the latest jakoc.
5658 2001-12-07 20:29  simon
5660         * core.ops, t/op/stacks.t:
5661         Rename "rotate" to "rotate_up".
5663 2001-12-07 20:15  simon
5665         * t/op/stacks.t:
5666         Some tests for rotate.
5668 2001-12-07 00:55  gregor
5670         * core.ops:
5671         Cast the result of the pointer arithmetic, since without the cast
5672         there are warnings with some compilers, and without the parens
5673         around the pointer arithmetic, precedence breaks the meaning and
5674         causes crashes.
5676 2001-12-06 23:37  simon
5678         * core.ops:
5679         Temporary. I prefer compiler warnings to segfaults, thanks.
5681 2001-12-06 23:34  simon
5683         * runops_cores.c:
5684         Make "trace" work again.
5686 2001-12-06 21:23  dan
5688         * Parrot/Test.pm, lib/Parrot/Test.pm: Undo twiddles to test.pm
5690 2001-12-06 21:22  dan
5692         * core.ops, packfile.c, Parrot/Test.pm, include/parrot/stacks.h,
5693         lib/Parrot/Test.pm: Fix up source issues that made Dec C unhappy
5695 2001-12-06 19:22  simon
5697         * core.ops:
5698         Yet another "How the *%$! did that compile?" moment.
5700 2001-12-06 18:28  dan
5702         * hints/vms.pl: Fix to build, with a HERE logical required
5704 2001-12-06 17:48  dan
5706         * core.ops, interpreter.c, pbc2c.pl, pdump.c, test_main.c,
5707         docs/parrot_assembly.pod, include/parrot/interpreter.h: Sensible
5708         changes to the interpreter--flags are now part of the interp
5709         structure.
5711         Courtesy of "Melvin Smith" <mrjoltcola@mindspring.com>
5713 2001-12-06 14:02  gregor
5715         * docs/intro.pod:
5716         s/little_languages/languages/ in Jako section.
5718 2001-12-06 13:15  simon
5720         * Makefile.in:
5721         Ensure the documentation gets made.
5723 2001-12-06 13:12  simon
5725         * MANIFEST, docs/intro.pod:
5726         Documentation! Added the "Some Assembly Required" article with
5727         minor updates.
5729 2001-12-06 00:39  simon
5731         * core.ops:
5732         More "eq" support.
5734         Courtesy of: Nguon Hao Ching <hao@netaxs.com>
5736 2001-12-06 00:37  simon
5738         * test_main.c:
5739         Add the "-d" debug flag. Doesn't actually *do* anything yet.
5741         Courtesy of: Melvin <mrjoltcola@mindspring.com>
5743 2001-12-06 00:11  tom
5745         * string.c, chartypes/unicode.c, chartypes/usascii.c,
5746         encodings/singlebyte.c, encodings/utf16.c, encodings/utf8.c,
5747         include/parrot/chartype.h, include/parrot/encoding.h,
5748         include/parrot/parrot.h: Moved string to number conversion code out
5749         of the encoding layer and into the main string layer as neither the
5750         encoding layer nor the character type layer knows enough on it's
5751         own to do the conversion correctly.
5753 2001-12-05 23:12  tom
5755         * Makefile.in: Rebuild the classes directory if any of the object
5756         files for the classes are missing rather than only when perlint.o
5757         is missing.
5759 2001-12-05 19:43  gregor
5761         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm:
5762           * Reworked the constantize_string() stuff a little bit because it
5763         was
5764             puking on things like "\033[H\033[2J\0" (which occurs in the
5765             languages/jako/mandelzoom.jako example).
5767 2001-12-05 19:39  gregor
5769         * languages/jako/: Makefile, mandelzoom.jako:
5770         Added 'mandelzoom' example.
5772 2001-12-05 19:38  gregor
5774         * languages/jako/jakoc:
5775           * Added sleep()
5777           * Changed some instances of die() to confess()
5779 2001-12-05 18:34  gregor
5781         * t/: op/pmc.t, pmc/pmc.t:
5782         s/sting->int/string->int/
5784 2001-12-05 18:08  gregor
5786         * Parrot/.cvsignore:
5787         Ignore PMC.pm
5789 2001-12-05 18:05  gregor
5791         * classes/.cvsignore:
5792         Ignore the generated files.
5794 2001-12-05 17:19  gregor
5796         * pbc2c.pl:
5797           * Reverted recent changes, since they broke the script. Real fix
5798         coming
5799             later.
5801 2001-12-05 17:03  simon
5803         * classes/Makefile.in:
5804         Remember: change Makefile.in, not Makefile. D'oh.
5806 2001-12-05 17:02  simon
5808         * Makefile.in:
5809         Ensure PMC.pm gets remade.
5811 2001-12-05 16:58  simon
5813         * MANIFEST, Makefile.in, classes/Makefile.in,
5814         classes/perlundef.pmc, include/parrot/pmc.h:
5815         Add perlundef class.
5817 2001-12-05 16:45  simon
5819         * core.ops:
5820         Document "new P0, foo"
5822 2001-12-05 16:43  simon
5824         * MANIFEST, Makefile.in, pbc2c.pl, pmc_pm.pl, Parrot/Assembler.pm,
5825         lib/Parrot/Assembler.pm, t/op/pmc.t, t/pmc/pmc.t:
5826         Allow assembler to know about PMC class names.
5828 2001-12-04 13:39  ajgough
5830         * MANIFEST: Added t/op/pmc.t to MANIFEST.
5832 2001-12-04 05:02  ajgough
5834         * classes/perlnum.pmc: Picky compiler pointed out probable thinko
5835         in perlnum.c
5837 2001-12-04 04:24  ajgough
5839         * encodings/singlebyte.c, t/op/pmc.t, t/pmc/pmc.t: A much less
5840         broken form of strtod and appropriate tests.  Does not yet check
5841         for overflow.
5843 2001-12-04 01:31  ajgough
5845         * string.c, encodings/singlebyte.c, encodings/utf16.c,
5846         encodings/utf8.c, include/parrot/encoding.h: Added length parameter
5847         to extract_num and extract_int string vtables, without this it
5848         would be impossible to have strings with nulls in while still
5849         knowing where they ended.
5851 2001-12-03 18:40  ajgough
5853         * string.c, classes/perlstring.pmc, encodings/singlebyte.c,
5854         encodings/utf16.c, encodings/utf8.c, include/parrot/encoding.h,
5855         include/parrot/string.h: Moved pmc string to number conversion into
5856         the string encoding tables.
5858 2001-12-03 00:21  ajgough
5860         * core.ops, t/op/pmc.t, t/pmc/pmc.t: Added set i, p and some tests
5861         for p-> integer.
5863 2001-12-02 23:09  jgoff
5865         * classes/Makefile.in: Removed some redundant targets.
5867 2001-12-02 19:02  ajgough
5869         * t/: op/pmc.t, pmc/pmc.t: Modified all pmc tests to make use of fp
5870         equality macro rather than using perl to generate expected output,
5871         all tests now have <<OUTPUT.
5873 2001-12-02 17:44  ajgough
5875         * t/op/trans.t: Upgraded fp_eq and fp_ne macros to be more useful
5876         for pmc.t as well.  Will probably move macros into another file at
5877         some point, although this might be best left until the tests are
5878         unperled.
5880 2001-12-02 06:16  jgoff
5882         * classes/pmc2c.pl: It wasn't properly setting the vtable index
5883         within Parrot_Perl{Class}_init.
5885 2001-12-02 06:09  jgoff
5887         * classes/Makefile.in: I seem to have removed *$(O) twice..
5889 2001-12-02 05:06  jgoff
5891         * Configure.pl, MANIFEST, Makefile.in: (Hopefully the last time...)
5892         Configure.pl - Removed '-I./include', added classes/Makefile
5893         generation MANIFEST     - Added classes/Makefile.in Makefile.in  -
5894         Removed old classes/* make stuff                Added target for
5895         classes/Makefile
5897 2001-12-02 04:48  jgoff
5899         * classes/Makefile.in: Going to be used shortly...
5901 2001-12-02 04:40  jgoff
5903         * docs/Makefile: Configure.pl - Added automatic makefile creation
5904         for docs/ and classes/                Removed '-I./include' because
5905         it was getting incorrectly                passed to classes/
5906         MANIFEST - added docs/Makefile.in, classes/Makefile.in Makefile.in
5907         - Removed classes/ build stuff, replaced with classes/Makefile.in
5908                     Added '-I./include' locally docs/Makefile - Should no
5909         longer be used, but I'm not brave enough to do a
5910         cvs delete.
5912 2001-12-02 01:21  ajgough
5914         * t/op/trans.t: Refactored trans math tests to have hard coded
5915         expected return values and be more ready to be unperled at some
5916         point in the future.  Added $fp_equality_macro which is a
5917         "nearly-equal-to" function.
5919 2001-12-02 01:18  ajgough
5921         * Makefile.in: Humph.  People really ought to use Makefile
5922         variables, s/perl/$(PERL)/ throughout.
5924 2001-12-01 18:15  jgoff
5926         * classes/: perlint.pmc, perlnum.pmc: Temporary patch until we
5927         figure out what to do vis-a-vis the lack of snprintf.
5929 2001-11-30 13:14  ajgough
5931         * t/op/: integer.t, number.t: Added tests for abs ops to number.t
5932         and integer.t
5934 2001-11-30 13:14  ajgough
5936         * core.ops: Added abs(i|n, i|ic|n|nc) ops to core.ops, using if <0
5937         -, else ... form.
5939 2001-11-30 10:36  simon
5941         * core.ops:
5942         Rewrite print_p to do the right thing.
5944 2001-11-30 06:21  jgoff
5946         * t/: op/pmc.t, pmc/pmc.t: New tests for integer/number/string
5947         concat,               integer/number/string math
5949 2001-11-30 06:20  jgoff
5951         * classes/: perlint.pmc, perlnum.pmc, perlstring.pmc:
5952         classes/perlint.pmc - Fixes and expanding for concat and math with
5953         strings classes/perlnum.pmc - Fixes and expanding for concat and
5954         math with strings classes/perlstring.pmc - Fixes and expanding for
5955         concat and math with strings
5957 2001-11-29 15:21  ajgough
5959         * hints/os2.pl: This is a hints file for os/2, I've set $c{perl} as
5960         $^X lies, which confused bash which make uses to run things when
5961         doing its stuff.
5963 2001-11-29 04:58  jgoff
5965         * classes/perlstring.pmc: Removed C++-style comments for good
5966         measure
5968 2001-11-29 04:51  jgoff
5970         * t/: op/pmc.t, pmc/pmc.t: New tests for PMC integers
5972 2001-11-29 04:28  jgoff
5974         * global_setup.c: Initialize PMC strings
5976 2001-11-29 04:25  jgoff
5978         * core.ops: Added set_p_s and set_p_sc, modified print_p to handle
5979         string PMCs.
5981 2001-11-29 04:24  jgoff
5983         * classes/: perlint.pmc, perlnum.pmc, perlstring.pmc: Changed PMC
5984         files to properly upgrade int to num, do calculations.  Also added
5985         basic string operations. Currently errors out on anything but set
5986         operations, but this will be fixed soon.
5988 2001-11-29 04:22  jgoff
5990         * Makefile.in: PMC .c files weren't getting cleaned out.
5992 2001-11-28 17:00  simon
5994         * t/harness:
5996         Make csh-glob happy.
5998         Courtesy of: Andy Dougherty: <doughera@lafayette.edu>
6000 2001-11-28 16:40  simon
6002         * classes/perlnum.pmc:
6004         De-C++
6006 2001-11-28 15:22  simon
6008         * string.c:
6010         Fixes Alex's string concat worry.
6012 2001-11-28 14:27  ajgough
6014         * t/op/string.t: test "null onto null" incorrectly passing as it
6015         produced no output.  Output provided.
6017 2001-11-28 11:14  simon
6019         * include/parrot/pmc.h:
6021         Placate AIX.
6023 2001-11-26 21:03  dan
6025         * MANIFEST, hints/darwin.pl: Tweaks to build on Mac OS X 10.1
6027 2001-11-26 17:29  simon
6029         * classes/perlint.pmc:
6031         Various subtle but non-showstopper bugs.
6033 2001-11-26 11:23  simon
6035         * classes/pmc2c.pl:
6037         Replace dependency on Text::Balanced
6039         Courtesy of: Bart Lateur <bart.lateur@pandora.be>
6041 2001-11-26 05:22  jgoff
6043         * global_setup.c: Last file that should need to be committed. I
6044         swear.
6046 2001-11-26 05:09  jgoff
6048         * core.ops: Let's try this again... Changes to core.ops required
6050 2001-11-26 04:58  jgoff
6052         * classes/perlint.pmc, classes/perlnum.pmc, t/op/pmc.t,
6053         t/pmc/pmc.t: Makefile.in - Added missing cleanup line for perl*.c
6054         core.ops - Added set(p,n|nc), modified print(p) global_setup.c -
6055         Uncommented PerlNum_init classes/perlint.pmc - Added set_number
6056         functions classes/perlnum.pmc - Set up basic number functions
6057         t/op/pmc.t - Added tests for set P0.<number> and {add,mul,sub,div}
6058         tests against numbers and numbers+integers
6060 2001-11-25 13:18  simon
6062         * Makefile.in:
6063         Windows XP make doesn't like $<
6065 2001-11-25 12:56  simon
6067         * MANIFEST, Makefile.in, classes/genclass.pl, classes/perlint.c,
6068         classes/perlint.pmc, classes/perlnum.c, classes/perlnum.pmc,
6069         classes/perlstring.c, classes/perlstring.pmc, classes/pmc2c.pl,
6070         examples/assembly/mops_p.pasm:
6071         PMC preprocessor.
6073         Courtesy of: Angel Faus <afaus@corp.vlex.com>
6075         I (Simon) also added a couple more integer methods, but no tests
6076         since I'm a Bad Person.
6078 2001-11-25 08:40  brentdax
6080         * ops2c.pl, Parrot/Op.pm, Parrot/OpsFile.pm, lib/Parrot/Op.pm,
6081         lib/Parrot/OpsFile.pm: Allow _ in op names
6083 2001-11-25 05:54  jgoff
6085         * classes/perlint.c, t/op/pmc.t, t/pmc/pmc.t: classes/perlint.c -
6086         Added basic math ops t/op/pmc.t - Added tests of basic math ops
6088 2001-11-23 18:27  simon
6090         * core.ops, classes/perlint.c, examples/assembly/mops_p.pasm:
6091         Add everything you need to make MOPS use PMCs.
6093 2001-11-23 18:06  simon
6095         * core.ops:
6096         Eh, you'll need this for rewriting mops.pasm.
6098 2001-11-23 17:55  simon
6100         * core.ops, classes/perlint.c, include/parrot/pmc.h, t/op/pmc.t,
6101         t/pmc/pmc.t:
6102         More work on integer PMCs.
6104 2001-11-23 17:29  simon
6106         * Makefile.in:
6107         Surprise! Whitespace! HLAGHLAGHLAGH
6109 2001-11-23 17:28  simon
6111         * Makefile.in, ops2c.pl, ops2pm.pl:
6112         Add vtables.ops to the core
6114         Courtesy of: Jeff Goff <jgoff@speakeasy.net>
6116 2001-11-22 18:39  simon
6118         * core.ops, global_setup.c, docs/parrot_assembly.pod, t/op/pmc.t,
6119         t/pmc/pmc.t:
6120         We can now create PMCs.
6122 2001-11-21 05:49  jgoff
6124         * Makefile.in: Makefile cleans up *.pasm *.pbc *.out
6126 2001-11-20 16:00  simon
6128         * docs/vtables.pod, include/parrot/pmc.h:
6129         Reorder PMC flags so there's a fixed number of user-defined flags.
6131         Courtesy of: Dave Mitchell <davem@fdgroup.co.uk>
6133 2001-11-19 03:39  jgoff
6135         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm, t/op/basic.t:
6136         Parrot/Assembler.pm - Allow "print 'foo'", and properly escape
6137         nested quotes.  t/op/basic.t - Add tests for single-quoted strings,
6138         escaped quotes, and proper                handling of newlines.
6140 2001-11-16 22:03  simon
6142         * classes/perlint.c:
6143         More work on the Perl Integer class. More needed, though.
6145 2001-11-16 21:57  simon
6147         * pmc.c, vtable.tbl, classes/genclass.pl, classes/perlint.c:
6148         Rename ->new to ->init, and rework pmc.c:pmc_new to fiddle it.
6150 2001-11-16 20:49  simon
6152         * interpreter.c, runops_cores.c, trace.c,
6153         include/parrot/runops_cores.h:
6154         Kill superfluous runops cores.
6156 2001-11-16 17:50  simon
6158         * MANIFEST, Makefile.in, classes/intclass.c, classes/perlint.c,
6159         classes/perlnum.c, classes/perlstring.c, classes/scalarclass.c,
6160         include/parrot/parrot.h, include/parrot/pmc.h:
6161         Skeleton for Perl scalar types, done right.
6163 2001-11-16 16:15  simon
6165         * classes/genclass.pl:
6166         This tidies up genclass to deal with the new-style multimethods.
6168 2001-11-16 15:29  simon
6170         * Makefile.in, make_vtable_ops.pl, vtable.tbl, Parrot/Vtable.pm,
6171         lib/Parrot/Vtable.pm, include/parrot/parrot.h:
6172         Rework multimethods to be *true* multimethods - that is, have
6173         different types.
6175 2001-11-15 22:29  simon
6177         * MANIFEST, Makefile.in, pmc.c:
6178         pmc.c linkage and support. Oh, and making it compile.
6180 2001-11-15 22:26  dan
6182         * t/op/interp.t: Forgot to tell CVS about the test...
6184 2001-11-15 22:10  dan
6186         * MANIFEST, Types_pm.in, core.ops, vtable_h.pl,
6187         docs/parrot_assembly.pod, include/parrot/string.h: Added in support
6188         for PMC registers for the interpreter.
6190         Added in the docs for the runinterp opcode.
6192         Added in code for both the newinterp and runinterp opcodes, so we
6193         can now create new interpreters from within parrot and have them do
6194         things. (Though we can't pass data back and forth. Yet)
6196 2001-11-15 21:24  simon
6198         * vtable.tbl, classes/scalarclass.c, docs/vtables.pod:
6199         More documentation, and other changes as discussed with Dan.
6201 2001-11-15 19:51  simon
6203         * classes/scalarclass.c:
6204         De-cut-and-pasto.
6206 2001-11-15 19:50  simon
6208         * classes/scalarclass.c:
6209         A little code tidiness.
6211 2001-11-15 19:33  simon
6213         * include/parrot/pmc.h:
6214         Missed this in the previous commit - un-constantize the base for
6215         user-defined PMC flags.
6217 2001-11-15 19:28  simon
6219         * classes/scalarclass.c:
6220         Hey look, sanity.
6222 2001-11-15 17:09  simon
6224         * classes/scalarclass.c:
6225         It seems I have completely forgotten how to write C.
6227 2001-11-15 16:53  simon
6229         * docs/vtables.pod:
6230         Start of the PMC classes documentation.
6232 2001-11-15 14:46  simon
6234         * classes/scalarclass.c:
6235         Changing to use a Perl-style struct instead of the union cache.
6237 2001-11-13 23:56  tom
6239         * string.c: Removed leading _ from string_index as function names
6240         starting with _ are reserved to implementors by the C standard.
6242         Also fixed string_index to use the encoding routines instead of
6243         assuming a single byte encoding.
6245 2001-11-13 12:59  jgoff
6247         * string.c: Patched string_concat to accept null strings.  That
6248         test was failing. Nothing to do with ord().
6250 2001-11-13 12:43  jgoff
6252         * string.c: string_ord function, string_concat fixes
6254 2001-11-13 04:52  jgoff
6256         * core.ops: Added ord to core.ops
6258 2001-11-13 04:35  jgoff
6260         * docs/strings.pod, include/parrot/exceptions.h,
6261         include/parrot/string.h, t/op/string.t: core.ops - Added ord
6262         operator, documentation string.c - Added string_ord, _string_index
6263         (_string_index is a static helper)              Patched
6264         string_concat to handle null strings properly.  docs/strings.pod -
6265         Description of string_ord include/parrot/exceptions.h - Added
6266         ORD_OUT_OF_STRING exception include/parrot/string.h - Added
6267         string_ord() t/op/string.t - Added full set of test for
6268         ord_i_(s|sc)(_(i|ic))?
6270         string.c contains a bit of documentation explaining the logic
6271         behind _string_index, primarily having to do with multiple encoding
6272         formats.
6274 2001-11-12 22:30  simon
6276         * t/op/macro.t:
6277         Count 'em.
6279 2001-11-12 22:28  simon
6281         * Makefile.in:
6282         Add a rule to compile "platform"
6284 2001-11-12 22:26  simon
6286         * Makefile.in:
6287         Tidy up distclean target.
6289 2001-11-12 16:54  dan
6291         * MANIFEST, Parrot/Assembler.pm, lib/Parrot/Assembler.pm,
6292         t/op/macro.t: Fixes to the assembler's macro facility and a test
6294         Courtesy of: Jeff <jgoff@speakeasy.net>
6296 2001-11-12 16:50  dan
6298         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm: Allow input from
6299         stdin
6301         Courtesy of: Jeff <jgoff@speakeasy.net>
6303 2001-11-12 16:36  dan
6305         * Parrot/Test.pm, lib/Parrot/Test.pm: Fix to make test work on
6306         CygWin
6308         Courtesy of: Alex Gough <alexander.gough@st-hughs.oxford.ac.uk>
6310 2001-11-12 11:22  simon
6312         * examples/assembly/mops.pasm:
6314         Trivial tightening of mops loop.
6316 2001-11-07 23:57  ajgough
6318         * docs/tests.pod: This is a basic quide to writing tests with
6319         assembler.
6321 2001-11-07 22:29  dan
6323         * stacks.c: Added a little documentation on the cleanup parameter
6324         for an entry
6326 2001-11-07 14:43  dan
6328         * MANIFEST, platforms/generic.c, platforms/linux.c,
6329         platforms/linux.h: Portability patches.
6331         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
6333 2001-11-06 19:51  tom
6335         * Makefile.in: Clean up object files in the subdirectories as well
6336         as those in the top level directory.
6338         Enhanced version of patch from Daniel Grunblatt
6339         <daniel@grunblatt.com.ar>
6341 2001-11-06 16:14  dan
6343         * Configure.pl, MANIFEST, Makefile.in, core.ops,
6344         platforms/generic.c, platforms/generic.h: Made things a bit more
6345         platform-independent. Makefile still needs work to pick up changes
6346         to the platform-specific files.
6348 2001-11-05 21:32  dan
6350         * docs/parrot_assembly.pod: Added docs for the GC control ops
6352 2001-11-04 02:52  gregor
6354         * platforms/: win32.c, win32.h:
6355           * win32 dynamic loading functions.
6357         Courtesy of Jason Diamond <jason@injektilo.org>
6359 2001-11-04 00:04  brentdax
6361         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm: Assembler fixes:
6362         allows an absolute path to be used and gives a useful error message
6363         if the original source file can't be found
6365 2001-11-02 12:37  gregor
6367         * platforms/: linux.c, linux.h:
6368           * Beginning of dynamic loading support. Linux only for now.
6370 2001-11-02 12:13  gregor
6372         * MANIFEST, time.c, include/parrot/time.h:
6373           * Removed time.[hc], since they have been superseded by the new
6374         platform
6375             stuff.
6377 2001-11-02 12:11  gregor
6379         * Configure.pl, Makefile.in, core.ops, vtable.tbl,
6380         classes/intclass.c, classes/scalarclass.c, hints/mswin32.pl,
6381         include/parrot/parrot.h, platforms/linux.c, platforms/linux.h,
6382         platforms/win32.c, platforms/win32.h:
6383         Patch from Jason Diamond to make win32 platform stuff work:
6385         * Modified Configure.pl, mswin32.pl, and Makefile.in so that the
6386         platform specific files in the platforms directory gets copied to
6387         the correct directories. The Makefile will re-copy the platform.h
6388         and .c files if the original is modified.
6390         * #include platform.h in parrot.h instead of time.h.
6392         * Removed time.h and time.obj from the Makefile. time.h and time.c
6393         aren't being used anymore since that code was moved to linux.c and
6394         win32.c.
6396         * Renamed the BOOL typedef in parrot.h to BOOLVAL (inspired by
6397         INTVAL and FLOATVAL). This was conflicting with the BOOL typedef in
6398         windows.h. This required updating several files besides parrot.h.
6400         * Added a DEFAULT_OPEN_MODE to linux.h and win32.h and used that
6401         instead of the missing identifiers (on Windows) in core.ops in the
6402         calls to open.
6404         * Added Parrot_sleep and Parrot_setenv to both the linux and win32
6405         platform files and called those from core.ops. The Linux code for
6406         these functions came from core.ops so they should hopefully work.
6408         Courtesy of Jason Diamond <jason@injektilo.org>
6410 2001-11-02 06:43  brentdax
6412         * Makefile.in, hints/mswin32.pl: Fix classes/intclass.obj building
6413         for Win32 (courtesy of Jason Diamond <jason@injektilo.org>)
6415 2001-11-02 02:26  gregor
6417         * .cvsignore, MANIFEST, include/parrot/.cvsignore,
6418         platforms/linux.c, platforms/linux.h, platforms/win32.c,
6419         platforms/win32.h:
6420           * Beginnings of platform support files in platform/*.[hc]
6422 2001-11-01 23:37  tom
6424         * classes/intclass.c: Added missing *'s to STRING arguments and
6425         return values to avoid compiler warnings.
6427 2001-11-01 22:21  gregor
6429         * MANIFEST, Makefile.in, core.ops, obscure.ops, time.c,
6430         include/parrot/parrot.h, include/parrot/time.h:
6431         Initial "fix" of time(n) op for Win32:
6433           * Initial Win32 code Courtesy of Richard J Cox <rjcox@cix.co.uk>
6435           * time.c and include/parrot/time.h
6437             First attempt at getting this working across platforms. The
6438             macro WIN32 being tested might not be right.
6440           * New functions Parrot_intval_time() and Parrot_floatval_time()
6441             wrap the appropriate functionality depending upon platform.
6442             Changed core.ops to call these.
6444         Added obscure.ops with obscure transcendental ops.
6446         Added simple file I/O ops (close, open, read, write):
6448           * Initial versions Courtesy of Jeff <jgoff@speakeasy.net>
6450           * I changed some arg ordering stuff.
6452           * I added read/write of INTVALs and FLOATVALs.
6454         Added environment variable ops (getenv, setenv)
6456         Added system error ops (err(i) and err(s) for accessing errno and
6457         strerr().
6459         Moved print ops in with other "temporary" developer ops, since
6460         they'll move to a devel.ops or temp.ops oplib once we have oplibs.
6462 2001-10-31 22:51  tom
6464         * MANIFEST, Makefile.in, chartype.c, encoding.c, global_setup.c,
6465         packfile.c, string.c, strnative.c, strutf16.c, strutf32.c,
6466         strutf8.c, transcode.c, chartypes/unicode.c, chartypes/usascii.c,
6467         encodings/singlebyte.c, encodings/utf16.c, encodings/utf32.c,
6468         encodings/utf8.c, include/parrot/chartype.h,
6469         include/parrot/encoding.h, include/parrot/exceptions.h,
6470         include/parrot/parrot.h, include/parrot/string.h,
6471         include/parrot/strnative.h, include/parrot/strutf16.h,
6472         include/parrot/strutf32.h, include/parrot/strutf8.h,
6473         include/parrot/transcode.h: Reworked the string code in line with
6474         Dan's latest design that separates character sets from encodings.
6476 2001-10-31 19:53  dan
6478         * docs/parrot_assembly.pod: Finished I/O section of docs
6480 2001-10-31 16:51  dan
6482         * core.ops, docs/parrot_assembly.pod, include/parrot/parrot.h:
6483         Moved includes out of core.ops and into parrot.h where they belong
6484         (suitably guarded with #ifdefs). Also some updates to
6485         parrot_assembly.pod
6487 2001-10-30 21:43  dan
6489         * core.ops, stacks.c, docs/parrot_assembly.pod,
6490         include/parrot/stacks.h: Added entrytype opcode to fetch the type
6491         of the entry on the stack
6493 2001-10-29 18:30  dan
6495         * stacks.c: You can turn off stack entry type validation on pop by
6496         passing in a type of 0 now. (For those cases where you just want to
6497         throw the darned thing away)
6499 2001-10-29 14:37  gregor
6501         * core.ops, languages/jako/jakoc:
6502           * New variants of the save ops to save constants on the stack.
6503         This is
6504             useful for saving zero arg and result counts on the stack, for
6505         example.
6507           * Modified jakoc to to adapt to the newly announced calling
6508         conventions.
6509             Even though Jako source code appears to show subroutines with
6510         fixed
6511             numbers of arguments and results, they are implemented with the
6512             variable count calling convention. Future modifications will be
6513         needed
6514             to ensure that an exception is raised if the stack frame is of
6515         the
6516             wrong size (or, at least that we pop the complete frame off).
6517         We'll
6518             also have to make more changes to support the true
6519         fixed-arg-count
6520             and fixed-result-count parts of the calling convention spec.
6522 2001-10-28 16:53  simon
6524         * MANIFEST, stacks.c, classes/scalarclass.c,
6525         include/parrot/stacks.h:
6526         Unbelievably bad errors of mine, plus a type incompatibility of
6527         Dan's.
6529 2001-10-28 08:30  simon
6531         * classes/scalarclass.c:
6532         Beginning of a scalar class.
6534 2001-10-28 08:29  simon
6536         * make_vtable_ops.pl, vtable.tbl, Parrot/Vtable.pm,
6537         lib/Parrot/Vtable.pm, classes/genclass.pl, classes/intclass.c,
6538         include/parrot/pmc.h:
6539         This fixes the problem with vtables and pointer arithmetic.
6541 2001-10-26 19:58  dan
6543         * core.ops, interpreter.c, stacks.c, include/parrot/interpreter.h,
6544         include/parrot/stacks.h: Split the generic stack into a user push
6545         stack and a control stack
6547 2001-10-26 02:59  bdwheele
6549         * Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm: [no log message]
6551 2001-10-24 20:27  dan
6553         * languages/scheme/: Makefile, Scheme.pm, schemec,
6554         Scheme/Generator.pm, Scheme/Parser.pm, Scheme/Test.pm,
6555         Scheme/Tokenizer.pm, t/harness, t/arith/basic.t, t/arith/logic.t,
6556         t/arith/nested.t, t/io/basic.t, t/logic/basic.t: Added the mini
6557         Scheme compiler
6559 2001-10-24 20:23  dan
6561         * MANIFEST, pdump.c, docs/parrot_assembly.pod: Update for
6562         interpreter needs in pdump.c. Added scheme bits to manifest
6564 2001-10-24 16:43  gregor
6566         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm:
6567           * Make the assembler handle octal character code escapes in
6568         string
6569             constants.
6571 2001-10-24 15:56  dan
6573         * MANIFEST, examples/assembly/life.pasm: Added an example in to
6574         play the game of life
6576 2001-10-24 15:54  dan
6578         * core.ops: Added sleep. We'll need to override this to do events
6579         properly anyway, so...
6581 2001-10-24 14:03  gregor
6583         * Makefile.in, pbc2c.pl, pdump.c:
6584           * Adapt pdump.c and pbc2c.pl to the new requirement to pass
6585         interpreter
6586             pointer into string functions.
6588         Courtesy of: Ryan O'Neil <talisman580@yahoo.com>
6590 2001-10-23 20:09  gregor
6592         * languages/jako/jakoc:
6593           * Terminological refinement in regexp capture comment.
6595 2001-10-23 15:23  simon
6597         * classes/genclass.pl:
6598         Use a saner ANSI C construct to make MIPSPro happy.
6600         Courtesy of: Alex Gough <alexander.gough@st-hughs.oxford.ac.uk>
6602 2001-10-23 00:34  tom
6604         * core.ops, string.c, strnative.c, strutf16.c, strutf32.c,
6605         strutf8.c, include/parrot/string.h: Make sure the interpreter
6606         structure is passed to the transcoder as necessary, including
6607         passing it to string_compare().
6609 2001-10-23 00:32  tom
6611         * Makefile.in: Make pdump build again by including resources.o in
6612         the link.
6614 2001-10-22 22:43  dan
6616         * core.ops, packfile.c, string.c, strnative.c, strutf16.c,
6617         strutf32.c, strutf8.c, test_main.c, transcode.c,
6618         include/parrot/packfile.h, include/parrot/parrot.h,
6619         include/parrot/resources.h, include/parrot/string.h,
6620         include/parrot/transcode.h: Everything now uses the allocators and
6621         deallocators in resources.c.
6623         Unfortunately we lost standalone string-test mode, but I can cope
6624         with that.
6626         Please note that until we have a real allocation/deallocation/GC
6627         system, this'll leak. A *lot*.
6629 2001-10-22 20:27  dan
6631         * MANIFEST, Makefile.in, pmc.c, resources.c,
6632         include/parrot/resources.h: First cut to handle arena allocation of
6633         PMC headers. (Amongst other things)
6635 2001-10-22 19:02  dan
6637         * Configure.pl, config_h.in, register.c, include/parrot/register.h:
6638         Now each register type has its own mask macro, which is the right
6639         thing to do.
6641         Patch courtesy of Jason Gloudon <perl@gloudon.com>
6643 2001-10-21 23:40  tom
6645         * stacks.c, t/op/stacks.t: Fix bug in handling of rollover to a new
6646         stack chunk and add a test to test this rollover in future.
6648         Courtesy of Jason Gloudon <perl@gloudon.com>.
6650 2001-10-21 19:14  dan
6652         * include/parrot/string.h: Changed string 'unused' field to the
6653         language field.
6655 2001-10-21 18:18  gregor
6657         * languages/jako/: Makefile, mops.jako:
6658           * Makefile: 'clean' target removes .list files, too. And, it does
6659         rm -f
6660             with wildcards rather than listing things explicitly.
6662           * mops.jako actually prints out the
6663         millions-of-operations-per-second
6664             (mops) value instead of just the operations-per-second value.
6666 2001-10-21 18:03  simon
6668         * classes/intclass.o:
6669         *smack*! WRONG!
6671 2001-10-21 17:47  simon
6673         * MANIFEST, Makefile.in, make_vtable_ops.pl, pmc.c, vtable_h.pl,
6674         Parrot/Vtable.pm, classes/genclass.pl, classes/intclass.c,
6675         classes/intclass.o, include/parrot/parrot.h, include/parrot/pmc.h,
6676         lib/Parrot/Vtable.pm:
6677         Initial work on PMCs. Explanation to follow
6679 2001-10-21 15:20  gregor
6681         * examples/assembly/queens.pasm:
6682           * Modernize the calling conventions in queens.pasm. It was using
6683         swap,
6684             which now must be rotate. Also, changed to use return values on
6685         the
6686             stack instead of in I0.
6688 2001-10-19 18:14  gregor
6690         * core.ops, stacks.c, include/parrot/stacks.h,
6691         languages/jako/jakoc:
6692         Per Dan's request, replacing 'swap' op by 'rotate'.
6694           * core.ops: Replaced 'swap()' by 'rotate(i|ic)'.
6696           * stacks.c and stacks.h: Removed swap-related functions from my
6697             prior commit, replacing them with stack_depth(), stack_entry()
6698             and rotate_entries().
6700             NOTE: The stack_depth() and rotate_entries() routines could
6701             be made more efficient through the caching of the sum of chunk
6702             'used' members from lower chunks in a field in the upper
6703             chunks. Also, if the interpreter's stack_base was changed to
6704             hold the pointer to the *top* chunk (since we usually come
6705             at the stack from the top down) instead of the *bottom*
6706             chunk. The code here at least works, and we can decide about
6707             bigger changes separately.
6709             For now, rotate only handles rotates in one direction and
6710             of magnituded one. A fully general rotate would do handle
6711             rotates in both directions and of arbitrary amounts. Again,
6712             this implementation is sufficient for current applications,
6713             and a feature-complete version can be developed if this turns
6714             out to be otherwise the right type of implementation.
6716             This change includes a new exception for ERROR_STACK_SHALLOW,
6717             meaning "not-empty-yet-not-deep-enough-for-what-you-asked".
6719           * jakoc: Changed the calling convention to use rotate instead
6720             of swap (of course). Also changed the convention for return
6721             value passing to use the stack as well.
6723 2001-10-19 13:36  gregor
6725         * MANIFEST, core.ops, disassemble.pl, stacks.c,
6726         examples/assembly/queens.pasm, include/parrot/stacks.h,
6727         languages/jako/.cvsignore, languages/jako/Makefile,
6728         languages/jako/bench.jako, languages/jako/euclid.jako,
6729         languages/jako/fact.jako, languages/jako/jakoc,
6730         languages/jako/mandelbrot.jako, languages/jako/mops.jako,
6731         languages/jako/primes.jako, languages/jako/queens.jako,
6732         languages/jako/sub.jako:
6733           * New stack functions push_entry(), pop_entry() and swap_entry().
6734             The first two exist for the support of the last one. These
6735             functions don't care what is in the stack entries. These exist
6736             to support the new 'swap' op (see next bullet).
6738           * New op 'swap' for swapping the top two elements on the stack.
6739             This is necessary for passing arguments to functions, since
6740             the return address will be on top of any arguments that have
6741             been pushed on the stack. This way, you can use a (swap, pop)
6742             pair to retrieve each argument (for subroutine linkage).
6744           * Disassembler now prints numbers in decimal by default, with
6745             a new '-x' flag to turn on hexadecimal display. Since other
6746             members of the Parrot Tool Set use decimal by default, this
6747             makes it easier to compare output from the various tools.
6749           * Jako compiler has more explanatory comments and the following
6750             new features:
6752               * Lexically scoped variables.
6754               * Subroutines that take arguments and return values:
6756                   sub int foo(int bar) {
6757                     if (bar == 1) {
6758                       return 42;
6759                     } else {
6760                       return 13;
6761                     }
6762                   }
6763               * ... if (...) and ... unless (...) statement modifiers
6764                 can be used on next, last and redo.
6766               * Bitwise and (&, &=) and or (|, |=) ops.
6768               * Type names are just 'int', 'num', 'str', and 'poly' now.
6769                 The old long names 'integer', 'number', 'string', and
6770                 'polytype' are no longer valid.
6772               * Integer variable assignments can now use 0b (binary),
6773                 0 (octal) and 0x (hexadecimal) radix prefixes on literals.
6775           * New Jako and Parrot assembly examples queens.{jako,pasm} for
6776             solving the eight-queens problem. The assembly example is a
6777             hand-modified version of the assembly code produced by the
6778             Jako compiler from queens.jako. A few unnecessary ops have
6779             been removed, lots of unnecessary labels have been removed,
6780             and all the Jako source code comments have been removed.
6782           * Makefile and .cvsignore in languages/jako modified so that
6783             the assembler produces listings when assembling the programs,
6784             yet the *.list files are ignored by CVS.
6786           * Made the default target in languages/jako/Makefile 'all'.
6788           * Modified some of the Jako examples to use some of the new
6789             features of Jako, such as subroutines and lexical variable
6790             scoping.
6792 2001-10-19 02:43  gregor
6794         * runops_cores.c, include/parrot/runops_cores.h:
6795         Bug fix (gcc doesn't complain, but MIPSpro does):
6797           * Added missing extern to runops_cores array declaration in
6798             include/parrot/runops_cores.h
6800           * Also added 'const' there and in runops_cores.c
6802 2001-10-18 15:18  gregor
6804         * .cvsignore, include/parrot/oplib/.cvsignore:
6805           * Ignore the vtable-related generated files.
6807 2001-10-18 15:14  gregor
6809         * core.ops:
6810           * left and right shifts now allow the 2nd argument to be a
6811         constant.
6813 2001-10-18 14:55  simon
6815         * make_vtable_ops.pl:
6816         This is C, not Perl. How on earth did that even compile?
6818 2001-10-18 14:54  simon
6820         * make_vtable_ops.pl:
6821         More vtable ops.
6823 2001-10-18 12:33  simon
6825         * Makefile.in, make_vtable_ops.pl, vtable.tbl:
6826         Initial stab at vtable opcode creation stuff.
6828 2001-10-18 02:15  gregor
6830         * MANIFEST, Makefile.in, interpreter.c, runops_cores.c, trace.c,
6831         include/parrot/interpreter.h, include/parrot/runops_cores.h,
6832         include/parrot/trace.h: Preparation for autogenerated runops cores:
6834           * Split tracing and runops core stuff out of interpreter.c into
6835             trace.c and runops_cores.c
6837           * Similar split of stuff from include/parrot/interpreter.h
6839           * Manifest and Makefile.in updates to make things still compile.
6841 2001-10-18 01:21  gregor
6843         * Makefile.in, ops2c.pl, ops2pm.pl, pbc2c.pl: Bug fixes:
6845           * Makefile.in: examples/assembly/mops.c depends on pbc2c.pl
6847           * Makefile.in: Parrot/OpLib/core.pm depends on ops2pm.pl
6849           * ops2c.pl: Added second arg to mkdir (perl 5.005_02 complains)
6851           * ops2pm.pl: Added second arg to mkdir (perl 5.005_02 complains)
6853           * pbc2c.pl: Removed explicit include of <math.h>, replacing it
6854         with
6855             copy of $ops->preamble.
6857 2001-10-17 22:32  bdwheele
6859         * interpreter.c: Moved op dump code into trace_op_dump, per Dan's
6860         request.
6862 2001-10-17 22:08  gregor
6864         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm:
6865           * Now handles label-and-comment-only lines.
6867 2001-10-17 22:04  bdwheele
6869         * interpreter.c: added more comprehensive trace output
6871 2001-10-17 16:50  tom
6873         * Makefile.in: Removed the explicit rule for building mops.o from
6874         mops.c so that the implicit rule for compiling C files is used
6875         instead. This means that the chosen C flags are used, including any
6876         optimisation options.
6878 2001-10-17 15:24  tom
6880         * core.ops, Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm: Enhanced the
6881         op explosion logic to be able to handle exploding this:
6883           sub(i, i|ic, i|ic)
6885         into these:
6887           sub(i, i, i)
6888           sub(i, i, ic)
6889           sub(i, ic, i)
6891         without also generating this unwanted version:
6893           sub(i, ic, ic)
6895         The enhanced version rejects any expansion where there is more than
6896         one expanded argument and all the expanded arguments are constants.
6898 2001-10-17 14:20  simon
6900         * Makefile.in, ops2c.pl, ops2pm.pl, examples/assembly/Makefile:
6901         Build fixes to use correct Perl version and ensure that things are
6902         running in the right directory.
6904         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
6906 2001-10-17 13:16  simon
6908         * Makefile.in:
6909         core.pm is more critical than that.
6911 2001-10-17 13:05  simon
6913         * core.ops, Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm:
6914         "Explode" ops into multiple versions for different parameters.
6916         Courtesy of: Tom Hughes <tom@compton.nu>
6918 2001-10-17 12:54  simon
6920         * Makefile.in:
6921         Fix dependencies and cleaning.
6923 2001-10-17 12:45  simon
6925         * Configure.pl, Makefile.in:
6926         Fixes to make Parrot compile without the temporary build hack
6928         Courtesy of: Jason Gloudon <perl@gloudon.com>
6930 2001-10-16 20:43  gregor
6932         * Makefile.in:
6933           * Fixed dependencies for building Parrot/OpLib/core.pm
6935 2001-10-16 19:35  bdwheele
6937         * core.ops, t/op/string.t: Changed set s,sc to use string_copy &
6938         added test, thanks to Alex Gough
6940 2001-10-16 16:49  bdwheele
6942         * core.ops: added opcode variants for constants and 3 arg concat
6944 2001-10-16 15:12  bdwheele
6946         * core.ops: added "set Sx,Sy" as a string copy to match the other
6947         register-to-register copies available
6949 2001-10-16 13:09  gregor
6951         * core.ops:
6952           * Added #include <sys/time.h> in the preamble for gettimeofday().
6954 2001-10-16 13:09  gregor
6956         * Makefile.in:
6957           * Removed cd t; make, which no longer applies
6959 2001-10-16 03:18  bdwheele
6961         * core.ops: fix save & restore operations to push correct type onto
6962         stack. [good eye to Jason Gloudon for noticing this]
6964 2001-10-16 01:38  bdwheele
6966         * core.ops, register.c, examples/assembly/fact.pasm,
6967         include/parrot/register.h: send in the clones:  clone routines for
6968         parrot + example program
6970 2001-10-15 22:37  gregor
6972         * MANIFEST, Makefile.in, examples/assembly/.cvsignore,
6973         examples/assembly/Makefile, examples/assembly/bsr.pasm,
6974         examples/assembly/call.pasm, examples/assembly/euclid.pasm,
6975         examples/assembly/jump.pasm, examples/assembly/local_label.pasm,
6976         examples/assembly/mops.pasm, examples/assembly/stack.pasm,
6977         examples/assembly/substr.pasm, examples/assembly/trace.pasm,
6978         t/.cvsignore, t/Makefile, t/call.pasm, t/euclid.pasm, t/jump.pasm,
6979         t/local_label.pasm, t/test.pasm, t/test2.pasm, t/test3.pasm,
6980         t/test4.pasm, t/test5.pasm, t/trace.pasm:
6981           * Moved examples from t/*.pasm to examples/assembly/*.pasm, with
6982         some
6983             renames so the names match what they demonstrate.
6985 2001-10-15 22:18  gregor
6987         * core.ops, t/test.pasm:
6988           * time_n uses gettimeofday() to get sub-second times.
6990           * t/test.pasm uses time_n directly rather than doing int stuff
6991         and
6992             converting to num later.
6994 2001-10-15 12:28  gregor
6996         * t/: test.pasm, test2.pasm, trace.pasm:
6997           * t/test.pasm prints using string constants instead of string
6998         regs.
7000           * t/test2.pasm assembles (using implicit op modes)
7002           * t/trace.pasm updated for new behavior of trace_ic, which does
7003         not
7004             require an 'end' after 'trace'.
7006 2001-10-15 00:47  gregor
7008         * core.ops, interpreter.c, test_main.c,
7009         include/parrot/interpreter.h, t/test.pasm:   * New interpreter flag
7010         PARROT_PROFILE_FLAG
7012           * New runops cores to handle profiling
7014           * Support for -p flag in test_prog to enable profiling
7016           * New profile_ic op to control profiling at run-time
7018 2001-10-14 21:54  gregor
7020         * core.ops, Parrot/OpsFile.pm, docs/.cvsignore, docs/Makefile,
7021         lib/Parrot/OpsFile.pm: Integrated op documentation.
7023           * core.ops now contains POD documentation of ops, interspersed
7024         with the
7025             ops themselves
7027           * Ops are organized into POD =head2 sections
7029           * Parrot/OpsFile.pm now treats the preamble of the ops file as
7030         anything
7031             up to the first POD directive OR op definition.
7033           * docs/Makefile now generates core_ops.pod from core.ops vi
7034         perldoc -u.
7036 2001-10-14 11:58  simon
7038         * Makefile.in:
7039         Unbreak Digital Un^W^WTru64
7041 2001-10-14 11:00  simon
7043         * Configure.pl:
7044         Remove weird typo.
7046 2001-10-14 10:56  tom
7048         * Configure.pl: Stop Configure trying to make op_info.c and op.h as
7049         op_info.c no longer exists and op.h is no longer a generated file.
7051 2001-10-14 10:54  tom
7053         * Makefile.in: Added vtable.h to the list of things removed by the
7054         clean target.
7056 2001-10-14 01:43  gregor
7058         * .cvsignore, MANIFEST, Makefile.in, basic_opcodes.ops,
7059         build_interp_starter.pl, core.ops, disassemble.pl, interpreter.c,
7060         make_op_header.pl, memory.c, opcheck.pl, opcode_table, ops2c.pl,
7061         ops2pm.pl, packfile.c, pbc2c.pl, process_opfunc.pl,
7062         Parrot/Assembler.pm, Parrot/Op.pm, Parrot/OpsFile.pm,
7063         Parrot/OpLib/.cvsignore, lib/Parrot/Assembler.pm, lib/Parrot/Op.pm,
7064         lib/Parrot/OpsFile.pm, lib/Parrot/OpLib/.cvsignore,
7065         include/parrot/.cvsignore, include/parrot/interp_guts.h,
7066         include/parrot/interpreter.h, include/parrot/op.h,
7067         include/parrot/oplib/.cvsignore, t/.cvsignore, t/Makefile,
7068         t/euclid.pasm, t/test.pasm, t/op/integer.t, t/op/number.t,
7069         t/op/stacks.t, t/op/string.t, t/op/trans.t:
7070         Moby Patch:
7072           * basic_opcodes.ops and opcode_table replaced by core.ops
7074           * process_opfunc.pl replaced by Parrot/OpsFile.pm, Parrot/Op.pm,
7075             and ops2c.pl. These convert *.ops to *_ops.c and
7076             include/parrot/oplib/*_ops.h
7078           * New ops2pm.pl converts *.ops to Parrot/OpLib/*.pm
7080           * disassemble.pl modified to use
7082           * interpreter.c modified to use structures in core_ops.c instead
7083             of the old op_info and op_func stuff. We're not yet to the
7084             point of handling multiple oplibs at a time, but we are getting
7085             there...
7087             Fingerprinting stuff disabled for now. We used to go off
7088             opcode_table. We need to rethink this. I have some ideas to
7089             make it unnecessary, but it remains to be seen whether others
7090             will like the direction they take us.
7092             Termination condition for while(){} loop in runops is now
7093             (pc) instead of (*pc). Any op can cause a HALT by returning
7094             a NULL pointer. Ops end, bounds and trace all do this. So, now
7095             the 'end' op body is actually executed, although all it does
7096             is HALT.
7098           * Makefile.in modified to perform a test build using pbc2c.pl,
7099             which is the bytecode --> C compiler I've posted to the
7100             list before.
7102           * Op full names are now autogenerated. Op root names must not
7103             contain underscores, so some op renamings have happened.
7104             Such as clear_i becoming cleari.
7106 2001-10-13 11:49  simon
7108         * Configure.pl, MANIFEST:
7109         Make parrot actually build again.
7111 2001-10-12 21:34  dan
7113         * docs/parrot_assembly.pod: Added docs for the new save/restore/bsr
7114         opcodes
7116 2001-10-12 20:56  dan
7118         * MANIFEST, Makefile.in, basic_opcodes.ops, interpreter.c,
7119         opcode_table, process_opfunc.pl, stacks.c, include/parrot/stacks.h,
7120         t/test3.pasm, t/test4.pasm, t/test5.pasm: Changes to support
7121         generic stack now in. We also have subroutines, of a simple sort!
7123 2001-10-12 19:15  tom
7125         * t/op/string.t: Improved string comparison tests try all string
7126         combinations with each of the comparison ops.
7128 2001-10-12 19:09  dan
7130         * interpreter.c: Properly sets up generic stack now
7132 2001-10-12 19:09  dan
7134         * include/parrot/interpreter.h: Fixed stack chunk struct type in
7135         interpreter structure
7137 2001-10-12 18:59  dan
7139         * stacks.c, include/parrot/parrot.h, include/parrot/stacks.h: More
7140         changes to get the generic stack working
7142 2001-10-12 18:59  dan
7144         * Configure.pl, MANIFEST, config_h.in, testparrotsizes_c.in,
7145         hints/vms.pl: Made the changes to figure out mask bits for various
7146         register and stack chunks
7148 2001-10-11 22:09  dan
7150         * docs/parrot_assembly.pod: Tossed the parameter for return
7152 2001-10-11 19:28  tom
7154         * strnative.c: Assignment, not comparison.  (Plus formatted for
7155         coding standards)
7157         Courtesy of Bryan C. Warnock
7159 2001-10-10 19:21  tom
7161         * basic_opcodes.ops, opcode_table, string.c, strnative.c,
7162         strutf16.c, strutf32.c, strutf8.c, docs/strings.pod,
7163         include/parrot/string.h, t/op/string.t: Added support for string
7164         comparisons and extended the comparison ops to include comparison
7165         of strings.
7167 2001-10-10 17:58  dan
7169         * MANIFEST: Shouldn't have added vtable.h to the manifest...
7171 2001-10-10 17:54  dan
7173         * MANIFEST, stacks.c, vtable_h.pl, Parrot/Vtable.pm,
7174         lib/Parrot/Vtable.pm: Now spits out the #defines for the various
7175         vtable type entries properly
7177 2001-10-10 15:37  dan
7179         * Parrot/Vtable.pm, lib/Parrot/Vtable.pm: Re-enabled change to
7180         parse new vtable.tbl file now that I've actually checked *in* the
7181         new format vtable.tbl file...
7183 2001-10-10 15:32  dan
7185         * vtable.tbl: New Column to indicate the type of the vtabel entry
7186         so we can know how many slots it takes
7188 2001-10-10 05:26  thgibbs
7190         * Parrot/Vtable.pm, lib/Parrot/Vtable.pm, vtable_h.pl: Patch to
7191         allow parrot to compile.  PACKAGE is not defined, therefore, I
7192         added a struct before it to have it not complain until we define
7193         PACKAGE.  Also, there was an extra shift in Vtable.pm and a missing
7194         semicolon at the end of the struct declaration.
7196 2001-10-10 05:09  thgibbs
7198         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm: This patch makes
7199         string constants of the form U"string" become unicode encoded
7200         parrot strings and the form N"string" become native encoded parrot
7201         strings.
7203         Courtesy of: Tom Hughes <tom@compton.nu>
7205 2001-10-10 04:55  dan
7207         * vtable_h.pl, Parrot/Vtable.pm, lib/Parrot/Vtable.pm: Start of
7208         support for generating the vtable function table offset macros
7210 2001-10-10 01:05  simon
7212         * t/op/integer.t:
7213         The test for cmod_i was using the 'mod Ix, Ix, Ix' form which
7214         compiles into the mod op, not the cmod_i op, hence wasn't testing
7215         what it thought it was.
7217         Courtesy of: Alex Gough <alexander.gough@st-hughs.oxford.ac.uk>
7219 2001-10-09 03:45  thgibbs
7221         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm: Patch to allow
7222         assembler to generate unicode strings.
7224         Courtesy of: Tom Hughes <tom@compton.nu>
7226 2001-10-08 19:30  brentdax
7228         * Configure.pl, test_c.in, hints/vms.pl: Cleaner VMS support, more
7229         info for Parrot::Config to remember, more flexible test.c stuff
7231 2001-10-08 15:04  gregor
7233         * basic_opcodes.ops:
7234           * Removed trash from early mod_i experiments (pardon our dust)
7236 2001-10-08 14:56  gregor
7238         * basic_opcodes.ops:
7239           * Fixed a couple of typos.
7241 2001-10-08 14:45  gregor
7243         * basic_opcodes.ops, opcode_table, t/op/integer.t, t/op/number.t:
7244         Arithmetic enhancements:
7246           * Renamed existing mod_i as cmod_i and added "corrected" mod_i:
7248             NOTE: This "uncorrected mod" algorithm uses the C language's
7249         built-in
7250             mod operator (x % y), which is
7252                 ... the remainder when x is divided by y, and thus is zero
7253         when y
7254                 divides x exactly.
7255                 ...
7256                 The direction of truncation for / and teh sign of the
7257         result for %
7258                 are machine-dependent for negative operands, as is the
7259         action taken
7260                 on overflow or underflow.
7261                                                                      --
7262         [1], page 41
7264             Also:
7266                 ... if the second operand is 0, the result is undefined.
7267         Otherwise, it
7268                 is always true that (a/b)*b + a%b is equal to z. I both
7269         operands are
7270                 non-negative, then teh remainder is non-negative and
7271         smaller than the
7272                 divisor; if not, it is guaranteed only that the absolute
7273         value of the
7274                 remainder is smaller than the absolute value of the
7275         divisor.
7276                                                                      --
7277         [1], page 205
7279             This op is provided for those who need it (such as
7280         speed-sensitive
7281             applications with heavy use of mod, but using it only with
7282         positive
7283             arguments), but a more mathematically useful numeric mod based
7284         on
7285             floor(x/y) and defined with y == 0 is provided by the mod_i op.
7287               [1] Brian W. Kernighan and Dennis M. Ritchie, *The C
7288         Programming
7289                   Language*, Second Edition. Prentice Hall, 1988.
7291           * Added "corrected" mod_i:
7293             NOTE: This "corrected mod" algorithm is based on the C code on
7294         page 70
7295             of [1]. Assuming correct behavior of C's built-in mod operator
7296         (%) with
7297             positive arguments, this algorithm implements a mathematically
7298         convenient
7299             version of mod, defined thus:
7301               x mod y = x - y * floor(x / y)
7303             For more information on this definition of mod, see section 3.4
7304         of [2],
7305             pages 81-85.
7307             References:
7309               [1] Donald E. Knuth, *MMIXware: A RISC Computer for the Third
7310                   Millennium* Springer, 1999.
7312               [2] Ronald L. Graham, Donald E. Knuth and Oren Patashnik,
7313         *Concrete
7314                   Mathematics*, Second Edition. Addison-Wesley, 1994.
7316           * Added mod_n, using the same formula as above, but with FLOATVAL
7317             arguments.
7319           * Added cmod_n, using the C math library's fmod() function:
7321             NOTE: This "uncorrected mod" algorithm uses the built-in C math
7322         library's
7323             fmod() function, which computes
7325                 ... the remainder of dividing x by y. The return value is x
7326         - n * y,
7327                 where n is the quotient of x / y, rounded towards zero to
7328         an
7329                 integer.
7330                                                 -- fmod() manpage on RedHat
7331         Linux 7.0
7333             In addition, fmod() returns
7335                 the remainder, unless y is zero, when the function fails
7336         and errno
7337                 is set.
7339             According to page 251 of [1], the result when y is zero is
7340         implementation-
7341             defined.
7343             This op is provided for those who need it, but a more
7344         mathematically
7345             useful numeric mod based on floor(x/y) instead of truncate(x/y)
7346         and
7347             defined with y == 0 is provided by the mod_n op.
7349               [1] Brian W. Kernighan and Dennis M. Ritchie, *The C
7350         Programming
7351                   Language*, Second Edition. Prentice Hall, 1988.
7353           * Added and modified tests as appropriate for the above.
7355 2001-10-08 08:49  thgibbs
7357         * include/parrot/exceptions.h, include/parrot/parrot.h,
7358         include/parrot/string.h, include/parrot/strutf16.h,
7359         include/parrot/strutf32.h, include/parrot/strutf8.h,
7360         include/parrot/transcode.h, include/parrot/unicode.h, MANIFEST,
7361         Makefile.in, global_setup.c, string.c, strnative.c, transcode.c,
7362         strutf16.c, strutf32.c, strutf8.c: Added code to handle unicode
7363         strings for utf8, utf16, and utf32.
7365         Courtesy of: Tom Hughes <tom@compton.nu>
7367 2001-10-08 08:10  thgibbs
7369         * memory.c: Fixed uninitialized variables.
7371         Courtesy of: Bryan C. Warnock <bwarnock@raba.com>
7373 2001-10-08 01:21  gregor
7375         * packfile.c:   * Casting a return value
7377           * Potential uninitialized variable fix
7379         Courtesy of Bryan C. Warnock <bwarnock@raba.com>
7381 2001-10-08 01:15  gregor
7383         * packfile.c, test_main.c: One of Bryan's languishing patches (with
7384         a few tweaks of my own):
7386           * Line wrapping
7388           * Printf format fixes
7390         Courtesy of: Bryan C. Warnock <bwarnock@raba.com>
7392 2001-10-07 22:39  thgibbs
7394         * build_interp_starter.pl: No longer adds (void*) casts to
7395         interp_guts.c function table as they are not necessary in ANSI C.
7397 2001-10-07 16:27  gregor
7399         * basic_opcodes.ops, interpreter.c, opcode_table,
7400         process_opfunc.pl, test_main.c, include/parrot/interpreter.h,
7401         t/trace.pasm:
7402           * Two new ops, trace_ic and bounds_ic that twiddle bits in
7403             interpreter->flags and set interpreter->resume_addr.
7405           * Two new runops core variants, so now we cover the relevant
7406             flag space over {trace, notrace} x {boundscheck, noboundscheck}
7408           * Runops core selection that converts the flags into an index
7409         into
7410             a core table (runops_cores) to get the core function pointer.
7412           * A new trace_op variant that doesn't do bounds checking (used by
7413             the non-bounds-checking-but-tracing runops core).
7415           * PC is passed into the cores so that they can be used when
7416             resuming (they used to assume starting at the beginning of the
7417             code, which would thwart resumption).
7419           * runops() itself is changed to have a while() loop in it so that
7420             any time we drop out of the core, we'll resume if we have an
7421             interpreter->resume_addr set (after reselecting the core,
7422         though).
7424           * process_opfunc.pl has a new "macro": RESUME(), that sets up
7425             interpreter->resume_addr. This is used by the new ops. The new
7426             ops still return the new PC as the next op (which MUST be an
7427             'end' op to force the core loop to terminate -- *pc being false
7428             is the only termination condition we can count on for all
7429         cores).
7431           * New interpreter flag: PARROT_BOUNDS_FLAG, used to control
7432             bounds checking core selection.
7434           * test_prog now has a '-b' flag in addition to the '-t' flag.
7435         Now,
7436             bounds checking is off by default (I saw a performance boost:
7437             6.3 Mop/s with -b, 7.0 Mop/s without).
7439           * A new sample/test program: t/trace.pasm that twiddles the trace
7440             flag while it is running.
7442 2001-10-07 15:41  gregor
7444         * .cvsignore, Makefile.in, build_interp_starter.pl, interpreter.c,
7445         include/parrot/.cvsignore, include/parrot/interpreter.h:
7446         Now that 0.0.2 is released, I can clear out the backlog of approved
7447         but uncommitted patches. Here's one Dan approved on 2001-09-21
7448         (Simplified DO_OP):
7450           * test_prog and pdump are linked with only the files the need,
7451         not
7452             al the files.
7454           * build_interp_starter.pl writes out op_info.[hc], too. These
7455         files
7456             contain op name, arg count and arg type information. This will
7457         be
7458             useful for multiple things in the future, including better
7459         trace
7460             output and the crystalizing loader.
7462           * The DO_OP macro is now simpler and doesn't require explicit
7463             temporaries.
7465           * interpreter.c is modified to use the new op info in tracing
7466         output.
7468           * The interpreter just points its opcode_funcs and opcode_info
7469             members at the default tables rather than allocating memory on
7470             the fly.
7472 2001-10-07 03:58  thgibbs
7474         * include/parrot/.cvsignore, vtable_h.pl: Minor updates fixing a
7475         comment and adding vtable.h to .cvsignore as it is produced by
7476         vtable_h.in
7478 2001-10-06 20:58  thgibbs
7480         * vtable.tbl: Added * to REGEX type.
7482         Courtesy of Bryan C. Warnock <bwarnock@raba.com>
7484 2001-10-06 13:41  simon
7486         * MANIFEST, Makefile.in, vtable.tbl, vtable_h.pl, Parrot/Vtable.pm,
7487         include/parrot/parrot.h, lib/Parrot/Vtable.pm:
7488         Framework for vtable functions.
7490 2001-10-06 06:52  thgibbs
7492         * make_op_header.pl: Removed confusing and unused typedef.
7494 2001-10-06 06:31  thgibbs
7496         * Parrot/Opcode.pm, lib/Parrot/Opcode.pm: Removed variables that
7497         are no longer used.
7499 2001-10-06 06:26  thgibbs
7501         * disassemble.pl: Changed intval to op in disassembler.
7503 2001-10-06 06:21  thgibbs
7505         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm: Fixed typo with
7506         Assembler, local labels, and integer constants.
7508 2001-10-06 03:11  ask
7510         * Makefile.in: make `make test` actually run the tests on
7511         darwin/macosx
7513 2001-10-06 02:04  thgibbs
7515         * Parrot/Assembler.pm, Parrot/Opcode.pm, Parrot/PackFile.pm,
7516         Parrot/String.pm, Parrot/PackFile/ConstTable.pm,
7517         Parrot/PackFile/Constant.pm, include/parrot/packfile.h,
7518         include/parrot/register.h, lib/Parrot/Assembler.pm,
7519         lib/Parrot/Opcode.pm, lib/Parrot/PackFile.pm, lib/Parrot/String.pm,
7520         lib/Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/Constant.pm,
7521         t/op/integer.t: No, it didn't mess anything up.  I just forgot to
7522         type make. :)
7524 2001-10-06 02:02  thgibbs
7526         * Parrot/Assembler.pm, Parrot/Opcode.pm, Parrot/PackFile.pm,
7527         Parrot/String.pm, Parrot/PackFile/ConstTable.pm,
7528         Parrot/PackFile/Constant.pm, include/parrot/packfile.h,
7529         include/parrot/register.h, lib/Parrot/Assembler.pm,
7530         lib/Parrot/Opcode.pm, lib/Parrot/PackFile.pm, lib/Parrot/String.pm,
7531         lib/Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/Constant.pm,
7532         t/op/integer.t: oops...this messed something up.  I must have
7533         missed something in the patch...I have reverted.
7535 2001-10-06 01:57  thgibbs
7537         * Parrot/Assembler.pm, Parrot/Opcode.pm, Parrot/PackFile.pm,
7538         Parrot/String.pm, Parrot/PackFile/ConstTable.pm,
7539         Parrot/PackFile/Constant.pm, include/parrot/packfile.h,
7540         include/parrot/register.h, lib/Parrot/Assembler.pm,
7541         lib/Parrot/Opcode.pm, lib/Parrot/PackFile.pm, lib/Parrot/String.pm,
7542         lib/Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/Constant.pm,
7543         t/op/integer.t, Types_pm.in, basic_opcodes.ops, config_h.in,
7544         memory.c, packfile.c, process_opfunc.pl, strnative.c, test_main.c:
7545         This patch ensures that all bytecode is of type opcode_t except for
7546         the constant table constants.  That means that almost all of the
7547         INTVALs in the code were replaced with opcode_t and the i pack type
7548         was replaced with the op pack type in calls to pack_arg and such.
7549         Also, since it has been declared that ALL integer constants are to
7550         be 32 bits, some test cases were changed to ensure that an integer
7551         constant was no bigger than 2 ** 31.
7553         process_opfunc.pl was also cleaned up to no longer look at either
7554         opcode_table or interp_guts.h but gather all of its information
7555         from Opcode.pm.
7557         The Assembler.pm module was changed to do late binding of arguments
7558         so that 0 could be treated like 0.0 without having to be so
7559         declared.  Also, only strings now use the [sc:N] intermediate form
7560         as it was unnecessary for integer and float types.
7562 2001-10-05 21:59  gregor
7564         * MANIFEST, languages/jako/Makefile:
7565         Fixed things due to the movement of little_languages/* to
7566         languages/jako.
7568 2001-10-05 18:31  gregor
7570         * MANIFEST:
7571         Updated MANIFEST to reflect recent additions for Jako.
7573 2001-10-05 17:54  gregor
7575         * languages/jako/: Makefile, bench.jako, euclid.jako, fact.jako,
7576         fib.jako, hello.jako, jakoc, leibniz.jako, mandelbrot.jako,
7577         mops.jako, primes.jako, sub.jako:
7578           * Compiler:
7580               * User-defined subroutines.
7581               * Generates assembly code with the Jako code in comments.
7582               * "end;" no longer required at the end of programs.
7583               * Better handling of const-reg and reg-const.
7584               * Optimizes const-const operations to compile-time
7585         evaluations.
7586               * Constants in addition to variables.
7587               * Arithmetic fixes.
7588               * Allow leading minus signs in integer and number constants
7589         (ahem).
7590               * goto's.
7592           * New sample programs:
7594               * leibniz.jako (based on Greg McCarroll's leibniz.pasm
7595         example)
7596               * mandelbrot.jako (based on Leon Brocard's translation of
7597         Glenn Rhodes' C code)
7598               * mops.jako (based on t/test.pasm)
7599               * primes.jako (based on Leon Brocard's primes.pasm example)
7600               * sub.jako (demonstrates a simple user-defined subroutine)
7602 2001-10-05 12:54  gregor
7604         * Parrot/Opcode.pm, lib/Parrot/Opcode.pm:
7605           * Removed mysterious extra copy of code after POD.
7607 2001-10-05 12:46  gregor
7609         * basic_opcodes.ops, t/op/string.t:
7610           * Enabled the previously SKIPped test of printing string regs
7611         after
7612             clear_s
7614           * Made print_s do nothing if the STRING pointer in the register
7615         file
7616             is NULL.
7618 2001-10-04 21:19  dan
7620         * Configure.pl: VMS tweaks
7622 2001-10-04 21:17  dan
7624         * hints/vms.pl: Hints file for VMS
7626 2001-10-04 00:58  bdwheele
7628         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm: fixed but in
7629         Assembler which stopped equates from working.
7631 2001-10-03 21:50  gregor
7633         * Makefile.in, docs/.cvsignore, docs/Makefile, docs/parrotbyte.pod:
7635           * More documentation updates for the packfile stuff.
7637 2001-10-03 21:37  gregor
7639         * docs/parrotbyte.pod:
7640           * Pointed the reader at Parrot::PackFile.
7642 2001-10-03 21:34  gregor
7644         * Parrot/PackFile.pm, lib/Parrot/PackFile.pm:
7645           * Updated documentation to match current implementation.
7647 2001-10-03 18:30  gregor
7649         * .cvsignore, disassemble.pl, Parrot/Assembler.pm,
7650         lib/Parrot/Assembler.pm, t/call.pasm, t/euclid.pasm,
7651         t/local_label.pasm, t/test.pasm, t/test2.pasm, t/test3.pasm,
7652         t/op/basic.t:
7653           * Added new syntax to the assembler to allow square-bracket
7654             arithmetic expressions involving (global) labels, the current
7655             instructions base address ('@'), numeric constants (not
7656         equates)
7657             and basic arithmetic operators (+, -, *, / -- although + and -
7658             are likely to be the only ones used in practice).
7660           * Fixed a bug in Parrot/Assemble.pl that caused macro expansion
7661         to
7662             fail (argument passing wasn't working).
7664           * Enabled t/op/basic.t's last test, which is actually a copy of
7665         the
7666             code from t/call.pasm. Now all tests there are enabled and
7667         working.
7669           * Added new example/test program t/call.pasm to demonstrate
7670         working
7671             macros and poor-man's subroutine calls
7673           * Added header comments to t/*.pasm
7675 2001-10-03 18:00  simon
7677         * ChangeLog:
7678         Needed, since it's in the MANIFEST.
7680 2001-10-03 17:56  simon
7682         * t/op/: string.t, time.t:
7683         Small fixes to help Win32 on its way.
7685 2001-10-03 17:41  simon
7687         * MANIFEST, README:
7688         Oops. Tiny bugs.
7690 2001-10-03 17:39  simon
7692         * MANIFEST, NEWS, README:
7693         README, NEWS and MANIFEST? Could it be time for Parrot 0.0.2? I
7694         think so!
7696 2001-10-03 17:21  simon
7698         * basic_opcodes.ops, interpreter.c, packfile.c:
7699         Evil printf bandaid (which allows Sparc64 to pass tests)
7701         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
7703 2001-10-03 16:58  simon
7705         * string.c, t/op/string.t:
7706         chop fixes for n < 0 and tests
7708         Courtesy of: Alex Gough <alex@rcon.org>
7710 2001-10-03 15:51  thgibbs
7712         * interpreter.c: Changed an occurrence of INTVAL to opcode_t
7714         Courtesy of: Bryan C. Warnock <bwarnock@raba.com>
7716 2001-10-02 17:48  dan
7718         * include/parrot/stacks.h: Fix typo in function name
7720 2001-10-02 17:35  dan
7722         * include/parrot/stacks.h: changed to support new stack stuff
7723         coming after 0.02
7725 2001-10-02 15:01  simon
7727         * Configure.pl, Types_pm.in, basic_opcodes.ops, config_h.in,
7728         interpreter.c, make_op_header.pl, memory.c, packfile.c,
7729         process_opfunc.pl, register.c, string.c, strnative.c,
7730         Parrot/Opcode.pm, Parrot/PackFile.pm, Parrot/String.pm,
7731         lib/Parrot/Opcode.pm, lib/Parrot/PackFile.pm, lib/Parrot/String.pm,
7732         Parrot/PackFile/ConstTable.pm, Parrot/PackFile/Constant.pm,
7733         docs/overview.pod, docs/strings.pod, include/parrot/interpreter.h,
7734         include/parrot/memory.h, include/parrot/packfile.h,
7735         include/parrot/parrot.h, include/parrot/register.h,
7736         include/parrot/stacks.h, include/parrot/string.h,
7737         lib/Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/Constant.pm:
7739         The Great Renaming.
7741 2001-10-02 12:49  gregor
7743         * process_opfunc.pl:
7744           * Fixed a tyop:  s/string/integer/ for INT_CONST expansion
7746 2001-10-02 12:40  simon
7748         * basic_opcodes.ops, process_opfunc.pl, register.c,
7749         include/parrot/register.h:
7750         Move preprocessing of register accessors to process_opfunc.pl
7752         Courtesy of: Jason Gloudon <perl@gloudon.com>
7754 2001-10-02 01:20  ask
7756         * README: add a few lines about lists.
7758 2001-10-01 23:00  brentdax
7760         * Configure.pl, Makefile.in, hints/mswin32.pl: Make 'make clean'
7761         work on Win32 (courtesy of Mattia Barbon <mbarbon@dsi.unive.it>)
7763 2001-10-01 22:50  brentdax
7765         * Configure.pl, test_c.in: More changes for 64-bit compatibility
7767 2001-10-01 21:51  simon
7769         * process_opfunc.pl:
7770         Michael Fischer's patch broke conditionals.
7772 2001-10-01 15:38  simon
7774         * process_opfunc.pl:
7775         Small hack to keep process_opfunc.pl from generating extra return()
7776         statements.
7778         Courtesy of: Michael Fischer <michael@visv.net>
7780 2001-10-01 15:32  simon
7782         * Parrot/Opcode.pm, lib/Parrot/Opcode.pm:
7783         Documentation fix.
7785         Courtesy of: Josh Wilmes <josh@hitchhiker.org>
7787 2001-10-01 01:49  simon
7789         * packfile.c:
7790         Simon is an idiot. Don't trust him with your code.
7792         Courtesy of: Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
7794 2001-10-01 00:59  simon
7796         * Parrot/String.pm, lib/Parrot/String.pm:
7797         Was in manifest, but not in CVS.
7799 2001-09-30 21:25  simon
7801         * MANIFEST, Types_pm.in, assemble.pl, basic_opcodes.ops,
7802         disassemble.pl, packfile.c, pdump.c, process_opfunc.pl,
7803         Parrot/Assembler.pm, Parrot/PackFile.pm,
7804         Parrot/PackFile/ConstTable.pm, Parrot/PackFile/Constant.pm,
7805         Parrot/PackFile/FixupTable.pm, lib/Parrot/Assembler.pm,
7806         lib/Parrot/PackFile.pm, lib/Parrot/PackFile/ConstTable.pm,
7807         lib/Parrot/PackFile/Constant.pm, lib/Parrot/PackFile/FixupTable.pm,
7808         include/parrot/packfile.h, include/parrot/string.h:
7809         Move NVs to the constant table.    * Changes to Types_pm.in to make
7810         life easier for some of the      packing/etc. I'm doing elsewhere.
7811         Also, we now pack 'n' as      'i'.
7813           * Moved the guts of assemble.pl to Parrot/Assembler.pm so that
7814             eventually we can use all these tools together inside scripts
7815             rather than call out to the shell to run the programs.
7817           * As I was tracking down problems, I converted the internal
7818             documentation of the assembler to POD from comments.
7820           * Changed the numeric regexp in the assembler to detect leading
7821             signs and trailing exponents.
7823           * Updated basic_opcodes.ops to fetch numeric constants from the
7824             constant table.
7826           * Enhanced the disassembler in a number of ways to make my life
7827             easier while tracking down bugs (try it out). It now puts in
7828             labels for ops that are the destinations of flow control ops.
7830           * packfile.c now has a TRACE_PACKFILE switch that can be set
7831             to get it to print info as it processes. I needed this while
7832             debugging, but I can remove it or change it before committing
7833             if its a problem.
7835           * Updated pdump.c because it was missing a call to init_world().
7837           * Updated process_opfunc.pl to deal with numeric constants
7838             being stored in the constant table instead of inline.
7840           * Added multiple type support to Parrot/PackFile/Constant.pm
7842           * Added Parrot/String.pm, to be used for constants.
7844           * Added packfile.[hc] functions for allocating new constants
7845             of various types.
7847           * Made string_copy visible to the world in parrot/string.h.
7849         Wow.
7851         Courtesy of: Gregor N. Purdy <gregor@focusresearch.com>
7853 2001-09-29 15:56  gregor
7855         * languages/jako/Makefile:
7856         Removed assumption that '.' is on the path.
7858 2001-09-29 15:55  gregor
7860         * languages/jako/Makefile:
7861         Removed references to leibnitz test program.
7863 2001-09-29 15:21  thgibbs
7865         * t/op/trans.t, basic_opcodes.ops: Added NV casts to transcendental
7866         math ops args to work on Solaris.
7868 2001-09-27 15:15  thgibbs
7870         * assemble.pl: Added case insensitive matches to hex and binary
7871         characters
7873         Courtesy of: Johnathan Scott Duff <duff@cbi.tamucc.edu>
7875 2001-09-27 04:46  thgibbs
7877         * assemble.pl: This patch makes integer constants of the form
7878         0b[01]+ work with perl 5.005.  The oct function in versions of perl
7879         before 5.6 did not handle the 0b numeric prefix; therefore, it was
7880         returning 0.  To fix this, I added a from_binary function that
7881         would take a binary string and return its decimal representation.
7882         Now, instead of blindly calilng oct, it makes a distinction between
7883         0/0x numbers and 0b numbers.
7885 2001-09-26 19:30  thgibbs
7887         * assemble.pl: Error now returns a non-zero status
7889         Courtesy of: Andrew Kuchling <akuchlin@mems-exchange.org>
7891 2001-09-26 19:13  gregor
7893         * MANIFEST, Makefile.in, basic_opcodes.ops, bytecode.c,
7894         interpreter.c, packfile.c, pdump.c, test_main.c,
7895         include/parrot/bytecode.h, include/parrot/interpreter.h,
7896         include/parrot/packfile.h, include/parrot/parrot.h, t/op/integer.t,
7897         t/op/stacks.t:
7898           * bytecode.[hc] removed. packfile.[hc] are the interface to the
7899             packfile/bytecode file from C. May be renamed in the future.
7901           * packfile.[hc] changed to use 'struct PackFile *', etc. instead
7902             of 'PackFile *', just like the interpreter, etc.
7904           * Constants are accessed via the interpreter's 'code' member
7905             (struct PackFile * code). Macros PCONST(i) and PNCONST are
7906             provided to access constants by index and the number of
7907             constants, respectively (assumes a variable 'interpreter' of
7908             the appropriate type is in scope).
7910           * Byte Code is accessed via the interpreter's 'code' member.
7912           * Changed PackFile_Constant to point to a STRING instead of
7913         having
7914             members for the string_make() arguments. Also has a 'type' IV
7915             in preparation for allowing multiple types of constants in
7916             const_table.
7918           * Removed hardcoded example program from test_main.c. We have
7919             plenty of test programs elsewhere.
7921           * test_prog now uses a PackFile to deal with the program before
7922             sending it on to the interpreter.
7924           * Added missing 'end' ops to some tests in t/op/integer.t and
7925             t/op/stacks.t.
7927 2001-09-26 18:38  thgibbs
7929         * assemble.pl: Separated code into functions and added comments.
7931 2001-09-26 18:29  simon
7933         * config_h.in:
7934         Fix 64-bit chunk-base issue.
7936 2001-09-26 06:55  thgibbs
7938         * t/op/bitwise.t: Added end to bitwise tests.
7940 2001-09-26 00:54  dan
7942         * docs/parrot_assembly.pod: Added in the base for threading, I/O,
7943         and interpreter creation. Skeleton only, but it's something to peer
7944         at.
7946 2001-09-25 21:44  thgibbs
7948         * t/op/trans.t: Removed loops in transcendtal op test.
7950 2001-09-25 10:12  simon
7952         * MANIFEST, t/op/basic.t, t/op/bitwise.t, t/op/integer.t,
7953         t/op/string.t, t/op/time.t:
7954         More tests
7956         Courtesy of: Alex Gough <alex@rcon.org>
7958 2001-09-24 19:08  gregor
7960         * t/op/number.t:
7961           * Enabled the clear_n test.
7963 2001-09-24 18:56  gregor
7965         * Parrot/.cvsignore:
7966           * Ignore the generated Types.pm file.
7968 2001-09-24 18:52  gregor
7970         * languages/jako/Makefile, t/op/number.t:
7971           * No need to skip the inc and dec numeric tests anymore. I fixed
7972         the
7973             assembler earlier today.
7975 2001-09-24 18:21  simon
7977         * MANIFEST, t/op/stacks.t:
7978         Oops.
7980 2001-09-24 18:19  simon
7982         * build_interp_starter.pl, interpreter.c, string.c, Parrot/Test.pm,
7983         include/parrot/exceptions.h, include/parrot/interpreter.h,
7984         lib/Parrot/Test.pm, t/op/string.t:
7985         1) captured error output, so can test errors, this might be bad,
7986         not sure.  2) basic tests for register stack frames, including some
7987         errors 3) I think we can stop skipping one of the string tests 4) I
7988         added some more substr tests, but substr was broken, so 5) changed
7989         substr to work with out of range values, or 6) throw an error if
7990         they're far too silly
7992         Courtesy of: Alex Gough <alex@rcon.org>
7994 2001-09-24 17:27  gregor
7996         * basic_opcodes.ops, opcode_table, t/op/number.t:
7997           * Op set_n was missing. Added it and a test for it. We now have
7998         the
7999             same int and num ops, except mod is int-only.
8001 2001-09-24 17:01  gregor
8003         * assemble.pl:
8004           * Fixed a typo: s/Line/line/
8006 2001-09-24 16:02  gregor
8008         * basic_opcodes.ops:
8009           * Fixed dec_n_nc opcode, which had += where it should have had
8010         -=.
8012 2001-09-24 15:34  gregor
8014         * assemble.pl:
8015           * Fixed handling of constants starting with '0' that should not
8016         be
8017             sent through oct(). For example 'set N2 0.1' was being
8018         interpreted
8019             as 'set N2 0' (naughty).
8021             As reported by Leon Brocard <acme@astray.com> in the comments
8022         of
8023             his mandelbrot.pasm example.
8025 2001-09-24 02:21  bdwheele
8027         * assemble.pl: fixed dumb code when --include was not specified.
8029 2001-09-24 02:17  simon
8031         * assemble.pl:
8032         Shit-sweeping.
8034 2001-09-24 01:56  bdwheele
8036         * assemble.pl: * Added --include=dir option to assembler to provide
8037         a path to look for included files.  * Error message of a macro is
8038         defined inside of a macro
8040 2001-09-23 21:29  bdwheele
8042         * assemble.pl: Added __FILE__ equate, fixed __LINE__ equate.
8044 2001-09-23 15:50  simon
8046         * Configure.pl:
8047         Fixed typo. Parrot might work again on non-8.3 filesystems. :)
8049 2001-09-23 02:03  ask
8051         * Configure.pl, test_c.in: fix missing newline at the end of test.c
8052         Courtesy of: acme@astray.com (Leon Brocard)
8054         rename 'test' executable used in Configure process to test_siz.
8056 2001-09-23 01:03  simon
8058         * process_opfunc.pl:
8059         iPaq fix. No, really.
8061 2001-09-23 00:47  simon
8063         * MANIFEST:
8064         Missed several, in fact.
8066 2001-09-23 00:46  simon
8068         * MANIFEST:
8069         Missed one.
8071 2001-09-22 21:13  simon
8073         * assemble.pl:
8074         Assembler register numbering rigour.
8076         Courtesy of: Leon Brocard <acme@astray.com>
8078 2001-09-22 18:20  simon
8080         * Makefile.in, lib/Test/More.pm, lib/Test/Simple.pm,
8081         lib/Test/Utils.pm:
8082         I'm sick of having to install Test::More everywhere. Temporary
8083         measure until we remove this silly dependency.
8085         Also a typo in Makefile.in which suggests some things were only
8086         happening correctly by sheer chance. :)
8088 2001-09-22 18:06  simon
8090         * README:
8091         test.pasm is dead, long like make test.
8093 2001-09-22 17:47  simon
8095         * t/op/number.t:
8096         De-fang overzealous floating point test.
8098 2001-09-22 17:39  simon
8100         * process_opfunc.pl:
8101         Remove hard-coded NV size assumption. Tru64 is nearly there!
8103 2001-09-22 17:18  simon
8105         * assemble.pl, disassemble.pl:
8106         More portability fixups.
8108 2001-09-22 16:44  simon
8110         * assemble.pl, Parrot/PackFile/Constant.pm,
8111         lib/Parrot/PackFile/Constant.pm:
8112         And I *think* this fixes Tru64.
8114 2001-09-22 16:37  simon
8116         * Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/ConstTable.pm:
8118         Oops.
8120 2001-09-22 16:36  simon
8122         * Parrot/PackFile.pm, Parrot/PackFile/ConstTable.pm,
8123         Parrot/PackFile/Constant.pm, lib/Parrot/PackFile.pm,
8124         lib/Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/Constant.pm:
8126         More removal of hard-coded pack formats.
8128 2001-09-22 15:21  simon
8130         * assemble.pl:
8132         Grrr. Why isn't this working?
8134 2001-09-22 15:18  simon
8136         * Parrot/PackFile.pm, Parrot/PackFile/ConstTable.pm,
8137         lib/Parrot/PackFile.pm, lib/Parrot/PackFile/ConstTable.pm:
8139         Make assemble use the PackFile modules; also fixed some bugs in
8140         them.
8142 2001-09-22 14:38  simon
8144         * Configure.pl, MANIFEST, Types_pm.in, assemble.pl, disassemble.pl:
8146         Abstract the argument and opcode packing types and functions out
8147         into a separate module. This *should* help us maintain consistency
8148         when we change the various types.
8150 2001-09-22 00:46  brentdax
8152         * Configure.pl: Delete test.o (or its equivalent) after Configure's
8153         test program finishes.
8155 2001-09-21 21:24  brentdax
8157         * Parrot/Test.pm, lib/Parrot/Test.pm: Fix error with \ as path
8158         separator (courtesy of Mattia Barbon <mbarbon@dsi.unive.it>)
8160 2001-09-21 21:09  gregor
8162         * Parrot/PackFile/ConstTable.pm, Parrot/PackFile/Constant.pm,
8163         lib/Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/Constant.pm:
8165           * Fixed pad calculation (similar to recent bug fix on C library)
8167 2001-09-21 20:23  simon
8169         * disassemble.pl:
8170         Pack types and sizes have gone askew.
8172 2001-09-21 20:18  brentdax
8174         * Configure.pl: Fix typo in setting stuff from the C test program
8176 2001-09-21 10:25  simon
8178         * basic_opcodes.ops, process_opfunc.pl:
8179         Document patches.
8181         Courtesy of: Leon Brocard <acme@astray.com>
8183 2001-09-21 06:06  ask
8185         * Config_pm.in, assemble.pl: fix 5.005_03.
8187 2001-09-21 06:03  ask
8189         * Configure.pl: make the ivsize detection work for us normal people
8190         without . in our PATH.  :-)
8192 2001-09-21 05:56  brentdax
8194         * test_main.c: Change _read to read for portability to Tru64
8195         (Damien Neil <neild@misago.org> and likely many others)
8197 2001-09-21 05:46  ask
8199         * Makefile.in: "update" target to update from cvs.
8201 2001-09-21 05:44  brentdax
8203         * Configure.pl, test_c.in: Fix issues with ivsize and nvsize
8205 2001-09-21 02:43  brentdax
8207         * Configure.pl: Fix a typo that forced the -g flag on
8209 2001-09-20 22:41  dan
8211         * packfile.c: Had some no-value returns. Naughty
8213 2001-09-20 22:40  dan
8215         * t/test.pasm: Added labels to output
8217 2001-09-20 15:39  simon
8219         * Parrot/Opcode.pm, Parrot/Test.pm, lib/Parrot/Opcode.pm,
8220         lib/Parrot/Test.pm:
8221         This patch does two only somewhat related things.
8223         Parrot/Opcode.pm:  Change the hard-wired assumption that sizeof(nv)
8224         = 2*sizeof(iv) to a PConfig-type computed value.
8226         Parrot/Test.pm:  Change it to run with the perl that was used to
8227         generate this version of Parrot.  This is useful if, for example,
8228         you want to use bleadperl to build and test parrot (e.g. to try out
8229         various 64-bit options) but you still have a 5.6.x (or 5.005_xx)
8230         installed as the default 'perl' on your system.  Since perl-5.7.x
8231         is installed 'version-only', a plain 'perl' is quite likely to pick
8232         up the older perl in such cases. Such an older perl might well not
8233         understand pack('q') used in the assembler.
8235         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
8237 2001-09-20 15:14  gregor
8239         * packfile.c:
8240           * Fixed a typo in pad calculation that throwing off unpack and
8241         pack.
8243 2001-09-20 15:03  thgibbs
8245         * t/op/integer.t: Removed overflow tests from integer.t.  set_i_ic
8246         tests now cover all registers.
8248         Courtesy of: Damien Neil neild@misago.org
8250 2001-09-20 14:48  thgibbs
8252         * process_opfunc.pl: Changed process_opfunc.pl to work on 64 bit
8253         machines.
8255 2001-09-20 14:35  simon
8257         * Configure.pl, assemble.pl:
8258         Pack IVs correctly.
8260         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
8262 2001-09-20 14:06  gregor
8264         * languages/jako/jakoc:
8265           * Fixed a tyop in the string interpolation regex.
8267         Courtesy of Michael L Maraist <maraist@UDel.Edu>
8269 2001-09-20 13:56  gregor
8271         * languages/jako/jakoc:
8272           * Updated jakoc to work with the single-destination comp ops.
8274 2001-09-20 05:08  bdwheele
8276         * assemble.pl: macro expansion.  Here's the test macro I was using:
8278         # this uses I32,I31 as temporaries.  # macro must be preceeded by a
8279         label.  testi       macro   num,got,want    print   "Test #"
8280         print   num     print   "..."   set     I32,want        set
8281         I31,got         eq      I32,I31,$ok     print   "NG\n"  branch
8282         $end $ok:       print   "OK\n" $end:    endm
8284         It is invoked as:
8286         Test1:  testi   1,I3,I2
8288 2001-09-20 03:52  dan
8290         * stacks.c, include/parrot/stacks.h: Preliminary files for the
8291         generic stack support
8293 2001-09-20 02:49  bdwheele
8295         * assemble.pl: Added include processing to assemble.pl  the syntax
8296         is: include 'file.to.include'
8298 2001-09-19 23:57  thgibbs
8300         * t/op/integer.t, t/op/number.t, assemble.pl, opcode_table: Fixed
8301         opcode_table listing of if_i_ic and if_n_ic.  Dan had changed the
8302         function to only use 2 args, but the opcode_table still had three
8303         listed.  Fixed integer.t and number.t to use the new comparison
8304         operators.  Improved assemble.pl ability to grok operators by
8305         constructing a function set and comparing operator types.
8307 2001-09-19 22:42  dan
8309         * assemble.pl: Binmodes the output filehandles now. (No more
8310         bytecode munching...)
8312 2001-09-19 22:32  dan
8314         * Configure.pl, basic_opcodes.ops, opcode_table, process_opfunc.pl,
8315         t/euclid.pasm, t/test.pasm, t/test2.pasm: Changed opcodes so
8316         conditional branches take a single argument, and fall through
8317         otherwise.
8319 2001-09-19 21:19  thgibbs
8321         * memory.c: Added explanation of mem_allocate_aligned give by Dan
8322         Sugalski
8324         Courtesy of: Josh Wilmes <josh@hitchhiker.org>
8326 2001-09-19 21:04  thgibbs
8328         * include/parrot/interpreter.h, Configure.pl,
8329         build_interp_starter.pl, bytecode.c, config_h.in, interpreter.c,
8330         process_opfunc.pl: Changed opcode_t from a union to a configurable
8331         type.
8333 2001-09-19 20:54  thgibbs
8335         * assemble.pl: Missed a couple of changes for 64 bit portability.
8337 2001-09-19 20:37  gregor
8339         * packfile.c, include/parrot/packfile.h:
8340           * Added "methods" for setting and getting all the various
8341         attributes,
8342             probably sufficient for an assembler to use the library.
8344 2001-09-19 20:04  thgibbs
8346         * assemble.pl: Modifications to run on 64 bit platforms.  To run on
8347         a 64 bit platform manually change the  setting for 'i' from 'l' to
8348         'q'.  This should be automatically done by a Configure setting in
8349         the near future.
8351 2001-09-19 19:10  thgibbs
8353         * config_h.in: changed c++ comment to c comment.
8355         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
8357 2001-09-19 17:48  gregor
8359         * .cvsignore, MANIFEST, Makefile.in, packfile.c, pdump.c,
8360         include/parrot/packfile.h:
8361           * C code for dealing with PackFiles as if they were objects.
8362         Mostly
8363             read-only interface for now, but it would not be hard to make
8364         it
8365             read-write. [packfile.c, include/parrot/packfile.h]
8367           * PackFile Dumping program that falls short of disassembling, but
8368             tests the above code and provides a hex listing of the byte
8369         code
8370             contents of the PackFile. [pdump.c]
8372           * New Makefile target 'pdump' for the above program, and related
8373             Makefile.in changes.
8375           * Updated MANIFEST to reflect the added files
8377           * Update .cvsignore to ignore pdump.
8379 2001-09-19 14:55  thgibbs
8381         * MANIFEST: Added number.t and trans.t to MANIFEST
8383 2001-09-19 05:40  thgibbs
8385         * process_opfunc.pl: Now taking & of opcode_t instead of i member
8386         of union opcode_t.  I hope this will be more portable for set_n_nc.
8388 2001-09-19 05:39  thgibbs
8390         * t/op/integer.t: Added end to test 1.
8392 2001-09-19 00:09  thgibbs
8394         * t/op/number.t: Added end to each test
8396 2001-09-19 00:00  simon
8398         * t/op/number.t:
8399         Number tests! Wooo!
8401         Courtesy of: Damien Neil <neild@misago.org>
8403 2001-09-18 23:52  thgibbs
8405         * interpreter.c: Added casts to appropriate types to make -Wall not
8406         complain on certain printf formats
8408 2001-09-18 23:31  thgibbs
8410         * t/op/integer.t: Added end to each test.
8412 2001-09-18 22:54  thgibbs
8414         * t/op/trans.t: Added trans.t for transcendental math function
8415         tests.
8417 2001-09-18 22:28  simon
8419         * MANIFEST:
8420         MANIFEST updates. (And notice how I carefully snuck in the
8421         t/op/integer.t there...)
8423         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
8425 2001-09-18 22:26  simon
8427         * t/: integer.t, op/integer.t:
8428         Except it doesn't go there. Duh.
8430 2001-09-18 22:25  simon
8432         * t/integer.t:
8433         Tests for integer ops.
8435         Courtesy of: Damien Neil <neild@misago.org>
8437 2001-09-18 22:03  thgibbs
8439         * include/parrot/bytecode.h, include/parrot/interpreter.h,
8440         build_interp_starter.pl, bytecode.c, config_h.in, interpreter.c,
8441         make_op_header.pl, process_opfunc.pl, test_main.c: Changed IV to
8442         opcode_t union for operators.  This required a few perl script
8443         changes to output the correct type.  There were also some changes
8444         to allow -pedantic in gcc
8446 2001-09-18 21:07  gregor
8448         * disassemble.pl, Parrot/PackFile.pm,
8449         Parrot/PackFile/ConstTable.pm, Parrot/PackFile/Constant.pm,
8450         lib/Parrot/PackFile.pm, lib/Parrot/PackFile/ConstTable.pm,
8451         lib/Parrot/PackFile/Constant.pm:
8452         Converted the disassembler to use the Parrot::PackFile Perl classes
8453         to do its job.
8455 2001-09-18 19:18  brentdax
8457         * Makefile.in: Fix missing functions for real this time.  (I
8458         swear!)
8460 2001-09-18 18:49  brentdax
8462         * Configure.pl: Remove unnecessary -I.. (courtesy of Andy Dougherty
8463         <doughera@lafayette.edu>}
8465 2001-09-18 18:47  brentdax
8467         * Makefile.in: Fix bugs with missing math, etc. functions
8469 2001-09-18 14:42  thgibbs
8471         * strnative.c: Sorry Simon...forgot bustart was a void* not a
8472         char*.
8474 2001-09-18 13:59  thgibbs
8476         * strnative.c: Removed unnecessary IV cast in concat.
8478 2001-09-18 13:58  thgibbs
8480         * t/op/string.t: Removed unnecessary IV cast in concat.  Added end
8481         to concat test in string.t
8483 2001-09-18 12:07  gregor
8485         * languages/jako/jakoc:
8486           * var num ... no longer requires assignment
8487           * automatic casting between int and num
8488           * Fixed an error message
8490         Courtesy of: Simon Cozens <simon@cvs.perl.org>
8492 2001-09-18 11:57  simon
8494         * TODO:
8495         Gonna have to start thinking of more things to do, soon.
8497 2001-09-18 10:42  simon
8499         * opcode_table:
8500         Introduce a little more tidiness into the opcode table.
8502 2001-09-18 03:06  gregor
8504         * basic_opcodes.ops, opcode_table, t/euclid.pasm:
8505         Resurrected register-const ops per Dan's request.
8507 2001-09-18 02:20  gregor
8509         * .cvsignore, Configure.pl, MANIFEST, Makefile.in,
8510         build_interp_starter.pl, bytecode.h, events.h, exceptions.h,
8511         global_setup.h, interpreter.h, io.h, memory.h, parrot.h,
8512         process_opfunc.pl, register.h, stacks.h, string.h, strnative.h:
8513         Committed some files that were missed in the last *.h moving
8514         commit.
8516 2001-09-18 02:17  gregor
8518         * include/parrot/.cvsignore: Fixed a typo in .cvsignore.
8520 2001-09-18 02:16  gregor
8522         * include/parrot/: .cvsignore, bytecode.h, events.h, exceptions.h,
8523         global_setup.h, interpreter.h, io.h, memory.h, parrot.h,
8524         register.h, stacks.h, string.h, strnative.h: Added .cvsignore file
8525         missed in last commit for the move of *.h to include/parrot.
8527 2001-09-18 01:32  simon
8529         * t/Makefile:
8530         Trivial "clean" target to t/Makefile.
8532 2001-09-18 01:32  simon
8534         * assemble.pl, build_interp_starter.pl, disassemble.pl,
8535         Parrot/Opcode.pm, lib/Parrot/Opcode.pm:
8536         Change icky Digest::MD5 for nice simple unpack()
8538         Courtesy of: Jonathan Scott Duff <duff@cbi.tamucc.edu>
8540 2001-09-18 00:35  simon
8542         * basic_opcodes.ops, opcode_table, docs/parrot_assembly.pod,
8543         t/op/string.t:
8544         New concat op. Hey, if I'm going to talk about it in an article,
8545         better implement it...
8547 2001-09-17 22:54  gregor
8549         * MANIFEST, Parrot/PackFile.pm, Parrot/PackFile/ConstTable.pm,
8550         Parrot/PackFile/Constant.pm, Parrot/PackFile/FixupTable.pm,
8551         lib/Parrot/PackFile.pm, lib/Parrot/PackFile/ConstTable.pm,
8552         lib/Parrot/PackFile/Constant.pm, lib/Parrot/PackFile/FixupTable.pm:
8554         Functions for reading, writing and manipulating Parrot Pack Files.
8555         NOTE: This is a proposed term based on the fact that the file
8556         contains more than just byte code, and another language (Java)
8557         calls its binary files by a broader notion of what's in them (Class
8558         Files). Since Perl has packages, and since we use pack() to write
8559         them, we'll call them PackFiles (at least for now).
8561         That does, however, beg the question of file extension. Should we
8562         name the files "foo.pack" instead of "foo.pbc"?
8564 2001-09-17 20:23  thgibbs
8566         * interpreter.c, test_main.c: Uncuddled else statements for coding
8567         standard.
8569 2001-09-17 19:57  gregor
8571         * Parrot/Opcode.pm, lib/Parrot/Opcode.pm:
8572         Added a $revision variable, parsing of the CVS Id line in
8573         opcode_table and a &revision() subroutine.
8575 2001-09-17 19:53  gregor
8577         * opcode_table:
8578         Added a CVS Id tag to it.
8580 2001-09-17 18:58  thgibbs
8582         * interpreter.c: Cleared interpreter flags on creation.
8584 2001-09-17 18:38  gregor
8586         * build_interp_starter.pl, bytecode.c, bytecode.h, interpreter.c,
8587         interpreter.h, test_main.c:
8588           * Provides macros in interp_guts.h for setting up arrays with
8589             op names and op arg counts (done via build_interp_starter.pl).
8591             These are used in the op tracing
8593           * The functions in bytecode.[hc] pass around a pointer to the
8594         length
8595             of the bytecode so that later when we get to runops, we know
8596             how much bytecode we've got and we can detect out-of-bounds
8597             jumping. The documentation is updated, too.
8599           * runops in interpreter.c now looks at interpreter->flags to
8600             decide if the core of runops should be runops_trace_core or
8601             runops_notrace_core. These new functions contain just the
8602             while-loop portion of runops. A new function runops_generic
8603             does any other setup (such as checking the bytecode
8604             fingerprint) or wrapup (such as complaining if we ended up
8605             out-of-bounds). NOTE: I didn't know what we should do for
8606             functions in here that are not part of the api, so I gave
8607             them docs with 'TODO' marks mentioning they really aren't
8608             part of the api. Guidance appreciated.
8610           * test_main.c now checks for '-t' arg and sets the tracing flag
8611             on its interpreter instance as appropriate.
8613 2001-09-17 17:47  bdwheele
8615         * assemble.pl: added some default equates, and if they're sub
8616         references, they are computed each time it is referenced.
8618 2001-09-17 16:15  dan
8620         * interpreter.h:
8622         Added flags to the interpreter structure and defined a few.
8624 2001-09-17 15:51  simon
8626         * bytecode.h, string.h:
8627         VAR_SCOPE on globals.
8629 2001-09-17 15:20  simon
8631         * MANIFEST:
8632         Parrot/Opcode.pm, Parrot/Test.pm into MANIFEST.
8634 2001-09-17 15:05  gregor
8636         * t/jump.pasm, MANIFEST:
8637         Added a test program to demonstrate jump_i.
8639 2001-09-17 14:44  thgibbs
8641         * register.c: Fixed register pop not using correct offset (off by
8642         one).
8644         Courtesy of: Philip Kendall <pak@ast.cam.ac.uk>
8646 2001-09-17 13:56  thgibbs
8648         * interpreter.c, register.c: Added code to call Parrot_clear_s
8649         during initialization and Parrot_clear_s and Parrot_clear_p when a
8650         new stack frame is pushed.
8652 2001-09-17 13:51  gregor
8654         * languages/jako/: Makefile, bench.jako, euclid.jako, fact.jako,
8655         fib.jako, hello.jako: Added bench.pasm to "clean"
8657 2001-09-17 13:49  gregor
8659         * languages/jako/: jakoc, Makefile:
8660         Added CVS Id tag.
8662 2001-09-17 13:49  gregor
8664         * languages/jako/jakoc:
8665         Code streamlining.
8667         Courtesy of: Buggs <buggs-perl6@splashground.de>
8669 2001-09-17 13:29  gregor
8671         * MANIFEST, opcheck.pl:
8672         Added an opcode_table checker to make sure that all opcodes listed
8673         there conform to a simple set of naming rules (rules themselves, of
8674         course, are subject to change).
8676 2001-09-17 13:23  thgibbs
8678         * string.c: Modified string.c to correctly use the return value of
8679         realloc.
8681 2001-09-17 05:26  brentdax
8683         * Makefile.in: Making the Makefile smarter
8685 2001-09-16 23:06  brentdax
8687         * hints/mswin32.pl: Finishing the Configure hints
8689 2001-09-16 23:05  brentdax
8691         * Configure.pl, Makefile.in, parrot.h, test_main.c,
8692         Parrot/Opcode.pm, lib/Parrot/Opcode.pm: Win32 compatibility,
8693         Configure hints, 5.005 compatibility, MANIFEST checking
8695 2001-09-16 19:25  bdwheele
8697         * assemble.pl: parrot assembly equates
8699 2001-09-16 18:03  gregor
8701         * Makefile.in:
8702         Added 'test' target to run new test suite.
8704 2001-09-16 17:33  simon
8706         * basic_opcodes.ops:
8707         'not' was being !, rather than ~. Too many Perl programmers here, I
8708         suspect.
8710         Courtesy of: Tom Hughes <tom@compton.nu>
8712 2001-09-16 17:21  simon
8714         * Parrot/Test.pm, lib/Parrot/Test.pm, t/harness, t/op/basic.t,
8715         t/op/string.t:
8716         A *real* test suite!
8718         Courtesy of: "Mattia Barbon" <mbarbon@dsi.unive.it>
8720 2001-09-16 16:49  gregor
8722         * basic_opcodes.ops, opcode_table:
8723         At Dan's request, my new register-constant comparison ops have been
8724         removed.
8726 2001-09-16 16:40  gregor
8728         * languages/jako/jakoc:
8729         Fixed a copy-paste error in one of jakoc's error messages.
8731         Courtesy of: Buggs <buggs-perl6-list@splashground.de>
8733 2001-09-16 16:37  gregor
8735         * languages/jako/jakoc:
8736         Modified comparison implementation to use temporary registers in
8737         the case of register-constant and constant-register comparisons.
8738         This will allow the compiler to emit code that works when the
8739         constant-comparison ops are backed out of Parrot. If the ops ever
8740         make their way back in, then jakoc can emit more efficient code
8741         again.
8743 2001-09-16 16:19  bdwheele
8745         * assemble.pl, t/local_label.pasm: Added local labels ($whatever)
8746         ... though not subroutine based like the documentation wants, they
8747         are local to the last non-local label defined.
8749 2001-09-16 14:02  simon
8751         * MANIFEST:
8752         And remember, when you add stuff, keep the manifest up to date.
8754 2001-09-16 02:55  ask
8756         * Makefile.in: a "shared" target for building libparrot.so
8758 2001-09-16 02:45  thgibbs
8760         * bytecode.c, bytecode.h, events.h, exceptions.h, global_setup.c,
8761         global_setup.h, interpreter.c, interpreter.h, io.h,
8762         make_op_header.pl, memory.c, memory.h, parrot.c, parrot.h,
8763         process_opfunc.pl, register.c, register.h, stacks.h, string.c,
8764         string.h, strnative.c, strnative.h, test_main.c: Updated files to
8765         use the coding standard PDD.  Also changed Perl_Interp to
8766         Parrot_Interp.
8768 2001-09-16 02:21  ask
8770         * README: emphasise the bits about the license not being worked out
8771         yet.
8773 2001-09-15 22:21  simon
8775         * process_opfunc.pl:
8776         basic_opcodes.c should *scream* that it's autogenerated.
8778 2001-09-15 21:58  gregor
8780         * languages/jako/Makefile:
8781         Fixed Makefile to use 'jakoc' instead of 'jako_compiler.pl' to
8782         compile.
8784 2001-09-15 21:58  gregor
8786         * languages/jako/: jako_compiler.pl, jakoc:
8787         Renamed the Jako compiler to jakoc from jako_compiler.pl
8789 2001-09-15 21:51  gregor
8791         * languages/jako/: Makefile, bench.jako, euclid.jako,
8792         jako_compiler.pl:
8793         Added a new bench.jako example based on Leon Brocard's Bench.java.
8795         Jako Compiler:   * fix a bug in assignment handling   * add some
8796         more conditionals to while and if   * revert to using implicit
8797         opcodes in a few cases that were broken     before the assembler
8798         patch went in recently.
8800 2001-09-15 21:46  gregor
8802         * assemble.pl, basic_opcodes.ops, opcode_table:
8803         New ops for register-constant INTEGER comparisons:
8805           {eq,ne,lt,le,gt,ge}_ic_ic
8807         New ops for register-register and register-constant NUMERIC
8808         comparisons:
8810           eq_nc_ic
8811           {ne,lt,le,gt,ge}_{n,nc}_ic
8813         Assembler:
8815           Allow uppercase and underscores in labels.
8817           Tweaks to the op infer code to make it work with the examples
8818         I've been
8819           creating.
8821 2001-09-15 19:16  thgibbs
8823         * README: Updated README to include Configure.pl
8825 2001-09-15 17:05  simon
8827         * build_interp_starter.pl:
8828         Casting happiness
8830         Courtesy of: Jarkko Hietaniemi <jhi@cc.hut.fi>
8832 2001-09-15 16:45  simon
8834         * assemble.pl:
8835         And the same again: Parrot/Opcode.pm wasn't "..-aware".
8837 2001-09-15 16:40  simon
8839         * t/Makefile:
8840         The Parrot/Opcode.pm dependency means we need to do -I.. in the
8841         test Makefile
8843 2001-09-15 12:26  simon
8845         * memory.c:
8846         Fixed to match the coding standards.
8848         Courtesy of: Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
8850 2001-09-15 01:57  ask
8852         * Configure.pl, Makefile.in, Parrot/Opcode.pm,
8853         lib/Parrot/Opcode.pm: make the Makefile use the perl that was used
8854         to run Configure.pl
8856 2001-09-15 01:48  ask
8858         * Parrot/Opcode.pm, lib/Parrot/Opcode.pm: if we need perl 5.6, just
8859         say so. :-)
8861 2001-09-15 01:42  gregor
8863         * languages/jako/: euclid.jako, fact.jako, fib.jako,
8864         jako_compiler.pl:
8865         Compiler: Added variable interpolation in double-quoted strings.
8866         Examples: Made use of variable interpolation.
8868 2001-09-15 01:28  gregor
8870         * Parrot/.cvsignore:
8871         Ignore the Config.pm generated file.
8873 2001-09-15 01:22  gregor
8875         * languages/jako/: .cvsignore, Makefile, euclid.jako, fact.jako,
8876         fib.jako, hello.jako, jako_compiler.pl:
8877         gnp: Added some more sample Jako files and added many more
8878         operators to the compiler. Preparations for supporting all the Math
8879         and bitwise ops.
8881 2001-09-14 19:06  simon
8883         * assemble.pl, build_interp_starter.pl, disassemble.pl,
8884         make_op_header.pl, process_opfunc.pl, Parrot/Opcode.pm,
8885         lib/Parrot/Opcode.pm:
8886         Move common table reading stuff to a module.
8888         Courtesy of: Damien Neil <neild@misago.org>
8890 2001-09-14 17:42  simon
8892         * .cvsignore:
8893         More .cvsignore foo.
8895 2001-09-14 17:40  simon
8897         * assemble.pl, config_h.in:
8898         De-coredump
8900         Courtesy of: Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
8902 2001-09-14 17:38  simon
8904         * assemble.pl, t/Makefile:
8905         Make assemble.pl look in its parent directory if the data files it
8906         needs aren't in the current one. Plus a Makefile that lets "make
8907         foo.pbc" work in t/
8909         Courtesy of: Rocco Caputo <troc@netrus.net>
8911 2001-09-14 16:29  simon
8913         * make_op_header.pl:
8914         Wildly experimental patch to make Parrot compile on FreeBSD. (And
8915         probably segfault everywhere else.)
8917 2001-09-14 15:58  dan
8919         * languages/jako/: euclid.jako, jako_compiler.pl:
8921         Added in the first mini-language that targets Parrot.
8923         Courtesy of: "Gregor N. Purdy" <gregor@focusresearch.com>
8925 2001-09-14 15:20  dan
8927         * memory.c: Was misaligning returned memory. Fixed.
8929 2001-09-14 15:08  simon
8931         * Makefile.in, basic_opcodes.ops, bytecode.c, global_setup.c,
8932         interpreter.c, interpreter.h, memory.c, parrot.c, parrot.h,
8933         register.c, register.h, string.c, string.h, strnative.c,
8934         test_main.c:
8935         Fixes to include <parrot/foo.h>
8937         Courtesy of: Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
8939 2001-09-14 12:05  simon
8941         * strnative.c:
8942         Appease Tru64.
8944 2001-09-14 12:01  simon
8946         * memory.c:
8947         Appease Tru64.
8949 2001-09-14 11:54  simon
8951         * interpreter.c:
8952         Remove lvalue cast.
8954 2001-09-14 11:45  simon
8956         * Configure.pl:
8957         Be 5.005 friendly.
8959 2001-09-14 11:39  simon
8961         * Configure.pl:
8962         Tru64 cc doesn't like -Wall
8964 2001-09-14 10:57  simon
8966         * Config_pm.in, Configure.pl, MANIFEST, Makefile, Makefile.in,
8967         assemble.pl, build_interp_starter.pl, bytecode.c, bytecode.h,
8968         config.h.in, config_h.in, disassemble.pl, interpreter.c:
8969         Configure now generates Makefile
8971         Courtesy of: Brent Dax <brentdax@cpan.org>
8973 2001-09-14 10:08  simon
8975         * t/test3.pasm:
8976         Add "end"
8978         Courtesy of: Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
8980 2001-09-14 10:07  simon
8982         * assemble.pl:
8983                 * uses Getopt::Long for options.  -c is now --checksyntax.
8984         I wasn't
8985         sure how to keep compatible (patches welcome!)         * options
8986         include:                 --help                 --version
8987               --verbose                 --output=file
8988         --listing=file                 --checksyntax         * produces
8989         verbose listing of what the assembler saw :)  Only one nitpick with
8990         it:  unknown symbols are given as 0xffffffff, unfortunately, this
8991         includes symbols which may be defined later in the file (i.e.
8992         forward jumps).
8994         Courtesy of: Brian Wheeler <bdwheele@indiana.edu>
8996 2001-09-14 10:06  simon
8998         * strnative.c:
8999         substr growth fixup
9001         Courtesy of: Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
9003 2001-09-14 10:03  simon
9005         * bytecode.c, global_setup.c, interpreter.c, memory.c, memory.h,
9006         register.c, string.c, strnative.c, test_main.c:
9007         Coding standards conformance
9009         Courtesy of Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
9011 2001-09-14 09:46  simon
9013         * assemble.pl:
9014         Make the assembler grok transcendental maths again.  Courtesy of:
9015         Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
9017 2001-09-13 17:29  simon
9019         * assemble.pl:
9020         Better opcode guessing, from Brian Wheeler. (Again!)
9022 2001-09-13 17:20  dan
9024         * docs/parrot_assembly.pod:
9026         Took out duplicate entries for iton, ntoi, and tostring.
9028 2001-09-13 17:16  simon
9030         * assemble.pl, basic_opcodes.ops, opcode_table:
9031         From Brian Wheeler:
9033         This patch gives the assembler support of '\a','\n','\r','\t', and
9034         '\\' in string constants.
9036         In addition, it changes (for all registers) "I reg %li is ..." to
9037         just the value of the register.  Printing constants is also
9038         supported, but alas, you have to specify the type (print_sc,
9039         print_ic, print_nc).
9041 2001-09-13 15:38  simon
9043         * assemble.pl:
9044         Why don't I actually *test* this stuff before applying it, eh?
9046 2001-09-13 15:34  simon
9048         * TODO, t/euclid.pasm:
9049         From: "Gregor N. Purdy" <gregor@focusresearch.com> Subject: [patch
9050         (really)] Removed opcode qualifers t/euclid.pasm to exercise opcode
9051         inference
9053 2001-09-13 14:42  simon
9055         * assemble.pl:
9056         A new assembler, from Brian Wheeler.
9058 2001-09-13 09:44  simon
9060         * basic_opcodes.ops, interpreter.h, parrot.h, strnative.c,
9061         test_main.c:
9062         Two more from Tom Hughes:     Patch to fix C++ style comments
9063         Patch to remove use of structure constant/cast
9065 2001-09-13 09:39  simon
9067         * TODO, docs/strings.pod:
9068         Update string docs.
9070 2001-09-13 09:36  simon
9072         * Makefile, basic_opcodes.ops:
9073         Tom Hughes      Patch to link with the maths library Tom Hughes
9074          Patch to fix += on rvalue
9076 2001-09-13 08:57  simon
9078         * MANIFEST:
9079         I guess nobody's been using the nightly builds...
9081 2001-09-13 08:27  simon
9083         * assemble.pl, basic_opcodes.ops, opcode_table:
9084         Bitwise ops, from Brian Wheeler.
9086 2001-09-13 08:23  simon
9088         * .cvsignore, t/.cvsignore:
9089         .cvsignore's, from Gregor Purdy.
9091 2001-09-13 08:22  simon
9093         * Makefile:
9094         Euclidean test and test output rearranging from Gregor Purdy.
9096 2001-09-13 08:21  simon
9098         * assemble.pl, basic_opcodes.ops, disassemble.pl, opcode_table:
9099         Math ops from Gibbs Tanton.
9101 2001-09-13 08:14  simon
9103         * basic_opcodes.ops, opcode_table, string.c, string.h, strnative.c,
9104         t/test2.pasm:
9105         String substr op; also rearranged "encoding" to be a vtable
9106         pointer, not an array index. Haven't changed docs to reflect this,
9107         oops.
9109         Simon
9111 2001-09-12 19:48  dan
9113         * t/euclid.pasm: Implementation of Euclid's Algorithm, courtesy of
9114         Gregor Purdy
9116 2001-09-12 19:39  dan
9118         * basic_opcodes.ops, opcode_table: From Gregor Purdy. Adds mod_i.
9120 2001-09-12 19:23  dan
9122         * interpreter.h, parrot.h: Quick placeholder entry for string
9123         function tables
9125 2001-09-12 18:58  dan
9127         * memory.c: Added in a cast to make gcc happy.
9129 2001-09-12 16:44  dan
9131         * docs/parrot_assembly.pod:
9133         PDD describing parrot's assembly language and the opcodes in it
9135 2001-09-12 14:20  dan
9137         * memory.c:
9138         Fixed alignment issues with allocation
9140 2001-09-12 10:54  simon
9142         * Makefile, assemble.pl, bytecode.c, disassemble.pl,
9143         make_op_header.pl, opcode_table, process_opfunc.pl:
9144         Brian Wheeler's big patch:
9146         * Changes the opcode_table file to provide additional information
9147         about the operands.  Case shouldn't be a problem since that data
9148         never becomes a C symbol [this is pretty much as before]
9150         * Padding errors solved:  assemble.pl and bytecode.c were padding
9151         the constants incorrectly.  It should have been 4-(size % 4), not
9152         just (size % 4).  It is now fixed in both places.
9154         * assembler has less special cases, and should be easier to hang
9155         error checking on
9157         * disassembler dumps constant table and the format is a bit
9158         prettier, including register names, etc.
9160 2001-09-11 23:21  dan
9162         * build_interp_starter.pl, interpreter.c:
9164         Abstracted the runops function core into a macro for easy
9165         replacement later.
9167 2001-09-11 10:43  simon
9169         * Configure.pl, MANIFEST, Makefile, config.h, config.h.in:
9170         Configure system from Brent Dax <brentdax@cpan.org>
9172 2001-09-11 09:38  simon
9174         * assemble.pl, test.pbc:
9175         From: Bryan C. Warnock <bwarnock@raba.com> Subject: Patch:
9176         assembler deferred output
9178         Also got rid of the bytecode, since that's probably way out of
9179         date.
9181 2001-09-11 09:26  simon
9183         * basic_opcodes.ops, opcode_table, t/test2.pasm:
9184         From: Bryan C. Warnock <bwarnock@raba.com> Subject: length_s_i
9185         patch
9187 2001-09-10 23:20  simon
9189         * MANIFEST:
9190         And that move needs a MANIFEST change. So many things to remember!
9192 2001-09-10 23:18  simon
9194         * t/: test.pasm, test2.pasm, test3.pasm:
9195         Move tests to t/. (Oh, CVS doesn't work the way I think it does.)
9197 2001-09-10 23:18  simon
9199         * test.pasm, test2.pasm, test3.pasm:
9200         Move tests to t/
9202 2001-09-10 23:04  dan
9204         * test3.pasm:
9206         Register push/pop test
9208 2001-09-10 22:47  simon
9210         * basic_opcodes.ops, bytecode.c, parrot.h, test_main.c:
9211         Fix up format warnings, from Sam Tregar <sam@tregar.com>.
9212         (Modified to avoid conflict with Dan's changes.)
9214 2001-09-10 22:45  dan
9216         * disassemble.pl:
9218         Happier about blanks in opcode_table
9220 2001-09-10 22:40  dan
9222         * interpreter.c, register.c:
9224         Yanked out debugging code, since these work OK. The bug I want is
9225         elsewhere.
9227 2001-09-10 22:30  simon
9229         * MANIFEST:
9230         Uhm. We want make_op_header.pl. We really, really do.
9232 2001-09-10 22:26  simon
9234         * Makefile, TODO, assemble.pl, basic_opcodes.ops,
9235         build_interp_starter.pl, disassemble.pl, make_op_header.pl,
9236         opcode_table, process_opfunc.pl:
9237         Automatic opcode numbering, from Leon Brocard <acme@astray.com>.
9238         This means we can add lots more opcodes without fiddling about with
9239         the numbers. Hooray!
9241         Don't forget that "end" needs to be op zero, else the interpreter
9242         falls off the end of the code. This is Bad, and I wonder if there's
9243         a way around it.
9245 2001-09-10 19:49  simon
9247         * MANIFEST, make_op_table_build.pl:
9248         Hey! This doesn't do anything...
9250 2001-09-10 19:46  simon
9252         * Makefile:
9253         "clean" target cleanup from Bryan C. Warnock <bwarnock@raba.com>.
9255 2001-09-10 18:31  simon
9257         * MANIFEST:
9258         You know what this means...
9260 2001-09-10 18:30  simon
9262         * assemble.pl:
9263         "use strict" patch from Leon Brocard <acme@astray.com>. Hey, why
9264         wait for a release...? :)
9266 2001-09-10 18:13  simon
9268         * interpreter.c:
9269         Bad Dan! No cookie!
9271 2001-09-10 17:56  simon
9273         * README:
9274         A *real* README file, which doesn't claim it isn't for public
9275         consumption.
9277 2001-09-10 17:02  simon
9279         * TODO:
9280         More things to do.
9282 2001-09-10 16:56  dan
9284         * TODO: Added in assembler gripe. Also added a few blank lines for
9285         clarity
9287 2001-09-10 16:49  dan
9289         * register.h, register.c: Renamed the core functions so the opcodes
9290         can find 'em OK. (There were some conflicts)
9292 2001-09-10 16:48  dan
9294         * basic_opcodes.ops, opcode_table: Added register window ops
9296 2001-09-10 11:07  simon
9298         * TODO:
9299         Trivial TODO list.
9301 2001-09-10 11:05  simon
9303         * test.pbc, test2.pasm, test_main.c: Other string bits and pieces;
9304         note "-s" flag to test prog.
9306 2001-09-10 11:01  simon
9308         * docs/strings.pod:
9309         New string documentation.
9311 2001-09-10 11:01  simon
9313         * basic_opcodes.ops, opcode_table:
9314         String ops.
9316 2001-09-10 10:53  simon
9318         * global_setup.c:
9319         More string fu.
9321 2001-09-10 10:51  simon
9323         * memory.h:
9324         Just some more aliases for now. Used by string handling stuff.
9326 2001-09-10 10:50  simon
9328         * assemble.pl, bytecode.c, bytecode.h:
9329         Temporary hack to store string constants in bytecode and recreate
9330         them at runtime.
9332 2001-09-10 10:48  simon
9334         * op.h:
9335         op.h is now generated by the Makefile; remove it.
9337 2001-09-10 10:47  simon
9339         * Makefile:
9340         clean and op.h Makefile targets.
9342 2001-09-10 10:45  simon
9344         * string.c, string.h, strnative.c:
9345         More string vtable stuff.
9347 2001-09-07 21:07  dan
9349         * assemble.pl:
9351         Much less picky about whitespace in the opcode_table now. (Doesn't
9352         whine on blank lines)
9354 2001-09-07 16:23  dan
9356         * Makefile, assemble.pl, global_setup.h, interpreter.c,
9357         interpreter.h, opcode_table, parrot.h, test.pasm: (Here's hoping
9358         this takes) Added global_setup.h to declare init_world function
9360         Moved variable declarations out of the interpreter loop for small
9361         speed boost.
9363         Changed end opcode to now be opcode #0. A function is provided for
9364         it, but isn't ever executed.
9366         When the interpreter sees an opcode 0 in the stream it means the
9367         end of stream. Things were coring on Cygwin otherwise. (I think I
9368         was dereferencing a zero, which is bad)
9370 2001-09-06 22:07  dan
9372         * basic_opcodes.ops, process_opfunc.pl:
9374         Minor tweaks to basic_opcodes.ops to fix some NV issues. The rest
9375         are minor changes now that things are in a fixed state.
9377 2001-09-06 16:13  dan
9379         * basic_opcodes.c, test_opcodes.c:
9380         test_opcodes.c is now irrelevant--they're all in basic_opcodes.ops.
9382         basic_opcodes.c is now autogenerated from basic_opcodes.ops, and
9383         should be nuked. So it is. :)
9385 2001-09-06 03:35  dan
9387         * basic_opcodes.ops, build_interp_starter.pl, process_opfunc.pl:
9388         Scripts to build the header file that holds the function table
9389         creation code, as well as the script to turn an opcode file to C
9390         source. (And the basic opcode functions turned into an opcode
9391         source file)
9393 2001-09-06 03:31  dan
9395         * Makefile, interpreter.c:
9396         Changes to support the autogeneration of the opcode function
9397         pointer table in interpreter.c, along with the changes to the
9398         Makefile needed.
9400 2001-09-05 13:27  simon
9402         * bytecode.c, config.h, docs/opcodes.pod, docs/overview.pod,
9403         docs/parrotbyte.pod, docs/vtables.pod:
9404         Added stubs for the documents; working on them this week. (What's
9405         left of it.) config.h change is just to type VTABLE, and the
9406         bytecode thing you might want to revoke. It's apidoc for the
9407         functions in there.
9409 2001-09-03 18:26  simon
9411         * docs/strings.pod:
9412         A start on the string API documentation.
9414 2001-09-03 17:43  simon
9416         * opcode_table:
9417         Since we specify the opcode number, we can rearrange to a more
9418         human-friendly ordering.
9420 2001-09-03 17:42  simon
9422         * basic_opcodes.c:
9423         Coupl'a logic bugs. (I think)
9425 2001-09-03 17:41  simon
9427         * string.c, string.h, strnative.c:
9428         Tidying up the string vtables.
9430 2001-09-03 17:38  simon
9432         * make_op_header.pl:
9433         Spit out the whole of op.h, not just the bit in the middle.
9435 2001-08-29 13:16  ask
9437         * README: it seems like we indeed can commit. What about sending
9438         commit mails?
9440 2001-08-29 13:07  simon
9442         * Makefile, README, assemble.pl, basic_opcodes.c, bytecode.c,
9443         bytecode.h, config.h, disassemble.pl, events.h, exceptions.h,
9444         global_setup.c, interpreter.c, interpreter.h, io.h,
9445         make_op_header.pl, make_op_table_build.pl, memory.c, memory.h,
9446         op.h, opcode_table, parrot.c, parrot.h, register.c, register.h,
9447         stacks.h, string.c, string.h, strnative.c, strnative.h, test.pasm,
9448         test.pbc, test_main.c, test_opcodes.c:
9449         Initial checkin of Simon's work directory - Dan, feel free to nuke.
9450          I'm still working on the string stuff, though.
9452 2001-08-29 12:44  ask
9454         * README: update README with list address
9456 2001-08-29 12:36  ask
9458         * README: first readme.