* t/pmc/complex.t:
[parrot.git] / ChangeLog
blob1778a4c12a04fe800975bfddfdb476e5ea63fec9
1 #1 $Id$
3 2008.03.18    bernhard
4         * Released 0.6.0
5         See NEWS for more.
7 2008.02.20    pmichaud
8         * Released 0.5.3
9         See NEWS for more.
11 2008.01.15    rgrjr
12         * Released 0.5.2
13         See NEWS for more.
15 2007.12.18    jonathan
16         * Released 0.5.1
17         See NEWS for more.
19 2007.11.20    chromatic
20         * Released 0.5.0
21         See NEWS for more.
23 2007.10.17    coke
24         * Released 0.4.17
25         See NEWS for more.
27 2007.09.18    particle
28         * Released 0.4.16
29         See NEWS for more.
31 2007.08.22    pmichaud
32         * Released 0.4.15
33         See NEWS for more.
35 2007.07.17    particle
36         * Released 0.4.14
37         See NEWS for more.
39 2007.06.19    allison
40         * Released 0.4.13
41         See NEWS for more.
43 2007.05.15    chromatic
44         * Released 0.4.12
45         See NEWS for more.
47 2007.04.17    mdiep
48         * Released 0.4.11
49         See NEWS for more.
51 2007.03.20    coke
52         * Released 0.4.10
53         See NEWS for more.
55 2007.3.10     coke
56         * removed parakeet
58 2007.02.22    pmichaud
59         * Released 0.4.9
60         See NEWS for more.
62 2007.01.17    chromatic
63         * changed 'name' method on namespaces to 'get_name' per pdd21
65 2007.01.16    particle
66         * Released 0.4.8
67         See NEWS for more.
69 2006.12.12    particle
70         * added C<isnull> opcode
72 2006.11.14    chip
73         * Released 0.4.7
74         See NEWS for more.
76 2006.11.07      tewk
77         * added :init pragma functionality to subs
79 2006.10.28      jonathan
80         * added :vtable pragma functionality to subs
82 2006.09.18    chromatic
83         * added Parrot::Embed under ext/Parrot-Embed
85 2006.08.18    leo
86         * remove the None PMC - if needed it can trivially be reimplemented
87           in languages from r14189
89 2006.08.16    creiss
90         Merged Software Transactional Memory branch into trunk, adds:
91         * several new opcodes whose names start with stm_
92         * read-only PMC support
93         * several new PMC types (whose names start with STM*)
94         * support for threads (again)
96 2006.08.08    chip
97         * Released 0.4.6
98         See NEWS for more.
100 2006.08.02    chip
101         * opcodes: "in PMC" is no longer a synonym for "invar PMC";
102         there are opcodes now that want the real "in PMC".
103         * namespace and global opcodes now accept name arrays again, as
104         well as keys; the corresponding namespace PMC methods are gone.
106 2006.07.21    leo
107         * Parrot_exit, Parrot_on_exit take now an Interp * argument
109 2006.07.25    chip
110         * add experimental op find_type_i_p
111         * fix longstanding bug that sometimes didn't encode pasm keys as
112         Key PMCs (specifically "[S0]" and "['stringliteral']").
114 2006.07.24    chip
115         further implementation of new pdd21:
116         * new opcodes {get,set}*global
117           (old {find,store}*global will be supported for a short while)
119 2006.07.20    audreyt
120         * --maintainer prerequesites are now bison 2.2+ and flex 2.5.3x
121           (or some such --leo) 
122           (at the moment code is checking for 2.0 -- ambs)
124 2006.07.17    chip
125         partial implementation of new pdd21:
126         * old: "get_namespace KEY".  new: "get_hll_namespace KEY"
127         * get_namespace and find_global opcodes no longer accept arrays
128           of strings.  To use arrays, call namespace object methods.
130 2006.06.19    leo
131         * Released 0.4.5
132         See NEWS for more.
134 2006.06.03    leo
135         * I and N registers are never cleared to 0 / 0.0 on subroutine entry
137 2006.05.14    leo
138         * Released 0.4.4
139         See NEWS for more.
141 2006.04.30    bernhard
142         * Make the Perl PMCs dynamic and move them to src/dynpmc
144 2006.04.02    leo
145         * Released 0.4.3
146         See NEWS for more.
148 2006.03.06    leo
149         * Shifted argument type bits left by 2 according to r11754
150           change of docs/pdds/pdd03_calling_conventions.pod
151         * if you are creating PASM then code needs adjustment  
153 2006.02.22    leo
154         * Released 0.4.2
155         See NEWS for more.
157 2006.01.16    bernhard
158          * rename src/dynclasses to src/dynpmc 
159          * rename src/classes to src/pmc 
161 2006.01.15    leo
163          * find_global and friends returns a .Null PMC instead of .Undef on
164           lookup failure, iff lookup exceptions are off
166 2006.01.08    leo
167         * Released 0.4.1
168         See NEWS for more.
170 2005.12.28    particle
171         * renamed all .imc files to .pir
172         * modified all doc references to .pir as well
174 2005.12.13    particle
175         * moved jit/ directory to src/jit/
177 2005.12.12    particle
178         * moved io/ directory to src/io/
179         * moved classes/ directory to src/classes/
180         * moved dynclasses/ directory to src/dynclasses/
182 2005.12.08    particle
183         * moved types/ directory to src/types/
184         * moved pf/ directory to src/packfile/
185         * moved ops/ directory to src/ops/
187 2005.12.08    particle
188         * moved charset/ directory to src/charset/
189         * moved encodings/ directory to src/encodings/
191 2005.12.07    particle
192         * moved imcc/ directory to compilers/imcc/
194 2005.12.06    particle
195         * moved util/ directory to tools/util/
196         * removed imcc/examples/ directory
197         * moved ast/ directory to compilers/ast/
199 2005.12.05    particle
200         * moved imcc/docs/ directory to docs/imcc/
201         * moved build_tools/ directory to tools/build/
202         * modified MANIFEST, MANIFEST.generated, and MANIFEST.SKIP
204 2005.12.04    leo
205         * Released 0.4.0
206         * See NEWS for changes
208 2005.11.06    leo
209         * Released 0.3.1
210         * See NEWS for changes
212 2005.10.01    leo
213         * Released 0.3.0
214         * See NEWS for changes
216 2005.08.05    leo
217         * Released 0.2.3
218         * See NEWS for changes
220 2005.07.03    leo
221         * Released 0.2.2
222         * See NEWS for changes
224 2005.06.04    leo
225         * Released 0.2.1
226         * allow short names for object attributes
227         * string encoding and charset can now be set independently
228         * experimental mmap IO layer for slurping files
229         * enable compile opcode support for compilers written in PASM/PIR
230         * improved HLL support with .HLL and n_operators pragmas
231         * simplified hash code
232         * more strength reduce optimizations
233         * distinct debug and trace flag settings
234         * glob support in PGE
235         * new character classification opcodes and interfaces
236         * numerous bug fixes and enhancements
238 2005-05-08    leo
239         * Released 0.2.0
240         * parrot repository is now under subversion
241         * MMD (Multi Method Dispatch) enhanced
242         * new unary and infix opcodes that return new result PMCs
243         * dynamic scalar PMCs inherit now almost all from Parrot core PMCs
244         * more unification of PMCs and ParrotObjects
245         * tailcalls for functions and methods
246         * PGE (Parrot Grammar Engine) reworked
247         * Pugs creates Parrot code and Pugs is a registered compiler now
248         * new languages/lisp
249         * the usual bug fixes and improvements
251 2005-03-06    leo
252         * Released 0.1.2
253         * big rewrite of string code, not yet finished but ...
254         * partial implementation of a generational garbage collector
255         * indirect register frame addressing
256         * .return(args) PIR syntax
257         * moved most of the Python code to dynclasses
258         * a lot more Python functionality
259         * precalculate opcodes with all constants
260         * PGE - Parrot Grammar Engine
261         * scalar classes refactoring
262         * much more tests and big test system cleanup
263         * improved documentation
264         * and as always a lot more
266 2004-10-09    leo
267         * Released 0.1.1
268         * Need Perl 5.6 now for building
269         * Basic AST support, PAST file parser, bits of code generation
270         * BigInt PMC using GMP
271         * Complex PMC
272         * Dynamic loading improved including bundles of PMC classes
273         * Experimental support for "make install"
274         * IA64 and hppa JIT support
275         * ICU unicode support
276         * IO layer handling code
277         * IO readline and buffered IO fixes
278         * Incremental GC
279         * Internal pythonic functions: filter, map, reduce, max, min ...
280         * Languages updates for m4, tcl, perl6, regex. New parakeet language.
281         * Library updates, Stream and SDL library
282         * MMD - multi method dispatch for binary vtable methods
283         * Many new array PMCs
284         * Method call syntax in PIR obj."meth"(...)
285         * More OS stuff: stat, exec, system, gmtime, piped read and write
286         * New Python PMCs like Enumerate, None
287         * Non-branching compare opcodes
288         * PIR support for += and friends
289         * Python language subdir
290         * Python types mapped to existing PMCs
291         * Slices and range support
292         * Tons of bug fixes, documentation updates, new tests
293         * Win32 COFF exec support
294         * ... and a lot more
296 2004-02-29    leo
297         * Released 0.1.0
298         * "Ladies and gentlemen, I give you... objects!"
299         * Huge documentation overhaul
300         * More supported platforms, s. PLATFORMS
301         * Basic thread support for pthread based architectures
302         * Basic event handling for timers and signals including:
303         * PASM callbacks for NCI (native C) functions.
304         * Improved platform configuration
305         * COW stacks now working, stacks code redone
306         * Structure handling vastly improved
307         * Random PMC and rand primitives
308         * Better subroutine call syntax in PIR
309         * Make PIR subroutines compliant with pdd03
310         * Improved profiling (DOD, GC timings)
311         * Hash code improvements, incl. random key order support
312         * Experimental freeze/thaw code for some PMC types
313         * IO improvements for buffered layer and Win32
314         * String iterators
315         * String bitwise vtables
316         * Many new opcodes
317         * Support for JIT, where malloced memory isn't executable
318         * Priority DOD scheme for objects that need timely destruction
319         * Improved bytecode loading (e.g. onLoad functions)
320         * Language updates: forth, Perl6/P6C, m4
321         * Libraries: Getopt_Long, SDL, Dumper, Sort
322         * new JAPH examples
323         * Unified imcc and parrot test handling
324         * Many new tests (make test reports 1386 tests)
325         * Numerous bug fixes
328 2003-10-31    leo
329         * Released 0.0.13
330         * Yep thirteen - haunted by the ghost of 0.0.12
331         * Build imcc as parrot
332         * Objects more finished
333         * Delegate vtable methods to byte code
334         * Binary multi-method dispatching
335         * Isa and does methods for PMCs
336         * Call byte code from C
337         * Start of extension interface
338         * Experimental struct handling
339         * Catch access to NULL PMCs
340         * Experimental network socket interface code and opcodes
341         * IO fixes and improvements
342         * Dynamic opcode libraries
343         * Fix-assigned opcode numbers
344         * Argument flattening for function calls
345         * More native call interface (NCI) signatures
346         * Ncurses, postgres, and pcre interface libraries
347         * Forth language is vastly improved
348         * BSD and Win32 build improvements
349         * Many new tests and fixes
351 2003-10-22    melvin
352         * imcc moved from parrot/languages/ to parrot/
354 2003-09-20    sfink
356         * updated the native_pbc test files (from Leo)
357         * built 0.0.11.1 release tarball
359 2003-09-20    sfink
361         * CHANGES BUNDLED INTO 0.0.11:
362         * Executable output
363         * Dynamic PMC registration
364         * Trial exception system
365         * Beginnings of object system
366         * Iterators
367         * Ordered hashes
368         * I/O system improvements
369         * References
370         * Documentation for basic PMC types
371         * IMCC support of Parrot Calling Conventions
372         * Runtime loading of chartypes (and other string improvements)
373         * Conditional breakpoints
374         * Dramatically accelerated sweeps for finalizable objects
375         * Small PMCs (PMCs split into core and extensions)
376         * Loadable bytecode packfiles
377         * Constant PMCs
378         * Sub variants that deal with the stack correctly
379         * Switched runops core
380         * Line numbers in warnings
381         * Environment access
382         * Many documentation cleanups
383         * Conversion to CPS style!
384         * BASIC debugger and many other wacky features
385         * Filename, line number parsing support in IMCC
387 2003-07-21 17:31 chromatic
388         * applied copyright patch from Josh Wilmes
390 2003-06-14 13:50 dan
391         * Moved the registers out of the context structure, since they
392           really aren't context
393         * Changed the register stack frames to hold only 16 registers
394           rather than 32, added half-set push and pop ops, and reworked
395           the full set push/pops to do two half-set push/pops. Should
396           speed up saving register data on calls, since we usually only
397           care about the top half of the registers anyway.
398         * Started committing some of the new class/object framework
399         * Remembered to finally start updating the Changelog
401 2003-03-18 03:50  ask
403         * Various files
404           Update Yet Another copyright statements to reflect the (no longer
405           so) shiny new year.
407 2003-03-11 22:06  chip
409         * Configure.pl: print help on non-option command line args
411 2002-12-18 20:38  sfink: changes since 0.0.8
413         - Allow suppression of cgoto core to save memory during compile
414         * Native function calling interface
415         * Major rewrite of stack and list aggregates
416         - Scalar PMC added
417         * Scratchpads implemented
418         - Win32 libraries
419         - Internal memory subsystem documentation
420         * Preliminary DotGNU support
421         - Packfile fingerprinting
422         * Buffer/PMC unification (into PObjs)
423         * stabs debugging information support
424         * Major Jako overhaul, including:
425           - imcc integration
426           - native function calling
427         - Perl6 string interpolation
428         - languages/regex now targets IMCC
429         * Optional Lea memory allocator
430         * Full sprintf implementation
431         * Many, many new tests
432         * Miniparrot
433         - exchange ops
434         - runtime-controllable gc debugging
435         * PMC properties
436         - Crash info
437         * JIT: various improvements
438           - register usage tracking
439           - block register allocation
440           - optimizations
441           - more jitted ops
442           - restartable
443           - architecture abstraction layer
444           - debugging via GDB
445         * Beginning support for extensible packfiles
446         * Much better key support, generally
447         * splice()
448         * Restructured PMC hierarchy with better functionality inheritance
449         * IMCC: many, many improvements. See imcc/ChangeLog
450         * Perl6: index map grep join reverse defined
451         * Scheme with functions!
454 2002-03-19 22:54  nicholas
456         * docs/running.pod: Patch from Simon Glover <scog@amnh.org>:
458          We can now get usage information for test_parrot without having to
459          grep the source.
461 2002-03-19 22:53  simon
463         * Configure.pl:
464         Parrot is called parrot.
466 2002-03-19 22:53  nicholas
468         * docs/tests.pod: Patch from Simon Glover <scog@amnh.org>:
470          1. There are tests in t/pmc as well as t/op now.
471          2. Adds a comment about Parrot::Test
473 2002-03-19 18:09  dan
475         * Configure.pl, examples/assembly/life.pasm: Toss a prompt that
476         messes up automated builds
478         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
480 2002-03-19 00:33  mrjoltcola
482         * core.ops: Doc cleanup from Simon Glover.
484 2002-03-18 23:52  mrjoltcola
486         * io/io_unix.c: Typo fix for invalid lvalue caught by David Loyd.
488 2002-03-18 22:09  dan
490         * include/parrot/resources.h: Checked in old version
492 2002-03-18 20:17  dan
494         * include/parrot/resources.h: Forgot a prototype
496 2002-03-18 20:15  dan
498         * resources.c: D'oh! Thinko, fixed.
500         Courtesy of "Peter Gibbs" <peter@emkel.co.za>
502 2002-03-18 17:33  josh
504         * Configure.pl: Lowering the bar a bit.
506 2002-03-18 17:33  sfink
508         * languages/regex/: MAINTAINER, Makefile, README, regex.pl,
509         test.pl, lib/Regex.pm, lib/Regex/AsmOps.pm, lib/Regex/CodeGen.pm,
510         lib/Regex/Generate.pm, lib/Regex/Grammar.pm, lib/Regex/Grammar.y,
511         lib/Regex/Optimize.pm, lib/Regex/Parse.pm, lib/Regex/Pasm.pm,
512         lib/Regex/PreOptimize.pm, lib/Regex/RegexOps.pm,
513         lib/Regex/Rewrite.pm, lib/Regex/CodeGen/Re.pm,
514         lib/Regex/CodeGen/Rx.pm, lib/Regex/Rewrite/Re.pm,
515         lib/Regex/Rewrite/Rx.pm, lib/Regex/Rewrite/Stackless.pm,
516         t/example.t: Whoops, wrong time to check this in.
518 2002-03-18 16:42  dan
520         * memory.c, resources.c: Partial fix for GC's memory trouncing. At
521         least we consider the PMC and Buffer free pools worth collecting,
522         and initialize the Buffer pool stuff.  Still not 100% correct,
523         though.
525 2002-03-18 15:35  simon
527         * packfile.c:
528         Fix format arg bug.
530 2002-03-18 07:45  brentdax
532         * Configure.pl: Warn if you're using 64-bit ints on a 32-bit
533         system.
535 2002-03-18 00:09  sfink
537         * languages/regex/: MAINTAINER, Makefile, README, regex.pl,
538         test.pl, lib/Regex.pm, lib/Regex/AsmOps.pm, lib/Regex/CodeGen.pm,
539         lib/Regex/Generate.pm, lib/Regex/Grammar.pm, lib/Regex/Grammar.y,
540         lib/Regex/Optimize.pm, lib/Regex/Parse.pm, lib/Regex/Pasm.pm,
541         lib/Regex/PreOptimize.pm, lib/Regex/RegexOps.pm,
542         lib/Regex/Rewrite.pm, lib/Regex/CodeGen/Re.pm,
543         lib/Regex/CodeGen/Rx.pm, lib/Regex/Rewrite/Re.pm,
544         lib/Regex/Rewrite/Rx.pm, lib/Regex/Rewrite/Stackless.pm,
545         t/example.t: Buggy 1st version of regex compiler implementation.
546         Warning: the test code depends on features of the assembler that do
547         not yet exist.
549 2002-03-17 21:35  ajgough
551         * types/: bignum.c, bignum_atest.pl: Added a couple of quick routes
552         through addition and subtraction.  Also added the ability to run
553         all the tests, including the ones which deal with overflow and
554         underflow.  These fail, but that's expected.  Soon they'll pass.
555         Then I'll show them.  Yesssssss.  Tessssssssts my precioussssss,
556         passsssssssings tesssstsssss.
558 2002-03-17 20:06  ajgough
560         * types/: bignum.c, bignum.h, bignum_test.pl: Modified
561         check_(under|over)flow to test bignumbers, rather than values.
562         context now carries E_limit, from which max and min exp are found.
564         Added a default-context-creating function (although this isn't the
565         same as either of the default contexts defined in the eda).
567 2002-03-17 13:31  ajgough
569         * types/: bignum.c, bignum.h: Made BN_round and BN_iround so that
570         exported version matches prototypes of other public functions.
572 2002-03-17 06:44  josh
574         * chartype.c, encoding.c, memory.c, misc.c, packdump.c, packfile.c,
575         packout.c, resources.c, string.c, include/parrot/encoding.h: Some
576         last-minute re-indenting.
578 2002-03-17 05:07  mrjoltcola
580         * io/io_unix.c: Clear up unsigned compare caught by Solaris GCC.
582 2002-03-16 23:17  nicholas
584         * classes/default.pmc: Patch from Simon Glover <scog@amnh.org> to
585         remove warnings:
587          default.pmc: In function `Parrot_default_get_integer_keyed':
588          default.pmc:50: warning: control reaches end of non-void function
589          default.pmc: In function `Parrot_default_get_number_keyed':
590          default.pmc:58: warning: control reaches end of non-void function
591          default.pmc: In function `Parrot_default_get_string_keyed':
592          default.pmc:67: warning: control reaches end of non-void function
593          default.pmc: In function `Parrot_default_get_pmc_keyed':
594          default.pmc:87: warning: control reaches end of non-void function
596 2002-03-16 18:50  ajgough
598         * types/: bignum.c, bignum.h: Lots of prototypes changed in
599         readiness for nicely telling your caller about any oddness you've
600         caused in the persuit of flow.
602 2002-03-16 17:38  dan
604         * interpreter.c, resources.c, docs/pdds/pdd09_gc.pod,
605         include/parrot/interpreter.h, include/parrot/resources.h: Now we
606         can control the GC and DOD, to stop it when we don't really want
607         it.
609 2002-03-16 16:58  dan
611         * resources.c, vtable.tbl, classes/default.pmc,
612         include/parrot/resources.h: Added the last code to let PMCs control
613         their marking at DOD time
615 2002-03-16 16:57  ajgough
617         * types/bignum.c: Ok, I worked out how to not have lots of tabs.  I
618         feel a little more virtuous now.  Really I do.  You might not
619         believe me, but you should.  perl -pne 's/\t/        /g', if you're
620         curious.
622 2002-03-16 16:57  josh
624         * packfile.c, packout.c: M-x untabify is my new friend.
626 2002-03-16 16:50  josh
628         * trace.c, resources.c: Minor whitespace tweak for the benefit of
629         check_source_standards.pl
631 2002-03-16 16:50  ajgough
633         * types/: bignum.c, bignum.h: More documentation, separate
634         functions into public and private sorts, some initial stuff to cope
635         with over and underflow correctly.
637 2002-03-16 16:49  josh
639         * resources.c: Re-indented (sorry bout the big diff)
641 2002-03-16 16:47  bdwheele
643         * examples/assembly/fact.pasm: This fixes fact.pasm so it will
644         assemble again, both with Simon's new assembler and with the old
645         one.
647 2002-03-16 16:33  mrjoltcola
649         * io/TODO: Get the TODO up-to-date for 0.0.4.
651 2002-03-16 16:11  josh
653         * Configure.pl: Patch from Nicholas Clark <nick@unfortu.net>: stops
654         silly people (such as me) running Configure with
655         /usr/local/bin/perl (which is 5.004_05) and not realising their
656         mistake until the pmc subdirectory, where the first qr// is
657         encountered.
659         Syntax error messages don't tell you what you did wrong. This does:
661         /usr/local/bin/perl Configure.pl Perl 5.00503 required--this is
662         only version 5.00405, stopped at Configure.pl line 10.
664 2002-03-16 14:38  ajgough
666         * Makefile.in: Small fix to Makefile.in to keep Irix make happy
667         with commenting.
669 2002-03-16 11:45  simon
671         * MANIFEST, examples/assembly/xml_parser.pasm:
672         Added Clint Pierce's XML parser.
674 2002-03-15 22:24  simon
676         * packout.c:
677         Don't need that function.
679 2002-03-15 21:56  simon
681         * Makefile.in, include/parrot/packfile.h:
682         Rebuild packout.o, since it'll be used for the Packfile XS module
684 2002-03-15 19:45  dan
686         * include/parrot/: memory.h, pmc.h: Another add-in for GC
688 2002-03-14 19:48  dan
690         * core.ops: No string to int for some reason
692 2002-03-14 18:45  dan
694         * string.c, t/op/string.t: Fix 0-length substr problem
696 2002-03-14 14:46  dan
698         * core.ops, interpreter.c, resources.c, classes/array.pmc,
699         classes/perlarray.pmc, examples/assembly/life.pasm,
700         include/parrot/interpreter.h, include/parrot/resources.h: Added in
701         a counter for copied memory, with a display in life.pasm
703 2002-03-14 03:16  mrjoltcola
705         * MANIFEST: Update MANIFEST courtesy of Simon Glover.
707 2002-03-13 23:43  simon
709         * packfile.c:
710         Oops.
712 2002-03-13 23:43  simon
714         * packfile.c:
715         Hangs head in shame.
717 2002-03-13 21:31  simon
719         * MANIFEST:
720         FAQ moved.
722 2002-03-13 18:06  simon
724         * string.c:
726         Fix string_compare screw-up.
728 2002-03-13 18:02  brentdax
730         * docs/: parrot.pod, ParrotFAQ.htm, faq.pod: Move the FAQ into POD
731         and add a new question/answer pair.
733 2002-03-12 22:53  mrjoltcola
735         * io.ops: Quick and dirty read ops for PIO. No warranty provided.
737 2002-03-12 22:48  mrjoltcola
739         * examples/assembly/io2.pasm: Quick and dirty read ops for PIO. No
740         warranty provided.
742 2002-03-12 22:29  ajgough
744         * docs/pdds/pdd14_bignum.pod: Ooops, it is #14, really.
746 2002-03-12 22:24  ajgough
748         * docs/pdds/pdd14_bignum.pod: Creation of bignumber pdd, update to
749         version 1.1, Don't know if this is the correct number, but I don't
750         want this stuck on my harddrive where it will get lost, so 14 it is
751         :)
753 2002-03-12 11:35  simon
755         * MANIFEST, packdump.c, packout.c:
757         Just so the functionality doesn't disappear.
759 2002-03-12 11:33  simon
761         * Makefile.in, chartype.c, encoding.c, packfile.c,
762         chartypes/unicode.c, chartypes/usascii.c, encodings/singlebyte.c,
763         encodings/utf16.c, encodings/utf32.c, encodings/utf8.c,
764         include/parrot/chartype.h, include/parrot/encoding.h,
765         include/parrot/packfile.h:
767         Packfile axing.
769 2002-03-11 23:06  nicholas
771         * core.ops: Patch from Simon Glover <scog@roe.ac.uk>:
773           Core.ops documentation nits
775 2002-03-11 23:05  nicholas
777         * t/pmc/pmc.t: Patch from Simon Glover <scog@roe.ac.uk>:
779           Most of the PerlUndef tests in pmc.t appear to have been added
780         twice.
781           Enclosed patch removes the duplicates.
783 2002-03-10 23:40  nicholas
785         * t/pmc/perlstring.t: Patch from Simon Glover <scog@amnh.org>:
787          More tests for the PerlString test-suite.
789 2002-03-10 23:40  nicholas
791         * t/op/time.t: Patch from Simon Glover <scog@amnh.org>:
793         test for sleep with negative argument
795 2002-03-10 21:58  nicholas
797         * t/op/rx.t: Patch from Simon Glover <scog@amnh.org>:
799          Enclosed patch fixes up a few more holes in our test coverage.
801 2002-03-10 21:18  mrjoltcola
803         * classes/array.pmc, classes/default.pmc, classes/intqueue.pmc,
804         classes/parrotpointer.pmc, classes/perlarray.pmc,
805         classes/perlhash.pmc, classes/perlint.pmc, classes/perlnum.pmc,
806         classes/perlstring.pmc, classes/perlundef.pmc,
807         include/parrot/pmc.h, core.ops, pmc.c, vtable.tbl: Add size
808         argument to the init() vtable method so PMCs have the option to
809         know how to size themselves at creation. size could be N elements
810         or a byte count, depending on the PMC or it may simply be ignored.
811         Overloaded 'new' opcode for optional arg.
813 2002-03-10 21:15  mrjoltcola
815         * lib/Parrot/Assembler.pm: Minor patch to the assembler for the
816         new_p_ic_ic opcode to work same as new_p_ic (looks up a named
817         class).
819         Also added small hack for .sub directive (which simply translates
820         to a label, however we might eventually want to collect these to
821         validate bsr calls.
823 2002-03-10 15:09  ajgough
825         * types/: bignum.c, bignum.h, bignum_atest.pl, bignum_test.pl:
826         Added round_floor and round_ceiling.  3403 tests pass, none fail.
828 2002-03-10 03:56  ajgough
830         * types/: bignum.c, bignum_atest.pl: Added extended stuff to
831         divide, divide integer and remainder.  All filled in functions now
832         have special values capability.
834         Much remains to be done though, and the pdd needs to catch up.
836 2002-03-10 01:36  ajgough
838         * types/bignum.c: Added extended stuff to _add, _subtract.
840 2002-03-10 00:14  nicholas
842         * t/op/: integer.t, number.t: Patch from Simon Glover
843         <scog@roe.ac.uk>:
845          The enclosed patch fixes a few of the holes in our test coverage
846          uncovered by Josh Wilmes
848 2002-03-09 23:03  ajgough
850         * types/: bignum.c, bignum.h: Modified compare to work with
851         extended values.  Made a couple of changes here and there to allow
852         BN_comp to take a context, so that an is_zero check doesn't clobber
853         negative zeros.
855 2002-03-09 22:19  ajgough
857         * types/: bignum.c, bignum.h, bignum_atest.pl, bignum_test.pl:
858         Unary plus now copes with special values.
860 2002-03-09 04:25  ajgough
862         * types/: bignum.c, bignum_atest.pl, bignum_test.pl: Exception
863         traps and flags are now enabled and tested for all the standard
864         tests for all the functions which are currently implemented.  Test
865         harness faffed with to allow these to be tested.
867 2002-03-09 02:29  josh
869         * encodings/singlebyte.c, encodings/utf16.c, encodings/utf32.c,
870         encodings/utf8.c, chartypes/unicode.c, chartypes/usascii.c:
871         Re-indented
873 2002-03-09 02:22  josh
875         * config_h.in: tab-blastin'
877 2002-03-09 02:21  josh
879         * check_source_standards.pl: Play nicer with M-x compile- don't
880         bother giving line numbers for things you don't want to look at.
882 2002-03-09 02:10  josh
884         * examples/mops/mops.c: re-indented
886 2002-03-09 02:07  josh
888         * classes/pmc2c.pl: Use the usual header so that we can detect the
889         autogeneratedness.
891 2002-03-09 02:05  josh
893         * jit2h.pl: Avoid accidental /* inside a comment, which generates a
894         compiler warning
896 2002-03-09 01:59  josh
898         * io/: io.c, io_stdio.c, io_unix.c, io_win32.c: Another large
899         patch- re-indent io/*.c.
901 2002-03-09 01:52  ajgough
903         * types/: bignum.c, bignum.h, bignum_test.pl: Added handling of
904         special values to the string conversion functions, some other
905         functions now need context (to let -0 pass through really_zero)
906         which have also been added.
908 2002-03-09 01:47  josh
910         * test_main.c: Re-indented.
912 2002-03-09 01:41  josh
914         * rx.c: killed a stray tab
916 2002-03-09 01:38  josh
918         * rx.c: Re-indented.
920 2002-03-09 01:36  josh
922         * misc.c: Oops, some tabs remained- cleaned up.
924 2002-03-09 01:31  josh
926         * misc.c: Re-indented (major patch, sorry)
928 2002-03-09 00:59  josh
930         * embed.c: Re-indented.
932 2002-03-08 23:08  simon
934         * MANIFEST, docs/pdds/pdd10_embedding.pod,
935         docs/pdds/pdd11_extending.pod, docs/pdds/pdd12_assembly.pod,
936         docs/pdds/pdd13_bytecode.pod:
937         Placeholder PDDs.
939 2002-03-08 21:12  ajgough
941         * include/parrot/string.h: Added private flags to string.h, mostly
942         so that other GCed stuff can also have its very own private flags.
944 2002-03-08 19:53  simon
946         * MANIFEST:
947         Great PDD Renaming
949 2002-03-08 19:41  robert
951         * docs/pdds/: pdd0.pod, pdd1.pod, pdd2.pod, pdd4.pod, pdd5.pod,
952         pdd6.pod, pdd7.pod: Renamed...
954 2002-03-08 18:51  simon
956         * MANIFEST, docs/pdds/pdd08_keys.pod:
957         Add keys PDD.
959 2002-03-08 18:20  ajgough
961         * types/: bignum.c, bignum.h, bignum_atest.pl, bignum_test.pl:
962         Introduced exception handlers and exception flags to context, will
963         allow support of extended standard.  Unified exception checking
964         mechanism (sort of) and made minimal changes to bulk of code to use
965         this.  Tests pass, I'm happy, and further changes will happen more
966         gradually.
968 2002-03-08 04:38  josh
970         * interpreter.c, string.c, testparrotsizes_c.in: More indenting
971         tweaks.
973 2002-03-08 04:37  josh
975         * platforms/: generic.c, generic.h, win32.c, win32.h: Re-indented
977 2002-03-08 04:24  josh
979         * embed.c: A bit more re-indenting
981 2002-03-08 04:20  josh
983         * embed.c: Indenting fixes
985 2002-03-08 04:14  josh
987         * jit.c: Re-indented (run_indent.pl)
989 2002-03-08 03:36  josh
991         * ops2c.pl: Fix the line numbers which get reported while compiling
992         core_ops*.c
994 2002-03-08 03:22  josh
996         * packfile.c: -1552 cc: WARNING File = packfile.c, Line = 1537
997         The variable "type" is set but never used.
999               opcode_t type;
1001 2002-03-08 03:04  josh
1003         * resources.c, stacks.c, string.c, io/io.c, io/io_stdio.c,
1004         io/io_unix.c: Clean up unused and set-but-not-referenced variables
1005         noticed by the sgi compiler.
1007 2002-03-08 03:02  josh
1009         * misc.c: Fixes this warning (SGI) cc-1188 cc: WARNING File =
1010         misc.c, Line = 417   The indicated type qualifier is meaningless on
1011         cast type.
1014         (const char) 'f');
1015                                                                          ^
1017 2002-03-08 02:55  josh
1019         * Makefile.in: Clean up one of the object files it was missing
1021 2002-03-08 01:15  josh
1023         * include/parrot/interpreter.h: Fixes the following error (tcc):
1024         "./include/parrot/interpreter.h", line 27: Error:   [Syntax]: Extra
1025         comma at end of list.
1027 2002-03-06 22:15  simon
1029         * stacks.c:
1030         Tidy up stack chunk allocation.
1032 2002-03-06 21:00  simon
1034         * interpreter.c:
1035         Create strings only once we've got string register heads set up.
1037 2002-03-06 20:31  simon
1039         * classes/perlarray.pmc:
1040         malloc(0) considered harmful.
1042 2002-03-06 20:24  simon
1044         * include/parrot/resources.h:
1045         I like it when Parrot compiles.
1047 2002-03-06 17:02  dan
1049         * classes/array.pmc: Changed over to data pointing to a Buffer.
1051 2002-03-06 15:45  dan
1053         * core.ops, embed.c, exceptions.c, interpreter.c, memory.c,
1054         packfile.c, pbc2c.pl, pdump.c, resources.c,
1055         include/parrot/interpreter.h, include/parrot/memory.h,
1056         include/parrot/resources.h, io/io.c: Three quick things: 1) INTVALs
1057         and opcode_t > longs will now be even more suspect than what they
1058         were beforehand.  2) Feel free to bicker with names.  I don't think
1059         we've come to *any* sort of agreement with these, although we
1060         really, really, need to.  3) I forget the third thing.  4) But I
1061         thought of a fourth.  5) I've now remembered the third thing: IIRC,
1062         ANSI C states that enums will fit within the smallest type (int or
1063         greater) that can hold the values. Is that actually correct, and
1064         does it state whether unsigned is preferred to signed for
1065         non-negative enums? 6) Since I'm no longer constrained by "three"
1066         or "quick", I'm going size_t happy for a lot of memory-related
1067         storage.  (That's good.  No sense wasting the size or performance
1068         of an UINTVAL for strange values of UINTVAL.)  I'm also using it in
1069         a couple other internal things (like the GC stat counters, seen
1070         here).  Size and performance, again, and unpromotable to a bigint,
1071         so we know that we (theoretically) will wrap.  However, size_t
1072         isn't the best choice for the type.  (Not that there's anything
1073         wrong with size_t, just that it shouldn't be called size_t.)  Any
1074         thoughts?  I was thinking of just doing unsigned int, because,
1075         IIRC, int is usually the natural word size, and will be most
1076         efficient.  Thoughts? 7) I forgot what the fourth thing I thought
1077         of was while writing down the others.  Sorry.
1079         Courtesy of  "Bryan C. Warnock" <Bryan.Warnock@raba.com>
1081 2002-03-06 15:26  dan
1083         * memory.c, resources.c, string.c, classes/perlarray.pmc,
1084         include/parrot/resources.h: Now we allocate generic Buffers from
1085         arenas too
1087 2002-03-05 21:42  brentdax
1089         * Configure.pl: Minor cleanup and enhancements.
1091 2002-03-05 21:25  dan
1093         * resources.c: non-special GC now works with PMCs
1095 2002-03-05 19:48  brentdax
1097         * Configure.pl, DEVELOPING, MANIFEST, config_h.in, test_main.c:
1098         Parrot now "knows" if it's a development version or a release
1099         version.  See the instructions in the DEVELOPING file.
1101 2002-03-05 18:05  brentdax
1103         * MANIFEST: pasm.vim wasn't in the manifest.
1105 2002-03-05 17:57  simon
1107         * Makefile.in:
1108         Now, through much evilness, make distclean and make cvsclean work
1109         again.
1111 2002-03-05 17:38  dan
1113         * memory.c, resources.c, docs/pdds/pdd09_gc.pod,
1114         include/parrot/interpreter.h, include/parrot/pmc.h,
1115         include/parrot/resources.h: PMC tracing complete
1117 2002-03-05 16:28  gregor
1119         * languages/jako/Makefile.in:
1120         Changed -I ../../ to -I ../../lib when calling the assembler, since
1121         the perl modules have moved.
1123 2002-03-05 05:30  josh
1125         * packfile.c, pdump.c, pmc.c, register.c, rxstacks.c, stacks.c,
1126         string.c: More re-indenting via run_indent.pl.
1128 2002-03-05 05:17  josh
1130         * runops_cores.c, trace.c, warnings.c: Re-indented (via
1131         run_indent.pl)
1133 2002-03-05 04:26  josh
1135         * key.c, memory.c, test_gnuc.c, testparrotfuncptr.c: Re-indented
1136         using run_indent.pl and some minor tweaking.
1138 2002-03-05 04:21  josh
1140         * chartype.c, encoding.c, exceptions.c, global_setup.c,
1141         interpreter.c: Re-indented using run_indent.pl and some minor
1142         tweaking.
1144 2002-03-05 03:30  josh
1146         * include/parrot/trace.h: These functions are no longer used (or
1147         even implemented)
1149 2002-03-04 18:21  josh
1151         * include/parrot/trace.h: Fix a typo in the argument type.
1153         Patch from <daniel.ritz@gmx.ch>
1155 2002-03-04 03:39  josh
1157         * check_source_standards.pl, jit2h.pl: Add the "autogenerated file"
1158         header to jit_struct.h so we don't try to check it for conformance.
1159          (no way will it conform)
1161 2002-03-04 03:38  josh
1163         * include/parrot/: chartype.h, interpreter.h, io.h, rx.h, trace.h,
1164         unicode.h, warnings.h: Remove some remaining tabs and split some of
1165         the remaining long lines.
1167 2002-03-04 03:17  josh
1169         * include/parrot/: chartype.h, embed.h, encoding.h, exceptions.h,
1170         global_setup.h, interpreter.h, io.h, jit.h, key.h, memory.h,
1171         misc.h, op.h, oplib.h, packfile.h, parrot.h, pmc.h, register.h,
1172         resources.h, runops_cores.h, rx.h, rxstacks.h, stacks.h, string.h,
1173         string_funcs.h, trace.h, warnings.h: This is the first batch of
1174         re-indenting.   This patch is the result of running run_indent.pl
1175         on the header files and manually tweaking the results where errors
1176         were noticed.   This should get us closed, but some refinement may
1177         follow.
1179 2002-03-04 03:06  josh
1181         * resources.c: Return without parens, as mentioned in PDD 7
1183 2002-03-04 03:01  josh
1185         * core.ops: POD fixes.
1187 2002-03-04 02:58  josh
1189         * config_h.in, ops2c.pl, classes/pmc2c.pl: More consistent headers
1190         on autogenerated files- used by the check_source_standards.pl
1191         script (for now) to exempt autogenerated files from the checks.
1193 2002-03-04 02:51  josh
1195         * embed.c, key.c, pmc.c, resources.c, rx.c, testparrotfuncptr.c,
1196         warnings.c: Added the editor "boilerplate" footer to a few files
1197         which were missing it.
1199 2002-03-04 02:34  josh
1201         * check_source_standards.pl, interpreter.c, jit.c, test_gnuc.c,
1202         include/parrot/io.h, include/parrot/parrot.h, io/io_win32.c: Fixes
1203         c preprocessor directive indentation to comply with pdd 7.
1205         (also fixes the check for this indentation in
1206         check_source_standards.pl)
1208 2002-03-04 02:32  josh
1210         * lib/Parrot/Test.pm: Fixes this error seen on perl 5.005_02 on
1211         irix.
1213         perl t/harness t/op/basic..........Use of uninitialized value at
1214         lib/Parrot/Test.pm line 81.  #     Failed test (t/op/basic.t at
1215         line 6) #          got: undef #     expected: ''
1217 2002-03-04 02:30  josh
1219         * MANIFEST, run_indent.pl, docs/pdds/pdd07_codingstd.pod,
1220         docs/pdds/pdd7.pod: Added documentation and code to invoke the GNU
1221         "indent" program to enforce some of the code style standards
1222         outlined in PDD 7.
1224         Usage: ./run_indent.pl <file>
1226 2002-03-03 19:04  simon
1228         * examples/mops/mops.c:
1229         Let's make it compile, huh?
1231 2002-03-03 19:04  simon
1233         * examples/mops/mops.cs:
1234         I R AN IDIOT
1236 2002-03-03 18:11  simon
1238         * examples/mops/mops.cs, examples/mops/mops.il, MANIFEST:
1239         Added C# and MS-IL versions of mops tester.
1241 2002-03-03 14:52  simon
1243         * core.ops:
1244         Add a sub() op to make mops_p work.
1246 2002-03-02 18:12  nicholas
1248         * examples/mops/mops.c, include/parrot/embed.h,
1249         include/parrot/interp_guts.h, include/parrot/jit.h,
1250         include/parrot/misc.h, include/parrot/packfile.h,
1251         include/parrot/rx.h, include/parrot/warnings.h,
1252         platforms/generic.c, platforms/generic.h, platforms/win32.c,
1253         platforms/win32.h, types/bignum.c, types/bignum.h: Patch from Josh
1254         Wilmes to add the emacs and vim "ending boilerplate" that sets the
1255         indent variables correctly.
1257 2002-03-02 17:41  nicholas
1259         * resources.c: Patch from Josh Wilmes <josh@hitchhiker.org>: Little
1260         patch to fix a compiler warning.
1262 2002-03-01 22:35  dan
1264         * memory.c, resources.c, include/parrot/pmc.h,
1265         include/parrot/resources.h: PMCs now come out of arenas.
1267 2002-03-01 06:15  dan
1269         * string.c:
1270         A non-existing buffer + a non-existing buffer should be a
1271         non-existing buffer, not "", which is really '\0'.
1273         Courtesy of "Bryan C. Warnock" <Bryan.Warnock@raba.com>
1275 2002-03-01 06:02  dan
1277         * classes/: array.pmc, perlarray.pmc, perlhash.pmc, perlstring.pmc:
1279         TMTOWTDI, but strcmp is probably the worse.
1281         Courtesy of "Bryan C. Warnock" <Bryan.Warnock@raba.com>
1283 2002-03-01 02:32  brentdax
1285         * embed.c: Debug mode now prints out the GC data.
1287 2002-02-28 23:44  dan
1289         * core.ops, resources.c, include/parrot/resources.h: Added collect
1290         and sweep opcodes
1292 2002-02-28 22:58  dan
1294         * docs/pdds/: pdd06_pasm.pod, pdd6.pod: Add docs for interpinfo
1295         opcode
1297 2002-02-28 22:50  dan
1299         * core.ops, interpreter.c, resources.c,
1300         examples/assembly/life.pasm, include/parrot/interpreter.h,
1301         include/parrot/resources.h: Add some stat gathering to the resource
1302         allocation code.
1304         Also add an interpreter info retrieval op, and teach it about the
1305         different things it can retrieve.
1307         Finally, add some stat info to life.pasm as an example
1309 2002-02-28 21:27  dan
1311         * editor/pasm.vim: VIM mode commands for parrot assembly files
1313         Courtesy of Scott Beck <scott@gossamer-threads.com>
1315 2002-02-28 19:20  dan
1317         * examples/assembly/life.pasm: Fix a creeping string length leak.
1319         Courtesy of  "Bryan C. Warnock" <Bryan.Warnock@raba.com>
1321 2002-02-28 18:26  dan
1323         * string.c: When you clone a constant, it ain't constant no mo'.
1325         Cocurtesy of "Bryan C. Warnock" <Bryan.Warnock@raba.com>
1327 2002-02-28 00:51  dan
1329         * MANIFEST: Add missing files
1331         Courtesy of "Bryan C. Warnock" <Bryan.Warnock@raba.com>
1333 2002-02-28 00:49  dan
1335         * docs/pdds/: pdd0.pod, pdd00_pdd.pod: The pod version of PDD 0 in
1336         CVS seems to have several chunks missing out of it, too.  This
1337         patch is simply an administrative patch, with the differences
1338         between my last version, and the one currently in there.  There
1339         will be a forthcoming patch for some minor tweaking to the PDD, but
1340         I wanted a common baseline before I make any (potential) semantic
1341         changes.
1343         There's only one semi-major change, which noone needs to worry
1344         about just yet.  That's a change from PDD Format 1 to PDD Format
1345         6.0 - rationale can be found under 'Standard (Version #)' of the
1346         STANDARDS TRACK infomation.  Don't worry about this yet, because it
1347         should be 6.0.0, and we need to discuss Perl versus Parrot with
1348         PDDs.
1350         Courtesy of "Bryan C. Warnock" <bwarnock@raba.com>
1352 2002-02-28 00:27  dan
1354         * packfile.c, resources.c, examples/assembly/life.pasm,
1355         include/parrot/register.h, include/parrot/resources.h,
1356         include/parrot/string.h: First pass of semi-full GC. (Strings only,
1357         no PMCs yet)
1359         This patch now implements a real copying collector. We trace from
1360         our root set and compact the contents of Buffer structs.
1362         Todo:
1364         *) It's very STRING-centric and doesn't handle memory stuffed in
1365         Buffers.  But, then, we don't have pool allocation for Buffers
1366         either, and we need to have that soonish for this to work.
1368         *) Doesn't trace PMCs, so if you trigger a collection and there's
1369         memory or STRING structs only accessible from PMCs, you'll fail
1370         horribly. That needs fixing too
1372         *) Better algorithms for when to trace or collect vs when to just
1373         go allocate more memory from the system. Should probably be more
1374         cache friendly too.
1376 2002-02-27 21:04  dan
1378         * jit.c, memory.c, resources.c, string.c, docs/pdds/pdd09_gc.pod,
1379         examples/assembly/life.pasm, include/parrot/resources.h,
1380         include/parrot/string.h, include/parrot/string_funcs.h,
1381         jit/i386/core.jit: Start of GC in
1383 2002-02-26 16:41  dan
1385         * jit/i386/string.jit: Fix a typo
1387         Courtesy of Jonathan Stowe <gellyfish@gellyfish.com>
1389 2002-02-26 16:37  dan
1391         * interpreter.c: Fix solaris test failures
1393         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1395 2002-02-26 16:36  dan
1397         * include/parrot/: interp_guts.h, io.h, packfile.h, rx.h,
1398         unicode.h, warnings.h: Fixes various warts in header files, such
1399         as: * macros   -added parens to prevent problems with operator
1400         precedence   -removed ; at end * removed SSIZE_MAX, since ssize_t
1401         is no longer used * added some more INLINE definitions for MSVC and
1402         C99 compilers
1404         Courtesy of Brian Lee Ray <blray@ualr.edu>
1406 2002-02-26 16:20  dan
1408         * Configure.pl: Turns out we were using a warning flag which
1409         doesn't exist on 2.7.  Simple tweak though:
1411         Courtesy of  Josh Wilmes <josh@hitchhiker.org>
1413 2002-02-25 22:58  dan
1415         * MANIFEST, docs/pdds/pdd09_gc.pod: Add docs of GC
1417 2002-02-25 17:36  dan
1419         * include/parrot/pmc.h: Fix the bits
1421 2002-02-23 21:57  dan
1423         * include/parrot/resources.h: Another 1.5% never hurts
1425 2002-02-23 21:44  dan
1427         * global_setup.c, memory.c, resources.c, string.c,
1428         include/parrot/resources.h: Allocate STRING headers from an arena
1429         with freelist rather than with the system malloc. First step in a
1430         good (or even a bad) GC system.
1432 2002-02-23 20:37  brentdax
1434         * misc.c: lint has been doing Evil and Wrong things to misc.c.
1436 2002-02-22 14:59  ajgough
1438         * types/bignum.c: BN_multiply split into BN_multiply and
1439         BN_imultiply, the internal version to be used by idivide so that
1440         rounding isn't performed during intermediate stages of division.
1442         following test scripts now all pass: divide divideint add multiply
1443         subtract remainder compare rounding plus minus (these are all the
1444         operations currently implemented, rescale and power must still be
1445         written, so don't pass right now).
1447 2002-02-22 13:13  ajgough
1449         * types/bignum_atest.pl: Test harness modified to understand
1450         comments better, and be able to run unary (and rounding) tests.
1451         Currently a few rounding tests fail, which are being investigated.
1453 2002-02-22 01:41  dan
1455         * key.c: Although there's more work being done on the key stuff and
1456         this isn't the final fix, applying this patch does get parrot to
1457         build with two more compilers, so it's probably worthwhile.
1459         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1461 2002-02-22 00:53  dan
1463         * config_h.in, misc.c, include/parrot/embed.h,
1464         include/parrot/exceptions.h, include/parrot/interpreter.h,
1465         include/parrot/io.h, include/parrot/parrot.h, include/parrot/pmc.h,
1466         include/parrot/resources.h, include/parrot/rx.h,
1467         include/parrot/string.h, include/parrot/unicode.h,
1468         include/parrot/warnings.h, io/io_stdio.c, io/io_unix.c,
1469         io/io_win32.c: Fixes the following (lcc) warnings:
1471           - interpreter.c:470: warning: expression with no effect elided
1472                (related to the way warnings flags were defined)
1474           - misc.c:352: warning: unreachable code
1475             misc.c:483: warning: unreachable code
1476                (i introduced these with some overzealous de-linting)
1478           - numerous warnings like this:
1479             io/io_unix.c:383: warning: conversion from pointer to void' to
1480         pointer to
1481             pointer to struct _ParrotIO function(pointer to struct
1482         Parrot_Interp,pointer
1483             to struct _ParrotIOLayer,pointer to const char,pointer to const
1484         char,pointer
1485             to pointer to void)' is compiler dependent
1487         Fixes the following nits:    - remove bad indenting (tabs) in the
1488         includes
1490         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1492 2002-02-21 21:12  ajgough
1494         * types/: bignum.c, bignum.h: These might look like massive
1495         changes, but really it's just he imposition of coding standards.
1496         The file still isn't entirely compliant, but is now much more so.
1498         Also changed:
1500          o a few more comments
1501          o BN_compare uses internal BN_comp to compare
1502          o lost_digits behaviour is now correct (test harness modified to
1503         test
1504            this).
1506         All binary functions now pass all the tests in the basic standard.
1507         Unary functions not yet tested, will be soon.
1509 2002-02-21 18:20  dan
1511         * lib/Parrot/OpTrans/CPrederef.pm: The "inline" bit of that patch
1512         was no longer needed, and the ssize_t thing really shouldn't be
1513         needed either.
1515         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1517 2002-02-21 18:15  dan
1519         * Configure.pl, embed.c, pdump.c, hints/mswin32.pl,
1520         include/parrot/parrot.h: this patch adds support for the freely
1521         available borland c++ 5.5.1 compiler
1523         depends on: - josh's patch to remove ssize_t from CPrederef.pm -
1524         working borland compiler (compiler must know where to find headers
1525         and libs) - Perl's Config.pm modified to use cc='bcc32.exe' not of
1526         cc='cl.exe' - a working make utility (borland make doesn't work,
1527         nmake does)
1529         changes: - add bcc in hints/mswin32.pl - clean up for msvc++ in
1530         hints/mswin32.pl - remove a space from Configure.pl (very very
1531         important for bcc) - add a O_BINARY flag to open() in pdump.c,
1532         embed.c (required by bcc) - define O_BINARY 0 when it's not defined
1533         (win32 knows it, linux not)
1535         and the why: - parrot is MUCH faster when compiled with borland c
1536         (make test on p2-450, 320MB):   * msvc++: 313 seconds   * bcc: 251
1537         seconds
1539         Courtesy of "Ritz Daniel" <daniel_ritz@gmx.ch>
1541 2002-02-21 18:09  dan
1543         * jit.c, testparrotfuncptr.c, trace.c, classes/array.pmc, io/io.c,
1544         io/io_stdio.c, io/io_unix.c, io/io_win32.c: This patch removes
1545         cuddled elses, as required by PDD 7.
1547         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1549 2002-02-21 18:04  dan
1551         * MANIFEST, Makefile.in, check_source_standards.pl: This patch adds
1552         a new Makefile target called "check_source".  This target scans all
1553         the .c and .h files in the directory and checks for conformance to
1554         a number of the standards outlined in PDD 7.
1556         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1558 2002-02-21 16:38  ajgough
1560         * types/: bignum.c, bignum.h, bignum_atest.pl: Modifications to
1561         allow arithmetic with numbers with a fixed fractional part, buffer
1562         structures now more ready to be integrated into the parrot memory
1563         allocation game, test harness modified to allow lost_digits
1564         condition to be checked.  Some more comments.
1566 2002-02-21 15:53  simon
1568         * io/io_unix.c:
1569         Fix typo
1571         Courtesy of: "David M. Lloyd" <dmlloyd@tds.net>
1573 2002-02-20 16:41  dan
1575         * MANIFEST, docs/pdds/pdd_template.pod: Added in template PDD
1577 2002-02-18 18:25  dan
1579         * MANIFEST, lib_deps.pl: Added in lib_deps.pl and MANIFEST change.
1581         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1583 2002-02-18 18:21  dan
1585         * lib/Parrot/OpTrans/CPrederef.pm: this is a quick fix for
1586         CPrederef.pm to make to generated code compile with the MS
1587         compiler.
1589         fixes: - ms compiler allows inline only for c++, for c there's
1590         __inline - ms header files knows nothing about ssize_t
1592         Courtesy of "Ritz Daniel" <daniel_ritz@gmx.ch>
1594 2002-02-18 17:49  dan
1596         * MANIFEST: Add the PDDs
1598 2002-02-18 17:47  dan
1600         * docs/pdds/: pdd07_codingstd.pod, pdd7.pod: Added in PDD 7, the
1601         coding standards PDD.
1603 2002-02-18 17:40  dan
1605         * docs/pdds/: pdd06_pasm.pod, pdd6.pod: Updated to latest rev
1607 2002-02-18 12:41  gregor
1609         * test_main.c:
1610         Remove warning about exit() not being declared.
1612 2002-02-18 08:29  simon
1614         * misc.c, warnings.c, include/parrot/misc.h,
1615         include/parrot/warnings.h:
1616         This patch adds some missing const's to silence a number of gcc
1617         warnings.
1619         Courtesy of: Josh Wilmes <josh@hitchhiker.org>
1621 2002-02-18 08:26  simon
1623         * Makefile.in, core.ops, embed.c, interpreter.c, key.c, misc.c,
1624         ops2c.pl, packfile.c, pdump.c, stacks.c, string.c,
1625         classes/array.pmc, classes/perlarray.pmc, classes/perlhash.pmc,
1626         include/parrot/parrot.h, include/parrot/rx.h,
1627         include/parrot/stacks.h, io/io_stdio.c, io/io_unix.c,
1628         lib/Parrot/OpTrans/CPrederef.pm:
1629            - add makefile target and script to test for external libc
1630         dependencies
1631            - fix return values in hash and array PMCs (returning 0 in a
1632         void func)
1633            - remove unnecessary data pointer <=> function pointer
1634         conversions
1635              outside of the JIT code.
1636            - move the definition of the "INLINE" macro out of the rx header
1637         and make
1638              available for general use on C++ compilers and gcc.
1639            - remove a few unused variables
1641         Courtesy of: Josh Wilmes <josh@hitchhiker.org>
1643 2002-02-17 16:29  simon
1645         * docs/pdds/: pdd0.pod, pdd00_pdd.pod, pdd01_overview.pod,
1646         pdd02_vtables.pod, pdd04_datatypes.pod, pdd05_opfunc.pod,
1647         pdd06_pasm.pod, pdd1.pod, pdd2.pod, pdd4.pod, pdd5.pod, pdd6.pod:
1648         We're organised and responsible. Honest.
1650 2002-02-17 02:46  sfink
1652         * Makefile.in: Remove $^ for nmake compatibility.
1654 2002-02-16 09:20  brentdax
1656         * config_h.in, test_main.c, include/parrot/chartype.h,
1657         include/parrot/embed.h, include/parrot/encoding.h,
1658         include/parrot/string.h, include/parrot/string_funcs.h: Better
1659         embedding exposure and hiding, part 1.
1661 2002-02-16 04:38  dan
1663         * Makefile.in, core.ops, interpreter.c, pbc2c.pl, pdump.c,
1664         runops_cores.c, docs/running.pod, lib/Parrot/OpTrans/C.pm,
1665         lib/Parrot/OpTrans/CGoto.pm, lib/Parrot/OpTrans/CPrederef.pm:
1666         Anyway, here's a patch to repair pbc2c.pl, combined with removing
1667         typecasts in various places throughout the code. It probably won't
1668         work for Windows yet. The libparrot.a target might need to be
1669         modified to at least prevent it from confusing make on Windows; I
1670         don't know.
1672         Preliminary instructions for using pbc2c.pl are in
1673         docs/running.pod.  I'll try to do better later.
1675         Courtesy of Steve Fink <steve@fink.com>
1677 2002-02-16 04:15  dan
1679         * exceptions.c, include/parrot/exceptions.h: Warnings cleaned up
1681         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1683 2002-02-16 00:03  simon
1685         * classes/: perlarray.pmc, perlhash.pmc:
1687         pmc is already defined!
1689 2002-02-15 23:20  brentdax
1691         * Configure.pl, config_h.in, exceptions.c, pmc.c,
1692         include/parrot/exceptions.h: Far more informative panic messages.
1694 2002-02-15 03:24  dan
1696         * lib/Parrot/: Op.pm, OpsFile.pm, OpTrans/CPrederef.pm: Here's a
1697         much more extensive patch that fixes it to work properly, and
1698         deletes a bazillion casts as well.  It also points to the question
1699         "can we make the byte_code be an opcode_t* already?"
1701         Oh, and it makes some of the formatting prettier, so it's gotta be
1702         good.
1704         Courtesy of * Steve Fink <steve@fink.com>
1706 2002-02-15 02:30  dan
1708         * Makefile.in, core.ops, embed.c, misc.c, packfile.c, rx.ops,
1709         stacks.c: I've tweaked the "lint" target somewhat and fixed a few
1710         of the things it finds.  Attaching the patch as well as the current
1711         lint output.
1713         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1715 2002-02-15 01:59  dan
1717         * t/pmc/: array.t, perlhash.t: Disable non-functional bits for the
1718         moment.
1720 2002-02-15 01:48  dan
1722         * t/pmc/perlarray.t: Skip tests for features that need twiddling
1724 2002-02-15 01:40  dan
1726         * t/op/rx.t: Skip a test that's waiting for us to rejig some array
1727         things
1729 2002-02-14 23:30  dan
1731         * resources.c: Added comment for buffer tag routine. D'oh!
1733 2002-02-14 23:28  dan
1735         * resources.c, include/parrot/resources.h: Added buffer mark
1736         routine for GC
1738 2002-02-14 23:17  dan
1740         * memory.c, classes/array.pmc, classes/perlarray.pmc,
1741         include/parrot/memory.h, include/parrot/string.h, t/pmc/perlhash.t:
1742         Rejigged memory system a bit. Now should be ready for the horror
1743         that is garbage collection.
1745 2002-02-14 19:33  gregor
1747         * ops2c.pl, include/parrot/oplib.h:
1748         Added code to automatically generate a function within an oplib to
1749         lookup opinfos given the op name. This will come in handy in future
1750         when we want to twiddle opcode tables at run time and possibly at
1751         startup time.
1753 2002-02-14 19:25  gregor
1755         * examples/assembly/queens.pasm:
1756         Regenerated queens.pasm from queens.jako since the clone_* stuff
1757         went away.
1759 2002-02-14 17:12  dan
1761         * resources.c, include/parrot/resources.h: Finished up the
1762         interface for memory and tracked interpreter thingies.
1764 2002-02-14 16:53  dan
1766         * memory.c, include/parrot/memory.h: intercept free and realloc
1768 2002-02-14 05:53  dan
1770         * interpreter.c, runops_cores.c: The type changes in struct
1771         Packfile break the pointer math used in a few places to calculate
1772         the address of the end of the loaded byte code. This causes
1773         segfaults in build_asm in jit.c when using -j. It also breaks the
1774         bounds checking on opcode address in runops_slow_core.
1776         The patch adds the necessary cast to correct the code_end
1777         calculations.
1779         Courtesy of Jason Gloudon <perl@gloudon.com>
1781 2002-02-14 01:01  ajgough
1783         * types/: bignum.c, bignum.h, bignum_test.pl: Added support for
1784         BigInt operations (I think), tests for normal operation continue to
1785         pass.  Also a shed load of comments.
1787 2002-02-13 01:34  ajgough
1789         * types/: bignum.c, bignum.h, bignum_atest.pl, bignum_test.pl: This
1790         is a (mostly) working bignumber library.  There remains much work
1791         to do though, some functions are not yet implemented and headers
1792         need to find their way to the correct place RSN.  Also support for
1793         bigints and a sensible error reporting mechanism are needed.
1795 2002-02-12 18:51  dan
1797         * misc.c: Fix some warnings
1799 2002-02-12 17:10  dan
1801         * misc.c: Run through indent -kr -nce so I can read it
1803 2002-02-12 16:49  dan
1805         * misc.c: Need standard header/footer comments
1807 2002-02-11 20:32  simon
1809         * classes/array.pmc:
1810         get and set pmc methods.
1812 2002-02-11 20:19  simon
1814         * classes/array.pmc:
1815         Maybe the keys aren't integer...
1817 2002-02-11 20:03  simon
1819         * core.ops, vtable.tbl, classes/default.pmc:
1820         {g,s}et_pmc_keyed
1822 2002-02-11 19:07  simon
1824         * vtable.tbl, classes/default.pmc:
1825         Add set_pmc. Usee with caution.
1827 2002-02-11 18:20  dan
1829         * classes/: array.pmc, perlarray.pmc: Patch array classes to
1830         compile
1832 2002-02-11 17:59  simon
1834         * core.ops, embed.c, global_setup.c, key.c, rx.ops,
1835         classes/perlarray.pmc, classes/perlhash.pmc:
1836         Make it compile.
1838 2002-02-11 17:57  simon
1840         * packfile.c, include/parrot/packfile.h:
1841         Reduce warnings
1843         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
1845 2002-02-11 17:55  dan
1847         * docs/parrot_assembly.pod: Document some key ops
1849 2002-02-11 09:20  brentdax
1851         * pmc.c, include/parrot/exceptions.h: Adding a panic ought to be
1852         disgustingly easy.
1854 2002-02-11 00:34  simon
1856         * core.ops, include/parrot/exceptions.h:
1857         This is what keyed set ops look like. Remember, however, that for
1858         keyed functions, all operands must be PMCs. set(PMC, PMC, INT)
1859         means $1 = $2[$3], not $1[$2] = $3. set(PMC,PMC,PMC) is so
1860         obviously ambiguous that you ought to use the 4-arg version
1861         instead.
1863 2002-02-10 23:12  jgoff
1865         * classes/: array.pmc, perlarray.pmc: Properly allocate
1866         SELF->data's array of PMC* data in array and perlarray.pmc.  This
1867         isn't tested yet, but should be fairly straightforward.  PerlHash
1868         needs to be finished before the system will compile again, and that
1869         should be done in the next few days.
1871 2002-02-09 04:46  jgoff
1873         * classes/: array.pmc, default.pmc, intqueue.pmc,
1874         parrotpointer.pmc, perlarray.pmc, perlhash.pmc, perlundef.pmc:
1875         Added basic _keyed member functions.  Unfortunately this still
1876         doesn't fix the problems that are causing the build to break. It's
1877         a start though. I'm not implementing the PMC add functions just
1878         yet.
1880 2002-02-08 15:59  simon
1882         * classes/array.pmc:
1883         Some more work on getting the array stuff up to date.
1885 2002-02-08 12:23  simon
1887         * classes/array.pmc, classes/perlhash.pmc, include/parrot/key.h,
1888         lib/Parrot/Vtable.pm:
1889         Got array->get_integer_keyed doing what I think it ought to. One
1890         down, all the rest to go.
1892 2002-02-08 11:47  simon
1894         * vtable.tbl:
1895         Although I didn't intend it to be quite that broken...
1897 2002-02-08 11:42  simon
1899         * vtable.tbl, include/parrot/parrot.h, lib/Parrot/Vtable.pm:
1900         Completely break Parrot, but at least we get the key stuff right
1901         for now.
1903 2002-02-08 06:25  dan
1905         * hints/darwin.pl: Silences the warning about passing in
1906         -flat_namespace to the compile.  That's a link-only flag.
1908 2002-02-08 04:52  jgoff
1910         * classes/: array.pmc, default.pmc, intqueue.pmc,
1911         parrotpointer.pmc, perlarray.pmc, perlhash.pmc, perlint.pmc,
1912         perlnum.pmc, perlstring.pmc, perlundef.pmc: Filled in missing
1913         return values in *.pmc, added some missing casts to the repeat_foo
1914         members, and deleted the _index members from the perlscalar
1915         classes.  Basic cleanup, and getting ready for _keyed functions.
1917 2002-02-07 04:49  mrjoltcola
1919         * examples/assembly/bsr.pasm: Elaborated on the bsr/ret example,
1920         added a nested subroutine call.
1922 2002-02-07 04:32  jgoff
1924         * vtable.tbl, lib/Parrot/Vtable.pm: vtable.tbl got some minor
1925         changes in order to give the whitespace rules a little workout, and
1926         do a little bit more testing. No actual structural changes were
1927         made.  lib/Parrot/Vtable.pm got an interface change, and more
1928         importantly should be ready to support the new '_keyed' attribute,
1929         which will work roughly thus: PMC* src_value gets remapped to 'PMC*
1930         src_value' followed by 'KEY* src_key'.  This will be how the new
1931         _keyed operators will function, and those should be written within
1932         a few days.
1934 2002-02-06 18:00  doughera
1936         * misc.c: Change C++-style comments to C comments (again).  Remove
1937         unused perl5 code that was in #if 0/#endif.
1939 2002-02-06 17:59  doughera
1941         * warnings.c: Add trailing newline.
1943 2002-02-06 04:14  mrjoltcola
1945         * include/parrot/io.h, io/io.c: Minor cleanup.
1947 2002-02-06 03:11  mrjoltcola
1949         * examples/assembly/io1.pasm, io/io.c, io/io_win32.c: Tied up a
1950         couple of loose end in win32 IO stuff. Open behaves now but needs
1951         more work.
1953 2002-02-05 21:02  brentdax
1955         * classes/pmc2c.pl: Length on whoami init was always 7--a problem
1956         which showed up in Purify builds.
1958 2002-02-05 17:15  simon
1960         * misc.c:
1961         Warning fixes.
1963         Courtesy of: Jonathan Stowe <gellyfish@gellyfish.com>
1965 2002-02-05 17:08  doughera
1967         * misc.c: Avoid C++-style comments.
1969 2002-02-05 17:07  doughera
1971         * lib/Parrot/Jit/sun4Generic.pm: Generated assembly programs were
1972         not valid assembler for Sun's /usr/ccs/bin/as.  Now they are,
1973         thanks to Jason Gloudon <perl@gloudon.com>.
1975 2002-02-05 14:04  simon
1977         * misc.c:
1978         Make the problem different, perhaps even better.
1980 2002-02-05 13:49  simon
1982         * misc.c:
1983         Possibly fix a `short int' is promoted to `int' when passed through
1984         `...' scary error, possibly make things absolutely worse.
1986 2002-02-05 13:15  simon
1988         * Configure.pl:
1989         Placate Tru64.
1991 2002-02-05 13:12  simon
1993         * warnings.c:
1994         Not going to get far without this one...
1996 2002-02-05 11:41  simon
1998         * string.c:
1999         Don't barf when handed null pointers.
2001 2002-02-05 10:04  simon
2003         * misc.c, include/parrot/misc.h:
2004         Fix some trivial bugs in warnings code.
2006 2002-02-05 09:27  simon
2008         * misc.c:
2009         Oops, forgot this one; also added %P support.
2011 2002-02-05 09:20  simon
2013         * MANIFEST, Makefile.in, core.ops, embed.c, interpreter.c,
2014         test_main.c, classes/perlundef.pmc, include/parrot/embed.h,
2015         include/parrot/interpreter.h, include/parrot/misc.h,
2016         include/parrot/parrot.h, include/parrot/warnings.h:
2017         Warnings support.
2019         Courtesy of: Brent Dax <brentdax@cpan.org>
2021 2002-02-05 05:41  jgoff
2023         * vtable.tbl, lib/Parrot/Vtable.pm, t/pmc/perlstring.t: Changed the
2024         format of vtable.tbl to get rid of the tab-dependence.  The format
2025         now looks roughly like this:
2027         init() # 'void' and 'unique' are assumed INTVAL type ( ) # 'unique'
2028         is assumed str void concatenate (PMC* value, PMC* dest) # Nothing
2029         assumed here, but note the C-like prototyping.  Also had to disable
2030         one test that depended upon 'concat_p_p_s', which isn't necessary
2031         anyway.
2033         Vtable.pm will change again when the type '_keyed' is added,
2034         because that requires remapping parameters slightly differently
2035         again.  Also, note that it assumes 'value' is the first parameter
2036         in the list. This assumption will go away at the same time.
2038 2002-02-04 16:57  ajgough
2040         * core.ops, t/pmc/perlstring.t, t/pmc/pmc.t: More tests for pmc
2041         functions.  Thanks to Simon Glover.
2043 2002-02-04 02:47  ajgough
2045         * hints/os2.pl: Removes a flag from the os/2 hints file that isn't
2046         needed.  I suspect that the entire hints file isn't really needed,
2047         but there's no one to actually tell us this.
2049 2002-02-02 15:45  ask
2051         * docs/ParrotFAQ.htm: fix internal links
2053 2002-02-02 04:06  jgoff
2055         * classes/: array.pmc, intqueue.pmc, perlarray.pmc, perlhash.pmc:
2056         Moving the internal KEY structure from the cache.struct_val member,
2057         where it doesn't really belong, to the internal SELF->data member.
2058         This frees up the cache/type members for other usage.
2060         This is the first step in moving PMCs to the point where we can do
2061         multidimensional PMC handles. The next step is to change the
2062         assembler to accept the syntax of 'set P0["foo"],7'.
2064 2002-02-02 00:13  nicholas
2066         * include/parrot/global_setup.h: Patch from Jonathan Stowe to
2067         prototype Parrot_Array_class_init
2069 2002-02-02 00:13  nicholas
2071         * embed.c: Casts to tidy up warnings from Jonathan Stowe Change
2072         time to sum_time to avoid warning on FreeBSD about tracking a
2073         global [No, this warning does not appear on Linux. Yes, it is real
2074         :-)]
2076 2002-02-01 23:02  nicholas
2078         * embed.c: Fix fprintf format warning in Parrot_runcode. From Simon
2079         Glover
2081 2002-02-01 20:20  nicholas
2083         * t/pmc/pmc.t: Add end at end of asm in test (from Simon Glover)
2085 2002-02-01 18:20  nicholas
2087         * lib/Parrot/Test.pm: Env.pm on 5.005_03 doesn't do a use vars for
2088         you
2090 2002-02-01 13:22  nicholas
2092         * MANIFEST: Add docs/embed.pod and t/op/ifunless.t
2094 2002-02-01 12:19  simon
2096         * core.ops, t/op/ifunless.t, t/op/integer.t:
2097         Added "unless" op.
2099 2002-02-01 12:11  simon
2101         * lib/Parrot/Test.pm:
2102         Remove a warning.
2104 2002-02-01 01:38  nicholas
2106         * MANIFEST, MANIFEST.SKIP, Makefile.in: Add a MANIFEST.SKIP file,
2107         and a manitest target to Makefile.in that lets one test the
2108         manifest.
2110 2002-02-01 00:03  dan
2112         * core.ops, global_setup.c, include/parrot/pmc.h: More setup for
2113         PMC dynaloading
2115 2002-01-31 21:46  gregor
2117         * Configure.pl, Makefile.in, hints/mswin32.pl:
2118         A few more things are now configable, so we are closer to win32
2119         shared library builds. Not there yet, but closer.
2121 2002-01-31 21:00  dan
2123         * global_setup.c, classes/pmc2c.pl, include/parrot/global_setup.h,
2124         include/parrot/pmc.h: First step in dynamically loading PMC classes
2126 2002-01-31 19:38  dan
2128         * Makefile.in: Dependencies in the Makefile are currently too broad
2129         brush.  I don't enjoy waiting for everything to recompile every
2130         time I try to tweak the jit. The only file that #includes
2131         jit_struct.h is jit.c, so I feel that the Makefile dependencies
2132         should reflect this, and not cause a gratuitous recompile of
2133         everything.  There are probably other auto-generated header files
2134         that world+dog should not depend on.
2136         Courtesy of  Nicholas Clark <nick@unfortu.net>
2138 2002-01-31 19:03  gregor
2140         * Makefile.in, lib/Parrot/Test.pm, t/harness:
2141         Added two new make targets:
2143           * testp: Like 'make test', but passes -P to t/harness, so you get
2144         to
2145             see how broken predereferencing is.
2147           * testj: Like 'make test', but passes -j to t/harness, so you get
2148         to
2149             see how broken JIT is.
2151         Now, anyone who wants to see how good all three ways of running are
2152         can do so, at the cost of about 3x the time.
2154 2002-01-31 17:09  brentdax
2156         * embed.c, test_main.c: Implement the ARGV-in-P0 thing.
2158 2002-01-31 03:41  grunblatt
2160         * docs/jit.pod: Update jit.pod
2162 2002-01-31 03:20  grunblatt
2164         * jit/i386/core.jit: Hold this until we get an assemble tool,
2165         because of the different objdump problems.
2167 2002-01-31 03:13  grunblatt
2169         * Configure.pl, lib/Parrot/Jit/sun4-solaris.pm,
2170         lib/Parrot/Jit/sun4Generic.pm: Use dis intead of objdump.  Courtesy
2171         of: Jason Gloudon <perl@gloudon.com>
2173 2002-01-31 02:22  grunblatt
2175         * jit/i386/core.jit: Continue if the register is null
2177 2002-01-30 23:50  grunblatt
2179         * lib/Parrot/Jit/: alpha-bsd.pm, alpha-linux.pm, alphaGeneric.pm,
2180         i386-bsd.pm, i386-linux.pm, i386Generic.pm, sun4-solaris.pm,
2181         sun4Generic.pm: Move the AS and OBJDUMP constants to each os
2182         specific file.
2184 2002-01-30 23:35  mrjoltcola
2186         * io/io_win32.c: Change implementation of isatty on win32,
2187         suggested by Hong Zhang.
2189 2002-01-30 23:19  sfink
2191         * jit2h.pl, lib/Parrot/Op.pm, lib/Parrot/OpsFile.pm: Added
2192         Op::may_jump boolean method.
2194         Replaced jit2h's hardcoded pattern match to decide what ops might
2195         change the control flow.
2197 2002-01-30 22:13  dan
2199         * Configure.pl, MANIFEST, testparrotfuncptr.c: This patch allows
2200         parrot to mostly-build with tcc.  It allows one to skip compiling
2201         the JIT stuff (by specifying --define jitcapable=0), and it
2202         introduces a test program which gives a friendlier error in this
2203         case for compilers which are as picky as tcc is about function
2204         pointer conversion.
2206         If anyone figures out the proper way to cast these function
2207         pointers this may not be necessary.
2209         Courtesy of Josh Wilmes <josh@hitchhiker.org>
2211 2002-01-30 20:54  dan
2213         * docs/running.pod, lib/Parrot/Test.pm: I'm being anal again.
2214         Here's an update to docs/running.pod to better reflect the current
2215         state (both the test_parrot and assemble.pl improvements, plus
2216         documentation of a few more things.) And also a speling fiks
2217         s/POST_MORTERM/POST_MORTEM/.
2219         I could also replace some "perl foo" calls with "./foo" if someone
2220         wanted to set the executable flag in CVS on assemble.pl,
2221         optimize.pl, etc.
2223         Courtesy of Steve Fink <steve@fink.com>
2225 2002-01-30 20:43  dan
2227         * core.ops: find_global doesn't work, so stub out the wrong code
2229 2002-01-30 19:08  dan
2231         * lib/Parrot/Assembler.pm:  fixes the POD in Parrot::Assember so
2232         that perldoc
2233          can read it and just tidies it up generally. It also adds
2234         documentation
2235          for the constantize_integer and constantize_number functions.
2237         Courtesy of Simon Glover <scog@roe.ac.uk>
2239 2002-01-30 18:02  dan
2241         * assemble.pl, disassemble.pl, optimizer.pl, pbc2c.pl,
2242         classes/genclass.pl, classes/pmc2c.pl,
2243         languages/scheme/Scheme/Test.pm:  Many of the Perl scripts in the
2244         distribution (including assemble.pl !)
2245          can no longer find the Parrot::* modules. Enclosed patch fixes
2246         (although
2247          it would be nice if there were an easier way to do this).
2249         Courtesy of  Simon Glover <scog@roe.ac.uk>
2251 2002-01-30 16:00  mrjoltcola
2253         * io/io_win32.c: Correct function calls for win32_fdopen and arg
2254         types.
2256 2002-01-30 15:50  mrjoltcola
2258         * io/io_unix.c: Minor bug fix for fdopen flag arg type.
2260 2002-01-30 15:42  grunblatt
2262         * pbc2c.pl, examples/assembly/Makefile: Updates related to moving
2263         files around
2265 2002-01-30 15:38  grunblatt
2267         * MANIFEST: Enclosed patch adds the new SPARC-based JIT files to
2268         the manifest,  and also puts it back into alphabetical order.
2270         Courtesy of: Simon Glover <scog@roe.ac.uk>
2272 2002-01-30 14:41  nicholas
2274         * embed.c: Patch from Simon Glover to clean up warnings where
2275         prototype is () not (void)
2277 2002-01-30 13:54  nicholas
2279         * include/parrot/embed.h, test_main.c: Add void as an explicit
2280         parameter in test_main.c's usage(), version(void) and embed.h's
2281         Parrot_new() Without these gcc moans: include/parrot/embed.h:34:
2282         warning: function declaration isn't a prototype
2284 2002-01-30 12:08  simon
2286         * lib/Parrot/.cvsignore:
2287         Ignore generated Perl modules.
2289 2002-01-30 12:07  simon
2291         * t/harness:
2292         Run the PMC tests as well.
2294 2002-01-30 12:04  simon
2296         * MANIFEST:
2297         Fix MANIFEST after recent t/pmc rejig.
2299 2002-01-30 11:42  simon
2301         * lib/Parrot/Test.pm:
2302         Report non-zero exit codes.
2304         Courtesy of: Michael G Schwern <schwern@pobox.com>
2306 2002-01-30 11:39  simon
2308         * t/op/rx.t:
2309         Skip final test, TODO doesn't work yet.
2311 2002-01-30 09:54  brentdax
2313         * docs/embed.pod: Leon Brocard was kind enough to explain to me how
2314         predereferencing works.
2316 2002-01-30 09:38  brentdax
2318         * docs/: embed.pod, parrot.pod: Document this newfangled embedding
2319         subsystem.
2321 2002-01-30 09:37  brentdax
2323         * include/parrot/embed.h: Fix a mistake, clear up a warning.
2325 2002-01-30 09:37  brentdax
2327         * config_h.in: Expose another flag for embedders.
2329 2002-01-30 05:07  jgoff
2331         * make_vtable_ops.pl, t/harness: Both files didn't know of the new
2332         location for Parrot/, and t/harness wasn't able to run the new
2333         op/pmc tests. Both problems fixed, so I think I'm going to declare
2334         the build suitable for public consumption.
2336 2002-01-30 04:34  robert
2338         * docs/Makefile.in: update for CVS movement
2340 2002-01-30 04:32  robert
2342         * Makefile.in: Adjust for CVS reorganization.  (This time, edit the
2343         .in file, not the real Makefile)
2345 2002-01-30 04:20  robert
2347         * Configure.pl, jit2h.pl, ops2c.pl, ops2pm.pl, pmc_pm.pl,
2348         vtable_h.pl, classes/pmc2c.pl, include/parrot/parrot.h: Updates
2349         related to moving files around
2351 2002-01-30 04:10  robert
2353         * MANIFEST: Update MANIFEST to reflect CVS reorg.
2355 2002-01-30 04:07  robert
2357         * Configure.pl: Add './lib' to our @INC because Parrot/* moved.
2359 2002-01-30 03:56  robert
2361         * Parrot/: .cvsignore, Assembler.pm, BuildUtil.pm, Op.pm,
2362         OpTrans.pm, OpsFile.pm, Optimizer.pm, PackFile.pm, String.pm,
2363         Test.pm, Vtable.pm, Jit/alpha-bsd.pm, Jit/alpha-linux.pm,
2364         Jit/alphaGeneric.pm, Jit/i386-bsd.pm, Jit/i386-linux.pm,
2365         Jit/i386-nojit.pm, Jit/i386Generic.pm, Jit/sun4-solaris.pm,
2366         Jit/sun4Generic.pm, OpLib/.cvsignore, OpTrans/C.pm,
2367         OpTrans/CGoto.pm, OpTrans/CPrederef.pm, PackFile/ConstTable.pm,
2368         PackFile/Constant.pm, PackFile/FixupTable.pm: Moved Parrot/* to
2369         lib/Parrot/
2371 2002-01-30 03:46  robert
2373         * languages/miniperl/miniperlc: renamed to mpc
2375 2002-01-30 03:45  robert
2377         * t/op/: pmc.t, pmc_array.t, pmc_perlarray.t, pmc_perlhash.t,
2378         pmc_perlstring.t: Moved to t/op/pmc/
2380 2002-01-30 03:40  robert
2382         * include/parrot/register_funcs.h: Renamed to regfuncs.h
2384 2002-01-30 03:14  jgoff
2386         * classes/perlarray.pmc, t/op/pmc_perlarray.t, t/pmc/perlarray.t:
2387         Fixed some problems with PerlArray and added tests.  Previously,
2388         only integers could be accessed by negative indices.  After this
2389         change, all basic types can be accessed by negative indices, and
2390         they can also be set at negative indices.
2392 2002-01-29 22:13  brentdax
2394         * TODO: Just look at the stupid diff.
2396 2002-01-29 21:53  simon
2398         * TODO, docs/vtables.pod:
2399         New TODO, and tiny addition to vtables.pod
2401 2002-01-29 21:47  mrjoltcola
2403         * include/parrot/io.h, io/io_unix.c: Minor bug fix in io_unix.
2405 2002-01-29 21:38  mrjoltcola
2407         * Makefile.in: Makefile.in tweak for io depend.
2409 2002-01-29 21:15  brentdax
2411         * embed.c: Fix a segfault and some profiling formatting nits.
2413 2002-01-29 20:54  brentdax
2415         * pmc.c: Oops.
2417 2002-01-29 20:50  brentdax
2419         * pmc.c, include/parrot/exceptions.h: Exceptions are better than
2420         segfaults.
2422 2002-01-29 20:17  mrjoltcola
2424         * interpreter.c, core.ops, io.ops: CVS missed this.
2426 2002-01-29 20:17  mrjoltcola
2428         * io/io.c: These should have gone in Sunday with the rest. CVS is
2429         out to get me.
2431 2002-01-29 18:39  brentdax
2433         * platforms/win32.h: Fix Win32 whoops.
2435 2002-01-29 18:29  brentdax
2437         * embed.c, include/parrot/embed.h: A couple minor embedding fixes.
2439 2002-01-29 17:51  simon
2441         * MANIFEST, Makefile.in, config_h.in, embed.c, test_main.c,
2442         include/parrot/embed.h, include/parrot/parrot.h:
2443         Embedding support. Cool.
2445         Courtesy of: <brentdax@cpan.org>
2447 2002-01-29 15:40  grunblatt
2449         * Configure.pl: Detect if we can use "objdump".  Courtesy of: Jason
2450         Gloudon <perl@gloudon.com>
2452 2002-01-29 14:42  simon
2454         * include/parrot/parrot.h:
2455         Platform stuff has to be included *after* system headers.
2457 2002-01-29 14:05  grunblatt
2459         * interpreter.c, jit.c, Parrot/Jit/sun4-solaris.pm,
2460         Parrot/Jit/sun4Generic.pm, lib/Parrot/Jit/sun4-solaris.pm,
2461         lib/Parrot/Jit/sun4Generic.pm, include/parrot/jit.h,
2462         jit/sun4/core.jit, jit/sun4/lib.jit, jit/sun4/string.jit: Added
2463         support for SPARC.  Courtesy of: Jason Gloudon <perl@gloudon.com>
2465 2002-01-29 10:56  simon
2467         * platforms/generic.h:
2468         If we don't have a S_ISREG, produce something close to it.
2470 2002-01-29 06:01  dan
2472         * MANIFEST, README, LICENSES/Artistic: Finally added licenses
2474 2002-01-29 04:38  jgoff
2476         * classes/array.pmc: Forgot to remove some C++-isms from the
2477         get_{foo}_index routines.
2479 2002-01-29 04:26  jgoff
2481         * MANIFEST, Makefile.in, global_setup.c, classes/Makefile.in,
2482         classes/array.pmc, include/parrot/pmc.h, t/op/pmc_array.t,
2483         t/pmc/array.t: Added array class that languages other than perl can
2484         use for a basis.  It has no features like preextension, and the
2485         array index starts at 0.
2487         MANIFEST - added classes/array.pmc and t/op/pmc_array.t Makefile.in
2488         and classes/Makefile.in - Added array.pmc to the makefile.
2489         (Assuming rules like .pmc.o are portable (or even possible) I might
2490         alter classes/Makefile.in to autobuild the appropriate files.
2492 2002-01-29 02:32  dan
2494         * MANIFEST, Parrot/Test.pm, lib/Parrot/Test.pm,
2495         lib/Test/Builder.pm, lib/Test/More.pm, lib/Test/Simple.pm,
2496         lib/Test/Utils.pm, t/op/interp.t, t/op/macro.t, t/op/pmc.t,
2497         t/op/rx.t, t/op/stacks.t, t/pmc/pmc.t:
2498             Update to Test::More 0.41 which adds Test::Builder
2500             Delete the vestigal Test::Utils
2502             Change Parrot::Test so it uses Test::Builder instead of Evil
2503         Wrappers
2504             around Test::More
2506             output_* now returns whether the test passes or fails
2508             Parrot::Test no longer exports Test::More's functions.  Instead
2509         they
2510             can simply be used together.  The few tests which used
2511         Test::More
2512             features (ie. skip) have 'use Test::More' added.
2514             I ditched the export_to_level() crutch.  Do we expect parrot to
2515         work on
2516             5.004?  (literally 5.004, not 5.004_04)
2518         Courtesy of Michael G Schwern <schwern@pobox.com>
2520 2002-01-28 21:04  dan
2522         * docs/overview.pod:  There is no opcodes.pod; I'm assuming the
2523         pointer should actually be to
2524          parrot_assembly.pod, as the canonical documentation.
2526         Courtesy of Simon Glover <scog@roe.ac.uk>
2528 2002-01-28 20:21  dan
2530         * languages/jako/jakoc, t/op/stacks.t: Toss the last traces of
2531         clone[inps]
2533 2002-01-28 19:18  dan
2535         * core.ops, register.c: clone[insp] is dead
2537 2002-01-28 17:46  grunblatt
2539         * Parrot/Jit/i386Generic.pm, lib/Parrot/Jit/i386Generic.pm,
2540         jit/i386/core.jit: Fix to make the jit work in linux yet again.
2542 2002-01-28 16:45  dan
2544         * MANIFEST, README.OS_X: Added Mac OS X specific readme documenting
2545         the requirement for fink at the moment.
2547 2002-01-28 15:59  simon
2549         * test_main.c:
2550         People might try and run a directory file, with spectacular
2551         results.  We don't want that. No.
2553 2002-01-28 14:58  doughera
2555         * core.ops: Avoid C++-style comments.
2557 2002-01-28 14:16  grunblatt
2559         * jit.c, io/io.c: Changed jit.c to fit the way registers are
2560         accessed.  Readded the pio_(stdin|stdout|stderr) to make builds
2561         work again.
2563 2002-01-28 13:47  doughera
2565         * include/parrot/register.h: Avoid C++-style comment.
2567 2002-01-28 06:03  dan
2569         * MANIFEST, core.ops, interpreter.c, key.c, register.c, trace.c,
2570         Parrot/OpTrans/C.pm, Parrot/OpTrans/CGoto.pm,
2571         lib/Parrot/OpTrans/C.pm, lib/Parrot/OpTrans/CGoto.pm,
2572         docs/parrot_assembly.pod, include/parrot/interpreter.h,
2573         include/parrot/parrot.h, include/parrot/regfuncs.h,
2574         include/parrot/register.h, include/parrot/register_funcs.h,
2575         include/parrot/string.h, include/parrot/string_funcs.h: Registers
2576         are now stored in the interpreter structure itself, rather than
2577         just a pointer to the top of the register structure. Pushes and
2578         pops now involve memcpys, but register access has one fewer
2579         dereference.
2581         Fails four of the register stack tests, though, so not perfect.
2582         Needs fixing, but this is a good place to start.
2584 2002-01-28 04:40  mrjoltcola
2586         * test_main.c: cvs commit missed this. ??
2588 2002-01-28 04:27  mrjoltcola
2590         * examples/assembly/io1.pasm, include/parrot/exceptions.h,
2591         include/parrot/interpreter.h, include/parrot/io.h, io/io.c,
2592         io/io_stdio.c, io/io_unix.c, io/io_win32.c: ParrotIO local to each
2593         interpreter now (at least in theory).  IO handle array added.  Misc
2594         bug fixes in layer handling.  Changed any IO_ constants to PIO_ so
2595         we don't conflict         with system libraries.  Still have broken
2596         stuff in win32 and stdio layer.
2598 2002-01-28 04:01  mrjoltcola
2600         * include/parrot/chartype.h: Typo in chartype.h include guard.
2602 2002-01-28 03:41  mrjoltcola
2604         * t/op/interp.t: Fix flag for interp so we don't get "info"
2605         messages which break tests.
2607 2002-01-28 01:54  dan
2609         * include/parrot/string.h: A few more buffer/string flags
2611 2002-01-27 11:33  nicholas
2613         * chartypes/unicode.c: Cast unsigned argument to int in call to
2614         isdigit to silence gcc warning.
2616 2002-01-26 23:18  grunblatt
2618         * Parrot/Jit/i386Generic.pm, lib/Parrot/Jit/i386Generic.pm: Turn
2619         off that flag.
2621 2002-01-26 23:17  grunblatt
2623         * Parrot/Jit/i386Generic.pm, lib/Parrot/Jit/i386Generic.pm,
2624         jit/i386/core.jit: [no log message]
2626 2002-01-26 22:18  simon
2628         * jit/i386/core.jit:
2629         Jumping to 0x0 is a recipe for segfaults.
2631 2002-01-26 18:35  simon
2633         * t/harness:
2634         Allow user to select which tests to harness
2636         Courtesy of: Nicholas Clark <nick@unfortu.net>
2638 2002-01-26 17:20  grunblatt
2640         * Parrot/Jit/i386-linux.pm, Parrot/Jit/i386Generic.pm,
2641         lib/Parrot/Jit/i386-linux.pm, lib/Parrot/Jit/i386Generic.pm: Patch
2642         to make the jit work in linux again.
2644 2002-01-26 16:52  dan
2646         * Configure.pl, hints/darwin.pl: Add -Wno-shadow, as Darwin's
2647         headers can't cope with this. Darwin-only
2649 2002-01-26 16:04  dan
2651         * include/parrot/parrot.h: Quick note to remind folks that this
2652         isn't the file they're looking for if they're writing extensions or
2653         embedding parrot.
2655         Courtesy of Andy Dougherty <doughera@lafayette.edu>
2657 2002-01-26 00:41  mrjoltcola
2659         * MANIFEST: Oopsy.
2661 2002-01-26 00:37  mrjoltcola
2663         * docs/ParrotFAQ.htm: Parrot FAQ : Created and maintained by Adam
2664         Turoff
2666 2002-01-25 01:31  grunblatt
2668         * jit/alpha/core.jit: There is no neg or fneg.
2670 2002-01-25 01:27  grunblatt
2672         * core.ops, Parrot/Jit/alphaGeneric.pm, Parrot/Jit/i386Generic.pm,
2673         lib/Parrot/Jit/alphaGeneric.pm, lib/Parrot/Jit/i386Generic.pm,
2674         jit/alpha/core.jit, jit/i386/core.jit, t/op/integer.t,
2675         t/op/number.t: Added Parrot_neg.  Erase t.s
2677 2002-01-24 23:26  dan
2679         * interpreter.c: Best make sure unused elements are NULL
2681 2002-01-24 23:24  dan
2683         * interpreter.c: Fix stupid thinko
2685 2002-01-24 18:37  doughera
2687         * Makefile.in: Add a few missing dollar signs in the lifetest
2688         section so that ${exe} and the like get properly interpolated.
2690 2002-01-24 18:15  mrjoltcola
2692         * docs/: .cvsignore, Makefile.in, parrot.pod: Fix pod generation
2693         for io.ops file. Add reference to it in parrot.pod.  Courtesy of
2694         Simon Glover <scog@roe.ac.uk>
2696 2002-01-24 06:43  mrjoltcola
2698         * io/io_stdio.c: Oops.
2700 2002-01-24 06:34  mrjoltcola
2702         * include/parrot/io.h, io/TODO, io/io.c, io/io_stdio.c: Did a bit
2703         of work on the buffering layer.  Decided to use shared read/write
2704         buffer (as do most implementations) for now since its the simplest
2705         way to keep everything synced, (flush on seeks, flush read on
2706         writes, etc.)
2708 2002-01-24 03:38  mrjoltcola
2710         * test_main.c: Cleaned up option handling code a bit for main().
2712 2002-01-23 23:22  dan
2714         * interpreter.c, include/parrot/interpreter.h,
2715         include/parrot/resources.h: Now each interpreter gets its own hash
2716         for globals.
2718 2002-01-23 20:45  dan
2720         * Configure.pl: Fix a warning when there's no - in an architecture
2722 2002-01-22 23:57  grunblatt
2724         * docs/running.pod: [no log message]
2726 2002-01-22 20:29  doughera
2728         * KNOWN_ISSUES: long doubles don't work on SPARC either.  It
2729         appears to be a generic problem (if sizeof(long double) >
2730         sizeof(double)), not an x86-specific one.
2732 2002-01-22 16:57  doughera
2734         * runops_cores.c: Change variable name from time to starttime to
2735         avoid gcc warning about variable name shadowing.
2737 2002-01-22 16:55  doughera
2739         * classes/pmc2c.pl: Include class_init prototype too.
2741 2002-01-22 16:01  doughera
2743         * MANIFEST: [no log message]
2745 2002-01-22 01:04  ajgough
2747         * global_setup.c, classes/default.pmc, classes/intqueue.pmc,
2748         classes/parrotpointer.pmc, classes/perlarray.pmc,
2749         classes/perlhash.pmc, classes/perlint.pmc, classes/perlnum.pmc,
2750         classes/perlstring.pmc, classes/perlundef.pmc, classes/pmc2c.pl,
2751         include/parrot/global_setup.h: Patch from Nick Clark to quieten
2752         warnings from pmc files.  Message-ID:
2753         <20020121224719.GE1726@Bagpuss.unfortu.net>
2755 2002-01-22 00:53  ajgough
2757         * test_main.c: Clears up a couple of warnings in test_main.c.
2758         Thanks to Nick Clark.  Message-ID:
2759         <20020121190457.GB1726@Bagpuss.unfortu.net>
2761 2002-01-22 00:47  ajgough
2763         * string.c, chartypes/unicode.c, chartypes/usascii.c,
2764         include/parrot/chartype.h: Cause all codepoints to be treated as
2765         UNITVALS, and get_digit to return INTVAL, just in case. (Thanks to
2766         Nick Clark, see also: Message-ID:
2767         <20020121214137.GC2371@Bagpuss.unfortu.net> )
2769 2002-01-22 00:24  dan
2771         * key.c: We do mandate an ANSI conformant C compiler, don't we?
2773         Appended patch cures these warnings:
2775         key.c: In function `debug_key': key.c:29: warning: int format,
2776         INTVAL arg (arg 3) key.c:33: warning: int format, INTVAL arg (arg
2777         3) key.c:33: warning: int format, INTVAL arg (arg 4) key.c:36:
2778         warning: int format, INTVAL arg (arg 3) key.c:36: warning: int
2779         format, INTVAL arg (arg 4)
2781         Courtesy of Nicholas Clark <nick@unfortu.net>
2783 2002-01-21 12:41  mrjoltcola
2785         * MANIFEST, io.ops: For some reason cvs commit didn't get this, may
2786         be clock skew.
2788 2002-01-21 06:37  mrjoltcola
2790         * io/io.c: Cleanup a warning
2792 2002-01-21 06:28  mrjoltcola
2794         * examples/assembly/io1.pasm, include/parrot/io.h, io/io.c,
2795         io/io_stdio.c, io/io_unix.c, io/io_win32.c: Added 32/64 bit seek
2796         ops. Various other IO twiddlings.
2798 2002-01-21 03:25  grunblatt
2800         * Makefile.in: Use $jitcpuarch instead of $cpuarch.  Thanks to
2801         Melvin Smith for the catch up.
2803 2002-01-20 23:13  sfink
2805         * stacks.c: Fixed logic errors, need tests
2807 2002-01-20 22:17  brentdax
2809         * rx.c, rx.ops, include/parrot/rx.h, t/op/rx.t: Make /m work and
2810         prepare for /i to work.
2812 2002-01-20 20:52  grunblatt
2814         * Configure.pl, MANIFEST, Makefile.in, interpreter.c, jit.c,
2815         jit2h.pl, Parrot/Jit/alpha-bsd.pm, Parrot/Jit/alpha-linux.pm,
2816         Parrot/Jit/alphaGeneric.pm, Parrot/Jit/i386-bsd.pm,
2817         Parrot/Jit/i386-linux.pm, lib/Parrot/Jit/alpha-bsd.pm,
2818         lib/Parrot/Jit/alpha-linux.pm, lib/Parrot/Jit/alphaGeneric.pm,
2819         lib/Parrot/Jit/i386-bsd.pm, lib/Parrot/Jit/i386-linux.pm,
2820         Parrot/Jit/i386Generic.pm, lib/Parrot/Jit/i386Generic.pm,
2821         include/parrot/jit.h, jit/alpha/core.jit, jit/alpha/lib.jit,
2822         jit/alpha/string.jit:
2823         - Added support for ALPHA, by now linux and bsd.
2825         - Reduced jit2h.pl execution time by precompiling the call to the
2826         unimplemented op.
2828         - Reduced the duplicated code in Parrot/Jit/*.pm by adding
2829         Parrot/Jit/${cpuarch}Generic.pm
2831         - Changed the way to detect quads to what is written in "man
2832         perlfunc".
2834 2002-01-20 17:23  brentdax
2836         * rx.ops: There's no such thing as rx_allocateinfo.
2838 2002-01-19 08:26  brentdax
2840         * pbc2c.pl: Stop this stupid "hard-code the new oplib" stuff.
2842 2002-01-19 07:12  mrjoltcola
2844         * MANIFEST, core.ops, io.ops, pbc2c.pl: Separate pure ParrotIO ops
2845         into io.ops, leave the STDIO wrappers        in core.ops until they
2846         disappear.  Added debug op for switching on VM debug flag
2848 2002-01-19 01:55  mrjoltcola
2850         * include/parrot/io.h, io/TODO, io/io.c, io/io_stdio.c,
2851         io/io_unix.c, io/io_win32.c: Added a few more Win32 layer calls
2853 2002-01-19 00:55  brentdax
2855         * Makefile.in, rx.c, rx.ops, rxstacks.c, include/parrot/rx.h,
2856         include/parrot/rxstacks.h: Add regex-specific stacks for
2857         efficiency.
2859 2002-01-18 23:58  dan
2861         * Configure.pl: I think the optimal fix here is simply to remove
2862         -ansi -pedantic.  -ansi may well have some uses, but even the gcc
2863         man pages say "There is no reason to use this option [-pedantic];
2864         it exists only to satisfy pedants."
2866         Courtesy of Andy Dougherty <doughera@lafayette.edu>
2868 2002-01-18 23:23  dan
2870         * MANIFEST, docs/parrot.pod, docs/running.pod: This patch add
2871         docs/running.pod, which lists the various executables Parrot
2872         currently includes, examples of running them, and mentions of where
2873         they fail to work. It's more of a cry for help than a useful
2874         reference. :-) I've been having trouble recently when making
2875         changes in figuring out whether I broke anything, because any
2876         non-default way of running the system seems to be already broken. I
2877         can't tell what brokenness is expected and what isn't.
2879         Courtesy of  Steve Fink <steve@fink.com>
2881 2002-01-15 22:13  brentdax
2883         * include/parrot/rx.h, rx.c, rx.ops: Remove the last vestiges of
2884         substring use and enhance performance.
2886 2002-01-15 21:03  ajgough
2888         * string.c: Fix problem with string_transcode, &dest not being
2889         updated if src was already in desired encoding.
2891 2002-01-15 16:54  brentdax
2893         * rx.c, rx.ops, include/parrot/rx.h: Hunt down and destroy
2894         warnings.  Leaves only one warning, at rx.ops line 409, that I
2895         can't manage to get rid of.
2897 2002-01-15 16:50  dan
2899         * pbc2c.pl: Pointer arithmetic not quite right in the generated
2900         code.  Also patches pbc2c.pl to work with rx.ops.
2902         Courtesy of Jason Gloudon <perl@gloudon.com>
2904 2002-01-15 16:15  dan
2906         * classes/Makefile.in: All the C files in classes/ weren't being
2907         compiled with an of the gcc warnings flags. With this patch they
2908         are, and there are an awful lot of warnings, more than I could hope
2909         to understand and clear up (within any sensible time period before
2910         submitting a rash of patches, by which time everyone else would
2911         have moved the code on)
2913         Courtesy of Nicholas Clark <nick@unfortu.net>
2915 2002-01-15 16:10  dan
2917         * core.ops, ops2c.pl, Parrot/Op.pm, Parrot/OpTrans.pm,
2918         Parrot/OpsFile.pm, lib/Parrot/Op.pm, lib/Parrot/OpTrans.pm,
2919         lib/Parrot/OpsFile.pm, Parrot/OpTrans/C.pm,
2920         Parrot/OpTrans/CGoto.pm, Parrot/OpTrans/CPrederef.pm,
2921         lib/Parrot/OpTrans/C.pm, lib/Parrot/OpTrans/CGoto.pm,
2922         lib/Parrot/OpTrans/CPrederef.pm, chartypes/unicode.c,
2923         chartypes/usascii.c: This patch adds a few more macros for .ops
2924         files to use. In addition to the existing
2926          goto OFFSET(...)
2927          goto ADDRESS(...)
2928          goto POP()
2929          goto NEXT()
2931         it adds
2933          expr OFFSET(...)
2934          expr ADDRESS(...)
2935          expr POP()
2936          expr NEXT()
2938         This is intended mainly for use in helper functions in .ops files,
2939         but also for ops that need to eg push the address of the next
2940         opcode onto a stack. The only place this currently happens (outside
2941         of my private code) is in the bsr opcode, which previously
2942         hardcoded the computation.
2944         This patch also makes ops2c.pl move the CUR_OPCODE #define a bit
2945         higher in the generated file so that it can be used by static
2946         functions in the preamble.
2948         Finally, I ran into a parentheses matching problem -- should goto
2949         OFFSET(...) rewrite    \bgoto\s+OFFSET\((.*)\) or
2950         \bgoto\s+OFFSET\((.*?)\)
2952         It was done inconsistently for the different calculations, and of
2953         course neither are correct because you really want matching
2954         parentheses. But that seems like too much bother. (Currently,
2955         there's only one place that uses anything other than $n in the
2956         parentheses, and that's the enternative() op.) So I made them all
2957         .*? but emulated recent POD by also allowing (( ... )) (that's two
2958         parenthesis with a space padding the body.)
2960         The generated core_ops.c and core_ops_prederef.c files after this
2961         patch are identical except for the CUR_OPCODE and REL_PC macros
2962         getting moved a little higher, and the bsr in the regular path (not
2963         prederef) uses 'CUR_OPCODE' instead of the hardcoded 'cur_opcode'.
2965         In summary, this is a big wad of meaningless changes for the
2966         current code. But it will make adding some opcodes easier in the
2967         future, and cleans up a small nit in the current bsr.
2969         Courtesy of Steve Fink <steve@fink.com>
2971 2002-01-15 08:48  brentdax
2973         * include/parrot/rx.h: Bitmaps can now include chars >255 (well,
2974         sort of).
2976 2002-01-15 08:45  brentdax
2978         * rx.c, rx.ops: Bitmaps can now include chars >255 (well, sort of).
2980 2002-01-15 05:00  brentdax
2982         * rx.ops: Speed up rx_literal--roughly doubles benchmark
2983         performance.
2985 2002-01-14 20:18  dan
2987         * vtable.tbl, vtable_h.pl: Clean up a zillion warnings
2989         Courtesy of Nicholas Clark <nick@unfortu.net>
2991 2002-01-14 20:03  dan
2993         * Configure.pl, MANIFEST, Makefile.in, core.ops, exceptions.c,
2994         global_setup.c, interpreter.c, key.c, ops2c.pl, register.c,
2995         runops_cores.c, rx.ops, stacks.c, string.c, test_main.c, trace.c,
2996         chartypes/unicode.c, chartypes/usascii.c, classes/default.pmc,
2997         classes/parrotpointer.pmc, classes/perlarray.pmc,
2998         classes/perlhash.pmc, classes/perlint.pmc, classes/perlnum.pmc,
2999         classes/perlstring.pmc, classes/perlundef.pmc,
3000         encodings/singlebyte.c, encodings/utf16.c, encodings/utf32.c,
3001         encodings/utf8.c, include/parrot/exceptions.h, include/parrot/io.h,
3002         include/parrot/parrot.h, include/parrot/rx.h, io/io_stdio.c,
3003         io/io_win32.c, platforms/win32.c, platforms/win32.h, t/op/pmc.t,
3004         t/op/pmc_perlhash.t, t/op/rx.t, t/pmc/perlhash.t, t/pmc/pmc.t: This
3005         patch cleans up most of the MSVC-warnings when using warning level
3006         4 (the highest, one above the default level 3). It turns off two
3007         level-4 warnings for 'unreferenced formal parameter' and 'named
3008         type definition in parentheses', the latter of which was turning up
3009         warnings in MS VC headers.  Level 4 warnings also helped me find a
3010         couple of other lurking bugs in the parrot code.
3012         Replaces the various fprintf/exit combos with calls to
3013         internal_exception, which uses var_args to emulate printf. Various
3014         exception types were added as well. These are probably temporary
3015         until a real exception system arrives.
3017         Fixed some places in the IO code where wrong functions were being
3018         called, or put into the vtable.
3020         Courtesy of "Michel Lambert" <mlambert@legendent.com>
3022 2002-01-14 19:00  dan
3024         * MANIFEST: D'oh! Forgot a file.
3026         Courtesy of Andy Dougherty <doughera@lafayette.edu>
3028 2002-01-14 18:44  brentdax
3030         * rx.c, rx.ops, include/parrot/rx.h: Use bitmaps where it makes
3031         sense (and a few other enhancements to regexes).
3033 2002-01-14 07:07  brentdax
3035         * interpreter.c, runops_cores.c, test_main.c,
3036         include/parrot/interpreter.h: Make profiling a little more useful.
3038 2002-01-13 19:44  dan
3040         * Configure.pl: Turn off unsed things warnings for now
3042 2002-01-13 19:39  dan
3044         * key.c, classes/perlarray.pmc: key.c:   intialize KEY.keys
3046         classes/perlarray.c:  * get_string: is casting
3047         SELF->cache.struct_val to a STRING*,    while all other methods are
3048         using it as a KEY*; don't know    what a perlarray stringifies to,
3049         so replacing with NULL  * get_bool: the default behaviour does not
3050         look right to me
3052         Courtesy of "Mattia Barbon" <mbarbon@dsi.unive.it>
3054 2002-01-13 19:37  dan
3056         * Makefile.in, classes/Makefile.in: Makefile.in:   (Re)add ld_debug
3057         flags to LDFLAGS, so that Configure.pl --debugging   works with
3058         MSVC
3060         classes/Makefile.in   make easier to add pmb2c.pl flags to all
3061         pmc2c calls
3063         Courtesy of "Mattia Barbon" <mbarbon@dsi.unive.it>
3065 2002-01-13 19:36  dan
3067         * io/io_win32.c:   according to my MSVC docs, you should use
3068         _tcslen only after
3069           #including tchar.h
3071         Courtesy of  "Mattia Barbon" <mbarbon@dsi.unive.it>
3073 2002-01-13 19:35  dan
3075         * docs/intro.pod: Doc tweak.
3077         Courtesy of Simon Glover <scog@roe.ac.uk>
3079 2002-01-13 19:34  dan
3081         * t/: op/pmc_perlstring.t, pmc/perlstring.t:  Enclosed test checks
3082         that
3084           if Px, ...
3086          works with PerlString PMCs; these should be false if they are "",
3087         0, or
3088          are undefined, and true in every other case.
3090         Courtesy of Simon Glover <scog@roe.ac.uk>
3092 2002-01-13 19:23  dan
3094         * Configure.pl, config_h.in, core.ops, classes/perlnum.pmc: Change
3095         NUMVAL_FMT to FLOATVAL_FMT.
3097         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3099 2002-01-13 17:45  jgoff
3101         * Makefile.in, global_setup.c, classes/Makefile.in,
3102         classes/intqueue.pmc, include/parrot/pmc.h, t/op/pmc.t,
3103         t/pmc/pmc.t: IntQueue is for an upcoming article on perl.com on
3104         designing your own classes.
3106 2002-01-13 08:47  simon
3108         * interpreter.c, Parrot/OpTrans/CPrederef.pm,
3109         lib/Parrot/OpTrans/CPrederef.pm:
3110         Fix bsr in prederef mode.
3112         Courtesy of: Jason Gloudon <perl@gloudon.com>
3114 2002-01-12 15:33  dan
3116         * interpreter.c, key.c, packfile.c, register.c, resources.c,
3117         string.c, encodings/singlebyte.c, encodings/utf32.c,
3118         include/parrot/parrot.h, io/io.c, io/io_stdio.c, io/io_unix.c:
3119         Silence most of the unused variable warnings.
3121         Courtesy of Nicholas Clark <nick@unfortu.net>
3123 2002-01-12 15:18  dan
3125         * rx.ops: This patch fixes a warning and also changes an 'int' to
3126         an 'INTVAL'.  All tests should pass on Solaris.
3128         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3130 2002-01-12 15:13  dan
3132         * interpreter.c, string.c, test_main.c, classes/parrotpointer.pmc,
3133         examples/assembly/life.pasm, include/parrot/interpreter.h,
3134         include/parrot/io.h, io/io.c, io/io_stdio.c, io/io_unix.c,
3135         io/io_win32.c: More IO work. (Plus some misc twiddles)
3137         Courtesy of Melvin Smith <mrjoltcola@mindspring.com>
3139 2002-01-12 01:14  dan
3141         * include/parrot/string.h: fix a missing name
3143 2002-01-12 00:39  grunblatt
3145         * include/parrot/string.h: Few typos.
3147 2002-01-12 00:16  grunblatt
3149         * jit.c, jit2h.pl, jit/i386/core.jit: Added support for opcodes
3150         that change the program control flow.
3152 2002-01-11 23:53  brentdax
3154         * classes/parrotpointer.pmc: Tell the GC to keep its hands out of a
3155         ParrotPointer's guts.
3157 2002-01-11 23:03  dan
3159         * include/parrot/string.h: flags for the buffers, for GC
3161 2002-01-11 22:31  dan
3163         * include/parrot/pmc.h: PMC flag docs. Those'd be good...
3165 2002-01-11 22:21  dan
3167         * include/parrot/pmc.h: Started with PMC flags
3169 2002-01-11 19:33  dan
3171         * config_h.in, memory.c, resources.c, string.c,
3172         include/parrot/resources.h: Beginnings of a memory allocation/gc
3173         system. Without the GC part.
3175 2002-01-11 18:05  dan
3177         * core.ops: Make sure constant pushes are right on mixed 32/64 bit
3178         systems
3180         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3182 2002-01-11 17:50  dan
3184         * core.ops, pbc2c.pl, Parrot/OpTrans/CGoto.pm,
3185         lib/Parrot/OpTrans/CGoto.pm, include/parrot/interpreter.h: Here is
3186         a patch that makes pbc2c generated code work with the bsr opcode.
3187         It creates a new opcode 'enternative', and uses this to support a
3188         mixed model of interpretation and execution of compiled C code.
3190         Courtesy of Jason Gloudon <perl@gloudon.com>
3192 2002-01-11 17:48  dan
3194         * Makefile.in: Add life as a potential .exe target
3196 2002-01-11 17:30  dan
3198         * include/parrot/resources.h: Start of arena stuff for GC
3200 2002-01-11 05:34  brentdax
3202         * rx.ops: Docs modifications.
3204 2002-01-11 04:19  brentdax
3206         * rx.ops, include/parrot/rx.h: Remove unnecessary evilness from
3207         regular expressions.
3209 2002-01-11 03:44  grunblatt
3211         * jit/i386/core.jit: off by one.
3213 2002-01-11 02:25  dan
3215         * Makefile.in, examples/assembly/life.pasm: Tweak to life benchmark
3217         Courtesy of Steve Fink <steve@fink.com>
3219 2002-01-11 00:32  brentdax
3221         * MANIFEST: Forgot to put parrotpointer.pmc in the MANIFEST.
3223 2002-01-10 23:22  ajgough
3225         * string.c, docs/strings.pod: Removed all the nul termination code,
3226         as this is in general a bad idea.  Note added to docs/strings.pod
3227         to warn people away from assuming termination.
3229 2002-01-10 23:14  dan
3231         * core.ops, interpreter.c, jit.c, rx.c, rx.ops, stacks.c,
3232         testparrotsizes_c.in, include/parrot/interpreter.h,
3233         include/parrot/rx.h, include/parrot/stacks.h: Much nicer stack
3234         implementation
3236         Courtesy of Steve Fink <steve@fink.com>
3238 2002-01-10 22:48  dan
3240         * core.ops: Fix 'basic' test 1 for sizeof(opcode_t) !=
3241         sizeof(INTVAL)
3243         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3245 2002-01-10 22:46  dan
3247         * key.c, classes/perlhash.pmc, t/op/pmc_perlhash.t,
3248         t/pmc/perlhash.t:  Well, actually two bugs.
3250          The first is an off-by-one error in key.c than can cause parrot
3251          to segfault if hash % NUM_BUCKETS happens to be zero.
3253          The other is a bug in the PerlHash init() code that causes new
3254         PerlHash
3255          PMCs to start with the wrong size.
3257          Both fixed below; also tests to prevent them recurring.
3259         Courtesy of Simon Glover <scog@roe.ac.uk>
3261 2002-01-10 22:30  dan
3263         * classes/default.pmc, classes/perlarray.pmc, t/op/pmc_perlarray.t,
3264         t/pmc/perlarray.t:  The enclosed patch allows one to use the if op
3265         with a PerlArray,
3267         Courtesy of Simon Glover <scog@roe.ac.uk>
3269 2002-01-10 21:31  dan
3271         * examples/assembly/life.pasm: Tweaked to be a benchmarkable thing
3273 2002-01-10 20:30  grunblatt
3275         * jit.c, jit2h.pl, Parrot/Jit/i386-bsd.pm,
3276         Parrot/Jit/i386-linux.pm, lib/Parrot/Jit/i386-bsd.pm,
3277         lib/Parrot/Jit/i386-linux.pm, jit/i386/core.jit, jit/i386/lib.jit:
3278         All the op codes that doesn't change the program control flow now
3279         work in the JIT by calling the code generated by the compiler when
3280         the op is not in core.jit TODO:     * Make all the ops that change
3281         the program control flow (and are not on core.jit) work.      *
3282         Remove the dispatch payload.
3284 2002-01-10 17:13  dan
3286         * classes/parrotpointer.pmc: This patch fixes parrotpointer.pmc,
3287         which tries to return 0 from a void function.
3289         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3291 2002-01-10 17:12  dan
3293         * t/op/macro.t: Skip tests, don't comment them out.
3295         Courtesy of Simon Glover <scog@roe.ac.uk>
3297 2002-01-10 17:10  dan
3299         * rx.c: This fixes a couple of nits in rx.c:
3301            1. There's no newline at the end, which makes gcc unhappy.
3302            2. We should use NULL, not 0 or "", for creating null pointers.
3304         Courtesy of Simon Glover <scog@roe.ac.uk>
3306 2002-01-10 17:09  dan
3308         * MANIFEST:  Adds rx.t, removes duplicated rx.c and puts everything
3309         back in
3310          alphabetical order.
3312         Courtesy of Simon Glover <scog@roe.ac.uk>
3314 2002-01-10 16:54  ajgough
3316         * resources.c: Made free_string check that there was a string to
3317         free.  In reponse to a bug spotted by Joshua Nye.
3319 2002-01-09 22:44  dan
3321         * global_setup.c: Forgot the setup
3323 2002-01-09 22:35  dan
3325         * rx.ops: Forgot this one
3327 2002-01-09 22:35  dan
3329         * MANIFEST, Makefile.in, rx.c, string.c, include/parrot/pmc.h,
3330         include/parrot/rx.h, t/op/rx.t: Preliminary regex implementation.
3331         Tests don't work, though.
3333         Courtesy of "Brent Dax" <brentdax@cpan.org>
3335 2002-01-09 21:48  dan
3337         * t/: op/pmc_perlarray.t, pmc/perlarray.t: Whoops, forgot that
3339 2002-01-09 21:22  dan
3341         * classes/Makefile.in, classes/parrotpointer.pmc, Makefile.in:
3342         Generic pointer holder class
3344         Courtesy of "Brent Dax" <brentdax@cpan.org>
3346 2002-01-09 21:19  dan
3348         * MANIFEST, classes/perlarray.pmc, t/op/pmc.t, t/pmc/pmc.t: Array
3349         patches.
3351 2002-01-09 19:54  dan
3353         * io/io_unix.c: Whoops. Forgot one
3355 2002-01-09 19:43  dan
3357         * key.c, classes/perlhash.pmc, t/op/pmc_perlhash.t,
3358         t/pmc/perlhash.t: Fix hash crash bugs
3360         Courtesy of Simon Glover <scog@roe.ac.uk>
3362 2002-01-09 19:13  dan
3364         * memory.c: Signedness whoops.
3366         Courtesy of Simon Glover <scog@roe.ac.uk>
3368 2002-01-09 18:23  dan
3370         * MANIFEST, Makefile.in, include/parrot/io.h, io/io.c, io/io_os.c,
3371         io/io_stdio.c, io/io_win32.c: Changes:
3373         -Minor layer cleanups -Win32 layer added (mostly stubs for now) but
3374         will be using the   Win32 API and company rather than the unix-ish
3375         fake ones.  -stdin/stdout/stderr Win32 specific code added. Rather
3376         than use   0,1,2, Microsoft says use GetStdHandle(), etc. so that
3377         stuff is   there. Soon we should be able to start using these
3378         rather than   fprintf(stderr, ...) and remove stdio linkage.
3380         Courtesy of <mrjoltcola@mindspring.com>
3382 2002-01-09 17:26  dan
3384         * test_main.c: Fixes bad code gen on x86.
3386         Courtesy of Josh Wilmes <josh@hitchhiker.org>
3388 2002-01-09 17:24  dan
3390         * Configure.pl, config_h.in, core.ops, key.c, classes/perlint.pmc,
3391         classes/perlnum.pmc: This patch adds macros to the config.h file
3392         for INTVAL and NUMVAL printf formats.
3394         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3396 2002-01-08 22:55  ajgough
3398         * docs/vtables.pod: Clarify what get_string should do.
3400 2002-01-08 20:05  dan
3402         * key.c: Keep comments in sync.
3404         Courtesy of Simon Glover <scog@roe.ac.uk>
3406 2002-01-08 19:50  dan
3408         * memory.c, include/parrot/memory.h: Need a realloc
3410 2002-01-08 17:24  gregor
3412         * .cvsignore, Configure.pl, Makefile.in:
3413         Added 'reconfig' make target and corresponding --reconfig option to
3414         Configure.pl, so its very easy to re-run Configure.pl with the last
3415         (command-line) options you passed it.
3417 2002-01-08 16:33  dan
3419         * core.ops, make_vtable_ops.pl, Parrot/OpsFile.pm,
3420         lib/Parrot/OpsFile.pm: Add in, out, and inout parameters to teh ops
3421         in core.ops. Potential help for optimizers and JITters.
3423         Courtesy of gregor@linux1.kennedytech.com
3425 2002-01-08 16:32  dan
3427         * key.c: Grab key length from the right spot
3429         Courtesy of "Peter Gibbs" <peter@emkel.co.za>
3431 2002-01-08 13:27  ajgough
3433         * test_main.c: Fix slight thinko in realloc usage for reading from
3434         stdin.
3436 2002-01-08 11:34  ajgough
3438         * test_main.c: Allow test_parrot to read bytecode stream from
3439         stdin, adds -f command line option, with "-f -" doing the stdin
3440         stuff.
3442 2002-01-08 06:34  jgoff
3444         * key.c, include/parrot/key.h: key.c - Added simple implementation
3445         of buckets.  include/parrot/key.h - Added enum_key_bucket type
3447 2002-01-08 03:21  jgoff
3449         * include/parrot/key.h: Added an undef type to the key structure,
3450         so we can delete keys without confusion.
3452 2002-01-07 22:09  dan
3454         * key.c, packfile.c, string.c, include/parrot/key.h,
3455         include/parrot/packfile.h, include/parrot/string.h: Fix whines
3456         about index being redefined
3458         Courtesy of Nick Clark
3460 2002-01-07 21:15  dan
3462         * ops2pm.pl: Don't allow the same ops lib to be included twice.
3464         Courtesy of Steve Fink <steve@fink.com>
3466 2002-01-07 20:48  dan
3468         * Parrot/Test.pm, lib/Parrot/Test.pm: Report useful info for test
3469         failures
3471         Courtesy of "Brent Dax" <brentdax@cpan.org>
3473 2002-01-07 20:43  dan
3475         * docs/intro.pod: Missing a comma
3477         Courtesy of "coral" <coral@eekeek.org>
3479 2002-01-07 20:41  dan
3481         * global_setup.c: Quiet a warning
3483         Courtesy of Simon Glover <scog@roe.ac.uk>
3485 2002-01-07 18:58  gregor
3487         * t/op/.cvsignore:
3488         Ignore intermediate test files.
3490 2002-01-07 17:01  gregor
3492         * ops2c.pl:
3493         Print a warning if an .ops file is mentioned more than once on the
3494         command line.
3496 2002-01-07 16:12  ajgough
3498         * t/: op/pmc_perlhash.t, pmc/perlhash.t: A couple more hash tests,
3499         these shouldn't fail.
3501 2002-01-07 15:15  simon
3503         * t/: op/pmc_perlhash.t, pmc/perlhash.t:
3504         Stop segfaults.
3506 2002-01-07 15:11  simon
3508         * key.c:
3509         Fix zero-termination bug in hash function.
3511 2002-01-07 13:37  ajgough
3513         * MANIFEST, t/op/pmc_perlhash.t, t/pmc/perlhash.t: Added
3514         pmc_perlhash.t, one test currently fails, one passes, yin-yang fun.
3516 2002-01-07 11:53  brentdax
3518         * Configure.pl: Fixes the + thing in prompts, plus adds a synonym
3519         (:add{foo}) and a new deleting thing (:rem{foo})
3521 2002-01-07 11:43  simon
3523         * Configure.pl:
3524         Gobble the + before concatenating.
3526 2002-01-07 03:53  dan
3528         * Makefile.in: Dependency fix for new ops setup.
3530 2002-01-07 03:33  jgoff
3532         * classes/perlarray.pmc: Add negative indices, and fix a small
3533         allocation problem.
3535 2002-01-06 23:54  ajgough
3537         * hints/os2.pl: Makes the hints file take account of ldflags and
3538         ccflags being split.  This hints file is still very specific to
3539         builds with gnu tools, but a proper solution can wait.   Thanks to
3540         Nick Burch.
3542 2002-01-06 22:12  dan
3544         * Makefile.in, ops2c.pl, Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm:
3545             -changes Parrot::OpLib::core's dependencies to reflect the new
3546         selectable ops files    -allows some of the special forms of 'goto'
3547         inside the PREAMBLE of an opcode file
3549         Courtesy of "Brent Dax" <brentdax@cpan.org>
3551 2002-01-06 19:59  simon
3553         * Makefile.in:
3554         *cough*
3556 2002-01-06 18:19  dan
3558         * classes/perlhash.pmc: Fix some type issues.
3560         Courtesy of Josh Wilmes <josh@hitchhiker.org>
3562 2002-01-06 18:03  dan
3564         * Configure.pl, Makefile.in: It adds a prompt to Configure asking
3565         for a list of opcode files to use.  The default is everything
3566         available except for obscure.ops.
3568         In addition, it makes it so that if your answer to a question
3569         starts with '+', it will concatenate it to the default.  For
3570         example:
3572         What C compiler do you want to use? [cl] +HAHAHA!!!
3574         will result in $PConfig{cc} eq "cl HAHAHA!!!".  While that example
3575         is not terribly useful, it is quite useful with things like
3576         command-line flags and the like.
3578         Finally, it contains a couple tweaks so that my syntax-highlighting
3579         editor recognizes some heredocs correctly.  :^)
3581         Courtesy of "Brent Dax" <brentdax@cpan.org>
3583 2002-01-06 17:59  dan
3585         * KNOWN_ISSUES, MANIFEST, README: Doc Patches
3587         Courtesy of "Bryan C. Warnock" <bwarnock@raba.com>
3589 2002-01-06 17:58  dan
3591         * MANIFEST:  We're missing a couple of files from the MANIFEST.
3593         Courtesy of Simon Glover <scog@roe.ac.uk>
3595 2002-01-06 17:57  dan
3597         * ops2c.pl, Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm:   1.
3598         Compiler directives, etc. in files other than core.ops will now
3599         work.   2.  Compiler warnings will now display the file and line
3600         number of the  opcode file.
3602         Courtesy of "Brent Dax" <brentdax@cpan.org>
3604 2002-01-06 17:52  dan
3606         * languages/jako/jakoc: Fix breakage caused by iton/ntoi going away
3608         Courtesy of Simon Glover <scog@roe.ac.uk>
3610 2002-01-06 17:36  dan
3612         * docs/intro.pod: Lots of updates
3614         Courtesy of Simon Glover <scog@roe.ac.uk>
3616 2002-01-06 02:34  gregor
3618         * interpreter.c:
3619         Add some internal documentation on the theory of operation of the
3620         prederef code.
3622 2002-01-06 02:17  gregor
3624         * interpreter.c:
3625         Removed unnecessary include.
3627 2002-01-05 12:37  simon
3629         * classes/.cvsignore:
3630         Ignore generated .h files.
3632         Courtesy of: Josh Wilmes <josh@hitchhiker.org>
3634 2002-01-05 12:37  simon
3636         * Configure.pl:
3637         Make lcc happier by adding a dummy structure.
3639         Courtesy of: Josh Wilmes <josh@hitchhiker.org>
3641 2002-01-05 12:35  simon
3643         * global_setup.c, classes/perlundef.pmc, t/op/pmc.t, t/pmc/pmc.t:
3644         Make perlundef work. (And coincidentally stop segfaults in the
3645         tests :)
3647         Courtesy of: Jason Gloudon <perl@gloudon.com>
3649 2002-01-05 04:59  dan
3651         * t/: op/pmc.t, pmc/pmc.t: Undef tests added.
3653 2002-01-05 04:55  jgoff
3655         * classes/perlhash.pmc: Added perlhash class definition
3657 2002-01-05 04:48  dan
3659         * core.ops: Fix on 64 bit platforms with 32-bit opcode_t
3661         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3663 2002-01-05 03:57  jgoff
3665         * MANIFEST, Makefile.in, core.ops, global_setup.c, key.c,
3666         vtable.tbl, classes/Makefile.in, classes/default.pmc,
3667         include/parrot/key.h, include/parrot/pmc.h, t/op/pmc.t,
3668         t/pmc/pmc.t: Initial hash commit.
3670         core.ops - Adding set({i,n,s},p,s) and set(p,{i,n,s},s) operations.
3671          key.h  - Adding NUM_BUCKETS classes/default.pmc - Adding
3672         set_{integer,number,string}_index_s
3674         This does not yet do collision resolution, but will soon.
3676 2002-01-05 02:54  dan
3678         * interpreter.c: More unsigned fixes
3680         Courtesy of "Bryan C. Warnock" <bwarnock@raba.com>
3682 2002-01-04 22:13  dan
3684         * Configure.pl, hints/mswin32.pl: Makes config's building of the
3685         test programs happier.
3687         Courtesy of "Jason Diamond" <jason@injektilo.org>
3689 2002-01-04 19:00  dan
3691         * Configure.pl, Makefile.in, hints/darwin.pl: Add link flags as
3692         separate things
3694 2002-01-04 18:27  dan
3696         * Configure.pl, Makefile.in, classes/Makefile.in, hints/mswin32.pl:
3697         Fixes to get things configuring and building on Win32 Native.
3699         Courtesy of "Jason Diamond" <jason@injektilo.org>
3701 2002-01-04 17:39  dan
3703         * hints/vms.pl: debug cleanup
3705 2002-01-04 16:53  dan
3707         * docs/parrot.pod:  The enclosed patch brings the list of
3708         documentation in parrot.pod
3709          up to date.
3711         Courtesy of Simon Glover <scog@roe.ac.uk>
3713 2002-01-04 16:47  dan
3715         * test_main.c, Parrot/Jit/i386-linux.pm,
3716         lib/Parrot/Jit/i386-linux.pm: In an attempt to just keep knocking
3717         off warnings..
3719         Courtesy of Kevin Falcone <kevin@jibsheet.com>
3721 2002-01-04 16:44  dan
3723         * Configure.pl, Makefile.in: Fixed linking to use linker.
3725         Courtesy of Josh Wilmes <josh@hitchhiker.org>
3727 2002-01-04 16:39  dan
3729         * io/io_stdio.c: Added CVS tag info
3731 2002-01-04 16:35  dan
3733         * hints/cygwin.pl: Time for this. We need a sane linker, and ld2
3734         isn't it
3736 2002-01-04 16:26  dan
3738         * languages/miniperl/Miniperl/Tokenizer.pm: Quiet a warning in the
3739         Tokenizer test
3741         Courtesy of Jonathan Stowe <gellyfish@gellyfish.com>
3743 2002-01-04 16:17  dan
3745         * chartypes/unicode.c: Silence some warnings.
3747         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3749 2002-01-04 16:09  dan
3751         * classes/: genclass.pl, perlarray.pmc, perlint.pmc, perlnum.pmc,
3752         perlstring.pmc, perlundef.pmc:  - genclass.pl attempts to put $Id$
3753         into generated files
3754            but the $Id$ string gets mangled when it's committed.
3755            This patch fixes the existing .pmc files and fixes genclass.pl.
3757          - Makes capitalization in .pmc header match actual filenames
3759          - The command for calling genclass.pl in vtables.pod is incorrect,
3760            since it assumes you're running in classes/ but genclass.pl
3761         assumes
3762            it's being run from the main directory. I changed genclass.pl to
3763         not
3764            care.
3766         Courtesy of Steve Fink <steve@fink.com>
3768 2002-01-04 03:57  dan
3770         * MANIFEST, io/TODO, io/io_stdio.c: No wonder things worked for
3771         me--I *had* the files:wq!
3773 2002-01-04 03:40  dan
3775         * MANIFEST: Whoops--remove files not really there
3777 2002-01-04 03:37  dan
3779         * interpreter.c, stacks.c, include/parrot/stacks.h: The patch below
3780         my sig adds a new_stack() function to take care of the allocation
3781         and setup of "generic" stacks.
3783         Courtesy of "Brent Dax" <brentdax@cpan.org>
3785 2002-01-04 02:36  dan
3787         * core.ops:  The entry in core.ops for puts(s|sc) is missing a =cut
3788         and so
3789          writes a load of junk in core_ops.pod. Applied patch fixes.
3791         Courtesy of Simon Glover <scog@roe.ac.uk>
3793 2002-01-04 02:35  dan
3795         * classes/: perlint.pmc, perlnum.pmc, perlstring.pmc: The PerlInt
3796         logical-or is using get_integer instead of get_bool for logical
3797         operations. This patch corrects that.
3799         Perlnum and perlstring have working get_bool's, so the default
3800         logical_or and logical_and should be sufficient. The empty methods
3801         are pointed to the default logical_or.
3803         Courtesy of Jason Gloudon <perl@gloudon.com>
3805 2002-01-04 02:31  dan
3807         * Makefile.in: docs/Makefile should be removed by realclean, but
3808         isn't
3810         Courtesy of Kevin Falcone <kevin@jibsheet.com>
3812 2002-01-04 02:29  dan
3814         * classes/: Makefile.in, pmc2c.pl: PMC inheritance! Yay!
3816         Courtesy of Steve Fink <steve@fink.com>
3818 2002-01-04 00:51  dan
3820         * docs/vtables.pod: More docs
3822         Courtesy of Steve Fink <steve@fink.com>
3824 2002-01-04 00:47  dan
3826         * Configure.pl: Updated 64-bit patch
3828         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3830 2002-01-04 00:43  dan
3832         * Configure.pl: 64-bit Fix.
3834         Courtesy of "Bryan C. Warnock" <bwarnock@raba.com>
3836 2002-01-03 22:37  dan
3838         * MANIFEST, Makefile.in, interpreter.c, include/parrot/io.h,
3839         io/io.c, io/io_os.c: Code cleanup, started STDIO layer, started
3840         some buffering work.       Additional work on other layers.
3842         Courtesy of Melvin Smith <mrjoltcola@mindspring.com>
3844 2002-01-03 19:41  gregor
3846         * disassemble.pl, obscure.ops, packfile.c, pbc2c.pl:
3847         Updated copyright messages on top-level files.
3849 2002-01-03 04:23  robert
3851         * make.pl: Add author information.  Bonsai test.
3853 2002-01-03 04:02  dan
3855         * io/io_os.c: Twig Bonsai
3857 2002-01-03 03:45  dan
3859         * io/: io_os.c, io_os.c: Twig Bonsai
3861 2002-01-03 03:41  dan
3863         * io/io_os.c: Twig Bonsai
3865 2002-01-02 21:42  gregor
3867         * packfile.c, include/parrot/packfile.h:
3868         Get rid of warnings in packfile.[hc]
3870 2002-01-02 20:39  gregor
3872         * manicheck.pl:
3873         Bracketed translated patterns with ^ and $.
3875 2002-01-02 20:11  dan
3877         * io/io_os.c: silence a warning
3879 2002-01-02 19:52  grunblatt
3881         * jit.c, jit2h.pl, include/parrot/jit.h: Moved the definition of
3882         op_assembly to jit_struct.h, so that we get the real number of ops.
3883          Removed some warnings.
3885 2002-01-02 19:31  tom
3887         * string.c: Fix string transcoding so that it actually works.
3889         Patch from Peter Gibbs <peter@emkel.co.za>
3891 2002-01-02 19:20  gregor
3893         * manicheck.pl:
3894         A program to check the MANIFEST file, accounting for .cvsignore
3895         files.
3897 2002-01-02 19:19  dan
3899         * t/harness: twig bonsai
3901 2002-01-02 19:13  dan
3903         * t/harness: twig bonsai
3905 2002-01-02 18:54  dan
3907         * t/harness: Tweak to test Bonsai
3909 2002-01-02 16:27  dan
3911         * Configure.pl: Allow 64-bit build of parrot on systems with a
3912         mixed 32/64 bit perl
3914         Courtesy of David M. Lloyd <dmlloyd@tds.net>
3916 2002-01-02 15:33  simon
3918         * MANIFEST, docs/Makefile:
3919         Fixed up MANIFEST. (And I removed the Makefile in docs/)
3921         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
3923 2002-01-02 13:51  simon
3925         * Configure.pl:
3926         Die on broken manifest.
3928 2002-01-02 13:48  simon
3930         * jit2h.pl, examples/assembly/mops.pasm:
3931         Clear up JIT warnings.
3933         Courtesy of: Nick Clark <nick@unfortu.net>
3935 2002-01-02 04:10  dan
3937         * io/io.c, io/io_os.c, t/op/interp.t: IO stack now gets initialized
3938         only once, so new interp creation works again
3940         Courtesy of Melvin Smith <mrjoltcola@mindspring.com>
3942 2002-01-02 03:32  dan
3944         * t/op/interp.t: Stubbed the test out, since it's hanging at the
3945         moment.
3947 2002-01-02 00:55  dan
3949         * MANIFEST, Makefile.in, core.ops, include/parrot/io.h, io/io.c,
3950         io/io_os.c: Initial IO system patches
3952         Courtesy of <mrjoltcola@mindspring.com>
3954 2002-01-01 22:55  ajgough
3956         * classes/default.pmc: On second thoughts, and some prodding, the
3957         set_* methods now only set the appropriate part of the cache, and
3958         do nothing else.
3960 2002-01-01 22:29  ajgough
3962         * classes/default.pmc:  Wrote a whole host of default pmc methods.
3964          set_* create appropriate Perl* result.
3965          get_* simply grabs needed bit of cache.*_val
3967          Other methods do the rightest thing I can think of, at the moment.
3969          None yet cope with overflow, the modulus operation needs to be
3970         checked as
3971         I don't know quite which semantics we really want.
3973         Not tested yet.
3975 2002-01-01 20:23  dan
3977         * docs/Makefile, encodings/singlebyte.c, encodings/utf16.c,
3978         encodings/utf32.c, encodings/utf8.c, include/parrot/encoding.h: Got
3979         rid of unneeded tmp var and eliminated const from encode prototype
3980         since it does make changes to the string.
3982         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
3984 2002-01-01 20:11  dan
3986         * Makefile.in: Make clean now tosses pdump.o
3988         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
3990 2002-01-01 19:49  dan
3992         * pdump.c, test_main.c: Warnings cleanup
3994         Courtesy of Josh Wilmes <josh@sky.net>
3996 2002-01-01 19:45  dan
3998         * Configure.pl, Makefile.in, docs/.cvsignore, docs/Makefile.in,
3999         hints/mswin32.pl, languages/jako/Makefile.in,
4000         languages/scheme/Makefile.in: Makes cleanup better on non-Unix
4001         platforms
4003         Courtesy of "Jason Diamond" <jason@injektilo.org>
4005 2002-01-01 19:41  dan
4007         * include/parrot/register.h: Clean up some warnings
4009         Courtesy of Josh Wilmes <josh@hitchhiker.org>
4011 2002-01-01 19:10  simon
4013         * pbc2c.pl, Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm:
4014         Hack-around to enable compilation of code using vtable ops.
4016 2002-01-01 18:43  dan
4018         * encodings/: singlebyte.c, utf16.c, utf32.c, utf8.c: Toss <0
4019         checks on unsigned things
4021         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4023 2002-01-01 18:26  dan
4025         * runops_cores.c: More warning silences.
4027         Courtesy of Nicholas Clark <nick@unfortu.net>
4029 2002-01-01 18:25  dan
4031         * trace.c: Shuts up a warning.
4033         Courtesy of Nicholas Clark <nick@unfortu.net>
4035 2002-01-01 18:24  dan
4037         * encodings/singlebyte.c: Clean up some warnings.
4039         Courtesy of Nicholas Clark <nick@unfortu.net>
4041 2002-01-01 18:20  dan
4043         * Configure.pl: Hey, those PPros are really x86 systems! Who'dve
4044         thunk it?
4046         Courtesy of "Bryan C. Warnock" <bwarnock@raba.com>
4048 2002-01-01 18:17  dan
4050         * packfile.c: Warning cleanup
4052         Courtesy of Nicholas Clark <nick@unfortu.net>
4054 2002-01-01 17:53  dan
4056         * string.c: New string size should be based on output encoding's
4057         size, not input encoding's size.
4059         Courtesy of: "Peter Gibbs" <peter@emkel.co.za>
4061 2002-01-01 17:22  dan
4063         * Configure.pl, core.ops, interpreter.c, memory.c, runops_cores.c,
4064         string.c, test_main.c, trace.c, include/parrot/exceptions.h,
4065         include/parrot/interpreter.h, include/parrot/memory.h,
4066         include/parrot/oplib.h, include/parrot/string.h, t/op/string.t:
4067         Warnings fixups.
4069         Courtesy of Chip Turner <cturner@redhat.com>
4071 2002-01-01 17:09  dan
4073         * encodings/singlebyte.c, encodings/utf16.c, encodings/utf32.c,
4074         encodings/utf8.c, include/parrot/encoding.h: Some signed things are
4075         now unsigned, as is proper.
4077         Courtesy of: "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4078         Courtesy of: "Bryan C. Warnock" <bwarnock@raba.com>
4080 2002-01-01 16:59  dan
4082         * include/parrot/trace.h: Useless debugging prototype removed
4084         Courtesy of: "Bryan C. Warnock" <bwarnock@raba.com>
4086 2002-01-01 16:58  dan
4088         * MANIFEST: We forgot a file.
4090         Courtesy of "Bryan C. Warnock" <bwarnock@raba.com>
4092 2002-01-01 03:53  dan
4094         * Configure.pl: Okay, I give. Removed some warnings because the
4095         darned system headers were triggering them. Sloppy, sloppy
4096         coding...
4098 2002-01-01 03:48  dan
4100         * config_h.in: Add in an unsigned INTVAL.
4102         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4104 2002-01-01 03:46  dan
4106         * global_setup.c: Clean up some compiler warnings.
4108         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4110 2002-01-01 03:43  dan
4112         * ops2c.pl, Parrot/OpTrans.pm, Parrot/OpTrans/CPrederef.pm,
4113         lib/Parrot/OpTrans.pm, lib/Parrot/OpTrans/CPrederef.pm,
4114         include/parrot/op.h: Cleaned up some things to make the compiler
4115         happier.
4117         Courtesy of Nicholas Clark <nick@unfortu.net>
4119 2002-01-01 03:14  dan
4121         * Configure.pl: Quad updates.
4123         Courtesy of Nicholas Clark <nick@unfortu.net>
4125 2001-12-31 22:53  dan
4127         * include/parrot/op.h: Typedef had parameters backwards. Threw
4128         core.ops for a big whiny warnings loop.
4130 2001-12-31 22:37  dan
4132         * Makefile.in, resources.c: Tweaks to try and get things to build
4133         in the right order.
4135 2001-12-31 21:58  dan
4137         * Configure.pl: Stupid thinko fix
4139 2001-12-31 21:34  dan
4141         * Configure.pl, hints/mswin32.pl: Tweaks for Win32 builds
4143         Courtesy of: "Jason Diamond" <jason@injektilo.org>
4145 2001-12-31 21:32  dan
4147         * Configure.pl: Fix for non-gcc systems
4149 2001-12-31 20:22  dan
4151         * interpreter.c: Tweak so we can build on non-JIT platforms
4153 2001-12-31 20:11  dan
4155         * Configure.pl: Force the time on some copied files to be 'now' to
4156         make the Win builds much less annoying.
4158         Courtesy of "Jason Diamond" <jason@injektilo.org>
4160 2001-12-31 20:07  dan
4162         * Configure.pl: Nuke all object files in the parrot tree that
4163         matter when configuring.  Shouldn't be necessary with good
4164         dependencies in the makefile, but we don't have those yet.
4166 2001-12-31 20:00  gregor
4168         * chartypes/unicode.c:
4169         Silence unused variable warnings.
4171 2001-12-31 19:40  dan
4173         * Configure.pl: Minor Win32 tweaks. Tossed -Wtraditional, too
4175 2001-12-31 19:37  gregor
4177         * interpreter.c, jit.c, include/parrot/jit.h:
4178         Created a prototype for JIT functions and used it in interpreter.c.
4180 2001-12-31 19:31  dan
4182         * Configure.pl, test_gnuc.c: Better GCC detection (and version
4183         detection) with really cranky warnings if we find we're using it.
4185         Courtesy of: Nicholas Clark <nick@unfortu.net>
4187 2001-12-31 18:01  gregor
4189         * interpreter.c, include/parrot/interpreter.h, include/parrot/op.h:
4191         Fixed a few warnings wrt prototypes, etc.
4193 2001-12-31 17:23  dan
4195         * string.c: Silenced most of the compiler whines
4197 2001-12-31 17:15  gregor
4199         * Configure.pl:
4200         Get the ccname from either ccname or just cc config var.
4202 2001-12-31 17:14  gregor
4204         * Parrot/Op.pm, lib/Parrot/Op.pm:
4205         Another intermediate opbody notation. Could come in handy. Explicit
4206         types.
4208 2001-12-31 17:05  dan
4210         * string.c: Minor warnings update
4212 2001-12-31 17:00  dan
4214         * include/parrot/string.h: Warnings cleanup
4216 2001-12-31 16:00  simon
4218         * encodings/utf8.c, include/parrot/encoding.h:
4219         Remove a couple more.
4221 2001-12-31 15:58  simon
4223         * vtable_h.pl, include/parrot/global_setup.h, include/parrot/jit.h,
4224         include/parrot/op.h:
4225         Rid ourselves of a few warnings.
4227 2001-12-31 15:32  dan
4229         * Configure.pl: Made GCC ever so much pickier.
4231         Switch list courtesy of Jarkko.
4233 2001-12-31 15:22  dan
4235         * string.c: Tightened up initial allocation.
4237         Courtesy of:  "Peter Gibbs" <peter@emkel.co.za>
4239 2001-12-31 06:48  dan
4241         * Configure.pl: Minor Windows tweak
4243 2001-12-31 05:32  dan
4245         * core.ops: Unused temp variable tossed.
4247         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4249 2001-12-31 05:09  grunblatt
4251         * Configure.pl, Makefile.in, interpreter.c: Link jit.o only on
4252         supported plataforms
4254 2001-12-31 03:05  dan
4256         * Configure.pl, Makefile.in, classes/Makefile.in: Added in a
4257         platform-independent quote substitution for the makefiles.
4258         Hopefully this'll make the Win32 builds happier.
4260 2001-12-30 21:08  dan
4262         * string.c, include/parrot/string.h: More string system tweaks.
4264         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4266 2001-12-30 20:45  dan
4268         * core.ops: Some pod cleanup
4270         Courtesy of Josh Wilmes <josh@hitchhiker.org>
4272 2001-12-30 20:22  ajgough
4274         * docs/parrot_assembly.pod: removed ntoi and iton ops from docs, as
4275         we aren't using them right now.  Clarified the workings of set Px,
4276         Py and clone Px, Py.
4278 2001-12-30 20:15  grunblatt
4280         * jit.c, jit2h.pl, jit/i386/core.jit: Removed the warnings in jit.c
4281         Added readjit() to read *.jit files Updated core.jit to the new
4282         set_n_i
4284 2001-12-30 20:14  ajgough
4286         * examples/assembly/mops.pasm: Changed iton/ntoi to set.
4288 2001-12-30 19:52  dan
4290         * packfile.c, pdump.c, register.c, string.c, include/parrot/key.h,
4291         include/parrot/trace.h, platforms/generic.c: Compiler whine
4292         cleanups
4294         Courtesy of Josh Wilmes <josh@hitchhiker.org>
4296 2001-12-30 19:13  dan
4298         * Configure.pl, Makefile.in: Make GCC pickier by default.
4300         Courtesy of: Josh Wilmes <josh@hitchhiker.org>
4302 2001-12-30 18:41  dan
4304         * core.ops, t/op/integer.t, t/op/number.t: Transformed iton and
4305         ntoi opcodes to sets.
4307         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4309 2001-12-30 17:58  gregor
4311         * Makefile.in:
4312         'make' no longer builds the mops test. Use 'make mops' for that. To
4313         run the test, you can do 'make mopstest'.
4315 2001-12-30 17:30  gregor
4317         * Makefile.in:
4318         Fixed one oversight. 'make clean' was removing Parrot/Types.pm. Bad
4319         Gregor.
4321 2001-12-30 17:26  gregor
4323         * .cvsignore, Configure.pl, Makefile.in, VERSION, config_h.in,
4324         core.ops, interpreter.c, make_vtable_ops.pl, obscure.ops, ops2c.pl,
4325         Parrot/BuildUtil.pm, Parrot/OpsFile.pm, lib/Parrot/BuildUtil.pm,
4326         lib/Parrot/OpsFile.pm, include/parrot/oplib.h:
4327         Build enhancements. Originally to support building shared
4328         libraries, but now of broader impact.
4330           * .cvsignore: Ignore the blib/ directory, about which more later.
4332           * Configure.pl:
4334               * Got rid of TAB formatting and lined a few things up.
4336               * Added header comment with CVS Id variable, and a few other
4337                 block header comments.
4339               * Uses new Parrot::BuildUtil module to determine the Parrot
4340                 version.
4342               * Reworded a few messages, added a couple, and wrapped
4343         messages
4344                 to 79 columns.
4346               * Added 2002 to the Copyright statement.
4348               * Added new configure variables: VERSION, MAJOR, MINOR and
4349         PATCH
4351               NOTE: Please see the 'Alas perl5.7.2' comment. 5.7.2 is
4352         greater
4353               than 5.6.0, but the comment implies it isn't.
4355           * Makefile.in:
4357               * Added $(SO), $(A) and $(AR_CRS) defines for library
4358         building.
4360               * Added $(RM_RF) define for removing directory trees
4362               * Grouped generated files into two classes: "sticky" (made by
4363         configure,
4364                 persisting across 'make clean') and 'fluid' (made during
4365         the build
4366                 process, deleted by 'make clean').
4368               * Added header comments.
4370               * Added target for test_prog linked with shared library.
4372               * Added rules to build shared libraries in blib/lib. The
4373         libraries are
4374                 built with trailing version numbers in their file names,
4375         and then
4376                 symbolic links are created for shorter and no version tag
4377         variants.
4379               * Added some missing dependencies
4381               * Added some missing 'make clean' targets.
4383               * Added 'make realclean' target that deletes files created by
4384                 Configure.pl (including Makefile), forcing a re-configure.
4386               * Added a 'status' CVS target.
4388           * VERSION: New file, contains only the version. This version
4389         number is
4390             propagated to a few places, such as the core oplib version
4391         number. This
4392             reduces the amount of coordination that has to happen to get
4393         version
4394             number stuff throughout the tree in sync and updated prior to
4395         cutting
4396             a new release. Feel free to grep for '0.0.3' to see the other
4397         files
4398             that contain the version number (but, do that in a fresh CVS
4399         copy, or
4400             after doing 'make realclean').
4402           * config_h.in: Renamed PARROT_CORE_OPLIB_*_VERSION to
4403         PARROT_*_VERSION,
4404             since the oplib and Parrot itself share a version number now.
4405         Added
4406             PARROT_PATCH_VERSION (the third component) and PARROT_VERSION
4407         (a
4408             string).
4410           * core.ops: Uses new notation "VERSION = PARROT_VERSION" instead
4411         of
4412             specifying the version by hand. Non-core oplibs will set this
4413         to
4414             a quoted dot-string with three natural number components
4415         without
4416             leading zeros.
4418           * interpreter.c: Make use of PARROT_VERSION to simplify some
4419         sprintf()s, and
4420             to get the complete version number in the resulting strings
4421         (including the
4422             new PATCH portion).
4424           * make_vtable_ops.pl: Put the "VERSION = PARROT_VERSION" line int
4425         the
4426             generated file.
4428           * obscure.ops: Use the new "VERSION = PARROT_VERSION" technique.
4430           * ops2c.pl: Account for the PATCH version, too. This affects the
4431         name of the
4432             oplib init function, and the oplib info struct initializer.
4434           * Parrot/BuildUtil.pm: New file for reading in and validating the
4435         contents of
4436             the new VERSION file. Other build utilities could go here in
4437         futuer.
4439           * Parrot/OpsFile.pm:
4441               * Allow three components in version number, and require that
4442         the value
4443                 be in double quotes.
4445               * Allow "VERSION = PARROT_VERSION", substituting the shared
4446         Parrot
4447                 VERSION in that case.
4449           * include/parrot/oplib.h: Add the patch_version member.
4451 2001-12-30 12:16  simon
4453         * MANIFEST, Makefile.in:
4454         More stuff forgotten from MANIFEST.
4456 2001-12-30 12:13  simon
4458         * MANIFEST:
4459         Missing JIT file.
4461 2001-12-30 12:12  simon
4463         * jit2h.pl:
4464         Safety first.
4466 2001-12-30 12:12  simon
4468         * Makefile.in:
4469         Gragh.
4471 2001-12-30 12:04  simon
4473         * Makefile.in, core.ops, packfile.c, pbc2c.pl, string.c,
4474         classes/perlstring.pmc, encodings/singlebyte.c, encodings/utf16.c,
4475         encodings/utf32.c, encodings/utf8.c, include/parrot/encoding.h,
4476         include/parrot/string.h, t/op/string.t:
4477         * Expand the strings test suite to be more complete * Make string
4478         commands more consistent (i.e, now the only string command that
4479         actually changes the original is chopn) * Significantly reduce the
4480         number of memory allocations and eliminate reallocations.
4482         Courtesy of: David Jacobs <jacobsl001@hawaii.rr.com>
4484 2001-12-29 22:12  dan
4486         * interpreter.c, key.c, register.c, stacks.c, string.c,
4487         test_main.c, trace.c: Updates to match the coding standards.
4489         Courtesy of Bryan C. Warnock <bwarnock@raba.com>
4491 2001-12-29 20:42  grunblatt
4493         * jit2h.pl, Parrot/Jit/i386-bsd.pm, Parrot/Jit/i386-linux.pm,
4494         Parrot/Jit/i386-nojit.pm, jit/i386/core.jit, jit/i386/lib.jit,
4495         jit/i386/string.jit, lib/Parrot/Jit/i386-bsd.pm,
4496         lib/Parrot/Jit/i386-linux.pm, lib/Parrot/Jit/i386-nojit.pm: Allow
4497         us to write asm in *.jit files instead of hex.  Courtesy of: Rafael
4498         Kitover <caelum@debian.org>
4500 2001-12-28 21:20  dan
4502         * core.ops: Okay, now print takes a preceding file handle.
4504         I feel so dirty now.
4506 2001-12-28 20:46  dan
4508         * core.ops, t/op/hacks.t: Added in the readline op, as well as
4509         changing the open op to use fopen under the hood.
4511         THESE OPS ARE EVIL! AND TEMPORARY! USE FOR DEBUGGING PURPOSES ONLY!
4513 2001-12-28 18:20  ajgough
4515         * core.ops, make_vtable_ops.pl, string.c, classes/default.pmc,
4516         classes/perlstring.pmc, docs/parrot_assembly.pod, docs/strings.pod,
4517         include/parrot/exceptions.h, include/parrot/string.h,
4518         t/op/pmc_perlstring.t, t/op/string.t, t/pmc/perlstring.t: Added
4519         repeat op, so that "foo" x 10 can be done.  Filled in PerlString
4520         vtables appropriately.  Also tests for same, new pmc_perlstring.t
4521         to hold tests specific to PerlStrings, as the pmc.t file is taking
4522         too long to run and slowing down my thought processes.
4524         Changes to strings.c etc to take string functions.
4526         Some changes to the strings docs, but not yet complete.
4528         Also, PerlString was copying pointers to strings, rather than
4529         strings themselves, so some action-at-a-distance bugs were creeping
4530         in, I think I've fixed this so everything works nicely.
4532 2001-12-28 04:56  gregor
4534         * examples/assembly/pmcmops.pasm:
4535         PMC-using version of mops.pasm.
4537         Courtesy of: Bryan C. Warnock <bwarnock@raba.com>
4539 2001-12-28 04:56  gregor
4541         * examples/assembly/.cvsignore:
4542         Small tinkering. Removed old stuff, etc.
4544 2001-12-28 01:26  gregor
4546         * examples/mops/mops.scheme:
4547         Scheme example. Major GC thrashing on umb-scheme here. Probably due
4548         to the very un-scheme-like implementation.
4550 2001-12-28 01:19  gregor
4552         * examples/mops/mops.c:
4553         Some people's picky compilers don't like us redefineing time(), so
4554         we call it time_n().  :)
4556 2001-12-28 00:28  gregor
4558         * examples/mops/: README, mops.ps:
4559         Added a PostScript example and a README.
4561 2001-12-27 23:57  gregor
4563         * Makefile.in:
4564         Build the C mops translation in examples/mops/mops.c
4566 2001-12-27 23:56  gregor
4568         * examples/mops/: .cvsignore, mops.c, mops.pl, mops.py, mops.rb:
4569         Some translations of mops.pasm into other languages, for inner loop
4570         performance comparisons.
4572 2001-12-27 22:40  gregor
4574         * examples/assembly/mops.pasm:
4575         Fixed erroneous file name in header comment.
4577 2001-12-27 21:18  gregor
4579         * pbc2c.pl:
4580         One-liner to avoid no-op gotos to the next op.
4582 2001-12-27 21:06  gregor
4584         * runops_cores.c:
4585         Fixed -p (profiling). Slow runops core was doing unconditional
4586         tracing, when it should have been checking the flags.
4588 2001-12-27 18:50  ajgough
4590         * core.ops, string.c, chartypes/unicode.c, chartypes/usascii.c,
4591         classes/perlstring.pmc, include/parrot/chartype.h,
4592         include/parrot/string.h, t/op/pmc.t, t/op/string.t, t/pmc/pmc.t:
4593         dded get_digit() to chartypes  * Added string_bool() to strings  *
4594         Added if_s_ic op, to use same  * Added (PerlString)->get_bool stuff
4595         to perlstring.pmc  * Tests for above, also a for couple of other
4596         ops without tests
4598         The unicode chartype has only had placeholders added for get_digit,
4599         string_to_num has been updated to use type->get_digit rather than
4600         the previous ascii-isms.  Some remain, but we need to carefully
4601         define what we mean by a number before we let thousands of code
4602         points act as a minus sign.
4604 2001-12-27 18:32  dan
4606         * classes/: perlint.pmc, perlnum.pmc, perlstring.pmc: Silenced some
4607         compiler warnings.
4609         Courtesy of "David  Jacobs" <jacobsl001@hawaii.rr.com>
4611 2001-12-27 18:23  dan
4613         * t/op/bitwise.t: More tests.
4615         Courtesy of "David Jacobs" <jacobsl001@hawaii.rr.com>
4617 2001-12-27 17:08  gregor
4619         * MANIFEST, Makefile.in, config_h.in, core.ops, interpreter.c,
4620         make_vtable_ops.pl, obscure.ops, ops2c.pl, ops2pm.pl, test_main.c,
4621         trace.c, Parrot/OpsFile.pm, include/parrot/interp_guts.h,
4622         include/parrot/interpreter.h, include/parrot/oplib.h,
4623         lib/Parrot/OpsFile.pm, platforms/generic.c, platforms/generic.h,
4624         platforms/win32.c, platforms/win32.h:
4625         Initial code for dynamic loading of oplibs, applied for now to the
4626         loading of the core_prederef oplib when the -P flag is passed to
4627         test_parrot.
4629           * MANIFEST: Added entry for the new file include/parrot/oplib.h.
4631           * Makefile.in:
4633               * Added libcore_prederef_0_3.so to the shared target.
4634               * Added build rule for libcore_prederef_0_3.so.
4635               * Added dependencies on Parrot/OpsFile.pm and Parrot/Op.pm
4636                 to Parrot/OpLib/core.pm, core_ops.c and
4637                 core_ops_prederef.c.
4639           * config_h.in: Added defines for constants used to locate the
4640             core oplib's init function, and the core_prederef oplib for
4641             dynaloading.
4643           * core.ops: Added a VERSION = 0.3 line near the top. This is now
4644             required by Parrot/OpsFile.pm.
4646           * interpreter.c:
4648               * Added init_prederef() and stop_prederef() functions to load
4649                 and unload the core_prederef oplib when we are in prederef
4650                 mode.
4652                 NOTE: In all likelihood, the prederef stuff has a rapidly
4653                 dwindling time-to-live. The JIT should provide vastly
4654         superior
4655                 performance, and loading an alternate set of core_ops isn't
4656                 the real direction for the dynaloading stuff. Loading
4657                 *additional* ops is. It does provide a handy test case for
4658         the
4659                 general idea for now, though.
4661               * Gets the core copcode table, etc. via the core oplibs oplib
4662                 info pointer, as returned by the core oplib's init
4663         function.
4665           * ops2c.pl
4667               * Make use of the version, major version and minor version
4668                 stuff parsed by Parrot/OpsFile.pm
4670               * The only exported symbol in the generated files is the init
4671                 function now, since that returns an oplib info struct
4672                 pointer, and all the important stuff can be found there.
4674           * ops2pm.pl: Put the oplib version in the generated .pm file.
4676           * test_main.c: Small changes necessitated by changes in the names
4677             of some members of the interpreter struct.
4679           * trace.c: Small changes necessitated by changes in the names
4680             of some members of the interpreter struct.
4682           * Parrot/OpsFile.pm: Require a "VERSION = x.y" line before any
4683             ops are found.
4685           * include/parrot/interp_guts.h: Small changes necessitated by
4686             changes in the names of some members of the interpreter struct.
4688           * include/parrot/interpreter.h: Include the new
4689             include/parrot/oplib.h header. Small changes to the oplib-
4690             related members.
4692           * include/parrot/oplib.h: Define the type of the oplib init
4693             function, and the struct type for the oplib info.
4695           * platforms/*.[hc]: Remove the second argument to Parrot_dlopen()
4696             since not all platforms have it. For those that do, a default
4697             second argument is provided.
4699 2001-12-26 05:12  gregor
4701         * Configure.pl:
4702         Make jitarch calculation not get tripped up by extra components to
4703         archname.
4705 2001-12-24 21:23  gregor
4707         * jit.c, jit2h.pl, Parrot/Jit/i386-bsd.pm,
4708         Parrot/Jit/i386-linux.pm, Parrot/Jit/i386-nojit.pm,
4709         include/parrot/jit.h, jit/i386/core.jit, jit/i386/lib.jit,
4710         jit/i386/string.jit, lib/Parrot/Jit/i386-bsd.pm,
4711         lib/Parrot/Jit/i386-linux.pm, lib/Parrot/Jit/i386-nojit.pm:
4712         Some more JIT work from Daniel Grunblatt.
4714           * Ops added set_s_s, set_s_sc, bsr_i and eq_s_sc but using calls
4715         to C
4716             functions.
4718           * Added JUMP(END) to place the number of bytes to the end of the
4719         current
4720             op.
4722           * The *.jit files syntax changed.
4724           * Added jit/i386/lib.jit to place handly functions as jump that
4725         take as
4726             argument the address where is the opcode number to jump to.
4728           * There is a bug at some point, but I will start writing
4729             jit/i386/string.jit and jit/i386/stacks.jit so that we don't
4730         have use
4731             calls, which make the jit as slow as the interpreter.
4733         Courtesy of: Daniel Grunblatt <daniel@grunblatt.com.ar>
4735 2001-12-24 03:46  dan
4737         * Parrot/OpTrans.pm, Parrot/OpTrans/C.pm, Parrot/OpTrans/CGoto.pm,
4738         Parrot/OpTrans/CPrederef.pm, lib/Parrot/OpTrans.pm,
4739         lib/Parrot/OpTrans/C.pm, lib/Parrot/OpTrans/CGoto.pm,
4740         lib/Parrot/OpTrans/CPrederef.pm: Commented out the use warnings.
4741         Perls before 5.6.0 don't like it.
4743 2001-12-22 16:02  ajgough
4745         * t/op/stacks.t: stopped skipping tests we can run now.  added
4746         clonep tests.
4748 2001-12-21 21:13  gregor
4750         * jit2h.pl, Parrot/Jit/i386-bsd.pm, Parrot/Jit/i386-linux.pm,
4751         Parrot/Jit/i386-nojit.pm, lib/Parrot/Jit/i386-bsd.pm,
4752         lib/Parrot/Jit/i386-linux.pm, lib/Parrot/Jit/i386-nojit.pm:
4753         Fixed some package name goofs.
4755         Thanks to: Andy Dougherty <doughera@mail.lafayette.edu>
4757 2001-12-21 19:32  gregor
4759         * MANIFEST, Makefile.in, core.ops, interpreter.c,
4760         make_vtable_ops.pl, obscure.ops, ops2c-prederef.pl, ops2c.pl,
4761         pbc2c.pl, stacks.c, Parrot/Op.pm, Parrot/OpTrans.pm,
4762         Parrot/Opcode.pm, Parrot/OpsFile.pm, lib/Parrot/Op.pm,
4763         lib/Parrot/OpTrans.pm, lib/Parrot/Opcode.pm, lib/Parrot/OpsFile.pm,
4764         Parrot/OpTrans/C.pm, Parrot/OpTrans/CGoto.pm,
4765         Parrot/OpTrans/CPrederef.pm, docs/intro.pod, include/parrot/op.h,
4766         include/parrot/stacks.h, lib/Parrot/OpTrans/C.pm,
4767         lib/Parrot/OpTrans/CGoto.pm, lib/Parrot/OpTrans/CPrederef.pm:
4768         Changes to syntax of .ops files and refactoring of ops2c*.pl and
4769         pbc2c.pl.
4771           * Removed ops2c-prederef.pl
4773           * (unrelated) Removed vestigial Parrot/Opcode.pm file.
4775           * Added Parrot/OpTrans.pm, Parrot/OpTrans/C.pm (needed for old
4776             functionality of ops2c.pl), Parrot/OpTrans/CPrederef.pm (needed
4777             for old functionality of ops2c-prederef.pl), and
4778             Parrot/OpTrans/CGoto.pm (needed for functionality of pbc2c.pl).
4780             "OpTrans" == "Op Transformation"
4782           * Makefile.in modifications to call "ops2c.pl C" where it used
4783             to be just "ops2c.pl", and "ops2c.pl CPrederef" where it used
4784             to be "ops2c-prederef.pl".
4786           * core.ops and obscure.ops changes to syntax. Semantics are
4787             identical with previous version:
4789               return HALT         -->  HALT()
4790               return AUTO         -->  goto NEXT()
4791               return RETREL(...)  -->  goto OFFSET(...)
4792               return RESTART(*)   -->  restart NEXT()
4794             Also, pop_generic_entry() stuff (local var + 5 lines of code)
4795             for dest-less branch ops replaced with new notation "goto
4796         POP()",
4797             which uses the new pop_dest() function in stacks.c. This also
4798             allowed these ops to become 'inline' ops, since they no longer
4799             have local variables.
4801             The 'ret' op also became simplified to just "goto POP()", and
4802             also became an inline op.
4804           * interpreter.c reflects the change in type name:
4806               prederef_op_func_t   -->  op_func_prederef_t
4808             that occurred in include/parrot/op.h
4810           * make_vtable_ops.pl uses "goto NEXT()" where it used to use
4811             "return AUTO".
4813           * ops2c.pl is now generic. Its first argument is the last
4814             package name component of a subclass of Parrot::OpTrans. These
4815             subclasses all have full names of the form Parrot::OpTrans::*.
4816             An instance of the class is created and later consulted for
4817             various bits of information needed to generate the C code.
4819           * pbc2c.pl now uses an instance of Parrot::OpTrans::CGoto to
4820             contain its transformation rules.
4822           * stacks.c has a new function pop_dest() that pops a destination
4823             off the control stack. include/parrot/stacks.h has the
4824         prototype.
4826           * Parrot/Op.pm now supports the syntax generated by
4827         Parrot::OpsFile
4828             for the "goto POP" case.
4830             Also, the source() method now expects its second argument to be
4831             an object that ISA Parrot::OpTrans. Methods of this object are
4832             called to perform the substitutions.
4834           * Parrot/OpsFile.pm supports the change in notation mentioned
4835             above.
4837           * docs/intro.pod reflects these changes.
4839           * include/parrot/op.h: Renamed type prederef_op_func_t to
4840             op_func_prederef_t because it made the implementation of the
4841             shared ops2c.pl easier.
4843 2001-12-21 13:47  gregor
4845         * Configure.pl, config_h.in, interpreter.c, test_main.c:
4846         Both test_parrot (via test_main.c) and the intepreter itself (via
4847         interpreter.c) use the JIT_CAPABLE config to decide whether to
4848         actually attempt JIT operation, or to complain.
4850 2001-12-20 23:25  gregor
4852         * core.ops, make_vtable_ops.pl, obscure.ops, Parrot/OpsFile.pm,
4853         lib/Parrot/OpsFile.pm, docs/intro.pod, include/parrot/op.h:
4854         Changes to the format of *.ops files. An attempt to provide hints
4855         for future opfunc processing logic that wants to know if an opfunc
4856         is simple enough to JIT (e.g.) inline, or not.
4858         See the POD in Parrot/OpsFile.pm and the updated docs/intro.pod in
4859         addition to The Source in core.ops and Parrot/OpsFile.pm for more
4860         info.
4862 2001-12-20 21:28  gregor
4864         * Configure.pl, jit.c, jit2h.pl, include/parrot/jit.h,
4865         jit/i386/core.jit:
4866         More JIT stuff:
4868           * A fix to Gregor's last Configure.pl update.
4870           * Remove the need for hardcoded "\n" at the end of the "%f"
4871             format for printing floating-point numbers.
4873           * New, improved *.jit syntax for references to registers,
4874             e.g. INT_REG[n].
4876           * Support for C() improved.
4878         Courtesy of: Daniel Grunblatt <daniel@grunblatt.com.ar>
4880 2001-12-20 16:55  dan
4882         * MANIFEST: Added jit.c to the manifest.
4884 2001-12-20 15:24  simon
4886         * jit2h.pl:
4887         Off-by-one error fixed.
4889 2001-12-20 14:18  simon
4891         * jit/i386/core.jit:
4892         Just a noop. It's the only machine code I know.
4894 2001-12-20 13:10  gregor
4896         * Configure.pl, Makefile.in, jit2h.pl:
4897         Attempt to fix Win32 builds.
4899           * No more empty braces in include/parrot/jit_struct.h
4901         Also:
4903           * ${jitarchname} has the *bsd -> bsd substitution on it, but
4904         ${archname}
4905             does not.
4907 2001-12-20 11:56  simon
4909         * Makefile.in:
4910         De-cp
4912 2001-12-20 01:57  gregor
4914         * Configure.pl, MANIFEST, Makefile.in, interpreter.c, jit.c,
4915         jit2h.pl, test_main.c, Parrot/.cvsignore, Parrot/Jit/i386-bsd.pm,
4916         Parrot/Jit/i386-linux.pm, Parrot/Jit/i386-nojit.pm, docs/jit.pod,
4917         include/parrot/.cvsignore, include/parrot/interpreter.h,
4918         include/parrot/jit.h, jit/i386/core.jit, jit/i386/string.jit,
4919         lib/Parrot/Jit/i386-bsd.pm, lib/Parrot/Jit/i386-linux.pm,
4920         lib/Parrot/Jit/i386-nojit.pm:
4921         Initial JIT implementation.
4923           * Enabled with test_parrot -j. 20x speed boosts seen.
4925           * Unsupported archs mapped to i386-nojit. Don't do -j on them.
4927           * More to come.
4929         Courtesy of: Daniel Grunblatt <daniel@grunblatt.com.ar>
4931 2001-12-20 01:53  jgoff
4933         * MANIFEST, core.ops, t/op/key.t: MANIFEST - Removed t/op/key.t
4934         core.ops - Removed key operators, they should be hidden from the
4935         assembler.  t/op/key.t - No need to test the nonexistent key
4936         operators.
4938 2001-12-20 00:13  ajgough
4940         * core.ops, t/op/stacks.t: Added tests for entrytype op, noticed
4941         that asking for type of entry at depth causes segfault as stack is
4942         zero based, fixed cmp in core.ops to reflect this.  Last test is
4943         skipped as we don't do exceptions right yet.
4945 2001-12-19 19:11  ajgough
4947         * t/op/debuginfo.t: Added C<end> ops to debuginfo.t, as thier
4948         non-being was causing Irix "issues".
4950 2001-12-19 03:37  jgoff
4952         * languages/miniperl/Miniperl/t/: 001_tokenizer.t, 003_generator.t,
4953         004_combined.t: Changed tests to make sure they pass with the
4954         addition of the clone operator.
4956 2001-12-18 20:06  gregor
4958         * interpreter.c, include/parrot/interp_guts.h:
4959         Performance improvements to the predereferencing code path
4960         suggested to me over lunch yesterday by my friend John Kennedy.
4961         The goal is to remove the additional test in the inner loop that
4962         was checking for NULL to decide whether or not to call the
4963         prederef() function. Also moved pc & pc_prederef syncing outside
4964         the inner loop.
4966           * Changed the prototype of the prederef() function in
4967             interpreter.c to match that of an opfunc.
4969           * Instead of initializing the prederef void * array with NULL,
4970             we initialize it with pointers to prederef().
4972           * prederef() now returns the prederef_pc passed in, so that
4973             after predereferencing, the same location is executed, but now
4974             with the real code being called.
4976         Thanks to: John Kennedy
4978 2001-12-18 19:59  ajgough
4980         * t/: op/pmc.t, pmc/pmc.t: Added some more num -> string tests
4981         (including some more in the skipped string -> int tests).
4983 2001-12-18 07:06  jgoff
4985         * MANIFEST: Forgot to add classes/perlarray.pmc
4987 2001-12-18 07:05  jgoff
4989         * Makefile.in, core.ops, global_setup.c, vtable.tbl,
4990         classes/Makefile.in, classes/default.pmc, classes/perlarray.pmc,
4991         classes/perlint.pmc, classes/perlnum.pmc, classes/perlstring.pmc,
4992         classes/perlundef.pmc, include/parrot/pmc.h, t/op/pmc.t,
4993         t/pmc/pmc.t: Big update...  Makefile.in - Added
4994         classes/perlarray.pmc core.ops - Added new series of set() ops for
4995         arrays global_setup.c - Initialized perlarray classes/Makefile.in -
4996         Added perlarray.pmc classes/*.pmc - Added
4997         set_{integer,number,string}_index and
4998         get_{integer,number,string}_index include/parrot/pmc.h - Added new
4999         type t/op/pmc.t - Added basic array test
5001         classes/perlarray.pmc - Added
5003 2001-12-17 05:29  jgoff
5005         * languages/miniperl/Miniperl/Generator.pm: Altered miniperl code
5006         generator to use clone operator instead of set Px,Py
5008 2001-12-17 05:25  jgoff
5010         * core.ops, classes/perlint.pmc, classes/perlnum.pmc,
5011         classes/perlstring.pmc, t/op/pmc.t, t/pmc/pmc.t: Added clone
5012         PMC,PMC operator. Uses the clone() vtable entries.
5014 2001-12-17 04:51  jgoff
5016         * MANIFEST: Added miniperl test suite, removed old Miniperl/Test.pm
5017         entry
5019 2001-12-17 04:41  jgoff
5021         * languages/miniperl/Miniperl/Makefile.PL: Now in its proper
5022         directory...
5024 2001-12-17 04:41  jgoff
5026         * languages/miniperl/Makefile.PL: Moved it to the proper directory.
5028 2001-12-17 04:39  jgoff
5030         * languages/miniperl/: Makefile.PL, Miniperl.pm, miniperlc, mpc,
5031         Miniperl/Tokenizer.pm: Makefile.PL to let us run the test suite in
5032         t/
5034 2001-12-17 04:27  jgoff
5036         * languages/miniperl/Miniperl.pm: Latest version of the driver.
5037         Admittedly it's a little thin on true OO, but the algorithms are
5038         the key.
5040 2001-12-17 04:24  jgoff
5042         * languages/miniperl/Miniperl/t/: 001_tokenizer.t, 002_parser.t,
5043         003_generator.t, 004_combined.t: Much more comprehensive test suite
5044         for the codegen et al
5046 2001-12-17 04:22  jgoff
5048         * languages/miniperl/Miniperl/: Generator.pm, Parser.pm,
5049         Tokenizer.pm: Newer codegen, tightened up parser output, added hash
5050         key handling
5052 2001-12-17 04:20  jgoff
5054         * languages/miniperl/Miniperl/Test.pm: The newer test suite is much
5055         more comprehensive.
5057 2001-12-17 04:17  jgoff
5059         * languages/miniperl/foo.mpl: Test file that'll be outdated by
5060         changes to the new compiler
5062 2001-12-17 04:11  jgoff
5064         * languages/miniperl/t/: harness, 001_basic/basic.t: Moving testing
5065         files to Miniperl/
5067 2001-12-16 14:11  simon
5069         * classes/perlint.pmc, examples/assembly/mops_p.pasm, t/op/pmc.t,
5070         t/pmc/pmc.t:
5071         Fix bogus assumption that multiplying an integer by an integer
5072         yields an integer.
5074 2001-12-16 12:48  simon
5076         * make_vtable_ops.pl:
5077         Fixed op exploder.
5079 2001-12-16 12:45  simon
5081         * make_vtable_ops.pl, Parrot/Vtable.pm, lib/Parrot/Vtable.pm:
5082         Expand multimethod vtable ops.
5084 2001-12-16 12:04  simon
5086         * Makefile.in:
5087         Added 'cvsclean' which doesn't zap CVS/* directories.
5089 2001-12-15 01:50  dan
5091         * include/parrot/string.h: Fixed typo in string.h. lagnuage,
5092         indeed!
5094         Thanks to grunblatt fom #parrot for the catch
5096 2001-12-15 01:39  dan
5098         * .cvsignore, Configure.pl, MANIFEST, languages/jako/Makefile.in,
5099         languages/miniperl/.cvsignore, languages/miniperl/Makefile,
5100         languages/miniperl/Makefile.in,
5101         languages/miniperl/Miniperl/Test.pm, languages/scheme/.cvsignore,
5102         languages/scheme/Makefile, languages/scheme/Makefile.in: Build
5103         tweaks.
5105         Courtesy of: Jay McCarthy <jay@kenyamountain.com>
5107 2001-12-14 17:39  dan
5109         * t/op/trans.t: More trans tests.
5111         Courtesy of: Simon Glover <scog@roe.ac.uk>
5113 2001-12-14 07:41  robert
5115         * make.pl: - define MAKE macro - topological sort and subgraph
5116         order - start of timestamp stuff   (still badly broken)
5118 2001-12-14 06:06  jgoff
5120         * optimizer.pl: Hopefully this should do the trick..
5122 2001-12-14 06:04  jgoff
5124         * Parrot/Optimizer.pm, lib/Parrot/Optimizer.pm: Optimizer
5126           optimizer.pl is the stub, Parrot/Optimizer.pm is the driver.
5128           The optimizer performs its work on a file post-macro expansion.
5129           Run it on a .pasm file, preferably with some trivially reducible
5130         operations
5131           like 'add I0,5,-6' or 'mul I0,I1,0'
5133 2001-12-14 05:48  robert
5135         * Makefile.in: case error EXE -> exe
5137 2001-12-14 05:42  robert
5139         * Makefile.in: remove legacy PDISASM macro
5141 2001-12-14 04:01  dan
5143         * classes/Makefile.in, languages/Makefile.in: Makefile tweaks for
5144         better Win building
5146         Courtesy of: Garrett Goebel <garrett@scriptpro.com>
5148 2001-12-13 22:03  dan
5150         * Configure.pl, Makefile.in, Parrot/Test.pm,
5151         languages/scheme/Makefile, languages/scheme/Scheme/Test.pm,
5152         lib/Parrot/Test.pm: Parrot test prog's now a config variable, so we
5153         can change it without having to change the world.
5155 2001-12-13 21:57  dan
5157         * core.ops, interpreter.c, docs/parrot_assembly.pod,
5158         include/parrot/interpreter.h, t/op/debuginfo.t: Added current
5159         file/line/package to interp structure, with ops to get and set
5160         them. Now we can know where we are!
5162 2001-12-13 19:43  dan
5164         * Configure.pl, Makefile.in: Makefile tweaks to hopefully make
5165         WinXP builds work out of the box
5167 2001-12-13 17:05  dan
5169         * Makefile.in, Parrot/Test.pm, lib/Parrot/Test.pm: Change test prog
5170         name again--makes case-insensitive systems much happier.
5172 2001-12-13 16:21  dan
5174         * core.ops, key.c, string.c, test_main.c, trace.c,
5175         classes/Makefile.in, include/parrot/trace.h: Fixes to clean up
5176         compiler warnings
5178         Courtesy of: Josh Wilmes <josh@sky.net>
5180 2001-12-13 13:33  gregor
5182         * languages/jako/Makefile.in:
5183         Improved the method of calling the assembler.
5185 2001-12-13 13:30  gregor
5187         * languages/jako/Makefile.in:
5188         Improve the build process. It now works from the main parrot dir,
5189         and from the languages/jako directory. Now uses the .SUFFIXES
5190         target and generic build rules to reduce clutter in the
5191         Makefile.in.
5193 2001-12-13 13:29  gregor
5195         * languages/jako/.cvsignore:
5196         Ignore the (now generated Makefile), and don't ignore .list files
5197         anymore, since we aren't generating them.
5199 2001-12-13 13:11  gregor
5201         * Configure.pl, MANIFEST, Makefile.in, languages/.cvsignore,
5202         languages/Makefile.in, languages/jako/Makefile,
5203         languages/jako/Makefile.in:
5204         Added a 'languages' target to the top-level Makefile.in, and
5205         modified the jako build procedure to involve Makefile.in -->
5206         Makefile too (done by Configure.pl).
5208         NOTE: languages/jako and language/scheme are built.
5209         languages/miniperl wasn't building right, so it was left off for
5210         now.
5212 2001-12-13 12:15  gregor
5214         * MANIFEST:
5215         Added MAINTAINER file and mandelzoom.jako from languages/jako to
5216         the MANIFEST.
5218 2001-12-13 12:12  gregor
5220         * .cvsignore, MANIFEST, Makefile.in, core.ops, interpreter.c,
5221         ops2c-prederef.pl, ops2c.pl, test_main.c,
5222         include/parrot/interp_guts.h, include/parrot/interpreter.h,
5223         include/parrot/op.h, include/parrot/oplib/.cvsignore:
5224         Welcome to the Just-in-Time Predereferencing Patch!
5226         This patch implements a "predereferencing" mode for parrot. That
5227         means that a lot of the dereferencing you see in DO_OP and in the
5228         opfuncs is done up front (really, JIT) rather than as and each time
5229         we execute each op in the byte code stream.
5231         This works by creating an array of void pointers with the same
5232         number of elements as the byte code array. This array starts out
5233         life zero-initialized.  Each time we go to execute an op, we check
5234         first to see if we have a NULL pointer at *cur_opcode. If so, we
5235         know we haven't done our predereferencing yet (this is the JIT
5236         part), so we call the prederef() function with sufficient args that
5237         it can go look up opfunc pointers and op arg types and put the
5238         opfunc and arg pointers at cur_opcode[0] .. cur_opcode[N - 1],
5239         where N is the number of args (counting the op itself as one arg).
5241         We assume that sizeof(INTVAL) <= sizeof(void *), so we can continue
5242         to have inline INTVAL constants.
5244         I've been getting about a 22% speed increase over vanilla code path
5245         when I compile with -O0. Advantage decreases at -O9 here. I tested
5246         with mops.pbc, and also by temporarily putting the -P flag in
5247         Parrot/Test.pm and running all the tests. So, this code is as
5248         correct as the test suite can detect.
5250         Here's how it plays out in the code:
5252           * New script ops2c-prederef.pl
5254             Copy-paste code reuse from ops2c.pl. Modified to expect the
5255         args to give
5256             a void ** cur_opcode and to return a void **.
5258           * Modified ops2c.pl
5260               * opfuncs are now static. Who needs to call them by name from
5261         outside,
5262                 anyway? They are accessed via the opfunc table.
5264               * Some MACRO stuff to make things work whether we prederef or
5265         not. It
5266                 may be possible to get rid of these some day if other folks
5267         agree
5268                 that we should be using CODE object pointers + offsets as
5269         our PC
5270                 rather than raw pointers to either opcode_t's or (void *)'s
5271                 (depending on prederef mode or no).
5273           * core.ops modified to be usable to build both kinds of opfuncs.
5274         For now,
5275             this means:
5277               * calls to push_generic_entry(... cur_opcode ...) were
5278         changed to
5279                 push_generic_entry(... CUR_OPCODE ...), where CUR_OPCODE is
5280         a
5281                 macro that does the right thing in both kinds of ops.c
5282         files.
5284                 This is applicable to the bsr op. If we treated
5285         destinations as
5286                 (Code PMC + local offset) rather than as
5287         pointer-to-memory-somewhere,
5288                 this wouldn't be a big deal. We may need to do that at some
5289         point
5290                 anyway, so that when you jump around and return not only do
5291         you have
5292                 the right PC (pointer, today), but you also have the
5293         thread/interpreter
5294                 knowing what chunk of bytecode it is in at all times
5295         (assuming we'll
5296                 allow reflection, as in ops that query or affect the
5297         current CODE PMC).
5299               * runinterp was modified. Instead of copying the top-level
5300         PackFile struct
5301                 and blasting its byte_code pointer, we simply call runops
5302         on the new
5303                 interp, passing in the pointer to the current interp's code
5304         and the
5305                 offset into that code at which to start (this last arg used
5306         to be a
5307                 pointer PC, now its an offset PC).
5309           * include/parrot/op.h
5311               * new typedef for prederef opfuncs (they return void **)
5313           * include/parrot/interp_guts.h
5315               * New DO_OP_PREDEREF() macro described above.
5317           * include/parrot/interpreter.h
5319               * New prototype of runops() -- see below.
5321               * resume_addr field changed to resume_flag and resume_offset
5322         pair of fields.
5323                 We might be resuming from interp using prederef to one not
5324         or vice-versa,
5325                 so pointers between the two don't play nice together.
5326         Offsets are beautiful.
5328               * New PARROT_PREDEREF_FLAG constant
5330           * interpreter.c
5332               * include "parrot/oplib/core_ops_prederef.h"
5334               * prederef() function described above.
5336               * runops_prederef() runops variant. Uses DO_OP_PREDEREF()
5337         macro as its core.
5339               * runops() modified to take size_t CODE-relative offset PC
5340         rather than
5341                 pointer PC. This made other things workable and doesn't
5342         seem to have lost
5343                 anything important (IMO).
5345           * test_main.c
5347               * New flag '-P' to enable predereferencing.
5349           * Makefile modified to build core_ops_prederef.c from core.ops
5350         via
5351             ops2c-prederef.pl.
5353             BTW, also added missing $(INC)/interp_guts.h to H_FILES.
5355             Added core_ops_prederef$(O) to O_FILES
5357 2001-12-13 12:12  gregor
5359         * languages/jako/MAINTAINER:
5360         Thought it would be nice to put this right in the code...
5362 2001-12-13 04:36  jgoff
5364         * languages/miniperl/Miniperl/Generator.pm: Commented out
5365         debugging, fixed register spillover algorithm
5367 2001-12-13 04:23  jgoff
5369         * make.pl: Found and fixed obob in the parser (Wasn't parsing last
5370         line) Restructured a bit of the dependency generator to fix a
5371         different obob bug.
5373 2001-12-13 03:43  robert
5375         * MANIFEST, docs/opcodes.pod: remove old docs/opcodes.pod
5377 2001-12-13 03:03  jgoff
5379         * make.pl: Added make.pl
5381 2001-12-13 02:44  jgoff
5383         * languages/miniperl/Miniperl.pm: Nearly-complete 'make'
5384         replacement in perl.  Non-compliant bits - Takes absolutely -NO-
5385         special flags...                     - Dies on undefined macros
5386         such as $(PDISASM) in current make                     - Dies on
5387         recursive macro expansions                       (Doesn't test for
5388         mutual or multipart loops)                     - In general it
5389         seems to be a little less lenient...  Missing bits - File
5390         mod/creation times aren't being looked at              - Actions
5391         aren't being taken              - The few funky variables ($@, $<)
5392         aren't being dealt with Bugs - Line numbers are slipping a bit.
5394 2001-12-13 02:29  jgoff
5396         * languages/miniperl/Miniperl/: Generator.pm, Parser.pm:
5397         Reconstructing files to make the parser flow a little better.
5399 2001-12-13 00:51  dan
5401         * resources.c: Be a bit less wasteful with resources that don't
5402         need to be aligned
5404 2001-12-12 18:22  dan
5406         * Makefile.in: D'oh! Fixed looping makefile bug.
5408         Courtesy of: "Jaen Saul" <jaen@saul.ee>
5410 2001-12-12 16:23  jgoff
5412         * languages/miniperl/t/001_basic/basic1.scheme: Bogus entry
5414 2001-12-12 16:22  jgoff
5416         * MANIFEST: Manifest additions for languages/miniperl
5418 2001-12-12 16:19  jgoff
5420         * languages/miniperl/t/001_basic/: basic.t, basic1.scheme: Basic
5421         tests. These are left over from the Scheme suite and shouldn't be
5422         used yet.
5424 2001-12-12 16:18  jgoff
5426         * languages/miniperl/: Miniperl/Generator.pm, Miniperl/Parser.pm,
5427         Miniperl/Test.pm, Miniperl/Tokenizer.pm, t/harness: Miniperl base
5428         modules. Miniperl/ is where the real work gets done.  t/ is largely
5429         vacant because it isn't ready to survive real tests yet.
5431 2001-12-12 16:17  jgoff
5433         * languages/miniperl/: Makefile, Miniperl.pm, foo.mpl, miniperlc,
5434         mpc: Final go-round, hopefully.
5436         languages/miniperl/Makefile - Used basically to run tests, as there
5437         is nothing                               here that needs to be
5438         dynamically built.  languages/miniperl/Miniperl.pm - Stub module
5439         that calls the real Miniperl/ mods languages/miniperl/foo.mpl -
5440         Sample miniperl file.  languages/miniperl/miniperlc - Miniperl
5441         compiler stub
5443 2001-12-12 16:09  dan
5445         * Configure.pl: Setting a variable with the make command name is
5446         useful.
5448 2001-12-12 15:07  simon
5450         * Makefile.in, languages/jako/Makefile, languages/scheme/Makefile:
5451         Recursive make considered "ow, don't do that".
5453 2001-12-12 14:45  dan
5455         * Makefile.in: Makefile had some non-portable code. (Okay, a lot of
5456         non-portable code) Killing builds on Win32 native. Small patch
5457         applied which hopefully fixes it.
5459 2001-12-12 06:12  ajgough
5461         * classes/Makefile.in: perl is $(PERL), you know it makes sense.
5463 2001-12-12 06:08  ajgough
5465         * Makefile.in: perl is $(PERL).
5467 2001-12-12 06:00  ajgough
5469         * t/op/integer.t: Added tests to integer.t so that all permutations
5470         of arguments are actually called at some point.
5472 2001-12-12 05:18  ajgough
5474         * t/op/time.t: I can't sleep, but I don't see why parrot shouldn't.
5475          Tests for sleep i|ic
5477 2001-12-12 05:09  ajgough
5479         * t/op/stacks.t: Added pushp and popp register stack tests.
5481 2001-12-12 04:51  ajgough
5483         * t/op/stacks.t: Added tests for save and restore, for all register
5484         types.  Let there be Haiku.
5486 2001-12-12 04:27  ajgough
5488         * t/op/basic.t: bsr_i test.  You know you want it.
5490 2001-12-12 02:55  ajgough
5492         * MANIFEST: Added hints/os2.pl to MANIFEST.
5494 2001-12-12 02:52  jgoff
5496         * core.ops, key.c: Final checkin... These are actually the correct
5497         copies.
5499 2001-12-12 02:12  jgoff
5501         * include/parrot/key.h: key.c - Removed a few functions,
5502         generalized set_element_value and element_value         to accept
5503         KEY_PAIRs from core.ops include/parrot/key.h - Modified header.
5504         core.ops - Modified to accept the new return style.
5506         This is a prelude to adding virtual-table methods to allow hashing
5507         &c. Expect at least one or two more redesigns before this settles
5508         down. However, it still passes the original tests.
5510 2001-12-11 13:35  gregor
5512         * runops_cores.c:
5513         Fixed a typo.
5515 2001-12-11 12:03  gregor
5517         * .cvsignore:
5518         Don't ignore test_prog, but do ignore parrot.
5520 2001-12-11 12:03  gregor
5522         * classes/.cvsignore:
5523         Ignore the generated file default.h
5525 2001-12-11 04:07  jgoff
5527         * key.c: Key source
5529 2001-12-11 04:05  jgoff
5531         * include/parrot/key.h, t/op/key.t: Needed header file, new test
5533 2001-12-11 04:00  jgoff
5535         * core.ops: Added new key aggregate operations to core ops.
5537 2001-12-11 04:00  jgoff
5539         * include/parrot/parrot.h: Added key.h to header list
5541 2001-12-11 03:59  jgoff
5543         * MANIFEST: Added key.c, include/parrot/key.h, t/op/key.t
5545 2001-12-11 03:58  jgoff
5547         * Makefile.in: Added implementation of key aggregates.
5549 2001-12-08 23:07  simon
5551         * README:
5552         README good to go.
5554 2001-12-08 23:05  simon
5556         * Configure.pl, Makefile.in, README, Parrot/Test.pm,
5557         docs/intro.pod, languages/jako/Makefile, languages/scheme/Makefile,
5558         languages/scheme/Scheme/Test.pm, lib/Parrot/Test.pm:
5559         test_prog? What is test_prog?
5561 2001-12-08 22:57  simon
5563         * ChangeLog:
5565         Oops, the changelog commit was on *this* machine.
5567 2001-12-08 22:56  simon
5569         * NEWS:
5570         Updates to NEWS and ChangeLog pre-release.
5572 2001-12-08 22:07  simon
5574         * MANIFEST, Makefile.in, classes/Makefile.in, classes/default.pmc,
5575         classes/perlnum.pmc, classes/pmc2c.pl:
5576         Add "default" PMC vtable so you can inherit implied stuff.
5578 2001-12-08 21:24  simon
5580         * Parrot/PackFile.pm, docs/parrot.pod, docs/parrotbyte.pod,
5581         docs/vtables.pod, lib/Parrot/PackFile.pm:
5582         Getting the documentation up to scratch.
5584 2001-12-08 21:21  simon
5586         * classes/pmc2c.pl:
5587         Allow inheriting from default class.
5589 2001-12-07 20:43  gregor
5591         * examples/assembly/queens.pasm:
5592         Regenerated the file with the latest jakoc.
5594 2001-12-07 20:29  simon
5596         * core.ops, t/op/stacks.t:
5597         Rename "rotate" to "rotate_up".
5599 2001-12-07 20:15  simon
5601         * t/op/stacks.t:
5602         Some tests for rotate.
5604 2001-12-07 00:55  gregor
5606         * core.ops:
5607         Cast the result of the pointer arithmetic, since without the cast
5608         there are warnings with some compilers, and without the parens
5609         around the pointer arithmetic, precedence breaks the meaning and
5610         causes crashes.
5612 2001-12-06 23:37  simon
5614         * core.ops:
5615         Temporary. I prefer compiler warnings to segfaults, thanks.
5617 2001-12-06 23:34  simon
5619         * runops_cores.c:
5620         Make "trace" work again.
5622 2001-12-06 21:23  dan
5624         * Parrot/Test.pm, lib/Parrot/Test.pm: Undo twiddles to test.pm
5626 2001-12-06 21:22  dan
5628         * core.ops, packfile.c, Parrot/Test.pm, include/parrot/stacks.h,
5629         lib/Parrot/Test.pm: Fix up source issues that made Dec C unhappy
5631 2001-12-06 19:22  simon
5633         * core.ops:
5634         Yet another "How the *%$! did that compile?" moment.
5636 2001-12-06 18:28  dan
5638         * hints/vms.pl: Fix to build, with a HERE logical required
5640 2001-12-06 17:48  dan
5642         * core.ops, interpreter.c, pbc2c.pl, pdump.c, test_main.c,
5643         docs/parrot_assembly.pod, include/parrot/interpreter.h: Sensible
5644         changes to the interpreter--flags are now part of the interp
5645         structure.
5647         Courtesy of "Melvin Smith" <mrjoltcola@mindspring.com>
5649 2001-12-06 14:02  gregor
5651         * docs/intro.pod:
5652         s/little_languages/languages/ in Jako section.
5654 2001-12-06 13:15  simon
5656         * Makefile.in:
5657         Ensure the documentation gets made.
5659 2001-12-06 13:12  simon
5661         * MANIFEST, docs/intro.pod:
5662         Documentation! Added the "Some Assembly Required" article with
5663         minor updates.
5665 2001-12-06 00:39  simon
5667         * core.ops:
5668         More "eq" support.
5670         Courtesy of: Nguon Hao Ching <hao@netaxs.com>
5672 2001-12-06 00:37  simon
5674         * test_main.c:
5675         Add the "-d" debug flag. Doesn't actually *do* anything yet.
5677         Courtesy of: Melvin <mrjoltcola@mindspring.com>
5679 2001-12-06 00:11  tom
5681         * string.c, chartypes/unicode.c, chartypes/usascii.c,
5682         encodings/singlebyte.c, encodings/utf16.c, encodings/utf8.c,
5683         include/parrot/chartype.h, include/parrot/encoding.h,
5684         include/parrot/parrot.h: Moved string to number conversion code out
5685         of the encoding layer and into the main string layer as neither the
5686         encoding layer nor the character type layer knows enough on it's
5687         own to do the conversion correctly.
5689 2001-12-05 23:12  tom
5691         * Makefile.in: Rebuild the classes directory if any of the object
5692         files for the classes are missing rather than only when perlint.o
5693         is missing.
5695 2001-12-05 19:43  gregor
5697         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm:
5698           * Reworked the constantize_string() stuff a little bit because it
5699         was
5700             puking on things like "\033[H\033[2J\0" (which occurs in the
5701             languages/jako/mandelzoom.jako example).
5703 2001-12-05 19:39  gregor
5705         * languages/jako/: Makefile, mandelzoom.jako:
5706         Added 'mandelzoom' example.
5708 2001-12-05 19:38  gregor
5710         * languages/jako/jakoc:
5711           * Added sleep()
5713           * Changed some instances of die() to confess()
5715 2001-12-05 18:34  gregor
5717         * t/: op/pmc.t, pmc/pmc.t:
5718         s/sting->int/string->int/
5720 2001-12-05 18:08  gregor
5722         * Parrot/.cvsignore:
5723         Ignore PMC.pm
5725 2001-12-05 18:05  gregor
5727         * classes/.cvsignore:
5728         Ignore the generated files.
5730 2001-12-05 17:19  gregor
5732         * pbc2c.pl:
5733           * Reverted recent changes, since they broke the script. Real fix
5734         coming
5735             later.
5737 2001-12-05 17:03  simon
5739         * classes/Makefile.in:
5740         Remember: change Makefile.in, not Makefile. D'oh.
5742 2001-12-05 17:02  simon
5744         * Makefile.in:
5745         Ensure PMC.pm gets remade.
5747 2001-12-05 16:58  simon
5749         * MANIFEST, Makefile.in, classes/Makefile.in,
5750         classes/perlundef.pmc, include/parrot/pmc.h:
5751         Add perlundef class.
5753 2001-12-05 16:45  simon
5755         * core.ops:
5756         Document "new P0, foo"
5758 2001-12-05 16:43  simon
5760         * MANIFEST, Makefile.in, pbc2c.pl, pmc_pm.pl, Parrot/Assembler.pm,
5761         lib/Parrot/Assembler.pm, t/op/pmc.t, t/pmc/pmc.t:
5762         Allow assembler to know about PMC class names.
5764 2001-12-04 13:39  ajgough
5766         * MANIFEST: Added t/op/pmc.t to MANIFEST.
5768 2001-12-04 05:02  ajgough
5770         * classes/perlnum.pmc: Picky compiler pointed out probable thinko
5771         in perlnum.c
5773 2001-12-04 04:24  ajgough
5775         * encodings/singlebyte.c, t/op/pmc.t, t/pmc/pmc.t: A much less
5776         broken form of strtod and appropriate tests.  Does not yet check
5777         for overflow.
5779 2001-12-04 01:31  ajgough
5781         * string.c, encodings/singlebyte.c, encodings/utf16.c,
5782         encodings/utf8.c, include/parrot/encoding.h: Added length parameter
5783         to extract_num and extract_int string vtables, without this it
5784         would be impossible to have strings with nulls in while still
5785         knowing where they ended.
5787 2001-12-03 18:40  ajgough
5789         * string.c, classes/perlstring.pmc, encodings/singlebyte.c,
5790         encodings/utf16.c, encodings/utf8.c, include/parrot/encoding.h,
5791         include/parrot/string.h: Moved pmc string to number conversion into
5792         the string encoding tables.
5794 2001-12-03 00:21  ajgough
5796         * core.ops, t/op/pmc.t, t/pmc/pmc.t: Added set i, p and some tests
5797         for p-> integer.
5799 2001-12-02 23:09  jgoff
5801         * classes/Makefile.in: Removed some redundant targets.
5803 2001-12-02 19:02  ajgough
5805         * t/: op/pmc.t, pmc/pmc.t: Modified all pmc tests to make use of fp
5806         equality macro rather than using perl to generate expected output,
5807         all tests now have <<OUTPUT.
5809 2001-12-02 17:44  ajgough
5811         * t/op/trans.t: Upgraded fp_eq and fp_ne macros to be more useful
5812         for pmc.t as well.  Will probably move macros into another file at
5813         some point, although this might be best left until the tests are
5814         unperled.
5816 2001-12-02 06:16  jgoff
5818         * classes/pmc2c.pl: It wasn't properly setting the vtable index
5819         within Parrot_Perl{Class}_init.
5821 2001-12-02 06:09  jgoff
5823         * classes/Makefile.in: I seem to have removed *$(O) twice..
5825 2001-12-02 05:06  jgoff
5827         * Configure.pl, MANIFEST, Makefile.in: (Hopefully the last time...)
5828         Configure.pl - Removed '-I./include', added classes/Makefile
5829         generation MANIFEST     - Added classes/Makefile.in Makefile.in  -
5830         Removed old classes/* make stuff                Added target for
5831         classes/Makefile
5833 2001-12-02 04:48  jgoff
5835         * classes/Makefile.in: Going to be used shortly...
5837 2001-12-02 04:40  jgoff
5839         * docs/Makefile: Configure.pl - Added automatic makefile creation
5840         for docs/ and classes/                Removed '-I./include' because
5841         it was getting incorrectly                passed to classes/
5842         MANIFEST - added docs/Makefile.in, classes/Makefile.in Makefile.in
5843         - Removed classes/ build stuff, replaced with classes/Makefile.in
5844                     Added '-I./include' locally docs/Makefile - Should no
5845         longer be used, but I'm not brave enough to do a
5846         cvs delete.
5848 2001-12-02 01:21  ajgough
5850         * t/op/trans.t: Refactored trans math tests to have hard coded
5851         expected return values and be more ready to be unperled at some
5852         point in the future.  Added $fp_equality_macro which is a
5853         "nearly-equal-to" function.
5855 2001-12-02 01:18  ajgough
5857         * Makefile.in: Humph.  People really ought to use Makefile
5858         variables, s/perl/$(PERL)/ throughout.
5860 2001-12-01 18:15  jgoff
5862         * classes/: perlint.pmc, perlnum.pmc: Temporary patch until we
5863         figure out what to do vis-a-vis the lack of snprintf.
5865 2001-11-30 13:14  ajgough
5867         * t/op/: integer.t, number.t: Added tests for abs ops to number.t
5868         and integer.t
5870 2001-11-30 13:14  ajgough
5872         * core.ops: Added abs(i|n, i|ic|n|nc) ops to core.ops, using if <0
5873         -, else ... form.
5875 2001-11-30 10:36  simon
5877         * core.ops:
5878         Rewrite print_p to do the right thing.
5880 2001-11-30 06:21  jgoff
5882         * t/: op/pmc.t, pmc/pmc.t: New tests for integer/number/string
5883         concat,               integer/number/string math
5885 2001-11-30 06:20  jgoff
5887         * classes/: perlint.pmc, perlnum.pmc, perlstring.pmc:
5888         classes/perlint.pmc - Fixes and expanding for concat and math with
5889         strings classes/perlnum.pmc - Fixes and expanding for concat and
5890         math with strings classes/perlstring.pmc - Fixes and expanding for
5891         concat and math with strings
5893 2001-11-29 15:21  ajgough
5895         * hints/os2.pl: This is a hints file for os/2, I've set $c{perl} as
5896         $^X lies, which confused bash which make uses to run things when
5897         doing its stuff.
5899 2001-11-29 04:58  jgoff
5901         * classes/perlstring.pmc: Removed C++-style comments for good
5902         measure
5904 2001-11-29 04:51  jgoff
5906         * t/: op/pmc.t, pmc/pmc.t: New tests for PMC integers
5908 2001-11-29 04:28  jgoff
5910         * global_setup.c: Initialize PMC strings
5912 2001-11-29 04:25  jgoff
5914         * core.ops: Added set_p_s and set_p_sc, modified print_p to handle
5915         string PMCs.
5917 2001-11-29 04:24  jgoff
5919         * classes/: perlint.pmc, perlnum.pmc, perlstring.pmc: Changed PMC
5920         files to properly upgrade int to num, do calculations.  Also added
5921         basic string operations. Currently errors out on anything but set
5922         operations, but this will be fixed soon.
5924 2001-11-29 04:22  jgoff
5926         * Makefile.in: PMC .c files weren't getting cleaned out.
5928 2001-11-28 17:00  simon
5930         * t/harness:
5932         Make csh-glob happy.
5934         Courtesy of: Andy Dougherty: <doughera@lafayette.edu>
5936 2001-11-28 16:40  simon
5938         * classes/perlnum.pmc:
5940         De-C++
5942 2001-11-28 15:22  simon
5944         * string.c:
5946         Fixes Alex's string concat worry.
5948 2001-11-28 14:27  ajgough
5950         * t/op/string.t: test "null onto null" incorrectly passing as it
5951         produced no output.  Output provided.
5953 2001-11-28 11:14  simon
5955         * include/parrot/pmc.h:
5957         Placate AIX.
5959 2001-11-26 21:03  dan
5961         * MANIFEST, hints/darwin.pl: Tweaks to build on Mac OS X 10.1
5963 2001-11-26 17:29  simon
5965         * classes/perlint.pmc:
5967         Various subtle but non-showstopper bugs.
5969 2001-11-26 11:23  simon
5971         * classes/pmc2c.pl:
5973         Replace dependency on Text::Balanced
5975         Courtesy of: Bart Lateur <bart.lateur@pandora.be>
5977 2001-11-26 05:22  jgoff
5979         * global_setup.c: Last file that should need to be committed. I
5980         swear.
5982 2001-11-26 05:09  jgoff
5984         * core.ops: Let's try this again... Changes to core.ops required
5986 2001-11-26 04:58  jgoff
5988         * classes/perlint.pmc, classes/perlnum.pmc, t/op/pmc.t,
5989         t/pmc/pmc.t: Makefile.in - Added missing cleanup line for perl*.c
5990         core.ops - Added set(p,n|nc), modified print(p) global_setup.c -
5991         Uncommented PerlNum_init classes/perlint.pmc - Added set_number
5992         functions classes/perlnum.pmc - Set up basic number functions
5993         t/op/pmc.t - Added tests for set P0.<number> and {add,mul,sub,div}
5994         tests against numbers and numbers+integers
5996 2001-11-25 13:18  simon
5998         * Makefile.in:
5999         Windows XP make doesn't like $<
6001 2001-11-25 12:56  simon
6003         * MANIFEST, Makefile.in, classes/genclass.pl, classes/perlint.c,
6004         classes/perlint.pmc, classes/perlnum.c, classes/perlnum.pmc,
6005         classes/perlstring.c, classes/perlstring.pmc, classes/pmc2c.pl,
6006         examples/assembly/mops_p.pasm:
6007         PMC preprocessor.
6009         Courtesy of: Angel Faus <afaus@corp.vlex.com>
6011         I (Simon) also added a couple more integer methods, but no tests
6012         since I'm a Bad Person.
6014 2001-11-25 08:40  brentdax
6016         * ops2c.pl, Parrot/Op.pm, Parrot/OpsFile.pm, lib/Parrot/Op.pm,
6017         lib/Parrot/OpsFile.pm: Allow _ in op names
6019 2001-11-25 05:54  jgoff
6021         * classes/perlint.c, t/op/pmc.t, t/pmc/pmc.t: classes/perlint.c -
6022         Added basic math ops t/op/pmc.t - Added tests of basic math ops
6024 2001-11-23 18:27  simon
6026         * core.ops, classes/perlint.c, examples/assembly/mops_p.pasm:
6027         Add everything you need to make MOPS use PMCs.
6029 2001-11-23 18:06  simon
6031         * core.ops:
6032         Eh, you'll need this for rewriting mops.pasm.
6034 2001-11-23 17:55  simon
6036         * core.ops, classes/perlint.c, include/parrot/pmc.h, t/op/pmc.t,
6037         t/pmc/pmc.t:
6038         More work on integer PMCs.
6040 2001-11-23 17:29  simon
6042         * Makefile.in:
6043         Surprise! Whitespace! HLAGHLAGHLAGH
6045 2001-11-23 17:28  simon
6047         * Makefile.in, ops2c.pl, ops2pm.pl:
6048         Add vtables.ops to the core
6050         Courtesy of: Jeff Goff <jgoff@speakeasy.net>
6052 2001-11-22 18:39  simon
6054         * core.ops, global_setup.c, docs/parrot_assembly.pod, t/op/pmc.t,
6055         t/pmc/pmc.t:
6056         We can now create PMCs.
6058 2001-11-21 05:49  jgoff
6060         * Makefile.in: Makefile cleans up *.pasm *.pbc *.out
6062 2001-11-20 16:00  simon
6064         * docs/vtables.pod, include/parrot/pmc.h:
6065         Reorder PMC flags so there's a fixed number of user-defined flags.
6067         Courtesy of: Dave Mitchell <davem@fdgroup.co.uk>
6069 2001-11-19 03:39  jgoff
6071         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm, t/op/basic.t:
6072         Parrot/Assembler.pm - Allow "print 'foo'", and properly escape
6073         nested quotes.  t/op/basic.t - Add tests for single-quoted strings,
6074         escaped quotes, and proper                handling of newlines.
6076 2001-11-16 22:03  simon
6078         * classes/perlint.c:
6079         More work on the Perl Integer class. More needed, though.
6081 2001-11-16 21:57  simon
6083         * pmc.c, vtable.tbl, classes/genclass.pl, classes/perlint.c:
6084         Rename ->new to ->init, and rework pmc.c:pmc_new to fiddle it.
6086 2001-11-16 20:49  simon
6088         * interpreter.c, runops_cores.c, trace.c,
6089         include/parrot/runops_cores.h:
6090         Kill superfluous runops cores.
6092 2001-11-16 17:50  simon
6094         * MANIFEST, Makefile.in, classes/intclass.c, classes/perlint.c,
6095         classes/perlnum.c, classes/perlstring.c, classes/scalarclass.c,
6096         include/parrot/parrot.h, include/parrot/pmc.h:
6097         Skeleton for Perl scalar types, done right.
6099 2001-11-16 16:15  simon
6101         * classes/genclass.pl:
6102         This tidies up genclass to deal with the new-style multimethods.
6104 2001-11-16 15:29  simon
6106         * Makefile.in, make_vtable_ops.pl, vtable.tbl, Parrot/Vtable.pm,
6107         lib/Parrot/Vtable.pm, include/parrot/parrot.h:
6108         Rework multimethods to be *true* multimethods - that is, have
6109         different types.
6111 2001-11-15 22:29  simon
6113         * MANIFEST, Makefile.in, pmc.c:
6114         pmc.c linkage and support. Oh, and making it compile.
6116 2001-11-15 22:26  dan
6118         * t/op/interp.t: Forgot to tell CVS about the test...
6120 2001-11-15 22:10  dan
6122         * MANIFEST, Types_pm.in, core.ops, vtable_h.pl,
6123         docs/parrot_assembly.pod, include/parrot/string.h: Added in support
6124         for PMC registers for the interpreter.
6126         Added in the docs for the runinterp opcode.
6128         Added in code for both the newinterp and runinterp opcodes, so we
6129         can now create new interpreters from within parrot and have them do
6130         things. (Though we can't pass data back and forth. Yet)
6132 2001-11-15 21:24  simon
6134         * vtable.tbl, classes/scalarclass.c, docs/vtables.pod:
6135         More documentation, and other changes as discussed with Dan.
6137 2001-11-15 19:51  simon
6139         * classes/scalarclass.c:
6140         De-cut-and-pasto.
6142 2001-11-15 19:50  simon
6144         * classes/scalarclass.c:
6145         A little code tidiness.
6147 2001-11-15 19:33  simon
6149         * include/parrot/pmc.h:
6150         Missed this in the previous commit - un-constantize the base for
6151         user-defined PMC flags.
6153 2001-11-15 19:28  simon
6155         * classes/scalarclass.c:
6156         Hey look, sanity.
6158 2001-11-15 17:09  simon
6160         * classes/scalarclass.c:
6161         It seems I have completely forgotten how to write C.
6163 2001-11-15 16:53  simon
6165         * docs/vtables.pod:
6166         Start of the PMC classes documentation.
6168 2001-11-15 14:46  simon
6170         * classes/scalarclass.c:
6171         Changing to use a Perl-style struct instead of the union cache.
6173 2001-11-13 23:56  tom
6175         * string.c: Removed leading _ from string_index as function names
6176         starting with _ are reserved to implementors by the C standard.
6178         Also fixed string_index to use the encoding routines instead of
6179         assuming a single byte encoding.
6181 2001-11-13 12:59  jgoff
6183         * string.c: Patched string_concat to accept null strings.  That
6184         test was failing. Nothing to do with ord().
6186 2001-11-13 12:43  jgoff
6188         * string.c: string_ord function, string_concat fixes
6190 2001-11-13 04:52  jgoff
6192         * core.ops: Added ord to core.ops
6194 2001-11-13 04:35  jgoff
6196         * docs/strings.pod, include/parrot/exceptions.h,
6197         include/parrot/string.h, t/op/string.t: core.ops - Added ord
6198         operator, documentation string.c - Added string_ord, _string_index
6199         (_string_index is a static helper)              Patched
6200         string_concat to handle null strings properly.  docs/strings.pod -
6201         Description of string_ord include/parrot/exceptions.h - Added
6202         ORD_OUT_OF_STRING exception include/parrot/string.h - Added
6203         string_ord() t/op/string.t - Added full set of test for
6204         ord_i_(s|sc)(_(i|ic))?
6206         string.c contains a bit of documentation explaining the logic
6207         behind _string_index, primarily having to do with multiple encoding
6208         formats.
6210 2001-11-12 22:30  simon
6212         * t/op/macro.t:
6213         Count 'em.
6215 2001-11-12 22:28  simon
6217         * Makefile.in:
6218         Add a rule to compile "platform"
6220 2001-11-12 22:26  simon
6222         * Makefile.in:
6223         Tidy up distclean target.
6225 2001-11-12 16:54  dan
6227         * MANIFEST, Parrot/Assembler.pm, lib/Parrot/Assembler.pm,
6228         t/op/macro.t: Fixes to the assembler's macro facility and a test
6230         Courtesy of: Jeff <jgoff@speakeasy.net>
6232 2001-11-12 16:50  dan
6234         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm: Allow input from
6235         stdin
6237         Courtesy of: Jeff <jgoff@speakeasy.net>
6239 2001-11-12 16:36  dan
6241         * Parrot/Test.pm, lib/Parrot/Test.pm: Fix to make test work on
6242         CygWin
6244         Courtesy of: Alex Gough <alexander.gough@st-hughs.oxford.ac.uk>
6246 2001-11-12 11:22  simon
6248         * examples/assembly/mops.pasm:
6250         Trivial tightening of mops loop.
6252 2001-11-07 23:57  ajgough
6254         * docs/tests.pod: This is a basic quide to writing tests with
6255         assembler.
6257 2001-11-07 22:29  dan
6259         * stacks.c: Added a little documentation on the cleanup parameter
6260         for an entry
6262 2001-11-07 14:43  dan
6264         * MANIFEST, platforms/generic.c, platforms/linux.c,
6265         platforms/linux.h: Portability patches.
6267         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
6269 2001-11-06 19:51  tom
6271         * Makefile.in: Clean up object files in the subdirectories as well
6272         as those in the top level directory.
6274         Enhanced version of patch from Daniel Grunblatt
6275         <daniel@grunblatt.com.ar>
6277 2001-11-06 16:14  dan
6279         * Configure.pl, MANIFEST, Makefile.in, core.ops,
6280         platforms/generic.c, platforms/generic.h: Made things a bit more
6281         platform-independent. Makefile still needs work to pick up changes
6282         to the platform-specific files.
6284 2001-11-05 21:32  dan
6286         * docs/parrot_assembly.pod: Added docs for the GC control ops
6288 2001-11-04 02:52  gregor
6290         * platforms/: win32.c, win32.h:
6291           * win32 dynamic loading functions.
6293         Courtesy of Jason Diamond <jason@injektilo.org>
6295 2001-11-04 00:04  brentdax
6297         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm: Assembler fixes:
6298         allows an absolute path to be used and gives a useful error message
6299         if the original source file can't be found
6301 2001-11-02 12:37  gregor
6303         * platforms/: linux.c, linux.h:
6304           * Beginning of dynamic loading support. Linux only for now.
6306 2001-11-02 12:13  gregor
6308         * MANIFEST, time.c, include/parrot/time.h:
6309           * Removed time.[hc], since they have been superseded by the new
6310         platform
6311             stuff.
6313 2001-11-02 12:11  gregor
6315         * Configure.pl, Makefile.in, core.ops, vtable.tbl,
6316         classes/intclass.c, classes/scalarclass.c, hints/mswin32.pl,
6317         include/parrot/parrot.h, platforms/linux.c, platforms/linux.h,
6318         platforms/win32.c, platforms/win32.h:
6319         Patch from Jason Diamond to make win32 platform stuff work:
6321         * Modified Configure.pl, mswin32.pl, and Makefile.in so that the
6322         platform specific files in the platforms directory gets copied to
6323         the correct directories. The Makefile will re-copy the platform.h
6324         and .c files if the original is modified.
6326         * #include platform.h in parrot.h instead of time.h.
6328         * Removed time.h and time.obj from the Makefile. time.h and time.c
6329         aren't being used anymore since that code was moved to linux.c and
6330         win32.c.
6332         * Renamed the BOOL typedef in parrot.h to BOOLVAL (inspired by
6333         INTVAL and FLOATVAL). This was conflicting with the BOOL typedef in
6334         windows.h. This required updating several files besides parrot.h.
6336         * Added a DEFAULT_OPEN_MODE to linux.h and win32.h and used that
6337         instead of the missing identifiers (on Windows) in core.ops in the
6338         calls to open.
6340         * Added Parrot_sleep and Parrot_setenv to both the linux and win32
6341         platform files and called those from core.ops. The Linux code for
6342         these functions came from core.ops so they should hopefully work.
6344         Courtesy of Jason Diamond <jason@injektilo.org>
6346 2001-11-02 06:43  brentdax
6348         * Makefile.in, hints/mswin32.pl: Fix classes/intclass.obj building
6349         for Win32 (courtesy of Jason Diamond <jason@injektilo.org>)
6351 2001-11-02 02:26  gregor
6353         * .cvsignore, MANIFEST, include/parrot/.cvsignore,
6354         platforms/linux.c, platforms/linux.h, platforms/win32.c,
6355         platforms/win32.h:
6356           * Beginnings of platform support files in platform/*.[hc]
6358 2001-11-01 23:37  tom
6360         * classes/intclass.c: Added missing *'s to STRING arguments and
6361         return values to avoid compiler warnings.
6363 2001-11-01 22:21  gregor
6365         * MANIFEST, Makefile.in, core.ops, obscure.ops, time.c,
6366         include/parrot/parrot.h, include/parrot/time.h:
6367         Initial "fix" of time(n) op for Win32:
6369           * Initial Win32 code Courtesy of Richard J Cox <rjcox@cix.co.uk>
6371           * time.c and include/parrot/time.h
6373             First attempt at getting this working across platforms. The
6374             macro WIN32 being tested might not be right.
6376           * New functions Parrot_intval_time() and Parrot_floatval_time()
6377             wrap the appropriate functionality depending upon platform.
6378             Changed core.ops to call these.
6380         Added obscure.ops with obscure transcendental ops.
6382         Added simple file I/O ops (close, open, read, write):
6384           * Initial versions Courtesy of Jeff <jgoff@speakeasy.net>
6386           * I changed some arg ordering stuff.
6388           * I added read/write of INTVALs and FLOATVALs.
6390         Added environment variable ops (getenv, setenv)
6392         Added system error ops (err(i) and err(s) for accessing errno and
6393         strerr().
6395         Moved print ops in with other "temporary" developer ops, since
6396         they'll move to a devel.ops or temp.ops oplib once we have oplibs.
6398 2001-10-31 22:51  tom
6400         * MANIFEST, Makefile.in, chartype.c, encoding.c, global_setup.c,
6401         packfile.c, string.c, strnative.c, strutf16.c, strutf32.c,
6402         strutf8.c, transcode.c, chartypes/unicode.c, chartypes/usascii.c,
6403         encodings/singlebyte.c, encodings/utf16.c, encodings/utf32.c,
6404         encodings/utf8.c, include/parrot/chartype.h,
6405         include/parrot/encoding.h, include/parrot/exceptions.h,
6406         include/parrot/parrot.h, include/parrot/string.h,
6407         include/parrot/strnative.h, include/parrot/strutf16.h,
6408         include/parrot/strutf32.h, include/parrot/strutf8.h,
6409         include/parrot/transcode.h: Reworked the string code in line with
6410         Dan's latest design that separates character sets from encodings.
6412 2001-10-31 19:53  dan
6414         * docs/parrot_assembly.pod: Finished I/O section of docs
6416 2001-10-31 16:51  dan
6418         * core.ops, docs/parrot_assembly.pod, include/parrot/parrot.h:
6419         Moved includes out of core.ops and into parrot.h where they belong
6420         (suitably guarded with #ifdefs). Also some updates to
6421         parrot_assembly.pod
6423 2001-10-30 21:43  dan
6425         * core.ops, stacks.c, docs/parrot_assembly.pod,
6426         include/parrot/stacks.h: Added entrytype opcode to fetch the type
6427         of the entry on the stack
6429 2001-10-29 18:30  dan
6431         * stacks.c: You can turn off stack entry type validation on pop by
6432         passing in a type of 0 now. (For those cases where you just want to
6433         throw the darned thing away)
6435 2001-10-29 14:37  gregor
6437         * core.ops, languages/jako/jakoc:
6438           * New variants of the save ops to save constants on the stack.
6439         This is
6440             useful for saving zero arg and result counts on the stack, for
6441         example.
6443           * Modified jakoc to to adapt to the newly announced calling
6444         conventions.
6445             Even though Jako source code appears to show subroutines with
6446         fixed
6447             numbers of arguments and results, they are implemented with the
6448             variable count calling convention. Future modifications will be
6449         needed
6450             to ensure that an exception is raised if the stack frame is of
6451         the
6452             wrong size (or, at least that we pop the complete frame off).
6453         We'll
6454             also have to make more changes to support the true
6455         fixed-arg-count
6456             and fixed-result-count parts of the calling convention spec.
6458 2001-10-28 16:53  simon
6460         * MANIFEST, stacks.c, classes/scalarclass.c,
6461         include/parrot/stacks.h:
6462         Unbelievably bad errors of mine, plus a type incompatibility of
6463         Dan's.
6465 2001-10-28 08:30  simon
6467         * classes/scalarclass.c:
6468         Beginning of a scalar class.
6470 2001-10-28 08:29  simon
6472         * make_vtable_ops.pl, vtable.tbl, Parrot/Vtable.pm,
6473         lib/Parrot/Vtable.pm, classes/genclass.pl, classes/intclass.c,
6474         include/parrot/pmc.h:
6475         This fixes the problem with vtables and pointer arithmetic.
6477 2001-10-26 19:58  dan
6479         * core.ops, interpreter.c, stacks.c, include/parrot/interpreter.h,
6480         include/parrot/stacks.h: Split the generic stack into a user push
6481         stack and a control stack
6483 2001-10-26 02:59  bdwheele
6485         * Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm: [no log message]
6487 2001-10-24 20:27  dan
6489         * languages/scheme/: Makefile, Scheme.pm, schemec,
6490         Scheme/Generator.pm, Scheme/Parser.pm, Scheme/Test.pm,
6491         Scheme/Tokenizer.pm, t/harness, t/arith/basic.t, t/arith/logic.t,
6492         t/arith/nested.t, t/io/basic.t, t/logic/basic.t: Added the mini
6493         Scheme compiler
6495 2001-10-24 20:23  dan
6497         * MANIFEST, pdump.c, docs/parrot_assembly.pod: Update for
6498         interpreter needs in pdump.c. Added scheme bits to manifest
6500 2001-10-24 16:43  gregor
6502         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm:
6503           * Make the assembler handle octal character code escapes in
6504         string
6505             constants.
6507 2001-10-24 15:56  dan
6509         * MANIFEST, examples/assembly/life.pasm: Added an example in to
6510         play the game of life
6512 2001-10-24 15:54  dan
6514         * core.ops: Added sleep. We'll need to override this to do events
6515         properly anyway, so...
6517 2001-10-24 14:03  gregor
6519         * Makefile.in, pbc2c.pl, pdump.c:
6520           * Adapt pdump.c and pbc2c.pl to the new requirement to pass
6521         interpreter
6522             pointer into string functions.
6524         Courtesy of: Ryan O'Neil <talisman580@yahoo.com>
6526 2001-10-23 20:09  gregor
6528         * languages/jako/jakoc:
6529           * Terminological refinement in regexp capture comment.
6531 2001-10-23 15:23  simon
6533         * classes/genclass.pl:
6534         Use a saner ANSI C construct to make MIPSPro happy.
6536         Courtesy of: Alex Gough <alexander.gough@st-hughs.oxford.ac.uk>
6538 2001-10-23 00:34  tom
6540         * core.ops, string.c, strnative.c, strutf16.c, strutf32.c,
6541         strutf8.c, include/parrot/string.h: Make sure the interpreter
6542         structure is passed to the transcoder as necessary, including
6543         passing it to string_compare().
6545 2001-10-23 00:32  tom
6547         * Makefile.in: Make pdump build again by including resources.o in
6548         the link.
6550 2001-10-22 22:43  dan
6552         * core.ops, packfile.c, string.c, strnative.c, strutf16.c,
6553         strutf32.c, strutf8.c, test_main.c, transcode.c,
6554         include/parrot/packfile.h, include/parrot/parrot.h,
6555         include/parrot/resources.h, include/parrot/string.h,
6556         include/parrot/transcode.h: Everything now uses the allocators and
6557         deallocators in resources.c.
6559         Unfortunately we lost standalone string-test mode, but I can cope
6560         with that.
6562         Please note that until we have a real allocation/deallocation/GC
6563         system, this'll leak. A *lot*.
6565 2001-10-22 20:27  dan
6567         * MANIFEST, Makefile.in, pmc.c, resources.c,
6568         include/parrot/resources.h: First cut to handle arena allocation of
6569         PMC headers. (Amongst other things)
6571 2001-10-22 19:02  dan
6573         * Configure.pl, config_h.in, register.c, include/parrot/register.h:
6574         Now each register type has its own mask macro, which is the right
6575         thing to do.
6577         Patch courtesy of Jason Gloudon <perl@gloudon.com>
6579 2001-10-21 23:40  tom
6581         * stacks.c, t/op/stacks.t: Fix bug in handling of rollover to a new
6582         stack chunk and add a test to test this rollover in future.
6584         Courtesy of Jason Gloudon <perl@gloudon.com>.
6586 2001-10-21 19:14  dan
6588         * include/parrot/string.h: Changed string 'unused' field to the
6589         language field.
6591 2001-10-21 18:18  gregor
6593         * languages/jako/: Makefile, mops.jako:
6594           * Makefile: 'clean' target removes .list files, too. And, it does
6595         rm -f
6596             with wildcards rather than listing things explicitly.
6598           * mops.jako actually prints out the
6599         millions-of-operations-per-second
6600             (mops) value instead of just the operations-per-second value.
6602 2001-10-21 18:03  simon
6604         * classes/intclass.o:
6605         *smack*! WRONG!
6607 2001-10-21 17:47  simon
6609         * MANIFEST, Makefile.in, make_vtable_ops.pl, pmc.c, vtable_h.pl,
6610         Parrot/Vtable.pm, classes/genclass.pl, classes/intclass.c,
6611         classes/intclass.o, include/parrot/parrot.h, include/parrot/pmc.h,
6612         lib/Parrot/Vtable.pm:
6613         Initial work on PMCs. Explanation to follow
6615 2001-10-21 15:20  gregor
6617         * examples/assembly/queens.pasm:
6618           * Modernize the calling conventions in queens.pasm. It was using
6619         swap,
6620             which now must be rotate. Also, changed to use return values on
6621         the
6622             stack instead of in I0.
6624 2001-10-19 18:14  gregor
6626         * core.ops, stacks.c, include/parrot/stacks.h,
6627         languages/jako/jakoc:
6628         Per Dan's request, replacing 'swap' op by 'rotate'.
6630           * core.ops: Replaced 'swap()' by 'rotate(i|ic)'.
6632           * stacks.c and stacks.h: Removed swap-related functions from my
6633             prior commit, replacing them with stack_depth(), stack_entry()
6634             and rotate_entries().
6636             NOTE: The stack_depth() and rotate_entries() routines could
6637             be made more efficient through the caching of the sum of chunk
6638             'used' members from lower chunks in a field in the upper
6639             chunks. Also, if the interpreter's stack_base was changed to
6640             hold the pointer to the *top* chunk (since we usually come
6641             at the stack from the top down) instead of the *bottom*
6642             chunk. The code here at least works, and we can decide about
6643             bigger changes separately.
6645             For now, rotate only handles rotates in one direction and
6646             of magnituded one. A fully general rotate would do handle
6647             rotates in both directions and of arbitrary amounts. Again,
6648             this implementation is sufficient for current applications,
6649             and a feature-complete version can be developed if this turns
6650             out to be otherwise the right type of implementation.
6652             This change includes a new exception for ERROR_STACK_SHALLOW,
6653             meaning "not-empty-yet-not-deep-enough-for-what-you-asked".
6655           * jakoc: Changed the calling convention to use rotate instead
6656             of swap (of course). Also changed the convention for return
6657             value passing to use the stack as well.
6659 2001-10-19 13:36  gregor
6661         * MANIFEST, core.ops, disassemble.pl, stacks.c,
6662         examples/assembly/queens.pasm, include/parrot/stacks.h,
6663         languages/jako/.cvsignore, languages/jako/Makefile,
6664         languages/jako/bench.jako, languages/jako/euclid.jako,
6665         languages/jako/fact.jako, languages/jako/jakoc,
6666         languages/jako/mandelbrot.jako, languages/jako/mops.jako,
6667         languages/jako/primes.jako, languages/jako/queens.jako,
6668         languages/jako/sub.jako:
6669           * New stack functions push_entry(), pop_entry() and swap_entry().
6670             The first two exist for the support of the last one. These
6671             functions don't care what is in the stack entries. These exist
6672             to support the new 'swap' op (see next bullet).
6674           * New op 'swap' for swapping the top two elements on the stack.
6675             This is necessary for passing arguments to functions, since
6676             the return address will be on top of any arguments that have
6677             been pushed on the stack. This way, you can use a (swap, pop)
6678             pair to retrieve each argument (for subroutine linkage).
6680           * Disassembler now prints numbers in decimal by default, with
6681             a new '-x' flag to turn on hexadecimal display. Since other
6682             members of the Parrot Tool Set use decimal by default, this
6683             makes it easier to compare output from the various tools.
6685           * Jako compiler has more explanatory comments and the following
6686             new features:
6688               * Lexically scoped variables.
6690               * Subroutines that take arguments and return values:
6692                   sub int foo(int bar) {
6693                     if (bar == 1) {
6694                       return 42;
6695                     } else {
6696                       return 13;
6697                     }
6698                   }
6699               * ... if (...) and ... unless (...) statement modifiers
6700                 can be used on next, last and redo.
6702               * Bitwise and (&, &=) and or (|, |=) ops.
6704               * Type names are just 'int', 'num', 'str', and 'poly' now.
6705                 The old long names 'integer', 'number', 'string', and
6706                 'polytype' are no longer valid.
6708               * Integer variable assignments can now use 0b (binary),
6709                 0 (octal) and 0x (hexadecimal) radix prefixes on literals.
6711           * New Jako and Parrot assembly examples queens.{jako,pasm} for
6712             solving the eight-queens problem. The assembly example is a
6713             hand-modified version of the assembly code produced by the
6714             Jako compiler from queens.jako. A few unnecessary ops have
6715             been removed, lots of unnecessary labels have been removed,
6716             and all the Jako source code comments have been removed.
6718           * Makefile and .cvsignore in languages/jako modified so that
6719             the assembler produces listings when assembling the programs,
6720             yet the *.list files are ignored by CVS.
6722           * Made the default target in languages/jako/Makefile 'all'.
6724           * Modified some of the Jako examples to use some of the new
6725             features of Jako, such as subroutines and lexical variable
6726             scoping.
6728 2001-10-19 02:43  gregor
6730         * runops_cores.c, include/parrot/runops_cores.h:
6731         Bug fix (gcc doesn't complain, but MIPSpro does):
6733           * Added missing extern to runops_cores array declaration in
6734             include/parrot/runops_cores.h
6736           * Also added 'const' there and in runops_cores.c
6738 2001-10-18 15:18  gregor
6740         * .cvsignore, include/parrot/oplib/.cvsignore:
6741           * Ignore the vtable-related generated files.
6743 2001-10-18 15:14  gregor
6745         * core.ops:
6746           * left and right shifts now allow the 2nd argument to be a
6747         constant.
6749 2001-10-18 14:55  simon
6751         * make_vtable_ops.pl:
6752         This is C, not Perl. How on earth did that even compile?
6754 2001-10-18 14:54  simon
6756         * make_vtable_ops.pl:
6757         More vtable ops.
6759 2001-10-18 12:33  simon
6761         * Makefile.in, make_vtable_ops.pl, vtable.tbl:
6762         Initial stab at vtable opcode creation stuff.
6764 2001-10-18 02:15  gregor
6766         * MANIFEST, Makefile.in, interpreter.c, runops_cores.c, trace.c,
6767         include/parrot/interpreter.h, include/parrot/runops_cores.h,
6768         include/parrot/trace.h: Preparation for autogenerated runops cores:
6770           * Split tracing and runops core stuff out of interpreter.c into
6771             trace.c and runops_cores.c
6773           * Similar split of stuff from include/parrot/interpreter.h
6775           * Manifest and Makefile.in updates to make things still compile.
6777 2001-10-18 01:21  gregor
6779         * Makefile.in, ops2c.pl, ops2pm.pl, pbc2c.pl: Bug fixes:
6781           * Makefile.in: examples/assembly/mops.c depends on pbc2c.pl
6783           * Makefile.in: Parrot/OpLib/core.pm depends on ops2pm.pl
6785           * ops2c.pl: Added second arg to mkdir (perl 5.005_02 complains)
6787           * ops2pm.pl: Added second arg to mkdir (perl 5.005_02 complains)
6789           * pbc2c.pl: Removed explicit include of <math.h>, replacing it
6790         with
6791             copy of $ops->preamble.
6793 2001-10-17 22:32  bdwheele
6795         * interpreter.c: Moved op dump code into trace_op_dump, per Dan's
6796         request.
6798 2001-10-17 22:08  gregor
6800         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm:
6801           * Now handles label-and-comment-only lines.
6803 2001-10-17 22:04  bdwheele
6805         * interpreter.c: added more comprehensive trace output
6807 2001-10-17 16:50  tom
6809         * Makefile.in: Removed the explicit rule for building mops.o from
6810         mops.c so that the implicit rule for compiling C files is used
6811         instead. This means that the chosen C flags are used, including any
6812         optimisation options.
6814 2001-10-17 15:24  tom
6816         * core.ops, Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm: Enhanced the
6817         op explosion logic to be able to handle exploding this:
6819           sub(i, i|ic, i|ic)
6821         into these:
6823           sub(i, i, i)
6824           sub(i, i, ic)
6825           sub(i, ic, i)
6827         without also generating this unwanted version:
6829           sub(i, ic, ic)
6831         The enhanced version rejects any expansion where there is more than
6832         one expanded argument and all the expanded arguments are constants.
6834 2001-10-17 14:20  simon
6836         * Makefile.in, ops2c.pl, ops2pm.pl, examples/assembly/Makefile:
6837         Build fixes to use correct Perl version and ensure that things are
6838         running in the right directory.
6840         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
6842 2001-10-17 13:16  simon
6844         * Makefile.in:
6845         core.pm is more critical than that.
6847 2001-10-17 13:05  simon
6849         * core.ops, Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm:
6850         "Explode" ops into multiple versions for different parameters.
6852         Courtesy of: Tom Hughes <tom@compton.nu>
6854 2001-10-17 12:54  simon
6856         * Makefile.in:
6857         Fix dependencies and cleaning.
6859 2001-10-17 12:45  simon
6861         * Configure.pl, Makefile.in:
6862         Fixes to make Parrot compile without the temporary build hack
6864         Courtesy of: Jason Gloudon <perl@gloudon.com>
6866 2001-10-16 20:43  gregor
6868         * Makefile.in:
6869           * Fixed dependencies for building Parrot/OpLib/core.pm
6871 2001-10-16 19:35  bdwheele
6873         * core.ops, t/op/string.t: Changed set s,sc to use string_copy &
6874         added test, thanks to Alex Gough
6876 2001-10-16 16:49  bdwheele
6878         * core.ops: added opcode variants for constants and 3 arg concat
6880 2001-10-16 15:12  bdwheele
6882         * core.ops: added "set Sx,Sy" as a string copy to match the other
6883         register-to-register copies available
6885 2001-10-16 13:09  gregor
6887         * core.ops:
6888           * Added #include <sys/time.h> in the preamble for gettimeofday().
6890 2001-10-16 13:09  gregor
6892         * Makefile.in:
6893           * Removed cd t; make, which no longer applies
6895 2001-10-16 03:18  bdwheele
6897         * core.ops: fix save & restore operations to push correct type onto
6898         stack. [good eye to Jason Gloudon for noticing this]
6900 2001-10-16 01:38  bdwheele
6902         * core.ops, register.c, examples/assembly/fact.pasm,
6903         include/parrot/register.h: send in the clones:  clone routines for
6904         parrot + example program
6906 2001-10-15 22:37  gregor
6908         * MANIFEST, Makefile.in, examples/assembly/.cvsignore,
6909         examples/assembly/Makefile, examples/assembly/bsr.pasm,
6910         examples/assembly/call.pasm, examples/assembly/euclid.pasm,
6911         examples/assembly/jump.pasm, examples/assembly/local_label.pasm,
6912         examples/assembly/mops.pasm, examples/assembly/stack.pasm,
6913         examples/assembly/substr.pasm, examples/assembly/trace.pasm,
6914         t/.cvsignore, t/Makefile, t/call.pasm, t/euclid.pasm, t/jump.pasm,
6915         t/local_label.pasm, t/test.pasm, t/test2.pasm, t/test3.pasm,
6916         t/test4.pasm, t/test5.pasm, t/trace.pasm:
6917           * Moved examples from t/*.pasm to examples/assembly/*.pasm, with
6918         some
6919             renames so the names match what they demonstrate.
6921 2001-10-15 22:18  gregor
6923         * core.ops, t/test.pasm:
6924           * time_n uses gettimeofday() to get sub-second times.
6926           * t/test.pasm uses time_n directly rather than doing int stuff
6927         and
6928             converting to num later.
6930 2001-10-15 12:28  gregor
6932         * t/: test.pasm, test2.pasm, trace.pasm:
6933           * t/test.pasm prints using string constants instead of string
6934         regs.
6936           * t/test2.pasm assembles (using implicit op modes)
6938           * t/trace.pasm updated for new behavior of trace_ic, which does
6939         not
6940             require an 'end' after 'trace'.
6942 2001-10-15 00:47  gregor
6944         * core.ops, interpreter.c, test_main.c,
6945         include/parrot/interpreter.h, t/test.pasm:   * New interpreter flag
6946         PARROT_PROFILE_FLAG
6948           * New runops cores to handle profiling
6950           * Support for -p flag in test_prog to enable profiling
6952           * New profile_ic op to control profiling at run-time
6954 2001-10-14 21:54  gregor
6956         * core.ops, Parrot/OpsFile.pm, docs/.cvsignore, docs/Makefile,
6957         lib/Parrot/OpsFile.pm: Integrated op documentation.
6959           * core.ops now contains POD documentation of ops, interspersed
6960         with the
6961             ops themselves
6963           * Ops are organized into POD =head2 sections
6965           * Parrot/OpsFile.pm now treats the preamble of the ops file as
6966         anything
6967             up to the first POD directive OR op definition.
6969           * docs/Makefile now generates core_ops.pod from core.ops vi
6970         perldoc -u.
6972 2001-10-14 11:58  simon
6974         * Makefile.in:
6975         Unbreak Digital Un^W^WTru64
6977 2001-10-14 11:00  simon
6979         * Configure.pl:
6980         Remove weird typo.
6982 2001-10-14 10:56  tom
6984         * Configure.pl: Stop Configure trying to make op_info.c and op.h as
6985         op_info.c no longer exists and op.h is no longer a generated file.
6987 2001-10-14 10:54  tom
6989         * Makefile.in: Added vtable.h to the list of things removed by the
6990         clean target.
6992 2001-10-14 01:43  gregor
6994         * .cvsignore, MANIFEST, Makefile.in, basic_opcodes.ops,
6995         build_interp_starter.pl, core.ops, disassemble.pl, interpreter.c,
6996         make_op_header.pl, memory.c, opcheck.pl, opcode_table, ops2c.pl,
6997         ops2pm.pl, packfile.c, pbc2c.pl, process_opfunc.pl,
6998         Parrot/Assembler.pm, Parrot/Op.pm, Parrot/OpsFile.pm,
6999         Parrot/OpLib/.cvsignore, lib/Parrot/Assembler.pm, lib/Parrot/Op.pm,
7000         lib/Parrot/OpsFile.pm, lib/Parrot/OpLib/.cvsignore,
7001         include/parrot/.cvsignore, include/parrot/interp_guts.h,
7002         include/parrot/interpreter.h, include/parrot/op.h,
7003         include/parrot/oplib/.cvsignore, t/.cvsignore, t/Makefile,
7004         t/euclid.pasm, t/test.pasm, t/op/integer.t, t/op/number.t,
7005         t/op/stacks.t, t/op/string.t, t/op/trans.t:
7006         Moby Patch:
7008           * basic_opcodes.ops and opcode_table replaced by core.ops
7010           * process_opfunc.pl replaced by Parrot/OpsFile.pm, Parrot/Op.pm,
7011             and ops2c.pl. These convert *.ops to *_ops.c and
7012             include/parrot/oplib/*_ops.h
7014           * New ops2pm.pl converts *.ops to Parrot/OpLib/*.pm
7016           * disassemble.pl modified to use
7018           * interpreter.c modified to use structures in core_ops.c instead
7019             of the old op_info and op_func stuff. We're not yet to the
7020             point of handling multiple oplibs at a time, but we are getting
7021             there...
7023             Fingerprinting stuff disabled for now. We used to go off
7024             opcode_table. We need to rethink this. I have some ideas to
7025             make it unnecessary, but it remains to be seen whether others
7026             will like the direction they take us.
7028             Termination condition for while(){} loop in runops is now
7029             (pc) instead of (*pc). Any op can cause a HALT by returning
7030             a NULL pointer. Ops end, bounds and trace all do this. So, now
7031             the 'end' op body is actually executed, although all it does
7032             is HALT.
7034           * Makefile.in modified to perform a test build using pbc2c.pl,
7035             which is the bytecode --> C compiler I've posted to the
7036             list before.
7038           * Op full names are now autogenerated. Op root names must not
7039             contain underscores, so some op renamings have happened.
7040             Such as clear_i becoming cleari.
7042 2001-10-13 11:49  simon
7044         * Configure.pl, MANIFEST:
7045         Make parrot actually build again.
7047 2001-10-12 21:34  dan
7049         * docs/parrot_assembly.pod: Added docs for the new save/restore/bsr
7050         opcodes
7052 2001-10-12 20:56  dan
7054         * MANIFEST, Makefile.in, basic_opcodes.ops, interpreter.c,
7055         opcode_table, process_opfunc.pl, stacks.c, include/parrot/stacks.h,
7056         t/test3.pasm, t/test4.pasm, t/test5.pasm: Changes to support
7057         generic stack now in. We also have subroutines, of a simple sort!
7059 2001-10-12 19:15  tom
7061         * t/op/string.t: Improved string comparison tests try all string
7062         combinations with each of the comparison ops.
7064 2001-10-12 19:09  dan
7066         * interpreter.c: Properly sets up generic stack now
7068 2001-10-12 19:09  dan
7070         * include/parrot/interpreter.h: Fixed stack chunk struct type in
7071         interpreter structure
7073 2001-10-12 18:59  dan
7075         * stacks.c, include/parrot/parrot.h, include/parrot/stacks.h: More
7076         changes to get the generic stack working
7078 2001-10-12 18:59  dan
7080         * Configure.pl, MANIFEST, config_h.in, testparrotsizes_c.in,
7081         hints/vms.pl: Made the changes to figure out mask bits for various
7082         register and stack chunks
7084 2001-10-11 22:09  dan
7086         * docs/parrot_assembly.pod: Tossed the parameter for return
7088 2001-10-11 19:28  tom
7090         * strnative.c: Assignment, not comparison.  (Plus formatted for
7091         coding standards)
7093         Courtesy of Bryan C. Warnock
7095 2001-10-10 19:21  tom
7097         * basic_opcodes.ops, opcode_table, string.c, strnative.c,
7098         strutf16.c, strutf32.c, strutf8.c, docs/strings.pod,
7099         include/parrot/string.h, t/op/string.t: Added support for string
7100         comparisons and extended the comparison ops to include comparison
7101         of strings.
7103 2001-10-10 17:58  dan
7105         * MANIFEST: Shouldn't have added vtable.h to the manifest...
7107 2001-10-10 17:54  dan
7109         * MANIFEST, stacks.c, vtable_h.pl, Parrot/Vtable.pm,
7110         lib/Parrot/Vtable.pm: Now spits out the #defines for the various
7111         vtable type entries properly
7113 2001-10-10 15:37  dan
7115         * Parrot/Vtable.pm, lib/Parrot/Vtable.pm: Re-enabled change to
7116         parse new vtable.tbl file now that I've actually checked *in* the
7117         new format vtable.tbl file...
7119 2001-10-10 15:32  dan
7121         * vtable.tbl: New Column to indicate the type of the vtabel entry
7122         so we can know how many slots it takes
7124 2001-10-10 05:26  thgibbs
7126         * Parrot/Vtable.pm, lib/Parrot/Vtable.pm, vtable_h.pl: Patch to
7127         allow parrot to compile.  PACKAGE is not defined, therefore, I
7128         added a struct before it to have it not complain until we define
7129         PACKAGE.  Also, there was an extra shift in Vtable.pm and a missing
7130         semicolon at the end of the struct declaration.
7132 2001-10-10 05:09  thgibbs
7134         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm: This patch makes
7135         string constants of the form U"string" become unicode encoded
7136         parrot strings and the form N"string" become native encoded parrot
7137         strings.
7139         Courtesy of: Tom Hughes <tom@compton.nu>
7141 2001-10-10 04:55  dan
7143         * vtable_h.pl, Parrot/Vtable.pm, lib/Parrot/Vtable.pm: Start of
7144         support for generating the vtable function table offset macros
7146 2001-10-10 01:05  simon
7148         * t/op/integer.t:
7149         The test for cmod_i was using the 'mod Ix, Ix, Ix' form which
7150         compiles into the mod op, not the cmod_i op, hence wasn't testing
7151         what it thought it was.
7153         Courtesy of: Alex Gough <alexander.gough@st-hughs.oxford.ac.uk>
7155 2001-10-09 03:45  thgibbs
7157         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm: Patch to allow
7158         assembler to generate unicode strings.
7160         Courtesy of: Tom Hughes <tom@compton.nu>
7162 2001-10-08 19:30  brentdax
7164         * Configure.pl, test_c.in, hints/vms.pl: Cleaner VMS support, more
7165         info for Parrot::Config to remember, more flexible test.c stuff
7167 2001-10-08 15:04  gregor
7169         * basic_opcodes.ops:
7170           * Removed trash from early mod_i experiments (pardon our dust)
7172 2001-10-08 14:56  gregor
7174         * basic_opcodes.ops:
7175           * Fixed a couple of typos.
7177 2001-10-08 14:45  gregor
7179         * basic_opcodes.ops, opcode_table, t/op/integer.t, t/op/number.t:
7180         Arithmetic enhancements:
7182           * Renamed existing mod_i as cmod_i and added "corrected" mod_i:
7184             NOTE: This "uncorrected mod" algorithm uses the C language's
7185         built-in
7186             mod operator (x % y), which is
7188                 ... the remainder when x is divided by y, and thus is zero
7189         when y
7190                 divides x exactly.
7191                 ...
7192                 The direction of truncation for / and teh sign of the
7193         result for %
7194                 are machine-dependent for negative operands, as is the
7195         action taken
7196                 on overflow or underflow.
7197                                                                      --
7198         [1], page 41
7200             Also:
7202                 ... if the second operand is 0, the result is undefined.
7203         Otherwise, it
7204                 is always true that (a/b)*b + a%b is equal to z. I both
7205         operands are
7206                 non-negative, then teh remainder is non-negative and
7207         smaller than the
7208                 divisor; if not, it is guaranteed only that the absolute
7209         value of the
7210                 remainder is smaller than the absolute value of the
7211         divisor.
7212                                                                      --
7213         [1], page 205
7215             This op is provided for those who need it (such as
7216         speed-sensitive
7217             applications with heavy use of mod, but using it only with
7218         positive
7219             arguments), but a more mathematically useful numeric mod based
7220         on
7221             floor(x/y) and defined with y == 0 is provided by the mod_i op.
7223               [1] Brian W. Kernighan and Dennis M. Ritchie, *The C
7224         Programming
7225                   Language*, Second Edition. Prentice Hall, 1988.
7227           * Added "corrected" mod_i:
7229             NOTE: This "corrected mod" algorithm is based on the C code on
7230         page 70
7231             of [1]. Assuming correct behavior of C's built-in mod operator
7232         (%) with
7233             positive arguments, this algorithm implements a mathematically
7234         convenient
7235             version of mod, defined thus:
7237               x mod y = x - y * floor(x / y)
7239             For more information on this definition of mod, see section 3.4
7240         of [2],
7241             pages 81-85.
7243             References:
7245               [1] Donald E. Knuth, *MMIXware: A RISC Computer for the Third
7246                   Millennium* Springer, 1999.
7248               [2] Ronald L. Graham, Donald E. Knuth and Oren Patashnik,
7249         *Concrete
7250                   Mathematics*, Second Edition. Addison-Wesley, 1994.
7252           * Added mod_n, using the same formula as above, but with FLOATVAL
7253             arguments.
7255           * Added cmod_n, using the C math library's fmod() function:
7257             NOTE: This "uncorrected mod" algorithm uses the built-in C math
7258         library's
7259             fmod() function, which computes
7261                 ... the remainder of dividing x by y. The return value is x
7262         - n * y,
7263                 where n is the quotient of x / y, rounded towards zero to
7264         an
7265                 integer.
7266                                                 -- fmod() manpage on RedHat
7267         Linux 7.0
7269             In addition, fmod() returns
7271                 the remainder, unless y is zero, when the function fails
7272         and errno
7273                 is set.
7275             According to page 251 of [1], the result when y is zero is
7276         implementation-
7277             defined.
7279             This op is provided for those who need it, but a more
7280         mathematically
7281             useful numeric mod based on floor(x/y) instead of truncate(x/y)
7282         and
7283             defined with y == 0 is provided by the mod_n op.
7285               [1] Brian W. Kernighan and Dennis M. Ritchie, *The C
7286         Programming
7287                   Language*, Second Edition. Prentice Hall, 1988.
7289           * Added and modified tests as appropriate for the above.
7291 2001-10-08 08:49  thgibbs
7293         * include/parrot/exceptions.h, include/parrot/parrot.h,
7294         include/parrot/string.h, include/parrot/strutf16.h,
7295         include/parrot/strutf32.h, include/parrot/strutf8.h,
7296         include/parrot/transcode.h, include/parrot/unicode.h, MANIFEST,
7297         Makefile.in, global_setup.c, string.c, strnative.c, transcode.c,
7298         strutf16.c, strutf32.c, strutf8.c: Added code to handle unicode
7299         strings for utf8, utf16, and utf32.
7301         Courtesy of: Tom Hughes <tom@compton.nu>
7303 2001-10-08 08:10  thgibbs
7305         * memory.c: Fixed uninitialized variables.
7307         Courtesy of: Bryan C. Warnock <bwarnock@raba.com>
7309 2001-10-08 01:21  gregor
7311         * packfile.c:   * Casting a return value
7313           * Potential uninitialized variable fix
7315         Courtesy of Bryan C. Warnock <bwarnock@raba.com>
7317 2001-10-08 01:15  gregor
7319         * packfile.c, test_main.c: One of Bryan's languishing patches (with
7320         a few tweaks of my own):
7322           * Line wrapping
7324           * Printf format fixes
7326         Courtesy of: Bryan C. Warnock <bwarnock@raba.com>
7328 2001-10-07 22:39  thgibbs
7330         * build_interp_starter.pl: No longer adds (void*) casts to
7331         interp_guts.c function table as they are not necessary in ANSI C.
7333 2001-10-07 16:27  gregor
7335         * basic_opcodes.ops, interpreter.c, opcode_table,
7336         process_opfunc.pl, test_main.c, include/parrot/interpreter.h,
7337         t/trace.pasm:
7338           * Two new ops, trace_ic and bounds_ic that twiddle bits in
7339             interpreter->flags and set interpreter->resume_addr.
7341           * Two new runops core variants, so now we cover the relevant
7342             flag space over {trace, notrace} x {boundscheck, noboundscheck}
7344           * Runops core selection that converts the flags into an index
7345         into
7346             a core table (runops_cores) to get the core function pointer.
7348           * A new trace_op variant that doesn't do bounds checking (used by
7349             the non-bounds-checking-but-tracing runops core).
7351           * PC is passed into the cores so that they can be used when
7352             resuming (they used to assume starting at the beginning of the
7353             code, which would thwart resumption).
7355           * runops() itself is changed to have a while() loop in it so that
7356             any time we drop out of the core, we'll resume if we have an
7357             interpreter->resume_addr set (after reselecting the core,
7358         though).
7360           * process_opfunc.pl has a new "macro": RESUME(), that sets up
7361             interpreter->resume_addr. This is used by the new ops. The new
7362             ops still return the new PC as the next op (which MUST be an
7363             'end' op to force the core loop to terminate -- *pc being false
7364             is the only termination condition we can count on for all
7365         cores).
7367           * New interpreter flag: PARROT_BOUNDS_FLAG, used to control
7368             bounds checking core selection.
7370           * test_prog now has a '-b' flag in addition to the '-t' flag.
7371         Now,
7372             bounds checking is off by default (I saw a performance boost:
7373             6.3 Mop/s with -b, 7.0 Mop/s without).
7375           * A new sample/test program: t/trace.pasm that twiddles the trace
7376             flag while it is running.
7378 2001-10-07 15:41  gregor
7380         * .cvsignore, Makefile.in, build_interp_starter.pl, interpreter.c,
7381         include/parrot/.cvsignore, include/parrot/interpreter.h:
7382         Now that 0.0.2 is released, I can clear out the backlog of approved
7383         but uncommitted patches. Here's one Dan approved on 2001-09-21
7384         (Simplified DO_OP):
7386           * test_prog and pdump are linked with only the files the need,
7387         not
7388             al the files.
7390           * build_interp_starter.pl writes out op_info.[hc], too. These
7391         files
7392             contain op name, arg count and arg type information. This will
7393         be
7394             useful for multiple things in the future, including better
7395         trace
7396             output and the crystalizing loader.
7398           * The DO_OP macro is now simpler and doesn't require explicit
7399             temporaries.
7401           * interpreter.c is modified to use the new op info in tracing
7402         output.
7404           * The interpreter just points its opcode_funcs and opcode_info
7405             members at the default tables rather than allocating memory on
7406             the fly.
7408 2001-10-07 03:58  thgibbs
7410         * include/parrot/.cvsignore, vtable_h.pl: Minor updates fixing a
7411         comment and adding vtable.h to .cvsignore as it is produced by
7412         vtable_h.in
7414 2001-10-06 20:58  thgibbs
7416         * vtable.tbl: Added * to REGEX type.
7418         Courtesy of Bryan C. Warnock <bwarnock@raba.com>
7420 2001-10-06 13:41  simon
7422         * MANIFEST, Makefile.in, vtable.tbl, vtable_h.pl, Parrot/Vtable.pm,
7423         include/parrot/parrot.h, lib/Parrot/Vtable.pm:
7424         Framework for vtable functions.
7426 2001-10-06 06:52  thgibbs
7428         * make_op_header.pl: Removed confusing and unused typedef.
7430 2001-10-06 06:31  thgibbs
7432         * Parrot/Opcode.pm, lib/Parrot/Opcode.pm: Removed variables that
7433         are no longer used.
7435 2001-10-06 06:26  thgibbs
7437         * disassemble.pl: Changed intval to op in disassembler.
7439 2001-10-06 06:21  thgibbs
7441         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm: Fixed typo with
7442         Assembler, local labels, and integer constants.
7444 2001-10-06 03:11  ask
7446         * Makefile.in: make `make test` actually run the tests on
7447         darwin/macosx
7449 2001-10-06 02:04  thgibbs
7451         * Parrot/Assembler.pm, Parrot/Opcode.pm, Parrot/PackFile.pm,
7452         Parrot/String.pm, Parrot/PackFile/ConstTable.pm,
7453         Parrot/PackFile/Constant.pm, include/parrot/packfile.h,
7454         include/parrot/register.h, lib/Parrot/Assembler.pm,
7455         lib/Parrot/Opcode.pm, lib/Parrot/PackFile.pm, lib/Parrot/String.pm,
7456         lib/Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/Constant.pm,
7457         t/op/integer.t: No, it didn't mess anything up.  I just forgot to
7458         type make. :)
7460 2001-10-06 02:02  thgibbs
7462         * Parrot/Assembler.pm, Parrot/Opcode.pm, Parrot/PackFile.pm,
7463         Parrot/String.pm, Parrot/PackFile/ConstTable.pm,
7464         Parrot/PackFile/Constant.pm, include/parrot/packfile.h,
7465         include/parrot/register.h, lib/Parrot/Assembler.pm,
7466         lib/Parrot/Opcode.pm, lib/Parrot/PackFile.pm, lib/Parrot/String.pm,
7467         lib/Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/Constant.pm,
7468         t/op/integer.t: oops...this messed something up.  I must have
7469         missed something in the patch...I have reverted.
7471 2001-10-06 01:57  thgibbs
7473         * Parrot/Assembler.pm, Parrot/Opcode.pm, Parrot/PackFile.pm,
7474         Parrot/String.pm, Parrot/PackFile/ConstTable.pm,
7475         Parrot/PackFile/Constant.pm, include/parrot/packfile.h,
7476         include/parrot/register.h, lib/Parrot/Assembler.pm,
7477         lib/Parrot/Opcode.pm, lib/Parrot/PackFile.pm, lib/Parrot/String.pm,
7478         lib/Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/Constant.pm,
7479         t/op/integer.t, Types_pm.in, basic_opcodes.ops, config_h.in,
7480         memory.c, packfile.c, process_opfunc.pl, strnative.c, test_main.c:
7481         This patch ensures that all bytecode is of type opcode_t except for
7482         the constant table constants.  That means that almost all of the
7483         INTVALs in the code were replaced with opcode_t and the i pack type
7484         was replaced with the op pack type in calls to pack_arg and such.
7485         Also, since it has been declared that ALL integer constants are to
7486         be 32 bits, some test cases were changed to ensure that an integer
7487         constant was no bigger than 2 ** 31.
7489         process_opfunc.pl was also cleaned up to no longer look at either
7490         opcode_table or interp_guts.h but gather all of its information
7491         from Opcode.pm.
7493         The Assembler.pm module was changed to do late binding of arguments
7494         so that 0 could be treated like 0.0 without having to be so
7495         declared.  Also, only strings now use the [sc:N] intermediate form
7496         as it was unnecessary for integer and float types.
7498 2001-10-05 21:59  gregor
7500         * MANIFEST, languages/jako/Makefile:
7501         Fixed things due to the movement of little_languages/* to
7502         languages/jako.
7504 2001-10-05 18:31  gregor
7506         * MANIFEST:
7507         Updated MANIFEST to reflect recent additions for Jako.
7509 2001-10-05 17:54  gregor
7511         * languages/jako/: Makefile, bench.jako, euclid.jako, fact.jako,
7512         fib.jako, hello.jako, jakoc, leibniz.jako, mandelbrot.jako,
7513         mops.jako, primes.jako, sub.jako:
7514           * Compiler:
7516               * User-defined subroutines.
7517               * Generates assembly code with the Jako code in comments.
7518               * "end;" no longer required at the end of programs.
7519               * Better handling of const-reg and reg-const.
7520               * Optimizes const-const operations to compile-time
7521         evaluations.
7522               * Constants in addition to variables.
7523               * Arithmetic fixes.
7524               * Allow leading minus signs in integer and number constants
7525         (ahem).
7526               * goto's.
7528           * New sample programs:
7530               * leibniz.jako (based on Greg McCarroll's leibniz.pasm
7531         example)
7532               * mandelbrot.jako (based on Leon Brocard's translation of
7533         Glenn Rhodes' C code)
7534               * mops.jako (based on t/test.pasm)
7535               * primes.jako (based on Leon Brocard's primes.pasm example)
7536               * sub.jako (demonstrates a simple user-defined subroutine)
7538 2001-10-05 12:54  gregor
7540         * Parrot/Opcode.pm, lib/Parrot/Opcode.pm:
7541           * Removed mysterious extra copy of code after POD.
7543 2001-10-05 12:46  gregor
7545         * basic_opcodes.ops, t/op/string.t:
7546           * Enabled the previously SKIPped test of printing string regs
7547         after
7548             clear_s
7550           * Made print_s do nothing if the STRING pointer in the register
7551         file
7552             is NULL.
7554 2001-10-04 21:19  dan
7556         * Configure.pl: VMS tweaks
7558 2001-10-04 21:17  dan
7560         * hints/vms.pl: Hints file for VMS
7562 2001-10-04 00:58  bdwheele
7564         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm: fixed but in
7565         Assembler which stopped equates from working.
7567 2001-10-03 21:50  gregor
7569         * Makefile.in, docs/.cvsignore, docs/Makefile, docs/parrotbyte.pod:
7571           * More documentation updates for the packfile stuff.
7573 2001-10-03 21:37  gregor
7575         * docs/parrotbyte.pod:
7576           * Pointed the reader at Parrot::PackFile.
7578 2001-10-03 21:34  gregor
7580         * Parrot/PackFile.pm, lib/Parrot/PackFile.pm:
7581           * Updated documentation to match current implementation.
7583 2001-10-03 18:30  gregor
7585         * .cvsignore, disassemble.pl, Parrot/Assembler.pm,
7586         lib/Parrot/Assembler.pm, t/call.pasm, t/euclid.pasm,
7587         t/local_label.pasm, t/test.pasm, t/test2.pasm, t/test3.pasm,
7588         t/op/basic.t:
7589           * Added new syntax to the assembler to allow square-bracket
7590             arithmetic expressions involving (global) labels, the current
7591             instructions base address ('@'), numeric constants (not
7592         equates)
7593             and basic arithmetic operators (+, -, *, / -- although + and -
7594             are likely to be the only ones used in practice).
7596           * Fixed a bug in Parrot/Assemble.pl that caused macro expansion
7597         to
7598             fail (argument passing wasn't working).
7600           * Enabled t/op/basic.t's last test, which is actually a copy of
7601         the
7602             code from t/call.pasm. Now all tests there are enabled and
7603         working.
7605           * Added new example/test program t/call.pasm to demonstrate
7606         working
7607             macros and poor-man's subroutine calls
7609           * Added header comments to t/*.pasm
7611 2001-10-03 18:00  simon
7613         * ChangeLog:
7614         Needed, since it's in the MANIFEST.
7616 2001-10-03 17:56  simon
7618         * t/op/: string.t, time.t:
7619         Small fixes to help Win32 on its way.
7621 2001-10-03 17:41  simon
7623         * MANIFEST, README:
7624         Oops. Tiny bugs.
7626 2001-10-03 17:39  simon
7628         * MANIFEST, NEWS, README:
7629         README, NEWS and MANIFEST? Could it be time for Parrot 0.0.2? I
7630         think so!
7632 2001-10-03 17:21  simon
7634         * basic_opcodes.ops, interpreter.c, packfile.c:
7635         Evil printf bandaid (which allows Sparc64 to pass tests)
7637         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
7639 2001-10-03 16:58  simon
7641         * string.c, t/op/string.t:
7642         chop fixes for n < 0 and tests
7644         Courtesy of: Alex Gough <alex@rcon.org>
7646 2001-10-03 15:51  thgibbs
7648         * interpreter.c: Changed an occurrence of INTVAL to opcode_t
7650         Courtesy of: Bryan C. Warnock <bwarnock@raba.com>
7652 2001-10-02 17:48  dan
7654         * include/parrot/stacks.h: Fix typo in function name
7656 2001-10-02 17:35  dan
7658         * include/parrot/stacks.h: changed to support new stack stuff
7659         coming after 0.02
7661 2001-10-02 15:01  simon
7663         * Configure.pl, Types_pm.in, basic_opcodes.ops, config_h.in,
7664         interpreter.c, make_op_header.pl, memory.c, packfile.c,
7665         process_opfunc.pl, register.c, string.c, strnative.c,
7666         Parrot/Opcode.pm, Parrot/PackFile.pm, Parrot/String.pm,
7667         lib/Parrot/Opcode.pm, lib/Parrot/PackFile.pm, lib/Parrot/String.pm,
7668         Parrot/PackFile/ConstTable.pm, Parrot/PackFile/Constant.pm,
7669         docs/overview.pod, docs/strings.pod, include/parrot/interpreter.h,
7670         include/parrot/memory.h, include/parrot/packfile.h,
7671         include/parrot/parrot.h, include/parrot/register.h,
7672         include/parrot/stacks.h, include/parrot/string.h,
7673         lib/Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/Constant.pm:
7675         The Great Renaming.
7677 2001-10-02 12:49  gregor
7679         * process_opfunc.pl:
7680           * Fixed a tyop:  s/string/integer/ for INT_CONST expansion
7682 2001-10-02 12:40  simon
7684         * basic_opcodes.ops, process_opfunc.pl, register.c,
7685         include/parrot/register.h:
7686         Move preprocessing of register accessors to process_opfunc.pl
7688         Courtesy of: Jason Gloudon <perl@gloudon.com>
7690 2001-10-02 01:20  ask
7692         * README: add a few lines about lists.
7694 2001-10-01 23:00  brentdax
7696         * Configure.pl, Makefile.in, hints/mswin32.pl: Make 'make clean'
7697         work on Win32 (courtesy of Mattia Barbon <mbarbon@dsi.unive.it>)
7699 2001-10-01 22:50  brentdax
7701         * Configure.pl, test_c.in: More changes for 64-bit compatibility
7703 2001-10-01 21:51  simon
7705         * process_opfunc.pl:
7706         Michael Fischer's patch broke conditionals.
7708 2001-10-01 15:38  simon
7710         * process_opfunc.pl:
7711         Small hack to keep process_opfunc.pl from generating extra return()
7712         statements.
7714         Courtesy of: Michael Fischer <michael@visv.net>
7716 2001-10-01 15:32  simon
7718         * Parrot/Opcode.pm, lib/Parrot/Opcode.pm:
7719         Documentation fix.
7721         Courtesy of: Josh Wilmes <josh@hitchhiker.org>
7723 2001-10-01 01:49  simon
7725         * packfile.c:
7726         Simon is an idiot. Don't trust him with your code.
7728         Courtesy of: Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
7730 2001-10-01 00:59  simon
7732         * Parrot/String.pm, lib/Parrot/String.pm:
7733         Was in manifest, but not in CVS.
7735 2001-09-30 21:25  simon
7737         * MANIFEST, Types_pm.in, assemble.pl, basic_opcodes.ops,
7738         disassemble.pl, packfile.c, pdump.c, process_opfunc.pl,
7739         Parrot/Assembler.pm, Parrot/PackFile.pm,
7740         Parrot/PackFile/ConstTable.pm, Parrot/PackFile/Constant.pm,
7741         Parrot/PackFile/FixupTable.pm, lib/Parrot/Assembler.pm,
7742         lib/Parrot/PackFile.pm, lib/Parrot/PackFile/ConstTable.pm,
7743         lib/Parrot/PackFile/Constant.pm, lib/Parrot/PackFile/FixupTable.pm,
7744         include/parrot/packfile.h, include/parrot/string.h:
7745         Move NVs to the constant table.    * Changes to Types_pm.in to make
7746         life easier for some of the      packing/etc. I'm doing elsewhere.
7747         Also, we now pack 'n' as      'i'.
7749           * Moved the guts of assemble.pl to Parrot/Assembler.pm so that
7750             eventually we can use all these tools together inside scripts
7751             rather than call out to the shell to run the programs.
7753           * As I was tracking down problems, I converted the internal
7754             documentation of the assembler to POD from comments.
7756           * Changed the numeric regexp in the assembler to detect leading
7757             signs and trailing exponents.
7759           * Updated basic_opcodes.ops to fetch numeric constants from the
7760             constant table.
7762           * Enhanced the disassembler in a number of ways to make my life
7763             easier while tracking down bugs (try it out). It now puts in
7764             labels for ops that are the destinations of flow control ops.
7766           * packfile.c now has a TRACE_PACKFILE switch that can be set
7767             to get it to print info as it processes. I needed this while
7768             debugging, but I can remove it or change it before committing
7769             if its a problem.
7771           * Updated pdump.c because it was missing a call to init_world().
7773           * Updated process_opfunc.pl to deal with numeric constants
7774             being stored in the constant table instead of inline.
7776           * Added multiple type support to Parrot/PackFile/Constant.pm
7778           * Added Parrot/String.pm, to be used for constants.
7780           * Added packfile.[hc] functions for allocating new constants
7781             of various types.
7783           * Made string_copy visible to the world in parrot/string.h.
7785         Wow.
7787         Courtesy of: Gregor N. Purdy <gregor@focusresearch.com>
7789 2001-09-29 15:56  gregor
7791         * languages/jako/Makefile:
7792         Removed assumption that '.' is on the path.
7794 2001-09-29 15:55  gregor
7796         * languages/jako/Makefile:
7797         Removed references to leibnitz test program.
7799 2001-09-29 15:21  thgibbs
7801         * t/op/trans.t, basic_opcodes.ops: Added NV casts to transcendental
7802         math ops args to work on Solaris.
7804 2001-09-27 15:15  thgibbs
7806         * assemble.pl: Added case insensitive matches to hex and binary
7807         characters
7809         Courtesy of: Johnathan Scott Duff <duff@cbi.tamucc.edu>
7811 2001-09-27 04:46  thgibbs
7813         * assemble.pl: This patch makes integer constants of the form
7814         0b[01]+ work with perl 5.005.  The oct function in versions of perl
7815         before 5.6 did not handle the 0b numeric prefix; therefore, it was
7816         returning 0.  To fix this, I added a from_binary function that
7817         would take a binary string and return its decimal representation.
7818         Now, instead of blindly calilng oct, it makes a distinction between
7819         0/0x numbers and 0b numbers.
7821 2001-09-26 19:30  thgibbs
7823         * assemble.pl: Error now returns a non-zero status
7825         Courtesy of: Andrew Kuchling <akuchlin@mems-exchange.org>
7827 2001-09-26 19:13  gregor
7829         * MANIFEST, Makefile.in, basic_opcodes.ops, bytecode.c,
7830         interpreter.c, packfile.c, pdump.c, test_main.c,
7831         include/parrot/bytecode.h, include/parrot/interpreter.h,
7832         include/parrot/packfile.h, include/parrot/parrot.h, t/op/integer.t,
7833         t/op/stacks.t:
7834           * bytecode.[hc] removed. packfile.[hc] are the interface to the
7835             packfile/bytecode file from C. May be renamed in the future.
7837           * packfile.[hc] changed to use 'struct PackFile *', etc. instead
7838             of 'PackFile *', just like the interpreter, etc.
7840           * Constants are accessed via the interpreter's 'code' member
7841             (struct PackFile * code). Macros PCONST(i) and PNCONST are
7842             provided to access constants by index and the number of
7843             constants, respectively (assumes a variable 'interpreter' of
7844             the appropriate type is in scope).
7846           * Byte Code is accessed via the interpreter's 'code' member.
7848           * Changed PackFile_Constant to point to a STRING instead of
7849         having
7850             members for the string_make() arguments. Also has a 'type' IV
7851             in preparation for allowing multiple types of constants in
7852             const_table.
7854           * Removed hardcoded example program from test_main.c. We have
7855             plenty of test programs elsewhere.
7857           * test_prog now uses a PackFile to deal with the program before
7858             sending it on to the interpreter.
7860           * Added missing 'end' ops to some tests in t/op/integer.t and
7861             t/op/stacks.t.
7863 2001-09-26 18:38  thgibbs
7865         * assemble.pl: Separated code into functions and added comments.
7867 2001-09-26 18:29  simon
7869         * config_h.in:
7870         Fix 64-bit chunk-base issue.
7872 2001-09-26 06:55  thgibbs
7874         * t/op/bitwise.t: Added end to bitwise tests.
7876 2001-09-26 00:54  dan
7878         * docs/parrot_assembly.pod: Added in the base for threading, I/O,
7879         and interpreter creation. Skeleton only, but it's something to peer
7880         at.
7882 2001-09-25 21:44  thgibbs
7884         * t/op/trans.t: Removed loops in transcendtal op test.
7886 2001-09-25 10:12  simon
7888         * MANIFEST, t/op/basic.t, t/op/bitwise.t, t/op/integer.t,
7889         t/op/string.t, t/op/time.t:
7890         More tests
7892         Courtesy of: Alex Gough <alex@rcon.org>
7894 2001-09-24 19:08  gregor
7896         * t/op/number.t:
7897           * Enabled the clear_n test.
7899 2001-09-24 18:56  gregor
7901         * Parrot/.cvsignore:
7902           * Ignore the generated Types.pm file.
7904 2001-09-24 18:52  gregor
7906         * languages/jako/Makefile, t/op/number.t:
7907           * No need to skip the inc and dec numeric tests anymore. I fixed
7908         the
7909             assembler earlier today.
7911 2001-09-24 18:21  simon
7913         * MANIFEST, t/op/stacks.t:
7914         Oops.
7916 2001-09-24 18:19  simon
7918         * build_interp_starter.pl, interpreter.c, string.c, Parrot/Test.pm,
7919         include/parrot/exceptions.h, include/parrot/interpreter.h,
7920         lib/Parrot/Test.pm, t/op/string.t:
7921         1) captured error output, so can test errors, this might be bad,
7922         not sure.  2) basic tests for register stack frames, including some
7923         errors 3) I think we can stop skipping one of the string tests 4) I
7924         added some more substr tests, but substr was broken, so 5) changed
7925         substr to work with out of range values, or 6) throw an error if
7926         they're far too silly
7928         Courtesy of: Alex Gough <alex@rcon.org>
7930 2001-09-24 17:27  gregor
7932         * basic_opcodes.ops, opcode_table, t/op/number.t:
7933           * Op set_n was missing. Added it and a test for it. We now have
7934         the
7935             same int and num ops, except mod is int-only.
7937 2001-09-24 17:01  gregor
7939         * assemble.pl:
7940           * Fixed a typo: s/Line/line/
7942 2001-09-24 16:02  gregor
7944         * basic_opcodes.ops:
7945           * Fixed dec_n_nc opcode, which had += where it should have had
7946         -=.
7948 2001-09-24 15:34  gregor
7950         * assemble.pl:
7951           * Fixed handling of constants starting with '0' that should not
7952         be
7953             sent through oct(). For example 'set N2 0.1' was being
7954         interpreted
7955             as 'set N2 0' (naughty).
7957             As reported by Leon Brocard <acme@astray.com> in the comments
7958         of
7959             his mandelbrot.pasm example.
7961 2001-09-24 02:21  bdwheele
7963         * assemble.pl: fixed dumb code when --include was not specified.
7965 2001-09-24 02:17  simon
7967         * assemble.pl:
7968         Shit-sweeping.
7970 2001-09-24 01:56  bdwheele
7972         * assemble.pl: * Added --include=dir option to assembler to provide
7973         a path to look for included files.  * Error message of a macro is
7974         defined inside of a macro
7976 2001-09-23 21:29  bdwheele
7978         * assemble.pl: Added __FILE__ equate, fixed __LINE__ equate.
7980 2001-09-23 15:50  simon
7982         * Configure.pl:
7983         Fixed typo. Parrot might work again on non-8.3 filesystems. :)
7985 2001-09-23 02:03  ask
7987         * Configure.pl, test_c.in: fix missing newline at the end of test.c
7988         Courtesy of: acme@astray.com (Leon Brocard)
7990         rename 'test' executable used in Configure process to test_siz.
7992 2001-09-23 01:03  simon
7994         * process_opfunc.pl:
7995         iPaq fix. No, really.
7997 2001-09-23 00:47  simon
7999         * MANIFEST:
8000         Missed several, in fact.
8002 2001-09-23 00:46  simon
8004         * MANIFEST:
8005         Missed one.
8007 2001-09-22 21:13  simon
8009         * assemble.pl:
8010         Assembler register numbering rigour.
8012         Courtesy of: Leon Brocard <acme@astray.com>
8014 2001-09-22 18:20  simon
8016         * Makefile.in, lib/Test/More.pm, lib/Test/Simple.pm,
8017         lib/Test/Utils.pm:
8018         I'm sick of having to install Test::More everywhere. Temporary
8019         measure until we remove this silly dependency.
8021         Also a typo in Makefile.in which suggests some things were only
8022         happening correctly by sheer chance. :)
8024 2001-09-22 18:06  simon
8026         * README:
8027         test.pasm is dead, long like make test.
8029 2001-09-22 17:47  simon
8031         * t/op/number.t:
8032         De-fang overzealous floating point test.
8034 2001-09-22 17:39  simon
8036         * process_opfunc.pl:
8037         Remove hard-coded NV size assumption. Tru64 is nearly there!
8039 2001-09-22 17:18  simon
8041         * assemble.pl, disassemble.pl:
8042         More portability fixups.
8044 2001-09-22 16:44  simon
8046         * assemble.pl, Parrot/PackFile/Constant.pm,
8047         lib/Parrot/PackFile/Constant.pm:
8048         And I *think* this fixes Tru64.
8050 2001-09-22 16:37  simon
8052         * Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/ConstTable.pm:
8054         Oops.
8056 2001-09-22 16:36  simon
8058         * Parrot/PackFile.pm, Parrot/PackFile/ConstTable.pm,
8059         Parrot/PackFile/Constant.pm, lib/Parrot/PackFile.pm,
8060         lib/Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/Constant.pm:
8062         More removal of hard-coded pack formats.
8064 2001-09-22 15:21  simon
8066         * assemble.pl:
8068         Grrr. Why isn't this working?
8070 2001-09-22 15:18  simon
8072         * Parrot/PackFile.pm, Parrot/PackFile/ConstTable.pm,
8073         lib/Parrot/PackFile.pm, lib/Parrot/PackFile/ConstTable.pm:
8075         Make assemble use the PackFile modules; also fixed some bugs in
8076         them.
8078 2001-09-22 14:38  simon
8080         * Configure.pl, MANIFEST, Types_pm.in, assemble.pl, disassemble.pl:
8082         Abstract the argument and opcode packing types and functions out
8083         into a separate module. This *should* help us maintain consistency
8084         when we change the various types.
8086 2001-09-22 00:46  brentdax
8088         * Configure.pl: Delete test.o (or its equivalent) after Configure's
8089         test program finishes.
8091 2001-09-21 21:24  brentdax
8093         * Parrot/Test.pm, lib/Parrot/Test.pm: Fix error with \ as path
8094         separator (courtesy of Mattia Barbon <mbarbon@dsi.unive.it>)
8096 2001-09-21 21:09  gregor
8098         * Parrot/PackFile/ConstTable.pm, Parrot/PackFile/Constant.pm,
8099         lib/Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/Constant.pm:
8101           * Fixed pad calculation (similar to recent bug fix on C library)
8103 2001-09-21 20:23  simon
8105         * disassemble.pl:
8106         Pack types and sizes have gone askew.
8108 2001-09-21 20:18  brentdax
8110         * Configure.pl: Fix typo in setting stuff from the C test program
8112 2001-09-21 10:25  simon
8114         * basic_opcodes.ops, process_opfunc.pl:
8115         Document patches.
8117         Courtesy of: Leon Brocard <acme@astray.com>
8119 2001-09-21 06:06  ask
8121         * Config_pm.in, assemble.pl: fix 5.005_03.
8123 2001-09-21 06:03  ask
8125         * Configure.pl: make the ivsize detection work for us normal people
8126         without . in our PATH.  :-)
8128 2001-09-21 05:56  brentdax
8130         * test_main.c: Change _read to read for portability to Tru64
8131         (Damien Neil <neild@misago.org> and likely many others)
8133 2001-09-21 05:46  ask
8135         * Makefile.in: "update" target to update from cvs.
8137 2001-09-21 05:44  brentdax
8139         * Configure.pl, test_c.in: Fix issues with ivsize and nvsize
8141 2001-09-21 02:43  brentdax
8143         * Configure.pl: Fix a typo that forced the -g flag on
8145 2001-09-20 22:41  dan
8147         * packfile.c: Had some no-value returns. Naughty
8149 2001-09-20 22:40  dan
8151         * t/test.pasm: Added labels to output
8153 2001-09-20 15:39  simon
8155         * Parrot/Opcode.pm, Parrot/Test.pm, lib/Parrot/Opcode.pm,
8156         lib/Parrot/Test.pm:
8157         This patch does two only somewhat related things.
8159         Parrot/Opcode.pm:  Change the hard-wired assumption that sizeof(nv)
8160         = 2*sizeof(iv) to a PConfig-type computed value.
8162         Parrot/Test.pm:  Change it to run with the perl that was used to
8163         generate this version of Parrot.  This is useful if, for example,
8164         you want to use bleadperl to build and test parrot (e.g. to try out
8165         various 64-bit options) but you still have a 5.6.x (or 5.005_xx)
8166         installed as the default 'perl' on your system.  Since perl-5.7.x
8167         is installed 'version-only', a plain 'perl' is quite likely to pick
8168         up the older perl in such cases. Such an older perl might well not
8169         understand pack('q') used in the assembler.
8171         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
8173 2001-09-20 15:14  gregor
8175         * packfile.c:
8176           * Fixed a typo in pad calculation that throwing off unpack and
8177         pack.
8179 2001-09-20 15:03  thgibbs
8181         * t/op/integer.t: Removed overflow tests from integer.t.  set_i_ic
8182         tests now cover all registers.
8184         Courtesy of: Damien Neil neild@misago.org
8186 2001-09-20 14:48  thgibbs
8188         * process_opfunc.pl: Changed process_opfunc.pl to work on 64 bit
8189         machines.
8191 2001-09-20 14:35  simon
8193         * Configure.pl, assemble.pl:
8194         Pack IVs correctly.
8196         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
8198 2001-09-20 14:06  gregor
8200         * languages/jako/jakoc:
8201           * Fixed a tyop in the string interpolation regex.
8203         Courtesy of Michael L Maraist <maraist@UDel.Edu>
8205 2001-09-20 13:56  gregor
8207         * languages/jako/jakoc:
8208           * Updated jakoc to work with the single-destination comp ops.
8210 2001-09-20 05:08  bdwheele
8212         * assemble.pl: macro expansion.  Here's the test macro I was using:
8214         # this uses I32,I31 as temporaries.  # macro must be preceeded by a
8215         label.  testi       macro   num,got,want    print   "Test #"
8216         print   num     print   "..."   set     I32,want        set
8217         I31,got         eq      I32,I31,$ok     print   "NG\n"  branch
8218         $end $ok:       print   "OK\n" $end:    endm
8220         It is invoked as:
8222         Test1:  testi   1,I3,I2
8224 2001-09-20 03:52  dan
8226         * stacks.c, include/parrot/stacks.h: Preliminary files for the
8227         generic stack support
8229 2001-09-20 02:49  bdwheele
8231         * assemble.pl: Added include processing to assemble.pl  the syntax
8232         is: include 'file.to.include'
8234 2001-09-19 23:57  thgibbs
8236         * t/op/integer.t, t/op/number.t, assemble.pl, opcode_table: Fixed
8237         opcode_table listing of if_i_ic and if_n_ic.  Dan had changed the
8238         function to only use 2 args, but the opcode_table still had three
8239         listed.  Fixed integer.t and number.t to use the new comparison
8240         operators.  Improved assemble.pl ability to grok operators by
8241         constructing a function set and comparing operator types.
8243 2001-09-19 22:42  dan
8245         * assemble.pl: Binmodes the output filehandles now. (No more
8246         bytecode munching...)
8248 2001-09-19 22:32  dan
8250         * Configure.pl, basic_opcodes.ops, opcode_table, process_opfunc.pl,
8251         t/euclid.pasm, t/test.pasm, t/test2.pasm: Changed opcodes so
8252         conditional branches take a single argument, and fall through
8253         otherwise.
8255 2001-09-19 21:19  thgibbs
8257         * memory.c: Added explanation of mem_allocate_aligned give by Dan
8258         Sugalski
8260         Courtesy of: Josh Wilmes <josh@hitchhiker.org>
8262 2001-09-19 21:04  thgibbs
8264         * include/parrot/interpreter.h, Configure.pl,
8265         build_interp_starter.pl, bytecode.c, config_h.in, interpreter.c,
8266         process_opfunc.pl: Changed opcode_t from a union to a configurable
8267         type.
8269 2001-09-19 20:54  thgibbs
8271         * assemble.pl: Missed a couple of changes for 64 bit portability.
8273 2001-09-19 20:37  gregor
8275         * packfile.c, include/parrot/packfile.h:
8276           * Added "methods" for setting and getting all the various
8277         attributes,
8278             probably sufficient for an assembler to use the library.
8280 2001-09-19 20:04  thgibbs
8282         * assemble.pl: Modifications to run on 64 bit platforms.  To run on
8283         a 64 bit platform manually change the  setting for 'i' from 'l' to
8284         'q'.  This should be automatically done by a Configure setting in
8285         the near future.
8287 2001-09-19 19:10  thgibbs
8289         * config_h.in: changed c++ comment to c comment.
8291         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
8293 2001-09-19 17:48  gregor
8295         * .cvsignore, MANIFEST, Makefile.in, packfile.c, pdump.c,
8296         include/parrot/packfile.h:
8297           * C code for dealing with PackFiles as if they were objects.
8298         Mostly
8299             read-only interface for now, but it would not be hard to make
8300         it
8301             read-write. [packfile.c, include/parrot/packfile.h]
8303           * PackFile Dumping program that falls short of disassembling, but
8304             tests the above code and provides a hex listing of the byte
8305         code
8306             contents of the PackFile. [pdump.c]
8308           * New Makefile target 'pdump' for the above program, and related
8309             Makefile.in changes.
8311           * Updated MANIFEST to reflect the added files
8313           * Update .cvsignore to ignore pdump.
8315 2001-09-19 14:55  thgibbs
8317         * MANIFEST: Added number.t and trans.t to MANIFEST
8319 2001-09-19 05:40  thgibbs
8321         * process_opfunc.pl: Now taking & of opcode_t instead of i member
8322         of union opcode_t.  I hope this will be more portable for set_n_nc.
8324 2001-09-19 05:39  thgibbs
8326         * t/op/integer.t: Added end to test 1.
8328 2001-09-19 00:09  thgibbs
8330         * t/op/number.t: Added end to each test
8332 2001-09-19 00:00  simon
8334         * t/op/number.t:
8335         Number tests! Wooo!
8337         Courtesy of: Damien Neil <neild@misago.org>
8339 2001-09-18 23:52  thgibbs
8341         * interpreter.c: Added casts to appropriate types to make -Wall not
8342         complain on certain printf formats
8344 2001-09-18 23:31  thgibbs
8346         * t/op/integer.t: Added end to each test.
8348 2001-09-18 22:54  thgibbs
8350         * t/op/trans.t: Added trans.t for transcendental math function
8351         tests.
8353 2001-09-18 22:28  simon
8355         * MANIFEST:
8356         MANIFEST updates. (And notice how I carefully snuck in the
8357         t/op/integer.t there...)
8359         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
8361 2001-09-18 22:26  simon
8363         * t/: integer.t, op/integer.t:
8364         Except it doesn't go there. Duh.
8366 2001-09-18 22:25  simon
8368         * t/integer.t:
8369         Tests for integer ops.
8371         Courtesy of: Damien Neil <neild@misago.org>
8373 2001-09-18 22:03  thgibbs
8375         * include/parrot/bytecode.h, include/parrot/interpreter.h,
8376         build_interp_starter.pl, bytecode.c, config_h.in, interpreter.c,
8377         make_op_header.pl, process_opfunc.pl, test_main.c: Changed IV to
8378         opcode_t union for operators.  This required a few perl script
8379         changes to output the correct type.  There were also some changes
8380         to allow -pedantic in gcc
8382 2001-09-18 21:07  gregor
8384         * disassemble.pl, Parrot/PackFile.pm,
8385         Parrot/PackFile/ConstTable.pm, Parrot/PackFile/Constant.pm,
8386         lib/Parrot/PackFile.pm, lib/Parrot/PackFile/ConstTable.pm,
8387         lib/Parrot/PackFile/Constant.pm:
8388         Converted the disassembler to use the Parrot::PackFile Perl classes
8389         to do its job.
8391 2001-09-18 19:18  brentdax
8393         * Makefile.in: Fix missing functions for real this time.  (I
8394         swear!)
8396 2001-09-18 18:49  brentdax
8398         * Configure.pl: Remove unnecessary -I.. (courtesy of Andy Dougherty
8399         <doughera@lafayette.edu>}
8401 2001-09-18 18:47  brentdax
8403         * Makefile.in: Fix bugs with missing math, etc. functions
8405 2001-09-18 14:42  thgibbs
8407         * strnative.c: Sorry Simon...forgot bustart was a void* not a
8408         char*.
8410 2001-09-18 13:59  thgibbs
8412         * strnative.c: Removed unnecessary IV cast in concat.
8414 2001-09-18 13:58  thgibbs
8416         * t/op/string.t: Removed unnecessary IV cast in concat.  Added end
8417         to concat test in string.t
8419 2001-09-18 12:07  gregor
8421         * languages/jako/jakoc:
8422           * var num ... no longer requires assignment
8423           * automatic casting between int and num
8424           * Fixed an error message
8426         Courtesy of: Simon Cozens <simon@cvs.perl.org>
8428 2001-09-18 11:57  simon
8430         * TODO:
8431         Gonna have to start thinking of more things to do, soon.
8433 2001-09-18 10:42  simon
8435         * opcode_table:
8436         Introduce a little more tidiness into the opcode table.
8438 2001-09-18 03:06  gregor
8440         * basic_opcodes.ops, opcode_table, t/euclid.pasm:
8441         Resurrected register-const ops per Dan's request.
8443 2001-09-18 02:20  gregor
8445         * .cvsignore, Configure.pl, MANIFEST, Makefile.in,
8446         build_interp_starter.pl, bytecode.h, events.h, exceptions.h,
8447         global_setup.h, interpreter.h, io.h, memory.h, parrot.h,
8448         process_opfunc.pl, register.h, stacks.h, string.h, strnative.h:
8449         Committed some files that were missed in the last *.h moving
8450         commit.
8452 2001-09-18 02:17  gregor
8454         * include/parrot/.cvsignore: Fixed a typo in .cvsignore.
8456 2001-09-18 02:16  gregor
8458         * include/parrot/: .cvsignore, bytecode.h, events.h, exceptions.h,
8459         global_setup.h, interpreter.h, io.h, memory.h, parrot.h,
8460         register.h, stacks.h, string.h, strnative.h: Added .cvsignore file
8461         missed in last commit for the move of *.h to include/parrot.
8463 2001-09-18 01:32  simon
8465         * t/Makefile:
8466         Trivial "clean" target to t/Makefile.
8468 2001-09-18 01:32  simon
8470         * assemble.pl, build_interp_starter.pl, disassemble.pl,
8471         Parrot/Opcode.pm, lib/Parrot/Opcode.pm:
8472         Change icky Digest::MD5 for nice simple unpack()
8474         Courtesy of: Jonathan Scott Duff <duff@cbi.tamucc.edu>
8476 2001-09-18 00:35  simon
8478         * basic_opcodes.ops, opcode_table, docs/parrot_assembly.pod,
8479         t/op/string.t:
8480         New concat op. Hey, if I'm going to talk about it in an article,
8481         better implement it...
8483 2001-09-17 22:54  gregor
8485         * MANIFEST, Parrot/PackFile.pm, Parrot/PackFile/ConstTable.pm,
8486         Parrot/PackFile/Constant.pm, Parrot/PackFile/FixupTable.pm,
8487         lib/Parrot/PackFile.pm, lib/Parrot/PackFile/ConstTable.pm,
8488         lib/Parrot/PackFile/Constant.pm, lib/Parrot/PackFile/FixupTable.pm:
8490         Functions for reading, writing and manipulating Parrot Pack Files.
8491         NOTE: This is a proposed term based on the fact that the file
8492         contains more than just byte code, and another language (Java)
8493         calls its binary files by a broader notion of what's in them (Class
8494         Files). Since Perl has packages, and since we use pack() to write
8495         them, we'll call them PackFiles (at least for now).
8497         That does, however, beg the question of file extension. Should we
8498         name the files "foo.pack" instead of "foo.pbc"?
8500 2001-09-17 20:23  thgibbs
8502         * interpreter.c, test_main.c: Uncuddled else statements for coding
8503         standard.
8505 2001-09-17 19:57  gregor
8507         * Parrot/Opcode.pm, lib/Parrot/Opcode.pm:
8508         Added a $revision variable, parsing of the CVS Id line in
8509         opcode_table and a &revision() subroutine.
8511 2001-09-17 19:53  gregor
8513         * opcode_table:
8514         Added a CVS Id tag to it.
8516 2001-09-17 18:58  thgibbs
8518         * interpreter.c: Cleared interpreter flags on creation.
8520 2001-09-17 18:38  gregor
8522         * build_interp_starter.pl, bytecode.c, bytecode.h, interpreter.c,
8523         interpreter.h, test_main.c:
8524           * Provides macros in interp_guts.h for setting up arrays with
8525             op names and op arg counts (done via build_interp_starter.pl).
8527             These are used in the op tracing
8529           * The functions in bytecode.[hc] pass around a pointer to the
8530         length
8531             of the bytecode so that later when we get to runops, we know
8532             how much bytecode we've got and we can detect out-of-bounds
8533             jumping. The documentation is updated, too.
8535           * runops in interpreter.c now looks at interpreter->flags to
8536             decide if the core of runops should be runops_trace_core or
8537             runops_notrace_core. These new functions contain just the
8538             while-loop portion of runops. A new function runops_generic
8539             does any other setup (such as checking the bytecode
8540             fingerprint) or wrapup (such as complaining if we ended up
8541             out-of-bounds). NOTE: I didn't know what we should do for
8542             functions in here that are not part of the api, so I gave
8543             them docs with 'TODO' marks mentioning they really aren't
8544             part of the api. Guidance appreciated.
8546           * test_main.c now checks for '-t' arg and sets the tracing flag
8547             on its interpreter instance as appropriate.
8549 2001-09-17 17:47  bdwheele
8551         * assemble.pl: added some default equates, and if they're sub
8552         references, they are computed each time it is referenced.
8554 2001-09-17 16:15  dan
8556         * interpreter.h:
8558         Added flags to the interpreter structure and defined a few.
8560 2001-09-17 15:51  simon
8562         * bytecode.h, string.h:
8563         VAR_SCOPE on globals.
8565 2001-09-17 15:20  simon
8567         * MANIFEST:
8568         Parrot/Opcode.pm, Parrot/Test.pm into MANIFEST.
8570 2001-09-17 15:05  gregor
8572         * t/jump.pasm, MANIFEST:
8573         Added a test program to demonstrate jump_i.
8575 2001-09-17 14:44  thgibbs
8577         * register.c: Fixed register pop not using correct offset (off by
8578         one).
8580         Courtesy of: Philip Kendall <pak@ast.cam.ac.uk>
8582 2001-09-17 13:56  thgibbs
8584         * interpreter.c, register.c: Added code to call Parrot_clear_s
8585         during initialization and Parrot_clear_s and Parrot_clear_p when a
8586         new stack frame is pushed.
8588 2001-09-17 13:51  gregor
8590         * languages/jako/: Makefile, bench.jako, euclid.jako, fact.jako,
8591         fib.jako, hello.jako: Added bench.pasm to "clean"
8593 2001-09-17 13:49  gregor
8595         * languages/jako/: jakoc, Makefile:
8596         Added CVS Id tag.
8598 2001-09-17 13:49  gregor
8600         * languages/jako/jakoc:
8601         Code streamlining.
8603         Courtesy of: Buggs <buggs-perl6@splashground.de>
8605 2001-09-17 13:29  gregor
8607         * MANIFEST, opcheck.pl:
8608         Added an opcode_table checker to make sure that all opcodes listed
8609         there conform to a simple set of naming rules (rules themselves, of
8610         course, are subject to change).
8612 2001-09-17 13:23  thgibbs
8614         * string.c: Modified string.c to correctly use the return value of
8615         realloc.
8617 2001-09-17 05:26  brentdax
8619         * Makefile.in: Making the Makefile smarter
8621 2001-09-16 23:06  brentdax
8623         * hints/mswin32.pl: Finishing the Configure hints
8625 2001-09-16 23:05  brentdax
8627         * Configure.pl, Makefile.in, parrot.h, test_main.c,
8628         Parrot/Opcode.pm, lib/Parrot/Opcode.pm: Win32 compatibility,
8629         Configure hints, 5.005 compatibility, MANIFEST checking
8631 2001-09-16 19:25  bdwheele
8633         * assemble.pl: parrot assembly equates
8635 2001-09-16 18:03  gregor
8637         * Makefile.in:
8638         Added 'test' target to run new test suite.
8640 2001-09-16 17:33  simon
8642         * basic_opcodes.ops:
8643         'not' was being !, rather than ~. Too many Perl programmers here, I
8644         suspect.
8646         Courtesy of: Tom Hughes <tom@compton.nu>
8648 2001-09-16 17:21  simon
8650         * Parrot/Test.pm, lib/Parrot/Test.pm, t/harness, t/op/basic.t,
8651         t/op/string.t:
8652         A *real* test suite!
8654         Courtesy of: "Mattia Barbon" <mbarbon@dsi.unive.it>
8656 2001-09-16 16:49  gregor
8658         * basic_opcodes.ops, opcode_table:
8659         At Dan's request, my new register-constant comparison ops have been
8660         removed.
8662 2001-09-16 16:40  gregor
8664         * languages/jako/jakoc:
8665         Fixed a copy-paste error in one of jakoc's error messages.
8667         Courtesy of: Buggs <buggs-perl6-list@splashground.de>
8669 2001-09-16 16:37  gregor
8671         * languages/jako/jakoc:
8672         Modified comparison implementation to use temporary registers in
8673         the case of register-constant and constant-register comparisons.
8674         This will allow the compiler to emit code that works when the
8675         constant-comparison ops are backed out of Parrot. If the ops ever
8676         make their way back in, then jakoc can emit more efficient code
8677         again.
8679 2001-09-16 16:19  bdwheele
8681         * assemble.pl, t/local_label.pasm: Added local labels ($whatever)
8682         ... though not subroutine based like the documentation wants, they
8683         are local to the last non-local label defined.
8685 2001-09-16 14:02  simon
8687         * MANIFEST:
8688         And remember, when you add stuff, keep the manifest up to date.
8690 2001-09-16 02:55  ask
8692         * Makefile.in: a "shared" target for building libparrot.so
8694 2001-09-16 02:45  thgibbs
8696         * bytecode.c, bytecode.h, events.h, exceptions.h, global_setup.c,
8697         global_setup.h, interpreter.c, interpreter.h, io.h,
8698         make_op_header.pl, memory.c, memory.h, parrot.c, parrot.h,
8699         process_opfunc.pl, register.c, register.h, stacks.h, string.c,
8700         string.h, strnative.c, strnative.h, test_main.c: Updated files to
8701         use the coding standard PDD.  Also changed Perl_Interp to
8702         Parrot_Interp.
8704 2001-09-16 02:21  ask
8706         * README: emphasise the bits about the license not being worked out
8707         yet.
8709 2001-09-15 22:21  simon
8711         * process_opfunc.pl:
8712         basic_opcodes.c should *scream* that it's autogenerated.
8714 2001-09-15 21:58  gregor
8716         * languages/jako/Makefile:
8717         Fixed Makefile to use 'jakoc' instead of 'jako_compiler.pl' to
8718         compile.
8720 2001-09-15 21:58  gregor
8722         * languages/jako/: jako_compiler.pl, jakoc:
8723         Renamed the Jako compiler to jakoc from jako_compiler.pl
8725 2001-09-15 21:51  gregor
8727         * languages/jako/: Makefile, bench.jako, euclid.jako,
8728         jako_compiler.pl:
8729         Added a new bench.jako example based on Leon Brocard's Bench.java.
8731         Jako Compiler:   * fix a bug in assignment handling   * add some
8732         more conditionals to while and if   * revert to using implicit
8733         opcodes in a few cases that were broken     before the assembler
8734         patch went in recently.
8736 2001-09-15 21:46  gregor
8738         * assemble.pl, basic_opcodes.ops, opcode_table:
8739         New ops for register-constant INTEGER comparisons:
8741           {eq,ne,lt,le,gt,ge}_ic_ic
8743         New ops for register-register and register-constant NUMERIC
8744         comparisons:
8746           eq_nc_ic
8747           {ne,lt,le,gt,ge}_{n,nc}_ic
8749         Assembler:
8751           Allow uppercase and underscores in labels.
8753           Tweaks to the op infer code to make it work with the examples
8754         I've been
8755           creating.
8757 2001-09-15 19:16  thgibbs
8759         * README: Updated README to include Configure.pl
8761 2001-09-15 17:05  simon
8763         * build_interp_starter.pl:
8764         Casting happiness
8766         Courtesy of: Jarkko Hietaniemi <jhi@cc.hut.fi>
8768 2001-09-15 16:45  simon
8770         * assemble.pl:
8771         And the same again: Parrot/Opcode.pm wasn't "..-aware".
8773 2001-09-15 16:40  simon
8775         * t/Makefile:
8776         The Parrot/Opcode.pm dependency means we need to do -I.. in the
8777         test Makefile
8779 2001-09-15 12:26  simon
8781         * memory.c:
8782         Fixed to match the coding standards.
8784         Courtesy of: Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
8786 2001-09-15 01:57  ask
8788         * Configure.pl, Makefile.in, Parrot/Opcode.pm,
8789         lib/Parrot/Opcode.pm: make the Makefile use the perl that was used
8790         to run Configure.pl
8792 2001-09-15 01:48  ask
8794         * Parrot/Opcode.pm, lib/Parrot/Opcode.pm: if we need perl 5.6, just
8795         say so. :-)
8797 2001-09-15 01:42  gregor
8799         * languages/jako/: euclid.jako, fact.jako, fib.jako,
8800         jako_compiler.pl:
8801         Compiler: Added variable interpolation in double-quoted strings.
8802         Examples: Made use of variable interpolation.
8804 2001-09-15 01:28  gregor
8806         * Parrot/.cvsignore:
8807         Ignore the Config.pm generated file.
8809 2001-09-15 01:22  gregor
8811         * languages/jako/: .cvsignore, Makefile, euclid.jako, fact.jako,
8812         fib.jako, hello.jako, jako_compiler.pl:
8813         gnp: Added some more sample Jako files and added many more
8814         operators to the compiler. Preparations for supporting all the Math
8815         and bitwise ops.
8817 2001-09-14 19:06  simon
8819         * assemble.pl, build_interp_starter.pl, disassemble.pl,
8820         make_op_header.pl, process_opfunc.pl, Parrot/Opcode.pm,
8821         lib/Parrot/Opcode.pm:
8822         Move common table reading stuff to a module.
8824         Courtesy of: Damien Neil <neild@misago.org>
8826 2001-09-14 17:42  simon
8828         * .cvsignore:
8829         More .cvsignore foo.
8831 2001-09-14 17:40  simon
8833         * assemble.pl, config_h.in:
8834         De-coredump
8836         Courtesy of: Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
8838 2001-09-14 17:38  simon
8840         * assemble.pl, t/Makefile:
8841         Make assemble.pl look in its parent directory if the data files it
8842         needs aren't in the current one. Plus a Makefile that lets "make
8843         foo.pbc" work in t/
8845         Courtesy of: Rocco Caputo <troc@netrus.net>
8847 2001-09-14 16:29  simon
8849         * make_op_header.pl:
8850         Wildly experimental patch to make Parrot compile on FreeBSD. (And
8851         probably segfault everywhere else.)
8853 2001-09-14 15:58  dan
8855         * languages/jako/: euclid.jako, jako_compiler.pl:
8857         Added in the first mini-language that targets Parrot.
8859         Courtesy of: "Gregor N. Purdy" <gregor@focusresearch.com>
8861 2001-09-14 15:20  dan
8863         * memory.c: Was misaligning returned memory. Fixed.
8865 2001-09-14 15:08  simon
8867         * Makefile.in, basic_opcodes.ops, bytecode.c, global_setup.c,
8868         interpreter.c, interpreter.h, memory.c, parrot.c, parrot.h,
8869         register.c, register.h, string.c, string.h, strnative.c,
8870         test_main.c:
8871         Fixes to include <parrot/foo.h>
8873         Courtesy of: Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
8875 2001-09-14 12:05  simon
8877         * strnative.c:
8878         Appease Tru64.
8880 2001-09-14 12:01  simon
8882         * memory.c:
8883         Appease Tru64.
8885 2001-09-14 11:54  simon
8887         * interpreter.c:
8888         Remove lvalue cast.
8890 2001-09-14 11:45  simon
8892         * Configure.pl:
8893         Be 5.005 friendly.
8895 2001-09-14 11:39  simon
8897         * Configure.pl:
8898         Tru64 cc doesn't like -Wall
8900 2001-09-14 10:57  simon
8902         * Config_pm.in, Configure.pl, MANIFEST, Makefile, Makefile.in,
8903         assemble.pl, build_interp_starter.pl, bytecode.c, bytecode.h,
8904         config.h.in, config_h.in, disassemble.pl, interpreter.c:
8905         Configure now generates Makefile
8907         Courtesy of: Brent Dax <brentdax@cpan.org>
8909 2001-09-14 10:08  simon
8911         * t/test3.pasm:
8912         Add "end"
8914         Courtesy of: Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
8916 2001-09-14 10:07  simon
8918         * assemble.pl:
8919                 * uses Getopt::Long for options.  -c is now --checksyntax.
8920         I wasn't
8921         sure how to keep compatible (patches welcome!)         * options
8922         include:                 --help                 --version
8923               --verbose                 --output=file
8924         --listing=file                 --checksyntax         * produces
8925         verbose listing of what the assembler saw :)  Only one nitpick with
8926         it:  unknown symbols are given as 0xffffffff, unfortunately, this
8927         includes symbols which may be defined later in the file (i.e.
8928         forward jumps).
8930         Courtesy of: Brian Wheeler <bdwheele@indiana.edu>
8932 2001-09-14 10:06  simon
8934         * strnative.c:
8935         substr growth fixup
8937         Courtesy of: Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
8939 2001-09-14 10:03  simon
8941         * bytecode.c, global_setup.c, interpreter.c, memory.c, memory.h,
8942         register.c, string.c, strnative.c, test_main.c:
8943         Coding standards conformance
8945         Courtesy of Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
8947 2001-09-14 09:46  simon
8949         * assemble.pl:
8950         Make the assembler grok transcendental maths again.  Courtesy of:
8951         Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
8953 2001-09-13 17:29  simon
8955         * assemble.pl:
8956         Better opcode guessing, from Brian Wheeler. (Again!)
8958 2001-09-13 17:20  dan
8960         * docs/parrot_assembly.pod:
8962         Took out duplicate entries for iton, ntoi, and tostring.
8964 2001-09-13 17:16  simon
8966         * assemble.pl, basic_opcodes.ops, opcode_table:
8967         From Brian Wheeler:
8969         This patch gives the assembler support of '\a','\n','\r','\t', and
8970         '\\' in string constants.
8972         In addition, it changes (for all registers) "I reg %li is ..." to
8973         just the value of the register.  Printing constants is also
8974         supported, but alas, you have to specify the type (print_sc,
8975         print_ic, print_nc).
8977 2001-09-13 15:38  simon
8979         * assemble.pl:
8980         Why don't I actually *test* this stuff before applying it, eh?
8982 2001-09-13 15:34  simon
8984         * TODO, t/euclid.pasm:
8985         From: "Gregor N. Purdy" <gregor@focusresearch.com> Subject: [patch
8986         (really)] Removed opcode qualifers t/euclid.pasm to exercise opcode
8987         inference
8989 2001-09-13 14:42  simon
8991         * assemble.pl:
8992         A new assembler, from Brian Wheeler.
8994 2001-09-13 09:44  simon
8996         * basic_opcodes.ops, interpreter.h, parrot.h, strnative.c,
8997         test_main.c:
8998         Two more from Tom Hughes:     Patch to fix C++ style comments
8999         Patch to remove use of structure constant/cast
9001 2001-09-13 09:39  simon
9003         * TODO, docs/strings.pod:
9004         Update string docs.
9006 2001-09-13 09:36  simon
9008         * Makefile, basic_opcodes.ops:
9009         Tom Hughes      Patch to link with the maths library Tom Hughes
9010          Patch to fix += on rvalue
9012 2001-09-13 08:57  simon
9014         * MANIFEST:
9015         I guess nobody's been using the nightly builds...
9017 2001-09-13 08:27  simon
9019         * assemble.pl, basic_opcodes.ops, opcode_table:
9020         Bitwise ops, from Brian Wheeler.
9022 2001-09-13 08:23  simon
9024         * .cvsignore, t/.cvsignore:
9025         .cvsignore's, from Gregor Purdy.
9027 2001-09-13 08:22  simon
9029         * Makefile:
9030         Euclidean test and test output rearranging from Gregor Purdy.
9032 2001-09-13 08:21  simon
9034         * assemble.pl, basic_opcodes.ops, disassemble.pl, opcode_table:
9035         Math ops from Gibbs Tanton.
9037 2001-09-13 08:14  simon
9039         * basic_opcodes.ops, opcode_table, string.c, string.h, strnative.c,
9040         t/test2.pasm:
9041         String substr op; also rearranged "encoding" to be a vtable
9042         pointer, not an array index. Haven't changed docs to reflect this,
9043         oops.
9045         Simon
9047 2001-09-12 19:48  dan
9049         * t/euclid.pasm: Implementation of Euclid's Algorithm, courtesy of
9050         Gregor Purdy
9052 2001-09-12 19:39  dan
9054         * basic_opcodes.ops, opcode_table: From Gregor Purdy. Adds mod_i.
9056 2001-09-12 19:23  dan
9058         * interpreter.h, parrot.h: Quick placeholder entry for string
9059         function tables
9061 2001-09-12 18:58  dan
9063         * memory.c: Added in a cast to make gcc happy.
9065 2001-09-12 16:44  dan
9067         * docs/parrot_assembly.pod:
9069         PDD describing parrot's assembly language and the opcodes in it
9071 2001-09-12 14:20  dan
9073         * memory.c:
9074         Fixed alignment issues with allocation
9076 2001-09-12 10:54  simon
9078         * Makefile, assemble.pl, bytecode.c, disassemble.pl,
9079         make_op_header.pl, opcode_table, process_opfunc.pl:
9080         Brian Wheeler's big patch:
9082         * Changes the opcode_table file to provide additional information
9083         about the operands.  Case shouldn't be a problem since that data
9084         never becomes a C symbol [this is pretty much as before]
9086         * Padding errors solved:  assemble.pl and bytecode.c were padding
9087         the constants incorrectly.  It should have been 4-(size % 4), not
9088         just (size % 4).  It is now fixed in both places.
9090         * assembler has less special cases, and should be easier to hang
9091         error checking on
9093         * disassembler dumps constant table and the format is a bit
9094         prettier, including register names, etc.
9096 2001-09-11 23:21  dan
9098         * build_interp_starter.pl, interpreter.c:
9100         Abstracted the runops function core into a macro for easy
9101         replacement later.
9103 2001-09-11 10:43  simon
9105         * Configure.pl, MANIFEST, Makefile, config.h, config.h.in:
9106         Configure system from Brent Dax <brentdax@cpan.org>
9108 2001-09-11 09:38  simon
9110         * assemble.pl, test.pbc:
9111         From: Bryan C. Warnock <bwarnock@raba.com> Subject: Patch:
9112         assembler deferred output
9114         Also got rid of the bytecode, since that's probably way out of
9115         date.
9117 2001-09-11 09:26  simon
9119         * basic_opcodes.ops, opcode_table, t/test2.pasm:
9120         From: Bryan C. Warnock <bwarnock@raba.com> Subject: length_s_i
9121         patch
9123 2001-09-10 23:20  simon
9125         * MANIFEST:
9126         And that move needs a MANIFEST change. So many things to remember!
9128 2001-09-10 23:18  simon
9130         * t/: test.pasm, test2.pasm, test3.pasm:
9131         Move tests to t/. (Oh, CVS doesn't work the way I think it does.)
9133 2001-09-10 23:18  simon
9135         * test.pasm, test2.pasm, test3.pasm:
9136         Move tests to t/
9138 2001-09-10 23:04  dan
9140         * test3.pasm:
9142         Register push/pop test
9144 2001-09-10 22:47  simon
9146         * basic_opcodes.ops, bytecode.c, parrot.h, test_main.c:
9147         Fix up format warnings, from Sam Tregar <sam@tregar.com>.
9148         (Modified to avoid conflict with Dan's changes.)
9150 2001-09-10 22:45  dan
9152         * disassemble.pl:
9154         Happier about blanks in opcode_table
9156 2001-09-10 22:40  dan
9158         * interpreter.c, register.c:
9160         Yanked out debugging code, since these work OK. The bug I want is
9161         elsewhere.
9163 2001-09-10 22:30  simon
9165         * MANIFEST:
9166         Uhm. We want make_op_header.pl. We really, really do.
9168 2001-09-10 22:26  simon
9170         * Makefile, TODO, assemble.pl, basic_opcodes.ops,
9171         build_interp_starter.pl, disassemble.pl, make_op_header.pl,
9172         opcode_table, process_opfunc.pl:
9173         Automatic opcode numbering, from Leon Brocard <acme@astray.com>.
9174         This means we can add lots more opcodes without fiddling about with
9175         the numbers. Hooray!
9177         Don't forget that "end" needs to be op zero, else the interpreter
9178         falls off the end of the code. This is Bad, and I wonder if there's
9179         a way around it.
9181 2001-09-10 19:49  simon
9183         * MANIFEST, make_op_table_build.pl:
9184         Hey! This doesn't do anything...
9186 2001-09-10 19:46  simon
9188         * Makefile:
9189         "clean" target cleanup from Bryan C. Warnock <bwarnock@raba.com>.
9191 2001-09-10 18:31  simon
9193         * MANIFEST:
9194         You know what this means...
9196 2001-09-10 18:30  simon
9198         * assemble.pl:
9199         "use strict" patch from Leon Brocard <acme@astray.com>. Hey, why
9200         wait for a release...? :)
9202 2001-09-10 18:13  simon
9204         * interpreter.c:
9205         Bad Dan! No cookie!
9207 2001-09-10 17:56  simon
9209         * README:
9210         A *real* README file, which doesn't claim it isn't for public
9211         consumption.
9213 2001-09-10 17:02  simon
9215         * TODO:
9216         More things to do.
9218 2001-09-10 16:56  dan
9220         * TODO: Added in assembler gripe. Also added a few blank lines for
9221         clarity
9223 2001-09-10 16:49  dan
9225         * register.h, register.c: Renamed the core functions so the opcodes
9226         can find 'em OK. (There were some conflicts)
9228 2001-09-10 16:48  dan
9230         * basic_opcodes.ops, opcode_table: Added register window ops
9232 2001-09-10 11:07  simon
9234         * TODO:
9235         Trivial TODO list.
9237 2001-09-10 11:05  simon
9239         * test.pbc, test2.pasm, test_main.c: Other string bits and pieces;
9240         note "-s" flag to test prog.
9242 2001-09-10 11:01  simon
9244         * docs/strings.pod:
9245         New string documentation.
9247 2001-09-10 11:01  simon
9249         * basic_opcodes.ops, opcode_table:
9250         String ops.
9252 2001-09-10 10:53  simon
9254         * global_setup.c:
9255         More string fu.
9257 2001-09-10 10:51  simon
9259         * memory.h:
9260         Just some more aliases for now. Used by string handling stuff.
9262 2001-09-10 10:50  simon
9264         * assemble.pl, bytecode.c, bytecode.h:
9265         Temporary hack to store string constants in bytecode and recreate
9266         them at runtime.
9268 2001-09-10 10:48  simon
9270         * op.h:
9271         op.h is now generated by the Makefile; remove it.
9273 2001-09-10 10:47  simon
9275         * Makefile:
9276         clean and op.h Makefile targets.
9278 2001-09-10 10:45  simon
9280         * string.c, string.h, strnative.c:
9281         More string vtable stuff.
9283 2001-09-07 21:07  dan
9285         * assemble.pl:
9287         Much less picky about whitespace in the opcode_table now. (Doesn't
9288         whine on blank lines)
9290 2001-09-07 16:23  dan
9292         * Makefile, assemble.pl, global_setup.h, interpreter.c,
9293         interpreter.h, opcode_table, parrot.h, test.pasm: (Here's hoping
9294         this takes) Added global_setup.h to declare init_world function
9296         Moved variable declarations out of the interpreter loop for small
9297         speed boost.
9299         Changed end opcode to now be opcode #0. A function is provided for
9300         it, but isn't ever executed.
9302         When the interpreter sees an opcode 0 in the stream it means the
9303         end of stream. Things were coring on Cygwin otherwise. (I think I
9304         was dereferencing a zero, which is bad)
9306 2001-09-06 22:07  dan
9308         * basic_opcodes.ops, process_opfunc.pl:
9310         Minor tweaks to basic_opcodes.ops to fix some NV issues. The rest
9311         are minor changes now that things are in a fixed state.
9313 2001-09-06 16:13  dan
9315         * basic_opcodes.c, test_opcodes.c:
9316         test_opcodes.c is now irrelevant--they're all in basic_opcodes.ops.
9318         basic_opcodes.c is now autogenerated from basic_opcodes.ops, and
9319         should be nuked. So it is. :)
9321 2001-09-06 03:35  dan
9323         * basic_opcodes.ops, build_interp_starter.pl, process_opfunc.pl:
9324         Scripts to build the header file that holds the function table
9325         creation code, as well as the script to turn an opcode file to C
9326         source. (And the basic opcode functions turned into an opcode
9327         source file)
9329 2001-09-06 03:31  dan
9331         * Makefile, interpreter.c:
9332         Changes to support the autogeneration of the opcode function
9333         pointer table in interpreter.c, along with the changes to the
9334         Makefile needed.
9336 2001-09-05 13:27  simon
9338         * bytecode.c, config.h, docs/opcodes.pod, docs/overview.pod,
9339         docs/parrotbyte.pod, docs/vtables.pod:
9340         Added stubs for the documents; working on them this week. (What's
9341         left of it.) config.h change is just to type VTABLE, and the
9342         bytecode thing you might want to revoke. It's apidoc for the
9343         functions in there.
9345 2001-09-03 18:26  simon
9347         * docs/strings.pod:
9348         A start on the string API documentation.
9350 2001-09-03 17:43  simon
9352         * opcode_table:
9353         Since we specify the opcode number, we can rearrange to a more
9354         human-friendly ordering.
9356 2001-09-03 17:42  simon
9358         * basic_opcodes.c:
9359         Coupl'a logic bugs. (I think)
9361 2001-09-03 17:41  simon
9363         * string.c, string.h, strnative.c:
9364         Tidying up the string vtables.
9366 2001-09-03 17:38  simon
9368         * make_op_header.pl:
9369         Spit out the whole of op.h, not just the bit in the middle.
9371 2001-08-29 13:16  ask
9373         * README: it seems like we indeed can commit. What about sending
9374         commit mails?
9376 2001-08-29 13:07  simon
9378         * Makefile, README, assemble.pl, basic_opcodes.c, bytecode.c,
9379         bytecode.h, config.h, disassemble.pl, events.h, exceptions.h,
9380         global_setup.c, interpreter.c, interpreter.h, io.h,
9381         make_op_header.pl, make_op_table_build.pl, memory.c, memory.h,
9382         op.h, opcode_table, parrot.c, parrot.h, register.c, register.h,
9383         stacks.h, string.c, string.h, strnative.c, strnative.h, test.pasm,
9384         test.pbc, test_main.c, test_opcodes.c:
9385         Initial checkin of Simon's work directory - Dan, feel free to nuke.
9386          I'm still working on the string stuff, though.
9388 2001-08-29 12:44  ask
9390         * README: update README with list address
9392 2001-08-29 12:36  ask
9394         * README: first readme.