regen per bacek++'s request.
[parrot.git] / ChangeLog
blobd3a61eb07914cc319feb6a04e9d23e1a3ee6987d
1 #1 $Id$
3 2010.01.19     chromatic
4         * Released 2.0.0
5         See NEWS for more.
7 2009.12.15     Gerd
8         * Released 1.9.0
9         See NEWS for more.
11 2009.11.17     barney
12         * Released 1.8.0
13         See NEWS for more.
15 2009.10.20     dukeleto
16         * Released 1.7.0
17         See NEWS for more.
19 2009.9.15     particle
20         * Released 1.6.0
21         See NEWS for more.
23 2009.8.18     Whiteknight
24         * Released 1.5.0
25         See NEWS for more.
27 2009.7.21     cotto
28         * Released 1.4.0
29         See NEWS for more.
31 2009.06.16    Whiteknight
32         * Released 1.3.0
33         See NEWS for more.
35 2009.05.19    Infinoid
36         * Released 1.2.0
37         See NEWS for more.
39 2009.04.21    fperrad
40         * Released 1.1.0
41         See NEWS for more.
43 2009.03.17    allison
44         * Released 1.0.0
45         See NEWS for more.
47 2009.02.17    kjs
48         * Released 0.9.1
49         See NEWS for more.
51 2009.01.20    chromatic
52         * Released 0.9.0
53         See NEWS for more.
55 2008.12.16    Whiteknight
56         * Released 0.8.2
57         See NEWS for more.
59 2008.11.18    chromatic
60         * Released 0.8.1
61         See NEWS for more.
63 2008.10.21    particle
64         * Released 0.8.0
65         See NEWS for more.
67 2008.09.16    pmichaud
68         * Released 0.7.1
69         See NEWS for more.
71 2008.08.19    rgrjr
72         * Released 0.7.0
73         See NEWS for more.
75 2008.07.15    barney
76         * Released 0.6.4
77         See NEWS for more.
79 2008.06.17    smash
80         * Released 0.6.3
81         See NEWS for more.
83 2008.05.20    chromatic
84         * Released 0.6.2
85         See NEWS for more.
87 2008.04.15    particle
88         * Released 0.6.1
89         See NEWS for more.
91 2008.03.18    bernhard
92         * Released 0.6.0
93         See NEWS for more.
95 2008.02.20    pmichaud
96         * Released 0.5.3
97         See NEWS for more.
99 2008.01.15    rgrjr
100         * Released 0.5.2
101         See NEWS for more.
103 2007.12.18    jonathan
104         * Released 0.5.1
105         See NEWS for more.
107 2007.11.20    chromatic
108         * Released 0.5.0
109         See NEWS for more.
111 2007.10.17    coke
112         * Released 0.4.17
113         See NEWS for more.
115 2007.09.18    particle
116         * Released 0.4.16
117         See NEWS for more.
119 2007.08.22    pmichaud
120         * Released 0.4.15
121         See NEWS for more.
123 2007.07.17    particle
124         * Released 0.4.14
125         See NEWS for more.
127 2007.06.19    allison
128         * Released 0.4.13
129         See NEWS for more.
131 2007.05.15    chromatic
132         * Released 0.4.12
133         See NEWS for more.
135 2007.04.17    mdiep
136         * Released 0.4.11
137         See NEWS for more.
139 2007.03.20    coke
140         * Released 0.4.10
141         See NEWS for more.
143 2007.3.10     coke
144         * removed parakeet
146 2007.02.22    pmichaud
147         * Released 0.4.9
148         See NEWS for more.
150 2007.01.17    chromatic
151         * changed 'name' method on namespaces to 'get_name' per pdd21
153 2007.01.16    particle
154         * Released 0.4.8
155         See NEWS for more.
157 2006.12.12    particle
158         * added C<isnull> opcode
160 2006.11.14    chip
161         * Released 0.4.7
162         See NEWS for more.
164 2006.11.07      tewk
165         * added :init pragma functionality to subs
167 2006.10.28      jonathan
168         * added :vtable pragma functionality to subs
170 2006.09.18    chromatic
171         * added Parrot::Embed under ext/Parrot-Embed
173 2006.08.18    leo
174         * remove the None PMC - if needed it can trivially be reimplemented
175           in languages from r14189
177 2006.08.16    creiss
178         Merged Software Transactional Memory branch into trunk, adds:
179         * several new opcodes whose names start with stm_
180         * read-only PMC support
181         * several new PMC types (whose names start with STM*)
182         * support for threads (again)
184 2006.08.08    chip
185         * Released 0.4.6
186         See NEWS for more.
188 2006.08.02    chip
189         * opcodes: "in PMC" is no longer a synonym for "invar PMC";
190         there are opcodes now that want the real "in PMC".
191         * namespace and global opcodes now accept name arrays again, as
192         well as keys; the corresponding namespace PMC methods are gone.
194 2006.07.21    leo
195         * Parrot_exit, Parrot_on_exit take now an Interp * argument
197 2006.07.25    chip
198         * add experimental op find_type_i_p
199         * fix longstanding bug that sometimes didn't encode pasm keys as
200         Key PMCs (specifically "[S0]" and "['stringliteral']").
202 2006.07.24    chip
203         further implementation of new pdd21:
204         * new opcodes {get,set}*global
205           (old {find,store}*global will be supported for a short while)
207 2006.07.20    audreyt
208         * --maintainer prerequesites are now bison 2.2+ and flex 2.5.3x
209           (or some such --leo)
210           (at the moment code is checking for 2.0 -- ambs)
212 2006.07.17    chip
213         partial implementation of new pdd21:
214         * old: "get_namespace KEY".  new: "get_hll_namespace KEY"
215         * get_namespace and find_global opcodes no longer accept arrays
216           of strings.  To use arrays, call namespace object methods.
218 2006.06.19    leo
219         * Released 0.4.5
220         See NEWS for more.
222 2006.06.03    leo
223         * I and N registers are never cleared to 0 / 0.0 on subroutine entry
225 2006.05.14    leo
226         * Released 0.4.4
227         See NEWS for more.
229 2006.04.30    bernhard
230         * Make the Perl PMCs dynamic and move them to src/dynpmc
232 2006.04.02    leo
233         * Released 0.4.3
234         See NEWS for more.
236 2006.03.06    leo
237         * Shifted argument type bits left by 2 according to r11754
238           change of docs/pdds/pdd03_calling_conventions.pod
239         * if you are creating PASM then code needs adjustment
241 2006.02.22    leo
242         * Released 0.4.2
243         See NEWS for more.
245 2006.01.16    bernhard
246          * rename src/dynclasses to src/dynpmc
247          * rename src/classes to src/pmc
249 2006.01.15    leo
251          * find_global and friends returns a .Null PMC instead of .Undef on
252           lookup failure, iff lookup exceptions are off
254 2006.01.08    leo
255         * Released 0.4.1
256         See NEWS for more.
258 2005.12.28    particle
259         * renamed all .imc files to .pir
260         * modified all doc references to .pir as well
262 2005.12.13    particle
263         * moved jit/ directory to src/jit/
265 2005.12.12    particle
266         * moved io/ directory to src/io/
267         * moved classes/ directory to src/classes/
268         * moved dynclasses/ directory to src/dynclasses/
270 2005.12.08    particle
271         * moved types/ directory to src/types/
272         * moved pf/ directory to src/packfile/
273         * moved ops/ directory to src/ops/
275 2005.12.08    particle
276         * moved charset/ directory to src/charset/
277         * moved encodings/ directory to src/encodings/
279 2005.12.07    particle
280         * moved imcc/ directory to compilers/imcc/
282 2005.12.06    particle
283         * moved util/ directory to tools/util/
284         * removed imcc/examples/ directory
285         * moved ast/ directory to compilers/ast/
287 2005.12.05    particle
288         * moved imcc/docs/ directory to docs/imcc/
289         * moved build_tools/ directory to tools/build/
290         * modified MANIFEST, MANIFEST.generated, and MANIFEST.SKIP
292 2005.12.04    leo
293         * Released 0.4.0
294         * See NEWS for changes
296 2005.11.06    leo
297         * Released 0.3.1
298         * See NEWS for changes
300 2005.10.01    leo
301         * Released 0.3.0
302         * See NEWS for changes
304 2005.08.05    leo
305         * Released 0.2.3
306         * See NEWS for changes
308 2005.07.03    leo
309         * Released 0.2.2
310         * See NEWS for changes
312 2005.06.04    leo
313         * Released 0.2.1
314         * allow short names for object attributes
315         * string encoding and charset can now be set independently
316         * experimental mmap IO layer for slurping files
317         * enable compile opcode support for compilers written in PASM/PIR
318         * improved HLL support with .HLL and n_operators pragmas
319         * simplified hash code
320         * more strength reduce optimizations
321         * distinct debug and trace flag settings
322         * glob support in PGE
323         * new character classification opcodes and interfaces
324         * numerous bug fixes and enhancements
326 2005-05-08    leo
327         * Released 0.2.0
328         * parrot repository is now under subversion
329         * MMD (Multi Method Dispatch) enhanced
330         * new unary and infix opcodes that return new result PMCs
331         * dynamic scalar PMCs inherit now almost all from Parrot core PMCs
332         * more unification of PMCs and ParrotObjects
333         * tailcalls for functions and methods
334         * PGE (Parrot Grammar Engine) reworked
335         * Pugs creates Parrot code and Pugs is a registered compiler now
336         * new languages/lisp
337         * the usual bug fixes and improvements
339 2005-03-06    leo
340         * Released 0.1.2
341         * big rewrite of string code, not yet finished but ...
342         * partial implementation of a generational garbage collector
343         * indirect register frame addressing
344         * .return(args) PIR syntax
345         * moved most of the Python code to dynclasses
346         * a lot more Python functionality
347         * precalculate opcodes with all constants
348         * PGE - Parrot Grammar Engine
349         * scalar classes refactoring
350         * much more tests and big test system cleanup
351         * improved documentation
352         * and as always a lot more
354 2004-10-09    leo
355         * Released 0.1.1
356         * Need Perl 5.6 now for building
357         * Basic AST support, PAST file parser, bits of code generation
358         * BigInt PMC using GMP
359         * Complex PMC
360         * Dynamic loading improved including bundles of PMC classes
361         * Experimental support for "make install"
362         * IA64 and hppa JIT support
363         * ICU unicode support
364         * IO layer handling code
365         * IO readline and buffered IO fixes
366         * Incremental GC
367         * Internal pythonic functions: filter, map, reduce, max, min ...
368         * Languages updates for m4, tcl, perl6, regex. New parakeet language.
369         * Library updates, Stream and SDL library
370         * MMD - multi method dispatch for binary vtable methods
371         * Many new array PMCs
372         * Method call syntax in PIR obj."meth"(...)
373         * More OS stuff: stat, exec, system, gmtime, piped read and write
374         * New Python PMCs like Enumerate, None
375         * Non-branching compare opcodes
376         * PIR support for += and friends
377         * Python language subdir
378         * Python types mapped to existing PMCs
379         * Slices and range support
380         * Tons of bug fixes, documentation updates, new tests
381         * Win32 COFF exec support
382         * ... and a lot more
384 2004-02-29    leo
385         * Released 0.1.0
386         * "Ladies and gentlemen, I give you... objects!"
387         * Huge documentation overhaul
388         * More supported platforms, s. PLATFORMS
389         * Basic thread support for pthread based architectures
390         * Basic event handling for timers and signals including:
391         * PASM callbacks for NCI (native C) functions.
392         * Improved platform configuration
393         * COW stacks now working, stacks code redone
394         * Structure handling vastly improved
395         * Random PMC and rand primitives
396         * Better subroutine call syntax in PIR
397         * Make PIR subroutines compliant with pdd03
398         * Improved profiling (DOD, GC timings)
399         * Hash code improvements, incl. random key order support
400         * Experimental freeze/thaw code for some PMC types
401         * IO improvements for buffered layer and Win32
402         * String iterators
403         * String bitwise vtables
404         * Many new opcodes
405         * Support for JIT, where malloced memory isn't executable
406         * Priority DOD scheme for objects that need timely destruction
407         * Improved bytecode loading (e.g. onLoad functions)
408         * Language updates: forth, Perl6/P6C, m4
409         * Libraries: Getopt_Long, SDL, Dumper, Sort
410         * new JAPH examples
411         * Unified imcc and parrot test handling
412         * Many new tests (make test reports 1386 tests)
413         * Numerous bug fixes
416 2003-10-31    leo
417         * Released 0.0.13
418         * Yep thirteen - haunted by the ghost of 0.0.12
419         * Build imcc as parrot
420         * Objects more finished
421         * Delegate vtable methods to byte code
422         * Binary multi-method dispatching
423         * Isa and does methods for PMCs
424         * Call byte code from C
425         * Start of extension interface
426         * Experimental struct handling
427         * Catch access to NULL PMCs
428         * Experimental network socket interface code and opcodes
429         * IO fixes and improvements
430         * Dynamic opcode libraries
431         * Fix-assigned opcode numbers
432         * Argument flattening for function calls
433         * More native call interface (NCI) signatures
434         * Ncurses, postgres, and pcre interface libraries
435         * Forth language is vastly improved
436         * BSD and Win32 build improvements
437         * Many new tests and fixes
439 2003-10-22    melvin
440         * imcc moved from parrot/languages/ to parrot/
442 2003-09-20    sfink
444         * updated the native_pbc test files (from Leo)
445         * built 0.0.11.1 release tarball
447 2003-09-20    sfink
449         * CHANGES BUNDLED INTO 0.0.11:
450         * Executable output
451         * Dynamic PMC registration
452         * Trial exception system
453         * Beginnings of object system
454         * Iterators
455         * Ordered hashes
456         * I/O system improvements
457         * References
458         * Documentation for basic PMC types
459         * IMCC support of Parrot Calling Conventions
460         * Runtime loading of chartypes (and other string improvements)
461         * Conditional breakpoints
462         * Dramatically accelerated sweeps for finalizable objects
463         * Small PMCs (PMCs split into core and extensions)
464         * Loadable bytecode packfiles
465         * Constant PMCs
466         * Sub variants that deal with the stack correctly
467         * Switched runops core
468         * Line numbers in warnings
469         * Environment access
470         * Many documentation cleanups
471         * Conversion to CPS style!
472         * BASIC debugger and many other wacky features
473         * Filename, line number parsing support in IMCC
475 2003-07-21 17:31 chromatic
476         * applied copyright patch from Josh Wilmes
478 2003-06-14 13:50 dan
479         * Moved the registers out of the context structure, since they
480           really aren't context
481         * Changed the register stack frames to hold only 16 registers
482           rather than 32, added half-set push and pop ops, and reworked
483           the full set push/pops to do two half-set push/pops. Should
484           speed up saving register data on calls, since we usually only
485           care about the top half of the registers anyway.
486         * Started committing some of the new class/object framework
487         * Remembered to finally start updating the Changelog
489 2003-03-18 03:50  ask
491         * Various files
492           Update Yet Another copyright statements to reflect the (no longer
493           so) shiny new year.
495 2003-03-11 22:06  chip
497         * Configure.pl: print help on non-option command line args
499 2002-12-18 20:38  sfink: changes since 0.0.8
501         - Allow suppression of cgoto core to save memory during compile
502         * Native function calling interface
503         * Major rewrite of stack and list aggregates
504         - Scalar PMC added
505         * Scratchpads implemented
506         - Win32 libraries
507         - Internal memory subsystem documentation
508         * Preliminary DotGNU support
509         - Packfile fingerprinting
510         * Buffer/PMC unification (into PObjs)
511         * stabs debugging information support
512         * Major Jako overhaul, including:
513           - imcc integration
514           - native function calling
515         - Perl6 string interpolation
516         - languages/regex now targets IMCC
517         * Optional Lea memory allocator
518         * Full sprintf implementation
519         * Many, many new tests
520         * Miniparrot
521         - exchange ops
522         - runtime-controllable gc debugging
523         * PMC properties
524         - Crash info
525         * JIT: various improvements
526           - register usage tracking
527           - block register allocation
528           - optimizations
529           - more jitted ops
530           - restartable
531           - architecture abstraction layer
532           - debugging via GDB
533         * Beginning support for extensible packfiles
534         * Much better key support, generally
535         * splice()
536         * Restructured PMC hierarchy with better functionality inheritance
537         * IMCC: many, many improvements. See imcc/ChangeLog
538         * Perl6: index map grep join reverse defined
539         * Scheme with functions!
542 2002-03-19 22:54  nicholas
544         * docs/running.pod: Patch from Simon Glover <scog@amnh.org>:
546          We can now get usage information for test_parrot without having to
547          grep the source.
549 2002-03-19 22:53  simon
551         * Configure.pl:
552         Parrot is called parrot.
554 2002-03-19 22:53  nicholas
556         * docs/tests.pod: Patch from Simon Glover <scog@amnh.org>:
558          1. There are tests in t/pmc as well as t/op now.
559          2. Adds a comment about Parrot::Test
561 2002-03-19 18:09  dan
563         * Configure.pl, examples/assembly/life.pasm: Toss a prompt that
564         messes up automated builds
566         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
568 2002-03-19 00:33  mrjoltcola
570         * core.ops: Doc cleanup from Simon Glover.
572 2002-03-18 23:52  mrjoltcola
574         * io/io_unix.c: Typo fix for invalid lvalue caught by David Loyd.
576 2002-03-18 22:09  dan
578         * include/parrot/resources.h: Checked in old version
580 2002-03-18 20:17  dan
582         * include/parrot/resources.h: Forgot a prototype
584 2002-03-18 20:15  dan
586         * resources.c: D'oh! Thinko, fixed.
588         Courtesy of "Peter Gibbs" <peter@emkel.co.za>
590 2002-03-18 17:33  josh
592         * Configure.pl: Lowering the bar a bit.
594 2002-03-18 17:33  sfink
596         * languages/regex/: MAINTAINER, Makefile, README, regex.pl,
597         test.pl, lib/Regex.pm, lib/Regex/AsmOps.pm, lib/Regex/CodeGen.pm,
598         lib/Regex/Generate.pm, lib/Regex/Grammar.pm, lib/Regex/Grammar.y,
599         lib/Regex/Optimize.pm, lib/Regex/Parse.pm, lib/Regex/Pasm.pm,
600         lib/Regex/PreOptimize.pm, lib/Regex/RegexOps.pm,
601         lib/Regex/Rewrite.pm, lib/Regex/CodeGen/Re.pm,
602         lib/Regex/CodeGen/Rx.pm, lib/Regex/Rewrite/Re.pm,
603         lib/Regex/Rewrite/Rx.pm, lib/Regex/Rewrite/Stackless.pm,
604         t/example.t: Whoops, wrong time to check this in.
606 2002-03-18 16:42  dan
608         * memory.c, resources.c: Partial fix for GC's memory trouncing. At
609         least we consider the PMC and Buffer free pools worth collecting,
610         and initialize the Buffer pool stuff.  Still not 100% correct,
611         though.
613 2002-03-18 15:35  simon
615         * packfile.c:
616         Fix format arg bug.
618 2002-03-18 07:45  brentdax
620         * Configure.pl: Warn if you're using 64-bit ints on a 32-bit
621         system.
623 2002-03-18 00:09  sfink
625         * languages/regex/: MAINTAINER, Makefile, README, regex.pl,
626         test.pl, lib/Regex.pm, lib/Regex/AsmOps.pm, lib/Regex/CodeGen.pm,
627         lib/Regex/Generate.pm, lib/Regex/Grammar.pm, lib/Regex/Grammar.y,
628         lib/Regex/Optimize.pm, lib/Regex/Parse.pm, lib/Regex/Pasm.pm,
629         lib/Regex/PreOptimize.pm, lib/Regex/RegexOps.pm,
630         lib/Regex/Rewrite.pm, lib/Regex/CodeGen/Re.pm,
631         lib/Regex/CodeGen/Rx.pm, lib/Regex/Rewrite/Re.pm,
632         lib/Regex/Rewrite/Rx.pm, lib/Regex/Rewrite/Stackless.pm,
633         t/example.t: Buggy 1st version of regex compiler implementation.
634         Warning: the test code depends on features of the assembler that do
635         not yet exist.
637 2002-03-17 21:35  ajgough
639         * types/: bignum.c, bignum_atest.pl: Added a couple of quick routes
640         through addition and subtraction.  Also added the ability to run
641         all the tests, including the ones which deal with overflow and
642         underflow.  These fail, but that's expected.  Soon they'll pass.
643         Then I'll show them.  Yesssssss.  Tessssssssts my precioussssss,
644         passsssssssings tesssstsssss.
646 2002-03-17 20:06  ajgough
648         * types/: bignum.c, bignum.h, bignum_test.pl: Modified
649         check_(under|over)flow to test bignumbers, rather than values.
650         context now carries E_limit, from which max and min exp are found.
652         Added a default-context-creating function (although this isn't the
653         same as either of the default contexts defined in the eda).
655 2002-03-17 13:31  ajgough
657         * types/: bignum.c, bignum.h: Made BN_round and BN_iround so that
658         exported version matches prototypes of other public functions.
660 2002-03-17 06:44  josh
662         * chartype.c, encoding.c, memory.c, misc.c, packdump.c, packfile.c,
663         packout.c, resources.c, string.c, include/parrot/encoding.h: Some
664         last-minute re-indenting.
666 2002-03-17 05:07  mrjoltcola
668         * io/io_unix.c: Clear up unsigned compare caught by Solaris GCC.
670 2002-03-16 23:17  nicholas
672         * classes/default.pmc: Patch from Simon Glover <scog@amnh.org> to
673         remove warnings:
675          default.pmc: In function `Parrot_default_get_integer_keyed':
676          default.pmc:50: warning: control reaches end of non-void function
677          default.pmc: In function `Parrot_default_get_number_keyed':
678          default.pmc:58: warning: control reaches end of non-void function
679          default.pmc: In function `Parrot_default_get_string_keyed':
680          default.pmc:67: warning: control reaches end of non-void function
681          default.pmc: In function `Parrot_default_get_pmc_keyed':
682          default.pmc:87: warning: control reaches end of non-void function
684 2002-03-16 18:50  ajgough
686         * types/: bignum.c, bignum.h: Lots of prototypes changed in
687         readiness for nicely telling your caller about any oddness you've
688         caused in the persuit of flow.
690 2002-03-16 17:38  dan
692         * interpreter.c, resources.c, docs/pdds/pdd09_gc.pod,
693         include/parrot/interpreter.h, include/parrot/resources.h: Now we
694         can control the GC and DOD, to stop it when we don't really want
695         it.
697 2002-03-16 16:58  dan
699         * resources.c, vtable.tbl, classes/default.pmc,
700         include/parrot/resources.h: Added the last code to let PMCs control
701         their marking at DOD time
703 2002-03-16 16:57  ajgough
705         * types/bignum.c: Ok, I worked out how to not have lots of tabs.  I
706         feel a little more virtuous now.  Really I do.  You might not
707         believe me, but you should.  perl -pne 's/\t/        /g', if you're
708         curious.
710 2002-03-16 16:57  josh
712         * packfile.c, packout.c: M-x untabify is my new friend.
714 2002-03-16 16:50  josh
716         * trace.c, resources.c: Minor whitespace tweak for the benefit of
717         check_source_standards.pl
719 2002-03-16 16:50  ajgough
721         * types/: bignum.c, bignum.h: More documentation, separate
722         functions into public and private sorts, some initial stuff to cope
723         with over and underflow correctly.
725 2002-03-16 16:49  josh
727         * resources.c: Re-indented (sorry bout the big diff)
729 2002-03-16 16:47  bdwheele
731         * examples/assembly/fact.pasm: This fixes fact.pasm so it will
732         assemble again, both with Simon's new assembler and with the old
733         one.
735 2002-03-16 16:33  mrjoltcola
737         * io/TODO: Get the TODO up-to-date for 0.0.4.
739 2002-03-16 16:11  josh
741         * Configure.pl: Patch from Nicholas Clark <nick@unfortu.net>: stops
742         silly people (such as me) running Configure with
743         /usr/local/bin/perl (which is 5.004_05) and not realising their
744         mistake until the pmc subdirectory, where the first qr// is
745         encountered.
747         Syntax error messages don't tell you what you did wrong. This does:
749         /usr/local/bin/perl Configure.pl Perl 5.00503 required--this is
750         only version 5.00405, stopped at Configure.pl line 10.
752 2002-03-16 14:38  ajgough
754         * Makefile.in: Small fix to Makefile.in to keep Irix make happy
755         with commenting.
757 2002-03-16 11:45  simon
759         * MANIFEST, examples/assembly/xml_parser.pasm:
760         Added Clint Pierce's XML parser.
762 2002-03-15 22:24  simon
764         * packout.c:
765         Don't need that function.
767 2002-03-15 21:56  simon
769         * Makefile.in, include/parrot/packfile.h:
770         Rebuild packout.o, since it'll be used for the Packfile XS module
772 2002-03-15 19:45  dan
774         * include/parrot/: memory.h, pmc.h: Another add-in for GC
776 2002-03-14 19:48  dan
778         * core.ops: No string to int for some reason
780 2002-03-14 18:45  dan
782         * string.c, t/op/string.t: Fix 0-length substr problem
784 2002-03-14 14:46  dan
786         * core.ops, interpreter.c, resources.c, classes/array.pmc,
787         classes/perlarray.pmc, examples/assembly/life.pasm,
788         include/parrot/interpreter.h, include/parrot/resources.h: Added in
789         a counter for copied memory, with a display in life.pasm
791 2002-03-14 03:16  mrjoltcola
793         * MANIFEST: Update MANIFEST courtesy of Simon Glover.
795 2002-03-13 23:43  simon
797         * packfile.c:
798         Oops.
800 2002-03-13 23:43  simon
802         * packfile.c:
803         Hangs head in shame.
805 2002-03-13 21:31  simon
807         * MANIFEST:
808         FAQ moved.
810 2002-03-13 18:06  simon
812         * string.c:
814         Fix string_compare screw-up.
816 2002-03-13 18:02  brentdax
818         * docs/: parrot.pod, ParrotFAQ.htm, faq.pod: Move the FAQ into POD
819         and add a new question/answer pair.
821 2002-03-12 22:53  mrjoltcola
823         * io.ops: Quick and dirty read ops for PIO. No warranty provided.
825 2002-03-12 22:48  mrjoltcola
827         * examples/assembly/io2.pasm: Quick and dirty read ops for PIO. No
828         warranty provided.
830 2002-03-12 22:29  ajgough
832         * docs/pdds/pdd14_bignum.pod: Ooops, it is #14, really.
834 2002-03-12 22:24  ajgough
836         * docs/pdds/pdd14_bignum.pod: Creation of bignumber pdd, update to
837         version 1.1, Don't know if this is the correct number, but I don't
838         want this stuck on my harddrive where it will get lost, so 14 it is
839         :)
841 2002-03-12 11:35  simon
843         * MANIFEST, packdump.c, packout.c:
845         Just so the functionality doesn't disappear.
847 2002-03-12 11:33  simon
849         * Makefile.in, chartype.c, encoding.c, packfile.c,
850         chartypes/unicode.c, chartypes/usascii.c, encodings/singlebyte.c,
851         encodings/utf16.c, encodings/utf32.c, encodings/utf8.c,
852         include/parrot/chartype.h, include/parrot/encoding.h,
853         include/parrot/packfile.h:
855         Packfile axing.
857 2002-03-11 23:06  nicholas
859         * core.ops: Patch from Simon Glover <scog@roe.ac.uk>:
861           Core.ops documentation nits
863 2002-03-11 23:05  nicholas
865         * t/pmc/pmc.t: Patch from Simon Glover <scog@roe.ac.uk>:
867           Most of the PerlUndef tests in pmc.t appear to have been added
868         twice.
869           Enclosed patch removes the duplicates.
871 2002-03-10 23:40  nicholas
873         * t/pmc/perlstring.t: Patch from Simon Glover <scog@amnh.org>:
875          More tests for the PerlString test-suite.
877 2002-03-10 23:40  nicholas
879         * t/op/time.t: Patch from Simon Glover <scog@amnh.org>:
881         test for sleep with negative argument
883 2002-03-10 21:58  nicholas
885         * t/op/rx.t: Patch from Simon Glover <scog@amnh.org>:
887          Enclosed patch fixes up a few more holes in our test coverage.
889 2002-03-10 21:18  mrjoltcola
891         * classes/array.pmc, classes/default.pmc, classes/intqueue.pmc,
892         classes/parrotpointer.pmc, classes/perlarray.pmc,
893         classes/perlhash.pmc, classes/perlint.pmc, classes/perlnum.pmc,
894         classes/perlstring.pmc, classes/perlundef.pmc,
895         include/parrot/pmc.h, core.ops, pmc.c, vtable.tbl: Add size
896         argument to the init() vtable method so PMCs have the option to
897         know how to size themselves at creation. size could be N elements
898         or a byte count, depending on the PMC or it may simply be ignored.
899         Overloaded 'new' opcode for optional arg.
901 2002-03-10 21:15  mrjoltcola
903         * lib/Parrot/Assembler.pm: Minor patch to the assembler for the
904         new_p_ic_ic opcode to work same as new_p_ic (looks up a named
905         class).
907         Also added small hack for .sub directive (which simply translates
908         to a label, however we might eventually want to collect these to
909         validate bsr calls.
911 2002-03-10 15:09  ajgough
913         * types/: bignum.c, bignum.h, bignum_atest.pl, bignum_test.pl:
914         Added round_floor and round_ceiling.  3403 tests pass, none fail.
916 2002-03-10 03:56  ajgough
918         * types/: bignum.c, bignum_atest.pl: Added extended stuff to
919         divide, divide integer and remainder.  All filled in functions now
920         have special values capability.
922         Much remains to be done though, and the pdd needs to catch up.
924 2002-03-10 01:36  ajgough
926         * types/bignum.c: Added extended stuff to _add, _subtract.
928 2002-03-10 00:14  nicholas
930         * t/op/: integer.t, number.t: Patch from Simon Glover
931         <scog@roe.ac.uk>:
933          The enclosed patch fixes a few of the holes in our test coverage
934          uncovered by Josh Wilmes
936 2002-03-09 23:03  ajgough
938         * types/: bignum.c, bignum.h: Modified compare to work with
939         extended values.  Made a couple of changes here and there to allow
940         BN_comp to take a context, so that an is_zero check doesn't clobber
941         negative zeros.
943 2002-03-09 22:19  ajgough
945         * types/: bignum.c, bignum.h, bignum_atest.pl, bignum_test.pl:
946         Unary plus now copes with special values.
948 2002-03-09 04:25  ajgough
950         * types/: bignum.c, bignum_atest.pl, bignum_test.pl: Exception
951         traps and flags are now enabled and tested for all the standard
952         tests for all the functions which are currently implemented.  Test
953         harness faffed with to allow these to be tested.
955 2002-03-09 02:29  josh
957         * encodings/singlebyte.c, encodings/utf16.c, encodings/utf32.c,
958         encodings/utf8.c, chartypes/unicode.c, chartypes/usascii.c:
959         Re-indented
961 2002-03-09 02:22  josh
963         * config_h.in: tab-blastin'
965 2002-03-09 02:21  josh
967         * check_source_standards.pl: Play nicer with M-x compile- don't
968         bother giving line numbers for things you don't want to look at.
970 2002-03-09 02:10  josh
972         * examples/mops/mops.c: re-indented
974 2002-03-09 02:07  josh
976         * classes/pmc2c.pl: Use the usual header so that we can detect the
977         autogeneratedness.
979 2002-03-09 02:05  josh
981         * jit2h.pl: Avoid accidental /* inside a comment, which generates a
982         compiler warning
984 2002-03-09 01:59  josh
986         * io/: io.c, io_stdio.c, io_unix.c, io_win32.c: Another large
987         patch- re-indent io/*.c.
989 2002-03-09 01:52  ajgough
991         * types/: bignum.c, bignum.h, bignum_test.pl: Added handling of
992         special values to the string conversion functions, some other
993         functions now need context (to let -0 pass through really_zero)
994         which have also been added.
996 2002-03-09 01:47  josh
998         * test_main.c: Re-indented.
1000 2002-03-09 01:41  josh
1002         * rx.c: killed a stray tab
1004 2002-03-09 01:38  josh
1006         * rx.c: Re-indented.
1008 2002-03-09 01:36  josh
1010         * misc.c: Oops, some tabs remained- cleaned up.
1012 2002-03-09 01:31  josh
1014         * misc.c: Re-indented (major patch, sorry)
1016 2002-03-09 00:59  josh
1018         * embed.c: Re-indented.
1020 2002-03-08 23:08  simon
1022         * MANIFEST, docs/pdds/pdd10_embedding.pod,
1023         docs/pdds/pdd11_extending.pod, docs/pdds/pdd12_assembly.pod,
1024         docs/pdds/pdd13_bytecode.pod:
1025         Placeholder PDDs.
1027 2002-03-08 21:12  ajgough
1029         * include/parrot/string.h: Added private flags to string.h, mostly
1030         so that other GCed stuff can also have its very own private flags.
1032 2002-03-08 19:53  simon
1034         * MANIFEST:
1035         Great PDD Renaming
1037 2002-03-08 19:41  robert
1039         * docs/pdds/: pdd0.pod, pdd1.pod, pdd2.pod, pdd4.pod, pdd5.pod,
1040         pdd6.pod, pdd7.pod: Renamed...
1042 2002-03-08 18:51  simon
1044         * MANIFEST, docs/pdds/pdd08_keys.pod:
1045         Add keys PDD.
1047 2002-03-08 18:20  ajgough
1049         * types/: bignum.c, bignum.h, bignum_atest.pl, bignum_test.pl:
1050         Introduced exception handlers and exception flags to context, will
1051         allow support of extended standard.  Unified exception checking
1052         mechanism (sort of) and made minimal changes to bulk of code to use
1053         this.  Tests pass, I'm happy, and further changes will happen more
1054         gradually.
1056 2002-03-08 04:38  josh
1058         * interpreter.c, string.c, testparrotsizes_c.in: More indenting
1059         tweaks.
1061 2002-03-08 04:37  josh
1063         * platforms/: generic.c, generic.h, win32.c, win32.h: Re-indented
1065 2002-03-08 04:24  josh
1067         * embed.c: A bit more re-indenting
1069 2002-03-08 04:20  josh
1071         * embed.c: Indenting fixes
1073 2002-03-08 04:14  josh
1075         * jit.c: Re-indented (run_indent.pl)
1077 2002-03-08 03:36  josh
1079         * ops2c.pl: Fix the line numbers which get reported while compiling
1080         core_ops*.c
1082 2002-03-08 03:22  josh
1084         * packfile.c: -1552 cc: WARNING File = packfile.c, Line = 1537
1085         The variable "type" is set but never used.
1087               opcode_t type;
1089 2002-03-08 03:04  josh
1091         * resources.c, stacks.c, string.c, io/io.c, io/io_stdio.c,
1092         io/io_unix.c: Clean up unused and set-but-not-referenced variables
1093         noticed by the sgi compiler.
1095 2002-03-08 03:02  josh
1097         * misc.c: Fixes this warning (SGI) cc-1188 cc: WARNING File =
1098         misc.c, Line = 417   The indicated type qualifier is meaningless on
1099         cast type.
1102         (const char) 'f');
1103                                                                          ^
1105 2002-03-08 02:55  josh
1107         * Makefile.in: Clean up one of the object files it was missing
1109 2002-03-08 01:15  josh
1111         * include/parrot/interpreter.h: Fixes the following error (tcc):
1112         "./include/parrot/interpreter.h", line 27: Error:   [Syntax]: Extra
1113         comma at end of list.
1115 2002-03-06 22:15  simon
1117         * stacks.c:
1118         Tidy up stack chunk allocation.
1120 2002-03-06 21:00  simon
1122         * interpreter.c:
1123         Create strings only once we've got string register heads set up.
1125 2002-03-06 20:31  simon
1127         * classes/perlarray.pmc:
1128         malloc(0) considered harmful.
1130 2002-03-06 20:24  simon
1132         * include/parrot/resources.h:
1133         I like it when Parrot compiles.
1135 2002-03-06 17:02  dan
1137         * classes/array.pmc: Changed over to data pointing to a Buffer.
1139 2002-03-06 15:45  dan
1141         * core.ops, embed.c, exceptions.c, interpreter.c, memory.c,
1142         packfile.c, pbc2c.pl, pdump.c, resources.c,
1143         include/parrot/interpreter.h, include/parrot/memory.h,
1144         include/parrot/resources.h, io/io.c: Three quick things: 1) INTVALs
1145         and opcode_t > longs will now be even more suspect than what they
1146         were beforehand.  2) Feel free to bicker with names.  I don't think
1147         we've come to *any* sort of agreement with these, although we
1148         really, really, need to.  3) I forget the third thing.  4) But I
1149         thought of a fourth.  5) I've now remembered the third thing: IIRC,
1150         ANSI C states that enums will fit within the smallest type (int or
1151         greater) that can hold the values. Is that actually correct, and
1152         does it state whether unsigned is preferred to signed for
1153         non-negative enums? 6) Since I'm no longer constrained by "three"
1154         or "quick", I'm going size_t happy for a lot of memory-related
1155         storage.  (That's good.  No sense wasting the size or performance
1156         of an UINTVAL for strange values of UINTVAL.)  I'm also using it in
1157         a couple other internal things (like the GC stat counters, seen
1158         here).  Size and performance, again, and unpromotable to a bigint,
1159         so we know that we (theoretically) will wrap.  However, size_t
1160         isn't the best choice for the type.  (Not that there's anything
1161         wrong with size_t, just that it shouldn't be called size_t.)  Any
1162         thoughts?  I was thinking of just doing unsigned int, because,
1163         IIRC, int is usually the natural word size, and will be most
1164         efficient.  Thoughts? 7) I forgot what the fourth thing I thought
1165         of was while writing down the others.  Sorry.
1167         Courtesy of  "Bryan C. Warnock" <Bryan.Warnock@raba.com>
1169 2002-03-06 15:26  dan
1171         * memory.c, resources.c, string.c, classes/perlarray.pmc,
1172         include/parrot/resources.h: Now we allocate generic Buffers from
1173         arenas too
1175 2002-03-05 21:42  brentdax
1177         * Configure.pl: Minor cleanup and enhancements.
1179 2002-03-05 21:25  dan
1181         * resources.c: non-special GC now works with PMCs
1183 2002-03-05 19:48  brentdax
1185         * Configure.pl, DEVELOPING, MANIFEST, config_h.in, test_main.c:
1186         Parrot now "knows" if it's a development version or a release
1187         version.  See the instructions in the DEVELOPING file.
1189 2002-03-05 18:05  brentdax
1191         * MANIFEST: pasm.vim wasn't in the manifest.
1193 2002-03-05 17:57  simon
1195         * Makefile.in:
1196         Now, through much evilness, make distclean and make cvsclean work
1197         again.
1199 2002-03-05 17:38  dan
1201         * memory.c, resources.c, docs/pdds/pdd09_gc.pod,
1202         include/parrot/interpreter.h, include/parrot/pmc.h,
1203         include/parrot/resources.h: PMC tracing complete
1205 2002-03-05 16:28  gregor
1207         * languages/jako/Makefile.in:
1208         Changed -I ../../ to -I ../../lib when calling the assembler, since
1209         the perl modules have moved.
1211 2002-03-05 05:30  josh
1213         * packfile.c, pdump.c, pmc.c, register.c, rxstacks.c, stacks.c,
1214         string.c: More re-indenting via run_indent.pl.
1216 2002-03-05 05:17  josh
1218         * runops_cores.c, trace.c, warnings.c: Re-indented (via
1219         run_indent.pl)
1221 2002-03-05 04:26  josh
1223         * key.c, memory.c, test_gnuc.c, testparrotfuncptr.c: Re-indented
1224         using run_indent.pl and some minor tweaking.
1226 2002-03-05 04:21  josh
1228         * chartype.c, encoding.c, exceptions.c, global_setup.c,
1229         interpreter.c: Re-indented using run_indent.pl and some minor
1230         tweaking.
1232 2002-03-05 03:30  josh
1234         * include/parrot/trace.h: These functions are no longer used (or
1235         even implemented)
1237 2002-03-04 18:21  josh
1239         * include/parrot/trace.h: Fix a typo in the argument type.
1241         Patch from <daniel.ritz@gmx.ch>
1243 2002-03-04 03:39  josh
1245         * check_source_standards.pl, jit2h.pl: Add the "autogenerated file"
1246         header to jit_struct.h so we don't try to check it for conformance.
1247          (no way will it conform)
1249 2002-03-04 03:38  josh
1251         * include/parrot/: chartype.h, interpreter.h, io.h, rx.h, trace.h,
1252         unicode.h, warnings.h: Remove some remaining tabs and split some of
1253         the remaining long lines.
1255 2002-03-04 03:17  josh
1257         * include/parrot/: chartype.h, embed.h, encoding.h, exceptions.h,
1258         global_setup.h, interpreter.h, io.h, jit.h, key.h, memory.h,
1259         misc.h, op.h, oplib.h, packfile.h, parrot.h, pmc.h, register.h,
1260         resources.h, runops_cores.h, rx.h, rxstacks.h, stacks.h, string.h,
1261         string_funcs.h, trace.h, warnings.h: This is the first batch of
1262         re-indenting.   This patch is the result of running run_indent.pl
1263         on the header files and manually tweaking the results where errors
1264         were noticed.   This should get us closed, but some refinement may
1265         follow.
1267 2002-03-04 03:06  josh
1269         * resources.c: Return without parens, as mentioned in PDD 7
1271 2002-03-04 03:01  josh
1273         * core.ops: POD fixes.
1275 2002-03-04 02:58  josh
1277         * config_h.in, ops2c.pl, classes/pmc2c.pl: More consistent headers
1278         on autogenerated files- used by the check_source_standards.pl
1279         script (for now) to exempt autogenerated files from the checks.
1281 2002-03-04 02:51  josh
1283         * embed.c, key.c, pmc.c, resources.c, rx.c, testparrotfuncptr.c,
1284         warnings.c: Added the editor "boilerplate" footer to a few files
1285         which were missing it.
1287 2002-03-04 02:34  josh
1289         * check_source_standards.pl, interpreter.c, jit.c, test_gnuc.c,
1290         include/parrot/io.h, include/parrot/parrot.h, io/io_win32.c: Fixes
1291         c preprocessor directive indentation to comply with pdd 7.
1293         (also fixes the check for this indentation in
1294         check_source_standards.pl)
1296 2002-03-04 02:32  josh
1298         * lib/Parrot/Test.pm: Fixes this error seen on perl 5.005_02 on
1299         irix.
1301         perl t/harness t/op/basic..........Use of uninitialized value at
1302         lib/Parrot/Test.pm line 81.  #     Failed test (t/op/basic.t at
1303         line 6) #          got: undef #     expected: ''
1305 2002-03-04 02:30  josh
1307         * MANIFEST, run_indent.pl, docs/pdds/pdd07_codingstd.pod,
1308         docs/pdds/pdd7.pod: Added documentation and code to invoke the GNU
1309         "indent" program to enforce some of the code style standards
1310         outlined in PDD 7.
1312         Usage: ./run_indent.pl <file>
1314 2002-03-03 19:04  simon
1316         * examples/mops/mops.c:
1317         Let's make it compile, huh?
1319 2002-03-03 19:04  simon
1321         * examples/mops/mops.cs:
1322         I R AN IDIOT
1324 2002-03-03 18:11  simon
1326         * examples/mops/mops.cs, examples/mops/mops.il, MANIFEST:
1327         Added C# and MS-IL versions of mops tester.
1329 2002-03-03 14:52  simon
1331         * core.ops:
1332         Add a sub() op to make mops_p work.
1334 2002-03-02 18:12  nicholas
1336         * examples/mops/mops.c, include/parrot/embed.h,
1337         include/parrot/interp_guts.h, include/parrot/jit.h,
1338         include/parrot/misc.h, include/parrot/packfile.h,
1339         include/parrot/rx.h, include/parrot/warnings.h,
1340         platforms/generic.c, platforms/generic.h, platforms/win32.c,
1341         platforms/win32.h, types/bignum.c, types/bignum.h: Patch from Josh
1342         Wilmes to add the emacs and vim "ending boilerplate" that sets the
1343         indent variables correctly.
1345 2002-03-02 17:41  nicholas
1347         * resources.c: Patch from Josh Wilmes <josh@hitchhiker.org>: Little
1348         patch to fix a compiler warning.
1350 2002-03-01 22:35  dan
1352         * memory.c, resources.c, include/parrot/pmc.h,
1353         include/parrot/resources.h: PMCs now come out of arenas.
1355 2002-03-01 06:15  dan
1357         * string.c:
1358         A non-existing buffer + a non-existing buffer should be a
1359         non-existing buffer, not "", which is really '\0'.
1361         Courtesy of "Bryan C. Warnock" <Bryan.Warnock@raba.com>
1363 2002-03-01 06:02  dan
1365         * classes/: array.pmc, perlarray.pmc, perlhash.pmc, perlstring.pmc:
1367         TMTOWTDI, but strcmp is probably the worse.
1369         Courtesy of "Bryan C. Warnock" <Bryan.Warnock@raba.com>
1371 2002-03-01 02:32  brentdax
1373         * embed.c: Debug mode now prints out the GC data.
1375 2002-02-28 23:44  dan
1377         * core.ops, resources.c, include/parrot/resources.h: Added collect
1378         and sweep opcodes
1380 2002-02-28 22:58  dan
1382         * docs/pdds/: pdd06_pasm.pod, pdd6.pod: Add docs for interpinfo
1383         opcode
1385 2002-02-28 22:50  dan
1387         * core.ops, interpreter.c, resources.c,
1388         examples/assembly/life.pasm, include/parrot/interpreter.h,
1389         include/parrot/resources.h: Add some stat gathering to the resource
1390         allocation code.
1392         Also add an interpreter info retrieval op, and teach it about the
1393         different things it can retrieve.
1395         Finally, add some stat info to life.pasm as an example
1397 2002-02-28 21:27  dan
1399         * editor/pasm.vim: VIM mode commands for parrot assembly files
1401         Courtesy of Scott Beck <scott@gossamer-threads.com>
1403 2002-02-28 19:20  dan
1405         * examples/assembly/life.pasm: Fix a creeping string length leak.
1407         Courtesy of  "Bryan C. Warnock" <Bryan.Warnock@raba.com>
1409 2002-02-28 18:26  dan
1411         * string.c: When you clone a constant, it ain't constant no mo'.
1413         Cocurtesy of "Bryan C. Warnock" <Bryan.Warnock@raba.com>
1415 2002-02-28 00:51  dan
1417         * MANIFEST: Add missing files
1419         Courtesy of "Bryan C. Warnock" <Bryan.Warnock@raba.com>
1421 2002-02-28 00:49  dan
1423         * docs/pdds/: pdd0.pod, pdd00_pdd.pod: The pod version of PDD 0 in
1424         CVS seems to have several chunks missing out of it, too.  This
1425         patch is simply an administrative patch, with the differences
1426         between my last version, and the one currently in there.  There
1427         will be a forthcoming patch for some minor tweaking to the PDD, but
1428         I wanted a common baseline before I make any (potential) semantic
1429         changes.
1431         There's only one semi-major change, which noone needs to worry
1432         about just yet.  That's a change from PDD Format 1 to PDD Format
1433         6.0 - rationale can be found under 'Standard (Version #)' of the
1434         STANDARDS TRACK infomation.  Don't worry about this yet, because it
1435         should be 6.0.0, and we need to discuss Perl versus Parrot with
1436         PDDs.
1438         Courtesy of "Bryan C. Warnock" <bwarnock@raba.com>
1440 2002-02-28 00:27  dan
1442         * packfile.c, resources.c, examples/assembly/life.pasm,
1443         include/parrot/register.h, include/parrot/resources.h,
1444         include/parrot/string.h: First pass of semi-full GC. (Strings only,
1445         no PMCs yet)
1447         This patch now implements a real copying collector. We trace from
1448         our root set and compact the contents of Buffer structs.
1450         Todo:
1452         *) It's very STRING-centric and doesn't handle memory stuffed in
1453         Buffers.  But, then, we don't have pool allocation for Buffers
1454         either, and we need to have that soonish for this to work.
1456         *) Doesn't trace PMCs, so if you trigger a collection and there's
1457         memory or STRING structs only accessible from PMCs, you'll fail
1458         horribly. That needs fixing too
1460         *) Better algorithms for when to trace or collect vs when to just
1461         go allocate more memory from the system. Should probably be more
1462         cache friendly too.
1464 2002-02-27 21:04  dan
1466         * jit.c, memory.c, resources.c, string.c, docs/pdds/pdd09_gc.pod,
1467         examples/assembly/life.pasm, include/parrot/resources.h,
1468         include/parrot/string.h, include/parrot/string_funcs.h,
1469         jit/i386/core.jit: Start of GC in
1471 2002-02-26 16:41  dan
1473         * jit/i386/string.jit: Fix a typo
1475         Courtesy of Jonathan Stowe <gellyfish@gellyfish.com>
1477 2002-02-26 16:37  dan
1479         * interpreter.c: Fix solaris test failures
1481         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1483 2002-02-26 16:36  dan
1485         * include/parrot/: interp_guts.h, io.h, packfile.h, rx.h,
1486         unicode.h, warnings.h: Fixes various warts in header files, such
1487         as: * macros   -added parens to prevent problems with operator
1488         precedence   -removed ; at end * removed SSIZE_MAX, since ssize_t
1489         is no longer used * added some more INLINE definitions for MSVC and
1490         C99 compilers
1492         Courtesy of Brian Lee Ray <blray@ualr.edu>
1494 2002-02-26 16:20  dan
1496         * Configure.pl: Turns out we were using a warning flag which
1497         doesn't exist on 2.7.  Simple tweak though:
1499         Courtesy of  Josh Wilmes <josh@hitchhiker.org>
1501 2002-02-25 22:58  dan
1503         * MANIFEST, docs/pdds/pdd09_gc.pod: Add docs of GC
1505 2002-02-25 17:36  dan
1507         * include/parrot/pmc.h: Fix the bits
1509 2002-02-23 21:57  dan
1511         * include/parrot/resources.h: Another 1.5% never hurts
1513 2002-02-23 21:44  dan
1515         * global_setup.c, memory.c, resources.c, string.c,
1516         include/parrot/resources.h: Allocate STRING headers from an arena
1517         with freelist rather than with the system malloc. First step in a
1518         good (or even a bad) GC system.
1520 2002-02-23 20:37  brentdax
1522         * misc.c: lint has been doing Evil and Wrong things to misc.c.
1524 2002-02-22 14:59  ajgough
1526         * types/bignum.c: BN_multiply split into BN_multiply and
1527         BN_imultiply, the internal version to be used by idivide so that
1528         rounding isn't performed during intermediate stages of division.
1530         following test scripts now all pass: divide divideint add multiply
1531         subtract remainder compare rounding plus minus (these are all the
1532         operations currently implemented, rescale and power must still be
1533         written, so don't pass right now).
1535 2002-02-22 13:13  ajgough
1537         * types/bignum_atest.pl: Test harness modified to understand
1538         comments better, and be able to run unary (and rounding) tests.
1539         Currently a few rounding tests fail, which are being investigated.
1541 2002-02-22 01:41  dan
1543         * key.c: Although there's more work being done on the key stuff and
1544         this isn't the final fix, applying this patch does get parrot to
1545         build with two more compilers, so it's probably worthwhile.
1547         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1549 2002-02-22 00:53  dan
1551         * config_h.in, misc.c, include/parrot/embed.h,
1552         include/parrot/exceptions.h, include/parrot/interpreter.h,
1553         include/parrot/io.h, include/parrot/parrot.h, include/parrot/pmc.h,
1554         include/parrot/resources.h, include/parrot/rx.h,
1555         include/parrot/string.h, include/parrot/unicode.h,
1556         include/parrot/warnings.h, io/io_stdio.c, io/io_unix.c,
1557         io/io_win32.c: Fixes the following (lcc) warnings:
1559           - interpreter.c:470: warning: expression with no effect elided
1560                (related to the way warnings flags were defined)
1562           - misc.c:352: warning: unreachable code
1563             misc.c:483: warning: unreachable code
1564                (i introduced these with some overzealous de-linting)
1566           - numerous warnings like this:
1567             io/io_unix.c:383: warning: conversion from pointer to void' to
1568         pointer to
1569             pointer to struct _ParrotIO function(pointer to struct
1570         Parrot_Interp,pointer
1571             to struct _ParrotIOLayer,pointer to const char,pointer to const
1572         char,pointer
1573             to pointer to void)' is compiler dependent
1575         Fixes the following nits:    - remove bad indenting (tabs) in the
1576         includes
1578         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1580 2002-02-21 21:12  ajgough
1582         * types/: bignum.c, bignum.h: These might look like massive
1583         changes, but really it's just he imposition of coding standards.
1584         The file still isn't entirely compliant, but is now much more so.
1586         Also changed:
1588          o a few more comments
1589          o BN_compare uses internal BN_comp to compare
1590          o lost_digits behaviour is now correct (test harness modified to
1591         test
1592            this).
1594         All binary functions now pass all the tests in the basic standard.
1595         Unary functions not yet tested, will be soon.
1597 2002-02-21 18:20  dan
1599         * lib/Parrot/OpTrans/CPrederef.pm: The "inline" bit of that patch
1600         was no longer needed, and the ssize_t thing really shouldn't be
1601         needed either.
1603         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1605 2002-02-21 18:15  dan
1607         * Configure.pl, embed.c, pdump.c, hints/mswin32.pl,
1608         include/parrot/parrot.h: this patch adds support for the freely
1609         available borland c++ 5.5.1 compiler
1611         depends on: - josh's patch to remove ssize_t from CPrederef.pm -
1612         working borland compiler (compiler must know where to find headers
1613         and libs) - Perl's Config.pm modified to use cc='bcc32.exe' not of
1614         cc='cl.exe' - a working make utility (borland make doesn't work,
1615         nmake does)
1617         changes: - add bcc in hints/mswin32.pl - clean up for msvc++ in
1618         hints/mswin32.pl - remove a space from Configure.pl (very very
1619         important for bcc) - add a O_BINARY flag to open() in pdump.c,
1620         embed.c (required by bcc) - define O_BINARY 0 when it's not defined
1621         (win32 knows it, linux not)
1623         and the why: - parrot is MUCH faster when compiled with borland c
1624         (make test on p2-450, 320MB):   * msvc++: 313 seconds   * bcc: 251
1625         seconds
1627         Courtesy of "Ritz Daniel" <daniel_ritz@gmx.ch>
1629 2002-02-21 18:09  dan
1631         * jit.c, testparrotfuncptr.c, trace.c, classes/array.pmc, io/io.c,
1632         io/io_stdio.c, io/io_unix.c, io/io_win32.c: This patch removes
1633         cuddled elses, as required by PDD 7.
1635         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1637 2002-02-21 18:04  dan
1639         * MANIFEST, Makefile.in, check_source_standards.pl: This patch adds
1640         a new Makefile target called "check_source".  This target scans all
1641         the .c and .h files in the directory and checks for conformance to
1642         a number of the standards outlined in PDD 7.
1644         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1646 2002-02-21 16:38  ajgough
1648         * types/: bignum.c, bignum.h, bignum_atest.pl: Modifications to
1649         allow arithmetic with numbers with a fixed fractional part, buffer
1650         structures now more ready to be integrated into the parrot memory
1651         allocation game, test harness modified to allow lost_digits
1652         condition to be checked.  Some more comments.
1654 2002-02-21 15:53  simon
1656         * io/io_unix.c:
1657         Fix typo
1659         Courtesy of: "David M. Lloyd" <dmlloyd@tds.net>
1661 2002-02-20 16:41  dan
1663         * MANIFEST, docs/pdds/pdd_template.pod: Added in template PDD
1665 2002-02-18 18:25  dan
1667         * MANIFEST, lib_deps.pl: Added in lib_deps.pl and MANIFEST change.
1669         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1671 2002-02-18 18:21  dan
1673         * lib/Parrot/OpTrans/CPrederef.pm: this is a quick fix for
1674         CPrederef.pm to make to generated code compile with the MS
1675         compiler.
1677         fixes: - ms compiler allows inline only for c++, for c there's
1678         __inline - ms header files knows nothing about ssize_t
1680         Courtesy of "Ritz Daniel" <daniel_ritz@gmx.ch>
1682 2002-02-18 17:49  dan
1684         * MANIFEST: Add the PDDs
1686 2002-02-18 17:47  dan
1688         * docs/pdds/: pdd07_codingstd.pod, pdd7.pod: Added in PDD 7, the
1689         coding standards PDD.
1691 2002-02-18 17:40  dan
1693         * docs/pdds/: pdd06_pasm.pod, pdd6.pod: Updated to latest rev
1695 2002-02-18 12:41  gregor
1697         * test_main.c:
1698         Remove warning about exit() not being declared.
1700 2002-02-18 08:29  simon
1702         * misc.c, warnings.c, include/parrot/misc.h,
1703         include/parrot/warnings.h:
1704         This patch adds some missing const's to silence a number of gcc
1705         warnings.
1707         Courtesy of: Josh Wilmes <josh@hitchhiker.org>
1709 2002-02-18 08:26  simon
1711         * Makefile.in, core.ops, embed.c, interpreter.c, key.c, misc.c,
1712         ops2c.pl, packfile.c, pdump.c, stacks.c, string.c,
1713         classes/array.pmc, classes/perlarray.pmc, classes/perlhash.pmc,
1714         include/parrot/parrot.h, include/parrot/rx.h,
1715         include/parrot/stacks.h, io/io_stdio.c, io/io_unix.c,
1716         lib/Parrot/OpTrans/CPrederef.pm:
1717            - add makefile target and script to test for external libc
1718         dependencies
1719            - fix return values in hash and array PMCs (returning 0 in a
1720         void func)
1721            - remove unnecessary data pointer <=> function pointer
1722         conversions
1723              outside of the JIT code.
1724            - move the definition of the "INLINE" macro out of the rx header
1725         and make
1726              available for general use on C++ compilers and gcc.
1727            - remove a few unused variables
1729         Courtesy of: Josh Wilmes <josh@hitchhiker.org>
1731 2002-02-17 16:29  simon
1733         * docs/pdds/: pdd0.pod, pdd00_pdd.pod, pdd01_overview.pod,
1734         pdd02_vtables.pod, pdd04_datatypes.pod, pdd05_opfunc.pod,
1735         pdd06_pasm.pod, pdd1.pod, pdd2.pod, pdd4.pod, pdd5.pod, pdd6.pod:
1736         We're organised and responsible. Honest.
1738 2002-02-17 02:46  sfink
1740         * Makefile.in: Remove $^ for nmake compatibility.
1742 2002-02-16 09:20  brentdax
1744         * config_h.in, test_main.c, include/parrot/chartype.h,
1745         include/parrot/embed.h, include/parrot/encoding.h,
1746         include/parrot/string.h, include/parrot/string_funcs.h: Better
1747         embedding exposure and hiding, part 1.
1749 2002-02-16 04:38  dan
1751         * Makefile.in, core.ops, interpreter.c, pbc2c.pl, pdump.c,
1752         runops_cores.c, docs/running.pod, lib/Parrot/OpTrans/C.pm,
1753         lib/Parrot/OpTrans/CGoto.pm, lib/Parrot/OpTrans/CPrederef.pm:
1754         Anyway, here's a patch to repair pbc2c.pl, combined with removing
1755         typecasts in various places throughout the code. It probably won't
1756         work for Windows yet. The libparrot.a target might need to be
1757         modified to at least prevent it from confusing make on Windows; I
1758         don't know.
1760         Preliminary instructions for using pbc2c.pl are in
1761         docs/running.pod.  I'll try to do better later.
1763         Courtesy of Steve Fink <steve@fink.com>
1765 2002-02-16 04:15  dan
1767         * exceptions.c, include/parrot/exceptions.h: Warnings cleaned up
1769         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1771 2002-02-16 00:03  simon
1773         * classes/: perlarray.pmc, perlhash.pmc:
1775         pmc is already defined!
1777 2002-02-15 23:20  brentdax
1779         * Configure.pl, config_h.in, exceptions.c, pmc.c,
1780         include/parrot/exceptions.h: Far more informative panic messages.
1782 2002-02-15 03:24  dan
1784         * lib/Parrot/: Op.pm, OpsFile.pm, OpTrans/CPrederef.pm: Here's a
1785         much more extensive patch that fixes it to work properly, and
1786         deletes a bazillion casts as well.  It also points to the question
1787         "can we make the byte_code be an opcode_t* already?"
1789         Oh, and it makes some of the formatting prettier, so it's gotta be
1790         good.
1792         Courtesy of * Steve Fink <steve@fink.com>
1794 2002-02-15 02:30  dan
1796         * Makefile.in, core.ops, embed.c, misc.c, packfile.c, rx.ops,
1797         stacks.c: I've tweaked the "lint" target somewhat and fixed a few
1798         of the things it finds.  Attaching the patch as well as the current
1799         lint output.
1801         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1803 2002-02-15 01:59  dan
1805         * t/pmc/: array.t, perlhash.t: Disable non-functional bits for the
1806         moment.
1808 2002-02-15 01:48  dan
1810         * t/pmc/perlarray.t: Skip tests for features that need twiddling
1812 2002-02-15 01:40  dan
1814         * t/op/rx.t: Skip a test that's waiting for us to rejig some array
1815         things
1817 2002-02-14 23:30  dan
1819         * resources.c: Added comment for buffer tag routine. D'oh!
1821 2002-02-14 23:28  dan
1823         * resources.c, include/parrot/resources.h: Added buffer mark
1824         routine for GC
1826 2002-02-14 23:17  dan
1828         * memory.c, classes/array.pmc, classes/perlarray.pmc,
1829         include/parrot/memory.h, include/parrot/string.h, t/pmc/perlhash.t:
1830         Rejigged memory system a bit. Now should be ready for the horror
1831         that is garbage collection.
1833 2002-02-14 19:33  gregor
1835         * ops2c.pl, include/parrot/oplib.h:
1836         Added code to automatically generate a function within an oplib to
1837         lookup opinfos given the op name. This will come in handy in future
1838         when we want to twiddle opcode tables at run time and possibly at
1839         startup time.
1841 2002-02-14 19:25  gregor
1843         * examples/assembly/queens.pasm:
1844         Regenerated queens.pasm from queens.jako since the clone_* stuff
1845         went away.
1847 2002-02-14 17:12  dan
1849         * resources.c, include/parrot/resources.h: Finished up the
1850         interface for memory and tracked interpreter thingies.
1852 2002-02-14 16:53  dan
1854         * memory.c, include/parrot/memory.h: intercept free and realloc
1856 2002-02-14 05:53  dan
1858         * interpreter.c, runops_cores.c: The type changes in struct
1859         Packfile break the pointer math used in a few places to calculate
1860         the address of the end of the loaded byte code. This causes
1861         segfaults in build_asm in jit.c when using -j. It also breaks the
1862         bounds checking on opcode address in runops_slow_core.
1864         The patch adds the necessary cast to correct the code_end
1865         calculations.
1867         Courtesy of Jason Gloudon <perl@gloudon.com>
1869 2002-02-14 01:01  ajgough
1871         * types/: bignum.c, bignum.h, bignum_test.pl: Added support for
1872         BigInt operations (I think), tests for normal operation continue to
1873         pass.  Also a shed load of comments.
1875 2002-02-13 01:34  ajgough
1877         * types/: bignum.c, bignum.h, bignum_atest.pl, bignum_test.pl: This
1878         is a (mostly) working bignumber library.  There remains much work
1879         to do though, some functions are not yet implemented and headers
1880         need to find their way to the correct place RSN.  Also support for
1881         bigints and a sensible error reporting mechanism are needed.
1883 2002-02-12 18:51  dan
1885         * misc.c: Fix some warnings
1887 2002-02-12 17:10  dan
1889         * misc.c: Run through indent -kr -nce so I can read it
1891 2002-02-12 16:49  dan
1893         * misc.c: Need standard header/footer comments
1895 2002-02-11 20:32  simon
1897         * classes/array.pmc:
1898         get and set pmc methods.
1900 2002-02-11 20:19  simon
1902         * classes/array.pmc:
1903         Maybe the keys aren't integer...
1905 2002-02-11 20:03  simon
1907         * core.ops, vtable.tbl, classes/default.pmc:
1908         {g,s}et_pmc_keyed
1910 2002-02-11 19:07  simon
1912         * vtable.tbl, classes/default.pmc:
1913         Add set_pmc. Usee with caution.
1915 2002-02-11 18:20  dan
1917         * classes/: array.pmc, perlarray.pmc: Patch array classes to
1918         compile
1920 2002-02-11 17:59  simon
1922         * core.ops, embed.c, global_setup.c, key.c, rx.ops,
1923         classes/perlarray.pmc, classes/perlhash.pmc:
1924         Make it compile.
1926 2002-02-11 17:57  simon
1928         * packfile.c, include/parrot/packfile.h:
1929         Reduce warnings
1931         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
1933 2002-02-11 17:55  dan
1935         * docs/parrot_assembly.pod: Document some key ops
1937 2002-02-11 09:20  brentdax
1939         * pmc.c, include/parrot/exceptions.h: Adding a panic ought to be
1940         disgustingly easy.
1942 2002-02-11 00:34  simon
1944         * core.ops, include/parrot/exceptions.h:
1945         This is what keyed set ops look like. Remember, however, that for
1946         keyed functions, all operands must be PMCs. set(PMC, PMC, INT)
1947         means $1 = $2[$3], not $1[$2] = $3. set(PMC,PMC,PMC) is so
1948         obviously ambiguous that you ought to use the 4-arg version
1949         instead.
1951 2002-02-10 23:12  jgoff
1953         * classes/: array.pmc, perlarray.pmc: Properly allocate
1954         SELF->data's array of PMC* data in array and perlarray.pmc.  This
1955         isn't tested yet, but should be fairly straightforward.  PerlHash
1956         needs to be finished before the system will compile again, and that
1957         should be done in the next few days.
1959 2002-02-09 04:46  jgoff
1961         * classes/: array.pmc, default.pmc, intqueue.pmc,
1962         parrotpointer.pmc, perlarray.pmc, perlhash.pmc, perlundef.pmc:
1963         Added basic _keyed member functions.  Unfortunately this still
1964         doesn't fix the problems that are causing the build to break. It's
1965         a start though. I'm not implementing the PMC add functions just
1966         yet.
1968 2002-02-08 15:59  simon
1970         * classes/array.pmc:
1971         Some more work on getting the array stuff up to date.
1973 2002-02-08 12:23  simon
1975         * classes/array.pmc, classes/perlhash.pmc, include/parrot/key.h,
1976         lib/Parrot/Vtable.pm:
1977         Got array->get_integer_keyed doing what I think it ought to. One
1978         down, all the rest to go.
1980 2002-02-08 11:47  simon
1982         * vtable.tbl:
1983         Although I didn't intend it to be quite that broken...
1985 2002-02-08 11:42  simon
1987         * vtable.tbl, include/parrot/parrot.h, lib/Parrot/Vtable.pm:
1988         Completely break Parrot, but at least we get the key stuff right
1989         for now.
1991 2002-02-08 06:25  dan
1993         * hints/darwin.pl: Silences the warning about passing in
1994         -flat_namespace to the compile.  That's a link-only flag.
1996 2002-02-08 04:52  jgoff
1998         * classes/: array.pmc, default.pmc, intqueue.pmc,
1999         parrotpointer.pmc, perlarray.pmc, perlhash.pmc, perlint.pmc,
2000         perlnum.pmc, perlstring.pmc, perlundef.pmc: Filled in missing
2001         return values in *.pmc, added some missing casts to the repeat_foo
2002         members, and deleted the _index members from the perlscalar
2003         classes.  Basic cleanup, and getting ready for _keyed functions.
2005 2002-02-07 04:49  mrjoltcola
2007         * examples/assembly/bsr.pasm: Elaborated on the bsr/ret example,
2008         added a nested subroutine call.
2010 2002-02-07 04:32  jgoff
2012         * vtable.tbl, lib/Parrot/Vtable.pm: vtable.tbl got some minor
2013         changes in order to give the whitespace rules a little workout, and
2014         do a little bit more testing. No actual structural changes were
2015         made.  lib/Parrot/Vtable.pm got an interface change, and more
2016         importantly should be ready to support the new '_keyed' attribute,
2017         which will work roughly thus: PMC* src_value gets remapped to 'PMC*
2018         src_value' followed by 'KEY* src_key'.  This will be how the new
2019         _keyed operators will function, and those should be written within
2020         a few days.
2022 2002-02-06 18:00  doughera
2024         * misc.c: Change C++-style comments to C comments (again).  Remove
2025         unused perl5 code that was in #if 0/#endif.
2027 2002-02-06 17:59  doughera
2029         * warnings.c: Add trailing newline.
2031 2002-02-06 04:14  mrjoltcola
2033         * include/parrot/io.h, io/io.c: Minor cleanup.
2035 2002-02-06 03:11  mrjoltcola
2037         * examples/assembly/io1.pasm, io/io.c, io/io_win32.c: Tied up a
2038         couple of loose end in win32 IO stuff. Open behaves now but needs
2039         more work.
2041 2002-02-05 21:02  brentdax
2043         * classes/pmc2c.pl: Length on whoami init was always 7--a problem
2044         which showed up in Purify builds.
2046 2002-02-05 17:15  simon
2048         * misc.c:
2049         Warning fixes.
2051         Courtesy of: Jonathan Stowe <gellyfish@gellyfish.com>
2053 2002-02-05 17:08  doughera
2055         * misc.c: Avoid C++-style comments.
2057 2002-02-05 17:07  doughera
2059         * lib/Parrot/Jit/sun4Generic.pm: Generated assembly programs were
2060         not valid assembler for Sun's /usr/ccs/bin/as.  Now they are,
2061         thanks to Jason Gloudon <perl@gloudon.com>.
2063 2002-02-05 14:04  simon
2065         * misc.c:
2066         Make the problem different, perhaps even better.
2068 2002-02-05 13:49  simon
2070         * misc.c:
2071         Possibly fix a `short int' is promoted to `int' when passed through
2072         `...' scary error, possibly make things absolutely worse.
2074 2002-02-05 13:15  simon
2076         * Configure.pl:
2077         Placate Tru64.
2079 2002-02-05 13:12  simon
2081         * warnings.c:
2082         Not going to get far without this one...
2084 2002-02-05 11:41  simon
2086         * string.c:
2087         Don't barf when handed null pointers.
2089 2002-02-05 10:04  simon
2091         * misc.c, include/parrot/misc.h:
2092         Fix some trivial bugs in warnings code.
2094 2002-02-05 09:27  simon
2096         * misc.c:
2097         Oops, forgot this one; also added %P support.
2099 2002-02-05 09:20  simon
2101         * MANIFEST, Makefile.in, core.ops, embed.c, interpreter.c,
2102         test_main.c, classes/perlundef.pmc, include/parrot/embed.h,
2103         include/parrot/interpreter.h, include/parrot/misc.h,
2104         include/parrot/parrot.h, include/parrot/warnings.h:
2105         Warnings support.
2107         Courtesy of: Brent Dax <brentdax@cpan.org>
2109 2002-02-05 05:41  jgoff
2111         * vtable.tbl, lib/Parrot/Vtable.pm, t/pmc/perlstring.t: Changed the
2112         format of vtable.tbl to get rid of the tab-dependence.  The format
2113         now looks roughly like this:
2115         init() # 'void' and 'unique' are assumed INTVAL type ( ) # 'unique'
2116         is assumed str void concatenate (PMC* value, PMC* dest) # Nothing
2117         assumed here, but note the C-like prototyping.  Also had to disable
2118         one test that depended upon 'concat_p_p_s', which isn't necessary
2119         anyway.
2121         Vtable.pm will change again when the type '_keyed' is added,
2122         because that requires remapping parameters slightly differently
2123         again.  Also, note that it assumes 'value' is the first parameter
2124         in the list. This assumption will go away at the same time.
2126 2002-02-04 16:57  ajgough
2128         * core.ops, t/pmc/perlstring.t, t/pmc/pmc.t: More tests for pmc
2129         functions.  Thanks to Simon Glover.
2131 2002-02-04 02:47  ajgough
2133         * hints/os2.pl: Removes a flag from the os/2 hints file that isn't
2134         needed.  I suspect that the entire hints file isn't really needed,
2135         but there's no one to actually tell us this.
2137 2002-02-02 15:45  ask
2139         * docs/ParrotFAQ.htm: fix internal links
2141 2002-02-02 04:06  jgoff
2143         * classes/: array.pmc, intqueue.pmc, perlarray.pmc, perlhash.pmc:
2144         Moving the internal KEY structure from the cache.struct_val member,
2145         where it doesn't really belong, to the internal SELF->data member.
2146         This frees up the cache/type members for other usage.
2148         This is the first step in moving PMCs to the point where we can do
2149         multidimensional PMC handles. The next step is to change the
2150         assembler to accept the syntax of 'set P0["foo"],7'.
2152 2002-02-02 00:13  nicholas
2154         * include/parrot/global_setup.h: Patch from Jonathan Stowe to
2155         prototype Parrot_Array_class_init
2157 2002-02-02 00:13  nicholas
2159         * embed.c: Casts to tidy up warnings from Jonathan Stowe Change
2160         time to sum_time to avoid warning on FreeBSD about tracking a
2161         global [No, this warning does not appear on Linux. Yes, it is real
2162         :-)]
2164 2002-02-01 23:02  nicholas
2166         * embed.c: Fix fprintf format warning in Parrot_runcode. From Simon
2167         Glover
2169 2002-02-01 20:20  nicholas
2171         * t/pmc/pmc.t: Add end at end of asm in test (from Simon Glover)
2173 2002-02-01 18:20  nicholas
2175         * lib/Parrot/Test.pm: Env.pm on 5.005_03 doesn't do a use vars for
2176         you
2178 2002-02-01 13:22  nicholas
2180         * MANIFEST: Add docs/embed.pod and t/op/ifunless.t
2182 2002-02-01 12:19  simon
2184         * core.ops, t/op/ifunless.t, t/op/integer.t:
2185         Added "unless" op.
2187 2002-02-01 12:11  simon
2189         * lib/Parrot/Test.pm:
2190         Remove a warning.
2192 2002-02-01 01:38  nicholas
2194         * MANIFEST, MANIFEST.SKIP, Makefile.in: Add a MANIFEST.SKIP file,
2195         and a manitest target to Makefile.in that lets one test the
2196         manifest.
2198 2002-02-01 00:03  dan
2200         * core.ops, global_setup.c, include/parrot/pmc.h: More setup for
2201         PMC dynaloading
2203 2002-01-31 21:46  gregor
2205         * Configure.pl, Makefile.in, hints/mswin32.pl:
2206         A few more things are now configable, so we are closer to win32
2207         shared library builds. Not there yet, but closer.
2209 2002-01-31 21:00  dan
2211         * global_setup.c, classes/pmc2c.pl, include/parrot/global_setup.h,
2212         include/parrot/pmc.h: First step in dynamically loading PMC classes
2214 2002-01-31 19:38  dan
2216         * Makefile.in: Dependencies in the Makefile are currently too broad
2217         brush.  I don't enjoy waiting for everything to recompile every
2218         time I try to tweak the jit. The only file that #includes
2219         jit_struct.h is jit.c, so I feel that the Makefile dependencies
2220         should reflect this, and not cause a gratuitous recompile of
2221         everything.  There are probably other auto-generated header files
2222         that world+dog should not depend on.
2224         Courtesy of  Nicholas Clark <nick@unfortu.net>
2226 2002-01-31 19:03  gregor
2228         * Makefile.in, lib/Parrot/Test.pm, t/harness:
2229         Added two new make targets:
2231           * testp: Like 'make test', but passes -P to t/harness, so you get
2232         to
2233             see how broken predereferencing is.
2235           * testj: Like 'make test', but passes -j to t/harness, so you get
2236         to
2237             see how broken JIT is.
2239         Now, anyone who wants to see how good all three ways of running are
2240         can do so, at the cost of about 3x the time.
2242 2002-01-31 17:09  brentdax
2244         * embed.c, test_main.c: Implement the ARGV-in-P0 thing.
2246 2002-01-31 03:41  grunblatt
2248         * docs/jit.pod: Update jit.pod
2250 2002-01-31 03:20  grunblatt
2252         * jit/i386/core.jit: Hold this until we get an assemble tool,
2253         because of the different objdump problems.
2255 2002-01-31 03:13  grunblatt
2257         * Configure.pl, lib/Parrot/Jit/sun4-solaris.pm,
2258         lib/Parrot/Jit/sun4Generic.pm: Use dis intead of objdump.  Courtesy
2259         of: Jason Gloudon <perl@gloudon.com>
2261 2002-01-31 02:22  grunblatt
2263         * jit/i386/core.jit: Continue if the register is null
2265 2002-01-30 23:50  grunblatt
2267         * lib/Parrot/Jit/: alpha-bsd.pm, alpha-linux.pm, alphaGeneric.pm,
2268         i386-bsd.pm, i386-linux.pm, i386Generic.pm, sun4-solaris.pm,
2269         sun4Generic.pm: Move the AS and OBJDUMP constants to each os
2270         specific file.
2272 2002-01-30 23:35  mrjoltcola
2274         * io/io_win32.c: Change implementation of isatty on win32,
2275         suggested by Hong Zhang.
2277 2002-01-30 23:19  sfink
2279         * jit2h.pl, lib/Parrot/Op.pm, lib/Parrot/OpsFile.pm: Added
2280         Op::may_jump boolean method.
2282         Replaced jit2h's hardcoded pattern match to decide what ops might
2283         change the control flow.
2285 2002-01-30 22:13  dan
2287         * Configure.pl, MANIFEST, testparrotfuncptr.c: This patch allows
2288         parrot to mostly-build with tcc.  It allows one to skip compiling
2289         the JIT stuff (by specifying --define jitcapable=0), and it
2290         introduces a test program which gives a friendlier error in this
2291         case for compilers which are as picky as tcc is about function
2292         pointer conversion.
2294         If anyone figures out the proper way to cast these function
2295         pointers this may not be necessary.
2297         Courtesy of Josh Wilmes <josh@hitchhiker.org>
2299 2002-01-30 20:54  dan
2301         * docs/running.pod, lib/Parrot/Test.pm: I'm being anal again.
2302         Here's an update to docs/running.pod to better reflect the current
2303         state (both the test_parrot and assemble.pl improvements, plus
2304         documentation of a few more things.) And also a speling fiks
2305         s/POST_MORTERM/POST_MORTEM/.
2307         I could also replace some "perl foo" calls with "./foo" if someone
2308         wanted to set the executable flag in CVS on assemble.pl,
2309         optimize.pl, etc.
2311         Courtesy of Steve Fink <steve@fink.com>
2313 2002-01-30 20:43  dan
2315         * core.ops: find_global doesn't work, so stub out the wrong code
2317 2002-01-30 19:08  dan
2319         * lib/Parrot/Assembler.pm:  fixes the POD in Parrot::Assember so
2320         that perldoc
2321          can read it and just tidies it up generally. It also adds
2322         documentation
2323          for the constantize_integer and constantize_number functions.
2325         Courtesy of Simon Glover <scog@roe.ac.uk>
2327 2002-01-30 18:02  dan
2329         * assemble.pl, disassemble.pl, optimizer.pl, pbc2c.pl,
2330         classes/genclass.pl, classes/pmc2c.pl,
2331         languages/scheme/Scheme/Test.pm:  Many of the Perl scripts in the
2332         distribution (including assemble.pl !)
2333          can no longer find the Parrot::* modules. Enclosed patch fixes
2334         (although
2335          it would be nice if there were an easier way to do this).
2337         Courtesy of  Simon Glover <scog@roe.ac.uk>
2339 2002-01-30 16:00  mrjoltcola
2341         * io/io_win32.c: Correct function calls for win32_fdopen and arg
2342         types.
2344 2002-01-30 15:50  mrjoltcola
2346         * io/io_unix.c: Minor bug fix for fdopen flag arg type.
2348 2002-01-30 15:42  grunblatt
2350         * pbc2c.pl, examples/assembly/Makefile: Updates related to moving
2351         files around
2353 2002-01-30 15:38  grunblatt
2355         * MANIFEST: Enclosed patch adds the new SPARC-based JIT files to
2356         the manifest,  and also puts it back into alphabetical order.
2358         Courtesy of: Simon Glover <scog@roe.ac.uk>
2360 2002-01-30 14:41  nicholas
2362         * embed.c: Patch from Simon Glover to clean up warnings where
2363         prototype is () not (void)
2365 2002-01-30 13:54  nicholas
2367         * include/parrot/embed.h, test_main.c: Add void as an explicit
2368         parameter in test_main.c's usage(), version(void) and embed.h's
2369         Parrot_new() Without these gcc moans: include/parrot/embed.h:34:
2370         warning: function declaration isn't a prototype
2372 2002-01-30 12:08  simon
2374         * lib/Parrot/.cvsignore:
2375         Ignore generated Perl modules.
2377 2002-01-30 12:07  simon
2379         * t/harness:
2380         Run the PMC tests as well.
2382 2002-01-30 12:04  simon
2384         * MANIFEST:
2385         Fix MANIFEST after recent t/pmc rejig.
2387 2002-01-30 11:42  simon
2389         * lib/Parrot/Test.pm:
2390         Report non-zero exit codes.
2392         Courtesy of: Michael G Schwern <schwern@pobox.com>
2394 2002-01-30 11:39  simon
2396         * t/op/rx.t:
2397         Skip final test, TODO doesn't work yet.
2399 2002-01-30 09:54  brentdax
2401         * docs/embed.pod: Leon Brocard was kind enough to explain to me how
2402         predereferencing works.
2404 2002-01-30 09:38  brentdax
2406         * docs/: embed.pod, parrot.pod: Document this newfangled embedding
2407         subsystem.
2409 2002-01-30 09:37  brentdax
2411         * include/parrot/embed.h: Fix a mistake, clear up a warning.
2413 2002-01-30 09:37  brentdax
2415         * config_h.in: Expose another flag for embedders.
2417 2002-01-30 05:07  jgoff
2419         * make_vtable_ops.pl, t/harness: Both files didn't know of the new
2420         location for Parrot/, and t/harness wasn't able to run the new
2421         op/pmc tests. Both problems fixed, so I think I'm going to declare
2422         the build suitable for public consumption.
2424 2002-01-30 04:34  robert
2426         * docs/Makefile.in: update for CVS movement
2428 2002-01-30 04:32  robert
2430         * Makefile.in: Adjust for CVS reorganization.  (This time, edit the
2431         .in file, not the real Makefile)
2433 2002-01-30 04:20  robert
2435         * Configure.pl, jit2h.pl, ops2c.pl, ops2pm.pl, pmc_pm.pl,
2436         vtable_h.pl, classes/pmc2c.pl, include/parrot/parrot.h: Updates
2437         related to moving files around
2439 2002-01-30 04:10  robert
2441         * MANIFEST: Update MANIFEST to reflect CVS reorg.
2443 2002-01-30 04:07  robert
2445         * Configure.pl: Add './lib' to our @INC because Parrot/* moved.
2447 2002-01-30 03:56  robert
2449         * Parrot/: .cvsignore, Assembler.pm, BuildUtil.pm, Op.pm,
2450         OpTrans.pm, OpsFile.pm, Optimizer.pm, PackFile.pm, String.pm,
2451         Test.pm, Vtable.pm, Jit/alpha-bsd.pm, Jit/alpha-linux.pm,
2452         Jit/alphaGeneric.pm, Jit/i386-bsd.pm, Jit/i386-linux.pm,
2453         Jit/i386-nojit.pm, Jit/i386Generic.pm, Jit/sun4-solaris.pm,
2454         Jit/sun4Generic.pm, OpLib/.cvsignore, OpTrans/C.pm,
2455         OpTrans/CGoto.pm, OpTrans/CPrederef.pm, PackFile/ConstTable.pm,
2456         PackFile/Constant.pm, PackFile/FixupTable.pm: Moved Parrot/* to
2457         lib/Parrot/
2459 2002-01-30 03:46  robert
2461         * languages/miniperl/miniperlc: renamed to mpc
2463 2002-01-30 03:45  robert
2465         * t/op/: pmc.t, pmc_array.t, pmc_perlarray.t, pmc_perlhash.t,
2466         pmc_perlstring.t: Moved to t/op/pmc/
2468 2002-01-30 03:40  robert
2470         * include/parrot/register_funcs.h: Renamed to regfuncs.h
2472 2002-01-30 03:14  jgoff
2474         * classes/perlarray.pmc, t/op/pmc_perlarray.t, t/pmc/perlarray.t:
2475         Fixed some problems with PerlArray and added tests.  Previously,
2476         only integers could be accessed by negative indices.  After this
2477         change, all basic types can be accessed by negative indices, and
2478         they can also be set at negative indices.
2480 2002-01-29 22:13  brentdax
2482         * TODO: Just look at the stupid diff.
2484 2002-01-29 21:53  simon
2486         * TODO, docs/vtables.pod:
2487         New TODO, and tiny addition to vtables.pod
2489 2002-01-29 21:47  mrjoltcola
2491         * include/parrot/io.h, io/io_unix.c: Minor bug fix in io_unix.
2493 2002-01-29 21:38  mrjoltcola
2495         * Makefile.in: Makefile.in tweak for io depend.
2497 2002-01-29 21:15  brentdax
2499         * embed.c: Fix a segfault and some profiling formatting nits.
2501 2002-01-29 20:54  brentdax
2503         * pmc.c: Oops.
2505 2002-01-29 20:50  brentdax
2507         * pmc.c, include/parrot/exceptions.h: Exceptions are better than
2508         segfaults.
2510 2002-01-29 20:17  mrjoltcola
2512         * interpreter.c, core.ops, io.ops: CVS missed this.
2514 2002-01-29 20:17  mrjoltcola
2516         * io/io.c: These should have gone in Sunday with the rest. CVS is
2517         out to get me.
2519 2002-01-29 18:39  brentdax
2521         * platforms/win32.h: Fix Win32 whoops.
2523 2002-01-29 18:29  brentdax
2525         * embed.c, include/parrot/embed.h: A couple minor embedding fixes.
2527 2002-01-29 17:51  simon
2529         * MANIFEST, Makefile.in, config_h.in, embed.c, test_main.c,
2530         include/parrot/embed.h, include/parrot/parrot.h:
2531         Embedding support. Cool.
2533         Courtesy of: <brentdax@cpan.org>
2535 2002-01-29 15:40  grunblatt
2537         * Configure.pl: Detect if we can use "objdump".  Courtesy of: Jason
2538         Gloudon <perl@gloudon.com>
2540 2002-01-29 14:42  simon
2542         * include/parrot/parrot.h:
2543         Platform stuff has to be included *after* system headers.
2545 2002-01-29 14:05  grunblatt
2547         * interpreter.c, jit.c, Parrot/Jit/sun4-solaris.pm,
2548         Parrot/Jit/sun4Generic.pm, lib/Parrot/Jit/sun4-solaris.pm,
2549         lib/Parrot/Jit/sun4Generic.pm, include/parrot/jit.h,
2550         jit/sun4/core.jit, jit/sun4/lib.jit, jit/sun4/string.jit: Added
2551         support for SPARC.  Courtesy of: Jason Gloudon <perl@gloudon.com>
2553 2002-01-29 10:56  simon
2555         * platforms/generic.h:
2556         If we don't have a S_ISREG, produce something close to it.
2558 2002-01-29 06:01  dan
2560         * MANIFEST, README, LICENSES/Artistic: Finally added licenses
2562 2002-01-29 04:38  jgoff
2564         * classes/array.pmc: Forgot to remove some C++-isms from the
2565         get_{foo}_index routines.
2567 2002-01-29 04:26  jgoff
2569         * MANIFEST, Makefile.in, global_setup.c, classes/Makefile.in,
2570         classes/array.pmc, include/parrot/pmc.h, t/op/pmc_array.t,
2571         t/pmc/array.t: Added array class that languages other than perl can
2572         use for a basis.  It has no features like preextension, and the
2573         array index starts at 0.
2575         MANIFEST - added classes/array.pmc and t/op/pmc_array.t Makefile.in
2576         and classes/Makefile.in - Added array.pmc to the makefile.
2577         (Assuming rules like .pmc.o are portable (or even possible) I might
2578         alter classes/Makefile.in to autobuild the appropriate files.
2580 2002-01-29 02:32  dan
2582         * MANIFEST, Parrot/Test.pm, lib/Parrot/Test.pm,
2583         lib/Test/Builder.pm, lib/Test/More.pm, lib/Test/Simple.pm,
2584         lib/Test/Utils.pm, t/op/interp.t, t/op/macro.t, t/op/pmc.t,
2585         t/op/rx.t, t/op/stacks.t, t/pmc/pmc.t:
2586             Update to Test::More 0.41 which adds Test::Builder
2588             Delete the vestigal Test::Utils
2590             Change Parrot::Test so it uses Test::Builder instead of Evil
2591         Wrappers
2592             around Test::More
2594             output_* now returns whether the test passes or fails
2596             Parrot::Test no longer exports Test::More's functions.  Instead
2597         they
2598             can simply be used together.  The few tests which used
2599         Test::More
2600             features (ie. skip) have 'use Test::More' added.
2602             I ditched the export_to_level() crutch.  Do we expect parrot to
2603         work on
2604             5.004?  (literally 5.004, not 5.004_04)
2606         Courtesy of Michael G Schwern <schwern@pobox.com>
2608 2002-01-28 21:04  dan
2610         * docs/overview.pod:  There is no opcodes.pod; I'm assuming the
2611         pointer should actually be to
2612          parrot_assembly.pod, as the canonical documentation.
2614         Courtesy of Simon Glover <scog@roe.ac.uk>
2616 2002-01-28 20:21  dan
2618         * languages/jako/jakoc, t/op/stacks.t: Toss the last traces of
2619         clone[inps]
2621 2002-01-28 19:18  dan
2623         * core.ops, register.c: clone[insp] is dead
2625 2002-01-28 17:46  grunblatt
2627         * Parrot/Jit/i386Generic.pm, lib/Parrot/Jit/i386Generic.pm,
2628         jit/i386/core.jit: Fix to make the jit work in linux yet again.
2630 2002-01-28 16:45  dan
2632         * MANIFEST, README.OS_X: Added Mac OS X specific readme documenting
2633         the requirement for fink at the moment.
2635 2002-01-28 15:59  simon
2637         * test_main.c:
2638         People might try and run a directory file, with spectacular
2639         results.  We don't want that. No.
2641 2002-01-28 14:58  doughera
2643         * core.ops: Avoid C++-style comments.
2645 2002-01-28 14:16  grunblatt
2647         * jit.c, io/io.c: Changed jit.c to fit the way registers are
2648         accessed.  Readded the pio_(stdin|stdout|stderr) to make builds
2649         work again.
2651 2002-01-28 13:47  doughera
2653         * include/parrot/register.h: Avoid C++-style comment.
2655 2002-01-28 06:03  dan
2657         * MANIFEST, core.ops, interpreter.c, key.c, register.c, trace.c,
2658         Parrot/OpTrans/C.pm, Parrot/OpTrans/CGoto.pm,
2659         lib/Parrot/OpTrans/C.pm, lib/Parrot/OpTrans/CGoto.pm,
2660         docs/parrot_assembly.pod, include/parrot/interpreter.h,
2661         include/parrot/parrot.h, include/parrot/regfuncs.h,
2662         include/parrot/register.h, include/parrot/register_funcs.h,
2663         include/parrot/string.h, include/parrot/string_funcs.h: Registers
2664         are now stored in the interpreter structure itself, rather than
2665         just a pointer to the top of the register structure. Pushes and
2666         pops now involve memcpys, but register access has one fewer
2667         dereference.
2669         Fails four of the register stack tests, though, so not perfect.
2670         Needs fixing, but this is a good place to start.
2672 2002-01-28 04:40  mrjoltcola
2674         * test_main.c: cvs commit missed this. ??
2676 2002-01-28 04:27  mrjoltcola
2678         * examples/assembly/io1.pasm, include/parrot/exceptions.h,
2679         include/parrot/interpreter.h, include/parrot/io.h, io/io.c,
2680         io/io_stdio.c, io/io_unix.c, io/io_win32.c: ParrotIO local to each
2681         interpreter now (at least in theory).  IO handle array added.  Misc
2682         bug fixes in layer handling.  Changed any IO_ constants to PIO_ so
2683         we don't conflict         with system libraries.  Still have broken
2684         stuff in win32 and stdio layer.
2686 2002-01-28 04:01  mrjoltcola
2688         * include/parrot/chartype.h: Typo in chartype.h include guard.
2690 2002-01-28 03:41  mrjoltcola
2692         * t/op/interp.t: Fix flag for interp so we don't get "info"
2693         messages which break tests.
2695 2002-01-28 01:54  dan
2697         * include/parrot/string.h: A few more buffer/string flags
2699 2002-01-27 11:33  nicholas
2701         * chartypes/unicode.c: Cast unsigned argument to int in call to
2702         isdigit to silence gcc warning.
2704 2002-01-26 23:18  grunblatt
2706         * Parrot/Jit/i386Generic.pm, lib/Parrot/Jit/i386Generic.pm: Turn
2707         off that flag.
2709 2002-01-26 23:17  grunblatt
2711         * Parrot/Jit/i386Generic.pm, lib/Parrot/Jit/i386Generic.pm,
2712         jit/i386/core.jit: [no log message]
2714 2002-01-26 22:18  simon
2716         * jit/i386/core.jit:
2717         Jumping to 0x0 is a recipe for segfaults.
2719 2002-01-26 18:35  simon
2721         * t/harness:
2722         Allow user to select which tests to harness
2724         Courtesy of: Nicholas Clark <nick@unfortu.net>
2726 2002-01-26 17:20  grunblatt
2728         * Parrot/Jit/i386-linux.pm, Parrot/Jit/i386Generic.pm,
2729         lib/Parrot/Jit/i386-linux.pm, lib/Parrot/Jit/i386Generic.pm: Patch
2730         to make the jit work in linux again.
2732 2002-01-26 16:52  dan
2734         * Configure.pl, hints/darwin.pl: Add -Wno-shadow, as Darwin's
2735         headers can't cope with this. Darwin-only
2737 2002-01-26 16:04  dan
2739         * include/parrot/parrot.h: Quick note to remind folks that this
2740         isn't the file they're looking for if they're writing extensions or
2741         embedding parrot.
2743         Courtesy of Andy Dougherty <doughera@lafayette.edu>
2745 2002-01-26 00:41  mrjoltcola
2747         * MANIFEST: Oopsy.
2749 2002-01-26 00:37  mrjoltcola
2751         * docs/ParrotFAQ.htm: Parrot FAQ : Created and maintained by Adam
2752         Turoff
2754 2002-01-25 01:31  grunblatt
2756         * jit/alpha/core.jit: There is no neg or fneg.
2758 2002-01-25 01:27  grunblatt
2760         * core.ops, Parrot/Jit/alphaGeneric.pm, Parrot/Jit/i386Generic.pm,
2761         lib/Parrot/Jit/alphaGeneric.pm, lib/Parrot/Jit/i386Generic.pm,
2762         jit/alpha/core.jit, jit/i386/core.jit, t/op/integer.t,
2763         t/op/number.t: Added Parrot_neg.  Erase t.s
2765 2002-01-24 23:26  dan
2767         * interpreter.c: Best make sure unused elements are NULL
2769 2002-01-24 23:24  dan
2771         * interpreter.c: Fix stupid thinko
2773 2002-01-24 18:37  doughera
2775         * Makefile.in: Add a few missing dollar signs in the lifetest
2776         section so that ${exe} and the like get properly interpolated.
2778 2002-01-24 18:15  mrjoltcola
2780         * docs/: .cvsignore, Makefile.in, parrot.pod: Fix pod generation
2781         for io.ops file. Add reference to it in parrot.pod.  Courtesy of
2782         Simon Glover <scog@roe.ac.uk>
2784 2002-01-24 06:43  mrjoltcola
2786         * io/io_stdio.c: Oops.
2788 2002-01-24 06:34  mrjoltcola
2790         * include/parrot/io.h, io/TODO, io/io.c, io/io_stdio.c: Did a bit
2791         of work on the buffering layer.  Decided to use shared read/write
2792         buffer (as do most implementations) for now since its the simplest
2793         way to keep everything synced, (flush on seeks, flush read on
2794         writes, etc.)
2796 2002-01-24 03:38  mrjoltcola
2798         * test_main.c: Cleaned up option handling code a bit for main().
2800 2002-01-23 23:22  dan
2802         * interpreter.c, include/parrot/interpreter.h,
2803         include/parrot/resources.h: Now each interpreter gets its own hash
2804         for globals.
2806 2002-01-23 20:45  dan
2808         * Configure.pl: Fix a warning when there's no - in an architecture
2810 2002-01-22 23:57  grunblatt
2812         * docs/running.pod: [no log message]
2814 2002-01-22 20:29  doughera
2816         * KNOWN_ISSUES: long doubles don't work on SPARC either.  It
2817         appears to be a generic problem (if sizeof(long double) >
2818         sizeof(double)), not an x86-specific one.
2820 2002-01-22 16:57  doughera
2822         * runops_cores.c: Change variable name from time to starttime to
2823         avoid gcc warning about variable name shadowing.
2825 2002-01-22 16:55  doughera
2827         * classes/pmc2c.pl: Include class_init prototype too.
2829 2002-01-22 16:01  doughera
2831         * MANIFEST: [no log message]
2833 2002-01-22 01:04  ajgough
2835         * global_setup.c, classes/default.pmc, classes/intqueue.pmc,
2836         classes/parrotpointer.pmc, classes/perlarray.pmc,
2837         classes/perlhash.pmc, classes/perlint.pmc, classes/perlnum.pmc,
2838         classes/perlstring.pmc, classes/perlundef.pmc, classes/pmc2c.pl,
2839         include/parrot/global_setup.h: Patch from Nick Clark to quieten
2840         warnings from pmc files.  Message-ID:
2841         <20020121224719.GE1726@Bagpuss.unfortu.net>
2843 2002-01-22 00:53  ajgough
2845         * test_main.c: Clears up a couple of warnings in test_main.c.
2846         Thanks to Nick Clark.  Message-ID:
2847         <20020121190457.GB1726@Bagpuss.unfortu.net>
2849 2002-01-22 00:47  ajgough
2851         * string.c, chartypes/unicode.c, chartypes/usascii.c,
2852         include/parrot/chartype.h: Cause all codepoints to be treated as
2853         UNITVALS, and get_digit to return INTVAL, just in case. (Thanks to
2854         Nick Clark, see also: Message-ID:
2855         <20020121214137.GC2371@Bagpuss.unfortu.net> )
2857 2002-01-22 00:24  dan
2859         * key.c: We do mandate an ANSI conformant C compiler, don't we?
2861         Appended patch cures these warnings:
2863         key.c: In function `debug_key': key.c:29: warning: int format,
2864         INTVAL arg (arg 3) key.c:33: warning: int format, INTVAL arg (arg
2865         3) key.c:33: warning: int format, INTVAL arg (arg 4) key.c:36:
2866         warning: int format, INTVAL arg (arg 3) key.c:36: warning: int
2867         format, INTVAL arg (arg 4)
2869         Courtesy of Nicholas Clark <nick@unfortu.net>
2871 2002-01-21 12:41  mrjoltcola
2873         * MANIFEST, io.ops: For some reason cvs commit didn't get this, may
2874         be clock skew.
2876 2002-01-21 06:37  mrjoltcola
2878         * io/io.c: Cleanup a warning
2880 2002-01-21 06:28  mrjoltcola
2882         * examples/assembly/io1.pasm, include/parrot/io.h, io/io.c,
2883         io/io_stdio.c, io/io_unix.c, io/io_win32.c: Added 32/64 bit seek
2884         ops. Various other IO twiddlings.
2886 2002-01-21 03:25  grunblatt
2888         * Makefile.in: Use $jitcpuarch instead of $cpuarch.  Thanks to
2889         Melvin Smith for the catch up.
2891 2002-01-20 23:13  sfink
2893         * stacks.c: Fixed logic errors, need tests
2895 2002-01-20 22:17  brentdax
2897         * rx.c, rx.ops, include/parrot/rx.h, t/op/rx.t: Make /m work and
2898         prepare for /i to work.
2900 2002-01-20 20:52  grunblatt
2902         * Configure.pl, MANIFEST, Makefile.in, interpreter.c, jit.c,
2903         jit2h.pl, Parrot/Jit/alpha-bsd.pm, Parrot/Jit/alpha-linux.pm,
2904         Parrot/Jit/alphaGeneric.pm, Parrot/Jit/i386-bsd.pm,
2905         Parrot/Jit/i386-linux.pm, lib/Parrot/Jit/alpha-bsd.pm,
2906         lib/Parrot/Jit/alpha-linux.pm, lib/Parrot/Jit/alphaGeneric.pm,
2907         lib/Parrot/Jit/i386-bsd.pm, lib/Parrot/Jit/i386-linux.pm,
2908         Parrot/Jit/i386Generic.pm, lib/Parrot/Jit/i386Generic.pm,
2909         include/parrot/jit.h, jit/alpha/core.jit, jit/alpha/lib.jit,
2910         jit/alpha/string.jit:
2911         - Added support for ALPHA, by now linux and bsd.
2913         - Reduced jit2h.pl execution time by precompiling the call to the
2914         unimplemented op.
2916         - Reduced the duplicated code in Parrot/Jit/*.pm by adding
2917         Parrot/Jit/${cpuarch}Generic.pm
2919         - Changed the way to detect quads to what is written in "man
2920         perlfunc".
2922 2002-01-20 17:23  brentdax
2924         * rx.ops: There's no such thing as rx_allocateinfo.
2926 2002-01-19 08:26  brentdax
2928         * pbc2c.pl: Stop this stupid "hard-code the new oplib" stuff.
2930 2002-01-19 07:12  mrjoltcola
2932         * MANIFEST, core.ops, io.ops, pbc2c.pl: Separate pure ParrotIO ops
2933         into io.ops, leave the STDIO wrappers        in core.ops until they
2934         disappear.  Added debug op for switching on VM debug flag
2936 2002-01-19 01:55  mrjoltcola
2938         * include/parrot/io.h, io/TODO, io/io.c, io/io_stdio.c,
2939         io/io_unix.c, io/io_win32.c: Added a few more Win32 layer calls
2941 2002-01-19 00:55  brentdax
2943         * Makefile.in, rx.c, rx.ops, rxstacks.c, include/parrot/rx.h,
2944         include/parrot/rxstacks.h: Add regex-specific stacks for
2945         efficiency.
2947 2002-01-18 23:58  dan
2949         * Configure.pl: I think the optimal fix here is simply to remove
2950         -ansi -pedantic.  -ansi may well have some uses, but even the gcc
2951         man pages say "There is no reason to use this option [-pedantic];
2952         it exists only to satisfy pedants."
2954         Courtesy of Andy Dougherty <doughera@lafayette.edu>
2956 2002-01-18 23:23  dan
2958         * MANIFEST, docs/parrot.pod, docs/running.pod: This patch add
2959         docs/running.pod, which lists the various executables Parrot
2960         currently includes, examples of running them, and mentions of where
2961         they fail to work. It's more of a cry for help than a useful
2962         reference. :-) I've been having trouble recently when making
2963         changes in figuring out whether I broke anything, because any
2964         non-default way of running the system seems to be already broken. I
2965         can't tell what brokenness is expected and what isn't.
2967         Courtesy of  Steve Fink <steve@fink.com>
2969 2002-01-15 22:13  brentdax
2971         * include/parrot/rx.h, rx.c, rx.ops: Remove the last vestiges of
2972         substring use and enhance performance.
2974 2002-01-15 21:03  ajgough
2976         * string.c: Fix problem with string_transcode, &dest not being
2977         updated if src was already in desired encoding.
2979 2002-01-15 16:54  brentdax
2981         * rx.c, rx.ops, include/parrot/rx.h: Hunt down and destroy
2982         warnings.  Leaves only one warning, at rx.ops line 409, that I
2983         can't manage to get rid of.
2985 2002-01-15 16:50  dan
2987         * pbc2c.pl: Pointer arithmetic not quite right in the generated
2988         code.  Also patches pbc2c.pl to work with rx.ops.
2990         Courtesy of Jason Gloudon <perl@gloudon.com>
2992 2002-01-15 16:15  dan
2994         * classes/Makefile.in: All the C files in classes/ weren't being
2995         compiled with an of the gcc warnings flags. With this patch they
2996         are, and there are an awful lot of warnings, more than I could hope
2997         to understand and clear up (within any sensible time period before
2998         submitting a rash of patches, by which time everyone else would
2999         have moved the code on)
3001         Courtesy of Nicholas Clark <nick@unfortu.net>
3003 2002-01-15 16:10  dan
3005         * core.ops, ops2c.pl, Parrot/Op.pm, Parrot/OpTrans.pm,
3006         Parrot/OpsFile.pm, lib/Parrot/Op.pm, lib/Parrot/OpTrans.pm,
3007         lib/Parrot/OpsFile.pm, Parrot/OpTrans/C.pm,
3008         Parrot/OpTrans/CGoto.pm, Parrot/OpTrans/CPrederef.pm,
3009         lib/Parrot/OpTrans/C.pm, lib/Parrot/OpTrans/CGoto.pm,
3010         lib/Parrot/OpTrans/CPrederef.pm, chartypes/unicode.c,
3011         chartypes/usascii.c: This patch adds a few more macros for .ops
3012         files to use. In addition to the existing
3014          goto OFFSET(...)
3015          goto ADDRESS(...)
3016          goto POP()
3017          goto NEXT()
3019         it adds
3021          expr OFFSET(...)
3022          expr ADDRESS(...)
3023          expr POP()
3024          expr NEXT()
3026         This is intended mainly for use in helper functions in .ops files,
3027         but also for ops that need to eg push the address of the next
3028         opcode onto a stack. The only place this currently happens (outside
3029         of my private code) is in the bsr opcode, which previously
3030         hardcoded the computation.
3032         This patch also makes ops2c.pl move the CUR_OPCODE #define a bit
3033         higher in the generated file so that it can be used by static
3034         functions in the preamble.
3036         Finally, I ran into a parentheses matching problem -- should goto
3037         OFFSET(...) rewrite    \bgoto\s+OFFSET\((.*)\) or
3038         \bgoto\s+OFFSET\((.*?)\)
3040         It was done inconsistently for the different calculations, and of
3041         course neither are correct because you really want matching
3042         parentheses. But that seems like too much bother. (Currently,
3043         there's only one place that uses anything other than $n in the
3044         parentheses, and that's the enternative() op.) So I made them all
3045         .*? but emulated recent POD by also allowing (( ... )) (that's two
3046         parenthesis with a space padding the body.)
3048         The generated core_ops.c and core_ops_prederef.c files after this
3049         patch are identical except for the CUR_OPCODE and REL_PC macros
3050         getting moved a little higher, and the bsr in the regular path (not
3051         prederef) uses 'CUR_OPCODE' instead of the hardcoded 'cur_opcode'.
3053         In summary, this is a big wad of meaningless changes for the
3054         current code. But it will make adding some opcodes easier in the
3055         future, and cleans up a small nit in the current bsr.
3057         Courtesy of Steve Fink <steve@fink.com>
3059 2002-01-15 08:48  brentdax
3061         * include/parrot/rx.h: Bitmaps can now include chars >255 (well,
3062         sort of).
3064 2002-01-15 08:45  brentdax
3066         * rx.c, rx.ops: Bitmaps can now include chars >255 (well, sort of).
3068 2002-01-15 05:00  brentdax
3070         * rx.ops: Speed up rx_literal--roughly doubles benchmark
3071         performance.
3073 2002-01-14 20:18  dan
3075         * vtable.tbl, vtable_h.pl: Clean up a zillion warnings
3077         Courtesy of Nicholas Clark <nick@unfortu.net>
3079 2002-01-14 20:03  dan
3081         * Configure.pl, MANIFEST, Makefile.in, core.ops, exceptions.c,
3082         global_setup.c, interpreter.c, key.c, ops2c.pl, register.c,
3083         runops_cores.c, rx.ops, stacks.c, string.c, test_main.c, trace.c,
3084         chartypes/unicode.c, chartypes/usascii.c, classes/default.pmc,
3085         classes/parrotpointer.pmc, classes/perlarray.pmc,
3086         classes/perlhash.pmc, classes/perlint.pmc, classes/perlnum.pmc,
3087         classes/perlstring.pmc, classes/perlundef.pmc,
3088         encodings/singlebyte.c, encodings/utf16.c, encodings/utf32.c,
3089         encodings/utf8.c, include/parrot/exceptions.h, include/parrot/io.h,
3090         include/parrot/parrot.h, include/parrot/rx.h, io/io_stdio.c,
3091         io/io_win32.c, platforms/win32.c, platforms/win32.h, t/op/pmc.t,
3092         t/op/pmc_perlhash.t, t/op/rx.t, t/pmc/perlhash.t, t/pmc/pmc.t: This
3093         patch cleans up most of the MSVC-warnings when using warning level
3094         4 (the highest, one above the default level 3). It turns off two
3095         level-4 warnings for 'unreferenced formal parameter' and 'named
3096         type definition in parentheses', the latter of which was turning up
3097         warnings in MS VC headers.  Level 4 warnings also helped me find a
3098         couple of other lurking bugs in the parrot code.
3100         Replaces the various fprintf/exit combos with calls to
3101         internal_exception, which uses var_args to emulate printf. Various
3102         exception types were added as well. These are probably temporary
3103         until a real exception system arrives.
3105         Fixed some places in the IO code where wrong functions were being
3106         called, or put into the vtable.
3108         Courtesy of "Michel Lambert" <mlambert@legendent.com>
3110 2002-01-14 19:00  dan
3112         * MANIFEST: D'oh! Forgot a file.
3114         Courtesy of Andy Dougherty <doughera@lafayette.edu>
3116 2002-01-14 18:44  brentdax
3118         * rx.c, rx.ops, include/parrot/rx.h: Use bitmaps where it makes
3119         sense (and a few other enhancements to regexes).
3121 2002-01-14 07:07  brentdax
3123         * interpreter.c, runops_cores.c, test_main.c,
3124         include/parrot/interpreter.h: Make profiling a little more useful.
3126 2002-01-13 19:44  dan
3128         * Configure.pl: Turn off unsed things warnings for now
3130 2002-01-13 19:39  dan
3132         * key.c, classes/perlarray.pmc: key.c:   intialize KEY.keys
3134         classes/perlarray.c:  * get_string: is casting
3135         SELF->cache.struct_val to a STRING*,    while all other methods are
3136         using it as a KEY*; don't know    what a perlarray stringifies to,
3137         so replacing with NULL  * get_bool: the default behaviour does not
3138         look right to me
3140         Courtesy of "Mattia Barbon" <mbarbon@dsi.unive.it>
3142 2002-01-13 19:37  dan
3144         * Makefile.in, classes/Makefile.in: Makefile.in:   (Re)add ld_debug
3145         flags to LDFLAGS, so that Configure.pl --debugging   works with
3146         MSVC
3148         classes/Makefile.in   make easier to add pmb2c.pl flags to all
3149         pmc2c calls
3151         Courtesy of "Mattia Barbon" <mbarbon@dsi.unive.it>
3153 2002-01-13 19:36  dan
3155         * io/io_win32.c:   according to my MSVC docs, you should use
3156         _tcslen only after
3157           #including tchar.h
3159         Courtesy of  "Mattia Barbon" <mbarbon@dsi.unive.it>
3161 2002-01-13 19:35  dan
3163         * docs/intro.pod: Doc tweak.
3165         Courtesy of Simon Glover <scog@roe.ac.uk>
3167 2002-01-13 19:34  dan
3169         * t/: op/pmc_perlstring.t, pmc/perlstring.t:  Enclosed test checks
3170         that
3172           if Px, ...
3174          works with PerlString PMCs; these should be false if they are "",
3175         0, or
3176          are undefined, and true in every other case.
3178         Courtesy of Simon Glover <scog@roe.ac.uk>
3180 2002-01-13 19:23  dan
3182         * Configure.pl, config_h.in, core.ops, classes/perlnum.pmc: Change
3183         NUMVAL_FMT to FLOATVAL_FMT.
3185         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3187 2002-01-13 17:45  jgoff
3189         * Makefile.in, global_setup.c, classes/Makefile.in,
3190         classes/intqueue.pmc, include/parrot/pmc.h, t/op/pmc.t,
3191         t/pmc/pmc.t: IntQueue is for an upcoming article on perl.com on
3192         designing your own classes.
3194 2002-01-13 08:47  simon
3196         * interpreter.c, Parrot/OpTrans/CPrederef.pm,
3197         lib/Parrot/OpTrans/CPrederef.pm:
3198         Fix bsr in prederef mode.
3200         Courtesy of: Jason Gloudon <perl@gloudon.com>
3202 2002-01-12 15:33  dan
3204         * interpreter.c, key.c, packfile.c, register.c, resources.c,
3205         string.c, encodings/singlebyte.c, encodings/utf32.c,
3206         include/parrot/parrot.h, io/io.c, io/io_stdio.c, io/io_unix.c:
3207         Silence most of the unused variable warnings.
3209         Courtesy of Nicholas Clark <nick@unfortu.net>
3211 2002-01-12 15:18  dan
3213         * rx.ops: This patch fixes a warning and also changes an 'int' to
3214         an 'INTVAL'.  All tests should pass on Solaris.
3216         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3218 2002-01-12 15:13  dan
3220         * interpreter.c, string.c, test_main.c, classes/parrotpointer.pmc,
3221         examples/assembly/life.pasm, include/parrot/interpreter.h,
3222         include/parrot/io.h, io/io.c, io/io_stdio.c, io/io_unix.c,
3223         io/io_win32.c: More IO work. (Plus some misc twiddles)
3225         Courtesy of Melvin Smith <mrjoltcola@mindspring.com>
3227 2002-01-12 01:14  dan
3229         * include/parrot/string.h: fix a missing name
3231 2002-01-12 00:39  grunblatt
3233         * include/parrot/string.h: Few typos.
3235 2002-01-12 00:16  grunblatt
3237         * jit.c, jit2h.pl, jit/i386/core.jit: Added support for opcodes
3238         that change the program control flow.
3240 2002-01-11 23:53  brentdax
3242         * classes/parrotpointer.pmc: Tell the GC to keep its hands out of a
3243         ParrotPointer's guts.
3245 2002-01-11 23:03  dan
3247         * include/parrot/string.h: flags for the buffers, for GC
3249 2002-01-11 22:31  dan
3251         * include/parrot/pmc.h: PMC flag docs. Those'd be good...
3253 2002-01-11 22:21  dan
3255         * include/parrot/pmc.h: Started with PMC flags
3257 2002-01-11 19:33  dan
3259         * config_h.in, memory.c, resources.c, string.c,
3260         include/parrot/resources.h: Beginnings of a memory allocation/gc
3261         system. Without the GC part.
3263 2002-01-11 18:05  dan
3265         * core.ops: Make sure constant pushes are right on mixed 32/64 bit
3266         systems
3268         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3270 2002-01-11 17:50  dan
3272         * core.ops, pbc2c.pl, Parrot/OpTrans/CGoto.pm,
3273         lib/Parrot/OpTrans/CGoto.pm, include/parrot/interpreter.h: Here is
3274         a patch that makes pbc2c generated code work with the bsr opcode.
3275         It creates a new opcode 'enternative', and uses this to support a
3276         mixed model of interpretation and execution of compiled C code.
3278         Courtesy of Jason Gloudon <perl@gloudon.com>
3280 2002-01-11 17:48  dan
3282         * Makefile.in: Add life as a potential .exe target
3284 2002-01-11 17:30  dan
3286         * include/parrot/resources.h: Start of arena stuff for GC
3288 2002-01-11 05:34  brentdax
3290         * rx.ops: Docs modifications.
3292 2002-01-11 04:19  brentdax
3294         * rx.ops, include/parrot/rx.h: Remove unnecessary evilness from
3295         regular expressions.
3297 2002-01-11 03:44  grunblatt
3299         * jit/i386/core.jit: off by one.
3301 2002-01-11 02:25  dan
3303         * Makefile.in, examples/assembly/life.pasm: Tweak to life benchmark
3305         Courtesy of Steve Fink <steve@fink.com>
3307 2002-01-11 00:32  brentdax
3309         * MANIFEST: Forgot to put parrotpointer.pmc in the MANIFEST.
3311 2002-01-10 23:22  ajgough
3313         * string.c, docs/strings.pod: Removed all the nul termination code,
3314         as this is in general a bad idea.  Note added to docs/strings.pod
3315         to warn people away from assuming termination.
3317 2002-01-10 23:14  dan
3319         * core.ops, interpreter.c, jit.c, rx.c, rx.ops, stacks.c,
3320         testparrotsizes_c.in, include/parrot/interpreter.h,
3321         include/parrot/rx.h, include/parrot/stacks.h: Much nicer stack
3322         implementation
3324         Courtesy of Steve Fink <steve@fink.com>
3326 2002-01-10 22:48  dan
3328         * core.ops: Fix 'basic' test 1 for sizeof(opcode_t) !=
3329         sizeof(INTVAL)
3331         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3333 2002-01-10 22:46  dan
3335         * key.c, classes/perlhash.pmc, t/op/pmc_perlhash.t,
3336         t/pmc/perlhash.t:  Well, actually two bugs.
3338          The first is an off-by-one error in key.c than can cause parrot
3339          to segfault if hash % NUM_BUCKETS happens to be zero.
3341          The other is a bug in the PerlHash init() code that causes new
3342         PerlHash
3343          PMCs to start with the wrong size.
3345          Both fixed below; also tests to prevent them recurring.
3347         Courtesy of Simon Glover <scog@roe.ac.uk>
3349 2002-01-10 22:30  dan
3351         * classes/default.pmc, classes/perlarray.pmc, t/op/pmc_perlarray.t,
3352         t/pmc/perlarray.t:  The enclosed patch allows one to use the if op
3353         with a PerlArray,
3355         Courtesy of Simon Glover <scog@roe.ac.uk>
3357 2002-01-10 21:31  dan
3359         * examples/assembly/life.pasm: Tweaked to be a benchmarkable thing
3361 2002-01-10 20:30  grunblatt
3363         * jit.c, jit2h.pl, Parrot/Jit/i386-bsd.pm,
3364         Parrot/Jit/i386-linux.pm, lib/Parrot/Jit/i386-bsd.pm,
3365         lib/Parrot/Jit/i386-linux.pm, jit/i386/core.jit, jit/i386/lib.jit:
3366         All the op codes that doesn't change the program control flow now
3367         work in the JIT by calling the code generated by the compiler when
3368         the op is not in core.jit TODO:     * Make all the ops that change
3369         the program control flow (and are not on core.jit) work.      *
3370         Remove the dispatch payload.
3372 2002-01-10 17:13  dan
3374         * classes/parrotpointer.pmc: This patch fixes parrotpointer.pmc,
3375         which tries to return 0 from a void function.
3377         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3379 2002-01-10 17:12  dan
3381         * t/op/macro.t: Skip tests, don't comment them out.
3383         Courtesy of Simon Glover <scog@roe.ac.uk>
3385 2002-01-10 17:10  dan
3387         * rx.c: This fixes a couple of nits in rx.c:
3389            1. There's no newline at the end, which makes gcc unhappy.
3390            2. We should use NULL, not 0 or "", for creating null pointers.
3392         Courtesy of Simon Glover <scog@roe.ac.uk>
3394 2002-01-10 17:09  dan
3396         * MANIFEST:  Adds rx.t, removes duplicated rx.c and puts everything
3397         back in
3398          alphabetical order.
3400         Courtesy of Simon Glover <scog@roe.ac.uk>
3402 2002-01-10 16:54  ajgough
3404         * resources.c: Made free_string check that there was a string to
3405         free.  In reponse to a bug spotted by Joshua Nye.
3407 2002-01-09 22:44  dan
3409         * global_setup.c: Forgot the setup
3411 2002-01-09 22:35  dan
3413         * rx.ops: Forgot this one
3415 2002-01-09 22:35  dan
3417         * MANIFEST, Makefile.in, rx.c, string.c, include/parrot/pmc.h,
3418         include/parrot/rx.h, t/op/rx.t: Preliminary regex implementation.
3419         Tests don't work, though.
3421         Courtesy of "Brent Dax" <brentdax@cpan.org>
3423 2002-01-09 21:48  dan
3425         * t/: op/pmc_perlarray.t, pmc/perlarray.t: Whoops, forgot that
3427 2002-01-09 21:22  dan
3429         * classes/Makefile.in, classes/parrotpointer.pmc, Makefile.in:
3430         Generic pointer holder class
3432         Courtesy of "Brent Dax" <brentdax@cpan.org>
3434 2002-01-09 21:19  dan
3436         * MANIFEST, classes/perlarray.pmc, t/op/pmc.t, t/pmc/pmc.t: Array
3437         patches.
3439 2002-01-09 19:54  dan
3441         * io/io_unix.c: Whoops. Forgot one
3443 2002-01-09 19:43  dan
3445         * key.c, classes/perlhash.pmc, t/op/pmc_perlhash.t,
3446         t/pmc/perlhash.t: Fix hash crash bugs
3448         Courtesy of Simon Glover <scog@roe.ac.uk>
3450 2002-01-09 19:13  dan
3452         * memory.c: Signedness whoops.
3454         Courtesy of Simon Glover <scog@roe.ac.uk>
3456 2002-01-09 18:23  dan
3458         * MANIFEST, Makefile.in, include/parrot/io.h, io/io.c, io/io_os.c,
3459         io/io_stdio.c, io/io_win32.c: Changes:
3461         -Minor layer cleanups -Win32 layer added (mostly stubs for now) but
3462         will be using the   Win32 API and company rather than the unix-ish
3463         fake ones.  -stdin/stdout/stderr Win32 specific code added. Rather
3464         than use   0,1,2, Microsoft says use GetStdHandle(), etc. so that
3465         stuff is   there. Soon we should be able to start using these
3466         rather than   fprintf(stderr, ...) and remove stdio linkage.
3468         Courtesy of <mrjoltcola@mindspring.com>
3470 2002-01-09 17:26  dan
3472         * test_main.c: Fixes bad code gen on x86.
3474         Courtesy of Josh Wilmes <josh@hitchhiker.org>
3476 2002-01-09 17:24  dan
3478         * Configure.pl, config_h.in, core.ops, key.c, classes/perlint.pmc,
3479         classes/perlnum.pmc: This patch adds macros to the config.h file
3480         for INTVAL and NUMVAL printf formats.
3482         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3484 2002-01-08 22:55  ajgough
3486         * docs/vtables.pod: Clarify what get_string should do.
3488 2002-01-08 20:05  dan
3490         * key.c: Keep comments in sync.
3492         Courtesy of Simon Glover <scog@roe.ac.uk>
3494 2002-01-08 19:50  dan
3496         * memory.c, include/parrot/memory.h: Need a realloc
3498 2002-01-08 17:24  gregor
3500         * .cvsignore, Configure.pl, Makefile.in:
3501         Added 'reconfig' make target and corresponding --reconfig option to
3502         Configure.pl, so its very easy to re-run Configure.pl with the last
3503         (command-line) options you passed it.
3505 2002-01-08 16:33  dan
3507         * core.ops, make_vtable_ops.pl, Parrot/OpsFile.pm,
3508         lib/Parrot/OpsFile.pm: Add in, out, and inout parameters to teh ops
3509         in core.ops. Potential help for optimizers and JITters.
3511         Courtesy of gregor@linux1.kennedytech.com
3513 2002-01-08 16:32  dan
3515         * key.c: Grab key length from the right spot
3517         Courtesy of "Peter Gibbs" <peter@emkel.co.za>
3519 2002-01-08 13:27  ajgough
3521         * test_main.c: Fix slight thinko in realloc usage for reading from
3522         stdin.
3524 2002-01-08 11:34  ajgough
3526         * test_main.c: Allow test_parrot to read bytecode stream from
3527         stdin, adds -f command line option, with "-f -" doing the stdin
3528         stuff.
3530 2002-01-08 06:34  jgoff
3532         * key.c, include/parrot/key.h: key.c - Added simple implementation
3533         of buckets.  include/parrot/key.h - Added enum_key_bucket type
3535 2002-01-08 03:21  jgoff
3537         * include/parrot/key.h: Added an undef type to the key structure,
3538         so we can delete keys without confusion.
3540 2002-01-07 22:09  dan
3542         * key.c, packfile.c, string.c, include/parrot/key.h,
3543         include/parrot/packfile.h, include/parrot/string.h: Fix whines
3544         about index being redefined
3546         Courtesy of Nick Clark
3548 2002-01-07 21:15  dan
3550         * ops2pm.pl: Don't allow the same ops lib to be included twice.
3552         Courtesy of Steve Fink <steve@fink.com>
3554 2002-01-07 20:48  dan
3556         * Parrot/Test.pm, lib/Parrot/Test.pm: Report useful info for test
3557         failures
3559         Courtesy of "Brent Dax" <brentdax@cpan.org>
3561 2002-01-07 20:43  dan
3563         * docs/intro.pod: Missing a comma
3565         Courtesy of "coral" <coral@eekeek.org>
3567 2002-01-07 20:41  dan
3569         * global_setup.c: Quiet a warning
3571         Courtesy of Simon Glover <scog@roe.ac.uk>
3573 2002-01-07 18:58  gregor
3575         * t/op/.cvsignore:
3576         Ignore intermediate test files.
3578 2002-01-07 17:01  gregor
3580         * ops2c.pl:
3581         Print a warning if an .ops file is mentioned more than once on the
3582         command line.
3584 2002-01-07 16:12  ajgough
3586         * t/: op/pmc_perlhash.t, pmc/perlhash.t: A couple more hash tests,
3587         these shouldn't fail.
3589 2002-01-07 15:15  simon
3591         * t/: op/pmc_perlhash.t, pmc/perlhash.t:
3592         Stop segfaults.
3594 2002-01-07 15:11  simon
3596         * key.c:
3597         Fix zero-termination bug in hash function.
3599 2002-01-07 13:37  ajgough
3601         * MANIFEST, t/op/pmc_perlhash.t, t/pmc/perlhash.t: Added
3602         pmc_perlhash.t, one test currently fails, one passes, yin-yang fun.
3604 2002-01-07 11:53  brentdax
3606         * Configure.pl: Fixes the + thing in prompts, plus adds a synonym
3607         (:add{foo}) and a new deleting thing (:rem{foo})
3609 2002-01-07 11:43  simon
3611         * Configure.pl:
3612         Gobble the + before concatenating.
3614 2002-01-07 03:53  dan
3616         * Makefile.in: Dependency fix for new ops setup.
3618 2002-01-07 03:33  jgoff
3620         * classes/perlarray.pmc: Add negative indices, and fix a small
3621         allocation problem.
3623 2002-01-06 23:54  ajgough
3625         * hints/os2.pl: Makes the hints file take account of ldflags and
3626         ccflags being split.  This hints file is still very specific to
3627         builds with gnu tools, but a proper solution can wait.   Thanks to
3628         Nick Burch.
3630 2002-01-06 22:12  dan
3632         * Makefile.in, ops2c.pl, Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm:
3633             -changes Parrot::OpLib::core's dependencies to reflect the new
3634         selectable ops files    -allows some of the special forms of 'goto'
3635         inside the PREAMBLE of an opcode file
3637         Courtesy of "Brent Dax" <brentdax@cpan.org>
3639 2002-01-06 19:59  simon
3641         * Makefile.in:
3642         *cough*
3644 2002-01-06 18:19  dan
3646         * classes/perlhash.pmc: Fix some type issues.
3648         Courtesy of Josh Wilmes <josh@hitchhiker.org>
3650 2002-01-06 18:03  dan
3652         * Configure.pl, Makefile.in: It adds a prompt to Configure asking
3653         for a list of opcode files to use.  The default is everything
3654         available except for obscure.ops.
3656         In addition, it makes it so that if your answer to a question
3657         starts with '+', it will concatenate it to the default.  For
3658         example:
3660         What C compiler do you want to use? [cl] +HAHAHA!!!
3662         will result in $PConfig{cc} eq "cl HAHAHA!!!".  While that example
3663         is not terribly useful, it is quite useful with things like
3664         command-line flags and the like.
3666         Finally, it contains a couple tweaks so that my syntax-highlighting
3667         editor recognizes some heredocs correctly.  :^)
3669         Courtesy of "Brent Dax" <brentdax@cpan.org>
3671 2002-01-06 17:59  dan
3673         * KNOWN_ISSUES, MANIFEST, README: Doc Patches
3675         Courtesy of "Bryan C. Warnock" <bwarnock@raba.com>
3677 2002-01-06 17:58  dan
3679         * MANIFEST:  We're missing a couple of files from the MANIFEST.
3681         Courtesy of Simon Glover <scog@roe.ac.uk>
3683 2002-01-06 17:57  dan
3685         * ops2c.pl, Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm:   1.
3686         Compiler directives, etc. in files other than core.ops will now
3687         work.   2.  Compiler warnings will now display the file and line
3688         number of the  opcode file.
3690         Courtesy of "Brent Dax" <brentdax@cpan.org>
3692 2002-01-06 17:52  dan
3694         * languages/jako/jakoc: Fix breakage caused by iton/ntoi going away
3696         Courtesy of Simon Glover <scog@roe.ac.uk>
3698 2002-01-06 17:36  dan
3700         * docs/intro.pod: Lots of updates
3702         Courtesy of Simon Glover <scog@roe.ac.uk>
3704 2002-01-06 02:34  gregor
3706         * interpreter.c:
3707         Add some internal documentation on the theory of operation of the
3708         prederef code.
3710 2002-01-06 02:17  gregor
3712         * interpreter.c:
3713         Removed unnecessary include.
3715 2002-01-05 12:37  simon
3717         * classes/.cvsignore:
3718         Ignore generated .h files.
3720         Courtesy of: Josh Wilmes <josh@hitchhiker.org>
3722 2002-01-05 12:37  simon
3724         * Configure.pl:
3725         Make lcc happier by adding a dummy structure.
3727         Courtesy of: Josh Wilmes <josh@hitchhiker.org>
3729 2002-01-05 12:35  simon
3731         * global_setup.c, classes/perlundef.pmc, t/op/pmc.t, t/pmc/pmc.t:
3732         Make perlundef work. (And coincidentally stop segfaults in the
3733         tests :)
3735         Courtesy of: Jason Gloudon <perl@gloudon.com>
3737 2002-01-05 04:59  dan
3739         * t/: op/pmc.t, pmc/pmc.t: Undef tests added.
3741 2002-01-05 04:55  jgoff
3743         * classes/perlhash.pmc: Added perlhash class definition
3745 2002-01-05 04:48  dan
3747         * core.ops: Fix on 64 bit platforms with 32-bit opcode_t
3749         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3751 2002-01-05 03:57  jgoff
3753         * MANIFEST, Makefile.in, core.ops, global_setup.c, key.c,
3754         vtable.tbl, classes/Makefile.in, classes/default.pmc,
3755         include/parrot/key.h, include/parrot/pmc.h, t/op/pmc.t,
3756         t/pmc/pmc.t: Initial hash commit.
3758         core.ops - Adding set({i,n,s},p,s) and set(p,{i,n,s},s) operations.
3759          key.h  - Adding NUM_BUCKETS classes/default.pmc - Adding
3760         set_{integer,number,string}_index_s
3762         This does not yet do collision resolution, but will soon.
3764 2002-01-05 02:54  dan
3766         * interpreter.c: More unsigned fixes
3768         Courtesy of "Bryan C. Warnock" <bwarnock@raba.com>
3770 2002-01-04 22:13  dan
3772         * Configure.pl, hints/mswin32.pl: Makes config's building of the
3773         test programs happier.
3775         Courtesy of "Jason Diamond" <jason@injektilo.org>
3777 2002-01-04 19:00  dan
3779         * Configure.pl, Makefile.in, hints/darwin.pl: Add link flags as
3780         separate things
3782 2002-01-04 18:27  dan
3784         * Configure.pl, Makefile.in, classes/Makefile.in, hints/mswin32.pl:
3785         Fixes to get things configuring and building on Win32 Native.
3787         Courtesy of "Jason Diamond" <jason@injektilo.org>
3789 2002-01-04 17:39  dan
3791         * hints/vms.pl: debug cleanup
3793 2002-01-04 16:53  dan
3795         * docs/parrot.pod:  The enclosed patch brings the list of
3796         documentation in parrot.pod
3797          up to date.
3799         Courtesy of Simon Glover <scog@roe.ac.uk>
3801 2002-01-04 16:47  dan
3803         * test_main.c, Parrot/Jit/i386-linux.pm,
3804         lib/Parrot/Jit/i386-linux.pm: In an attempt to just keep knocking
3805         off warnings..
3807         Courtesy of Kevin Falcone <kevin@jibsheet.com>
3809 2002-01-04 16:44  dan
3811         * Configure.pl, Makefile.in: Fixed linking to use linker.
3813         Courtesy of Josh Wilmes <josh@hitchhiker.org>
3815 2002-01-04 16:39  dan
3817         * io/io_stdio.c: Added CVS tag info
3819 2002-01-04 16:35  dan
3821         * hints/cygwin.pl: Time for this. We need a sane linker, and ld2
3822         isn't it
3824 2002-01-04 16:26  dan
3826         * languages/miniperl/Miniperl/Tokenizer.pm: Quiet a warning in the
3827         Tokenizer test
3829         Courtesy of Jonathan Stowe <gellyfish@gellyfish.com>
3831 2002-01-04 16:17  dan
3833         * chartypes/unicode.c: Silence some warnings.
3835         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3837 2002-01-04 16:09  dan
3839         * classes/: genclass.pl, perlarray.pmc, perlint.pmc, perlnum.pmc,
3840         perlstring.pmc, perlundef.pmc:  - genclass.pl attempts to put $Id$
3841         into generated files
3842            but the $Id$ string gets mangled when it's committed.
3843            This patch fixes the existing .pmc files and fixes genclass.pl.
3845          - Makes capitalization in .pmc header match actual filenames
3847          - The command for calling genclass.pl in vtables.pod is incorrect,
3848            since it assumes you're running in classes/ but genclass.pl
3849         assumes
3850            it's being run from the main directory. I changed genclass.pl to
3851         not
3852            care.
3854         Courtesy of Steve Fink <steve@fink.com>
3856 2002-01-04 03:57  dan
3858         * MANIFEST, io/TODO, io/io_stdio.c: No wonder things worked for
3859         me--I *had* the files:wq!
3861 2002-01-04 03:40  dan
3863         * MANIFEST: Whoops--remove files not really there
3865 2002-01-04 03:37  dan
3867         * interpreter.c, stacks.c, include/parrot/stacks.h: The patch below
3868         my sig adds a new_stack() function to take care of the allocation
3869         and setup of "generic" stacks.
3871         Courtesy of "Brent Dax" <brentdax@cpan.org>
3873 2002-01-04 02:36  dan
3875         * core.ops:  The entry in core.ops for puts(s|sc) is missing a =cut
3876         and so
3877          writes a load of junk in core_ops.pod. Applied patch fixes.
3879         Courtesy of Simon Glover <scog@roe.ac.uk>
3881 2002-01-04 02:35  dan
3883         * classes/: perlint.pmc, perlnum.pmc, perlstring.pmc: The PerlInt
3884         logical-or is using get_integer instead of get_bool for logical
3885         operations. This patch corrects that.
3887         Perlnum and perlstring have working get_bool's, so the default
3888         logical_or and logical_and should be sufficient. The empty methods
3889         are pointed to the default logical_or.
3891         Courtesy of Jason Gloudon <perl@gloudon.com>
3893 2002-01-04 02:31  dan
3895         * Makefile.in: docs/Makefile should be removed by realclean, but
3896         isn't
3898         Courtesy of Kevin Falcone <kevin@jibsheet.com>
3900 2002-01-04 02:29  dan
3902         * classes/: Makefile.in, pmc2c.pl: PMC inheritance! Yay!
3904         Courtesy of Steve Fink <steve@fink.com>
3906 2002-01-04 00:51  dan
3908         * docs/vtables.pod: More docs
3910         Courtesy of Steve Fink <steve@fink.com>
3912 2002-01-04 00:47  dan
3914         * Configure.pl: Updated 64-bit patch
3916         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3918 2002-01-04 00:43  dan
3920         * Configure.pl: 64-bit Fix.
3922         Courtesy of "Bryan C. Warnock" <bwarnock@raba.com>
3924 2002-01-03 22:37  dan
3926         * MANIFEST, Makefile.in, interpreter.c, include/parrot/io.h,
3927         io/io.c, io/io_os.c: Code cleanup, started STDIO layer, started
3928         some buffering work.       Additional work on other layers.
3930         Courtesy of Melvin Smith <mrjoltcola@mindspring.com>
3932 2002-01-03 19:41  gregor
3934         * disassemble.pl, obscure.ops, packfile.c, pbc2c.pl:
3935         Updated copyright messages on top-level files.
3937 2002-01-03 04:23  robert
3939         * make.pl: Add author information.  Bonsai test.
3941 2002-01-03 04:02  dan
3943         * io/io_os.c: Twig Bonsai
3945 2002-01-03 03:45  dan
3947         * io/: io_os.c, io_os.c: Twig Bonsai
3949 2002-01-03 03:41  dan
3951         * io/io_os.c: Twig Bonsai
3953 2002-01-02 21:42  gregor
3955         * packfile.c, include/parrot/packfile.h:
3956         Get rid of warnings in packfile.[hc]
3958 2002-01-02 20:39  gregor
3960         * manicheck.pl:
3961         Bracketed translated patterns with ^ and $.
3963 2002-01-02 20:11  dan
3965         * io/io_os.c: silence a warning
3967 2002-01-02 19:52  grunblatt
3969         * jit.c, jit2h.pl, include/parrot/jit.h: Moved the definition of
3970         op_assembly to jit_struct.h, so that we get the real number of ops.
3971          Removed some warnings.
3973 2002-01-02 19:31  tom
3975         * string.c: Fix string transcoding so that it actually works.
3977         Patch from Peter Gibbs <peter@emkel.co.za>
3979 2002-01-02 19:20  gregor
3981         * manicheck.pl:
3982         A program to check the MANIFEST file, accounting for .cvsignore
3983         files.
3985 2002-01-02 19:19  dan
3987         * t/harness: twig bonsai
3989 2002-01-02 19:13  dan
3991         * t/harness: twig bonsai
3993 2002-01-02 18:54  dan
3995         * t/harness: Tweak to test Bonsai
3997 2002-01-02 16:27  dan
3999         * Configure.pl: Allow 64-bit build of parrot on systems with a
4000         mixed 32/64 bit perl
4002         Courtesy of David M. Lloyd <dmlloyd@tds.net>
4004 2002-01-02 15:33  simon
4006         * MANIFEST, docs/Makefile:
4007         Fixed up MANIFEST. (And I removed the Makefile in docs/)
4009         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
4011 2002-01-02 13:51  simon
4013         * Configure.pl:
4014         Die on broken manifest.
4016 2002-01-02 13:48  simon
4018         * jit2h.pl, examples/assembly/mops.pasm:
4019         Clear up JIT warnings.
4021         Courtesy of: Nick Clark <nick@unfortu.net>
4023 2002-01-02 04:10  dan
4025         * io/io.c, io/io_os.c, t/op/interp.t: IO stack now gets initialized
4026         only once, so new interp creation works again
4028         Courtesy of Melvin Smith <mrjoltcola@mindspring.com>
4030 2002-01-02 03:32  dan
4032         * t/op/interp.t: Stubbed the test out, since it's hanging at the
4033         moment.
4035 2002-01-02 00:55  dan
4037         * MANIFEST, Makefile.in, core.ops, include/parrot/io.h, io/io.c,
4038         io/io_os.c: Initial IO system patches
4040         Courtesy of <mrjoltcola@mindspring.com>
4042 2002-01-01 22:55  ajgough
4044         * classes/default.pmc: On second thoughts, and some prodding, the
4045         set_* methods now only set the appropriate part of the cache, and
4046         do nothing else.
4048 2002-01-01 22:29  ajgough
4050         * classes/default.pmc:  Wrote a whole host of default pmc methods.
4052          set_* create appropriate Perl* result.
4053          get_* simply grabs needed bit of cache.*_val
4055          Other methods do the rightest thing I can think of, at the moment.
4057          None yet cope with overflow, the modulus operation needs to be
4058         checked as
4059         I don't know quite which semantics we really want.
4061         Not tested yet.
4063 2002-01-01 20:23  dan
4065         * docs/Makefile, encodings/singlebyte.c, encodings/utf16.c,
4066         encodings/utf32.c, encodings/utf8.c, include/parrot/encoding.h: Got
4067         rid of unneeded tmp var and eliminated const from encode prototype
4068         since it does make changes to the string.
4070         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4072 2002-01-01 20:11  dan
4074         * Makefile.in: Make clean now tosses pdump.o
4076         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4078 2002-01-01 19:49  dan
4080         * pdump.c, test_main.c: Warnings cleanup
4082         Courtesy of Josh Wilmes <josh@sky.net>
4084 2002-01-01 19:45  dan
4086         * Configure.pl, Makefile.in, docs/.cvsignore, docs/Makefile.in,
4087         hints/mswin32.pl, languages/jako/Makefile.in,
4088         languages/scheme/Makefile.in: Makes cleanup better on non-Unix
4089         platforms
4091         Courtesy of "Jason Diamond" <jason@injektilo.org>
4093 2002-01-01 19:41  dan
4095         * include/parrot/register.h: Clean up some warnings
4097         Courtesy of Josh Wilmes <josh@hitchhiker.org>
4099 2002-01-01 19:10  simon
4101         * pbc2c.pl, Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm:
4102         Hack-around to enable compilation of code using vtable ops.
4104 2002-01-01 18:43  dan
4106         * encodings/: singlebyte.c, utf16.c, utf32.c, utf8.c: Toss <0
4107         checks on unsigned things
4109         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4111 2002-01-01 18:26  dan
4113         * runops_cores.c: More warning silences.
4115         Courtesy of Nicholas Clark <nick@unfortu.net>
4117 2002-01-01 18:25  dan
4119         * trace.c: Shuts up a warning.
4121         Courtesy of Nicholas Clark <nick@unfortu.net>
4123 2002-01-01 18:24  dan
4125         * encodings/singlebyte.c: Clean up some warnings.
4127         Courtesy of Nicholas Clark <nick@unfortu.net>
4129 2002-01-01 18:20  dan
4131         * Configure.pl: Hey, those PPros are really x86 systems! Who'dve
4132         thunk it?
4134         Courtesy of "Bryan C. Warnock" <bwarnock@raba.com>
4136 2002-01-01 18:17  dan
4138         * packfile.c: Warning cleanup
4140         Courtesy of Nicholas Clark <nick@unfortu.net>
4142 2002-01-01 17:53  dan
4144         * string.c: New string size should be based on output encoding's
4145         size, not input encoding's size.
4147         Courtesy of: "Peter Gibbs" <peter@emkel.co.za>
4149 2002-01-01 17:22  dan
4151         * Configure.pl, core.ops, interpreter.c, memory.c, runops_cores.c,
4152         string.c, test_main.c, trace.c, include/parrot/exceptions.h,
4153         include/parrot/interpreter.h, include/parrot/memory.h,
4154         include/parrot/oplib.h, include/parrot/string.h, t/op/string.t:
4155         Warnings fixups.
4157         Courtesy of Chip Turner <cturner@redhat.com>
4159 2002-01-01 17:09  dan
4161         * encodings/singlebyte.c, encodings/utf16.c, encodings/utf32.c,
4162         encodings/utf8.c, include/parrot/encoding.h: Some signed things are
4163         now unsigned, as is proper.
4165         Courtesy of: "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4166         Courtesy of: "Bryan C. Warnock" <bwarnock@raba.com>
4168 2002-01-01 16:59  dan
4170         * include/parrot/trace.h: Useless debugging prototype removed
4172         Courtesy of: "Bryan C. Warnock" <bwarnock@raba.com>
4174 2002-01-01 16:58  dan
4176         * MANIFEST: We forgot a file.
4178         Courtesy of "Bryan C. Warnock" <bwarnock@raba.com>
4180 2002-01-01 03:53  dan
4182         * Configure.pl: Okay, I give. Removed some warnings because the
4183         darned system headers were triggering them. Sloppy, sloppy
4184         coding...
4186 2002-01-01 03:48  dan
4188         * config_h.in: Add in an unsigned INTVAL.
4190         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4192 2002-01-01 03:46  dan
4194         * global_setup.c: Clean up some compiler warnings.
4196         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4198 2002-01-01 03:43  dan
4200         * ops2c.pl, Parrot/OpTrans.pm, Parrot/OpTrans/CPrederef.pm,
4201         lib/Parrot/OpTrans.pm, lib/Parrot/OpTrans/CPrederef.pm,
4202         include/parrot/op.h: Cleaned up some things to make the compiler
4203         happier.
4205         Courtesy of Nicholas Clark <nick@unfortu.net>
4207 2002-01-01 03:14  dan
4209         * Configure.pl: Quad updates.
4211         Courtesy of Nicholas Clark <nick@unfortu.net>
4213 2001-12-31 22:53  dan
4215         * include/parrot/op.h: Typedef had parameters backwards. Threw
4216         core.ops for a big whiny warnings loop.
4218 2001-12-31 22:37  dan
4220         * Makefile.in, resources.c: Tweaks to try and get things to build
4221         in the right order.
4223 2001-12-31 21:58  dan
4225         * Configure.pl: Stupid thinko fix
4227 2001-12-31 21:34  dan
4229         * Configure.pl, hints/mswin32.pl: Tweaks for Win32 builds
4231         Courtesy of: "Jason Diamond" <jason@injektilo.org>
4233 2001-12-31 21:32  dan
4235         * Configure.pl: Fix for non-gcc systems
4237 2001-12-31 20:22  dan
4239         * interpreter.c: Tweak so we can build on non-JIT platforms
4241 2001-12-31 20:11  dan
4243         * Configure.pl: Force the time on some copied files to be 'now' to
4244         make the Win builds much less annoying.
4246         Courtesy of "Jason Diamond" <jason@injektilo.org>
4248 2001-12-31 20:07  dan
4250         * Configure.pl: Nuke all object files in the parrot tree that
4251         matter when configuring.  Shouldn't be necessary with good
4252         dependencies in the makefile, but we don't have those yet.
4254 2001-12-31 20:00  gregor
4256         * chartypes/unicode.c:
4257         Silence unused variable warnings.
4259 2001-12-31 19:40  dan
4261         * Configure.pl: Minor Win32 tweaks. Tossed -Wtraditional, too
4263 2001-12-31 19:37  gregor
4265         * interpreter.c, jit.c, include/parrot/jit.h:
4266         Created a prototype for JIT functions and used it in interpreter.c.
4268 2001-12-31 19:31  dan
4270         * Configure.pl, test_gnuc.c: Better GCC detection (and version
4271         detection) with really cranky warnings if we find we're using it.
4273         Courtesy of: Nicholas Clark <nick@unfortu.net>
4275 2001-12-31 18:01  gregor
4277         * interpreter.c, include/parrot/interpreter.h, include/parrot/op.h:
4279         Fixed a few warnings wrt prototypes, etc.
4281 2001-12-31 17:23  dan
4283         * string.c: Silenced most of the compiler whines
4285 2001-12-31 17:15  gregor
4287         * Configure.pl:
4288         Get the ccname from either ccname or just cc config var.
4290 2001-12-31 17:14  gregor
4292         * Parrot/Op.pm, lib/Parrot/Op.pm:
4293         Another intermediate opbody notation. Could come in handy. Explicit
4294         types.
4296 2001-12-31 17:05  dan
4298         * string.c: Minor warnings update
4300 2001-12-31 17:00  dan
4302         * include/parrot/string.h: Warnings cleanup
4304 2001-12-31 16:00  simon
4306         * encodings/utf8.c, include/parrot/encoding.h:
4307         Remove a couple more.
4309 2001-12-31 15:58  simon
4311         * vtable_h.pl, include/parrot/global_setup.h, include/parrot/jit.h,
4312         include/parrot/op.h:
4313         Rid ourselves of a few warnings.
4315 2001-12-31 15:32  dan
4317         * Configure.pl: Made GCC ever so much pickier.
4319         Switch list courtesy of Jarkko.
4321 2001-12-31 15:22  dan
4323         * string.c: Tightened up initial allocation.
4325         Courtesy of:  "Peter Gibbs" <peter@emkel.co.za>
4327 2001-12-31 06:48  dan
4329         * Configure.pl: Minor Windows tweak
4331 2001-12-31 05:32  dan
4333         * core.ops: Unused temp variable tossed.
4335         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4337 2001-12-31 05:09  grunblatt
4339         * Configure.pl, Makefile.in, interpreter.c: Link jit.o only on
4340         supported plataforms
4342 2001-12-31 03:05  dan
4344         * Configure.pl, Makefile.in, classes/Makefile.in: Added in a
4345         platform-independent quote substitution for the makefiles.
4346         Hopefully this'll make the Win32 builds happier.
4348 2001-12-30 21:08  dan
4350         * string.c, include/parrot/string.h: More string system tweaks.
4352         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4354 2001-12-30 20:45  dan
4356         * core.ops: Some pod cleanup
4358         Courtesy of Josh Wilmes <josh@hitchhiker.org>
4360 2001-12-30 20:22  ajgough
4362         * docs/parrot_assembly.pod: removed ntoi and iton ops from docs, as
4363         we aren't using them right now.  Clarified the workings of set Px,
4364         Py and clone Px, Py.
4366 2001-12-30 20:15  grunblatt
4368         * jit.c, jit2h.pl, jit/i386/core.jit: Removed the warnings in jit.c
4369         Added readjit() to read *.jit files Updated core.jit to the new
4370         set_n_i
4372 2001-12-30 20:14  ajgough
4374         * examples/assembly/mops.pasm: Changed iton/ntoi to set.
4376 2001-12-30 19:52  dan
4378         * packfile.c, pdump.c, register.c, string.c, include/parrot/key.h,
4379         include/parrot/trace.h, platforms/generic.c: Compiler whine
4380         cleanups
4382         Courtesy of Josh Wilmes <josh@hitchhiker.org>
4384 2001-12-30 19:13  dan
4386         * Configure.pl, Makefile.in: Make GCC pickier by default.
4388         Courtesy of: Josh Wilmes <josh@hitchhiker.org>
4390 2001-12-30 18:41  dan
4392         * core.ops, t/op/integer.t, t/op/number.t: Transformed iton and
4393         ntoi opcodes to sets.
4395         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4397 2001-12-30 17:58  gregor
4399         * Makefile.in:
4400         'make' no longer builds the mops test. Use 'make mops' for that. To
4401         run the test, you can do 'make mopstest'.
4403 2001-12-30 17:30  gregor
4405         * Makefile.in:
4406         Fixed one oversight. 'make clean' was removing Parrot/Types.pm. Bad
4407         Gregor.
4409 2001-12-30 17:26  gregor
4411         * .cvsignore, Configure.pl, Makefile.in, VERSION, config_h.in,
4412         core.ops, interpreter.c, make_vtable_ops.pl, obscure.ops, ops2c.pl,
4413         Parrot/BuildUtil.pm, Parrot/OpsFile.pm, lib/Parrot/BuildUtil.pm,
4414         lib/Parrot/OpsFile.pm, include/parrot/oplib.h:
4415         Build enhancements. Originally to support building shared
4416         libraries, but now of broader impact.
4418           * .cvsignore: Ignore the blib/ directory, about which more later.
4420           * Configure.pl:
4422               * Got rid of TAB formatting and lined a few things up.
4424               * Added header comment with CVS Id variable, and a few other
4425                 block header comments.
4427               * Uses new Parrot::BuildUtil module to determine the Parrot
4428                 version.
4430               * Reworded a few messages, added a couple, and wrapped
4431         messages
4432                 to 79 columns.
4434               * Added 2002 to the Copyright statement.
4436               * Added new configure variables: VERSION, MAJOR, MINOR and
4437         PATCH
4439               NOTE: Please see the 'Alas perl5.7.2' comment. 5.7.2 is
4440         greater
4441               than 5.6.0, but the comment implies it isn't.
4443           * Makefile.in:
4445               * Added $(SO), $(A) and $(AR_CRS) defines for library
4446         building.
4448               * Added $(RM_RF) define for removing directory trees
4450               * Grouped generated files into two classes: "sticky" (made by
4451         configure,
4452                 persisting across 'make clean') and 'fluid' (made during
4453         the build
4454                 process, deleted by 'make clean').
4456               * Added header comments.
4458               * Added target for test_prog linked with shared library.
4460               * Added rules to build shared libraries in blib/lib. The
4461         libraries are
4462                 built with trailing version numbers in their file names,
4463         and then
4464                 symbolic links are created for shorter and no version tag
4465         variants.
4467               * Added some missing dependencies
4469               * Added some missing 'make clean' targets.
4471               * Added 'make realclean' target that deletes files created by
4472                 Configure.pl (including Makefile), forcing a re-configure.
4474               * Added a 'status' CVS target.
4476           * VERSION: New file, contains only the version. This version
4477         number is
4478             propagated to a few places, such as the core oplib version
4479         number. This
4480             reduces the amount of coordination that has to happen to get
4481         version
4482             number stuff throughout the tree in sync and updated prior to
4483         cutting
4484             a new release. Feel free to grep for '0.0.3' to see the other
4485         files
4486             that contain the version number (but, do that in a fresh CVS
4487         copy, or
4488             after doing 'make realclean').
4490           * config_h.in: Renamed PARROT_CORE_OPLIB_*_VERSION to
4491         PARROT_*_VERSION,
4492             since the oplib and Parrot itself share a version number now.
4493         Added
4494             PARROT_PATCH_VERSION (the third component) and PARROT_VERSION
4495         (a
4496             string).
4498           * core.ops: Uses new notation "VERSION = PARROT_VERSION" instead
4499         of
4500             specifying the version by hand. Non-core oplibs will set this
4501         to
4502             a quoted dot-string with three natural number components
4503         without
4504             leading zeros.
4506           * interpreter.c: Make use of PARROT_VERSION to simplify some
4507         sprintf()s, and
4508             to get the complete version number in the resulting strings
4509         (including the
4510             new PATCH portion).
4512           * make_vtable_ops.pl: Put the "VERSION = PARROT_VERSION" line int
4513         the
4514             generated file.
4516           * obscure.ops: Use the new "VERSION = PARROT_VERSION" technique.
4518           * ops2c.pl: Account for the PATCH version, too. This affects the
4519         name of the
4520             oplib init function, and the oplib info struct initializer.
4522           * Parrot/BuildUtil.pm: New file for reading in and validating the
4523         contents of
4524             the new VERSION file. Other build utilities could go here in
4525         futuer.
4527           * Parrot/OpsFile.pm:
4529               * Allow three components in version number, and require that
4530         the value
4531                 be in double quotes.
4533               * Allow "VERSION = PARROT_VERSION", substituting the shared
4534         Parrot
4535                 VERSION in that case.
4537           * include/parrot/oplib.h: Add the patch_version member.
4539 2001-12-30 12:16  simon
4541         * MANIFEST, Makefile.in:
4542         More stuff forgotten from MANIFEST.
4544 2001-12-30 12:13  simon
4546         * MANIFEST:
4547         Missing JIT file.
4549 2001-12-30 12:12  simon
4551         * jit2h.pl:
4552         Safety first.
4554 2001-12-30 12:12  simon
4556         * Makefile.in:
4557         Gragh.
4559 2001-12-30 12:04  simon
4561         * Makefile.in, core.ops, packfile.c, pbc2c.pl, string.c,
4562         classes/perlstring.pmc, encodings/singlebyte.c, encodings/utf16.c,
4563         encodings/utf32.c, encodings/utf8.c, include/parrot/encoding.h,
4564         include/parrot/string.h, t/op/string.t:
4565         * Expand the strings test suite to be more complete * Make string
4566         commands more consistent (i.e, now the only string command that
4567         actually changes the original is chopn) * Significantly reduce the
4568         number of memory allocations and eliminate reallocations.
4570         Courtesy of: David Jacobs <jacobsl001@hawaii.rr.com>
4572 2001-12-29 22:12  dan
4574         * interpreter.c, key.c, register.c, stacks.c, string.c,
4575         test_main.c, trace.c: Updates to match the coding standards.
4577         Courtesy of Bryan C. Warnock <bwarnock@raba.com>
4579 2001-12-29 20:42  grunblatt
4581         * jit2h.pl, Parrot/Jit/i386-bsd.pm, Parrot/Jit/i386-linux.pm,
4582         Parrot/Jit/i386-nojit.pm, jit/i386/core.jit, jit/i386/lib.jit,
4583         jit/i386/string.jit, lib/Parrot/Jit/i386-bsd.pm,
4584         lib/Parrot/Jit/i386-linux.pm, lib/Parrot/Jit/i386-nojit.pm: Allow
4585         us to write asm in *.jit files instead of hex.  Courtesy of: Rafael
4586         Kitover <caelum@debian.org>
4588 2001-12-28 21:20  dan
4590         * core.ops: Okay, now print takes a preceding file handle.
4592         I feel so dirty now.
4594 2001-12-28 20:46  dan
4596         * core.ops, t/op/hacks.t: Added in the readline op, as well as
4597         changing the open op to use fopen under the hood.
4599         THESE OPS ARE EVIL! AND TEMPORARY! USE FOR DEBUGGING PURPOSES ONLY!
4601 2001-12-28 18:20  ajgough
4603         * core.ops, make_vtable_ops.pl, string.c, classes/default.pmc,
4604         classes/perlstring.pmc, docs/parrot_assembly.pod, docs/strings.pod,
4605         include/parrot/exceptions.h, include/parrot/string.h,
4606         t/op/pmc_perlstring.t, t/op/string.t, t/pmc/perlstring.t: Added
4607         repeat op, so that "foo" x 10 can be done.  Filled in PerlString
4608         vtables appropriately.  Also tests for same, new pmc_perlstring.t
4609         to hold tests specific to PerlStrings, as the pmc.t file is taking
4610         too long to run and slowing down my thought processes.
4612         Changes to strings.c etc to take string functions.
4614         Some changes to the strings docs, but not yet complete.
4616         Also, PerlString was copying pointers to strings, rather than
4617         strings themselves, so some action-at-a-distance bugs were creeping
4618         in, I think I've fixed this so everything works nicely.
4620 2001-12-28 04:56  gregor
4622         * examples/assembly/pmcmops.pasm:
4623         PMC-using version of mops.pasm.
4625         Courtesy of: Bryan C. Warnock <bwarnock@raba.com>
4627 2001-12-28 04:56  gregor
4629         * examples/assembly/.cvsignore:
4630         Small tinkering. Removed old stuff, etc.
4632 2001-12-28 01:26  gregor
4634         * examples/mops/mops.scheme:
4635         Scheme example. Major GC thrashing on umb-scheme here. Probably due
4636         to the very un-scheme-like implementation.
4638 2001-12-28 01:19  gregor
4640         * examples/mops/mops.c:
4641         Some people's picky compilers don't like us redefineing time(), so
4642         we call it time_n().  :)
4644 2001-12-28 00:28  gregor
4646         * examples/mops/: README, mops.ps:
4647         Added a PostScript example and a README.
4649 2001-12-27 23:57  gregor
4651         * Makefile.in:
4652         Build the C mops translation in examples/mops/mops.c
4654 2001-12-27 23:56  gregor
4656         * examples/mops/: .cvsignore, mops.c, mops.pl, mops.py, mops.rb:
4657         Some translations of mops.pasm into other languages, for inner loop
4658         performance comparisons.
4660 2001-12-27 22:40  gregor
4662         * examples/assembly/mops.pasm:
4663         Fixed erroneous file name in header comment.
4665 2001-12-27 21:18  gregor
4667         * pbc2c.pl:
4668         One-liner to avoid no-op gotos to the next op.
4670 2001-12-27 21:06  gregor
4672         * runops_cores.c:
4673         Fixed -p (profiling). Slow runops core was doing unconditional
4674         tracing, when it should have been checking the flags.
4676 2001-12-27 18:50  ajgough
4678         * core.ops, string.c, chartypes/unicode.c, chartypes/usascii.c,
4679         classes/perlstring.pmc, include/parrot/chartype.h,
4680         include/parrot/string.h, t/op/pmc.t, t/op/string.t, t/pmc/pmc.t:
4681         dded get_digit() to chartypes  * Added string_bool() to strings  *
4682         Added if_s_ic op, to use same  * Added (PerlString)->get_bool stuff
4683         to perlstring.pmc  * Tests for above, also a for couple of other
4684         ops without tests
4686         The unicode chartype has only had placeholders added for get_digit,
4687         string_to_num has been updated to use type->get_digit rather than
4688         the previous ascii-isms.  Some remain, but we need to carefully
4689         define what we mean by a number before we let thousands of code
4690         points act as a minus sign.
4692 2001-12-27 18:32  dan
4694         * classes/: perlint.pmc, perlnum.pmc, perlstring.pmc: Silenced some
4695         compiler warnings.
4697         Courtesy of "David  Jacobs" <jacobsl001@hawaii.rr.com>
4699 2001-12-27 18:23  dan
4701         * t/op/bitwise.t: More tests.
4703         Courtesy of "David Jacobs" <jacobsl001@hawaii.rr.com>
4705 2001-12-27 17:08  gregor
4707         * MANIFEST, Makefile.in, config_h.in, core.ops, interpreter.c,
4708         make_vtable_ops.pl, obscure.ops, ops2c.pl, ops2pm.pl, test_main.c,
4709         trace.c, Parrot/OpsFile.pm, include/parrot/interp_guts.h,
4710         include/parrot/interpreter.h, include/parrot/oplib.h,
4711         lib/Parrot/OpsFile.pm, platforms/generic.c, platforms/generic.h,
4712         platforms/win32.c, platforms/win32.h:
4713         Initial code for dynamic loading of oplibs, applied for now to the
4714         loading of the core_prederef oplib when the -P flag is passed to
4715         test_parrot.
4717           * MANIFEST: Added entry for the new file include/parrot/oplib.h.
4719           * Makefile.in:
4721               * Added libcore_prederef_0_3.so to the shared target.
4722               * Added build rule for libcore_prederef_0_3.so.
4723               * Added dependencies on Parrot/OpsFile.pm and Parrot/Op.pm
4724                 to Parrot/OpLib/core.pm, core_ops.c and
4725                 core_ops_prederef.c.
4727           * config_h.in: Added defines for constants used to locate the
4728             core oplib's init function, and the core_prederef oplib for
4729             dynaloading.
4731           * core.ops: Added a VERSION = 0.3 line near the top. This is now
4732             required by Parrot/OpsFile.pm.
4734           * interpreter.c:
4736               * Added init_prederef() and stop_prederef() functions to load
4737                 and unload the core_prederef oplib when we are in prederef
4738                 mode.
4740                 NOTE: In all likelihood, the prederef stuff has a rapidly
4741                 dwindling time-to-live. The JIT should provide vastly
4742         superior
4743                 performance, and loading an alternate set of core_ops isn't
4744                 the real direction for the dynaloading stuff. Loading
4745                 *additional* ops is. It does provide a handy test case for
4746         the
4747                 general idea for now, though.
4749               * Gets the core copcode table, etc. via the core oplibs oplib
4750                 info pointer, as returned by the core oplib's init
4751         function.
4753           * ops2c.pl
4755               * Make use of the version, major version and minor version
4756                 stuff parsed by Parrot/OpsFile.pm
4758               * The only exported symbol in the generated files is the init
4759                 function now, since that returns an oplib info struct
4760                 pointer, and all the important stuff can be found there.
4762           * ops2pm.pl: Put the oplib version in the generated .pm file.
4764           * test_main.c: Small changes necessitated by changes in the names
4765             of some members of the interpreter struct.
4767           * trace.c: Small changes necessitated by changes in the names
4768             of some members of the interpreter struct.
4770           * Parrot/OpsFile.pm: Require a "VERSION = x.y" line before any
4771             ops are found.
4773           * include/parrot/interp_guts.h: Small changes necessitated by
4774             changes in the names of some members of the interpreter struct.
4776           * include/parrot/interpreter.h: Include the new
4777             include/parrot/oplib.h header. Small changes to the oplib-
4778             related members.
4780           * include/parrot/oplib.h: Define the type of the oplib init
4781             function, and the struct type for the oplib info.
4783           * platforms/*.[hc]: Remove the second argument to Parrot_dlopen()
4784             since not all platforms have it. For those that do, a default
4785             second argument is provided.
4787 2001-12-26 05:12  gregor
4789         * Configure.pl:
4790         Make jitarch calculation not get tripped up by extra components to
4791         archname.
4793 2001-12-24 21:23  gregor
4795         * jit.c, jit2h.pl, Parrot/Jit/i386-bsd.pm,
4796         Parrot/Jit/i386-linux.pm, Parrot/Jit/i386-nojit.pm,
4797         include/parrot/jit.h, jit/i386/core.jit, jit/i386/lib.jit,
4798         jit/i386/string.jit, lib/Parrot/Jit/i386-bsd.pm,
4799         lib/Parrot/Jit/i386-linux.pm, lib/Parrot/Jit/i386-nojit.pm:
4800         Some more JIT work from Daniel Grunblatt.
4802           * Ops added set_s_s, set_s_sc, bsr_i and eq_s_sc but using calls
4803         to C
4804             functions.
4806           * Added JUMP(END) to place the number of bytes to the end of the
4807         current
4808             op.
4810           * The *.jit files syntax changed.
4812           * Added jit/i386/lib.jit to place handly functions as jump that
4813         take as
4814             argument the address where is the opcode number to jump to.
4816           * There is a bug at some point, but I will start writing
4817             jit/i386/string.jit and jit/i386/stacks.jit so that we don't
4818         have use
4819             calls, which make the jit as slow as the interpreter.
4821         Courtesy of: Daniel Grunblatt <daniel@grunblatt.com.ar>
4823 2001-12-24 03:46  dan
4825         * Parrot/OpTrans.pm, Parrot/OpTrans/C.pm, Parrot/OpTrans/CGoto.pm,
4826         Parrot/OpTrans/CPrederef.pm, lib/Parrot/OpTrans.pm,
4827         lib/Parrot/OpTrans/C.pm, lib/Parrot/OpTrans/CGoto.pm,
4828         lib/Parrot/OpTrans/CPrederef.pm: Commented out the use warnings.
4829         Perls before 5.6.0 don't like it.
4831 2001-12-22 16:02  ajgough
4833         * t/op/stacks.t: stopped skipping tests we can run now.  added
4834         clonep tests.
4836 2001-12-21 21:13  gregor
4838         * jit2h.pl, Parrot/Jit/i386-bsd.pm, Parrot/Jit/i386-linux.pm,
4839         Parrot/Jit/i386-nojit.pm, lib/Parrot/Jit/i386-bsd.pm,
4840         lib/Parrot/Jit/i386-linux.pm, lib/Parrot/Jit/i386-nojit.pm:
4841         Fixed some package name goofs.
4843         Thanks to: Andy Dougherty <doughera@mail.lafayette.edu>
4845 2001-12-21 19:32  gregor
4847         * MANIFEST, Makefile.in, core.ops, interpreter.c,
4848         make_vtable_ops.pl, obscure.ops, ops2c-prederef.pl, ops2c.pl,
4849         pbc2c.pl, stacks.c, Parrot/Op.pm, Parrot/OpTrans.pm,
4850         Parrot/Opcode.pm, Parrot/OpsFile.pm, lib/Parrot/Op.pm,
4851         lib/Parrot/OpTrans.pm, lib/Parrot/Opcode.pm, lib/Parrot/OpsFile.pm,
4852         Parrot/OpTrans/C.pm, Parrot/OpTrans/CGoto.pm,
4853         Parrot/OpTrans/CPrederef.pm, docs/intro.pod, include/parrot/op.h,
4854         include/parrot/stacks.h, lib/Parrot/OpTrans/C.pm,
4855         lib/Parrot/OpTrans/CGoto.pm, lib/Parrot/OpTrans/CPrederef.pm:
4856         Changes to syntax of .ops files and refactoring of ops2c*.pl and
4857         pbc2c.pl.
4859           * Removed ops2c-prederef.pl
4861           * (unrelated) Removed vestigial Parrot/Opcode.pm file.
4863           * Added Parrot/OpTrans.pm, Parrot/OpTrans/C.pm (needed for old
4864             functionality of ops2c.pl), Parrot/OpTrans/CPrederef.pm (needed
4865             for old functionality of ops2c-prederef.pl), and
4866             Parrot/OpTrans/CGoto.pm (needed for functionality of pbc2c.pl).
4868             "OpTrans" == "Op Transformation"
4870           * Makefile.in modifications to call "ops2c.pl C" where it used
4871             to be just "ops2c.pl", and "ops2c.pl CPrederef" where it used
4872             to be "ops2c-prederef.pl".
4874           * core.ops and obscure.ops changes to syntax. Semantics are
4875             identical with previous version:
4877               return HALT         -->  HALT()
4878               return AUTO         -->  goto NEXT()
4879               return RETREL(...)  -->  goto OFFSET(...)
4880               return RESTART(*)   -->  restart NEXT()
4882             Also, pop_generic_entry() stuff (local var + 5 lines of code)
4883             for dest-less branch ops replaced with new notation "goto
4884         POP()",
4885             which uses the new pop_dest() function in stacks.c. This also
4886             allowed these ops to become 'inline' ops, since they no longer
4887             have local variables.
4889             The 'ret' op also became simplified to just "goto POP()", and
4890             also became an inline op.
4892           * interpreter.c reflects the change in type name:
4894               prederef_op_func_t   -->  op_func_prederef_t
4896             that occurred in include/parrot/op.h
4898           * make_vtable_ops.pl uses "goto NEXT()" where it used to use
4899             "return AUTO".
4901           * ops2c.pl is now generic. Its first argument is the last
4902             package name component of a subclass of Parrot::OpTrans. These
4903             subclasses all have full names of the form Parrot::OpTrans::*.
4904             An instance of the class is created and later consulted for
4905             various bits of information needed to generate the C code.
4907           * pbc2c.pl now uses an instance of Parrot::OpTrans::CGoto to
4908             contain its transformation rules.
4910           * stacks.c has a new function pop_dest() that pops a destination
4911             off the control stack. include/parrot/stacks.h has the
4912         prototype.
4914           * Parrot/Op.pm now supports the syntax generated by
4915         Parrot::OpsFile
4916             for the "goto POP" case.
4918             Also, the source() method now expects its second argument to be
4919             an object that ISA Parrot::OpTrans. Methods of this object are
4920             called to perform the substitutions.
4922           * Parrot/OpsFile.pm supports the change in notation mentioned
4923             above.
4925           * docs/intro.pod reflects these changes.
4927           * include/parrot/op.h: Renamed type prederef_op_func_t to
4928             op_func_prederef_t because it made the implementation of the
4929             shared ops2c.pl easier.
4931 2001-12-21 13:47  gregor
4933         * Configure.pl, config_h.in, interpreter.c, test_main.c:
4934         Both test_parrot (via test_main.c) and the intepreter itself (via
4935         interpreter.c) use the JIT_CAPABLE config to decide whether to
4936         actually attempt JIT operation, or to complain.
4938 2001-12-20 23:25  gregor
4940         * core.ops, make_vtable_ops.pl, obscure.ops, Parrot/OpsFile.pm,
4941         lib/Parrot/OpsFile.pm, docs/intro.pod, include/parrot/op.h:
4942         Changes to the format of *.ops files. An attempt to provide hints
4943         for future opfunc processing logic that wants to know if an opfunc
4944         is simple enough to JIT (e.g.) inline, or not.
4946         See the POD in Parrot/OpsFile.pm and the updated docs/intro.pod in
4947         addition to The Source in core.ops and Parrot/OpsFile.pm for more
4948         info.
4950 2001-12-20 21:28  gregor
4952         * Configure.pl, jit.c, jit2h.pl, include/parrot/jit.h,
4953         jit/i386/core.jit:
4954         More JIT stuff:
4956           * A fix to Gregor's last Configure.pl update.
4958           * Remove the need for hardcoded "\n" at the end of the "%f"
4959             format for printing floating-point numbers.
4961           * New, improved *.jit syntax for references to registers,
4962             e.g. INT_REG[n].
4964           * Support for C() improved.
4966         Courtesy of: Daniel Grunblatt <daniel@grunblatt.com.ar>
4968 2001-12-20 16:55  dan
4970         * MANIFEST: Added jit.c to the manifest.
4972 2001-12-20 15:24  simon
4974         * jit2h.pl:
4975         Off-by-one error fixed.
4977 2001-12-20 14:18  simon
4979         * jit/i386/core.jit:
4980         Just a noop. It's the only machine code I know.
4982 2001-12-20 13:10  gregor
4984         * Configure.pl, Makefile.in, jit2h.pl:
4985         Attempt to fix Win32 builds.
4987           * No more empty braces in include/parrot/jit_struct.h
4989         Also:
4991           * ${jitarchname} has the *bsd -> bsd substitution on it, but
4992         ${archname}
4993             does not.
4995 2001-12-20 11:56  simon
4997         * Makefile.in:
4998         De-cp
5000 2001-12-20 01:57  gregor
5002         * Configure.pl, MANIFEST, Makefile.in, interpreter.c, jit.c,
5003         jit2h.pl, test_main.c, Parrot/.cvsignore, Parrot/Jit/i386-bsd.pm,
5004         Parrot/Jit/i386-linux.pm, Parrot/Jit/i386-nojit.pm, docs/jit.pod,
5005         include/parrot/.cvsignore, include/parrot/interpreter.h,
5006         include/parrot/jit.h, jit/i386/core.jit, jit/i386/string.jit,
5007         lib/Parrot/Jit/i386-bsd.pm, lib/Parrot/Jit/i386-linux.pm,
5008         lib/Parrot/Jit/i386-nojit.pm:
5009         Initial JIT implementation.
5011           * Enabled with test_parrot -j. 20x speed boosts seen.
5013           * Unsupported archs mapped to i386-nojit. Don't do -j on them.
5015           * More to come.
5017         Courtesy of: Daniel Grunblatt <daniel@grunblatt.com.ar>
5019 2001-12-20 01:53  jgoff
5021         * MANIFEST, core.ops, t/op/key.t: MANIFEST - Removed t/op/key.t
5022         core.ops - Removed key operators, they should be hidden from the
5023         assembler.  t/op/key.t - No need to test the nonexistent key
5024         operators.
5026 2001-12-20 00:13  ajgough
5028         * core.ops, t/op/stacks.t: Added tests for entrytype op, noticed
5029         that asking for type of entry at depth causes segfault as stack is
5030         zero based, fixed cmp in core.ops to reflect this.  Last test is
5031         skipped as we don't do exceptions right yet.
5033 2001-12-19 19:11  ajgough
5035         * t/op/debuginfo.t: Added C<end> ops to debuginfo.t, as thier
5036         non-being was causing Irix "issues".
5038 2001-12-19 03:37  jgoff
5040         * languages/miniperl/Miniperl/t/: 001_tokenizer.t, 003_generator.t,
5041         004_combined.t: Changed tests to make sure they pass with the
5042         addition of the clone operator.
5044 2001-12-18 20:06  gregor
5046         * interpreter.c, include/parrot/interp_guts.h:
5047         Performance improvements to the predereferencing code path
5048         suggested to me over lunch yesterday by my friend John Kennedy.
5049         The goal is to remove the additional test in the inner loop that
5050         was checking for NULL to decide whether or not to call the
5051         prederef() function. Also moved pc & pc_prederef syncing outside
5052         the inner loop.
5054           * Changed the prototype of the prederef() function in
5055             interpreter.c to match that of an opfunc.
5057           * Instead of initializing the prederef void * array with NULL,
5058             we initialize it with pointers to prederef().
5060           * prederef() now returns the prederef_pc passed in, so that
5061             after predereferencing, the same location is executed, but now
5062             with the real code being called.
5064         Thanks to: John Kennedy
5066 2001-12-18 19:59  ajgough
5068         * t/: op/pmc.t, pmc/pmc.t: Added some more num -> string tests
5069         (including some more in the skipped string -> int tests).
5071 2001-12-18 07:06  jgoff
5073         * MANIFEST: Forgot to add classes/perlarray.pmc
5075 2001-12-18 07:05  jgoff
5077         * Makefile.in, core.ops, global_setup.c, vtable.tbl,
5078         classes/Makefile.in, classes/default.pmc, classes/perlarray.pmc,
5079         classes/perlint.pmc, classes/perlnum.pmc, classes/perlstring.pmc,
5080         classes/perlundef.pmc, include/parrot/pmc.h, t/op/pmc.t,
5081         t/pmc/pmc.t: Big update...  Makefile.in - Added
5082         classes/perlarray.pmc core.ops - Added new series of set() ops for
5083         arrays global_setup.c - Initialized perlarray classes/Makefile.in -
5084         Added perlarray.pmc classes/*.pmc - Added
5085         set_{integer,number,string}_index and
5086         get_{integer,number,string}_index include/parrot/pmc.h - Added new
5087         type t/op/pmc.t - Added basic array test
5089         classes/perlarray.pmc - Added
5091 2001-12-17 05:29  jgoff
5093         * languages/miniperl/Miniperl/Generator.pm: Altered miniperl code
5094         generator to use clone operator instead of set Px,Py
5096 2001-12-17 05:25  jgoff
5098         * core.ops, classes/perlint.pmc, classes/perlnum.pmc,
5099         classes/perlstring.pmc, t/op/pmc.t, t/pmc/pmc.t: Added clone
5100         PMC,PMC operator. Uses the clone() vtable entries.
5102 2001-12-17 04:51  jgoff
5104         * MANIFEST: Added miniperl test suite, removed old Miniperl/Test.pm
5105         entry
5107 2001-12-17 04:41  jgoff
5109         * languages/miniperl/Miniperl/Makefile.PL: Now in its proper
5110         directory...
5112 2001-12-17 04:41  jgoff
5114         * languages/miniperl/Makefile.PL: Moved it to the proper directory.
5116 2001-12-17 04:39  jgoff
5118         * languages/miniperl/: Makefile.PL, Miniperl.pm, miniperlc, mpc,
5119         Miniperl/Tokenizer.pm: Makefile.PL to let us run the test suite in
5120         t/
5122 2001-12-17 04:27  jgoff
5124         * languages/miniperl/Miniperl.pm: Latest version of the driver.
5125         Admittedly it's a little thin on true OO, but the algorithms are
5126         the key.
5128 2001-12-17 04:24  jgoff
5130         * languages/miniperl/Miniperl/t/: 001_tokenizer.t, 002_parser.t,
5131         003_generator.t, 004_combined.t: Much more comprehensive test suite
5132         for the codegen et al
5134 2001-12-17 04:22  jgoff
5136         * languages/miniperl/Miniperl/: Generator.pm, Parser.pm,
5137         Tokenizer.pm: Newer codegen, tightened up parser output, added hash
5138         key handling
5140 2001-12-17 04:20  jgoff
5142         * languages/miniperl/Miniperl/Test.pm: The newer test suite is much
5143         more comprehensive.
5145 2001-12-17 04:17  jgoff
5147         * languages/miniperl/foo.mpl: Test file that'll be outdated by
5148         changes to the new compiler
5150 2001-12-17 04:11  jgoff
5152         * languages/miniperl/t/: harness, 001_basic/basic.t: Moving testing
5153         files to Miniperl/
5155 2001-12-16 14:11  simon
5157         * classes/perlint.pmc, examples/assembly/mops_p.pasm, t/op/pmc.t,
5158         t/pmc/pmc.t:
5159         Fix bogus assumption that multiplying an integer by an integer
5160         yields an integer.
5162 2001-12-16 12:48  simon
5164         * make_vtable_ops.pl:
5165         Fixed op exploder.
5167 2001-12-16 12:45  simon
5169         * make_vtable_ops.pl, Parrot/Vtable.pm, lib/Parrot/Vtable.pm:
5170         Expand multimethod vtable ops.
5172 2001-12-16 12:04  simon
5174         * Makefile.in:
5175         Added 'cvsclean' which doesn't zap CVS/* directories.
5177 2001-12-15 01:50  dan
5179         * include/parrot/string.h: Fixed typo in string.h. lagnuage,
5180         indeed!
5182         Thanks to grunblatt fom #parrot for the catch
5184 2001-12-15 01:39  dan
5186         * .cvsignore, Configure.pl, MANIFEST, languages/jako/Makefile.in,
5187         languages/miniperl/.cvsignore, languages/miniperl/Makefile,
5188         languages/miniperl/Makefile.in,
5189         languages/miniperl/Miniperl/Test.pm, languages/scheme/.cvsignore,
5190         languages/scheme/Makefile, languages/scheme/Makefile.in: Build
5191         tweaks.
5193         Courtesy of: Jay McCarthy <jay@kenyamountain.com>
5195 2001-12-14 17:39  dan
5197         * t/op/trans.t: More trans tests.
5199         Courtesy of: Simon Glover <scog@roe.ac.uk>
5201 2001-12-14 07:41  robert
5203         * make.pl: - define MAKE macro - topological sort and subgraph
5204         order - start of timestamp stuff   (still badly broken)
5206 2001-12-14 06:06  jgoff
5208         * optimizer.pl: Hopefully this should do the trick..
5210 2001-12-14 06:04  jgoff
5212         * Parrot/Optimizer.pm, lib/Parrot/Optimizer.pm: Optimizer
5214           optimizer.pl is the stub, Parrot/Optimizer.pm is the driver.
5216           The optimizer performs its work on a file post-macro expansion.
5217           Run it on a .pasm file, preferably with some trivially reducible
5218         operations
5219           like 'add I0,5,-6' or 'mul I0,I1,0'
5221 2001-12-14 05:48  robert
5223         * Makefile.in: case error EXE -> exe
5225 2001-12-14 05:42  robert
5227         * Makefile.in: remove legacy PDISASM macro
5229 2001-12-14 04:01  dan
5231         * classes/Makefile.in, languages/Makefile.in: Makefile tweaks for
5232         better Win building
5234         Courtesy of: Garrett Goebel <garrett@scriptpro.com>
5236 2001-12-13 22:03  dan
5238         * Configure.pl, Makefile.in, Parrot/Test.pm,
5239         languages/scheme/Makefile, languages/scheme/Scheme/Test.pm,
5240         lib/Parrot/Test.pm: Parrot test prog's now a config variable, so we
5241         can change it without having to change the world.
5243 2001-12-13 21:57  dan
5245         * core.ops, interpreter.c, docs/parrot_assembly.pod,
5246         include/parrot/interpreter.h, t/op/debuginfo.t: Added current
5247         file/line/package to interp structure, with ops to get and set
5248         them. Now we can know where we are!
5250 2001-12-13 19:43  dan
5252         * Configure.pl, Makefile.in: Makefile tweaks to hopefully make
5253         WinXP builds work out of the box
5255 2001-12-13 17:05  dan
5257         * Makefile.in, Parrot/Test.pm, lib/Parrot/Test.pm: Change test prog
5258         name again--makes case-insensitive systems much happier.
5260 2001-12-13 16:21  dan
5262         * core.ops, key.c, string.c, test_main.c, trace.c,
5263         classes/Makefile.in, include/parrot/trace.h: Fixes to clean up
5264         compiler warnings
5266         Courtesy of: Josh Wilmes <josh@sky.net>
5268 2001-12-13 13:33  gregor
5270         * languages/jako/Makefile.in:
5271         Improved the method of calling the assembler.
5273 2001-12-13 13:30  gregor
5275         * languages/jako/Makefile.in:
5276         Improve the build process. It now works from the main parrot dir,
5277         and from the languages/jako directory. Now uses the .SUFFIXES
5278         target and generic build rules to reduce clutter in the
5279         Makefile.in.
5281 2001-12-13 13:29  gregor
5283         * languages/jako/.cvsignore:
5284         Ignore the (now generated Makefile), and don't ignore .list files
5285         anymore, since we aren't generating them.
5287 2001-12-13 13:11  gregor
5289         * Configure.pl, MANIFEST, Makefile.in, languages/.cvsignore,
5290         languages/Makefile.in, languages/jako/Makefile,
5291         languages/jako/Makefile.in:
5292         Added a 'languages' target to the top-level Makefile.in, and
5293         modified the jako build procedure to involve Makefile.in -->
5294         Makefile too (done by Configure.pl).
5296         NOTE: languages/jako and language/scheme are built.
5297         languages/miniperl wasn't building right, so it was left off for
5298         now.
5300 2001-12-13 12:15  gregor
5302         * MANIFEST:
5303         Added MAINTAINER file and mandelzoom.jako from languages/jako to
5304         the MANIFEST.
5306 2001-12-13 12:12  gregor
5308         * .cvsignore, MANIFEST, Makefile.in, core.ops, interpreter.c,
5309         ops2c-prederef.pl, ops2c.pl, test_main.c,
5310         include/parrot/interp_guts.h, include/parrot/interpreter.h,
5311         include/parrot/op.h, include/parrot/oplib/.cvsignore:
5312         Welcome to the Just-in-Time Predereferencing Patch!
5314         This patch implements a "predereferencing" mode for parrot. That
5315         means that a lot of the dereferencing you see in DO_OP and in the
5316         opfuncs is done up front (really, JIT) rather than as and each time
5317         we execute each op in the byte code stream.
5319         This works by creating an array of void pointers with the same
5320         number of elements as the byte code array. This array starts out
5321         life zero-initialized.  Each time we go to execute an op, we check
5322         first to see if we have a NULL pointer at *cur_opcode. If so, we
5323         know we haven't done our predereferencing yet (this is the JIT
5324         part), so we call the prederef() function with sufficient args that
5325         it can go look up opfunc pointers and op arg types and put the
5326         opfunc and arg pointers at cur_opcode[0] .. cur_opcode[N - 1],
5327         where N is the number of args (counting the op itself as one arg).
5329         We assume that sizeof(INTVAL) <= sizeof(void *), so we can continue
5330         to have inline INTVAL constants.
5332         I've been getting about a 22% speed increase over vanilla code path
5333         when I compile with -O0. Advantage decreases at -O9 here. I tested
5334         with mops.pbc, and also by temporarily putting the -P flag in
5335         Parrot/Test.pm and running all the tests. So, this code is as
5336         correct as the test suite can detect.
5338         Here's how it plays out in the code:
5340           * New script ops2c-prederef.pl
5342             Copy-paste code reuse from ops2c.pl. Modified to expect the
5343         args to give
5344             a void ** cur_opcode and to return a void **.
5346           * Modified ops2c.pl
5348               * opfuncs are now static. Who needs to call them by name from
5349         outside,
5350                 anyway? They are accessed via the opfunc table.
5352               * Some MACRO stuff to make things work whether we prederef or
5353         not. It
5354                 may be possible to get rid of these some day if other folks
5355         agree
5356                 that we should be using CODE object pointers + offsets as
5357         our PC
5358                 rather than raw pointers to either opcode_t's or (void *)'s
5359                 (depending on prederef mode or no).
5361           * core.ops modified to be usable to build both kinds of opfuncs.
5362         For now,
5363             this means:
5365               * calls to push_generic_entry(... cur_opcode ...) were
5366         changed to
5367                 push_generic_entry(... CUR_OPCODE ...), where CUR_OPCODE is
5368         a
5369                 macro that does the right thing in both kinds of ops.c
5370         files.
5372                 This is applicable to the bsr op. If we treated
5373         destinations as
5374                 (Code PMC + local offset) rather than as
5375         pointer-to-memory-somewhere,
5376                 this wouldn't be a big deal. We may need to do that at some
5377         point
5378                 anyway, so that when you jump around and return not only do
5379         you have
5380                 the right PC (pointer, today), but you also have the
5381         thread/interpreter
5382                 knowing what chunk of bytecode it is in at all times
5383         (assuming we'll
5384                 allow reflection, as in ops that query or affect the
5385         current CODE PMC).
5387               * runinterp was modified. Instead of copying the top-level
5388         PackFile struct
5389                 and blasting its byte_code pointer, we simply call runops
5390         on the new
5391                 interp, passing in the pointer to the current interp's code
5392         and the
5393                 offset into that code at which to start (this last arg used
5394         to be a
5395                 pointer PC, now its an offset PC).
5397           * include/parrot/op.h
5399               * new typedef for prederef opfuncs (they return void **)
5401           * include/parrot/interp_guts.h
5403               * New DO_OP_PREDEREF() macro described above.
5405           * include/parrot/interpreter.h
5407               * New prototype of runops() -- see below.
5409               * resume_addr field changed to resume_flag and resume_offset
5410         pair of fields.
5411                 We might be resuming from interp using prederef to one not
5412         or vice-versa,
5413                 so pointers between the two don't play nice together.
5414         Offsets are beautiful.
5416               * New PARROT_PREDEREF_FLAG constant
5418           * interpreter.c
5420               * include "parrot/oplib/core_ops_prederef.h"
5422               * prederef() function described above.
5424               * runops_prederef() runops variant. Uses DO_OP_PREDEREF()
5425         macro as its core.
5427               * runops() modified to take size_t CODE-relative offset PC
5428         rather than
5429                 pointer PC. This made other things workable and doesn't
5430         seem to have lost
5431                 anything important (IMO).
5433           * test_main.c
5435               * New flag '-P' to enable predereferencing.
5437           * Makefile modified to build core_ops_prederef.c from core.ops
5438         via
5439             ops2c-prederef.pl.
5441             BTW, also added missing $(INC)/interp_guts.h to H_FILES.
5443             Added core_ops_prederef$(O) to O_FILES
5445 2001-12-13 12:12  gregor
5447         * languages/jako/MAINTAINER:
5448         Thought it would be nice to put this right in the code...
5450 2001-12-13 04:36  jgoff
5452         * languages/miniperl/Miniperl/Generator.pm: Commented out
5453         debugging, fixed register spillover algorithm
5455 2001-12-13 04:23  jgoff
5457         * make.pl: Found and fixed obob in the parser (Wasn't parsing last
5458         line) Restructured a bit of the dependency generator to fix a
5459         different obob bug.
5461 2001-12-13 03:43  robert
5463         * MANIFEST, docs/opcodes.pod: remove old docs/opcodes.pod
5465 2001-12-13 03:03  jgoff
5467         * make.pl: Added make.pl
5469 2001-12-13 02:44  jgoff
5471         * languages/miniperl/Miniperl.pm: Nearly-complete 'make'
5472         replacement in perl.  Non-compliant bits - Takes absolutely -NO-
5473         special flags...                     - Dies on undefined macros
5474         such as $(PDISASM) in current make                     - Dies on
5475         recursive macro expansions                       (Doesn't test for
5476         mutual or multipart loops)                     - In general it
5477         seems to be a little less lenient...  Missing bits - File
5478         mod/creation times aren't being looked at              - Actions
5479         aren't being taken              - The few funky variables ($@, $<)
5480         aren't being dealt with Bugs - Line numbers are slipping a bit.
5482 2001-12-13 02:29  jgoff
5484         * languages/miniperl/Miniperl/: Generator.pm, Parser.pm:
5485         Reconstructing files to make the parser flow a little better.
5487 2001-12-13 00:51  dan
5489         * resources.c: Be a bit less wasteful with resources that don't
5490         need to be aligned
5492 2001-12-12 18:22  dan
5494         * Makefile.in: D'oh! Fixed looping makefile bug.
5496         Courtesy of: "Jaen Saul" <jaen@saul.ee>
5498 2001-12-12 16:23  jgoff
5500         * languages/miniperl/t/001_basic/basic1.scheme: Bogus entry
5502 2001-12-12 16:22  jgoff
5504         * MANIFEST: Manifest additions for languages/miniperl
5506 2001-12-12 16:19  jgoff
5508         * languages/miniperl/t/001_basic/: basic.t, basic1.scheme: Basic
5509         tests. These are left over from the Scheme suite and shouldn't be
5510         used yet.
5512 2001-12-12 16:18  jgoff
5514         * languages/miniperl/: Miniperl/Generator.pm, Miniperl/Parser.pm,
5515         Miniperl/Test.pm, Miniperl/Tokenizer.pm, t/harness: Miniperl base
5516         modules. Miniperl/ is where the real work gets done.  t/ is largely
5517         vacant because it isn't ready to survive real tests yet.
5519 2001-12-12 16:17  jgoff
5521         * languages/miniperl/: Makefile, Miniperl.pm, foo.mpl, miniperlc,
5522         mpc: Final go-round, hopefully.
5524         languages/miniperl/Makefile - Used basically to run tests, as there
5525         is nothing                               here that needs to be
5526         dynamically built.  languages/miniperl/Miniperl.pm - Stub module
5527         that calls the real Miniperl/ mods languages/miniperl/foo.mpl -
5528         Sample miniperl file.  languages/miniperl/miniperlc - Miniperl
5529         compiler stub
5531 2001-12-12 16:09  dan
5533         * Configure.pl: Setting a variable with the make command name is
5534         useful.
5536 2001-12-12 15:07  simon
5538         * Makefile.in, languages/jako/Makefile, languages/scheme/Makefile:
5539         Recursive make considered "ow, don't do that".
5541 2001-12-12 14:45  dan
5543         * Makefile.in: Makefile had some non-portable code. (Okay, a lot of
5544         non-portable code) Killing builds on Win32 native. Small patch
5545         applied which hopefully fixes it.
5547 2001-12-12 06:12  ajgough
5549         * classes/Makefile.in: perl is $(PERL), you know it makes sense.
5551 2001-12-12 06:08  ajgough
5553         * Makefile.in: perl is $(PERL).
5555 2001-12-12 06:00  ajgough
5557         * t/op/integer.t: Added tests to integer.t so that all permutations
5558         of arguments are actually called at some point.
5560 2001-12-12 05:18  ajgough
5562         * t/op/time.t: I can't sleep, but I don't see why parrot shouldn't.
5563          Tests for sleep i|ic
5565 2001-12-12 05:09  ajgough
5567         * t/op/stacks.t: Added pushp and popp register stack tests.
5569 2001-12-12 04:51  ajgough
5571         * t/op/stacks.t: Added tests for save and restore, for all register
5572         types.  Let there be Haiku.
5574 2001-12-12 04:27  ajgough
5576         * t/op/basic.t: bsr_i test.  You know you want it.
5578 2001-12-12 02:55  ajgough
5580         * MANIFEST: Added hints/os2.pl to MANIFEST.
5582 2001-12-12 02:52  jgoff
5584         * core.ops, key.c: Final checkin... These are actually the correct
5585         copies.
5587 2001-12-12 02:12  jgoff
5589         * include/parrot/key.h: key.c - Removed a few functions,
5590         generalized set_element_value and element_value         to accept
5591         KEY_PAIRs from core.ops include/parrot/key.h - Modified header.
5592         core.ops - Modified to accept the new return style.
5594         This is a prelude to adding virtual-table methods to allow hashing
5595         &c. Expect at least one or two more redesigns before this settles
5596         down. However, it still passes the original tests.
5598 2001-12-11 13:35  gregor
5600         * runops_cores.c:
5601         Fixed a typo.
5603 2001-12-11 12:03  gregor
5605         * .cvsignore:
5606         Don't ignore test_prog, but do ignore parrot.
5608 2001-12-11 12:03  gregor
5610         * classes/.cvsignore:
5611         Ignore the generated file default.h
5613 2001-12-11 04:07  jgoff
5615         * key.c: Key source
5617 2001-12-11 04:05  jgoff
5619         * include/parrot/key.h, t/op/key.t: Needed header file, new test
5621 2001-12-11 04:00  jgoff
5623         * core.ops: Added new key aggregate operations to core ops.
5625 2001-12-11 04:00  jgoff
5627         * include/parrot/parrot.h: Added key.h to header list
5629 2001-12-11 03:59  jgoff
5631         * MANIFEST: Added key.c, include/parrot/key.h, t/op/key.t
5633 2001-12-11 03:58  jgoff
5635         * Makefile.in: Added implementation of key aggregates.
5637 2001-12-08 23:07  simon
5639         * README:
5640         README good to go.
5642 2001-12-08 23:05  simon
5644         * Configure.pl, Makefile.in, README, Parrot/Test.pm,
5645         docs/intro.pod, languages/jako/Makefile, languages/scheme/Makefile,
5646         languages/scheme/Scheme/Test.pm, lib/Parrot/Test.pm:
5647         test_prog? What is test_prog?
5649 2001-12-08 22:57  simon
5651         * ChangeLog:
5653         Oops, the changelog commit was on *this* machine.
5655 2001-12-08 22:56  simon
5657         * NEWS:
5658         Updates to NEWS and ChangeLog pre-release.
5660 2001-12-08 22:07  simon
5662         * MANIFEST, Makefile.in, classes/Makefile.in, classes/default.pmc,
5663         classes/perlnum.pmc, classes/pmc2c.pl:
5664         Add "default" PMC vtable so you can inherit implied stuff.
5666 2001-12-08 21:24  simon
5668         * Parrot/PackFile.pm, docs/parrot.pod, docs/parrotbyte.pod,
5669         docs/vtables.pod, lib/Parrot/PackFile.pm:
5670         Getting the documentation up to scratch.
5672 2001-12-08 21:21  simon
5674         * classes/pmc2c.pl:
5675         Allow inheriting from default class.
5677 2001-12-07 20:43  gregor
5679         * examples/assembly/queens.pasm:
5680         Regenerated the file with the latest jakoc.
5682 2001-12-07 20:29  simon
5684         * core.ops, t/op/stacks.t:
5685         Rename "rotate" to "rotate_up".
5687 2001-12-07 20:15  simon
5689         * t/op/stacks.t:
5690         Some tests for rotate.
5692 2001-12-07 00:55  gregor
5694         * core.ops:
5695         Cast the result of the pointer arithmetic, since without the cast
5696         there are warnings with some compilers, and without the parens
5697         around the pointer arithmetic, precedence breaks the meaning and
5698         causes crashes.
5700 2001-12-06 23:37  simon
5702         * core.ops:
5703         Temporary. I prefer compiler warnings to segfaults, thanks.
5705 2001-12-06 23:34  simon
5707         * runops_cores.c:
5708         Make "trace" work again.
5710 2001-12-06 21:23  dan
5712         * Parrot/Test.pm, lib/Parrot/Test.pm: Undo twiddles to test.pm
5714 2001-12-06 21:22  dan
5716         * core.ops, packfile.c, Parrot/Test.pm, include/parrot/stacks.h,
5717         lib/Parrot/Test.pm: Fix up source issues that made Dec C unhappy
5719 2001-12-06 19:22  simon
5721         * core.ops:
5722         Yet another "How the *%$! did that compile?" moment.
5724 2001-12-06 18:28  dan
5726         * hints/vms.pl: Fix to build, with a HERE logical required
5728 2001-12-06 17:48  dan
5730         * core.ops, interpreter.c, pbc2c.pl, pdump.c, test_main.c,
5731         docs/parrot_assembly.pod, include/parrot/interpreter.h: Sensible
5732         changes to the interpreter--flags are now part of the interp
5733         structure.
5735         Courtesy of "Melvin Smith" <mrjoltcola@mindspring.com>
5737 2001-12-06 14:02  gregor
5739         * docs/intro.pod:
5740         s/little_languages/languages/ in Jako section.
5742 2001-12-06 13:15  simon
5744         * Makefile.in:
5745         Ensure the documentation gets made.
5747 2001-12-06 13:12  simon
5749         * MANIFEST, docs/intro.pod:
5750         Documentation! Added the "Some Assembly Required" article with
5751         minor updates.
5753 2001-12-06 00:39  simon
5755         * core.ops:
5756         More "eq" support.
5758         Courtesy of: Nguon Hao Ching <hao@netaxs.com>
5760 2001-12-06 00:37  simon
5762         * test_main.c:
5763         Add the "-d" debug flag. Doesn't actually *do* anything yet.
5765         Courtesy of: Melvin <mrjoltcola@mindspring.com>
5767 2001-12-06 00:11  tom
5769         * string.c, chartypes/unicode.c, chartypes/usascii.c,
5770         encodings/singlebyte.c, encodings/utf16.c, encodings/utf8.c,
5771         include/parrot/chartype.h, include/parrot/encoding.h,
5772         include/parrot/parrot.h: Moved string to number conversion code out
5773         of the encoding layer and into the main string layer as neither the
5774         encoding layer nor the character type layer knows enough on it's
5775         own to do the conversion correctly.
5777 2001-12-05 23:12  tom
5779         * Makefile.in: Rebuild the classes directory if any of the object
5780         files for the classes are missing rather than only when perlint.o
5781         is missing.
5783 2001-12-05 19:43  gregor
5785         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm:
5786           * Reworked the constantize_string() stuff a little bit because it
5787         was
5788             puking on things like "\033[H\033[2J\0" (which occurs in the
5789             languages/jako/mandelzoom.jako example).
5791 2001-12-05 19:39  gregor
5793         * languages/jako/: Makefile, mandelzoom.jako:
5794         Added 'mandelzoom' example.
5796 2001-12-05 19:38  gregor
5798         * languages/jako/jakoc:
5799           * Added sleep()
5801           * Changed some instances of die() to confess()
5803 2001-12-05 18:34  gregor
5805         * t/: op/pmc.t, pmc/pmc.t:
5806         s/sting->int/string->int/
5808 2001-12-05 18:08  gregor
5810         * Parrot/.cvsignore:
5811         Ignore PMC.pm
5813 2001-12-05 18:05  gregor
5815         * classes/.cvsignore:
5816         Ignore the generated files.
5818 2001-12-05 17:19  gregor
5820         * pbc2c.pl:
5821           * Reverted recent changes, since they broke the script. Real fix
5822         coming
5823             later.
5825 2001-12-05 17:03  simon
5827         * classes/Makefile.in:
5828         Remember: change Makefile.in, not Makefile. D'oh.
5830 2001-12-05 17:02  simon
5832         * Makefile.in:
5833         Ensure PMC.pm gets remade.
5835 2001-12-05 16:58  simon
5837         * MANIFEST, Makefile.in, classes/Makefile.in,
5838         classes/perlundef.pmc, include/parrot/pmc.h:
5839         Add perlundef class.
5841 2001-12-05 16:45  simon
5843         * core.ops:
5844         Document "new P0, foo"
5846 2001-12-05 16:43  simon
5848         * MANIFEST, Makefile.in, pbc2c.pl, pmc_pm.pl, Parrot/Assembler.pm,
5849         lib/Parrot/Assembler.pm, t/op/pmc.t, t/pmc/pmc.t:
5850         Allow assembler to know about PMC class names.
5852 2001-12-04 13:39  ajgough
5854         * MANIFEST: Added t/op/pmc.t to MANIFEST.
5856 2001-12-04 05:02  ajgough
5858         * classes/perlnum.pmc: Picky compiler pointed out probable thinko
5859         in perlnum.c
5861 2001-12-04 04:24  ajgough
5863         * encodings/singlebyte.c, t/op/pmc.t, t/pmc/pmc.t: A much less
5864         broken form of strtod and appropriate tests.  Does not yet check
5865         for overflow.
5867 2001-12-04 01:31  ajgough
5869         * string.c, encodings/singlebyte.c, encodings/utf16.c,
5870         encodings/utf8.c, include/parrot/encoding.h: Added length parameter
5871         to extract_num and extract_int string vtables, without this it
5872         would be impossible to have strings with nulls in while still
5873         knowing where they ended.
5875 2001-12-03 18:40  ajgough
5877         * string.c, classes/perlstring.pmc, encodings/singlebyte.c,
5878         encodings/utf16.c, encodings/utf8.c, include/parrot/encoding.h,
5879         include/parrot/string.h: Moved pmc string to number conversion into
5880         the string encoding tables.
5882 2001-12-03 00:21  ajgough
5884         * core.ops, t/op/pmc.t, t/pmc/pmc.t: Added set i, p and some tests
5885         for p-> integer.
5887 2001-12-02 23:09  jgoff
5889         * classes/Makefile.in: Removed some redundant targets.
5891 2001-12-02 19:02  ajgough
5893         * t/: op/pmc.t, pmc/pmc.t: Modified all pmc tests to make use of fp
5894         equality macro rather than using perl to generate expected output,
5895         all tests now have <<OUTPUT.
5897 2001-12-02 17:44  ajgough
5899         * t/op/trans.t: Upgraded fp_eq and fp_ne macros to be more useful
5900         for pmc.t as well.  Will probably move macros into another file at
5901         some point, although this might be best left until the tests are
5902         unperled.
5904 2001-12-02 06:16  jgoff
5906         * classes/pmc2c.pl: It wasn't properly setting the vtable index
5907         within Parrot_Perl{Class}_init.
5909 2001-12-02 06:09  jgoff
5911         * classes/Makefile.in: I seem to have removed *$(O) twice..
5913 2001-12-02 05:06  jgoff
5915         * Configure.pl, MANIFEST, Makefile.in: (Hopefully the last time...)
5916         Configure.pl - Removed '-I./include', added classes/Makefile
5917         generation MANIFEST     - Added classes/Makefile.in Makefile.in  -
5918         Removed old classes/* make stuff                Added target for
5919         classes/Makefile
5921 2001-12-02 04:48  jgoff
5923         * classes/Makefile.in: Going to be used shortly...
5925 2001-12-02 04:40  jgoff
5927         * docs/Makefile: Configure.pl - Added automatic makefile creation
5928         for docs/ and classes/                Removed '-I./include' because
5929         it was getting incorrectly                passed to classes/
5930         MANIFEST - added docs/Makefile.in, classes/Makefile.in Makefile.in
5931         - Removed classes/ build stuff, replaced with classes/Makefile.in
5932                     Added '-I./include' locally docs/Makefile - Should no
5933         longer be used, but I'm not brave enough to do a
5934         cvs delete.
5936 2001-12-02 01:21  ajgough
5938         * t/op/trans.t: Refactored trans math tests to have hard coded
5939         expected return values and be more ready to be unperled at some
5940         point in the future.  Added $fp_equality_macro which is a
5941         "nearly-equal-to" function.
5943 2001-12-02 01:18  ajgough
5945         * Makefile.in: Humph.  People really ought to use Makefile
5946         variables, s/perl/$(PERL)/ throughout.
5948 2001-12-01 18:15  jgoff
5950         * classes/: perlint.pmc, perlnum.pmc: Temporary patch until we
5951         figure out what to do vis-a-vis the lack of snprintf.
5953 2001-11-30 13:14  ajgough
5955         * t/op/: integer.t, number.t: Added tests for abs ops to number.t
5956         and integer.t
5958 2001-11-30 13:14  ajgough
5960         * core.ops: Added abs(i|n, i|ic|n|nc) ops to core.ops, using if <0
5961         -, else ... form.
5963 2001-11-30 10:36  simon
5965         * core.ops:
5966         Rewrite print_p to do the right thing.
5968 2001-11-30 06:21  jgoff
5970         * t/: op/pmc.t, pmc/pmc.t: New tests for integer/number/string
5971         concat,               integer/number/string math
5973 2001-11-30 06:20  jgoff
5975         * classes/: perlint.pmc, perlnum.pmc, perlstring.pmc:
5976         classes/perlint.pmc - Fixes and expanding for concat and math with
5977         strings classes/perlnum.pmc - Fixes and expanding for concat and
5978         math with strings classes/perlstring.pmc - Fixes and expanding for
5979         concat and math with strings
5981 2001-11-29 15:21  ajgough
5983         * hints/os2.pl: This is a hints file for os/2, I've set $c{perl} as
5984         $^X lies, which confused bash which make uses to run things when
5985         doing its stuff.
5987 2001-11-29 04:58  jgoff
5989         * classes/perlstring.pmc: Removed C++-style comments for good
5990         measure
5992 2001-11-29 04:51  jgoff
5994         * t/: op/pmc.t, pmc/pmc.t: New tests for PMC integers
5996 2001-11-29 04:28  jgoff
5998         * global_setup.c: Initialize PMC strings
6000 2001-11-29 04:25  jgoff
6002         * core.ops: Added set_p_s and set_p_sc, modified print_p to handle
6003         string PMCs.
6005 2001-11-29 04:24  jgoff
6007         * classes/: perlint.pmc, perlnum.pmc, perlstring.pmc: Changed PMC
6008         files to properly upgrade int to num, do calculations.  Also added
6009         basic string operations. Currently errors out on anything but set
6010         operations, but this will be fixed soon.
6012 2001-11-29 04:22  jgoff
6014         * Makefile.in: PMC .c files weren't getting cleaned out.
6016 2001-11-28 17:00  simon
6018         * t/harness:
6020         Make csh-glob happy.
6022         Courtesy of: Andy Dougherty: <doughera@lafayette.edu>
6024 2001-11-28 16:40  simon
6026         * classes/perlnum.pmc:
6028         De-C++
6030 2001-11-28 15:22  simon
6032         * string.c:
6034         Fixes Alex's string concat worry.
6036 2001-11-28 14:27  ajgough
6038         * t/op/string.t: test "null onto null" incorrectly passing as it
6039         produced no output.  Output provided.
6041 2001-11-28 11:14  simon
6043         * include/parrot/pmc.h:
6045         Placate AIX.
6047 2001-11-26 21:03  dan
6049         * MANIFEST, hints/darwin.pl: Tweaks to build on Mac OS X 10.1
6051 2001-11-26 17:29  simon
6053         * classes/perlint.pmc:
6055         Various subtle but non-showstopper bugs.
6057 2001-11-26 11:23  simon
6059         * classes/pmc2c.pl:
6061         Replace dependency on Text::Balanced
6063         Courtesy of: Bart Lateur <bart.lateur@pandora.be>
6065 2001-11-26 05:22  jgoff
6067         * global_setup.c: Last file that should need to be committed. I
6068         swear.
6070 2001-11-26 05:09  jgoff
6072         * core.ops: Let's try this again... Changes to core.ops required
6074 2001-11-26 04:58  jgoff
6076         * classes/perlint.pmc, classes/perlnum.pmc, t/op/pmc.t,
6077         t/pmc/pmc.t: Makefile.in - Added missing cleanup line for perl*.c
6078         core.ops - Added set(p,n|nc), modified print(p) global_setup.c -
6079         Uncommented PerlNum_init classes/perlint.pmc - Added set_number
6080         functions classes/perlnum.pmc - Set up basic number functions
6081         t/op/pmc.t - Added tests for set P0.<number> and {add,mul,sub,div}
6082         tests against numbers and numbers+integers
6084 2001-11-25 13:18  simon
6086         * Makefile.in:
6087         Windows XP make doesn't like $<
6089 2001-11-25 12:56  simon
6091         * MANIFEST, Makefile.in, classes/genclass.pl, classes/perlint.c,
6092         classes/perlint.pmc, classes/perlnum.c, classes/perlnum.pmc,
6093         classes/perlstring.c, classes/perlstring.pmc, classes/pmc2c.pl,
6094         examples/assembly/mops_p.pasm:
6095         PMC preprocessor.
6097         Courtesy of: Angel Faus <afaus@corp.vlex.com>
6099         I (Simon) also added a couple more integer methods, but no tests
6100         since I'm a Bad Person.
6102 2001-11-25 08:40  brentdax
6104         * ops2c.pl, Parrot/Op.pm, Parrot/OpsFile.pm, lib/Parrot/Op.pm,
6105         lib/Parrot/OpsFile.pm: Allow _ in op names
6107 2001-11-25 05:54  jgoff
6109         * classes/perlint.c, t/op/pmc.t, t/pmc/pmc.t: classes/perlint.c -
6110         Added basic math ops t/op/pmc.t - Added tests of basic math ops
6112 2001-11-23 18:27  simon
6114         * core.ops, classes/perlint.c, examples/assembly/mops_p.pasm:
6115         Add everything you need to make MOPS use PMCs.
6117 2001-11-23 18:06  simon
6119         * core.ops:
6120         Eh, you'll need this for rewriting mops.pasm.
6122 2001-11-23 17:55  simon
6124         * core.ops, classes/perlint.c, include/parrot/pmc.h, t/op/pmc.t,
6125         t/pmc/pmc.t:
6126         More work on integer PMCs.
6128 2001-11-23 17:29  simon
6130         * Makefile.in:
6131         Surprise! Whitespace! HLAGHLAGHLAGH
6133 2001-11-23 17:28  simon
6135         * Makefile.in, ops2c.pl, ops2pm.pl:
6136         Add vtables.ops to the core
6138         Courtesy of: Jeff Goff <jgoff@speakeasy.net>
6140 2001-11-22 18:39  simon
6142         * core.ops, global_setup.c, docs/parrot_assembly.pod, t/op/pmc.t,
6143         t/pmc/pmc.t:
6144         We can now create PMCs.
6146 2001-11-21 05:49  jgoff
6148         * Makefile.in: Makefile cleans up *.pasm *.pbc *.out
6150 2001-11-20 16:00  simon
6152         * docs/vtables.pod, include/parrot/pmc.h:
6153         Reorder PMC flags so there's a fixed number of user-defined flags.
6155         Courtesy of: Dave Mitchell <davem@fdgroup.co.uk>
6157 2001-11-19 03:39  jgoff
6159         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm, t/op/basic.t:
6160         Parrot/Assembler.pm - Allow "print 'foo'", and properly escape
6161         nested quotes.  t/op/basic.t - Add tests for single-quoted strings,
6162         escaped quotes, and proper                handling of newlines.
6164 2001-11-16 22:03  simon
6166         * classes/perlint.c:
6167         More work on the Perl Integer class. More needed, though.
6169 2001-11-16 21:57  simon
6171         * pmc.c, vtable.tbl, classes/genclass.pl, classes/perlint.c:
6172         Rename ->new to ->init, and rework pmc.c:pmc_new to fiddle it.
6174 2001-11-16 20:49  simon
6176         * interpreter.c, runops_cores.c, trace.c,
6177         include/parrot/runops_cores.h:
6178         Kill superfluous runops cores.
6180 2001-11-16 17:50  simon
6182         * MANIFEST, Makefile.in, classes/intclass.c, classes/perlint.c,
6183         classes/perlnum.c, classes/perlstring.c, classes/scalarclass.c,
6184         include/parrot/parrot.h, include/parrot/pmc.h:
6185         Skeleton for Perl scalar types, done right.
6187 2001-11-16 16:15  simon
6189         * classes/genclass.pl:
6190         This tidies up genclass to deal with the new-style multimethods.
6192 2001-11-16 15:29  simon
6194         * Makefile.in, make_vtable_ops.pl, vtable.tbl, Parrot/Vtable.pm,
6195         lib/Parrot/Vtable.pm, include/parrot/parrot.h:
6196         Rework multimethods to be *true* multimethods - that is, have
6197         different types.
6199 2001-11-15 22:29  simon
6201         * MANIFEST, Makefile.in, pmc.c:
6202         pmc.c linkage and support. Oh, and making it compile.
6204 2001-11-15 22:26  dan
6206         * t/op/interp.t: Forgot to tell CVS about the test...
6208 2001-11-15 22:10  dan
6210         * MANIFEST, Types_pm.in, core.ops, vtable_h.pl,
6211         docs/parrot_assembly.pod, include/parrot/string.h: Added in support
6212         for PMC registers for the interpreter.
6214         Added in the docs for the runinterp opcode.
6216         Added in code for both the newinterp and runinterp opcodes, so we
6217         can now create new interpreters from within parrot and have them do
6218         things. (Though we can't pass data back and forth. Yet)
6220 2001-11-15 21:24  simon
6222         * vtable.tbl, classes/scalarclass.c, docs/vtables.pod:
6223         More documentation, and other changes as discussed with Dan.
6225 2001-11-15 19:51  simon
6227         * classes/scalarclass.c:
6228         De-cut-and-pasto.
6230 2001-11-15 19:50  simon
6232         * classes/scalarclass.c:
6233         A little code tidiness.
6235 2001-11-15 19:33  simon
6237         * include/parrot/pmc.h:
6238         Missed this in the previous commit - un-constantize the base for
6239         user-defined PMC flags.
6241 2001-11-15 19:28  simon
6243         * classes/scalarclass.c:
6244         Hey look, sanity.
6246 2001-11-15 17:09  simon
6248         * classes/scalarclass.c:
6249         It seems I have completely forgotten how to write C.
6251 2001-11-15 16:53  simon
6253         * docs/vtables.pod:
6254         Start of the PMC classes documentation.
6256 2001-11-15 14:46  simon
6258         * classes/scalarclass.c:
6259         Changing to use a Perl-style struct instead of the union cache.
6261 2001-11-13 23:56  tom
6263         * string.c: Removed leading _ from string_index as function names
6264         starting with _ are reserved to implementors by the C standard.
6266         Also fixed string_index to use the encoding routines instead of
6267         assuming a single byte encoding.
6269 2001-11-13 12:59  jgoff
6271         * string.c: Patched string_concat to accept null strings.  That
6272         test was failing. Nothing to do with ord().
6274 2001-11-13 12:43  jgoff
6276         * string.c: string_ord function, string_concat fixes
6278 2001-11-13 04:52  jgoff
6280         * core.ops: Added ord to core.ops
6282 2001-11-13 04:35  jgoff
6284         * docs/strings.pod, include/parrot/exceptions.h,
6285         include/parrot/string.h, t/op/string.t: core.ops - Added ord
6286         operator, documentation string.c - Added string_ord, _string_index
6287         (_string_index is a static helper)              Patched
6288         string_concat to handle null strings properly.  docs/strings.pod -
6289         Description of string_ord include/parrot/exceptions.h - Added
6290         ORD_OUT_OF_STRING exception include/parrot/string.h - Added
6291         string_ord() t/op/string.t - Added full set of test for
6292         ord_i_(s|sc)(_(i|ic))?
6294         string.c contains a bit of documentation explaining the logic
6295         behind _string_index, primarily having to do with multiple encoding
6296         formats.
6298 2001-11-12 22:30  simon
6300         * t/op/macro.t:
6301         Count 'em.
6303 2001-11-12 22:28  simon
6305         * Makefile.in:
6306         Add a rule to compile "platform"
6308 2001-11-12 22:26  simon
6310         * Makefile.in:
6311         Tidy up distclean target.
6313 2001-11-12 16:54  dan
6315         * MANIFEST, Parrot/Assembler.pm, lib/Parrot/Assembler.pm,
6316         t/op/macro.t: Fixes to the assembler's macro facility and a test
6318         Courtesy of: Jeff <jgoff@speakeasy.net>
6320 2001-11-12 16:50  dan
6322         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm: Allow input from
6323         stdin
6325         Courtesy of: Jeff <jgoff@speakeasy.net>
6327 2001-11-12 16:36  dan
6329         * Parrot/Test.pm, lib/Parrot/Test.pm: Fix to make test work on
6330         CygWin
6332         Courtesy of: Alex Gough <alexander.gough@st-hughs.oxford.ac.uk>
6334 2001-11-12 11:22  simon
6336         * examples/assembly/mops.pasm:
6338         Trivial tightening of mops loop.
6340 2001-11-07 23:57  ajgough
6342         * docs/tests.pod: This is a basic quide to writing tests with
6343         assembler.
6345 2001-11-07 22:29  dan
6347         * stacks.c: Added a little documentation on the cleanup parameter
6348         for an entry
6350 2001-11-07 14:43  dan
6352         * MANIFEST, platforms/generic.c, platforms/linux.c,
6353         platforms/linux.h: Portability patches.
6355         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
6357 2001-11-06 19:51  tom
6359         * Makefile.in: Clean up object files in the subdirectories as well
6360         as those in the top level directory.
6362         Enhanced version of patch from Daniel Grunblatt
6363         <daniel@grunblatt.com.ar>
6365 2001-11-06 16:14  dan
6367         * Configure.pl, MANIFEST, Makefile.in, core.ops,
6368         platforms/generic.c, platforms/generic.h: Made things a bit more
6369         platform-independent. Makefile still needs work to pick up changes
6370         to the platform-specific files.
6372 2001-11-05 21:32  dan
6374         * docs/parrot_assembly.pod: Added docs for the GC control ops
6376 2001-11-04 02:52  gregor
6378         * platforms/: win32.c, win32.h:
6379           * win32 dynamic loading functions.
6381         Courtesy of Jason Diamond <jason@injektilo.org>
6383 2001-11-04 00:04  brentdax
6385         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm: Assembler fixes:
6386         allows an absolute path to be used and gives a useful error message
6387         if the original source file can't be found
6389 2001-11-02 12:37  gregor
6391         * platforms/: linux.c, linux.h:
6392           * Beginning of dynamic loading support. Linux only for now.
6394 2001-11-02 12:13  gregor
6396         * MANIFEST, time.c, include/parrot/time.h:
6397           * Removed time.[hc], since they have been superseded by the new
6398         platform
6399             stuff.
6401 2001-11-02 12:11  gregor
6403         * Configure.pl, Makefile.in, core.ops, vtable.tbl,
6404         classes/intclass.c, classes/scalarclass.c, hints/mswin32.pl,
6405         include/parrot/parrot.h, platforms/linux.c, platforms/linux.h,
6406         platforms/win32.c, platforms/win32.h:
6407         Patch from Jason Diamond to make win32 platform stuff work:
6409         * Modified Configure.pl, mswin32.pl, and Makefile.in so that the
6410         platform specific files in the platforms directory gets copied to
6411         the correct directories. The Makefile will re-copy the platform.h
6412         and .c files if the original is modified.
6414         * #include platform.h in parrot.h instead of time.h.
6416         * Removed time.h and time.obj from the Makefile. time.h and time.c
6417         aren't being used anymore since that code was moved to linux.c and
6418         win32.c.
6420         * Renamed the BOOL typedef in parrot.h to BOOLVAL (inspired by
6421         INTVAL and FLOATVAL). This was conflicting with the BOOL typedef in
6422         windows.h. This required updating several files besides parrot.h.
6424         * Added a DEFAULT_OPEN_MODE to linux.h and win32.h and used that
6425         instead of the missing identifiers (on Windows) in core.ops in the
6426         calls to open.
6428         * Added Parrot_sleep and Parrot_setenv to both the linux and win32
6429         platform files and called those from core.ops. The Linux code for
6430         these functions came from core.ops so they should hopefully work.
6432         Courtesy of Jason Diamond <jason@injektilo.org>
6434 2001-11-02 06:43  brentdax
6436         * Makefile.in, hints/mswin32.pl: Fix classes/intclass.obj building
6437         for Win32 (courtesy of Jason Diamond <jason@injektilo.org>)
6439 2001-11-02 02:26  gregor
6441         * .cvsignore, MANIFEST, include/parrot/.cvsignore,
6442         platforms/linux.c, platforms/linux.h, platforms/win32.c,
6443         platforms/win32.h:
6444           * Beginnings of platform support files in platform/*.[hc]
6446 2001-11-01 23:37  tom
6448         * classes/intclass.c: Added missing *'s to STRING arguments and
6449         return values to avoid compiler warnings.
6451 2001-11-01 22:21  gregor
6453         * MANIFEST, Makefile.in, core.ops, obscure.ops, time.c,
6454         include/parrot/parrot.h, include/parrot/time.h:
6455         Initial "fix" of time(n) op for Win32:
6457           * Initial Win32 code Courtesy of Richard J Cox <rjcox@cix.co.uk>
6459           * time.c and include/parrot/time.h
6461             First attempt at getting this working across platforms. The
6462             macro WIN32 being tested might not be right.
6464           * New functions Parrot_intval_time() and Parrot_floatval_time()
6465             wrap the appropriate functionality depending upon platform.
6466             Changed core.ops to call these.
6468         Added obscure.ops with obscure transcendental ops.
6470         Added simple file I/O ops (close, open, read, write):
6472           * Initial versions Courtesy of Jeff <jgoff@speakeasy.net>
6474           * I changed some arg ordering stuff.
6476           * I added read/write of INTVALs and FLOATVALs.
6478         Added environment variable ops (getenv, setenv)
6480         Added system error ops (err(i) and err(s) for accessing errno and
6481         strerr().
6483         Moved print ops in with other "temporary" developer ops, since
6484         they'll move to a devel.ops or temp.ops oplib once we have oplibs.
6486 2001-10-31 22:51  tom
6488         * MANIFEST, Makefile.in, chartype.c, encoding.c, global_setup.c,
6489         packfile.c, string.c, strnative.c, strutf16.c, strutf32.c,
6490         strutf8.c, transcode.c, chartypes/unicode.c, chartypes/usascii.c,
6491         encodings/singlebyte.c, encodings/utf16.c, encodings/utf32.c,
6492         encodings/utf8.c, include/parrot/chartype.h,
6493         include/parrot/encoding.h, include/parrot/exceptions.h,
6494         include/parrot/parrot.h, include/parrot/string.h,
6495         include/parrot/strnative.h, include/parrot/strutf16.h,
6496         include/parrot/strutf32.h, include/parrot/strutf8.h,
6497         include/parrot/transcode.h: Reworked the string code in line with
6498         Dan's latest design that separates character sets from encodings.
6500 2001-10-31 19:53  dan
6502         * docs/parrot_assembly.pod: Finished I/O section of docs
6504 2001-10-31 16:51  dan
6506         * core.ops, docs/parrot_assembly.pod, include/parrot/parrot.h:
6507         Moved includes out of core.ops and into parrot.h where they belong
6508         (suitably guarded with #ifdefs). Also some updates to
6509         parrot_assembly.pod
6511 2001-10-30 21:43  dan
6513         * core.ops, stacks.c, docs/parrot_assembly.pod,
6514         include/parrot/stacks.h: Added entrytype opcode to fetch the type
6515         of the entry on the stack
6517 2001-10-29 18:30  dan
6519         * stacks.c: You can turn off stack entry type validation on pop by
6520         passing in a type of 0 now. (For those cases where you just want to
6521         throw the darned thing away)
6523 2001-10-29 14:37  gregor
6525         * core.ops, languages/jako/jakoc:
6526           * New variants of the save ops to save constants on the stack.
6527         This is
6528             useful for saving zero arg and result counts on the stack, for
6529         example.
6531           * Modified jakoc to to adapt to the newly announced calling
6532         conventions.
6533             Even though Jako source code appears to show subroutines with
6534         fixed
6535             numbers of arguments and results, they are implemented with the
6536             variable count calling convention. Future modifications will be
6537         needed
6538             to ensure that an exception is raised if the stack frame is of
6539         the
6540             wrong size (or, at least that we pop the complete frame off).
6541         We'll
6542             also have to make more changes to support the true
6543         fixed-arg-count
6544             and fixed-result-count parts of the calling convention spec.
6546 2001-10-28 16:53  simon
6548         * MANIFEST, stacks.c, classes/scalarclass.c,
6549         include/parrot/stacks.h:
6550         Unbelievably bad errors of mine, plus a type incompatibility of
6551         Dan's.
6553 2001-10-28 08:30  simon
6555         * classes/scalarclass.c:
6556         Beginning of a scalar class.
6558 2001-10-28 08:29  simon
6560         * make_vtable_ops.pl, vtable.tbl, Parrot/Vtable.pm,
6561         lib/Parrot/Vtable.pm, classes/genclass.pl, classes/intclass.c,
6562         include/parrot/pmc.h:
6563         This fixes the problem with vtables and pointer arithmetic.
6565 2001-10-26 19:58  dan
6567         * core.ops, interpreter.c, stacks.c, include/parrot/interpreter.h,
6568         include/parrot/stacks.h: Split the generic stack into a user push
6569         stack and a control stack
6571 2001-10-26 02:59  bdwheele
6573         * Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm: [no log message]
6575 2001-10-24 20:27  dan
6577         * languages/scheme/: Makefile, Scheme.pm, schemec,
6578         Scheme/Generator.pm, Scheme/Parser.pm, Scheme/Test.pm,
6579         Scheme/Tokenizer.pm, t/harness, t/arith/basic.t, t/arith/logic.t,
6580         t/arith/nested.t, t/io/basic.t, t/logic/basic.t: Added the mini
6581         Scheme compiler
6583 2001-10-24 20:23  dan
6585         * MANIFEST, pdump.c, docs/parrot_assembly.pod: Update for
6586         interpreter needs in pdump.c. Added scheme bits to manifest
6588 2001-10-24 16:43  gregor
6590         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm:
6591           * Make the assembler handle octal character code escapes in
6592         string
6593             constants.
6595 2001-10-24 15:56  dan
6597         * MANIFEST, examples/assembly/life.pasm: Added an example in to
6598         play the game of life
6600 2001-10-24 15:54  dan
6602         * core.ops: Added sleep. We'll need to override this to do events
6603         properly anyway, so...
6605 2001-10-24 14:03  gregor
6607         * Makefile.in, pbc2c.pl, pdump.c:
6608           * Adapt pdump.c and pbc2c.pl to the new requirement to pass
6609         interpreter
6610             pointer into string functions.
6612         Courtesy of: Ryan O'Neil <talisman580@yahoo.com>
6614 2001-10-23 20:09  gregor
6616         * languages/jako/jakoc:
6617           * Terminological refinement in regexp capture comment.
6619 2001-10-23 15:23  simon
6621         * classes/genclass.pl:
6622         Use a saner ANSI C construct to make MIPSPro happy.
6624         Courtesy of: Alex Gough <alexander.gough@st-hughs.oxford.ac.uk>
6626 2001-10-23 00:34  tom
6628         * core.ops, string.c, strnative.c, strutf16.c, strutf32.c,
6629         strutf8.c, include/parrot/string.h: Make sure the interpreter
6630         structure is passed to the transcoder as necessary, including
6631         passing it to string_compare().
6633 2001-10-23 00:32  tom
6635         * Makefile.in: Make pdump build again by including resources.o in
6636         the link.
6638 2001-10-22 22:43  dan
6640         * core.ops, packfile.c, string.c, strnative.c, strutf16.c,
6641         strutf32.c, strutf8.c, test_main.c, transcode.c,
6642         include/parrot/packfile.h, include/parrot/parrot.h,
6643         include/parrot/resources.h, include/parrot/string.h,
6644         include/parrot/transcode.h: Everything now uses the allocators and
6645         deallocators in resources.c.
6647         Unfortunately we lost standalone string-test mode, but I can cope
6648         with that.
6650         Please note that until we have a real allocation/deallocation/GC
6651         system, this'll leak. A *lot*.
6653 2001-10-22 20:27  dan
6655         * MANIFEST, Makefile.in, pmc.c, resources.c,
6656         include/parrot/resources.h: First cut to handle arena allocation of
6657         PMC headers. (Amongst other things)
6659 2001-10-22 19:02  dan
6661         * Configure.pl, config_h.in, register.c, include/parrot/register.h:
6662         Now each register type has its own mask macro, which is the right
6663         thing to do.
6665         Patch courtesy of Jason Gloudon <perl@gloudon.com>
6667 2001-10-21 23:40  tom
6669         * stacks.c, t/op/stacks.t: Fix bug in handling of rollover to a new
6670         stack chunk and add a test to test this rollover in future.
6672         Courtesy of Jason Gloudon <perl@gloudon.com>.
6674 2001-10-21 19:14  dan
6676         * include/parrot/string.h: Changed string 'unused' field to the
6677         language field.
6679 2001-10-21 18:18  gregor
6681         * languages/jako/: Makefile, mops.jako:
6682           * Makefile: 'clean' target removes .list files, too. And, it does
6683         rm -f
6684             with wildcards rather than listing things explicitly.
6686           * mops.jako actually prints out the
6687         millions-of-operations-per-second
6688             (mops) value instead of just the operations-per-second value.
6690 2001-10-21 18:03  simon
6692         * classes/intclass.o:
6693         *smack*! WRONG!
6695 2001-10-21 17:47  simon
6697         * MANIFEST, Makefile.in, make_vtable_ops.pl, pmc.c, vtable_h.pl,
6698         Parrot/Vtable.pm, classes/genclass.pl, classes/intclass.c,
6699         classes/intclass.o, include/parrot/parrot.h, include/parrot/pmc.h,
6700         lib/Parrot/Vtable.pm:
6701         Initial work on PMCs. Explanation to follow
6703 2001-10-21 15:20  gregor
6705         * examples/assembly/queens.pasm:
6706           * Modernize the calling conventions in queens.pasm. It was using
6707         swap,
6708             which now must be rotate. Also, changed to use return values on
6709         the
6710             stack instead of in I0.
6712 2001-10-19 18:14  gregor
6714         * core.ops, stacks.c, include/parrot/stacks.h,
6715         languages/jako/jakoc:
6716         Per Dan's request, replacing 'swap' op by 'rotate'.
6718           * core.ops: Replaced 'swap()' by 'rotate(i|ic)'.
6720           * stacks.c and stacks.h: Removed swap-related functions from my
6721             prior commit, replacing them with stack_depth(), stack_entry()
6722             and rotate_entries().
6724             NOTE: The stack_depth() and rotate_entries() routines could
6725             be made more efficient through the caching of the sum of chunk
6726             'used' members from lower chunks in a field in the upper
6727             chunks. Also, if the interpreter's stack_base was changed to
6728             hold the pointer to the *top* chunk (since we usually come
6729             at the stack from the top down) instead of the *bottom*
6730             chunk. The code here at least works, and we can decide about
6731             bigger changes separately.
6733             For now, rotate only handles rotates in one direction and
6734             of magnituded one. A fully general rotate would do handle
6735             rotates in both directions and of arbitrary amounts. Again,
6736             this implementation is sufficient for current applications,
6737             and a feature-complete version can be developed if this turns
6738             out to be otherwise the right type of implementation.
6740             This change includes a new exception for ERROR_STACK_SHALLOW,
6741             meaning "not-empty-yet-not-deep-enough-for-what-you-asked".
6743           * jakoc: Changed the calling convention to use rotate instead
6744             of swap (of course). Also changed the convention for return
6745             value passing to use the stack as well.
6747 2001-10-19 13:36  gregor
6749         * MANIFEST, core.ops, disassemble.pl, stacks.c,
6750         examples/assembly/queens.pasm, include/parrot/stacks.h,
6751         languages/jako/.cvsignore, languages/jako/Makefile,
6752         languages/jako/bench.jako, languages/jako/euclid.jako,
6753         languages/jako/fact.jako, languages/jako/jakoc,
6754         languages/jako/mandelbrot.jako, languages/jako/mops.jako,
6755         languages/jako/primes.jako, languages/jako/queens.jako,
6756         languages/jako/sub.jako:
6757           * New stack functions push_entry(), pop_entry() and swap_entry().
6758             The first two exist for the support of the last one. These
6759             functions don't care what is in the stack entries. These exist
6760             to support the new 'swap' op (see next bullet).
6762           * New op 'swap' for swapping the top two elements on the stack.
6763             This is necessary for passing arguments to functions, since
6764             the return address will be on top of any arguments that have
6765             been pushed on the stack. This way, you can use a (swap, pop)
6766             pair to retrieve each argument (for subroutine linkage).
6768           * Disassembler now prints numbers in decimal by default, with
6769             a new '-x' flag to turn on hexadecimal display. Since other
6770             members of the Parrot Tool Set use decimal by default, this
6771             makes it easier to compare output from the various tools.
6773           * Jako compiler has more explanatory comments and the following
6774             new features:
6776               * Lexically scoped variables.
6778               * Subroutines that take arguments and return values:
6780                   sub int foo(int bar) {
6781                     if (bar == 1) {
6782                       return 42;
6783                     } else {
6784                       return 13;
6785                     }
6786                   }
6787               * ... if (...) and ... unless (...) statement modifiers
6788                 can be used on next, last and redo.
6790               * Bitwise and (&, &=) and or (|, |=) ops.
6792               * Type names are just 'int', 'num', 'str', and 'poly' now.
6793                 The old long names 'integer', 'number', 'string', and
6794                 'polytype' are no longer valid.
6796               * Integer variable assignments can now use 0b (binary),
6797                 0 (octal) and 0x (hexadecimal) radix prefixes on literals.
6799           * New Jako and Parrot assembly examples queens.{jako,pasm} for
6800             solving the eight-queens problem. The assembly example is a
6801             hand-modified version of the assembly code produced by the
6802             Jako compiler from queens.jako. A few unnecessary ops have
6803             been removed, lots of unnecessary labels have been removed,
6804             and all the Jako source code comments have been removed.
6806           * Makefile and .cvsignore in languages/jako modified so that
6807             the assembler produces listings when assembling the programs,
6808             yet the *.list files are ignored by CVS.
6810           * Made the default target in languages/jako/Makefile 'all'.
6812           * Modified some of the Jako examples to use some of the new
6813             features of Jako, such as subroutines and lexical variable
6814             scoping.
6816 2001-10-19 02:43  gregor
6818         * runops_cores.c, include/parrot/runops_cores.h:
6819         Bug fix (gcc doesn't complain, but MIPSpro does):
6821           * Added missing extern to runops_cores array declaration in
6822             include/parrot/runops_cores.h
6824           * Also added 'const' there and in runops_cores.c
6826 2001-10-18 15:18  gregor
6828         * .cvsignore, include/parrot/oplib/.cvsignore:
6829           * Ignore the vtable-related generated files.
6831 2001-10-18 15:14  gregor
6833         * core.ops:
6834           * left and right shifts now allow the 2nd argument to be a
6835         constant.
6837 2001-10-18 14:55  simon
6839         * make_vtable_ops.pl:
6840         This is C, not Perl. How on earth did that even compile?
6842 2001-10-18 14:54  simon
6844         * make_vtable_ops.pl:
6845         More vtable ops.
6847 2001-10-18 12:33  simon
6849         * Makefile.in, make_vtable_ops.pl, vtable.tbl:
6850         Initial stab at vtable opcode creation stuff.
6852 2001-10-18 02:15  gregor
6854         * MANIFEST, Makefile.in, interpreter.c, runops_cores.c, trace.c,
6855         include/parrot/interpreter.h, include/parrot/runops_cores.h,
6856         include/parrot/trace.h: Preparation for autogenerated runops cores:
6858           * Split tracing and runops core stuff out of interpreter.c into
6859             trace.c and runops_cores.c
6861           * Similar split of stuff from include/parrot/interpreter.h
6863           * Manifest and Makefile.in updates to make things still compile.
6865 2001-10-18 01:21  gregor
6867         * Makefile.in, ops2c.pl, ops2pm.pl, pbc2c.pl: Bug fixes:
6869           * Makefile.in: examples/assembly/mops.c depends on pbc2c.pl
6871           * Makefile.in: Parrot/OpLib/core.pm depends on ops2pm.pl
6873           * ops2c.pl: Added second arg to mkdir (perl 5.005_02 complains)
6875           * ops2pm.pl: Added second arg to mkdir (perl 5.005_02 complains)
6877           * pbc2c.pl: Removed explicit include of <math.h>, replacing it
6878         with
6879             copy of $ops->preamble.
6881 2001-10-17 22:32  bdwheele
6883         * interpreter.c: Moved op dump code into trace_op_dump, per Dan's
6884         request.
6886 2001-10-17 22:08  gregor
6888         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm:
6889           * Now handles label-and-comment-only lines.
6891 2001-10-17 22:04  bdwheele
6893         * interpreter.c: added more comprehensive trace output
6895 2001-10-17 16:50  tom
6897         * Makefile.in: Removed the explicit rule for building mops.o from
6898         mops.c so that the implicit rule for compiling C files is used
6899         instead. This means that the chosen C flags are used, including any
6900         optimisation options.
6902 2001-10-17 15:24  tom
6904         * core.ops, Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm: Enhanced the
6905         op explosion logic to be able to handle exploding this:
6907           sub(i, i|ic, i|ic)
6909         into these:
6911           sub(i, i, i)
6912           sub(i, i, ic)
6913           sub(i, ic, i)
6915         without also generating this unwanted version:
6917           sub(i, ic, ic)
6919         The enhanced version rejects any expansion where there is more than
6920         one expanded argument and all the expanded arguments are constants.
6922 2001-10-17 14:20  simon
6924         * Makefile.in, ops2c.pl, ops2pm.pl, examples/assembly/Makefile:
6925         Build fixes to use correct Perl version and ensure that things are
6926         running in the right directory.
6928         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
6930 2001-10-17 13:16  simon
6932         * Makefile.in:
6933         core.pm is more critical than that.
6935 2001-10-17 13:05  simon
6937         * core.ops, Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm:
6938         "Explode" ops into multiple versions for different parameters.
6940         Courtesy of: Tom Hughes <tom@compton.nu>
6942 2001-10-17 12:54  simon
6944         * Makefile.in:
6945         Fix dependencies and cleaning.
6947 2001-10-17 12:45  simon
6949         * Configure.pl, Makefile.in:
6950         Fixes to make Parrot compile without the temporary build hack
6952         Courtesy of: Jason Gloudon <perl@gloudon.com>
6954 2001-10-16 20:43  gregor
6956         * Makefile.in:
6957           * Fixed dependencies for building Parrot/OpLib/core.pm
6959 2001-10-16 19:35  bdwheele
6961         * core.ops, t/op/string.t: Changed set s,sc to use string_copy &
6962         added test, thanks to Alex Gough
6964 2001-10-16 16:49  bdwheele
6966         * core.ops: added opcode variants for constants and 3 arg concat
6968 2001-10-16 15:12  bdwheele
6970         * core.ops: added "set Sx,Sy" as a string copy to match the other
6971         register-to-register copies available
6973 2001-10-16 13:09  gregor
6975         * core.ops:
6976           * Added #include <sys/time.h> in the preamble for gettimeofday().
6978 2001-10-16 13:09  gregor
6980         * Makefile.in:
6981           * Removed cd t; make, which no longer applies
6983 2001-10-16 03:18  bdwheele
6985         * core.ops: fix save & restore operations to push correct type onto
6986         stack. [good eye to Jason Gloudon for noticing this]
6988 2001-10-16 01:38  bdwheele
6990         * core.ops, register.c, examples/assembly/fact.pasm,
6991         include/parrot/register.h: send in the clones:  clone routines for
6992         parrot + example program
6994 2001-10-15 22:37  gregor
6996         * MANIFEST, Makefile.in, examples/assembly/.cvsignore,
6997         examples/assembly/Makefile, examples/assembly/bsr.pasm,
6998         examples/assembly/call.pasm, examples/assembly/euclid.pasm,
6999         examples/assembly/jump.pasm, examples/assembly/local_label.pasm,
7000         examples/assembly/mops.pasm, examples/assembly/stack.pasm,
7001         examples/assembly/substr.pasm, examples/assembly/trace.pasm,
7002         t/.cvsignore, t/Makefile, t/call.pasm, t/euclid.pasm, t/jump.pasm,
7003         t/local_label.pasm, t/test.pasm, t/test2.pasm, t/test3.pasm,
7004         t/test4.pasm, t/test5.pasm, t/trace.pasm:
7005           * Moved examples from t/*.pasm to examples/assembly/*.pasm, with
7006         some
7007             renames so the names match what they demonstrate.
7009 2001-10-15 22:18  gregor
7011         * core.ops, t/test.pasm:
7012           * time_n uses gettimeofday() to get sub-second times.
7014           * t/test.pasm uses time_n directly rather than doing int stuff
7015         and
7016             converting to num later.
7018 2001-10-15 12:28  gregor
7020         * t/: test.pasm, test2.pasm, trace.pasm:
7021           * t/test.pasm prints using string constants instead of string
7022         regs.
7024           * t/test2.pasm assembles (using implicit op modes)
7026           * t/trace.pasm updated for new behavior of trace_ic, which does
7027         not
7028             require an 'end' after 'trace'.
7030 2001-10-15 00:47  gregor
7032         * core.ops, interpreter.c, test_main.c,
7033         include/parrot/interpreter.h, t/test.pasm:   * New interpreter flag
7034         PARROT_PROFILE_FLAG
7036           * New runops cores to handle profiling
7038           * Support for -p flag in test_prog to enable profiling
7040           * New profile_ic op to control profiling at run-time
7042 2001-10-14 21:54  gregor
7044         * core.ops, Parrot/OpsFile.pm, docs/.cvsignore, docs/Makefile,
7045         lib/Parrot/OpsFile.pm: Integrated op documentation.
7047           * core.ops now contains POD documentation of ops, interspersed
7048         with the
7049             ops themselves
7051           * Ops are organized into POD =head2 sections
7053           * Parrot/OpsFile.pm now treats the preamble of the ops file as
7054         anything
7055             up to the first POD directive OR op definition.
7057           * docs/Makefile now generates core_ops.pod from core.ops vi
7058         perldoc -u.
7060 2001-10-14 11:58  simon
7062         * Makefile.in:
7063         Unbreak Digital Un^W^WTru64
7065 2001-10-14 11:00  simon
7067         * Configure.pl:
7068         Remove weird typo.
7070 2001-10-14 10:56  tom
7072         * Configure.pl: Stop Configure trying to make op_info.c and op.h as
7073         op_info.c no longer exists and op.h is no longer a generated file.
7075 2001-10-14 10:54  tom
7077         * Makefile.in: Added vtable.h to the list of things removed by the
7078         clean target.
7080 2001-10-14 01:43  gregor
7082         * .cvsignore, MANIFEST, Makefile.in, basic_opcodes.ops,
7083         build_interp_starter.pl, core.ops, disassemble.pl, interpreter.c,
7084         make_op_header.pl, memory.c, opcheck.pl, opcode_table, ops2c.pl,
7085         ops2pm.pl, packfile.c, pbc2c.pl, process_opfunc.pl,
7086         Parrot/Assembler.pm, Parrot/Op.pm, Parrot/OpsFile.pm,
7087         Parrot/OpLib/.cvsignore, lib/Parrot/Assembler.pm, lib/Parrot/Op.pm,
7088         lib/Parrot/OpsFile.pm, lib/Parrot/OpLib/.cvsignore,
7089         include/parrot/.cvsignore, include/parrot/interp_guts.h,
7090         include/parrot/interpreter.h, include/parrot/op.h,
7091         include/parrot/oplib/.cvsignore, t/.cvsignore, t/Makefile,
7092         t/euclid.pasm, t/test.pasm, t/op/integer.t, t/op/number.t,
7093         t/op/stacks.t, t/op/string.t, t/op/trans.t:
7094         Moby Patch:
7096           * basic_opcodes.ops and opcode_table replaced by core.ops
7098           * process_opfunc.pl replaced by Parrot/OpsFile.pm, Parrot/Op.pm,
7099             and ops2c.pl. These convert *.ops to *_ops.c and
7100             include/parrot/oplib/*_ops.h
7102           * New ops2pm.pl converts *.ops to Parrot/OpLib/*.pm
7104           * disassemble.pl modified to use
7106           * interpreter.c modified to use structures in core_ops.c instead
7107             of the old op_info and op_func stuff. We're not yet to the
7108             point of handling multiple oplibs at a time, but we are getting
7109             there...
7111             Fingerprinting stuff disabled for now. We used to go off
7112             opcode_table. We need to rethink this. I have some ideas to
7113             make it unnecessary, but it remains to be seen whether others
7114             will like the direction they take us.
7116             Termination condition for while(){} loop in runops is now
7117             (pc) instead of (*pc). Any op can cause a HALT by returning
7118             a NULL pointer. Ops end, bounds and trace all do this. So, now
7119             the 'end' op body is actually executed, although all it does
7120             is HALT.
7122           * Makefile.in modified to perform a test build using pbc2c.pl,
7123             which is the bytecode --> C compiler I've posted to the
7124             list before.
7126           * Op full names are now autogenerated. Op root names must not
7127             contain underscores, so some op renamings have happened.
7128             Such as clear_i becoming cleari.
7130 2001-10-13 11:49  simon
7132         * Configure.pl, MANIFEST:
7133         Make parrot actually build again.
7135 2001-10-12 21:34  dan
7137         * docs/parrot_assembly.pod: Added docs for the new save/restore/bsr
7138         opcodes
7140 2001-10-12 20:56  dan
7142         * MANIFEST, Makefile.in, basic_opcodes.ops, interpreter.c,
7143         opcode_table, process_opfunc.pl, stacks.c, include/parrot/stacks.h,
7144         t/test3.pasm, t/test4.pasm, t/test5.pasm: Changes to support
7145         generic stack now in. We also have subroutines, of a simple sort!
7147 2001-10-12 19:15  tom
7149         * t/op/string.t: Improved string comparison tests try all string
7150         combinations with each of the comparison ops.
7152 2001-10-12 19:09  dan
7154         * interpreter.c: Properly sets up generic stack now
7156 2001-10-12 19:09  dan
7158         * include/parrot/interpreter.h: Fixed stack chunk struct type in
7159         interpreter structure
7161 2001-10-12 18:59  dan
7163         * stacks.c, include/parrot/parrot.h, include/parrot/stacks.h: More
7164         changes to get the generic stack working
7166 2001-10-12 18:59  dan
7168         * Configure.pl, MANIFEST, config_h.in, testparrotsizes_c.in,
7169         hints/vms.pl: Made the changes to figure out mask bits for various
7170         register and stack chunks
7172 2001-10-11 22:09  dan
7174         * docs/parrot_assembly.pod: Tossed the parameter for return
7176 2001-10-11 19:28  tom
7178         * strnative.c: Assignment, not comparison.  (Plus formatted for
7179         coding standards)
7181         Courtesy of Bryan C. Warnock
7183 2001-10-10 19:21  tom
7185         * basic_opcodes.ops, opcode_table, string.c, strnative.c,
7186         strutf16.c, strutf32.c, strutf8.c, docs/strings.pod,
7187         include/parrot/string.h, t/op/string.t: Added support for string
7188         comparisons and extended the comparison ops to include comparison
7189         of strings.
7191 2001-10-10 17:58  dan
7193         * MANIFEST: Shouldn't have added vtable.h to the manifest...
7195 2001-10-10 17:54  dan
7197         * MANIFEST, stacks.c, vtable_h.pl, Parrot/Vtable.pm,
7198         lib/Parrot/Vtable.pm: Now spits out the #defines for the various
7199         vtable type entries properly
7201 2001-10-10 15:37  dan
7203         * Parrot/Vtable.pm, lib/Parrot/Vtable.pm: Re-enabled change to
7204         parse new vtable.tbl file now that I've actually checked *in* the
7205         new format vtable.tbl file...
7207 2001-10-10 15:32  dan
7209         * vtable.tbl: New Column to indicate the type of the vtabel entry
7210         so we can know how many slots it takes
7212 2001-10-10 05:26  thgibbs
7214         * Parrot/Vtable.pm, lib/Parrot/Vtable.pm, vtable_h.pl: Patch to
7215         allow parrot to compile.  PACKAGE is not defined, therefore, I
7216         added a struct before it to have it not complain until we define
7217         PACKAGE.  Also, there was an extra shift in Vtable.pm and a missing
7218         semicolon at the end of the struct declaration.
7220 2001-10-10 05:09  thgibbs
7222         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm: This patch makes
7223         string constants of the form U"string" become unicode encoded
7224         parrot strings and the form N"string" become native encoded parrot
7225         strings.
7227         Courtesy of: Tom Hughes <tom@compton.nu>
7229 2001-10-10 04:55  dan
7231         * vtable_h.pl, Parrot/Vtable.pm, lib/Parrot/Vtable.pm: Start of
7232         support for generating the vtable function table offset macros
7234 2001-10-10 01:05  simon
7236         * t/op/integer.t:
7237         The test for cmod_i was using the 'mod Ix, Ix, Ix' form which
7238         compiles into the mod op, not the cmod_i op, hence wasn't testing
7239         what it thought it was.
7241         Courtesy of: Alex Gough <alexander.gough@st-hughs.oxford.ac.uk>
7243 2001-10-09 03:45  thgibbs
7245         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm: Patch to allow
7246         assembler to generate unicode strings.
7248         Courtesy of: Tom Hughes <tom@compton.nu>
7250 2001-10-08 19:30  brentdax
7252         * Configure.pl, test_c.in, hints/vms.pl: Cleaner VMS support, more
7253         info for Parrot::Config to remember, more flexible test.c stuff
7255 2001-10-08 15:04  gregor
7257         * basic_opcodes.ops:
7258           * Removed trash from early mod_i experiments (pardon our dust)
7260 2001-10-08 14:56  gregor
7262         * basic_opcodes.ops:
7263           * Fixed a couple of typos.
7265 2001-10-08 14:45  gregor
7267         * basic_opcodes.ops, opcode_table, t/op/integer.t, t/op/number.t:
7268         Arithmetic enhancements:
7270           * Renamed existing mod_i as cmod_i and added "corrected" mod_i:
7272             NOTE: This "uncorrected mod" algorithm uses the C language's
7273         built-in
7274             mod operator (x % y), which is
7276                 ... the remainder when x is divided by y, and thus is zero
7277         when y
7278                 divides x exactly.
7279                 ...
7280                 The direction of truncation for / and teh sign of the
7281         result for %
7282                 are machine-dependent for negative operands, as is the
7283         action taken
7284                 on overflow or underflow.
7285                                                                      --
7286         [1], page 41
7288             Also:
7290                 ... if the second operand is 0, the result is undefined.
7291         Otherwise, it
7292                 is always true that (a/b)*b + a%b is equal to z. I both
7293         operands are
7294                 non-negative, then teh remainder is non-negative and
7295         smaller than the
7296                 divisor; if not, it is guaranteed only that the absolute
7297         value of the
7298                 remainder is smaller than the absolute value of the
7299         divisor.
7300                                                                      --
7301         [1], page 205
7303             This op is provided for those who need it (such as
7304         speed-sensitive
7305             applications with heavy use of mod, but using it only with
7306         positive
7307             arguments), but a more mathematically useful numeric mod based
7308         on
7309             floor(x/y) and defined with y == 0 is provided by the mod_i op.
7311               [1] Brian W. Kernighan and Dennis M. Ritchie, *The C
7312         Programming
7313                   Language*, Second Edition. Prentice Hall, 1988.
7315           * Added "corrected" mod_i:
7317             NOTE: This "corrected mod" algorithm is based on the C code on
7318         page 70
7319             of [1]. Assuming correct behavior of C's built-in mod operator
7320         (%) with
7321             positive arguments, this algorithm implements a mathematically
7322         convenient
7323             version of mod, defined thus:
7325               x mod y = x - y * floor(x / y)
7327             For more information on this definition of mod, see section 3.4
7328         of [2],
7329             pages 81-85.
7331             References:
7333               [1] Donald E. Knuth, *MMIXware: A RISC Computer for the Third
7334                   Millennium* Springer, 1999.
7336               [2] Ronald L. Graham, Donald E. Knuth and Oren Patashnik,
7337         *Concrete
7338                   Mathematics*, Second Edition. Addison-Wesley, 1994.
7340           * Added mod_n, using the same formula as above, but with FLOATVAL
7341             arguments.
7343           * Added cmod_n, using the C math library's fmod() function:
7345             NOTE: This "uncorrected mod" algorithm uses the built-in C math
7346         library's
7347             fmod() function, which computes
7349                 ... the remainder of dividing x by y. The return value is x
7350         - n * y,
7351                 where n is the quotient of x / y, rounded towards zero to
7352         an
7353                 integer.
7354                                                 -- fmod() manpage on RedHat
7355         Linux 7.0
7357             In addition, fmod() returns
7359                 the remainder, unless y is zero, when the function fails
7360         and errno
7361                 is set.
7363             According to page 251 of [1], the result when y is zero is
7364         implementation-
7365             defined.
7367             This op is provided for those who need it, but a more
7368         mathematically
7369             useful numeric mod based on floor(x/y) instead of truncate(x/y)
7370         and
7371             defined with y == 0 is provided by the mod_n op.
7373               [1] Brian W. Kernighan and Dennis M. Ritchie, *The C
7374         Programming
7375                   Language*, Second Edition. Prentice Hall, 1988.
7377           * Added and modified tests as appropriate for the above.
7379 2001-10-08 08:49  thgibbs
7381         * include/parrot/exceptions.h, include/parrot/parrot.h,
7382         include/parrot/string.h, include/parrot/strutf16.h,
7383         include/parrot/strutf32.h, include/parrot/strutf8.h,
7384         include/parrot/transcode.h, include/parrot/unicode.h, MANIFEST,
7385         Makefile.in, global_setup.c, string.c, strnative.c, transcode.c,
7386         strutf16.c, strutf32.c, strutf8.c: Added code to handle unicode
7387         strings for utf8, utf16, and utf32.
7389         Courtesy of: Tom Hughes <tom@compton.nu>
7391 2001-10-08 08:10  thgibbs
7393         * memory.c: Fixed uninitialized variables.
7395         Courtesy of: Bryan C. Warnock <bwarnock@raba.com>
7397 2001-10-08 01:21  gregor
7399         * packfile.c:   * Casting a return value
7401           * Potential uninitialized variable fix
7403         Courtesy of Bryan C. Warnock <bwarnock@raba.com>
7405 2001-10-08 01:15  gregor
7407         * packfile.c, test_main.c: One of Bryan's languishing patches (with
7408         a few tweaks of my own):
7410           * Line wrapping
7412           * Printf format fixes
7414         Courtesy of: Bryan C. Warnock <bwarnock@raba.com>
7416 2001-10-07 22:39  thgibbs
7418         * build_interp_starter.pl: No longer adds (void*) casts to
7419         interp_guts.c function table as they are not necessary in ANSI C.
7421 2001-10-07 16:27  gregor
7423         * basic_opcodes.ops, interpreter.c, opcode_table,
7424         process_opfunc.pl, test_main.c, include/parrot/interpreter.h,
7425         t/trace.pasm:
7426           * Two new ops, trace_ic and bounds_ic that twiddle bits in
7427             interpreter->flags and set interpreter->resume_addr.
7429           * Two new runops core variants, so now we cover the relevant
7430             flag space over {trace, notrace} x {boundscheck, noboundscheck}
7432           * Runops core selection that converts the flags into an index
7433         into
7434             a core table (runops_cores) to get the core function pointer.
7436           * A new trace_op variant that doesn't do bounds checking (used by
7437             the non-bounds-checking-but-tracing runops core).
7439           * PC is passed into the cores so that they can be used when
7440             resuming (they used to assume starting at the beginning of the
7441             code, which would thwart resumption).
7443           * runops() itself is changed to have a while() loop in it so that
7444             any time we drop out of the core, we'll resume if we have an
7445             interpreter->resume_addr set (after reselecting the core,
7446         though).
7448           * process_opfunc.pl has a new "macro": RESUME(), that sets up
7449             interpreter->resume_addr. This is used by the new ops. The new
7450             ops still return the new PC as the next op (which MUST be an
7451             'end' op to force the core loop to terminate -- *pc being false
7452             is the only termination condition we can count on for all
7453         cores).
7455           * New interpreter flag: PARROT_BOUNDS_FLAG, used to control
7456             bounds checking core selection.
7458           * test_prog now has a '-b' flag in addition to the '-t' flag.
7459         Now,
7460             bounds checking is off by default (I saw a performance boost:
7461             6.3 Mop/s with -b, 7.0 Mop/s without).
7463           * A new sample/test program: t/trace.pasm that twiddles the trace
7464             flag while it is running.
7466 2001-10-07 15:41  gregor
7468         * .cvsignore, Makefile.in, build_interp_starter.pl, interpreter.c,
7469         include/parrot/.cvsignore, include/parrot/interpreter.h:
7470         Now that 0.0.2 is released, I can clear out the backlog of approved
7471         but uncommitted patches. Here's one Dan approved on 2001-09-21
7472         (Simplified DO_OP):
7474           * test_prog and pdump are linked with only the files the need,
7475         not
7476             al the files.
7478           * build_interp_starter.pl writes out op_info.[hc], too. These
7479         files
7480             contain op name, arg count and arg type information. This will
7481         be
7482             useful for multiple things in the future, including better
7483         trace
7484             output and the crystalizing loader.
7486           * The DO_OP macro is now simpler and doesn't require explicit
7487             temporaries.
7489           * interpreter.c is modified to use the new op info in tracing
7490         output.
7492           * The interpreter just points its opcode_funcs and opcode_info
7493             members at the default tables rather than allocating memory on
7494             the fly.
7496 2001-10-07 03:58  thgibbs
7498         * include/parrot/.cvsignore, vtable_h.pl: Minor updates fixing a
7499         comment and adding vtable.h to .cvsignore as it is produced by
7500         vtable_h.in
7502 2001-10-06 20:58  thgibbs
7504         * vtable.tbl: Added * to REGEX type.
7506         Courtesy of Bryan C. Warnock <bwarnock@raba.com>
7508 2001-10-06 13:41  simon
7510         * MANIFEST, Makefile.in, vtable.tbl, vtable_h.pl, Parrot/Vtable.pm,
7511         include/parrot/parrot.h, lib/Parrot/Vtable.pm:
7512         Framework for vtable functions.
7514 2001-10-06 06:52  thgibbs
7516         * make_op_header.pl: Removed confusing and unused typedef.
7518 2001-10-06 06:31  thgibbs
7520         * Parrot/Opcode.pm, lib/Parrot/Opcode.pm: Removed variables that
7521         are no longer used.
7523 2001-10-06 06:26  thgibbs
7525         * disassemble.pl: Changed intval to op in disassembler.
7527 2001-10-06 06:21  thgibbs
7529         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm: Fixed typo with
7530         Assembler, local labels, and integer constants.
7532 2001-10-06 03:11  ask
7534         * Makefile.in: make `make test` actually run the tests on
7535         darwin/macosx
7537 2001-10-06 02:04  thgibbs
7539         * Parrot/Assembler.pm, Parrot/Opcode.pm, Parrot/PackFile.pm,
7540         Parrot/String.pm, Parrot/PackFile/ConstTable.pm,
7541         Parrot/PackFile/Constant.pm, include/parrot/packfile.h,
7542         include/parrot/register.h, lib/Parrot/Assembler.pm,
7543         lib/Parrot/Opcode.pm, lib/Parrot/PackFile.pm, lib/Parrot/String.pm,
7544         lib/Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/Constant.pm,
7545         t/op/integer.t: No, it didn't mess anything up.  I just forgot to
7546         type make. :)
7548 2001-10-06 02:02  thgibbs
7550         * Parrot/Assembler.pm, Parrot/Opcode.pm, Parrot/PackFile.pm,
7551         Parrot/String.pm, Parrot/PackFile/ConstTable.pm,
7552         Parrot/PackFile/Constant.pm, include/parrot/packfile.h,
7553         include/parrot/register.h, lib/Parrot/Assembler.pm,
7554         lib/Parrot/Opcode.pm, lib/Parrot/PackFile.pm, lib/Parrot/String.pm,
7555         lib/Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/Constant.pm,
7556         t/op/integer.t: oops...this messed something up.  I must have
7557         missed something in the patch...I have reverted.
7559 2001-10-06 01:57  thgibbs
7561         * Parrot/Assembler.pm, Parrot/Opcode.pm, Parrot/PackFile.pm,
7562         Parrot/String.pm, Parrot/PackFile/ConstTable.pm,
7563         Parrot/PackFile/Constant.pm, include/parrot/packfile.h,
7564         include/parrot/register.h, lib/Parrot/Assembler.pm,
7565         lib/Parrot/Opcode.pm, lib/Parrot/PackFile.pm, lib/Parrot/String.pm,
7566         lib/Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/Constant.pm,
7567         t/op/integer.t, Types_pm.in, basic_opcodes.ops, config_h.in,
7568         memory.c, packfile.c, process_opfunc.pl, strnative.c, test_main.c:
7569         This patch ensures that all bytecode is of type opcode_t except for
7570         the constant table constants.  That means that almost all of the
7571         INTVALs in the code were replaced with opcode_t and the i pack type
7572         was replaced with the op pack type in calls to pack_arg and such.
7573         Also, since it has been declared that ALL integer constants are to
7574         be 32 bits, some test cases were changed to ensure that an integer
7575         constant was no bigger than 2 ** 31.
7577         process_opfunc.pl was also cleaned up to no longer look at either
7578         opcode_table or interp_guts.h but gather all of its information
7579         from Opcode.pm.
7581         The Assembler.pm module was changed to do late binding of arguments
7582         so that 0 could be treated like 0.0 without having to be so
7583         declared.  Also, only strings now use the [sc:N] intermediate form
7584         as it was unnecessary for integer and float types.
7586 2001-10-05 21:59  gregor
7588         * MANIFEST, languages/jako/Makefile:
7589         Fixed things due to the movement of little_languages/* to
7590         languages/jako.
7592 2001-10-05 18:31  gregor
7594         * MANIFEST:
7595         Updated MANIFEST to reflect recent additions for Jako.
7597 2001-10-05 17:54  gregor
7599         * languages/jako/: Makefile, bench.jako, euclid.jako, fact.jako,
7600         fib.jako, hello.jako, jakoc, leibniz.jako, mandelbrot.jako,
7601         mops.jako, primes.jako, sub.jako:
7602           * Compiler:
7604               * User-defined subroutines.
7605               * Generates assembly code with the Jako code in comments.
7606               * "end;" no longer required at the end of programs.
7607               * Better handling of const-reg and reg-const.
7608               * Optimizes const-const operations to compile-time
7609         evaluations.
7610               * Constants in addition to variables.
7611               * Arithmetic fixes.
7612               * Allow leading minus signs in integer and number constants
7613         (ahem).
7614               * goto's.
7616           * New sample programs:
7618               * leibniz.jako (based on Greg McCarroll's leibniz.pasm
7619         example)
7620               * mandelbrot.jako (based on Leon Brocard's translation of
7621         Glenn Rhodes' C code)
7622               * mops.jako (based on t/test.pasm)
7623               * primes.jako (based on Leon Brocard's primes.pasm example)
7624               * sub.jako (demonstrates a simple user-defined subroutine)
7626 2001-10-05 12:54  gregor
7628         * Parrot/Opcode.pm, lib/Parrot/Opcode.pm:
7629           * Removed mysterious extra copy of code after POD.
7631 2001-10-05 12:46  gregor
7633         * basic_opcodes.ops, t/op/string.t:
7634           * Enabled the previously SKIPped test of printing string regs
7635         after
7636             clear_s
7638           * Made print_s do nothing if the STRING pointer in the register
7639         file
7640             is NULL.
7642 2001-10-04 21:19  dan
7644         * Configure.pl: VMS tweaks
7646 2001-10-04 21:17  dan
7648         * hints/vms.pl: Hints file for VMS
7650 2001-10-04 00:58  bdwheele
7652         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm: fixed but in
7653         Assembler which stopped equates from working.
7655 2001-10-03 21:50  gregor
7657         * Makefile.in, docs/.cvsignore, docs/Makefile, docs/parrotbyte.pod:
7659           * More documentation updates for the packfile stuff.
7661 2001-10-03 21:37  gregor
7663         * docs/parrotbyte.pod:
7664           * Pointed the reader at Parrot::PackFile.
7666 2001-10-03 21:34  gregor
7668         * Parrot/PackFile.pm, lib/Parrot/PackFile.pm:
7669           * Updated documentation to match current implementation.
7671 2001-10-03 18:30  gregor
7673         * .cvsignore, disassemble.pl, Parrot/Assembler.pm,
7674         lib/Parrot/Assembler.pm, t/call.pasm, t/euclid.pasm,
7675         t/local_label.pasm, t/test.pasm, t/test2.pasm, t/test3.pasm,
7676         t/op/basic.t:
7677           * Added new syntax to the assembler to allow square-bracket
7678             arithmetic expressions involving (global) labels, the current
7679             instructions base address ('@'), numeric constants (not
7680         equates)
7681             and basic arithmetic operators (+, -, *, / -- although + and -
7682             are likely to be the only ones used in practice).
7684           * Fixed a bug in Parrot/Assemble.pl that caused macro expansion
7685         to
7686             fail (argument passing wasn't working).
7688           * Enabled t/op/basic.t's last test, which is actually a copy of
7689         the
7690             code from t/call.pasm. Now all tests there are enabled and
7691         working.
7693           * Added new example/test program t/call.pasm to demonstrate
7694         working
7695             macros and poor-man's subroutine calls
7697           * Added header comments to t/*.pasm
7699 2001-10-03 18:00  simon
7701         * ChangeLog:
7702         Needed, since it's in the MANIFEST.
7704 2001-10-03 17:56  simon
7706         * t/op/: string.t, time.t:
7707         Small fixes to help Win32 on its way.
7709 2001-10-03 17:41  simon
7711         * MANIFEST, README:
7712         Oops. Tiny bugs.
7714 2001-10-03 17:39  simon
7716         * MANIFEST, NEWS, README:
7717         README, NEWS and MANIFEST? Could it be time for Parrot 0.0.2? I
7718         think so!
7720 2001-10-03 17:21  simon
7722         * basic_opcodes.ops, interpreter.c, packfile.c:
7723         Evil printf bandaid (which allows Sparc64 to pass tests)
7725         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
7727 2001-10-03 16:58  simon
7729         * string.c, t/op/string.t:
7730         chop fixes for n < 0 and tests
7732         Courtesy of: Alex Gough <alex@rcon.org>
7734 2001-10-03 15:51  thgibbs
7736         * interpreter.c: Changed an occurrence of INTVAL to opcode_t
7738         Courtesy of: Bryan C. Warnock <bwarnock@raba.com>
7740 2001-10-02 17:48  dan
7742         * include/parrot/stacks.h: Fix typo in function name
7744 2001-10-02 17:35  dan
7746         * include/parrot/stacks.h: changed to support new stack stuff
7747         coming after 0.02
7749 2001-10-02 15:01  simon
7751         * Configure.pl, Types_pm.in, basic_opcodes.ops, config_h.in,
7752         interpreter.c, make_op_header.pl, memory.c, packfile.c,
7753         process_opfunc.pl, register.c, string.c, strnative.c,
7754         Parrot/Opcode.pm, Parrot/PackFile.pm, Parrot/String.pm,
7755         lib/Parrot/Opcode.pm, lib/Parrot/PackFile.pm, lib/Parrot/String.pm,
7756         Parrot/PackFile/ConstTable.pm, Parrot/PackFile/Constant.pm,
7757         docs/overview.pod, docs/strings.pod, include/parrot/interpreter.h,
7758         include/parrot/memory.h, include/parrot/packfile.h,
7759         include/parrot/parrot.h, include/parrot/register.h,
7760         include/parrot/stacks.h, include/parrot/string.h,
7761         lib/Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/Constant.pm:
7763         The Great Renaming.
7765 2001-10-02 12:49  gregor
7767         * process_opfunc.pl:
7768           * Fixed a tyop:  s/string/integer/ for INT_CONST expansion
7770 2001-10-02 12:40  simon
7772         * basic_opcodes.ops, process_opfunc.pl, register.c,
7773         include/parrot/register.h:
7774         Move preprocessing of register accessors to process_opfunc.pl
7776         Courtesy of: Jason Gloudon <perl@gloudon.com>
7778 2001-10-02 01:20  ask
7780         * README: add a few lines about lists.
7782 2001-10-01 23:00  brentdax
7784         * Configure.pl, Makefile.in, hints/mswin32.pl: Make 'make clean'
7785         work on Win32 (courtesy of Mattia Barbon <mbarbon@dsi.unive.it>)
7787 2001-10-01 22:50  brentdax
7789         * Configure.pl, test_c.in: More changes for 64-bit compatibility
7791 2001-10-01 21:51  simon
7793         * process_opfunc.pl:
7794         Michael Fischer's patch broke conditionals.
7796 2001-10-01 15:38  simon
7798         * process_opfunc.pl:
7799         Small hack to keep process_opfunc.pl from generating extra return()
7800         statements.
7802         Courtesy of: Michael Fischer <michael@visv.net>
7804 2001-10-01 15:32  simon
7806         * Parrot/Opcode.pm, lib/Parrot/Opcode.pm:
7807         Documentation fix.
7809         Courtesy of: Josh Wilmes <josh@hitchhiker.org>
7811 2001-10-01 01:49  simon
7813         * packfile.c:
7814         Simon is an idiot. Don't trust him with your code.
7816         Courtesy of: Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
7818 2001-10-01 00:59  simon
7820         * Parrot/String.pm, lib/Parrot/String.pm:
7821         Was in manifest, but not in CVS.
7823 2001-09-30 21:25  simon
7825         * MANIFEST, Types_pm.in, assemble.pl, basic_opcodes.ops,
7826         disassemble.pl, packfile.c, pdump.c, process_opfunc.pl,
7827         Parrot/Assembler.pm, Parrot/PackFile.pm,
7828         Parrot/PackFile/ConstTable.pm, Parrot/PackFile/Constant.pm,
7829         Parrot/PackFile/FixupTable.pm, lib/Parrot/Assembler.pm,
7830         lib/Parrot/PackFile.pm, lib/Parrot/PackFile/ConstTable.pm,
7831         lib/Parrot/PackFile/Constant.pm, lib/Parrot/PackFile/FixupTable.pm,
7832         include/parrot/packfile.h, include/parrot/string.h:
7833         Move NVs to the constant table.    * Changes to Types_pm.in to make
7834         life easier for some of the      packing/etc. I'm doing elsewhere.
7835         Also, we now pack 'n' as      'i'.
7837           * Moved the guts of assemble.pl to Parrot/Assembler.pm so that
7838             eventually we can use all these tools together inside scripts
7839             rather than call out to the shell to run the programs.
7841           * As I was tracking down problems, I converted the internal
7842             documentation of the assembler to POD from comments.
7844           * Changed the numeric regexp in the assembler to detect leading
7845             signs and trailing exponents.
7847           * Updated basic_opcodes.ops to fetch numeric constants from the
7848             constant table.
7850           * Enhanced the disassembler in a number of ways to make my life
7851             easier while tracking down bugs (try it out). It now puts in
7852             labels for ops that are the destinations of flow control ops.
7854           * packfile.c now has a TRACE_PACKFILE switch that can be set
7855             to get it to print info as it processes. I needed this while
7856             debugging, but I can remove it or change it before committing
7857             if its a problem.
7859           * Updated pdump.c because it was missing a call to init_world().
7861           * Updated process_opfunc.pl to deal with numeric constants
7862             being stored in the constant table instead of inline.
7864           * Added multiple type support to Parrot/PackFile/Constant.pm
7866           * Added Parrot/String.pm, to be used for constants.
7868           * Added packfile.[hc] functions for allocating new constants
7869             of various types.
7871           * Made string_copy visible to the world in parrot/string.h.
7873         Wow.
7875         Courtesy of: Gregor N. Purdy <gregor@focusresearch.com>
7877 2001-09-29 15:56  gregor
7879         * languages/jako/Makefile:
7880         Removed assumption that '.' is on the path.
7882 2001-09-29 15:55  gregor
7884         * languages/jako/Makefile:
7885         Removed references to leibnitz test program.
7887 2001-09-29 15:21  thgibbs
7889         * t/op/trans.t, basic_opcodes.ops: Added NV casts to transcendental
7890         math ops args to work on Solaris.
7892 2001-09-27 15:15  thgibbs
7894         * assemble.pl: Added case insensitive matches to hex and binary
7895         characters
7897         Courtesy of: Johnathan Scott Duff <duff@cbi.tamucc.edu>
7899 2001-09-27 04:46  thgibbs
7901         * assemble.pl: This patch makes integer constants of the form
7902         0b[01]+ work with perl 5.005.  The oct function in versions of perl
7903         before 5.6 did not handle the 0b numeric prefix; therefore, it was
7904         returning 0.  To fix this, I added a from_binary function that
7905         would take a binary string and return its decimal representation.
7906         Now, instead of blindly calilng oct, it makes a distinction between
7907         0/0x numbers and 0b numbers.
7909 2001-09-26 19:30  thgibbs
7911         * assemble.pl: Error now returns a non-zero status
7913         Courtesy of: Andrew Kuchling <akuchlin@mems-exchange.org>
7915 2001-09-26 19:13  gregor
7917         * MANIFEST, Makefile.in, basic_opcodes.ops, bytecode.c,
7918         interpreter.c, packfile.c, pdump.c, test_main.c,
7919         include/parrot/bytecode.h, include/parrot/interpreter.h,
7920         include/parrot/packfile.h, include/parrot/parrot.h, t/op/integer.t,
7921         t/op/stacks.t:
7922           * bytecode.[hc] removed. packfile.[hc] are the interface to the
7923             packfile/bytecode file from C. May be renamed in the future.
7925           * packfile.[hc] changed to use 'struct PackFile *', etc. instead
7926             of 'PackFile *', just like the interpreter, etc.
7928           * Constants are accessed via the interpreter's 'code' member
7929             (struct PackFile * code). Macros PCONST(i) and PNCONST are
7930             provided to access constants by index and the number of
7931             constants, respectively (assumes a variable 'interpreter' of
7932             the appropriate type is in scope).
7934           * Byte Code is accessed via the interpreter's 'code' member.
7936           * Changed PackFile_Constant to point to a STRING instead of
7937         having
7938             members for the string_make() arguments. Also has a 'type' IV
7939             in preparation for allowing multiple types of constants in
7940             const_table.
7942           * Removed hardcoded example program from test_main.c. We have
7943             plenty of test programs elsewhere.
7945           * test_prog now uses a PackFile to deal with the program before
7946             sending it on to the interpreter.
7948           * Added missing 'end' ops to some tests in t/op/integer.t and
7949             t/op/stacks.t.
7951 2001-09-26 18:38  thgibbs
7953         * assemble.pl: Separated code into functions and added comments.
7955 2001-09-26 18:29  simon
7957         * config_h.in:
7958         Fix 64-bit chunk-base issue.
7960 2001-09-26 06:55  thgibbs
7962         * t/op/bitwise.t: Added end to bitwise tests.
7964 2001-09-26 00:54  dan
7966         * docs/parrot_assembly.pod: Added in the base for threading, I/O,
7967         and interpreter creation. Skeleton only, but it's something to peer
7968         at.
7970 2001-09-25 21:44  thgibbs
7972         * t/op/trans.t: Removed loops in transcendtal op test.
7974 2001-09-25 10:12  simon
7976         * MANIFEST, t/op/basic.t, t/op/bitwise.t, t/op/integer.t,
7977         t/op/string.t, t/op/time.t:
7978         More tests
7980         Courtesy of: Alex Gough <alex@rcon.org>
7982 2001-09-24 19:08  gregor
7984         * t/op/number.t:
7985           * Enabled the clear_n test.
7987 2001-09-24 18:56  gregor
7989         * Parrot/.cvsignore:
7990           * Ignore the generated Types.pm file.
7992 2001-09-24 18:52  gregor
7994         * languages/jako/Makefile, t/op/number.t:
7995           * No need to skip the inc and dec numeric tests anymore. I fixed
7996         the
7997             assembler earlier today.
7999 2001-09-24 18:21  simon
8001         * MANIFEST, t/op/stacks.t:
8002         Oops.
8004 2001-09-24 18:19  simon
8006         * build_interp_starter.pl, interpreter.c, string.c, Parrot/Test.pm,
8007         include/parrot/exceptions.h, include/parrot/interpreter.h,
8008         lib/Parrot/Test.pm, t/op/string.t:
8009         1) captured error output, so can test errors, this might be bad,
8010         not sure.  2) basic tests for register stack frames, including some
8011         errors 3) I think we can stop skipping one of the string tests 4) I
8012         added some more substr tests, but substr was broken, so 5) changed
8013         substr to work with out of range values, or 6) throw an error if
8014         they're far too silly
8016         Courtesy of: Alex Gough <alex@rcon.org>
8018 2001-09-24 17:27  gregor
8020         * basic_opcodes.ops, opcode_table, t/op/number.t:
8021           * Op set_n was missing. Added it and a test for it. We now have
8022         the
8023             same int and num ops, except mod is int-only.
8025 2001-09-24 17:01  gregor
8027         * assemble.pl:
8028           * Fixed a typo: s/Line/line/
8030 2001-09-24 16:02  gregor
8032         * basic_opcodes.ops:
8033           * Fixed dec_n_nc opcode, which had += where it should have had
8034         -=.
8036 2001-09-24 15:34  gregor
8038         * assemble.pl:
8039           * Fixed handling of constants starting with '0' that should not
8040         be
8041             sent through oct(). For example 'set N2 0.1' was being
8042         interpreted
8043             as 'set N2 0' (naughty).
8045             As reported by Leon Brocard <acme@astray.com> in the comments
8046         of
8047             his mandelbrot.pasm example.
8049 2001-09-24 02:21  bdwheele
8051         * assemble.pl: fixed dumb code when --include was not specified.
8053 2001-09-24 02:17  simon
8055         * assemble.pl:
8056         Shit-sweeping.
8058 2001-09-24 01:56  bdwheele
8060         * assemble.pl: * Added --include=dir option to assembler to provide
8061         a path to look for included files.  * Error message of a macro is
8062         defined inside of a macro
8064 2001-09-23 21:29  bdwheele
8066         * assemble.pl: Added __FILE__ equate, fixed __LINE__ equate.
8068 2001-09-23 15:50  simon
8070         * Configure.pl:
8071         Fixed typo. Parrot might work again on non-8.3 filesystems. :)
8073 2001-09-23 02:03  ask
8075         * Configure.pl, test_c.in: fix missing newline at the end of test.c
8076         Courtesy of: acme@astray.com (Leon Brocard)
8078         rename 'test' executable used in Configure process to test_siz.
8080 2001-09-23 01:03  simon
8082         * process_opfunc.pl:
8083         iPaq fix. No, really.
8085 2001-09-23 00:47  simon
8087         * MANIFEST:
8088         Missed several, in fact.
8090 2001-09-23 00:46  simon
8092         * MANIFEST:
8093         Missed one.
8095 2001-09-22 21:13  simon
8097         * assemble.pl:
8098         Assembler register numbering rigour.
8100         Courtesy of: Leon Brocard <acme@astray.com>
8102 2001-09-22 18:20  simon
8104         * Makefile.in, lib/Test/More.pm, lib/Test/Simple.pm,
8105         lib/Test/Utils.pm:
8106         I'm sick of having to install Test::More everywhere. Temporary
8107         measure until we remove this silly dependency.
8109         Also a typo in Makefile.in which suggests some things were only
8110         happening correctly by sheer chance. :)
8112 2001-09-22 18:06  simon
8114         * README:
8115         test.pasm is dead, long like make test.
8117 2001-09-22 17:47  simon
8119         * t/op/number.t:
8120         De-fang overzealous floating point test.
8122 2001-09-22 17:39  simon
8124         * process_opfunc.pl:
8125         Remove hard-coded NV size assumption. Tru64 is nearly there!
8127 2001-09-22 17:18  simon
8129         * assemble.pl, disassemble.pl:
8130         More portability fixups.
8132 2001-09-22 16:44  simon
8134         * assemble.pl, Parrot/PackFile/Constant.pm,
8135         lib/Parrot/PackFile/Constant.pm:
8136         And I *think* this fixes Tru64.
8138 2001-09-22 16:37  simon
8140         * Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/ConstTable.pm:
8142         Oops.
8144 2001-09-22 16:36  simon
8146         * Parrot/PackFile.pm, Parrot/PackFile/ConstTable.pm,
8147         Parrot/PackFile/Constant.pm, lib/Parrot/PackFile.pm,
8148         lib/Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/Constant.pm:
8150         More removal of hard-coded pack formats.
8152 2001-09-22 15:21  simon
8154         * assemble.pl:
8156         Grrr. Why isn't this working?
8158 2001-09-22 15:18  simon
8160         * Parrot/PackFile.pm, Parrot/PackFile/ConstTable.pm,
8161         lib/Parrot/PackFile.pm, lib/Parrot/PackFile/ConstTable.pm:
8163         Make assemble use the PackFile modules; also fixed some bugs in
8164         them.
8166 2001-09-22 14:38  simon
8168         * Configure.pl, MANIFEST, Types_pm.in, assemble.pl, disassemble.pl:
8170         Abstract the argument and opcode packing types and functions out
8171         into a separate module. This *should* help us maintain consistency
8172         when we change the various types.
8174 2001-09-22 00:46  brentdax
8176         * Configure.pl: Delete test.o (or its equivalent) after Configure's
8177         test program finishes.
8179 2001-09-21 21:24  brentdax
8181         * Parrot/Test.pm, lib/Parrot/Test.pm: Fix error with \ as path
8182         separator (courtesy of Mattia Barbon <mbarbon@dsi.unive.it>)
8184 2001-09-21 21:09  gregor
8186         * Parrot/PackFile/ConstTable.pm, Parrot/PackFile/Constant.pm,
8187         lib/Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/Constant.pm:
8189           * Fixed pad calculation (similar to recent bug fix on C library)
8191 2001-09-21 20:23  simon
8193         * disassemble.pl:
8194         Pack types and sizes have gone askew.
8196 2001-09-21 20:18  brentdax
8198         * Configure.pl: Fix typo in setting stuff from the C test program
8200 2001-09-21 10:25  simon
8202         * basic_opcodes.ops, process_opfunc.pl:
8203         Document patches.
8205         Courtesy of: Leon Brocard <acme@astray.com>
8207 2001-09-21 06:06  ask
8209         * Config_pm.in, assemble.pl: fix 5.005_03.
8211 2001-09-21 06:03  ask
8213         * Configure.pl: make the ivsize detection work for us normal people
8214         without . in our PATH.  :-)
8216 2001-09-21 05:56  brentdax
8218         * test_main.c: Change _read to read for portability to Tru64
8219         (Damien Neil <neild@misago.org> and likely many others)
8221 2001-09-21 05:46  ask
8223         * Makefile.in: "update" target to update from cvs.
8225 2001-09-21 05:44  brentdax
8227         * Configure.pl, test_c.in: Fix issues with ivsize and nvsize
8229 2001-09-21 02:43  brentdax
8231         * Configure.pl: Fix a typo that forced the -g flag on
8233 2001-09-20 22:41  dan
8235         * packfile.c: Had some no-value returns. Naughty
8237 2001-09-20 22:40  dan
8239         * t/test.pasm: Added labels to output
8241 2001-09-20 15:39  simon
8243         * Parrot/Opcode.pm, Parrot/Test.pm, lib/Parrot/Opcode.pm,
8244         lib/Parrot/Test.pm:
8245         This patch does two only somewhat related things.
8247         Parrot/Opcode.pm:  Change the hard-wired assumption that sizeof(nv)
8248         = 2*sizeof(iv) to a PConfig-type computed value.
8250         Parrot/Test.pm:  Change it to run with the perl that was used to
8251         generate this version of Parrot.  This is useful if, for example,
8252         you want to use bleadperl to build and test parrot (e.g. to try out
8253         various 64-bit options) but you still have a 5.6.x (or 5.005_xx)
8254         installed as the default 'perl' on your system.  Since perl-5.7.x
8255         is installed 'version-only', a plain 'perl' is quite likely to pick
8256         up the older perl in such cases. Such an older perl might well not
8257         understand pack('q') used in the assembler.
8259         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
8261 2001-09-20 15:14  gregor
8263         * packfile.c:
8264           * Fixed a typo in pad calculation that throwing off unpack and
8265         pack.
8267 2001-09-20 15:03  thgibbs
8269         * t/op/integer.t: Removed overflow tests from integer.t.  set_i_ic
8270         tests now cover all registers.
8272         Courtesy of: Damien Neil neild@misago.org
8274 2001-09-20 14:48  thgibbs
8276         * process_opfunc.pl: Changed process_opfunc.pl to work on 64 bit
8277         machines.
8279 2001-09-20 14:35  simon
8281         * Configure.pl, assemble.pl:
8282         Pack IVs correctly.
8284         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
8286 2001-09-20 14:06  gregor
8288         * languages/jako/jakoc:
8289           * Fixed a tyop in the string interpolation regex.
8291         Courtesy of Michael L Maraist <maraist@UDel.Edu>
8293 2001-09-20 13:56  gregor
8295         * languages/jako/jakoc:
8296           * Updated jakoc to work with the single-destination comp ops.
8298 2001-09-20 05:08  bdwheele
8300         * assemble.pl: macro expansion.  Here's the test macro I was using:
8302         # this uses I32,I31 as temporaries.  # macro must be preceeded by a
8303         label.  testi       macro   num,got,want    print   "Test #"
8304         print   num     print   "..."   set     I32,want        set
8305         I31,got         eq      I32,I31,$ok     print   "NG\n"  branch
8306         $end $ok:       print   "OK\n" $end:    endm
8308         It is invoked as:
8310         Test1:  testi   1,I3,I2
8312 2001-09-20 03:52  dan
8314         * stacks.c, include/parrot/stacks.h: Preliminary files for the
8315         generic stack support
8317 2001-09-20 02:49  bdwheele
8319         * assemble.pl: Added include processing to assemble.pl  the syntax
8320         is: include 'file.to.include'
8322 2001-09-19 23:57  thgibbs
8324         * t/op/integer.t, t/op/number.t, assemble.pl, opcode_table: Fixed
8325         opcode_table listing of if_i_ic and if_n_ic.  Dan had changed the
8326         function to only use 2 args, but the opcode_table still had three
8327         listed.  Fixed integer.t and number.t to use the new comparison
8328         operators.  Improved assemble.pl ability to grok operators by
8329         constructing a function set and comparing operator types.
8331 2001-09-19 22:42  dan
8333         * assemble.pl: Binmodes the output filehandles now. (No more
8334         bytecode munching...)
8336 2001-09-19 22:32  dan
8338         * Configure.pl, basic_opcodes.ops, opcode_table, process_opfunc.pl,
8339         t/euclid.pasm, t/test.pasm, t/test2.pasm: Changed opcodes so
8340         conditional branches take a single argument, and fall through
8341         otherwise.
8343 2001-09-19 21:19  thgibbs
8345         * memory.c: Added explanation of mem_allocate_aligned give by Dan
8346         Sugalski
8348         Courtesy of: Josh Wilmes <josh@hitchhiker.org>
8350 2001-09-19 21:04  thgibbs
8352         * include/parrot/interpreter.h, Configure.pl,
8353         build_interp_starter.pl, bytecode.c, config_h.in, interpreter.c,
8354         process_opfunc.pl: Changed opcode_t from a union to a configurable
8355         type.
8357 2001-09-19 20:54  thgibbs
8359         * assemble.pl: Missed a couple of changes for 64 bit portability.
8361 2001-09-19 20:37  gregor
8363         * packfile.c, include/parrot/packfile.h:
8364           * Added "methods" for setting and getting all the various
8365         attributes,
8366             probably sufficient for an assembler to use the library.
8368 2001-09-19 20:04  thgibbs
8370         * assemble.pl: Modifications to run on 64 bit platforms.  To run on
8371         a 64 bit platform manually change the  setting for 'i' from 'l' to
8372         'q'.  This should be automatically done by a Configure setting in
8373         the near future.
8375 2001-09-19 19:10  thgibbs
8377         * config_h.in: changed c++ comment to c comment.
8379         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
8381 2001-09-19 17:48  gregor
8383         * .cvsignore, MANIFEST, Makefile.in, packfile.c, pdump.c,
8384         include/parrot/packfile.h:
8385           * C code for dealing with PackFiles as if they were objects.
8386         Mostly
8387             read-only interface for now, but it would not be hard to make
8388         it
8389             read-write. [packfile.c, include/parrot/packfile.h]
8391           * PackFile Dumping program that falls short of disassembling, but
8392             tests the above code and provides a hex listing of the byte
8393         code
8394             contents of the PackFile. [pdump.c]
8396           * New Makefile target 'pdump' for the above program, and related
8397             Makefile.in changes.
8399           * Updated MANIFEST to reflect the added files
8401           * Update .cvsignore to ignore pdump.
8403 2001-09-19 14:55  thgibbs
8405         * MANIFEST: Added number.t and trans.t to MANIFEST
8407 2001-09-19 05:40  thgibbs
8409         * process_opfunc.pl: Now taking & of opcode_t instead of i member
8410         of union opcode_t.  I hope this will be more portable for set_n_nc.
8412 2001-09-19 05:39  thgibbs
8414         * t/op/integer.t: Added end to test 1.
8416 2001-09-19 00:09  thgibbs
8418         * t/op/number.t: Added end to each test
8420 2001-09-19 00:00  simon
8422         * t/op/number.t:
8423         Number tests! Wooo!
8425         Courtesy of: Damien Neil <neild@misago.org>
8427 2001-09-18 23:52  thgibbs
8429         * interpreter.c: Added casts to appropriate types to make -Wall not
8430         complain on certain printf formats
8432 2001-09-18 23:31  thgibbs
8434         * t/op/integer.t: Added end to each test.
8436 2001-09-18 22:54  thgibbs
8438         * t/op/trans.t: Added trans.t for transcendental math function
8439         tests.
8441 2001-09-18 22:28  simon
8443         * MANIFEST:
8444         MANIFEST updates. (And notice how I carefully snuck in the
8445         t/op/integer.t there...)
8447         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
8449 2001-09-18 22:26  simon
8451         * t/: integer.t, op/integer.t:
8452         Except it doesn't go there. Duh.
8454 2001-09-18 22:25  simon
8456         * t/integer.t:
8457         Tests for integer ops.
8459         Courtesy of: Damien Neil <neild@misago.org>
8461 2001-09-18 22:03  thgibbs
8463         * include/parrot/bytecode.h, include/parrot/interpreter.h,
8464         build_interp_starter.pl, bytecode.c, config_h.in, interpreter.c,
8465         make_op_header.pl, process_opfunc.pl, test_main.c: Changed IV to
8466         opcode_t union for operators.  This required a few perl script
8467         changes to output the correct type.  There were also some changes
8468         to allow -pedantic in gcc
8470 2001-09-18 21:07  gregor
8472         * disassemble.pl, Parrot/PackFile.pm,
8473         Parrot/PackFile/ConstTable.pm, Parrot/PackFile/Constant.pm,
8474         lib/Parrot/PackFile.pm, lib/Parrot/PackFile/ConstTable.pm,
8475         lib/Parrot/PackFile/Constant.pm:
8476         Converted the disassembler to use the Parrot::PackFile Perl classes
8477         to do its job.
8479 2001-09-18 19:18  brentdax
8481         * Makefile.in: Fix missing functions for real this time.  (I
8482         swear!)
8484 2001-09-18 18:49  brentdax
8486         * Configure.pl: Remove unnecessary -I.. (courtesy of Andy Dougherty
8487         <doughera@lafayette.edu>}
8489 2001-09-18 18:47  brentdax
8491         * Makefile.in: Fix bugs with missing math, etc. functions
8493 2001-09-18 14:42  thgibbs
8495         * strnative.c: Sorry Simon...forgot bustart was a void* not a
8496         char*.
8498 2001-09-18 13:59  thgibbs
8500         * strnative.c: Removed unnecessary IV cast in concat.
8502 2001-09-18 13:58  thgibbs
8504         * t/op/string.t: Removed unnecessary IV cast in concat.  Added end
8505         to concat test in string.t
8507 2001-09-18 12:07  gregor
8509         * languages/jako/jakoc:
8510           * var num ... no longer requires assignment
8511           * automatic casting between int and num
8512           * Fixed an error message
8514         Courtesy of: Simon Cozens <simon@cvs.perl.org>
8516 2001-09-18 11:57  simon
8518         * TODO:
8519         Gonna have to start thinking of more things to do, soon.
8521 2001-09-18 10:42  simon
8523         * opcode_table:
8524         Introduce a little more tidiness into the opcode table.
8526 2001-09-18 03:06  gregor
8528         * basic_opcodes.ops, opcode_table, t/euclid.pasm:
8529         Resurrected register-const ops per Dan's request.
8531 2001-09-18 02:20  gregor
8533         * .cvsignore, Configure.pl, MANIFEST, Makefile.in,
8534         build_interp_starter.pl, bytecode.h, events.h, exceptions.h,
8535         global_setup.h, interpreter.h, io.h, memory.h, parrot.h,
8536         process_opfunc.pl, register.h, stacks.h, string.h, strnative.h:
8537         Committed some files that were missed in the last *.h moving
8538         commit.
8540 2001-09-18 02:17  gregor
8542         * include/parrot/.cvsignore: Fixed a typo in .cvsignore.
8544 2001-09-18 02:16  gregor
8546         * include/parrot/: .cvsignore, bytecode.h, events.h, exceptions.h,
8547         global_setup.h, interpreter.h, io.h, memory.h, parrot.h,
8548         register.h, stacks.h, string.h, strnative.h: Added .cvsignore file
8549         missed in last commit for the move of *.h to include/parrot.
8551 2001-09-18 01:32  simon
8553         * t/Makefile:
8554         Trivial "clean" target to t/Makefile.
8556 2001-09-18 01:32  simon
8558         * assemble.pl, build_interp_starter.pl, disassemble.pl,
8559         Parrot/Opcode.pm, lib/Parrot/Opcode.pm:
8560         Change icky Digest::MD5 for nice simple unpack()
8562         Courtesy of: Jonathan Scott Duff <duff@cbi.tamucc.edu>
8564 2001-09-18 00:35  simon
8566         * basic_opcodes.ops, opcode_table, docs/parrot_assembly.pod,
8567         t/op/string.t:
8568         New concat op. Hey, if I'm going to talk about it in an article,
8569         better implement it...
8571 2001-09-17 22:54  gregor
8573         * MANIFEST, Parrot/PackFile.pm, Parrot/PackFile/ConstTable.pm,
8574         Parrot/PackFile/Constant.pm, Parrot/PackFile/FixupTable.pm,
8575         lib/Parrot/PackFile.pm, lib/Parrot/PackFile/ConstTable.pm,
8576         lib/Parrot/PackFile/Constant.pm, lib/Parrot/PackFile/FixupTable.pm:
8578         Functions for reading, writing and manipulating Parrot Pack Files.
8579         NOTE: This is a proposed term based on the fact that the file
8580         contains more than just byte code, and another language (Java)
8581         calls its binary files by a broader notion of what's in them (Class
8582         Files). Since Perl has packages, and since we use pack() to write
8583         them, we'll call them PackFiles (at least for now).
8585         That does, however, beg the question of file extension. Should we
8586         name the files "foo.pack" instead of "foo.pbc"?
8588 2001-09-17 20:23  thgibbs
8590         * interpreter.c, test_main.c: Uncuddled else statements for coding
8591         standard.
8593 2001-09-17 19:57  gregor
8595         * Parrot/Opcode.pm, lib/Parrot/Opcode.pm:
8596         Added a $revision variable, parsing of the CVS Id line in
8597         opcode_table and a &revision() subroutine.
8599 2001-09-17 19:53  gregor
8601         * opcode_table:
8602         Added a CVS Id tag to it.
8604 2001-09-17 18:58  thgibbs
8606         * interpreter.c: Cleared interpreter flags on creation.
8608 2001-09-17 18:38  gregor
8610         * build_interp_starter.pl, bytecode.c, bytecode.h, interpreter.c,
8611         interpreter.h, test_main.c:
8612           * Provides macros in interp_guts.h for setting up arrays with
8613             op names and op arg counts (done via build_interp_starter.pl).
8615             These are used in the op tracing
8617           * The functions in bytecode.[hc] pass around a pointer to the
8618         length
8619             of the bytecode so that later when we get to runops, we know
8620             how much bytecode we've got and we can detect out-of-bounds
8621             jumping. The documentation is updated, too.
8623           * runops in interpreter.c now looks at interpreter->flags to
8624             decide if the core of runops should be runops_trace_core or
8625             runops_notrace_core. These new functions contain just the
8626             while-loop portion of runops. A new function runops_generic
8627             does any other setup (such as checking the bytecode
8628             fingerprint) or wrapup (such as complaining if we ended up
8629             out-of-bounds). NOTE: I didn't know what we should do for
8630             functions in here that are not part of the api, so I gave
8631             them docs with 'TODO' marks mentioning they really aren't
8632             part of the api. Guidance appreciated.
8634           * test_main.c now checks for '-t' arg and sets the tracing flag
8635             on its interpreter instance as appropriate.
8637 2001-09-17 17:47  bdwheele
8639         * assemble.pl: added some default equates, and if they're sub
8640         references, they are computed each time it is referenced.
8642 2001-09-17 16:15  dan
8644         * interpreter.h:
8646         Added flags to the interpreter structure and defined a few.
8648 2001-09-17 15:51  simon
8650         * bytecode.h, string.h:
8651         VAR_SCOPE on globals.
8653 2001-09-17 15:20  simon
8655         * MANIFEST:
8656         Parrot/Opcode.pm, Parrot/Test.pm into MANIFEST.
8658 2001-09-17 15:05  gregor
8660         * t/jump.pasm, MANIFEST:
8661         Added a test program to demonstrate jump_i.
8663 2001-09-17 14:44  thgibbs
8665         * register.c: Fixed register pop not using correct offset (off by
8666         one).
8668         Courtesy of: Philip Kendall <pak@ast.cam.ac.uk>
8670 2001-09-17 13:56  thgibbs
8672         * interpreter.c, register.c: Added code to call Parrot_clear_s
8673         during initialization and Parrot_clear_s and Parrot_clear_p when a
8674         new stack frame is pushed.
8676 2001-09-17 13:51  gregor
8678         * languages/jako/: Makefile, bench.jako, euclid.jako, fact.jako,
8679         fib.jako, hello.jako: Added bench.pasm to "clean"
8681 2001-09-17 13:49  gregor
8683         * languages/jako/: jakoc, Makefile:
8684         Added CVS Id tag.
8686 2001-09-17 13:49  gregor
8688         * languages/jako/jakoc:
8689         Code streamlining.
8691         Courtesy of: Buggs <buggs-perl6@splashground.de>
8693 2001-09-17 13:29  gregor
8695         * MANIFEST, opcheck.pl:
8696         Added an opcode_table checker to make sure that all opcodes listed
8697         there conform to a simple set of naming rules (rules themselves, of
8698         course, are subject to change).
8700 2001-09-17 13:23  thgibbs
8702         * string.c: Modified string.c to correctly use the return value of
8703         realloc.
8705 2001-09-17 05:26  brentdax
8707         * Makefile.in: Making the Makefile smarter
8709 2001-09-16 23:06  brentdax
8711         * hints/mswin32.pl: Finishing the Configure hints
8713 2001-09-16 23:05  brentdax
8715         * Configure.pl, Makefile.in, parrot.h, test_main.c,
8716         Parrot/Opcode.pm, lib/Parrot/Opcode.pm: Win32 compatibility,
8717         Configure hints, 5.005 compatibility, MANIFEST checking
8719 2001-09-16 19:25  bdwheele
8721         * assemble.pl: parrot assembly equates
8723 2001-09-16 18:03  gregor
8725         * Makefile.in:
8726         Added 'test' target to run new test suite.
8728 2001-09-16 17:33  simon
8730         * basic_opcodes.ops:
8731         'not' was being !, rather than ~. Too many Perl programmers here, I
8732         suspect.
8734         Courtesy of: Tom Hughes <tom@compton.nu>
8736 2001-09-16 17:21  simon
8738         * Parrot/Test.pm, lib/Parrot/Test.pm, t/harness, t/op/basic.t,
8739         t/op/string.t:
8740         A *real* test suite!
8742         Courtesy of: "Mattia Barbon" <mbarbon@dsi.unive.it>
8744 2001-09-16 16:49  gregor
8746         * basic_opcodes.ops, opcode_table:
8747         At Dan's request, my new register-constant comparison ops have been
8748         removed.
8750 2001-09-16 16:40  gregor
8752         * languages/jako/jakoc:
8753         Fixed a copy-paste error in one of jakoc's error messages.
8755         Courtesy of: Buggs <buggs-perl6-list@splashground.de>
8757 2001-09-16 16:37  gregor
8759         * languages/jako/jakoc:
8760         Modified comparison implementation to use temporary registers in
8761         the case of register-constant and constant-register comparisons.
8762         This will allow the compiler to emit code that works when the
8763         constant-comparison ops are backed out of Parrot. If the ops ever
8764         make their way back in, then jakoc can emit more efficient code
8765         again.
8767 2001-09-16 16:19  bdwheele
8769         * assemble.pl, t/local_label.pasm: Added local labels ($whatever)
8770         ... though not subroutine based like the documentation wants, they
8771         are local to the last non-local label defined.
8773 2001-09-16 14:02  simon
8775         * MANIFEST:
8776         And remember, when you add stuff, keep the manifest up to date.
8778 2001-09-16 02:55  ask
8780         * Makefile.in: a "shared" target for building libparrot.so
8782 2001-09-16 02:45  thgibbs
8784         * bytecode.c, bytecode.h, events.h, exceptions.h, global_setup.c,
8785         global_setup.h, interpreter.c, interpreter.h, io.h,
8786         make_op_header.pl, memory.c, memory.h, parrot.c, parrot.h,
8787         process_opfunc.pl, register.c, register.h, stacks.h, string.c,
8788         string.h, strnative.c, strnative.h, test_main.c: Updated files to
8789         use the coding standard PDD.  Also changed Perl_Interp to
8790         Parrot_Interp.
8792 2001-09-16 02:21  ask
8794         * README: emphasise the bits about the license not being worked out
8795         yet.
8797 2001-09-15 22:21  simon
8799         * process_opfunc.pl:
8800         basic_opcodes.c should *scream* that it's autogenerated.
8802 2001-09-15 21:58  gregor
8804         * languages/jako/Makefile:
8805         Fixed Makefile to use 'jakoc' instead of 'jako_compiler.pl' to
8806         compile.
8808 2001-09-15 21:58  gregor
8810         * languages/jako/: jako_compiler.pl, jakoc:
8811         Renamed the Jako compiler to jakoc from jako_compiler.pl
8813 2001-09-15 21:51  gregor
8815         * languages/jako/: Makefile, bench.jako, euclid.jako,
8816         jako_compiler.pl:
8817         Added a new bench.jako example based on Leon Brocard's Bench.java.
8819         Jako Compiler:   * fix a bug in assignment handling   * add some
8820         more conditionals to while and if   * revert to using implicit
8821         opcodes in a few cases that were broken     before the assembler
8822         patch went in recently.
8824 2001-09-15 21:46  gregor
8826         * assemble.pl, basic_opcodes.ops, opcode_table:
8827         New ops for register-constant INTEGER comparisons:
8829           {eq,ne,lt,le,gt,ge}_ic_ic
8831         New ops for register-register and register-constant NUMERIC
8832         comparisons:
8834           eq_nc_ic
8835           {ne,lt,le,gt,ge}_{n,nc}_ic
8837         Assembler:
8839           Allow uppercase and underscores in labels.
8841           Tweaks to the op infer code to make it work with the examples
8842         I've been
8843           creating.
8845 2001-09-15 19:16  thgibbs
8847         * README: Updated README to include Configure.pl
8849 2001-09-15 17:05  simon
8851         * build_interp_starter.pl:
8852         Casting happiness
8854         Courtesy of: Jarkko Hietaniemi <jhi@cc.hut.fi>
8856 2001-09-15 16:45  simon
8858         * assemble.pl:
8859         And the same again: Parrot/Opcode.pm wasn't "..-aware".
8861 2001-09-15 16:40  simon
8863         * t/Makefile:
8864         The Parrot/Opcode.pm dependency means we need to do -I.. in the
8865         test Makefile
8867 2001-09-15 12:26  simon
8869         * memory.c:
8870         Fixed to match the coding standards.
8872         Courtesy of: Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
8874 2001-09-15 01:57  ask
8876         * Configure.pl, Makefile.in, Parrot/Opcode.pm,
8877         lib/Parrot/Opcode.pm: make the Makefile use the perl that was used
8878         to run Configure.pl
8880 2001-09-15 01:48  ask
8882         * Parrot/Opcode.pm, lib/Parrot/Opcode.pm: if we need perl 5.6, just
8883         say so. :-)
8885 2001-09-15 01:42  gregor
8887         * languages/jako/: euclid.jako, fact.jako, fib.jako,
8888         jako_compiler.pl:
8889         Compiler: Added variable interpolation in double-quoted strings.
8890         Examples: Made use of variable interpolation.
8892 2001-09-15 01:28  gregor
8894         * Parrot/.cvsignore:
8895         Ignore the Config.pm generated file.
8897 2001-09-15 01:22  gregor
8899         * languages/jako/: .cvsignore, Makefile, euclid.jako, fact.jako,
8900         fib.jako, hello.jako, jako_compiler.pl:
8901         gnp: Added some more sample Jako files and added many more
8902         operators to the compiler. Preparations for supporting all the Math
8903         and bitwise ops.
8905 2001-09-14 19:06  simon
8907         * assemble.pl, build_interp_starter.pl, disassemble.pl,
8908         make_op_header.pl, process_opfunc.pl, Parrot/Opcode.pm,
8909         lib/Parrot/Opcode.pm:
8910         Move common table reading stuff to a module.
8912         Courtesy of: Damien Neil <neild@misago.org>
8914 2001-09-14 17:42  simon
8916         * .cvsignore:
8917         More .cvsignore foo.
8919 2001-09-14 17:40  simon
8921         * assemble.pl, config_h.in:
8922         De-coredump
8924         Courtesy of: Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
8926 2001-09-14 17:38  simon
8928         * assemble.pl, t/Makefile:
8929         Make assemble.pl look in its parent directory if the data files it
8930         needs aren't in the current one. Plus a Makefile that lets "make
8931         foo.pbc" work in t/
8933         Courtesy of: Rocco Caputo <troc@netrus.net>
8935 2001-09-14 16:29  simon
8937         * make_op_header.pl:
8938         Wildly experimental patch to make Parrot compile on FreeBSD. (And
8939         probably segfault everywhere else.)
8941 2001-09-14 15:58  dan
8943         * languages/jako/: euclid.jako, jako_compiler.pl:
8945         Added in the first mini-language that targets Parrot.
8947         Courtesy of: "Gregor N. Purdy" <gregor@focusresearch.com>
8949 2001-09-14 15:20  dan
8951         * memory.c: Was misaligning returned memory. Fixed.
8953 2001-09-14 15:08  simon
8955         * Makefile.in, basic_opcodes.ops, bytecode.c, global_setup.c,
8956         interpreter.c, interpreter.h, memory.c, parrot.c, parrot.h,
8957         register.c, register.h, string.c, string.h, strnative.c,
8958         test_main.c:
8959         Fixes to include <parrot/foo.h>
8961         Courtesy of: Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
8963 2001-09-14 12:05  simon
8965         * strnative.c:
8966         Appease Tru64.
8968 2001-09-14 12:01  simon
8970         * memory.c:
8971         Appease Tru64.
8973 2001-09-14 11:54  simon
8975         * interpreter.c:
8976         Remove lvalue cast.
8978 2001-09-14 11:45  simon
8980         * Configure.pl:
8981         Be 5.005 friendly.
8983 2001-09-14 11:39  simon
8985         * Configure.pl:
8986         Tru64 cc doesn't like -Wall
8988 2001-09-14 10:57  simon
8990         * Config_pm.in, Configure.pl, MANIFEST, Makefile, Makefile.in,
8991         assemble.pl, build_interp_starter.pl, bytecode.c, bytecode.h,
8992         config.h.in, config_h.in, disassemble.pl, interpreter.c:
8993         Configure now generates Makefile
8995         Courtesy of: Brent Dax <brentdax@cpan.org>
8997 2001-09-14 10:08  simon
8999         * t/test3.pasm:
9000         Add "end"
9002         Courtesy of: Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
9004 2001-09-14 10:07  simon
9006         * assemble.pl:
9007                 * uses Getopt::Long for options.  -c is now --checksyntax.
9008         I wasn't
9009         sure how to keep compatible (patches welcome!)         * options
9010         include:                 --help                 --version
9011               --verbose                 --output=file
9012         --listing=file                 --checksyntax         * produces
9013         verbose listing of what the assembler saw :)  Only one nitpick with
9014         it:  unknown symbols are given as 0xffffffff, unfortunately, this
9015         includes symbols which may be defined later in the file (i.e.
9016         forward jumps).
9018         Courtesy of: Brian Wheeler <bdwheele@indiana.edu>
9020 2001-09-14 10:06  simon
9022         * strnative.c:
9023         substr growth fixup
9025         Courtesy of: Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
9027 2001-09-14 10:03  simon
9029         * bytecode.c, global_setup.c, interpreter.c, memory.c, memory.h,
9030         register.c, string.c, strnative.c, test_main.c:
9031         Coding standards conformance
9033         Courtesy of Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
9035 2001-09-14 09:46  simon
9037         * assemble.pl:
9038         Make the assembler grok transcendental maths again.  Courtesy of:
9039         Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
9041 2001-09-13 17:29  simon
9043         * assemble.pl:
9044         Better opcode guessing, from Brian Wheeler. (Again!)
9046 2001-09-13 17:20  dan
9048         * docs/parrot_assembly.pod:
9050         Took out duplicate entries for iton, ntoi, and tostring.
9052 2001-09-13 17:16  simon
9054         * assemble.pl, basic_opcodes.ops, opcode_table:
9055         From Brian Wheeler:
9057         This patch gives the assembler support of '\a','\n','\r','\t', and
9058         '\\' in string constants.
9060         In addition, it changes (for all registers) "I reg %li is ..." to
9061         just the value of the register.  Printing constants is also
9062         supported, but alas, you have to specify the type (print_sc,
9063         print_ic, print_nc).
9065 2001-09-13 15:38  simon
9067         * assemble.pl:
9068         Why don't I actually *test* this stuff before applying it, eh?
9070 2001-09-13 15:34  simon
9072         * TODO, t/euclid.pasm:
9073         From: "Gregor N. Purdy" <gregor@focusresearch.com> Subject: [patch
9074         (really)] Removed opcode qualifers t/euclid.pasm to exercise opcode
9075         inference
9077 2001-09-13 14:42  simon
9079         * assemble.pl:
9080         A new assembler, from Brian Wheeler.
9082 2001-09-13 09:44  simon
9084         * basic_opcodes.ops, interpreter.h, parrot.h, strnative.c,
9085         test_main.c:
9086         Two more from Tom Hughes:     Patch to fix C++ style comments
9087         Patch to remove use of structure constant/cast
9089 2001-09-13 09:39  simon
9091         * TODO, docs/strings.pod:
9092         Update string docs.
9094 2001-09-13 09:36  simon
9096         * Makefile, basic_opcodes.ops:
9097         Tom Hughes      Patch to link with the maths library Tom Hughes
9098          Patch to fix += on rvalue
9100 2001-09-13 08:57  simon
9102         * MANIFEST:
9103         I guess nobody's been using the nightly builds...
9105 2001-09-13 08:27  simon
9107         * assemble.pl, basic_opcodes.ops, opcode_table:
9108         Bitwise ops, from Brian Wheeler.
9110 2001-09-13 08:23  simon
9112         * .cvsignore, t/.cvsignore:
9113         .cvsignore's, from Gregor Purdy.
9115 2001-09-13 08:22  simon
9117         * Makefile:
9118         Euclidean test and test output rearranging from Gregor Purdy.
9120 2001-09-13 08:21  simon
9122         * assemble.pl, basic_opcodes.ops, disassemble.pl, opcode_table:
9123         Math ops from Gibbs Tanton.
9125 2001-09-13 08:14  simon
9127         * basic_opcodes.ops, opcode_table, string.c, string.h, strnative.c,
9128         t/test2.pasm:
9129         String substr op; also rearranged "encoding" to be a vtable
9130         pointer, not an array index. Haven't changed docs to reflect this,
9131         oops.
9133         Simon
9135 2001-09-12 19:48  dan
9137         * t/euclid.pasm: Implementation of Euclid's Algorithm, courtesy of
9138         Gregor Purdy
9140 2001-09-12 19:39  dan
9142         * basic_opcodes.ops, opcode_table: From Gregor Purdy. Adds mod_i.
9144 2001-09-12 19:23  dan
9146         * interpreter.h, parrot.h: Quick placeholder entry for string
9147         function tables
9149 2001-09-12 18:58  dan
9151         * memory.c: Added in a cast to make gcc happy.
9153 2001-09-12 16:44  dan
9155         * docs/parrot_assembly.pod:
9157         PDD describing parrot's assembly language and the opcodes in it
9159 2001-09-12 14:20  dan
9161         * memory.c:
9162         Fixed alignment issues with allocation
9164 2001-09-12 10:54  simon
9166         * Makefile, assemble.pl, bytecode.c, disassemble.pl,
9167         make_op_header.pl, opcode_table, process_opfunc.pl:
9168         Brian Wheeler's big patch:
9170         * Changes the opcode_table file to provide additional information
9171         about the operands.  Case shouldn't be a problem since that data
9172         never becomes a C symbol [this is pretty much as before]
9174         * Padding errors solved:  assemble.pl and bytecode.c were padding
9175         the constants incorrectly.  It should have been 4-(size % 4), not
9176         just (size % 4).  It is now fixed in both places.
9178         * assembler has less special cases, and should be easier to hang
9179         error checking on
9181         * disassembler dumps constant table and the format is a bit
9182         prettier, including register names, etc.
9184 2001-09-11 23:21  dan
9186         * build_interp_starter.pl, interpreter.c:
9188         Abstracted the runops function core into a macro for easy
9189         replacement later.
9191 2001-09-11 10:43  simon
9193         * Configure.pl, MANIFEST, Makefile, config.h, config.h.in:
9194         Configure system from Brent Dax <brentdax@cpan.org>
9196 2001-09-11 09:38  simon
9198         * assemble.pl, test.pbc:
9199         From: Bryan C. Warnock <bwarnock@raba.com> Subject: Patch:
9200         assembler deferred output
9202         Also got rid of the bytecode, since that's probably way out of
9203         date.
9205 2001-09-11 09:26  simon
9207         * basic_opcodes.ops, opcode_table, t/test2.pasm:
9208         From: Bryan C. Warnock <bwarnock@raba.com> Subject: length_s_i
9209         patch
9211 2001-09-10 23:20  simon
9213         * MANIFEST:
9214         And that move needs a MANIFEST change. So many things to remember!
9216 2001-09-10 23:18  simon
9218         * t/: test.pasm, test2.pasm, test3.pasm:
9219         Move tests to t/. (Oh, CVS doesn't work the way I think it does.)
9221 2001-09-10 23:18  simon
9223         * test.pasm, test2.pasm, test3.pasm:
9224         Move tests to t/
9226 2001-09-10 23:04  dan
9228         * test3.pasm:
9230         Register push/pop test
9232 2001-09-10 22:47  simon
9234         * basic_opcodes.ops, bytecode.c, parrot.h, test_main.c:
9235         Fix up format warnings, from Sam Tregar <sam@tregar.com>.
9236         (Modified to avoid conflict with Dan's changes.)
9238 2001-09-10 22:45  dan
9240         * disassemble.pl:
9242         Happier about blanks in opcode_table
9244 2001-09-10 22:40  dan
9246         * interpreter.c, register.c:
9248         Yanked out debugging code, since these work OK. The bug I want is
9249         elsewhere.
9251 2001-09-10 22:30  simon
9253         * MANIFEST:
9254         Uhm. We want make_op_header.pl. We really, really do.
9256 2001-09-10 22:26  simon
9258         * Makefile, TODO, assemble.pl, basic_opcodes.ops,
9259         build_interp_starter.pl, disassemble.pl, make_op_header.pl,
9260         opcode_table, process_opfunc.pl:
9261         Automatic opcode numbering, from Leon Brocard <acme@astray.com>.
9262         This means we can add lots more opcodes without fiddling about with
9263         the numbers. Hooray!
9265         Don't forget that "end" needs to be op zero, else the interpreter
9266         falls off the end of the code. This is Bad, and I wonder if there's
9267         a way around it.
9269 2001-09-10 19:49  simon
9271         * MANIFEST, make_op_table_build.pl:
9272         Hey! This doesn't do anything...
9274 2001-09-10 19:46  simon
9276         * Makefile:
9277         "clean" target cleanup from Bryan C. Warnock <bwarnock@raba.com>.
9279 2001-09-10 18:31  simon
9281         * MANIFEST:
9282         You know what this means...
9284 2001-09-10 18:30  simon
9286         * assemble.pl:
9287         "use strict" patch from Leon Brocard <acme@astray.com>. Hey, why
9288         wait for a release...? :)
9290 2001-09-10 18:13  simon
9292         * interpreter.c:
9293         Bad Dan! No cookie!
9295 2001-09-10 17:56  simon
9297         * README:
9298         A *real* README file, which doesn't claim it isn't for public
9299         consumption.
9301 2001-09-10 17:02  simon
9303         * TODO:
9304         More things to do.
9306 2001-09-10 16:56  dan
9308         * TODO: Added in assembler gripe. Also added a few blank lines for
9309         clarity
9311 2001-09-10 16:49  dan
9313         * register.h, register.c: Renamed the core functions so the opcodes
9314         can find 'em OK. (There were some conflicts)
9316 2001-09-10 16:48  dan
9318         * basic_opcodes.ops, opcode_table: Added register window ops
9320 2001-09-10 11:07  simon
9322         * TODO:
9323         Trivial TODO list.
9325 2001-09-10 11:05  simon
9327         * test.pbc, test2.pasm, test_main.c: Other string bits and pieces;
9328         note "-s" flag to test prog.
9330 2001-09-10 11:01  simon
9332         * docs/strings.pod:
9333         New string documentation.
9335 2001-09-10 11:01  simon
9337         * basic_opcodes.ops, opcode_table:
9338         String ops.
9340 2001-09-10 10:53  simon
9342         * global_setup.c:
9343         More string fu.
9345 2001-09-10 10:51  simon
9347         * memory.h:
9348         Just some more aliases for now. Used by string handling stuff.
9350 2001-09-10 10:50  simon
9352         * assemble.pl, bytecode.c, bytecode.h:
9353         Temporary hack to store string constants in bytecode and recreate
9354         them at runtime.
9356 2001-09-10 10:48  simon
9358         * op.h:
9359         op.h is now generated by the Makefile; remove it.
9361 2001-09-10 10:47  simon
9363         * Makefile:
9364         clean and op.h Makefile targets.
9366 2001-09-10 10:45  simon
9368         * string.c, string.h, strnative.c:
9369         More string vtable stuff.
9371 2001-09-07 21:07  dan
9373         * assemble.pl:
9375         Much less picky about whitespace in the opcode_table now. (Doesn't
9376         whine on blank lines)
9378 2001-09-07 16:23  dan
9380         * Makefile, assemble.pl, global_setup.h, interpreter.c,
9381         interpreter.h, opcode_table, parrot.h, test.pasm: (Here's hoping
9382         this takes) Added global_setup.h to declare init_world function
9384         Moved variable declarations out of the interpreter loop for small
9385         speed boost.
9387         Changed end opcode to now be opcode #0. A function is provided for
9388         it, but isn't ever executed.
9390         When the interpreter sees an opcode 0 in the stream it means the
9391         end of stream. Things were coring on Cygwin otherwise. (I think I
9392         was dereferencing a zero, which is bad)
9394 2001-09-06 22:07  dan
9396         * basic_opcodes.ops, process_opfunc.pl:
9398         Minor tweaks to basic_opcodes.ops to fix some NV issues. The rest
9399         are minor changes now that things are in a fixed state.
9401 2001-09-06 16:13  dan
9403         * basic_opcodes.c, test_opcodes.c:
9404         test_opcodes.c is now irrelevant--they're all in basic_opcodes.ops.
9406         basic_opcodes.c is now autogenerated from basic_opcodes.ops, and
9407         should be nuked. So it is. :)
9409 2001-09-06 03:35  dan
9411         * basic_opcodes.ops, build_interp_starter.pl, process_opfunc.pl:
9412         Scripts to build the header file that holds the function table
9413         creation code, as well as the script to turn an opcode file to C
9414         source. (And the basic opcode functions turned into an opcode
9415         source file)
9417 2001-09-06 03:31  dan
9419         * Makefile, interpreter.c:
9420         Changes to support the autogeneration of the opcode function
9421         pointer table in interpreter.c, along with the changes to the
9422         Makefile needed.
9424 2001-09-05 13:27  simon
9426         * bytecode.c, config.h, docs/opcodes.pod, docs/overview.pod,
9427         docs/parrotbyte.pod, docs/vtables.pod:
9428         Added stubs for the documents; working on them this week. (What's
9429         left of it.) config.h change is just to type VTABLE, and the
9430         bytecode thing you might want to revoke. It's apidoc for the
9431         functions in there.
9433 2001-09-03 18:26  simon
9435         * docs/strings.pod:
9436         A start on the string API documentation.
9438 2001-09-03 17:43  simon
9440         * opcode_table:
9441         Since we specify the opcode number, we can rearrange to a more
9442         human-friendly ordering.
9444 2001-09-03 17:42  simon
9446         * basic_opcodes.c:
9447         Coupl'a logic bugs. (I think)
9449 2001-09-03 17:41  simon
9451         * string.c, string.h, strnative.c:
9452         Tidying up the string vtables.
9454 2001-09-03 17:38  simon
9456         * make_op_header.pl:
9457         Spit out the whole of op.h, not just the bit in the middle.
9459 2001-08-29 13:16  ask
9461         * README: it seems like we indeed can commit. What about sending
9462         commit mails?
9464 2001-08-29 13:07  simon
9466         * Makefile, README, assemble.pl, basic_opcodes.c, bytecode.c,
9467         bytecode.h, config.h, disassemble.pl, events.h, exceptions.h,
9468         global_setup.c, interpreter.c, interpreter.h, io.h,
9469         make_op_header.pl, make_op_table_build.pl, memory.c, memory.h,
9470         op.h, opcode_table, parrot.c, parrot.h, register.c, register.h,
9471         stacks.h, string.c, string.h, strnative.c, strnative.h, test.pasm,
9472         test.pbc, test_main.c, test_opcodes.c:
9473         Initial checkin of Simon's work directory - Dan, feel free to nuke.
9474          I'm still working on the string stuff, though.
9476 2001-08-29 12:44  ask
9478         * README: update README with list address
9480 2001-08-29 12:36  ask
9482         * README: first readme.