[src] Tidied PIC file to make the code somewhat easier to follow; no functional
[parrot.git] / ChangeLog
blobaa6ed13388dd39a5348de1d0de910916556111a4
1 #1 $Id$
3 2008.09.16    pmichaud
4         * Released 0.7.1
5         See NEWS for more.
7 2008.08.19    rgrjr
8         * Released 0.7.0
9         See NEWS for more.
11 2008.07.15    barney
12         * Released 0.6.4
13         See NEWS for more.
15 2008.06.17    smash
16         * Released 0.6.3
17         See NEWS for more.
19 2008.05.20    chromatic
20         * Released 0.6.2
21         See NEWS for more.
23 2008.04.15    particle
24         * Released 0.6.1
25         See NEWS for more.
27 2008.03.18    bernhard
28         * Released 0.6.0
29         See NEWS for more.
31 2008.02.20    pmichaud
32         * Released 0.5.3
33         See NEWS for more.
35 2008.01.15    rgrjr
36         * Released 0.5.2
37         See NEWS for more.
39 2007.12.18    jonathan
40         * Released 0.5.1
41         See NEWS for more.
43 2007.11.20    chromatic
44         * Released 0.5.0
45         See NEWS for more.
47 2007.10.17    coke
48         * Released 0.4.17
49         See NEWS for more.
51 2007.09.18    particle
52         * Released 0.4.16
53         See NEWS for more.
55 2007.08.22    pmichaud
56         * Released 0.4.15
57         See NEWS for more.
59 2007.07.17    particle
60         * Released 0.4.14
61         See NEWS for more.
63 2007.06.19    allison
64         * Released 0.4.13
65         See NEWS for more.
67 2007.05.15    chromatic
68         * Released 0.4.12
69         See NEWS for more.
71 2007.04.17    mdiep
72         * Released 0.4.11
73         See NEWS for more.
75 2007.03.20    coke
76         * Released 0.4.10
77         See NEWS for more.
79 2007.3.10     coke
80         * removed parakeet
82 2007.02.22    pmichaud
83         * Released 0.4.9
84         See NEWS for more.
86 2007.01.17    chromatic
87         * changed 'name' method on namespaces to 'get_name' per pdd21
89 2007.01.16    particle
90         * Released 0.4.8
91         See NEWS for more.
93 2006.12.12    particle
94         * added C<isnull> opcode
96 2006.11.14    chip
97         * Released 0.4.7
98         See NEWS for more.
100 2006.11.07      tewk
101         * added :init pragma functionality to subs
103 2006.10.28      jonathan
104         * added :vtable pragma functionality to subs
106 2006.09.18    chromatic
107         * added Parrot::Embed under ext/Parrot-Embed
109 2006.08.18    leo
110         * remove the None PMC - if needed it can trivially be reimplemented
111           in languages from r14189
113 2006.08.16    creiss
114         Merged Software Transactional Memory branch into trunk, adds:
115         * several new opcodes whose names start with stm_
116         * read-only PMC support
117         * several new PMC types (whose names start with STM*)
118         * support for threads (again)
120 2006.08.08    chip
121         * Released 0.4.6
122         See NEWS for more.
124 2006.08.02    chip
125         * opcodes: "in PMC" is no longer a synonym for "invar PMC";
126         there are opcodes now that want the real "in PMC".
127         * namespace and global opcodes now accept name arrays again, as
128         well as keys; the corresponding namespace PMC methods are gone.
130 2006.07.21    leo
131         * Parrot_exit, Parrot_on_exit take now an Interp * argument
133 2006.07.25    chip
134         * add experimental op find_type_i_p
135         * fix longstanding bug that sometimes didn't encode pasm keys as
136         Key PMCs (specifically "[S0]" and "['stringliteral']").
138 2006.07.24    chip
139         further implementation of new pdd21:
140         * new opcodes {get,set}*global
141           (old {find,store}*global will be supported for a short while)
143 2006.07.20    audreyt
144         * --maintainer prerequesites are now bison 2.2+ and flex 2.5.3x
145           (or some such --leo) 
146           (at the moment code is checking for 2.0 -- ambs)
148 2006.07.17    chip
149         partial implementation of new pdd21:
150         * old: "get_namespace KEY".  new: "get_hll_namespace KEY"
151         * get_namespace and find_global opcodes no longer accept arrays
152           of strings.  To use arrays, call namespace object methods.
154 2006.06.19    leo
155         * Released 0.4.5
156         See NEWS for more.
158 2006.06.03    leo
159         * I and N registers are never cleared to 0 / 0.0 on subroutine entry
161 2006.05.14    leo
162         * Released 0.4.4
163         See NEWS for more.
165 2006.04.30    bernhard
166         * Make the Perl PMCs dynamic and move them to src/dynpmc
168 2006.04.02    leo
169         * Released 0.4.3
170         See NEWS for more.
172 2006.03.06    leo
173         * Shifted argument type bits left by 2 according to r11754
174           change of docs/pdds/pdd03_calling_conventions.pod
175         * if you are creating PASM then code needs adjustment  
177 2006.02.22    leo
178         * Released 0.4.2
179         See NEWS for more.
181 2006.01.16    bernhard
182          * rename src/dynclasses to src/dynpmc 
183          * rename src/classes to src/pmc 
185 2006.01.15    leo
187          * find_global and friends returns a .Null PMC instead of .Undef on
188           lookup failure, iff lookup exceptions are off
190 2006.01.08    leo
191         * Released 0.4.1
192         See NEWS for more.
194 2005.12.28    particle
195         * renamed all .imc files to .pir
196         * modified all doc references to .pir as well
198 2005.12.13    particle
199         * moved jit/ directory to src/jit/
201 2005.12.12    particle
202         * moved io/ directory to src/io/
203         * moved classes/ directory to src/classes/
204         * moved dynclasses/ directory to src/dynclasses/
206 2005.12.08    particle
207         * moved types/ directory to src/types/
208         * moved pf/ directory to src/packfile/
209         * moved ops/ directory to src/ops/
211 2005.12.08    particle
212         * moved charset/ directory to src/charset/
213         * moved encodings/ directory to src/encodings/
215 2005.12.07    particle
216         * moved imcc/ directory to compilers/imcc/
218 2005.12.06    particle
219         * moved util/ directory to tools/util/
220         * removed imcc/examples/ directory
221         * moved ast/ directory to compilers/ast/
223 2005.12.05    particle
224         * moved imcc/docs/ directory to docs/imcc/
225         * moved build_tools/ directory to tools/build/
226         * modified MANIFEST, MANIFEST.generated, and MANIFEST.SKIP
228 2005.12.04    leo
229         * Released 0.4.0
230         * See NEWS for changes
232 2005.11.06    leo
233         * Released 0.3.1
234         * See NEWS for changes
236 2005.10.01    leo
237         * Released 0.3.0
238         * See NEWS for changes
240 2005.08.05    leo
241         * Released 0.2.3
242         * See NEWS for changes
244 2005.07.03    leo
245         * Released 0.2.2
246         * See NEWS for changes
248 2005.06.04    leo
249         * Released 0.2.1
250         * allow short names for object attributes
251         * string encoding and charset can now be set independently
252         * experimental mmap IO layer for slurping files
253         * enable compile opcode support for compilers written in PASM/PIR
254         * improved HLL support with .HLL and n_operators pragmas
255         * simplified hash code
256         * more strength reduce optimizations
257         * distinct debug and trace flag settings
258         * glob support in PGE
259         * new character classification opcodes and interfaces
260         * numerous bug fixes and enhancements
262 2005-05-08    leo
263         * Released 0.2.0
264         * parrot repository is now under subversion
265         * MMD (Multi Method Dispatch) enhanced
266         * new unary and infix opcodes that return new result PMCs
267         * dynamic scalar PMCs inherit now almost all from Parrot core PMCs
268         * more unification of PMCs and ParrotObjects
269         * tailcalls for functions and methods
270         * PGE (Parrot Grammar Engine) reworked
271         * Pugs creates Parrot code and Pugs is a registered compiler now
272         * new languages/lisp
273         * the usual bug fixes and improvements
275 2005-03-06    leo
276         * Released 0.1.2
277         * big rewrite of string code, not yet finished but ...
278         * partial implementation of a generational garbage collector
279         * indirect register frame addressing
280         * .return(args) PIR syntax
281         * moved most of the Python code to dynclasses
282         * a lot more Python functionality
283         * precalculate opcodes with all constants
284         * PGE - Parrot Grammar Engine
285         * scalar classes refactoring
286         * much more tests and big test system cleanup
287         * improved documentation
288         * and as always a lot more
290 2004-10-09    leo
291         * Released 0.1.1
292         * Need Perl 5.6 now for building
293         * Basic AST support, PAST file parser, bits of code generation
294         * BigInt PMC using GMP
295         * Complex PMC
296         * Dynamic loading improved including bundles of PMC classes
297         * Experimental support for "make install"
298         * IA64 and hppa JIT support
299         * ICU unicode support
300         * IO layer handling code
301         * IO readline and buffered IO fixes
302         * Incremental GC
303         * Internal pythonic functions: filter, map, reduce, max, min ...
304         * Languages updates for m4, tcl, perl6, regex. New parakeet language.
305         * Library updates, Stream and SDL library
306         * MMD - multi method dispatch for binary vtable methods
307         * Many new array PMCs
308         * Method call syntax in PIR obj."meth"(...)
309         * More OS stuff: stat, exec, system, gmtime, piped read and write
310         * New Python PMCs like Enumerate, None
311         * Non-branching compare opcodes
312         * PIR support for += and friends
313         * Python language subdir
314         * Python types mapped to existing PMCs
315         * Slices and range support
316         * Tons of bug fixes, documentation updates, new tests
317         * Win32 COFF exec support
318         * ... and a lot more
320 2004-02-29    leo
321         * Released 0.1.0
322         * "Ladies and gentlemen, I give you... objects!"
323         * Huge documentation overhaul
324         * More supported platforms, s. PLATFORMS
325         * Basic thread support for pthread based architectures
326         * Basic event handling for timers and signals including:
327         * PASM callbacks for NCI (native C) functions.
328         * Improved platform configuration
329         * COW stacks now working, stacks code redone
330         * Structure handling vastly improved
331         * Random PMC and rand primitives
332         * Better subroutine call syntax in PIR
333         * Make PIR subroutines compliant with pdd03
334         * Improved profiling (DOD, GC timings)
335         * Hash code improvements, incl. random key order support
336         * Experimental freeze/thaw code for some PMC types
337         * IO improvements for buffered layer and Win32
338         * String iterators
339         * String bitwise vtables
340         * Many new opcodes
341         * Support for JIT, where malloced memory isn't executable
342         * Priority DOD scheme for objects that need timely destruction
343         * Improved bytecode loading (e.g. onLoad functions)
344         * Language updates: forth, Perl6/P6C, m4
345         * Libraries: Getopt_Long, SDL, Dumper, Sort
346         * new JAPH examples
347         * Unified imcc and parrot test handling
348         * Many new tests (make test reports 1386 tests)
349         * Numerous bug fixes
352 2003-10-31    leo
353         * Released 0.0.13
354         * Yep thirteen - haunted by the ghost of 0.0.12
355         * Build imcc as parrot
356         * Objects more finished
357         * Delegate vtable methods to byte code
358         * Binary multi-method dispatching
359         * Isa and does methods for PMCs
360         * Call byte code from C
361         * Start of extension interface
362         * Experimental struct handling
363         * Catch access to NULL PMCs
364         * Experimental network socket interface code and opcodes
365         * IO fixes and improvements
366         * Dynamic opcode libraries
367         * Fix-assigned opcode numbers
368         * Argument flattening for function calls
369         * More native call interface (NCI) signatures
370         * Ncurses, postgres, and pcre interface libraries
371         * Forth language is vastly improved
372         * BSD and Win32 build improvements
373         * Many new tests and fixes
375 2003-10-22    melvin
376         * imcc moved from parrot/languages/ to parrot/
378 2003-09-20    sfink
380         * updated the native_pbc test files (from Leo)
381         * built 0.0.11.1 release tarball
383 2003-09-20    sfink
385         * CHANGES BUNDLED INTO 0.0.11:
386         * Executable output
387         * Dynamic PMC registration
388         * Trial exception system
389         * Beginnings of object system
390         * Iterators
391         * Ordered hashes
392         * I/O system improvements
393         * References
394         * Documentation for basic PMC types
395         * IMCC support of Parrot Calling Conventions
396         * Runtime loading of chartypes (and other string improvements)
397         * Conditional breakpoints
398         * Dramatically accelerated sweeps for finalizable objects
399         * Small PMCs (PMCs split into core and extensions)
400         * Loadable bytecode packfiles
401         * Constant PMCs
402         * Sub variants that deal with the stack correctly
403         * Switched runops core
404         * Line numbers in warnings
405         * Environment access
406         * Many documentation cleanups
407         * Conversion to CPS style!
408         * BASIC debugger and many other wacky features
409         * Filename, line number parsing support in IMCC
411 2003-07-21 17:31 chromatic
412         * applied copyright patch from Josh Wilmes
414 2003-06-14 13:50 dan
415         * Moved the registers out of the context structure, since they
416           really aren't context
417         * Changed the register stack frames to hold only 16 registers
418           rather than 32, added half-set push and pop ops, and reworked
419           the full set push/pops to do two half-set push/pops. Should
420           speed up saving register data on calls, since we usually only
421           care about the top half of the registers anyway.
422         * Started committing some of the new class/object framework
423         * Remembered to finally start updating the Changelog
425 2003-03-18 03:50  ask
427         * Various files
428           Update Yet Another copyright statements to reflect the (no longer
429           so) shiny new year.
431 2003-03-11 22:06  chip
433         * Configure.pl: print help on non-option command line args
435 2002-12-18 20:38  sfink: changes since 0.0.8
437         - Allow suppression of cgoto core to save memory during compile
438         * Native function calling interface
439         * Major rewrite of stack and list aggregates
440         - Scalar PMC added
441         * Scratchpads implemented
442         - Win32 libraries
443         - Internal memory subsystem documentation
444         * Preliminary DotGNU support
445         - Packfile fingerprinting
446         * Buffer/PMC unification (into PObjs)
447         * stabs debugging information support
448         * Major Jako overhaul, including:
449           - imcc integration
450           - native function calling
451         - Perl6 string interpolation
452         - languages/regex now targets IMCC
453         * Optional Lea memory allocator
454         * Full sprintf implementation
455         * Many, many new tests
456         * Miniparrot
457         - exchange ops
458         - runtime-controllable gc debugging
459         * PMC properties
460         - Crash info
461         * JIT: various improvements
462           - register usage tracking
463           - block register allocation
464           - optimizations
465           - more jitted ops
466           - restartable
467           - architecture abstraction layer
468           - debugging via GDB
469         * Beginning support for extensible packfiles
470         * Much better key support, generally
471         * splice()
472         * Restructured PMC hierarchy with better functionality inheritance
473         * IMCC: many, many improvements. See imcc/ChangeLog
474         * Perl6: index map grep join reverse defined
475         * Scheme with functions!
478 2002-03-19 22:54  nicholas
480         * docs/running.pod: Patch from Simon Glover <scog@amnh.org>:
482          We can now get usage information for test_parrot without having to
483          grep the source.
485 2002-03-19 22:53  simon
487         * Configure.pl:
488         Parrot is called parrot.
490 2002-03-19 22:53  nicholas
492         * docs/tests.pod: Patch from Simon Glover <scog@amnh.org>:
494          1. There are tests in t/pmc as well as t/op now.
495          2. Adds a comment about Parrot::Test
497 2002-03-19 18:09  dan
499         * Configure.pl, examples/assembly/life.pasm: Toss a prompt that
500         messes up automated builds
502         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
504 2002-03-19 00:33  mrjoltcola
506         * core.ops: Doc cleanup from Simon Glover.
508 2002-03-18 23:52  mrjoltcola
510         * io/io_unix.c: Typo fix for invalid lvalue caught by David Loyd.
512 2002-03-18 22:09  dan
514         * include/parrot/resources.h: Checked in old version
516 2002-03-18 20:17  dan
518         * include/parrot/resources.h: Forgot a prototype
520 2002-03-18 20:15  dan
522         * resources.c: D'oh! Thinko, fixed.
524         Courtesy of "Peter Gibbs" <peter@emkel.co.za>
526 2002-03-18 17:33  josh
528         * Configure.pl: Lowering the bar a bit.
530 2002-03-18 17:33  sfink
532         * languages/regex/: MAINTAINER, Makefile, README, regex.pl,
533         test.pl, lib/Regex.pm, lib/Regex/AsmOps.pm, lib/Regex/CodeGen.pm,
534         lib/Regex/Generate.pm, lib/Regex/Grammar.pm, lib/Regex/Grammar.y,
535         lib/Regex/Optimize.pm, lib/Regex/Parse.pm, lib/Regex/Pasm.pm,
536         lib/Regex/PreOptimize.pm, lib/Regex/RegexOps.pm,
537         lib/Regex/Rewrite.pm, lib/Regex/CodeGen/Re.pm,
538         lib/Regex/CodeGen/Rx.pm, lib/Regex/Rewrite/Re.pm,
539         lib/Regex/Rewrite/Rx.pm, lib/Regex/Rewrite/Stackless.pm,
540         t/example.t: Whoops, wrong time to check this in.
542 2002-03-18 16:42  dan
544         * memory.c, resources.c: Partial fix for GC's memory trouncing. At
545         least we consider the PMC and Buffer free pools worth collecting,
546         and initialize the Buffer pool stuff.  Still not 100% correct,
547         though.
549 2002-03-18 15:35  simon
551         * packfile.c:
552         Fix format arg bug.
554 2002-03-18 07:45  brentdax
556         * Configure.pl: Warn if you're using 64-bit ints on a 32-bit
557         system.
559 2002-03-18 00:09  sfink
561         * languages/regex/: MAINTAINER, Makefile, README, regex.pl,
562         test.pl, lib/Regex.pm, lib/Regex/AsmOps.pm, lib/Regex/CodeGen.pm,
563         lib/Regex/Generate.pm, lib/Regex/Grammar.pm, lib/Regex/Grammar.y,
564         lib/Regex/Optimize.pm, lib/Regex/Parse.pm, lib/Regex/Pasm.pm,
565         lib/Regex/PreOptimize.pm, lib/Regex/RegexOps.pm,
566         lib/Regex/Rewrite.pm, lib/Regex/CodeGen/Re.pm,
567         lib/Regex/CodeGen/Rx.pm, lib/Regex/Rewrite/Re.pm,
568         lib/Regex/Rewrite/Rx.pm, lib/Regex/Rewrite/Stackless.pm,
569         t/example.t: Buggy 1st version of regex compiler implementation.
570         Warning: the test code depends on features of the assembler that do
571         not yet exist.
573 2002-03-17 21:35  ajgough
575         * types/: bignum.c, bignum_atest.pl: Added a couple of quick routes
576         through addition and subtraction.  Also added the ability to run
577         all the tests, including the ones which deal with overflow and
578         underflow.  These fail, but that's expected.  Soon they'll pass.
579         Then I'll show them.  Yesssssss.  Tessssssssts my precioussssss,
580         passsssssssings tesssstsssss.
582 2002-03-17 20:06  ajgough
584         * types/: bignum.c, bignum.h, bignum_test.pl: Modified
585         check_(under|over)flow to test bignumbers, rather than values.
586         context now carries E_limit, from which max and min exp are found.
588         Added a default-context-creating function (although this isn't the
589         same as either of the default contexts defined in the eda).
591 2002-03-17 13:31  ajgough
593         * types/: bignum.c, bignum.h: Made BN_round and BN_iround so that
594         exported version matches prototypes of other public functions.
596 2002-03-17 06:44  josh
598         * chartype.c, encoding.c, memory.c, misc.c, packdump.c, packfile.c,
599         packout.c, resources.c, string.c, include/parrot/encoding.h: Some
600         last-minute re-indenting.
602 2002-03-17 05:07  mrjoltcola
604         * io/io_unix.c: Clear up unsigned compare caught by Solaris GCC.
606 2002-03-16 23:17  nicholas
608         * classes/default.pmc: Patch from Simon Glover <scog@amnh.org> to
609         remove warnings:
611          default.pmc: In function `Parrot_default_get_integer_keyed':
612          default.pmc:50: warning: control reaches end of non-void function
613          default.pmc: In function `Parrot_default_get_number_keyed':
614          default.pmc:58: warning: control reaches end of non-void function
615          default.pmc: In function `Parrot_default_get_string_keyed':
616          default.pmc:67: warning: control reaches end of non-void function
617          default.pmc: In function `Parrot_default_get_pmc_keyed':
618          default.pmc:87: warning: control reaches end of non-void function
620 2002-03-16 18:50  ajgough
622         * types/: bignum.c, bignum.h: Lots of prototypes changed in
623         readiness for nicely telling your caller about any oddness you've
624         caused in the persuit of flow.
626 2002-03-16 17:38  dan
628         * interpreter.c, resources.c, docs/pdds/pdd09_gc.pod,
629         include/parrot/interpreter.h, include/parrot/resources.h: Now we
630         can control the GC and DOD, to stop it when we don't really want
631         it.
633 2002-03-16 16:58  dan
635         * resources.c, vtable.tbl, classes/default.pmc,
636         include/parrot/resources.h: Added the last code to let PMCs control
637         their marking at DOD time
639 2002-03-16 16:57  ajgough
641         * types/bignum.c: Ok, I worked out how to not have lots of tabs.  I
642         feel a little more virtuous now.  Really I do.  You might not
643         believe me, but you should.  perl -pne 's/\t/        /g', if you're
644         curious.
646 2002-03-16 16:57  josh
648         * packfile.c, packout.c: M-x untabify is my new friend.
650 2002-03-16 16:50  josh
652         * trace.c, resources.c: Minor whitespace tweak for the benefit of
653         check_source_standards.pl
655 2002-03-16 16:50  ajgough
657         * types/: bignum.c, bignum.h: More documentation, separate
658         functions into public and private sorts, some initial stuff to cope
659         with over and underflow correctly.
661 2002-03-16 16:49  josh
663         * resources.c: Re-indented (sorry bout the big diff)
665 2002-03-16 16:47  bdwheele
667         * examples/assembly/fact.pasm: This fixes fact.pasm so it will
668         assemble again, both with Simon's new assembler and with the old
669         one.
671 2002-03-16 16:33  mrjoltcola
673         * io/TODO: Get the TODO up-to-date for 0.0.4.
675 2002-03-16 16:11  josh
677         * Configure.pl: Patch from Nicholas Clark <nick@unfortu.net>: stops
678         silly people (such as me) running Configure with
679         /usr/local/bin/perl (which is 5.004_05) and not realising their
680         mistake until the pmc subdirectory, where the first qr// is
681         encountered.
683         Syntax error messages don't tell you what you did wrong. This does:
685         /usr/local/bin/perl Configure.pl Perl 5.00503 required--this is
686         only version 5.00405, stopped at Configure.pl line 10.
688 2002-03-16 14:38  ajgough
690         * Makefile.in: Small fix to Makefile.in to keep Irix make happy
691         with commenting.
693 2002-03-16 11:45  simon
695         * MANIFEST, examples/assembly/xml_parser.pasm:
696         Added Clint Pierce's XML parser.
698 2002-03-15 22:24  simon
700         * packout.c:
701         Don't need that function.
703 2002-03-15 21:56  simon
705         * Makefile.in, include/parrot/packfile.h:
706         Rebuild packout.o, since it'll be used for the Packfile XS module
708 2002-03-15 19:45  dan
710         * include/parrot/: memory.h, pmc.h: Another add-in for GC
712 2002-03-14 19:48  dan
714         * core.ops: No string to int for some reason
716 2002-03-14 18:45  dan
718         * string.c, t/op/string.t: Fix 0-length substr problem
720 2002-03-14 14:46  dan
722         * core.ops, interpreter.c, resources.c, classes/array.pmc,
723         classes/perlarray.pmc, examples/assembly/life.pasm,
724         include/parrot/interpreter.h, include/parrot/resources.h: Added in
725         a counter for copied memory, with a display in life.pasm
727 2002-03-14 03:16  mrjoltcola
729         * MANIFEST: Update MANIFEST courtesy of Simon Glover.
731 2002-03-13 23:43  simon
733         * packfile.c:
734         Oops.
736 2002-03-13 23:43  simon
738         * packfile.c:
739         Hangs head in shame.
741 2002-03-13 21:31  simon
743         * MANIFEST:
744         FAQ moved.
746 2002-03-13 18:06  simon
748         * string.c:
750         Fix string_compare screw-up.
752 2002-03-13 18:02  brentdax
754         * docs/: parrot.pod, ParrotFAQ.htm, faq.pod: Move the FAQ into POD
755         and add a new question/answer pair.
757 2002-03-12 22:53  mrjoltcola
759         * io.ops: Quick and dirty read ops for PIO. No warranty provided.
761 2002-03-12 22:48  mrjoltcola
763         * examples/assembly/io2.pasm: Quick and dirty read ops for PIO. No
764         warranty provided.
766 2002-03-12 22:29  ajgough
768         * docs/pdds/pdd14_bignum.pod: Ooops, it is #14, really.
770 2002-03-12 22:24  ajgough
772         * docs/pdds/pdd14_bignum.pod: Creation of bignumber pdd, update to
773         version 1.1, Don't know if this is the correct number, but I don't
774         want this stuck on my harddrive where it will get lost, so 14 it is
775         :)
777 2002-03-12 11:35  simon
779         * MANIFEST, packdump.c, packout.c:
781         Just so the functionality doesn't disappear.
783 2002-03-12 11:33  simon
785         * Makefile.in, chartype.c, encoding.c, packfile.c,
786         chartypes/unicode.c, chartypes/usascii.c, encodings/singlebyte.c,
787         encodings/utf16.c, encodings/utf32.c, encodings/utf8.c,
788         include/parrot/chartype.h, include/parrot/encoding.h,
789         include/parrot/packfile.h:
791         Packfile axing.
793 2002-03-11 23:06  nicholas
795         * core.ops: Patch from Simon Glover <scog@roe.ac.uk>:
797           Core.ops documentation nits
799 2002-03-11 23:05  nicholas
801         * t/pmc/pmc.t: Patch from Simon Glover <scog@roe.ac.uk>:
803           Most of the PerlUndef tests in pmc.t appear to have been added
804         twice.
805           Enclosed patch removes the duplicates.
807 2002-03-10 23:40  nicholas
809         * t/pmc/perlstring.t: Patch from Simon Glover <scog@amnh.org>:
811          More tests for the PerlString test-suite.
813 2002-03-10 23:40  nicholas
815         * t/op/time.t: Patch from Simon Glover <scog@amnh.org>:
817         test for sleep with negative argument
819 2002-03-10 21:58  nicholas
821         * t/op/rx.t: Patch from Simon Glover <scog@amnh.org>:
823          Enclosed patch fixes up a few more holes in our test coverage.
825 2002-03-10 21:18  mrjoltcola
827         * classes/array.pmc, classes/default.pmc, classes/intqueue.pmc,
828         classes/parrotpointer.pmc, classes/perlarray.pmc,
829         classes/perlhash.pmc, classes/perlint.pmc, classes/perlnum.pmc,
830         classes/perlstring.pmc, classes/perlundef.pmc,
831         include/parrot/pmc.h, core.ops, pmc.c, vtable.tbl: Add size
832         argument to the init() vtable method so PMCs have the option to
833         know how to size themselves at creation. size could be N elements
834         or a byte count, depending on the PMC or it may simply be ignored.
835         Overloaded 'new' opcode for optional arg.
837 2002-03-10 21:15  mrjoltcola
839         * lib/Parrot/Assembler.pm: Minor patch to the assembler for the
840         new_p_ic_ic opcode to work same as new_p_ic (looks up a named
841         class).
843         Also added small hack for .sub directive (which simply translates
844         to a label, however we might eventually want to collect these to
845         validate bsr calls.
847 2002-03-10 15:09  ajgough
849         * types/: bignum.c, bignum.h, bignum_atest.pl, bignum_test.pl:
850         Added round_floor and round_ceiling.  3403 tests pass, none fail.
852 2002-03-10 03:56  ajgough
854         * types/: bignum.c, bignum_atest.pl: Added extended stuff to
855         divide, divide integer and remainder.  All filled in functions now
856         have special values capability.
858         Much remains to be done though, and the pdd needs to catch up.
860 2002-03-10 01:36  ajgough
862         * types/bignum.c: Added extended stuff to _add, _subtract.
864 2002-03-10 00:14  nicholas
866         * t/op/: integer.t, number.t: Patch from Simon Glover
867         <scog@roe.ac.uk>:
869          The enclosed patch fixes a few of the holes in our test coverage
870          uncovered by Josh Wilmes
872 2002-03-09 23:03  ajgough
874         * types/: bignum.c, bignum.h: Modified compare to work with
875         extended values.  Made a couple of changes here and there to allow
876         BN_comp to take a context, so that an is_zero check doesn't clobber
877         negative zeros.
879 2002-03-09 22:19  ajgough
881         * types/: bignum.c, bignum.h, bignum_atest.pl, bignum_test.pl:
882         Unary plus now copes with special values.
884 2002-03-09 04:25  ajgough
886         * types/: bignum.c, bignum_atest.pl, bignum_test.pl: Exception
887         traps and flags are now enabled and tested for all the standard
888         tests for all the functions which are currently implemented.  Test
889         harness faffed with to allow these to be tested.
891 2002-03-09 02:29  josh
893         * encodings/singlebyte.c, encodings/utf16.c, encodings/utf32.c,
894         encodings/utf8.c, chartypes/unicode.c, chartypes/usascii.c:
895         Re-indented
897 2002-03-09 02:22  josh
899         * config_h.in: tab-blastin'
901 2002-03-09 02:21  josh
903         * check_source_standards.pl: Play nicer with M-x compile- don't
904         bother giving line numbers for things you don't want to look at.
906 2002-03-09 02:10  josh
908         * examples/mops/mops.c: re-indented
910 2002-03-09 02:07  josh
912         * classes/pmc2c.pl: Use the usual header so that we can detect the
913         autogeneratedness.
915 2002-03-09 02:05  josh
917         * jit2h.pl: Avoid accidental /* inside a comment, which generates a
918         compiler warning
920 2002-03-09 01:59  josh
922         * io/: io.c, io_stdio.c, io_unix.c, io_win32.c: Another large
923         patch- re-indent io/*.c.
925 2002-03-09 01:52  ajgough
927         * types/: bignum.c, bignum.h, bignum_test.pl: Added handling of
928         special values to the string conversion functions, some other
929         functions now need context (to let -0 pass through really_zero)
930         which have also been added.
932 2002-03-09 01:47  josh
934         * test_main.c: Re-indented.
936 2002-03-09 01:41  josh
938         * rx.c: killed a stray tab
940 2002-03-09 01:38  josh
942         * rx.c: Re-indented.
944 2002-03-09 01:36  josh
946         * misc.c: Oops, some tabs remained- cleaned up.
948 2002-03-09 01:31  josh
950         * misc.c: Re-indented (major patch, sorry)
952 2002-03-09 00:59  josh
954         * embed.c: Re-indented.
956 2002-03-08 23:08  simon
958         * MANIFEST, docs/pdds/pdd10_embedding.pod,
959         docs/pdds/pdd11_extending.pod, docs/pdds/pdd12_assembly.pod,
960         docs/pdds/pdd13_bytecode.pod:
961         Placeholder PDDs.
963 2002-03-08 21:12  ajgough
965         * include/parrot/string.h: Added private flags to string.h, mostly
966         so that other GCed stuff can also have its very own private flags.
968 2002-03-08 19:53  simon
970         * MANIFEST:
971         Great PDD Renaming
973 2002-03-08 19:41  robert
975         * docs/pdds/: pdd0.pod, pdd1.pod, pdd2.pod, pdd4.pod, pdd5.pod,
976         pdd6.pod, pdd7.pod: Renamed...
978 2002-03-08 18:51  simon
980         * MANIFEST, docs/pdds/pdd08_keys.pod:
981         Add keys PDD.
983 2002-03-08 18:20  ajgough
985         * types/: bignum.c, bignum.h, bignum_atest.pl, bignum_test.pl:
986         Introduced exception handlers and exception flags to context, will
987         allow support of extended standard.  Unified exception checking
988         mechanism (sort of) and made minimal changes to bulk of code to use
989         this.  Tests pass, I'm happy, and further changes will happen more
990         gradually.
992 2002-03-08 04:38  josh
994         * interpreter.c, string.c, testparrotsizes_c.in: More indenting
995         tweaks.
997 2002-03-08 04:37  josh
999         * platforms/: generic.c, generic.h, win32.c, win32.h: Re-indented
1001 2002-03-08 04:24  josh
1003         * embed.c: A bit more re-indenting
1005 2002-03-08 04:20  josh
1007         * embed.c: Indenting fixes
1009 2002-03-08 04:14  josh
1011         * jit.c: Re-indented (run_indent.pl)
1013 2002-03-08 03:36  josh
1015         * ops2c.pl: Fix the line numbers which get reported while compiling
1016         core_ops*.c
1018 2002-03-08 03:22  josh
1020         * packfile.c: -1552 cc: WARNING File = packfile.c, Line = 1537
1021         The variable "type" is set but never used.
1023               opcode_t type;
1025 2002-03-08 03:04  josh
1027         * resources.c, stacks.c, string.c, io/io.c, io/io_stdio.c,
1028         io/io_unix.c: Clean up unused and set-but-not-referenced variables
1029         noticed by the sgi compiler.
1031 2002-03-08 03:02  josh
1033         * misc.c: Fixes this warning (SGI) cc-1188 cc: WARNING File =
1034         misc.c, Line = 417   The indicated type qualifier is meaningless on
1035         cast type.
1038         (const char) 'f');
1039                                                                          ^
1041 2002-03-08 02:55  josh
1043         * Makefile.in: Clean up one of the object files it was missing
1045 2002-03-08 01:15  josh
1047         * include/parrot/interpreter.h: Fixes the following error (tcc):
1048         "./include/parrot/interpreter.h", line 27: Error:   [Syntax]: Extra
1049         comma at end of list.
1051 2002-03-06 22:15  simon
1053         * stacks.c:
1054         Tidy up stack chunk allocation.
1056 2002-03-06 21:00  simon
1058         * interpreter.c:
1059         Create strings only once we've got string register heads set up.
1061 2002-03-06 20:31  simon
1063         * classes/perlarray.pmc:
1064         malloc(0) considered harmful.
1066 2002-03-06 20:24  simon
1068         * include/parrot/resources.h:
1069         I like it when Parrot compiles.
1071 2002-03-06 17:02  dan
1073         * classes/array.pmc: Changed over to data pointing to a Buffer.
1075 2002-03-06 15:45  dan
1077         * core.ops, embed.c, exceptions.c, interpreter.c, memory.c,
1078         packfile.c, pbc2c.pl, pdump.c, resources.c,
1079         include/parrot/interpreter.h, include/parrot/memory.h,
1080         include/parrot/resources.h, io/io.c: Three quick things: 1) INTVALs
1081         and opcode_t > longs will now be even more suspect than what they
1082         were beforehand.  2) Feel free to bicker with names.  I don't think
1083         we've come to *any* sort of agreement with these, although we
1084         really, really, need to.  3) I forget the third thing.  4) But I
1085         thought of a fourth.  5) I've now remembered the third thing: IIRC,
1086         ANSI C states that enums will fit within the smallest type (int or
1087         greater) that can hold the values. Is that actually correct, and
1088         does it state whether unsigned is preferred to signed for
1089         non-negative enums? 6) Since I'm no longer constrained by "three"
1090         or "quick", I'm going size_t happy for a lot of memory-related
1091         storage.  (That's good.  No sense wasting the size or performance
1092         of an UINTVAL for strange values of UINTVAL.)  I'm also using it in
1093         a couple other internal things (like the GC stat counters, seen
1094         here).  Size and performance, again, and unpromotable to a bigint,
1095         so we know that we (theoretically) will wrap.  However, size_t
1096         isn't the best choice for the type.  (Not that there's anything
1097         wrong with size_t, just that it shouldn't be called size_t.)  Any
1098         thoughts?  I was thinking of just doing unsigned int, because,
1099         IIRC, int is usually the natural word size, and will be most
1100         efficient.  Thoughts? 7) I forgot what the fourth thing I thought
1101         of was while writing down the others.  Sorry.
1103         Courtesy of  "Bryan C. Warnock" <Bryan.Warnock@raba.com>
1105 2002-03-06 15:26  dan
1107         * memory.c, resources.c, string.c, classes/perlarray.pmc,
1108         include/parrot/resources.h: Now we allocate generic Buffers from
1109         arenas too
1111 2002-03-05 21:42  brentdax
1113         * Configure.pl: Minor cleanup and enhancements.
1115 2002-03-05 21:25  dan
1117         * resources.c: non-special GC now works with PMCs
1119 2002-03-05 19:48  brentdax
1121         * Configure.pl, DEVELOPING, MANIFEST, config_h.in, test_main.c:
1122         Parrot now "knows" if it's a development version or a release
1123         version.  See the instructions in the DEVELOPING file.
1125 2002-03-05 18:05  brentdax
1127         * MANIFEST: pasm.vim wasn't in the manifest.
1129 2002-03-05 17:57  simon
1131         * Makefile.in:
1132         Now, through much evilness, make distclean and make cvsclean work
1133         again.
1135 2002-03-05 17:38  dan
1137         * memory.c, resources.c, docs/pdds/pdd09_gc.pod,
1138         include/parrot/interpreter.h, include/parrot/pmc.h,
1139         include/parrot/resources.h: PMC tracing complete
1141 2002-03-05 16:28  gregor
1143         * languages/jako/Makefile.in:
1144         Changed -I ../../ to -I ../../lib when calling the assembler, since
1145         the perl modules have moved.
1147 2002-03-05 05:30  josh
1149         * packfile.c, pdump.c, pmc.c, register.c, rxstacks.c, stacks.c,
1150         string.c: More re-indenting via run_indent.pl.
1152 2002-03-05 05:17  josh
1154         * runops_cores.c, trace.c, warnings.c: Re-indented (via
1155         run_indent.pl)
1157 2002-03-05 04:26  josh
1159         * key.c, memory.c, test_gnuc.c, testparrotfuncptr.c: Re-indented
1160         using run_indent.pl and some minor tweaking.
1162 2002-03-05 04:21  josh
1164         * chartype.c, encoding.c, exceptions.c, global_setup.c,
1165         interpreter.c: Re-indented using run_indent.pl and some minor
1166         tweaking.
1168 2002-03-05 03:30  josh
1170         * include/parrot/trace.h: These functions are no longer used (or
1171         even implemented)
1173 2002-03-04 18:21  josh
1175         * include/parrot/trace.h: Fix a typo in the argument type.
1177         Patch from <daniel.ritz@gmx.ch>
1179 2002-03-04 03:39  josh
1181         * check_source_standards.pl, jit2h.pl: Add the "autogenerated file"
1182         header to jit_struct.h so we don't try to check it for conformance.
1183          (no way will it conform)
1185 2002-03-04 03:38  josh
1187         * include/parrot/: chartype.h, interpreter.h, io.h, rx.h, trace.h,
1188         unicode.h, warnings.h: Remove some remaining tabs and split some of
1189         the remaining long lines.
1191 2002-03-04 03:17  josh
1193         * include/parrot/: chartype.h, embed.h, encoding.h, exceptions.h,
1194         global_setup.h, interpreter.h, io.h, jit.h, key.h, memory.h,
1195         misc.h, op.h, oplib.h, packfile.h, parrot.h, pmc.h, register.h,
1196         resources.h, runops_cores.h, rx.h, rxstacks.h, stacks.h, string.h,
1197         string_funcs.h, trace.h, warnings.h: This is the first batch of
1198         re-indenting.   This patch is the result of running run_indent.pl
1199         on the header files and manually tweaking the results where errors
1200         were noticed.   This should get us closed, but some refinement may
1201         follow.
1203 2002-03-04 03:06  josh
1205         * resources.c: Return without parens, as mentioned in PDD 7
1207 2002-03-04 03:01  josh
1209         * core.ops: POD fixes.
1211 2002-03-04 02:58  josh
1213         * config_h.in, ops2c.pl, classes/pmc2c.pl: More consistent headers
1214         on autogenerated files- used by the check_source_standards.pl
1215         script (for now) to exempt autogenerated files from the checks.
1217 2002-03-04 02:51  josh
1219         * embed.c, key.c, pmc.c, resources.c, rx.c, testparrotfuncptr.c,
1220         warnings.c: Added the editor "boilerplate" footer to a few files
1221         which were missing it.
1223 2002-03-04 02:34  josh
1225         * check_source_standards.pl, interpreter.c, jit.c, test_gnuc.c,
1226         include/parrot/io.h, include/parrot/parrot.h, io/io_win32.c: Fixes
1227         c preprocessor directive indentation to comply with pdd 7.
1229         (also fixes the check for this indentation in
1230         check_source_standards.pl)
1232 2002-03-04 02:32  josh
1234         * lib/Parrot/Test.pm: Fixes this error seen on perl 5.005_02 on
1235         irix.
1237         perl t/harness t/op/basic..........Use of uninitialized value at
1238         lib/Parrot/Test.pm line 81.  #     Failed test (t/op/basic.t at
1239         line 6) #          got: undef #     expected: ''
1241 2002-03-04 02:30  josh
1243         * MANIFEST, run_indent.pl, docs/pdds/pdd07_codingstd.pod,
1244         docs/pdds/pdd7.pod: Added documentation and code to invoke the GNU
1245         "indent" program to enforce some of the code style standards
1246         outlined in PDD 7.
1248         Usage: ./run_indent.pl <file>
1250 2002-03-03 19:04  simon
1252         * examples/mops/mops.c:
1253         Let's make it compile, huh?
1255 2002-03-03 19:04  simon
1257         * examples/mops/mops.cs:
1258         I R AN IDIOT
1260 2002-03-03 18:11  simon
1262         * examples/mops/mops.cs, examples/mops/mops.il, MANIFEST:
1263         Added C# and MS-IL versions of mops tester.
1265 2002-03-03 14:52  simon
1267         * core.ops:
1268         Add a sub() op to make mops_p work.
1270 2002-03-02 18:12  nicholas
1272         * examples/mops/mops.c, include/parrot/embed.h,
1273         include/parrot/interp_guts.h, include/parrot/jit.h,
1274         include/parrot/misc.h, include/parrot/packfile.h,
1275         include/parrot/rx.h, include/parrot/warnings.h,
1276         platforms/generic.c, platforms/generic.h, platforms/win32.c,
1277         platforms/win32.h, types/bignum.c, types/bignum.h: Patch from Josh
1278         Wilmes to add the emacs and vim "ending boilerplate" that sets the
1279         indent variables correctly.
1281 2002-03-02 17:41  nicholas
1283         * resources.c: Patch from Josh Wilmes <josh@hitchhiker.org>: Little
1284         patch to fix a compiler warning.
1286 2002-03-01 22:35  dan
1288         * memory.c, resources.c, include/parrot/pmc.h,
1289         include/parrot/resources.h: PMCs now come out of arenas.
1291 2002-03-01 06:15  dan
1293         * string.c:
1294         A non-existing buffer + a non-existing buffer should be a
1295         non-existing buffer, not "", which is really '\0'.
1297         Courtesy of "Bryan C. Warnock" <Bryan.Warnock@raba.com>
1299 2002-03-01 06:02  dan
1301         * classes/: array.pmc, perlarray.pmc, perlhash.pmc, perlstring.pmc:
1303         TMTOWTDI, but strcmp is probably the worse.
1305         Courtesy of "Bryan C. Warnock" <Bryan.Warnock@raba.com>
1307 2002-03-01 02:32  brentdax
1309         * embed.c: Debug mode now prints out the GC data.
1311 2002-02-28 23:44  dan
1313         * core.ops, resources.c, include/parrot/resources.h: Added collect
1314         and sweep opcodes
1316 2002-02-28 22:58  dan
1318         * docs/pdds/: pdd06_pasm.pod, pdd6.pod: Add docs for interpinfo
1319         opcode
1321 2002-02-28 22:50  dan
1323         * core.ops, interpreter.c, resources.c,
1324         examples/assembly/life.pasm, include/parrot/interpreter.h,
1325         include/parrot/resources.h: Add some stat gathering to the resource
1326         allocation code.
1328         Also add an interpreter info retrieval op, and teach it about the
1329         different things it can retrieve.
1331         Finally, add some stat info to life.pasm as an example
1333 2002-02-28 21:27  dan
1335         * editor/pasm.vim: VIM mode commands for parrot assembly files
1337         Courtesy of Scott Beck <scott@gossamer-threads.com>
1339 2002-02-28 19:20  dan
1341         * examples/assembly/life.pasm: Fix a creeping string length leak.
1343         Courtesy of  "Bryan C. Warnock" <Bryan.Warnock@raba.com>
1345 2002-02-28 18:26  dan
1347         * string.c: When you clone a constant, it ain't constant no mo'.
1349         Cocurtesy of "Bryan C. Warnock" <Bryan.Warnock@raba.com>
1351 2002-02-28 00:51  dan
1353         * MANIFEST: Add missing files
1355         Courtesy of "Bryan C. Warnock" <Bryan.Warnock@raba.com>
1357 2002-02-28 00:49  dan
1359         * docs/pdds/: pdd0.pod, pdd00_pdd.pod: The pod version of PDD 0 in
1360         CVS seems to have several chunks missing out of it, too.  This
1361         patch is simply an administrative patch, with the differences
1362         between my last version, and the one currently in there.  There
1363         will be a forthcoming patch for some minor tweaking to the PDD, but
1364         I wanted a common baseline before I make any (potential) semantic
1365         changes.
1367         There's only one semi-major change, which noone needs to worry
1368         about just yet.  That's a change from PDD Format 1 to PDD Format
1369         6.0 - rationale can be found under 'Standard (Version #)' of the
1370         STANDARDS TRACK infomation.  Don't worry about this yet, because it
1371         should be 6.0.0, and we need to discuss Perl versus Parrot with
1372         PDDs.
1374         Courtesy of "Bryan C. Warnock" <bwarnock@raba.com>
1376 2002-02-28 00:27  dan
1378         * packfile.c, resources.c, examples/assembly/life.pasm,
1379         include/parrot/register.h, include/parrot/resources.h,
1380         include/parrot/string.h: First pass of semi-full GC. (Strings only,
1381         no PMCs yet)
1383         This patch now implements a real copying collector. We trace from
1384         our root set and compact the contents of Buffer structs.
1386         Todo:
1388         *) It's very STRING-centric and doesn't handle memory stuffed in
1389         Buffers.  But, then, we don't have pool allocation for Buffers
1390         either, and we need to have that soonish for this to work.
1392         *) Doesn't trace PMCs, so if you trigger a collection and there's
1393         memory or STRING structs only accessible from PMCs, you'll fail
1394         horribly. That needs fixing too
1396         *) Better algorithms for when to trace or collect vs when to just
1397         go allocate more memory from the system. Should probably be more
1398         cache friendly too.
1400 2002-02-27 21:04  dan
1402         * jit.c, memory.c, resources.c, string.c, docs/pdds/pdd09_gc.pod,
1403         examples/assembly/life.pasm, include/parrot/resources.h,
1404         include/parrot/string.h, include/parrot/string_funcs.h,
1405         jit/i386/core.jit: Start of GC in
1407 2002-02-26 16:41  dan
1409         * jit/i386/string.jit: Fix a typo
1411         Courtesy of Jonathan Stowe <gellyfish@gellyfish.com>
1413 2002-02-26 16:37  dan
1415         * interpreter.c: Fix solaris test failures
1417         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1419 2002-02-26 16:36  dan
1421         * include/parrot/: interp_guts.h, io.h, packfile.h, rx.h,
1422         unicode.h, warnings.h: Fixes various warts in header files, such
1423         as: * macros   -added parens to prevent problems with operator
1424         precedence   -removed ; at end * removed SSIZE_MAX, since ssize_t
1425         is no longer used * added some more INLINE definitions for MSVC and
1426         C99 compilers
1428         Courtesy of Brian Lee Ray <blray@ualr.edu>
1430 2002-02-26 16:20  dan
1432         * Configure.pl: Turns out we were using a warning flag which
1433         doesn't exist on 2.7.  Simple tweak though:
1435         Courtesy of  Josh Wilmes <josh@hitchhiker.org>
1437 2002-02-25 22:58  dan
1439         * MANIFEST, docs/pdds/pdd09_gc.pod: Add docs of GC
1441 2002-02-25 17:36  dan
1443         * include/parrot/pmc.h: Fix the bits
1445 2002-02-23 21:57  dan
1447         * include/parrot/resources.h: Another 1.5% never hurts
1449 2002-02-23 21:44  dan
1451         * global_setup.c, memory.c, resources.c, string.c,
1452         include/parrot/resources.h: Allocate STRING headers from an arena
1453         with freelist rather than with the system malloc. First step in a
1454         good (or even a bad) GC system.
1456 2002-02-23 20:37  brentdax
1458         * misc.c: lint has been doing Evil and Wrong things to misc.c.
1460 2002-02-22 14:59  ajgough
1462         * types/bignum.c: BN_multiply split into BN_multiply and
1463         BN_imultiply, the internal version to be used by idivide so that
1464         rounding isn't performed during intermediate stages of division.
1466         following test scripts now all pass: divide divideint add multiply
1467         subtract remainder compare rounding plus minus (these are all the
1468         operations currently implemented, rescale and power must still be
1469         written, so don't pass right now).
1471 2002-02-22 13:13  ajgough
1473         * types/bignum_atest.pl: Test harness modified to understand
1474         comments better, and be able to run unary (and rounding) tests.
1475         Currently a few rounding tests fail, which are being investigated.
1477 2002-02-22 01:41  dan
1479         * key.c: Although there's more work being done on the key stuff and
1480         this isn't the final fix, applying this patch does get parrot to
1481         build with two more compilers, so it's probably worthwhile.
1483         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1485 2002-02-22 00:53  dan
1487         * config_h.in, misc.c, include/parrot/embed.h,
1488         include/parrot/exceptions.h, include/parrot/interpreter.h,
1489         include/parrot/io.h, include/parrot/parrot.h, include/parrot/pmc.h,
1490         include/parrot/resources.h, include/parrot/rx.h,
1491         include/parrot/string.h, include/parrot/unicode.h,
1492         include/parrot/warnings.h, io/io_stdio.c, io/io_unix.c,
1493         io/io_win32.c: Fixes the following (lcc) warnings:
1495           - interpreter.c:470: warning: expression with no effect elided
1496                (related to the way warnings flags were defined)
1498           - misc.c:352: warning: unreachable code
1499             misc.c:483: warning: unreachable code
1500                (i introduced these with some overzealous de-linting)
1502           - numerous warnings like this:
1503             io/io_unix.c:383: warning: conversion from pointer to void' to
1504         pointer to
1505             pointer to struct _ParrotIO function(pointer to struct
1506         Parrot_Interp,pointer
1507             to struct _ParrotIOLayer,pointer to const char,pointer to const
1508         char,pointer
1509             to pointer to void)' is compiler dependent
1511         Fixes the following nits:    - remove bad indenting (tabs) in the
1512         includes
1514         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1516 2002-02-21 21:12  ajgough
1518         * types/: bignum.c, bignum.h: These might look like massive
1519         changes, but really it's just he imposition of coding standards.
1520         The file still isn't entirely compliant, but is now much more so.
1522         Also changed:
1524          o a few more comments
1525          o BN_compare uses internal BN_comp to compare
1526          o lost_digits behaviour is now correct (test harness modified to
1527         test
1528            this).
1530         All binary functions now pass all the tests in the basic standard.
1531         Unary functions not yet tested, will be soon.
1533 2002-02-21 18:20  dan
1535         * lib/Parrot/OpTrans/CPrederef.pm: The "inline" bit of that patch
1536         was no longer needed, and the ssize_t thing really shouldn't be
1537         needed either.
1539         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1541 2002-02-21 18:15  dan
1543         * Configure.pl, embed.c, pdump.c, hints/mswin32.pl,
1544         include/parrot/parrot.h: this patch adds support for the freely
1545         available borland c++ 5.5.1 compiler
1547         depends on: - josh's patch to remove ssize_t from CPrederef.pm -
1548         working borland compiler (compiler must know where to find headers
1549         and libs) - Perl's Config.pm modified to use cc='bcc32.exe' not of
1550         cc='cl.exe' - a working make utility (borland make doesn't work,
1551         nmake does)
1553         changes: - add bcc in hints/mswin32.pl - clean up for msvc++ in
1554         hints/mswin32.pl - remove a space from Configure.pl (very very
1555         important for bcc) - add a O_BINARY flag to open() in pdump.c,
1556         embed.c (required by bcc) - define O_BINARY 0 when it's not defined
1557         (win32 knows it, linux not)
1559         and the why: - parrot is MUCH faster when compiled with borland c
1560         (make test on p2-450, 320MB):   * msvc++: 313 seconds   * bcc: 251
1561         seconds
1563         Courtesy of "Ritz Daniel" <daniel_ritz@gmx.ch>
1565 2002-02-21 18:09  dan
1567         * jit.c, testparrotfuncptr.c, trace.c, classes/array.pmc, io/io.c,
1568         io/io_stdio.c, io/io_unix.c, io/io_win32.c: This patch removes
1569         cuddled elses, as required by PDD 7.
1571         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1573 2002-02-21 18:04  dan
1575         * MANIFEST, Makefile.in, check_source_standards.pl: This patch adds
1576         a new Makefile target called "check_source".  This target scans all
1577         the .c and .h files in the directory and checks for conformance to
1578         a number of the standards outlined in PDD 7.
1580         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1582 2002-02-21 16:38  ajgough
1584         * types/: bignum.c, bignum.h, bignum_atest.pl: Modifications to
1585         allow arithmetic with numbers with a fixed fractional part, buffer
1586         structures now more ready to be integrated into the parrot memory
1587         allocation game, test harness modified to allow lost_digits
1588         condition to be checked.  Some more comments.
1590 2002-02-21 15:53  simon
1592         * io/io_unix.c:
1593         Fix typo
1595         Courtesy of: "David M. Lloyd" <dmlloyd@tds.net>
1597 2002-02-20 16:41  dan
1599         * MANIFEST, docs/pdds/pdd_template.pod: Added in template PDD
1601 2002-02-18 18:25  dan
1603         * MANIFEST, lib_deps.pl: Added in lib_deps.pl and MANIFEST change.
1605         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1607 2002-02-18 18:21  dan
1609         * lib/Parrot/OpTrans/CPrederef.pm: this is a quick fix for
1610         CPrederef.pm to make to generated code compile with the MS
1611         compiler.
1613         fixes: - ms compiler allows inline only for c++, for c there's
1614         __inline - ms header files knows nothing about ssize_t
1616         Courtesy of "Ritz Daniel" <daniel_ritz@gmx.ch>
1618 2002-02-18 17:49  dan
1620         * MANIFEST: Add the PDDs
1622 2002-02-18 17:47  dan
1624         * docs/pdds/: pdd07_codingstd.pod, pdd7.pod: Added in PDD 7, the
1625         coding standards PDD.
1627 2002-02-18 17:40  dan
1629         * docs/pdds/: pdd06_pasm.pod, pdd6.pod: Updated to latest rev
1631 2002-02-18 12:41  gregor
1633         * test_main.c:
1634         Remove warning about exit() not being declared.
1636 2002-02-18 08:29  simon
1638         * misc.c, warnings.c, include/parrot/misc.h,
1639         include/parrot/warnings.h:
1640         This patch adds some missing const's to silence a number of gcc
1641         warnings.
1643         Courtesy of: Josh Wilmes <josh@hitchhiker.org>
1645 2002-02-18 08:26  simon
1647         * Makefile.in, core.ops, embed.c, interpreter.c, key.c, misc.c,
1648         ops2c.pl, packfile.c, pdump.c, stacks.c, string.c,
1649         classes/array.pmc, classes/perlarray.pmc, classes/perlhash.pmc,
1650         include/parrot/parrot.h, include/parrot/rx.h,
1651         include/parrot/stacks.h, io/io_stdio.c, io/io_unix.c,
1652         lib/Parrot/OpTrans/CPrederef.pm:
1653            - add makefile target and script to test for external libc
1654         dependencies
1655            - fix return values in hash and array PMCs (returning 0 in a
1656         void func)
1657            - remove unnecessary data pointer <=> function pointer
1658         conversions
1659              outside of the JIT code.
1660            - move the definition of the "INLINE" macro out of the rx header
1661         and make
1662              available for general use on C++ compilers and gcc.
1663            - remove a few unused variables
1665         Courtesy of: Josh Wilmes <josh@hitchhiker.org>
1667 2002-02-17 16:29  simon
1669         * docs/pdds/: pdd0.pod, pdd00_pdd.pod, pdd01_overview.pod,
1670         pdd02_vtables.pod, pdd04_datatypes.pod, pdd05_opfunc.pod,
1671         pdd06_pasm.pod, pdd1.pod, pdd2.pod, pdd4.pod, pdd5.pod, pdd6.pod:
1672         We're organised and responsible. Honest.
1674 2002-02-17 02:46  sfink
1676         * Makefile.in: Remove $^ for nmake compatibility.
1678 2002-02-16 09:20  brentdax
1680         * config_h.in, test_main.c, include/parrot/chartype.h,
1681         include/parrot/embed.h, include/parrot/encoding.h,
1682         include/parrot/string.h, include/parrot/string_funcs.h: Better
1683         embedding exposure and hiding, part 1.
1685 2002-02-16 04:38  dan
1687         * Makefile.in, core.ops, interpreter.c, pbc2c.pl, pdump.c,
1688         runops_cores.c, docs/running.pod, lib/Parrot/OpTrans/C.pm,
1689         lib/Parrot/OpTrans/CGoto.pm, lib/Parrot/OpTrans/CPrederef.pm:
1690         Anyway, here's a patch to repair pbc2c.pl, combined with removing
1691         typecasts in various places throughout the code. It probably won't
1692         work for Windows yet. The libparrot.a target might need to be
1693         modified to at least prevent it from confusing make on Windows; I
1694         don't know.
1696         Preliminary instructions for using pbc2c.pl are in
1697         docs/running.pod.  I'll try to do better later.
1699         Courtesy of Steve Fink <steve@fink.com>
1701 2002-02-16 04:15  dan
1703         * exceptions.c, include/parrot/exceptions.h: Warnings cleaned up
1705         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1707 2002-02-16 00:03  simon
1709         * classes/: perlarray.pmc, perlhash.pmc:
1711         pmc is already defined!
1713 2002-02-15 23:20  brentdax
1715         * Configure.pl, config_h.in, exceptions.c, pmc.c,
1716         include/parrot/exceptions.h: Far more informative panic messages.
1718 2002-02-15 03:24  dan
1720         * lib/Parrot/: Op.pm, OpsFile.pm, OpTrans/CPrederef.pm: Here's a
1721         much more extensive patch that fixes it to work properly, and
1722         deletes a bazillion casts as well.  It also points to the question
1723         "can we make the byte_code be an opcode_t* already?"
1725         Oh, and it makes some of the formatting prettier, so it's gotta be
1726         good.
1728         Courtesy of * Steve Fink <steve@fink.com>
1730 2002-02-15 02:30  dan
1732         * Makefile.in, core.ops, embed.c, misc.c, packfile.c, rx.ops,
1733         stacks.c: I've tweaked the "lint" target somewhat and fixed a few
1734         of the things it finds.  Attaching the patch as well as the current
1735         lint output.
1737         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1739 2002-02-15 01:59  dan
1741         * t/pmc/: array.t, perlhash.t: Disable non-functional bits for the
1742         moment.
1744 2002-02-15 01:48  dan
1746         * t/pmc/perlarray.t: Skip tests for features that need twiddling
1748 2002-02-15 01:40  dan
1750         * t/op/rx.t: Skip a test that's waiting for us to rejig some array
1751         things
1753 2002-02-14 23:30  dan
1755         * resources.c: Added comment for buffer tag routine. D'oh!
1757 2002-02-14 23:28  dan
1759         * resources.c, include/parrot/resources.h: Added buffer mark
1760         routine for GC
1762 2002-02-14 23:17  dan
1764         * memory.c, classes/array.pmc, classes/perlarray.pmc,
1765         include/parrot/memory.h, include/parrot/string.h, t/pmc/perlhash.t:
1766         Rejigged memory system a bit. Now should be ready for the horror
1767         that is garbage collection.
1769 2002-02-14 19:33  gregor
1771         * ops2c.pl, include/parrot/oplib.h:
1772         Added code to automatically generate a function within an oplib to
1773         lookup opinfos given the op name. This will come in handy in future
1774         when we want to twiddle opcode tables at run time and possibly at
1775         startup time.
1777 2002-02-14 19:25  gregor
1779         * examples/assembly/queens.pasm:
1780         Regenerated queens.pasm from queens.jako since the clone_* stuff
1781         went away.
1783 2002-02-14 17:12  dan
1785         * resources.c, include/parrot/resources.h: Finished up the
1786         interface for memory and tracked interpreter thingies.
1788 2002-02-14 16:53  dan
1790         * memory.c, include/parrot/memory.h: intercept free and realloc
1792 2002-02-14 05:53  dan
1794         * interpreter.c, runops_cores.c: The type changes in struct
1795         Packfile break the pointer math used in a few places to calculate
1796         the address of the end of the loaded byte code. This causes
1797         segfaults in build_asm in jit.c when using -j. It also breaks the
1798         bounds checking on opcode address in runops_slow_core.
1800         The patch adds the necessary cast to correct the code_end
1801         calculations.
1803         Courtesy of Jason Gloudon <perl@gloudon.com>
1805 2002-02-14 01:01  ajgough
1807         * types/: bignum.c, bignum.h, bignum_test.pl: Added support for
1808         BigInt operations (I think), tests for normal operation continue to
1809         pass.  Also a shed load of comments.
1811 2002-02-13 01:34  ajgough
1813         * types/: bignum.c, bignum.h, bignum_atest.pl, bignum_test.pl: This
1814         is a (mostly) working bignumber library.  There remains much work
1815         to do though, some functions are not yet implemented and headers
1816         need to find their way to the correct place RSN.  Also support for
1817         bigints and a sensible error reporting mechanism are needed.
1819 2002-02-12 18:51  dan
1821         * misc.c: Fix some warnings
1823 2002-02-12 17:10  dan
1825         * misc.c: Run through indent -kr -nce so I can read it
1827 2002-02-12 16:49  dan
1829         * misc.c: Need standard header/footer comments
1831 2002-02-11 20:32  simon
1833         * classes/array.pmc:
1834         get and set pmc methods.
1836 2002-02-11 20:19  simon
1838         * classes/array.pmc:
1839         Maybe the keys aren't integer...
1841 2002-02-11 20:03  simon
1843         * core.ops, vtable.tbl, classes/default.pmc:
1844         {g,s}et_pmc_keyed
1846 2002-02-11 19:07  simon
1848         * vtable.tbl, classes/default.pmc:
1849         Add set_pmc. Usee with caution.
1851 2002-02-11 18:20  dan
1853         * classes/: array.pmc, perlarray.pmc: Patch array classes to
1854         compile
1856 2002-02-11 17:59  simon
1858         * core.ops, embed.c, global_setup.c, key.c, rx.ops,
1859         classes/perlarray.pmc, classes/perlhash.pmc:
1860         Make it compile.
1862 2002-02-11 17:57  simon
1864         * packfile.c, include/parrot/packfile.h:
1865         Reduce warnings
1867         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
1869 2002-02-11 17:55  dan
1871         * docs/parrot_assembly.pod: Document some key ops
1873 2002-02-11 09:20  brentdax
1875         * pmc.c, include/parrot/exceptions.h: Adding a panic ought to be
1876         disgustingly easy.
1878 2002-02-11 00:34  simon
1880         * core.ops, include/parrot/exceptions.h:
1881         This is what keyed set ops look like. Remember, however, that for
1882         keyed functions, all operands must be PMCs. set(PMC, PMC, INT)
1883         means $1 = $2[$3], not $1[$2] = $3. set(PMC,PMC,PMC) is so
1884         obviously ambiguous that you ought to use the 4-arg version
1885         instead.
1887 2002-02-10 23:12  jgoff
1889         * classes/: array.pmc, perlarray.pmc: Properly allocate
1890         SELF->data's array of PMC* data in array and perlarray.pmc.  This
1891         isn't tested yet, but should be fairly straightforward.  PerlHash
1892         needs to be finished before the system will compile again, and that
1893         should be done in the next few days.
1895 2002-02-09 04:46  jgoff
1897         * classes/: array.pmc, default.pmc, intqueue.pmc,
1898         parrotpointer.pmc, perlarray.pmc, perlhash.pmc, perlundef.pmc:
1899         Added basic _keyed member functions.  Unfortunately this still
1900         doesn't fix the problems that are causing the build to break. It's
1901         a start though. I'm not implementing the PMC add functions just
1902         yet.
1904 2002-02-08 15:59  simon
1906         * classes/array.pmc:
1907         Some more work on getting the array stuff up to date.
1909 2002-02-08 12:23  simon
1911         * classes/array.pmc, classes/perlhash.pmc, include/parrot/key.h,
1912         lib/Parrot/Vtable.pm:
1913         Got array->get_integer_keyed doing what I think it ought to. One
1914         down, all the rest to go.
1916 2002-02-08 11:47  simon
1918         * vtable.tbl:
1919         Although I didn't intend it to be quite that broken...
1921 2002-02-08 11:42  simon
1923         * vtable.tbl, include/parrot/parrot.h, lib/Parrot/Vtable.pm:
1924         Completely break Parrot, but at least we get the key stuff right
1925         for now.
1927 2002-02-08 06:25  dan
1929         * hints/darwin.pl: Silences the warning about passing in
1930         -flat_namespace to the compile.  That's a link-only flag.
1932 2002-02-08 04:52  jgoff
1934         * classes/: array.pmc, default.pmc, intqueue.pmc,
1935         parrotpointer.pmc, perlarray.pmc, perlhash.pmc, perlint.pmc,
1936         perlnum.pmc, perlstring.pmc, perlundef.pmc: Filled in missing
1937         return values in *.pmc, added some missing casts to the repeat_foo
1938         members, and deleted the _index members from the perlscalar
1939         classes.  Basic cleanup, and getting ready for _keyed functions.
1941 2002-02-07 04:49  mrjoltcola
1943         * examples/assembly/bsr.pasm: Elaborated on the bsr/ret example,
1944         added a nested subroutine call.
1946 2002-02-07 04:32  jgoff
1948         * vtable.tbl, lib/Parrot/Vtable.pm: vtable.tbl got some minor
1949         changes in order to give the whitespace rules a little workout, and
1950         do a little bit more testing. No actual structural changes were
1951         made.  lib/Parrot/Vtable.pm got an interface change, and more
1952         importantly should be ready to support the new '_keyed' attribute,
1953         which will work roughly thus: PMC* src_value gets remapped to 'PMC*
1954         src_value' followed by 'KEY* src_key'.  This will be how the new
1955         _keyed operators will function, and those should be written within
1956         a few days.
1958 2002-02-06 18:00  doughera
1960         * misc.c: Change C++-style comments to C comments (again).  Remove
1961         unused perl5 code that was in #if 0/#endif.
1963 2002-02-06 17:59  doughera
1965         * warnings.c: Add trailing newline.
1967 2002-02-06 04:14  mrjoltcola
1969         * include/parrot/io.h, io/io.c: Minor cleanup.
1971 2002-02-06 03:11  mrjoltcola
1973         * examples/assembly/io1.pasm, io/io.c, io/io_win32.c: Tied up a
1974         couple of loose end in win32 IO stuff. Open behaves now but needs
1975         more work.
1977 2002-02-05 21:02  brentdax
1979         * classes/pmc2c.pl: Length on whoami init was always 7--a problem
1980         which showed up in Purify builds.
1982 2002-02-05 17:15  simon
1984         * misc.c:
1985         Warning fixes.
1987         Courtesy of: Jonathan Stowe <gellyfish@gellyfish.com>
1989 2002-02-05 17:08  doughera
1991         * misc.c: Avoid C++-style comments.
1993 2002-02-05 17:07  doughera
1995         * lib/Parrot/Jit/sun4Generic.pm: Generated assembly programs were
1996         not valid assembler for Sun's /usr/ccs/bin/as.  Now they are,
1997         thanks to Jason Gloudon <perl@gloudon.com>.
1999 2002-02-05 14:04  simon
2001         * misc.c:
2002         Make the problem different, perhaps even better.
2004 2002-02-05 13:49  simon
2006         * misc.c:
2007         Possibly fix a `short int' is promoted to `int' when passed through
2008         `...' scary error, possibly make things absolutely worse.
2010 2002-02-05 13:15  simon
2012         * Configure.pl:
2013         Placate Tru64.
2015 2002-02-05 13:12  simon
2017         * warnings.c:
2018         Not going to get far without this one...
2020 2002-02-05 11:41  simon
2022         * string.c:
2023         Don't barf when handed null pointers.
2025 2002-02-05 10:04  simon
2027         * misc.c, include/parrot/misc.h:
2028         Fix some trivial bugs in warnings code.
2030 2002-02-05 09:27  simon
2032         * misc.c:
2033         Oops, forgot this one; also added %P support.
2035 2002-02-05 09:20  simon
2037         * MANIFEST, Makefile.in, core.ops, embed.c, interpreter.c,
2038         test_main.c, classes/perlundef.pmc, include/parrot/embed.h,
2039         include/parrot/interpreter.h, include/parrot/misc.h,
2040         include/parrot/parrot.h, include/parrot/warnings.h:
2041         Warnings support.
2043         Courtesy of: Brent Dax <brentdax@cpan.org>
2045 2002-02-05 05:41  jgoff
2047         * vtable.tbl, lib/Parrot/Vtable.pm, t/pmc/perlstring.t: Changed the
2048         format of vtable.tbl to get rid of the tab-dependence.  The format
2049         now looks roughly like this:
2051         init() # 'void' and 'unique' are assumed INTVAL type ( ) # 'unique'
2052         is assumed str void concatenate (PMC* value, PMC* dest) # Nothing
2053         assumed here, but note the C-like prototyping.  Also had to disable
2054         one test that depended upon 'concat_p_p_s', which isn't necessary
2055         anyway.
2057         Vtable.pm will change again when the type '_keyed' is added,
2058         because that requires remapping parameters slightly differently
2059         again.  Also, note that it assumes 'value' is the first parameter
2060         in the list. This assumption will go away at the same time.
2062 2002-02-04 16:57  ajgough
2064         * core.ops, t/pmc/perlstring.t, t/pmc/pmc.t: More tests for pmc
2065         functions.  Thanks to Simon Glover.
2067 2002-02-04 02:47  ajgough
2069         * hints/os2.pl: Removes a flag from the os/2 hints file that isn't
2070         needed.  I suspect that the entire hints file isn't really needed,
2071         but there's no one to actually tell us this.
2073 2002-02-02 15:45  ask
2075         * docs/ParrotFAQ.htm: fix internal links
2077 2002-02-02 04:06  jgoff
2079         * classes/: array.pmc, intqueue.pmc, perlarray.pmc, perlhash.pmc:
2080         Moving the internal KEY structure from the cache.struct_val member,
2081         where it doesn't really belong, to the internal SELF->data member.
2082         This frees up the cache/type members for other usage.
2084         This is the first step in moving PMCs to the point where we can do
2085         multidimensional PMC handles. The next step is to change the
2086         assembler to accept the syntax of 'set P0["foo"],7'.
2088 2002-02-02 00:13  nicholas
2090         * include/parrot/global_setup.h: Patch from Jonathan Stowe to
2091         prototype Parrot_Array_class_init
2093 2002-02-02 00:13  nicholas
2095         * embed.c: Casts to tidy up warnings from Jonathan Stowe Change
2096         time to sum_time to avoid warning on FreeBSD about tracking a
2097         global [No, this warning does not appear on Linux. Yes, it is real
2098         :-)]
2100 2002-02-01 23:02  nicholas
2102         * embed.c: Fix fprintf format warning in Parrot_runcode. From Simon
2103         Glover
2105 2002-02-01 20:20  nicholas
2107         * t/pmc/pmc.t: Add end at end of asm in test (from Simon Glover)
2109 2002-02-01 18:20  nicholas
2111         * lib/Parrot/Test.pm: Env.pm on 5.005_03 doesn't do a use vars for
2112         you
2114 2002-02-01 13:22  nicholas
2116         * MANIFEST: Add docs/embed.pod and t/op/ifunless.t
2118 2002-02-01 12:19  simon
2120         * core.ops, t/op/ifunless.t, t/op/integer.t:
2121         Added "unless" op.
2123 2002-02-01 12:11  simon
2125         * lib/Parrot/Test.pm:
2126         Remove a warning.
2128 2002-02-01 01:38  nicholas
2130         * MANIFEST, MANIFEST.SKIP, Makefile.in: Add a MANIFEST.SKIP file,
2131         and a manitest target to Makefile.in that lets one test the
2132         manifest.
2134 2002-02-01 00:03  dan
2136         * core.ops, global_setup.c, include/parrot/pmc.h: More setup for
2137         PMC dynaloading
2139 2002-01-31 21:46  gregor
2141         * Configure.pl, Makefile.in, hints/mswin32.pl:
2142         A few more things are now configable, so we are closer to win32
2143         shared library builds. Not there yet, but closer.
2145 2002-01-31 21:00  dan
2147         * global_setup.c, classes/pmc2c.pl, include/parrot/global_setup.h,
2148         include/parrot/pmc.h: First step in dynamically loading PMC classes
2150 2002-01-31 19:38  dan
2152         * Makefile.in: Dependencies in the Makefile are currently too broad
2153         brush.  I don't enjoy waiting for everything to recompile every
2154         time I try to tweak the jit. The only file that #includes
2155         jit_struct.h is jit.c, so I feel that the Makefile dependencies
2156         should reflect this, and not cause a gratuitous recompile of
2157         everything.  There are probably other auto-generated header files
2158         that world+dog should not depend on.
2160         Courtesy of  Nicholas Clark <nick@unfortu.net>
2162 2002-01-31 19:03  gregor
2164         * Makefile.in, lib/Parrot/Test.pm, t/harness:
2165         Added two new make targets:
2167           * testp: Like 'make test', but passes -P to t/harness, so you get
2168         to
2169             see how broken predereferencing is.
2171           * testj: Like 'make test', but passes -j to t/harness, so you get
2172         to
2173             see how broken JIT is.
2175         Now, anyone who wants to see how good all three ways of running are
2176         can do so, at the cost of about 3x the time.
2178 2002-01-31 17:09  brentdax
2180         * embed.c, test_main.c: Implement the ARGV-in-P0 thing.
2182 2002-01-31 03:41  grunblatt
2184         * docs/jit.pod: Update jit.pod
2186 2002-01-31 03:20  grunblatt
2188         * jit/i386/core.jit: Hold this until we get an assemble tool,
2189         because of the different objdump problems.
2191 2002-01-31 03:13  grunblatt
2193         * Configure.pl, lib/Parrot/Jit/sun4-solaris.pm,
2194         lib/Parrot/Jit/sun4Generic.pm: Use dis intead of objdump.  Courtesy
2195         of: Jason Gloudon <perl@gloudon.com>
2197 2002-01-31 02:22  grunblatt
2199         * jit/i386/core.jit: Continue if the register is null
2201 2002-01-30 23:50  grunblatt
2203         * lib/Parrot/Jit/: alpha-bsd.pm, alpha-linux.pm, alphaGeneric.pm,
2204         i386-bsd.pm, i386-linux.pm, i386Generic.pm, sun4-solaris.pm,
2205         sun4Generic.pm: Move the AS and OBJDUMP constants to each os
2206         specific file.
2208 2002-01-30 23:35  mrjoltcola
2210         * io/io_win32.c: Change implementation of isatty on win32,
2211         suggested by Hong Zhang.
2213 2002-01-30 23:19  sfink
2215         * jit2h.pl, lib/Parrot/Op.pm, lib/Parrot/OpsFile.pm: Added
2216         Op::may_jump boolean method.
2218         Replaced jit2h's hardcoded pattern match to decide what ops might
2219         change the control flow.
2221 2002-01-30 22:13  dan
2223         * Configure.pl, MANIFEST, testparrotfuncptr.c: This patch allows
2224         parrot to mostly-build with tcc.  It allows one to skip compiling
2225         the JIT stuff (by specifying --define jitcapable=0), and it
2226         introduces a test program which gives a friendlier error in this
2227         case for compilers which are as picky as tcc is about function
2228         pointer conversion.
2230         If anyone figures out the proper way to cast these function
2231         pointers this may not be necessary.
2233         Courtesy of Josh Wilmes <josh@hitchhiker.org>
2235 2002-01-30 20:54  dan
2237         * docs/running.pod, lib/Parrot/Test.pm: I'm being anal again.
2238         Here's an update to docs/running.pod to better reflect the current
2239         state (both the test_parrot and assemble.pl improvements, plus
2240         documentation of a few more things.) And also a speling fiks
2241         s/POST_MORTERM/POST_MORTEM/.
2243         I could also replace some "perl foo" calls with "./foo" if someone
2244         wanted to set the executable flag in CVS on assemble.pl,
2245         optimize.pl, etc.
2247         Courtesy of Steve Fink <steve@fink.com>
2249 2002-01-30 20:43  dan
2251         * core.ops: find_global doesn't work, so stub out the wrong code
2253 2002-01-30 19:08  dan
2255         * lib/Parrot/Assembler.pm:  fixes the POD in Parrot::Assember so
2256         that perldoc
2257          can read it and just tidies it up generally. It also adds
2258         documentation
2259          for the constantize_integer and constantize_number functions.
2261         Courtesy of Simon Glover <scog@roe.ac.uk>
2263 2002-01-30 18:02  dan
2265         * assemble.pl, disassemble.pl, optimizer.pl, pbc2c.pl,
2266         classes/genclass.pl, classes/pmc2c.pl,
2267         languages/scheme/Scheme/Test.pm:  Many of the Perl scripts in the
2268         distribution (including assemble.pl !)
2269          can no longer find the Parrot::* modules. Enclosed patch fixes
2270         (although
2271          it would be nice if there were an easier way to do this).
2273         Courtesy of  Simon Glover <scog@roe.ac.uk>
2275 2002-01-30 16:00  mrjoltcola
2277         * io/io_win32.c: Correct function calls for win32_fdopen and arg
2278         types.
2280 2002-01-30 15:50  mrjoltcola
2282         * io/io_unix.c: Minor bug fix for fdopen flag arg type.
2284 2002-01-30 15:42  grunblatt
2286         * pbc2c.pl, examples/assembly/Makefile: Updates related to moving
2287         files around
2289 2002-01-30 15:38  grunblatt
2291         * MANIFEST: Enclosed patch adds the new SPARC-based JIT files to
2292         the manifest,  and also puts it back into alphabetical order.
2294         Courtesy of: Simon Glover <scog@roe.ac.uk>
2296 2002-01-30 14:41  nicholas
2298         * embed.c: Patch from Simon Glover to clean up warnings where
2299         prototype is () not (void)
2301 2002-01-30 13:54  nicholas
2303         * include/parrot/embed.h, test_main.c: Add void as an explicit
2304         parameter in test_main.c's usage(), version(void) and embed.h's
2305         Parrot_new() Without these gcc moans: include/parrot/embed.h:34:
2306         warning: function declaration isn't a prototype
2308 2002-01-30 12:08  simon
2310         * lib/Parrot/.cvsignore:
2311         Ignore generated Perl modules.
2313 2002-01-30 12:07  simon
2315         * t/harness:
2316         Run the PMC tests as well.
2318 2002-01-30 12:04  simon
2320         * MANIFEST:
2321         Fix MANIFEST after recent t/pmc rejig.
2323 2002-01-30 11:42  simon
2325         * lib/Parrot/Test.pm:
2326         Report non-zero exit codes.
2328         Courtesy of: Michael G Schwern <schwern@pobox.com>
2330 2002-01-30 11:39  simon
2332         * t/op/rx.t:
2333         Skip final test, TODO doesn't work yet.
2335 2002-01-30 09:54  brentdax
2337         * docs/embed.pod: Leon Brocard was kind enough to explain to me how
2338         predereferencing works.
2340 2002-01-30 09:38  brentdax
2342         * docs/: embed.pod, parrot.pod: Document this newfangled embedding
2343         subsystem.
2345 2002-01-30 09:37  brentdax
2347         * include/parrot/embed.h: Fix a mistake, clear up a warning.
2349 2002-01-30 09:37  brentdax
2351         * config_h.in: Expose another flag for embedders.
2353 2002-01-30 05:07  jgoff
2355         * make_vtable_ops.pl, t/harness: Both files didn't know of the new
2356         location for Parrot/, and t/harness wasn't able to run the new
2357         op/pmc tests. Both problems fixed, so I think I'm going to declare
2358         the build suitable for public consumption.
2360 2002-01-30 04:34  robert
2362         * docs/Makefile.in: update for CVS movement
2364 2002-01-30 04:32  robert
2366         * Makefile.in: Adjust for CVS reorganization.  (This time, edit the
2367         .in file, not the real Makefile)
2369 2002-01-30 04:20  robert
2371         * Configure.pl, jit2h.pl, ops2c.pl, ops2pm.pl, pmc_pm.pl,
2372         vtable_h.pl, classes/pmc2c.pl, include/parrot/parrot.h: Updates
2373         related to moving files around
2375 2002-01-30 04:10  robert
2377         * MANIFEST: Update MANIFEST to reflect CVS reorg.
2379 2002-01-30 04:07  robert
2381         * Configure.pl: Add './lib' to our @INC because Parrot/* moved.
2383 2002-01-30 03:56  robert
2385         * Parrot/: .cvsignore, Assembler.pm, BuildUtil.pm, Op.pm,
2386         OpTrans.pm, OpsFile.pm, Optimizer.pm, PackFile.pm, String.pm,
2387         Test.pm, Vtable.pm, Jit/alpha-bsd.pm, Jit/alpha-linux.pm,
2388         Jit/alphaGeneric.pm, Jit/i386-bsd.pm, Jit/i386-linux.pm,
2389         Jit/i386-nojit.pm, Jit/i386Generic.pm, Jit/sun4-solaris.pm,
2390         Jit/sun4Generic.pm, OpLib/.cvsignore, OpTrans/C.pm,
2391         OpTrans/CGoto.pm, OpTrans/CPrederef.pm, PackFile/ConstTable.pm,
2392         PackFile/Constant.pm, PackFile/FixupTable.pm: Moved Parrot/* to
2393         lib/Parrot/
2395 2002-01-30 03:46  robert
2397         * languages/miniperl/miniperlc: renamed to mpc
2399 2002-01-30 03:45  robert
2401         * t/op/: pmc.t, pmc_array.t, pmc_perlarray.t, pmc_perlhash.t,
2402         pmc_perlstring.t: Moved to t/op/pmc/
2404 2002-01-30 03:40  robert
2406         * include/parrot/register_funcs.h: Renamed to regfuncs.h
2408 2002-01-30 03:14  jgoff
2410         * classes/perlarray.pmc, t/op/pmc_perlarray.t, t/pmc/perlarray.t:
2411         Fixed some problems with PerlArray and added tests.  Previously,
2412         only integers could be accessed by negative indices.  After this
2413         change, all basic types can be accessed by negative indices, and
2414         they can also be set at negative indices.
2416 2002-01-29 22:13  brentdax
2418         * TODO: Just look at the stupid diff.
2420 2002-01-29 21:53  simon
2422         * TODO, docs/vtables.pod:
2423         New TODO, and tiny addition to vtables.pod
2425 2002-01-29 21:47  mrjoltcola
2427         * include/parrot/io.h, io/io_unix.c: Minor bug fix in io_unix.
2429 2002-01-29 21:38  mrjoltcola
2431         * Makefile.in: Makefile.in tweak for io depend.
2433 2002-01-29 21:15  brentdax
2435         * embed.c: Fix a segfault and some profiling formatting nits.
2437 2002-01-29 20:54  brentdax
2439         * pmc.c: Oops.
2441 2002-01-29 20:50  brentdax
2443         * pmc.c, include/parrot/exceptions.h: Exceptions are better than
2444         segfaults.
2446 2002-01-29 20:17  mrjoltcola
2448         * interpreter.c, core.ops, io.ops: CVS missed this.
2450 2002-01-29 20:17  mrjoltcola
2452         * io/io.c: These should have gone in Sunday with the rest. CVS is
2453         out to get me.
2455 2002-01-29 18:39  brentdax
2457         * platforms/win32.h: Fix Win32 whoops.
2459 2002-01-29 18:29  brentdax
2461         * embed.c, include/parrot/embed.h: A couple minor embedding fixes.
2463 2002-01-29 17:51  simon
2465         * MANIFEST, Makefile.in, config_h.in, embed.c, test_main.c,
2466         include/parrot/embed.h, include/parrot/parrot.h:
2467         Embedding support. Cool.
2469         Courtesy of: <brentdax@cpan.org>
2471 2002-01-29 15:40  grunblatt
2473         * Configure.pl: Detect if we can use "objdump".  Courtesy of: Jason
2474         Gloudon <perl@gloudon.com>
2476 2002-01-29 14:42  simon
2478         * include/parrot/parrot.h:
2479         Platform stuff has to be included *after* system headers.
2481 2002-01-29 14:05  grunblatt
2483         * interpreter.c, jit.c, Parrot/Jit/sun4-solaris.pm,
2484         Parrot/Jit/sun4Generic.pm, lib/Parrot/Jit/sun4-solaris.pm,
2485         lib/Parrot/Jit/sun4Generic.pm, include/parrot/jit.h,
2486         jit/sun4/core.jit, jit/sun4/lib.jit, jit/sun4/string.jit: Added
2487         support for SPARC.  Courtesy of: Jason Gloudon <perl@gloudon.com>
2489 2002-01-29 10:56  simon
2491         * platforms/generic.h:
2492         If we don't have a S_ISREG, produce something close to it.
2494 2002-01-29 06:01  dan
2496         * MANIFEST, README, LICENSES/Artistic: Finally added licenses
2498 2002-01-29 04:38  jgoff
2500         * classes/array.pmc: Forgot to remove some C++-isms from the
2501         get_{foo}_index routines.
2503 2002-01-29 04:26  jgoff
2505         * MANIFEST, Makefile.in, global_setup.c, classes/Makefile.in,
2506         classes/array.pmc, include/parrot/pmc.h, t/op/pmc_array.t,
2507         t/pmc/array.t: Added array class that languages other than perl can
2508         use for a basis.  It has no features like preextension, and the
2509         array index starts at 0.
2511         MANIFEST - added classes/array.pmc and t/op/pmc_array.t Makefile.in
2512         and classes/Makefile.in - Added array.pmc to the makefile.
2513         (Assuming rules like .pmc.o are portable (or even possible) I might
2514         alter classes/Makefile.in to autobuild the appropriate files.
2516 2002-01-29 02:32  dan
2518         * MANIFEST, Parrot/Test.pm, lib/Parrot/Test.pm,
2519         lib/Test/Builder.pm, lib/Test/More.pm, lib/Test/Simple.pm,
2520         lib/Test/Utils.pm, t/op/interp.t, t/op/macro.t, t/op/pmc.t,
2521         t/op/rx.t, t/op/stacks.t, t/pmc/pmc.t:
2522             Update to Test::More 0.41 which adds Test::Builder
2524             Delete the vestigal Test::Utils
2526             Change Parrot::Test so it uses Test::Builder instead of Evil
2527         Wrappers
2528             around Test::More
2530             output_* now returns whether the test passes or fails
2532             Parrot::Test no longer exports Test::More's functions.  Instead
2533         they
2534             can simply be used together.  The few tests which used
2535         Test::More
2536             features (ie. skip) have 'use Test::More' added.
2538             I ditched the export_to_level() crutch.  Do we expect parrot to
2539         work on
2540             5.004?  (literally 5.004, not 5.004_04)
2542         Courtesy of Michael G Schwern <schwern@pobox.com>
2544 2002-01-28 21:04  dan
2546         * docs/overview.pod:  There is no opcodes.pod; I'm assuming the
2547         pointer should actually be to
2548          parrot_assembly.pod, as the canonical documentation.
2550         Courtesy of Simon Glover <scog@roe.ac.uk>
2552 2002-01-28 20:21  dan
2554         * languages/jako/jakoc, t/op/stacks.t: Toss the last traces of
2555         clone[inps]
2557 2002-01-28 19:18  dan
2559         * core.ops, register.c: clone[insp] is dead
2561 2002-01-28 17:46  grunblatt
2563         * Parrot/Jit/i386Generic.pm, lib/Parrot/Jit/i386Generic.pm,
2564         jit/i386/core.jit: Fix to make the jit work in linux yet again.
2566 2002-01-28 16:45  dan
2568         * MANIFEST, README.OS_X: Added Mac OS X specific readme documenting
2569         the requirement for fink at the moment.
2571 2002-01-28 15:59  simon
2573         * test_main.c:
2574         People might try and run a directory file, with spectacular
2575         results.  We don't want that. No.
2577 2002-01-28 14:58  doughera
2579         * core.ops: Avoid C++-style comments.
2581 2002-01-28 14:16  grunblatt
2583         * jit.c, io/io.c: Changed jit.c to fit the way registers are
2584         accessed.  Readded the pio_(stdin|stdout|stderr) to make builds
2585         work again.
2587 2002-01-28 13:47  doughera
2589         * include/parrot/register.h: Avoid C++-style comment.
2591 2002-01-28 06:03  dan
2593         * MANIFEST, core.ops, interpreter.c, key.c, register.c, trace.c,
2594         Parrot/OpTrans/C.pm, Parrot/OpTrans/CGoto.pm,
2595         lib/Parrot/OpTrans/C.pm, lib/Parrot/OpTrans/CGoto.pm,
2596         docs/parrot_assembly.pod, include/parrot/interpreter.h,
2597         include/parrot/parrot.h, include/parrot/regfuncs.h,
2598         include/parrot/register.h, include/parrot/register_funcs.h,
2599         include/parrot/string.h, include/parrot/string_funcs.h: Registers
2600         are now stored in the interpreter structure itself, rather than
2601         just a pointer to the top of the register structure. Pushes and
2602         pops now involve memcpys, but register access has one fewer
2603         dereference.
2605         Fails four of the register stack tests, though, so not perfect.
2606         Needs fixing, but this is a good place to start.
2608 2002-01-28 04:40  mrjoltcola
2610         * test_main.c: cvs commit missed this. ??
2612 2002-01-28 04:27  mrjoltcola
2614         * examples/assembly/io1.pasm, include/parrot/exceptions.h,
2615         include/parrot/interpreter.h, include/parrot/io.h, io/io.c,
2616         io/io_stdio.c, io/io_unix.c, io/io_win32.c: ParrotIO local to each
2617         interpreter now (at least in theory).  IO handle array added.  Misc
2618         bug fixes in layer handling.  Changed any IO_ constants to PIO_ so
2619         we don't conflict         with system libraries.  Still have broken
2620         stuff in win32 and stdio layer.
2622 2002-01-28 04:01  mrjoltcola
2624         * include/parrot/chartype.h: Typo in chartype.h include guard.
2626 2002-01-28 03:41  mrjoltcola
2628         * t/op/interp.t: Fix flag for interp so we don't get "info"
2629         messages which break tests.
2631 2002-01-28 01:54  dan
2633         * include/parrot/string.h: A few more buffer/string flags
2635 2002-01-27 11:33  nicholas
2637         * chartypes/unicode.c: Cast unsigned argument to int in call to
2638         isdigit to silence gcc warning.
2640 2002-01-26 23:18  grunblatt
2642         * Parrot/Jit/i386Generic.pm, lib/Parrot/Jit/i386Generic.pm: Turn
2643         off that flag.
2645 2002-01-26 23:17  grunblatt
2647         * Parrot/Jit/i386Generic.pm, lib/Parrot/Jit/i386Generic.pm,
2648         jit/i386/core.jit: [no log message]
2650 2002-01-26 22:18  simon
2652         * jit/i386/core.jit:
2653         Jumping to 0x0 is a recipe for segfaults.
2655 2002-01-26 18:35  simon
2657         * t/harness:
2658         Allow user to select which tests to harness
2660         Courtesy of: Nicholas Clark <nick@unfortu.net>
2662 2002-01-26 17:20  grunblatt
2664         * Parrot/Jit/i386-linux.pm, Parrot/Jit/i386Generic.pm,
2665         lib/Parrot/Jit/i386-linux.pm, lib/Parrot/Jit/i386Generic.pm: Patch
2666         to make the jit work in linux again.
2668 2002-01-26 16:52  dan
2670         * Configure.pl, hints/darwin.pl: Add -Wno-shadow, as Darwin's
2671         headers can't cope with this. Darwin-only
2673 2002-01-26 16:04  dan
2675         * include/parrot/parrot.h: Quick note to remind folks that this
2676         isn't the file they're looking for if they're writing extensions or
2677         embedding parrot.
2679         Courtesy of Andy Dougherty <doughera@lafayette.edu>
2681 2002-01-26 00:41  mrjoltcola
2683         * MANIFEST: Oopsy.
2685 2002-01-26 00:37  mrjoltcola
2687         * docs/ParrotFAQ.htm: Parrot FAQ : Created and maintained by Adam
2688         Turoff
2690 2002-01-25 01:31  grunblatt
2692         * jit/alpha/core.jit: There is no neg or fneg.
2694 2002-01-25 01:27  grunblatt
2696         * core.ops, Parrot/Jit/alphaGeneric.pm, Parrot/Jit/i386Generic.pm,
2697         lib/Parrot/Jit/alphaGeneric.pm, lib/Parrot/Jit/i386Generic.pm,
2698         jit/alpha/core.jit, jit/i386/core.jit, t/op/integer.t,
2699         t/op/number.t: Added Parrot_neg.  Erase t.s
2701 2002-01-24 23:26  dan
2703         * interpreter.c: Best make sure unused elements are NULL
2705 2002-01-24 23:24  dan
2707         * interpreter.c: Fix stupid thinko
2709 2002-01-24 18:37  doughera
2711         * Makefile.in: Add a few missing dollar signs in the lifetest
2712         section so that ${exe} and the like get properly interpolated.
2714 2002-01-24 18:15  mrjoltcola
2716         * docs/: .cvsignore, Makefile.in, parrot.pod: Fix pod generation
2717         for io.ops file. Add reference to it in parrot.pod.  Courtesy of
2718         Simon Glover <scog@roe.ac.uk>
2720 2002-01-24 06:43  mrjoltcola
2722         * io/io_stdio.c: Oops.
2724 2002-01-24 06:34  mrjoltcola
2726         * include/parrot/io.h, io/TODO, io/io.c, io/io_stdio.c: Did a bit
2727         of work on the buffering layer.  Decided to use shared read/write
2728         buffer (as do most implementations) for now since its the simplest
2729         way to keep everything synced, (flush on seeks, flush read on
2730         writes, etc.)
2732 2002-01-24 03:38  mrjoltcola
2734         * test_main.c: Cleaned up option handling code a bit for main().
2736 2002-01-23 23:22  dan
2738         * interpreter.c, include/parrot/interpreter.h,
2739         include/parrot/resources.h: Now each interpreter gets its own hash
2740         for globals.
2742 2002-01-23 20:45  dan
2744         * Configure.pl: Fix a warning when there's no - in an architecture
2746 2002-01-22 23:57  grunblatt
2748         * docs/running.pod: [no log message]
2750 2002-01-22 20:29  doughera
2752         * KNOWN_ISSUES: long doubles don't work on SPARC either.  It
2753         appears to be a generic problem (if sizeof(long double) >
2754         sizeof(double)), not an x86-specific one.
2756 2002-01-22 16:57  doughera
2758         * runops_cores.c: Change variable name from time to starttime to
2759         avoid gcc warning about variable name shadowing.
2761 2002-01-22 16:55  doughera
2763         * classes/pmc2c.pl: Include class_init prototype too.
2765 2002-01-22 16:01  doughera
2767         * MANIFEST: [no log message]
2769 2002-01-22 01:04  ajgough
2771         * global_setup.c, classes/default.pmc, classes/intqueue.pmc,
2772         classes/parrotpointer.pmc, classes/perlarray.pmc,
2773         classes/perlhash.pmc, classes/perlint.pmc, classes/perlnum.pmc,
2774         classes/perlstring.pmc, classes/perlundef.pmc, classes/pmc2c.pl,
2775         include/parrot/global_setup.h: Patch from Nick Clark to quieten
2776         warnings from pmc files.  Message-ID:
2777         <20020121224719.GE1726@Bagpuss.unfortu.net>
2779 2002-01-22 00:53  ajgough
2781         * test_main.c: Clears up a couple of warnings in test_main.c.
2782         Thanks to Nick Clark.  Message-ID:
2783         <20020121190457.GB1726@Bagpuss.unfortu.net>
2785 2002-01-22 00:47  ajgough
2787         * string.c, chartypes/unicode.c, chartypes/usascii.c,
2788         include/parrot/chartype.h: Cause all codepoints to be treated as
2789         UNITVALS, and get_digit to return INTVAL, just in case. (Thanks to
2790         Nick Clark, see also: Message-ID:
2791         <20020121214137.GC2371@Bagpuss.unfortu.net> )
2793 2002-01-22 00:24  dan
2795         * key.c: We do mandate an ANSI conformant C compiler, don't we?
2797         Appended patch cures these warnings:
2799         key.c: In function `debug_key': key.c:29: warning: int format,
2800         INTVAL arg (arg 3) key.c:33: warning: int format, INTVAL arg (arg
2801         3) key.c:33: warning: int format, INTVAL arg (arg 4) key.c:36:
2802         warning: int format, INTVAL arg (arg 3) key.c:36: warning: int
2803         format, INTVAL arg (arg 4)
2805         Courtesy of Nicholas Clark <nick@unfortu.net>
2807 2002-01-21 12:41  mrjoltcola
2809         * MANIFEST, io.ops: For some reason cvs commit didn't get this, may
2810         be clock skew.
2812 2002-01-21 06:37  mrjoltcola
2814         * io/io.c: Cleanup a warning
2816 2002-01-21 06:28  mrjoltcola
2818         * examples/assembly/io1.pasm, include/parrot/io.h, io/io.c,
2819         io/io_stdio.c, io/io_unix.c, io/io_win32.c: Added 32/64 bit seek
2820         ops. Various other IO twiddlings.
2822 2002-01-21 03:25  grunblatt
2824         * Makefile.in: Use $jitcpuarch instead of $cpuarch.  Thanks to
2825         Melvin Smith for the catch up.
2827 2002-01-20 23:13  sfink
2829         * stacks.c: Fixed logic errors, need tests
2831 2002-01-20 22:17  brentdax
2833         * rx.c, rx.ops, include/parrot/rx.h, t/op/rx.t: Make /m work and
2834         prepare for /i to work.
2836 2002-01-20 20:52  grunblatt
2838         * Configure.pl, MANIFEST, Makefile.in, interpreter.c, jit.c,
2839         jit2h.pl, Parrot/Jit/alpha-bsd.pm, Parrot/Jit/alpha-linux.pm,
2840         Parrot/Jit/alphaGeneric.pm, Parrot/Jit/i386-bsd.pm,
2841         Parrot/Jit/i386-linux.pm, lib/Parrot/Jit/alpha-bsd.pm,
2842         lib/Parrot/Jit/alpha-linux.pm, lib/Parrot/Jit/alphaGeneric.pm,
2843         lib/Parrot/Jit/i386-bsd.pm, lib/Parrot/Jit/i386-linux.pm,
2844         Parrot/Jit/i386Generic.pm, lib/Parrot/Jit/i386Generic.pm,
2845         include/parrot/jit.h, jit/alpha/core.jit, jit/alpha/lib.jit,
2846         jit/alpha/string.jit:
2847         - Added support for ALPHA, by now linux and bsd.
2849         - Reduced jit2h.pl execution time by precompiling the call to the
2850         unimplemented op.
2852         - Reduced the duplicated code in Parrot/Jit/*.pm by adding
2853         Parrot/Jit/${cpuarch}Generic.pm
2855         - Changed the way to detect quads to what is written in "man
2856         perlfunc".
2858 2002-01-20 17:23  brentdax
2860         * rx.ops: There's no such thing as rx_allocateinfo.
2862 2002-01-19 08:26  brentdax
2864         * pbc2c.pl: Stop this stupid "hard-code the new oplib" stuff.
2866 2002-01-19 07:12  mrjoltcola
2868         * MANIFEST, core.ops, io.ops, pbc2c.pl: Separate pure ParrotIO ops
2869         into io.ops, leave the STDIO wrappers        in core.ops until they
2870         disappear.  Added debug op for switching on VM debug flag
2872 2002-01-19 01:55  mrjoltcola
2874         * include/parrot/io.h, io/TODO, io/io.c, io/io_stdio.c,
2875         io/io_unix.c, io/io_win32.c: Added a few more Win32 layer calls
2877 2002-01-19 00:55  brentdax
2879         * Makefile.in, rx.c, rx.ops, rxstacks.c, include/parrot/rx.h,
2880         include/parrot/rxstacks.h: Add regex-specific stacks for
2881         efficiency.
2883 2002-01-18 23:58  dan
2885         * Configure.pl: I think the optimal fix here is simply to remove
2886         -ansi -pedantic.  -ansi may well have some uses, but even the gcc
2887         man pages say "There is no reason to use this option [-pedantic];
2888         it exists only to satisfy pedants."
2890         Courtesy of Andy Dougherty <doughera@lafayette.edu>
2892 2002-01-18 23:23  dan
2894         * MANIFEST, docs/parrot.pod, docs/running.pod: This patch add
2895         docs/running.pod, which lists the various executables Parrot
2896         currently includes, examples of running them, and mentions of where
2897         they fail to work. It's more of a cry for help than a useful
2898         reference. :-) I've been having trouble recently when making
2899         changes in figuring out whether I broke anything, because any
2900         non-default way of running the system seems to be already broken. I
2901         can't tell what brokenness is expected and what isn't.
2903         Courtesy of  Steve Fink <steve@fink.com>
2905 2002-01-15 22:13  brentdax
2907         * include/parrot/rx.h, rx.c, rx.ops: Remove the last vestiges of
2908         substring use and enhance performance.
2910 2002-01-15 21:03  ajgough
2912         * string.c: Fix problem with string_transcode, &dest not being
2913         updated if src was already in desired encoding.
2915 2002-01-15 16:54  brentdax
2917         * rx.c, rx.ops, include/parrot/rx.h: Hunt down and destroy
2918         warnings.  Leaves only one warning, at rx.ops line 409, that I
2919         can't manage to get rid of.
2921 2002-01-15 16:50  dan
2923         * pbc2c.pl: Pointer arithmetic not quite right in the generated
2924         code.  Also patches pbc2c.pl to work with rx.ops.
2926         Courtesy of Jason Gloudon <perl@gloudon.com>
2928 2002-01-15 16:15  dan
2930         * classes/Makefile.in: All the C files in classes/ weren't being
2931         compiled with an of the gcc warnings flags. With this patch they
2932         are, and there are an awful lot of warnings, more than I could hope
2933         to understand and clear up (within any sensible time period before
2934         submitting a rash of patches, by which time everyone else would
2935         have moved the code on)
2937         Courtesy of Nicholas Clark <nick@unfortu.net>
2939 2002-01-15 16:10  dan
2941         * core.ops, ops2c.pl, Parrot/Op.pm, Parrot/OpTrans.pm,
2942         Parrot/OpsFile.pm, lib/Parrot/Op.pm, lib/Parrot/OpTrans.pm,
2943         lib/Parrot/OpsFile.pm, Parrot/OpTrans/C.pm,
2944         Parrot/OpTrans/CGoto.pm, Parrot/OpTrans/CPrederef.pm,
2945         lib/Parrot/OpTrans/C.pm, lib/Parrot/OpTrans/CGoto.pm,
2946         lib/Parrot/OpTrans/CPrederef.pm, chartypes/unicode.c,
2947         chartypes/usascii.c: This patch adds a few more macros for .ops
2948         files to use. In addition to the existing
2950          goto OFFSET(...)
2951          goto ADDRESS(...)
2952          goto POP()
2953          goto NEXT()
2955         it adds
2957          expr OFFSET(...)
2958          expr ADDRESS(...)
2959          expr POP()
2960          expr NEXT()
2962         This is intended mainly for use in helper functions in .ops files,
2963         but also for ops that need to eg push the address of the next
2964         opcode onto a stack. The only place this currently happens (outside
2965         of my private code) is in the bsr opcode, which previously
2966         hardcoded the computation.
2968         This patch also makes ops2c.pl move the CUR_OPCODE #define a bit
2969         higher in the generated file so that it can be used by static
2970         functions in the preamble.
2972         Finally, I ran into a parentheses matching problem -- should goto
2973         OFFSET(...) rewrite    \bgoto\s+OFFSET\((.*)\) or
2974         \bgoto\s+OFFSET\((.*?)\)
2976         It was done inconsistently for the different calculations, and of
2977         course neither are correct because you really want matching
2978         parentheses. But that seems like too much bother. (Currently,
2979         there's only one place that uses anything other than $n in the
2980         parentheses, and that's the enternative() op.) So I made them all
2981         .*? but emulated recent POD by also allowing (( ... )) (that's two
2982         parenthesis with a space padding the body.)
2984         The generated core_ops.c and core_ops_prederef.c files after this
2985         patch are identical except for the CUR_OPCODE and REL_PC macros
2986         getting moved a little higher, and the bsr in the regular path (not
2987         prederef) uses 'CUR_OPCODE' instead of the hardcoded 'cur_opcode'.
2989         In summary, this is a big wad of meaningless changes for the
2990         current code. But it will make adding some opcodes easier in the
2991         future, and cleans up a small nit in the current bsr.
2993         Courtesy of Steve Fink <steve@fink.com>
2995 2002-01-15 08:48  brentdax
2997         * include/parrot/rx.h: Bitmaps can now include chars >255 (well,
2998         sort of).
3000 2002-01-15 08:45  brentdax
3002         * rx.c, rx.ops: Bitmaps can now include chars >255 (well, sort of).
3004 2002-01-15 05:00  brentdax
3006         * rx.ops: Speed up rx_literal--roughly doubles benchmark
3007         performance.
3009 2002-01-14 20:18  dan
3011         * vtable.tbl, vtable_h.pl: Clean up a zillion warnings
3013         Courtesy of Nicholas Clark <nick@unfortu.net>
3015 2002-01-14 20:03  dan
3017         * Configure.pl, MANIFEST, Makefile.in, core.ops, exceptions.c,
3018         global_setup.c, interpreter.c, key.c, ops2c.pl, register.c,
3019         runops_cores.c, rx.ops, stacks.c, string.c, test_main.c, trace.c,
3020         chartypes/unicode.c, chartypes/usascii.c, classes/default.pmc,
3021         classes/parrotpointer.pmc, classes/perlarray.pmc,
3022         classes/perlhash.pmc, classes/perlint.pmc, classes/perlnum.pmc,
3023         classes/perlstring.pmc, classes/perlundef.pmc,
3024         encodings/singlebyte.c, encodings/utf16.c, encodings/utf32.c,
3025         encodings/utf8.c, include/parrot/exceptions.h, include/parrot/io.h,
3026         include/parrot/parrot.h, include/parrot/rx.h, io/io_stdio.c,
3027         io/io_win32.c, platforms/win32.c, platforms/win32.h, t/op/pmc.t,
3028         t/op/pmc_perlhash.t, t/op/rx.t, t/pmc/perlhash.t, t/pmc/pmc.t: This
3029         patch cleans up most of the MSVC-warnings when using warning level
3030         4 (the highest, one above the default level 3). It turns off two
3031         level-4 warnings for 'unreferenced formal parameter' and 'named
3032         type definition in parentheses', the latter of which was turning up
3033         warnings in MS VC headers.  Level 4 warnings also helped me find a
3034         couple of other lurking bugs in the parrot code.
3036         Replaces the various fprintf/exit combos with calls to
3037         internal_exception, which uses var_args to emulate printf. Various
3038         exception types were added as well. These are probably temporary
3039         until a real exception system arrives.
3041         Fixed some places in the IO code where wrong functions were being
3042         called, or put into the vtable.
3044         Courtesy of "Michel Lambert" <mlambert@legendent.com>
3046 2002-01-14 19:00  dan
3048         * MANIFEST: D'oh! Forgot a file.
3050         Courtesy of Andy Dougherty <doughera@lafayette.edu>
3052 2002-01-14 18:44  brentdax
3054         * rx.c, rx.ops, include/parrot/rx.h: Use bitmaps where it makes
3055         sense (and a few other enhancements to regexes).
3057 2002-01-14 07:07  brentdax
3059         * interpreter.c, runops_cores.c, test_main.c,
3060         include/parrot/interpreter.h: Make profiling a little more useful.
3062 2002-01-13 19:44  dan
3064         * Configure.pl: Turn off unsed things warnings for now
3066 2002-01-13 19:39  dan
3068         * key.c, classes/perlarray.pmc: key.c:   intialize KEY.keys
3070         classes/perlarray.c:  * get_string: is casting
3071         SELF->cache.struct_val to a STRING*,    while all other methods are
3072         using it as a KEY*; don't know    what a perlarray stringifies to,
3073         so replacing with NULL  * get_bool: the default behaviour does not
3074         look right to me
3076         Courtesy of "Mattia Barbon" <mbarbon@dsi.unive.it>
3078 2002-01-13 19:37  dan
3080         * Makefile.in, classes/Makefile.in: Makefile.in:   (Re)add ld_debug
3081         flags to LDFLAGS, so that Configure.pl --debugging   works with
3082         MSVC
3084         classes/Makefile.in   make easier to add pmb2c.pl flags to all
3085         pmc2c calls
3087         Courtesy of "Mattia Barbon" <mbarbon@dsi.unive.it>
3089 2002-01-13 19:36  dan
3091         * io/io_win32.c:   according to my MSVC docs, you should use
3092         _tcslen only after
3093           #including tchar.h
3095         Courtesy of  "Mattia Barbon" <mbarbon@dsi.unive.it>
3097 2002-01-13 19:35  dan
3099         * docs/intro.pod: Doc tweak.
3101         Courtesy of Simon Glover <scog@roe.ac.uk>
3103 2002-01-13 19:34  dan
3105         * t/: op/pmc_perlstring.t, pmc/perlstring.t:  Enclosed test checks
3106         that
3108           if Px, ...
3110          works with PerlString PMCs; these should be false if they are "",
3111         0, or
3112          are undefined, and true in every other case.
3114         Courtesy of Simon Glover <scog@roe.ac.uk>
3116 2002-01-13 19:23  dan
3118         * Configure.pl, config_h.in, core.ops, classes/perlnum.pmc: Change
3119         NUMVAL_FMT to FLOATVAL_FMT.
3121         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3123 2002-01-13 17:45  jgoff
3125         * Makefile.in, global_setup.c, classes/Makefile.in,
3126         classes/intqueue.pmc, include/parrot/pmc.h, t/op/pmc.t,
3127         t/pmc/pmc.t: IntQueue is for an upcoming article on perl.com on
3128         designing your own classes.
3130 2002-01-13 08:47  simon
3132         * interpreter.c, Parrot/OpTrans/CPrederef.pm,
3133         lib/Parrot/OpTrans/CPrederef.pm:
3134         Fix bsr in prederef mode.
3136         Courtesy of: Jason Gloudon <perl@gloudon.com>
3138 2002-01-12 15:33  dan
3140         * interpreter.c, key.c, packfile.c, register.c, resources.c,
3141         string.c, encodings/singlebyte.c, encodings/utf32.c,
3142         include/parrot/parrot.h, io/io.c, io/io_stdio.c, io/io_unix.c:
3143         Silence most of the unused variable warnings.
3145         Courtesy of Nicholas Clark <nick@unfortu.net>
3147 2002-01-12 15:18  dan
3149         * rx.ops: This patch fixes a warning and also changes an 'int' to
3150         an 'INTVAL'.  All tests should pass on Solaris.
3152         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3154 2002-01-12 15:13  dan
3156         * interpreter.c, string.c, test_main.c, classes/parrotpointer.pmc,
3157         examples/assembly/life.pasm, include/parrot/interpreter.h,
3158         include/parrot/io.h, io/io.c, io/io_stdio.c, io/io_unix.c,
3159         io/io_win32.c: More IO work. (Plus some misc twiddles)
3161         Courtesy of Melvin Smith <mrjoltcola@mindspring.com>
3163 2002-01-12 01:14  dan
3165         * include/parrot/string.h: fix a missing name
3167 2002-01-12 00:39  grunblatt
3169         * include/parrot/string.h: Few typos.
3171 2002-01-12 00:16  grunblatt
3173         * jit.c, jit2h.pl, jit/i386/core.jit: Added support for opcodes
3174         that change the program control flow.
3176 2002-01-11 23:53  brentdax
3178         * classes/parrotpointer.pmc: Tell the GC to keep its hands out of a
3179         ParrotPointer's guts.
3181 2002-01-11 23:03  dan
3183         * include/parrot/string.h: flags for the buffers, for GC
3185 2002-01-11 22:31  dan
3187         * include/parrot/pmc.h: PMC flag docs. Those'd be good...
3189 2002-01-11 22:21  dan
3191         * include/parrot/pmc.h: Started with PMC flags
3193 2002-01-11 19:33  dan
3195         * config_h.in, memory.c, resources.c, string.c,
3196         include/parrot/resources.h: Beginnings of a memory allocation/gc
3197         system. Without the GC part.
3199 2002-01-11 18:05  dan
3201         * core.ops: Make sure constant pushes are right on mixed 32/64 bit
3202         systems
3204         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3206 2002-01-11 17:50  dan
3208         * core.ops, pbc2c.pl, Parrot/OpTrans/CGoto.pm,
3209         lib/Parrot/OpTrans/CGoto.pm, include/parrot/interpreter.h: Here is
3210         a patch that makes pbc2c generated code work with the bsr opcode.
3211         It creates a new opcode 'enternative', and uses this to support a
3212         mixed model of interpretation and execution of compiled C code.
3214         Courtesy of Jason Gloudon <perl@gloudon.com>
3216 2002-01-11 17:48  dan
3218         * Makefile.in: Add life as a potential .exe target
3220 2002-01-11 17:30  dan
3222         * include/parrot/resources.h: Start of arena stuff for GC
3224 2002-01-11 05:34  brentdax
3226         * rx.ops: Docs modifications.
3228 2002-01-11 04:19  brentdax
3230         * rx.ops, include/parrot/rx.h: Remove unnecessary evilness from
3231         regular expressions.
3233 2002-01-11 03:44  grunblatt
3235         * jit/i386/core.jit: off by one.
3237 2002-01-11 02:25  dan
3239         * Makefile.in, examples/assembly/life.pasm: Tweak to life benchmark
3241         Courtesy of Steve Fink <steve@fink.com>
3243 2002-01-11 00:32  brentdax
3245         * MANIFEST: Forgot to put parrotpointer.pmc in the MANIFEST.
3247 2002-01-10 23:22  ajgough
3249         * string.c, docs/strings.pod: Removed all the nul termination code,
3250         as this is in general a bad idea.  Note added to docs/strings.pod
3251         to warn people away from assuming termination.
3253 2002-01-10 23:14  dan
3255         * core.ops, interpreter.c, jit.c, rx.c, rx.ops, stacks.c,
3256         testparrotsizes_c.in, include/parrot/interpreter.h,
3257         include/parrot/rx.h, include/parrot/stacks.h: Much nicer stack
3258         implementation
3260         Courtesy of Steve Fink <steve@fink.com>
3262 2002-01-10 22:48  dan
3264         * core.ops: Fix 'basic' test 1 for sizeof(opcode_t) !=
3265         sizeof(INTVAL)
3267         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3269 2002-01-10 22:46  dan
3271         * key.c, classes/perlhash.pmc, t/op/pmc_perlhash.t,
3272         t/pmc/perlhash.t:  Well, actually two bugs.
3274          The first is an off-by-one error in key.c than can cause parrot
3275          to segfault if hash % NUM_BUCKETS happens to be zero.
3277          The other is a bug in the PerlHash init() code that causes new
3278         PerlHash
3279          PMCs to start with the wrong size.
3281          Both fixed below; also tests to prevent them recurring.
3283         Courtesy of Simon Glover <scog@roe.ac.uk>
3285 2002-01-10 22:30  dan
3287         * classes/default.pmc, classes/perlarray.pmc, t/op/pmc_perlarray.t,
3288         t/pmc/perlarray.t:  The enclosed patch allows one to use the if op
3289         with a PerlArray,
3291         Courtesy of Simon Glover <scog@roe.ac.uk>
3293 2002-01-10 21:31  dan
3295         * examples/assembly/life.pasm: Tweaked to be a benchmarkable thing
3297 2002-01-10 20:30  grunblatt
3299         * jit.c, jit2h.pl, Parrot/Jit/i386-bsd.pm,
3300         Parrot/Jit/i386-linux.pm, lib/Parrot/Jit/i386-bsd.pm,
3301         lib/Parrot/Jit/i386-linux.pm, jit/i386/core.jit, jit/i386/lib.jit:
3302         All the op codes that doesn't change the program control flow now
3303         work in the JIT by calling the code generated by the compiler when
3304         the op is not in core.jit TODO:     * Make all the ops that change
3305         the program control flow (and are not on core.jit) work.      *
3306         Remove the dispatch payload.
3308 2002-01-10 17:13  dan
3310         * classes/parrotpointer.pmc: This patch fixes parrotpointer.pmc,
3311         which tries to return 0 from a void function.
3313         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3315 2002-01-10 17:12  dan
3317         * t/op/macro.t: Skip tests, don't comment them out.
3319         Courtesy of Simon Glover <scog@roe.ac.uk>
3321 2002-01-10 17:10  dan
3323         * rx.c: This fixes a couple of nits in rx.c:
3325            1. There's no newline at the end, which makes gcc unhappy.
3326            2. We should use NULL, not 0 or "", for creating null pointers.
3328         Courtesy of Simon Glover <scog@roe.ac.uk>
3330 2002-01-10 17:09  dan
3332         * MANIFEST:  Adds rx.t, removes duplicated rx.c and puts everything
3333         back in
3334          alphabetical order.
3336         Courtesy of Simon Glover <scog@roe.ac.uk>
3338 2002-01-10 16:54  ajgough
3340         * resources.c: Made free_string check that there was a string to
3341         free.  In reponse to a bug spotted by Joshua Nye.
3343 2002-01-09 22:44  dan
3345         * global_setup.c: Forgot the setup
3347 2002-01-09 22:35  dan
3349         * rx.ops: Forgot this one
3351 2002-01-09 22:35  dan
3353         * MANIFEST, Makefile.in, rx.c, string.c, include/parrot/pmc.h,
3354         include/parrot/rx.h, t/op/rx.t: Preliminary regex implementation.
3355         Tests don't work, though.
3357         Courtesy of "Brent Dax" <brentdax@cpan.org>
3359 2002-01-09 21:48  dan
3361         * t/: op/pmc_perlarray.t, pmc/perlarray.t: Whoops, forgot that
3363 2002-01-09 21:22  dan
3365         * classes/Makefile.in, classes/parrotpointer.pmc, Makefile.in:
3366         Generic pointer holder class
3368         Courtesy of "Brent Dax" <brentdax@cpan.org>
3370 2002-01-09 21:19  dan
3372         * MANIFEST, classes/perlarray.pmc, t/op/pmc.t, t/pmc/pmc.t: Array
3373         patches.
3375 2002-01-09 19:54  dan
3377         * io/io_unix.c: Whoops. Forgot one
3379 2002-01-09 19:43  dan
3381         * key.c, classes/perlhash.pmc, t/op/pmc_perlhash.t,
3382         t/pmc/perlhash.t: Fix hash crash bugs
3384         Courtesy of Simon Glover <scog@roe.ac.uk>
3386 2002-01-09 19:13  dan
3388         * memory.c: Signedness whoops.
3390         Courtesy of Simon Glover <scog@roe.ac.uk>
3392 2002-01-09 18:23  dan
3394         * MANIFEST, Makefile.in, include/parrot/io.h, io/io.c, io/io_os.c,
3395         io/io_stdio.c, io/io_win32.c: Changes:
3397         -Minor layer cleanups -Win32 layer added (mostly stubs for now) but
3398         will be using the   Win32 API and company rather than the unix-ish
3399         fake ones.  -stdin/stdout/stderr Win32 specific code added. Rather
3400         than use   0,1,2, Microsoft says use GetStdHandle(), etc. so that
3401         stuff is   there. Soon we should be able to start using these
3402         rather than   fprintf(stderr, ...) and remove stdio linkage.
3404         Courtesy of <mrjoltcola@mindspring.com>
3406 2002-01-09 17:26  dan
3408         * test_main.c: Fixes bad code gen on x86.
3410         Courtesy of Josh Wilmes <josh@hitchhiker.org>
3412 2002-01-09 17:24  dan
3414         * Configure.pl, config_h.in, core.ops, key.c, classes/perlint.pmc,
3415         classes/perlnum.pmc: This patch adds macros to the config.h file
3416         for INTVAL and NUMVAL printf formats.
3418         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3420 2002-01-08 22:55  ajgough
3422         * docs/vtables.pod: Clarify what get_string should do.
3424 2002-01-08 20:05  dan
3426         * key.c: Keep comments in sync.
3428         Courtesy of Simon Glover <scog@roe.ac.uk>
3430 2002-01-08 19:50  dan
3432         * memory.c, include/parrot/memory.h: Need a realloc
3434 2002-01-08 17:24  gregor
3436         * .cvsignore, Configure.pl, Makefile.in:
3437         Added 'reconfig' make target and corresponding --reconfig option to
3438         Configure.pl, so its very easy to re-run Configure.pl with the last
3439         (command-line) options you passed it.
3441 2002-01-08 16:33  dan
3443         * core.ops, make_vtable_ops.pl, Parrot/OpsFile.pm,
3444         lib/Parrot/OpsFile.pm: Add in, out, and inout parameters to teh ops
3445         in core.ops. Potential help for optimizers and JITters.
3447         Courtesy of gregor@linux1.kennedytech.com
3449 2002-01-08 16:32  dan
3451         * key.c: Grab key length from the right spot
3453         Courtesy of "Peter Gibbs" <peter@emkel.co.za>
3455 2002-01-08 13:27  ajgough
3457         * test_main.c: Fix slight thinko in realloc usage for reading from
3458         stdin.
3460 2002-01-08 11:34  ajgough
3462         * test_main.c: Allow test_parrot to read bytecode stream from
3463         stdin, adds -f command line option, with "-f -" doing the stdin
3464         stuff.
3466 2002-01-08 06:34  jgoff
3468         * key.c, include/parrot/key.h: key.c - Added simple implementation
3469         of buckets.  include/parrot/key.h - Added enum_key_bucket type
3471 2002-01-08 03:21  jgoff
3473         * include/parrot/key.h: Added an undef type to the key structure,
3474         so we can delete keys without confusion.
3476 2002-01-07 22:09  dan
3478         * key.c, packfile.c, string.c, include/parrot/key.h,
3479         include/parrot/packfile.h, include/parrot/string.h: Fix whines
3480         about index being redefined
3482         Courtesy of Nick Clark
3484 2002-01-07 21:15  dan
3486         * ops2pm.pl: Don't allow the same ops lib to be included twice.
3488         Courtesy of Steve Fink <steve@fink.com>
3490 2002-01-07 20:48  dan
3492         * Parrot/Test.pm, lib/Parrot/Test.pm: Report useful info for test
3493         failures
3495         Courtesy of "Brent Dax" <brentdax@cpan.org>
3497 2002-01-07 20:43  dan
3499         * docs/intro.pod: Missing a comma
3501         Courtesy of "coral" <coral@eekeek.org>
3503 2002-01-07 20:41  dan
3505         * global_setup.c: Quiet a warning
3507         Courtesy of Simon Glover <scog@roe.ac.uk>
3509 2002-01-07 18:58  gregor
3511         * t/op/.cvsignore:
3512         Ignore intermediate test files.
3514 2002-01-07 17:01  gregor
3516         * ops2c.pl:
3517         Print a warning if an .ops file is mentioned more than once on the
3518         command line.
3520 2002-01-07 16:12  ajgough
3522         * t/: op/pmc_perlhash.t, pmc/perlhash.t: A couple more hash tests,
3523         these shouldn't fail.
3525 2002-01-07 15:15  simon
3527         * t/: op/pmc_perlhash.t, pmc/perlhash.t:
3528         Stop segfaults.
3530 2002-01-07 15:11  simon
3532         * key.c:
3533         Fix zero-termination bug in hash function.
3535 2002-01-07 13:37  ajgough
3537         * MANIFEST, t/op/pmc_perlhash.t, t/pmc/perlhash.t: Added
3538         pmc_perlhash.t, one test currently fails, one passes, yin-yang fun.
3540 2002-01-07 11:53  brentdax
3542         * Configure.pl: Fixes the + thing in prompts, plus adds a synonym
3543         (:add{foo}) and a new deleting thing (:rem{foo})
3545 2002-01-07 11:43  simon
3547         * Configure.pl:
3548         Gobble the + before concatenating.
3550 2002-01-07 03:53  dan
3552         * Makefile.in: Dependency fix for new ops setup.
3554 2002-01-07 03:33  jgoff
3556         * classes/perlarray.pmc: Add negative indices, and fix a small
3557         allocation problem.
3559 2002-01-06 23:54  ajgough
3561         * hints/os2.pl: Makes the hints file take account of ldflags and
3562         ccflags being split.  This hints file is still very specific to
3563         builds with gnu tools, but a proper solution can wait.   Thanks to
3564         Nick Burch.
3566 2002-01-06 22:12  dan
3568         * Makefile.in, ops2c.pl, Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm:
3569             -changes Parrot::OpLib::core's dependencies to reflect the new
3570         selectable ops files    -allows some of the special forms of 'goto'
3571         inside the PREAMBLE of an opcode file
3573         Courtesy of "Brent Dax" <brentdax@cpan.org>
3575 2002-01-06 19:59  simon
3577         * Makefile.in:
3578         *cough*
3580 2002-01-06 18:19  dan
3582         * classes/perlhash.pmc: Fix some type issues.
3584         Courtesy of Josh Wilmes <josh@hitchhiker.org>
3586 2002-01-06 18:03  dan
3588         * Configure.pl, Makefile.in: It adds a prompt to Configure asking
3589         for a list of opcode files to use.  The default is everything
3590         available except for obscure.ops.
3592         In addition, it makes it so that if your answer to a question
3593         starts with '+', it will concatenate it to the default.  For
3594         example:
3596         What C compiler do you want to use? [cl] +HAHAHA!!!
3598         will result in $PConfig{cc} eq "cl HAHAHA!!!".  While that example
3599         is not terribly useful, it is quite useful with things like
3600         command-line flags and the like.
3602         Finally, it contains a couple tweaks so that my syntax-highlighting
3603         editor recognizes some heredocs correctly.  :^)
3605         Courtesy of "Brent Dax" <brentdax@cpan.org>
3607 2002-01-06 17:59  dan
3609         * KNOWN_ISSUES, MANIFEST, README: Doc Patches
3611         Courtesy of "Bryan C. Warnock" <bwarnock@raba.com>
3613 2002-01-06 17:58  dan
3615         * MANIFEST:  We're missing a couple of files from the MANIFEST.
3617         Courtesy of Simon Glover <scog@roe.ac.uk>
3619 2002-01-06 17:57  dan
3621         * ops2c.pl, Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm:   1.
3622         Compiler directives, etc. in files other than core.ops will now
3623         work.   2.  Compiler warnings will now display the file and line
3624         number of the  opcode file.
3626         Courtesy of "Brent Dax" <brentdax@cpan.org>
3628 2002-01-06 17:52  dan
3630         * languages/jako/jakoc: Fix breakage caused by iton/ntoi going away
3632         Courtesy of Simon Glover <scog@roe.ac.uk>
3634 2002-01-06 17:36  dan
3636         * docs/intro.pod: Lots of updates
3638         Courtesy of Simon Glover <scog@roe.ac.uk>
3640 2002-01-06 02:34  gregor
3642         * interpreter.c:
3643         Add some internal documentation on the theory of operation of the
3644         prederef code.
3646 2002-01-06 02:17  gregor
3648         * interpreter.c:
3649         Removed unnecessary include.
3651 2002-01-05 12:37  simon
3653         * classes/.cvsignore:
3654         Ignore generated .h files.
3656         Courtesy of: Josh Wilmes <josh@hitchhiker.org>
3658 2002-01-05 12:37  simon
3660         * Configure.pl:
3661         Make lcc happier by adding a dummy structure.
3663         Courtesy of: Josh Wilmes <josh@hitchhiker.org>
3665 2002-01-05 12:35  simon
3667         * global_setup.c, classes/perlundef.pmc, t/op/pmc.t, t/pmc/pmc.t:
3668         Make perlundef work. (And coincidentally stop segfaults in the
3669         tests :)
3671         Courtesy of: Jason Gloudon <perl@gloudon.com>
3673 2002-01-05 04:59  dan
3675         * t/: op/pmc.t, pmc/pmc.t: Undef tests added.
3677 2002-01-05 04:55  jgoff
3679         * classes/perlhash.pmc: Added perlhash class definition
3681 2002-01-05 04:48  dan
3683         * core.ops: Fix on 64 bit platforms with 32-bit opcode_t
3685         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3687 2002-01-05 03:57  jgoff
3689         * MANIFEST, Makefile.in, core.ops, global_setup.c, key.c,
3690         vtable.tbl, classes/Makefile.in, classes/default.pmc,
3691         include/parrot/key.h, include/parrot/pmc.h, t/op/pmc.t,
3692         t/pmc/pmc.t: Initial hash commit.
3694         core.ops - Adding set({i,n,s},p,s) and set(p,{i,n,s},s) operations.
3695          key.h  - Adding NUM_BUCKETS classes/default.pmc - Adding
3696         set_{integer,number,string}_index_s
3698         This does not yet do collision resolution, but will soon.
3700 2002-01-05 02:54  dan
3702         * interpreter.c: More unsigned fixes
3704         Courtesy of "Bryan C. Warnock" <bwarnock@raba.com>
3706 2002-01-04 22:13  dan
3708         * Configure.pl, hints/mswin32.pl: Makes config's building of the
3709         test programs happier.
3711         Courtesy of "Jason Diamond" <jason@injektilo.org>
3713 2002-01-04 19:00  dan
3715         * Configure.pl, Makefile.in, hints/darwin.pl: Add link flags as
3716         separate things
3718 2002-01-04 18:27  dan
3720         * Configure.pl, Makefile.in, classes/Makefile.in, hints/mswin32.pl:
3721         Fixes to get things configuring and building on Win32 Native.
3723         Courtesy of "Jason Diamond" <jason@injektilo.org>
3725 2002-01-04 17:39  dan
3727         * hints/vms.pl: debug cleanup
3729 2002-01-04 16:53  dan
3731         * docs/parrot.pod:  The enclosed patch brings the list of
3732         documentation in parrot.pod
3733          up to date.
3735         Courtesy of Simon Glover <scog@roe.ac.uk>
3737 2002-01-04 16:47  dan
3739         * test_main.c, Parrot/Jit/i386-linux.pm,
3740         lib/Parrot/Jit/i386-linux.pm: In an attempt to just keep knocking
3741         off warnings..
3743         Courtesy of Kevin Falcone <kevin@jibsheet.com>
3745 2002-01-04 16:44  dan
3747         * Configure.pl, Makefile.in: Fixed linking to use linker.
3749         Courtesy of Josh Wilmes <josh@hitchhiker.org>
3751 2002-01-04 16:39  dan
3753         * io/io_stdio.c: Added CVS tag info
3755 2002-01-04 16:35  dan
3757         * hints/cygwin.pl: Time for this. We need a sane linker, and ld2
3758         isn't it
3760 2002-01-04 16:26  dan
3762         * languages/miniperl/Miniperl/Tokenizer.pm: Quiet a warning in the
3763         Tokenizer test
3765         Courtesy of Jonathan Stowe <gellyfish@gellyfish.com>
3767 2002-01-04 16:17  dan
3769         * chartypes/unicode.c: Silence some warnings.
3771         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3773 2002-01-04 16:09  dan
3775         * classes/: genclass.pl, perlarray.pmc, perlint.pmc, perlnum.pmc,
3776         perlstring.pmc, perlundef.pmc:  - genclass.pl attempts to put $Id$
3777         into generated files
3778            but the $Id$ string gets mangled when it's committed.
3779            This patch fixes the existing .pmc files and fixes genclass.pl.
3781          - Makes capitalization in .pmc header match actual filenames
3783          - The command for calling genclass.pl in vtables.pod is incorrect,
3784            since it assumes you're running in classes/ but genclass.pl
3785         assumes
3786            it's being run from the main directory. I changed genclass.pl to
3787         not
3788            care.
3790         Courtesy of Steve Fink <steve@fink.com>
3792 2002-01-04 03:57  dan
3794         * MANIFEST, io/TODO, io/io_stdio.c: No wonder things worked for
3795         me--I *had* the files:wq!
3797 2002-01-04 03:40  dan
3799         * MANIFEST: Whoops--remove files not really there
3801 2002-01-04 03:37  dan
3803         * interpreter.c, stacks.c, include/parrot/stacks.h: The patch below
3804         my sig adds a new_stack() function to take care of the allocation
3805         and setup of "generic" stacks.
3807         Courtesy of "Brent Dax" <brentdax@cpan.org>
3809 2002-01-04 02:36  dan
3811         * core.ops:  The entry in core.ops for puts(s|sc) is missing a =cut
3812         and so
3813          writes a load of junk in core_ops.pod. Applied patch fixes.
3815         Courtesy of Simon Glover <scog@roe.ac.uk>
3817 2002-01-04 02:35  dan
3819         * classes/: perlint.pmc, perlnum.pmc, perlstring.pmc: The PerlInt
3820         logical-or is using get_integer instead of get_bool for logical
3821         operations. This patch corrects that.
3823         Perlnum and perlstring have working get_bool's, so the default
3824         logical_or and logical_and should be sufficient. The empty methods
3825         are pointed to the default logical_or.
3827         Courtesy of Jason Gloudon <perl@gloudon.com>
3829 2002-01-04 02:31  dan
3831         * Makefile.in: docs/Makefile should be removed by realclean, but
3832         isn't
3834         Courtesy of Kevin Falcone <kevin@jibsheet.com>
3836 2002-01-04 02:29  dan
3838         * classes/: Makefile.in, pmc2c.pl: PMC inheritance! Yay!
3840         Courtesy of Steve Fink <steve@fink.com>
3842 2002-01-04 00:51  dan
3844         * docs/vtables.pod: More docs
3846         Courtesy of Steve Fink <steve@fink.com>
3848 2002-01-04 00:47  dan
3850         * Configure.pl: Updated 64-bit patch
3852         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3854 2002-01-04 00:43  dan
3856         * Configure.pl: 64-bit Fix.
3858         Courtesy of "Bryan C. Warnock" <bwarnock@raba.com>
3860 2002-01-03 22:37  dan
3862         * MANIFEST, Makefile.in, interpreter.c, include/parrot/io.h,
3863         io/io.c, io/io_os.c: Code cleanup, started STDIO layer, started
3864         some buffering work.       Additional work on other layers.
3866         Courtesy of Melvin Smith <mrjoltcola@mindspring.com>
3868 2002-01-03 19:41  gregor
3870         * disassemble.pl, obscure.ops, packfile.c, pbc2c.pl:
3871         Updated copyright messages on top-level files.
3873 2002-01-03 04:23  robert
3875         * make.pl: Add author information.  Bonsai test.
3877 2002-01-03 04:02  dan
3879         * io/io_os.c: Twig Bonsai
3881 2002-01-03 03:45  dan
3883         * io/: io_os.c, io_os.c: Twig Bonsai
3885 2002-01-03 03:41  dan
3887         * io/io_os.c: Twig Bonsai
3889 2002-01-02 21:42  gregor
3891         * packfile.c, include/parrot/packfile.h:
3892         Get rid of warnings in packfile.[hc]
3894 2002-01-02 20:39  gregor
3896         * manicheck.pl:
3897         Bracketed translated patterns with ^ and $.
3899 2002-01-02 20:11  dan
3901         * io/io_os.c: silence a warning
3903 2002-01-02 19:52  grunblatt
3905         * jit.c, jit2h.pl, include/parrot/jit.h: Moved the definition of
3906         op_assembly to jit_struct.h, so that we get the real number of ops.
3907          Removed some warnings.
3909 2002-01-02 19:31  tom
3911         * string.c: Fix string transcoding so that it actually works.
3913         Patch from Peter Gibbs <peter@emkel.co.za>
3915 2002-01-02 19:20  gregor
3917         * manicheck.pl:
3918         A program to check the MANIFEST file, accounting for .cvsignore
3919         files.
3921 2002-01-02 19:19  dan
3923         * t/harness: twig bonsai
3925 2002-01-02 19:13  dan
3927         * t/harness: twig bonsai
3929 2002-01-02 18:54  dan
3931         * t/harness: Tweak to test Bonsai
3933 2002-01-02 16:27  dan
3935         * Configure.pl: Allow 64-bit build of parrot on systems with a
3936         mixed 32/64 bit perl
3938         Courtesy of David M. Lloyd <dmlloyd@tds.net>
3940 2002-01-02 15:33  simon
3942         * MANIFEST, docs/Makefile:
3943         Fixed up MANIFEST. (And I removed the Makefile in docs/)
3945         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
3947 2002-01-02 13:51  simon
3949         * Configure.pl:
3950         Die on broken manifest.
3952 2002-01-02 13:48  simon
3954         * jit2h.pl, examples/assembly/mops.pasm:
3955         Clear up JIT warnings.
3957         Courtesy of: Nick Clark <nick@unfortu.net>
3959 2002-01-02 04:10  dan
3961         * io/io.c, io/io_os.c, t/op/interp.t: IO stack now gets initialized
3962         only once, so new interp creation works again
3964         Courtesy of Melvin Smith <mrjoltcola@mindspring.com>
3966 2002-01-02 03:32  dan
3968         * t/op/interp.t: Stubbed the test out, since it's hanging at the
3969         moment.
3971 2002-01-02 00:55  dan
3973         * MANIFEST, Makefile.in, core.ops, include/parrot/io.h, io/io.c,
3974         io/io_os.c: Initial IO system patches
3976         Courtesy of <mrjoltcola@mindspring.com>
3978 2002-01-01 22:55  ajgough
3980         * classes/default.pmc: On second thoughts, and some prodding, the
3981         set_* methods now only set the appropriate part of the cache, and
3982         do nothing else.
3984 2002-01-01 22:29  ajgough
3986         * classes/default.pmc:  Wrote a whole host of default pmc methods.
3988          set_* create appropriate Perl* result.
3989          get_* simply grabs needed bit of cache.*_val
3991          Other methods do the rightest thing I can think of, at the moment.
3993          None yet cope with overflow, the modulus operation needs to be
3994         checked as
3995         I don't know quite which semantics we really want.
3997         Not tested yet.
3999 2002-01-01 20:23  dan
4001         * docs/Makefile, encodings/singlebyte.c, encodings/utf16.c,
4002         encodings/utf32.c, encodings/utf8.c, include/parrot/encoding.h: Got
4003         rid of unneeded tmp var and eliminated const from encode prototype
4004         since it does make changes to the string.
4006         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4008 2002-01-01 20:11  dan
4010         * Makefile.in: Make clean now tosses pdump.o
4012         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4014 2002-01-01 19:49  dan
4016         * pdump.c, test_main.c: Warnings cleanup
4018         Courtesy of Josh Wilmes <josh@sky.net>
4020 2002-01-01 19:45  dan
4022         * Configure.pl, Makefile.in, docs/.cvsignore, docs/Makefile.in,
4023         hints/mswin32.pl, languages/jako/Makefile.in,
4024         languages/scheme/Makefile.in: Makes cleanup better on non-Unix
4025         platforms
4027         Courtesy of "Jason Diamond" <jason@injektilo.org>
4029 2002-01-01 19:41  dan
4031         * include/parrot/register.h: Clean up some warnings
4033         Courtesy of Josh Wilmes <josh@hitchhiker.org>
4035 2002-01-01 19:10  simon
4037         * pbc2c.pl, Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm:
4038         Hack-around to enable compilation of code using vtable ops.
4040 2002-01-01 18:43  dan
4042         * encodings/: singlebyte.c, utf16.c, utf32.c, utf8.c: Toss <0
4043         checks on unsigned things
4045         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4047 2002-01-01 18:26  dan
4049         * runops_cores.c: More warning silences.
4051         Courtesy of Nicholas Clark <nick@unfortu.net>
4053 2002-01-01 18:25  dan
4055         * trace.c: Shuts up a warning.
4057         Courtesy of Nicholas Clark <nick@unfortu.net>
4059 2002-01-01 18:24  dan
4061         * encodings/singlebyte.c: Clean up some warnings.
4063         Courtesy of Nicholas Clark <nick@unfortu.net>
4065 2002-01-01 18:20  dan
4067         * Configure.pl: Hey, those PPros are really x86 systems! Who'dve
4068         thunk it?
4070         Courtesy of "Bryan C. Warnock" <bwarnock@raba.com>
4072 2002-01-01 18:17  dan
4074         * packfile.c: Warning cleanup
4076         Courtesy of Nicholas Clark <nick@unfortu.net>
4078 2002-01-01 17:53  dan
4080         * string.c: New string size should be based on output encoding's
4081         size, not input encoding's size.
4083         Courtesy of: "Peter Gibbs" <peter@emkel.co.za>
4085 2002-01-01 17:22  dan
4087         * Configure.pl, core.ops, interpreter.c, memory.c, runops_cores.c,
4088         string.c, test_main.c, trace.c, include/parrot/exceptions.h,
4089         include/parrot/interpreter.h, include/parrot/memory.h,
4090         include/parrot/oplib.h, include/parrot/string.h, t/op/string.t:
4091         Warnings fixups.
4093         Courtesy of Chip Turner <cturner@redhat.com>
4095 2002-01-01 17:09  dan
4097         * encodings/singlebyte.c, encodings/utf16.c, encodings/utf32.c,
4098         encodings/utf8.c, include/parrot/encoding.h: Some signed things are
4099         now unsigned, as is proper.
4101         Courtesy of: "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4102         Courtesy of: "Bryan C. Warnock" <bwarnock@raba.com>
4104 2002-01-01 16:59  dan
4106         * include/parrot/trace.h: Useless debugging prototype removed
4108         Courtesy of: "Bryan C. Warnock" <bwarnock@raba.com>
4110 2002-01-01 16:58  dan
4112         * MANIFEST: We forgot a file.
4114         Courtesy of "Bryan C. Warnock" <bwarnock@raba.com>
4116 2002-01-01 03:53  dan
4118         * Configure.pl: Okay, I give. Removed some warnings because the
4119         darned system headers were triggering them. Sloppy, sloppy
4120         coding...
4122 2002-01-01 03:48  dan
4124         * config_h.in: Add in an unsigned INTVAL.
4126         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4128 2002-01-01 03:46  dan
4130         * global_setup.c: Clean up some compiler warnings.
4132         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4134 2002-01-01 03:43  dan
4136         * ops2c.pl, Parrot/OpTrans.pm, Parrot/OpTrans/CPrederef.pm,
4137         lib/Parrot/OpTrans.pm, lib/Parrot/OpTrans/CPrederef.pm,
4138         include/parrot/op.h: Cleaned up some things to make the compiler
4139         happier.
4141         Courtesy of Nicholas Clark <nick@unfortu.net>
4143 2002-01-01 03:14  dan
4145         * Configure.pl: Quad updates.
4147         Courtesy of Nicholas Clark <nick@unfortu.net>
4149 2001-12-31 22:53  dan
4151         * include/parrot/op.h: Typedef had parameters backwards. Threw
4152         core.ops for a big whiny warnings loop.
4154 2001-12-31 22:37  dan
4156         * Makefile.in, resources.c: Tweaks to try and get things to build
4157         in the right order.
4159 2001-12-31 21:58  dan
4161         * Configure.pl: Stupid thinko fix
4163 2001-12-31 21:34  dan
4165         * Configure.pl, hints/mswin32.pl: Tweaks for Win32 builds
4167         Courtesy of: "Jason Diamond" <jason@injektilo.org>
4169 2001-12-31 21:32  dan
4171         * Configure.pl: Fix for non-gcc systems
4173 2001-12-31 20:22  dan
4175         * interpreter.c: Tweak so we can build on non-JIT platforms
4177 2001-12-31 20:11  dan
4179         * Configure.pl: Force the time on some copied files to be 'now' to
4180         make the Win builds much less annoying.
4182         Courtesy of "Jason Diamond" <jason@injektilo.org>
4184 2001-12-31 20:07  dan
4186         * Configure.pl: Nuke all object files in the parrot tree that
4187         matter when configuring.  Shouldn't be necessary with good
4188         dependencies in the makefile, but we don't have those yet.
4190 2001-12-31 20:00  gregor
4192         * chartypes/unicode.c:
4193         Silence unused variable warnings.
4195 2001-12-31 19:40  dan
4197         * Configure.pl: Minor Win32 tweaks. Tossed -Wtraditional, too
4199 2001-12-31 19:37  gregor
4201         * interpreter.c, jit.c, include/parrot/jit.h:
4202         Created a prototype for JIT functions and used it in interpreter.c.
4204 2001-12-31 19:31  dan
4206         * Configure.pl, test_gnuc.c: Better GCC detection (and version
4207         detection) with really cranky warnings if we find we're using it.
4209         Courtesy of: Nicholas Clark <nick@unfortu.net>
4211 2001-12-31 18:01  gregor
4213         * interpreter.c, include/parrot/interpreter.h, include/parrot/op.h:
4215         Fixed a few warnings wrt prototypes, etc.
4217 2001-12-31 17:23  dan
4219         * string.c: Silenced most of the compiler whines
4221 2001-12-31 17:15  gregor
4223         * Configure.pl:
4224         Get the ccname from either ccname or just cc config var.
4226 2001-12-31 17:14  gregor
4228         * Parrot/Op.pm, lib/Parrot/Op.pm:
4229         Another intermediate opbody notation. Could come in handy. Explicit
4230         types.
4232 2001-12-31 17:05  dan
4234         * string.c: Minor warnings update
4236 2001-12-31 17:00  dan
4238         * include/parrot/string.h: Warnings cleanup
4240 2001-12-31 16:00  simon
4242         * encodings/utf8.c, include/parrot/encoding.h:
4243         Remove a couple more.
4245 2001-12-31 15:58  simon
4247         * vtable_h.pl, include/parrot/global_setup.h, include/parrot/jit.h,
4248         include/parrot/op.h:
4249         Rid ourselves of a few warnings.
4251 2001-12-31 15:32  dan
4253         * Configure.pl: Made GCC ever so much pickier.
4255         Switch list courtesy of Jarkko.
4257 2001-12-31 15:22  dan
4259         * string.c: Tightened up initial allocation.
4261         Courtesy of:  "Peter Gibbs" <peter@emkel.co.za>
4263 2001-12-31 06:48  dan
4265         * Configure.pl: Minor Windows tweak
4267 2001-12-31 05:32  dan
4269         * core.ops: Unused temp variable tossed.
4271         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4273 2001-12-31 05:09  grunblatt
4275         * Configure.pl, Makefile.in, interpreter.c: Link jit.o only on
4276         supported plataforms
4278 2001-12-31 03:05  dan
4280         * Configure.pl, Makefile.in, classes/Makefile.in: Added in a
4281         platform-independent quote substitution for the makefiles.
4282         Hopefully this'll make the Win32 builds happier.
4284 2001-12-30 21:08  dan
4286         * string.c, include/parrot/string.h: More string system tweaks.
4288         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4290 2001-12-30 20:45  dan
4292         * core.ops: Some pod cleanup
4294         Courtesy of Josh Wilmes <josh@hitchhiker.org>
4296 2001-12-30 20:22  ajgough
4298         * docs/parrot_assembly.pod: removed ntoi and iton ops from docs, as
4299         we aren't using them right now.  Clarified the workings of set Px,
4300         Py and clone Px, Py.
4302 2001-12-30 20:15  grunblatt
4304         * jit.c, jit2h.pl, jit/i386/core.jit: Removed the warnings in jit.c
4305         Added readjit() to read *.jit files Updated core.jit to the new
4306         set_n_i
4308 2001-12-30 20:14  ajgough
4310         * examples/assembly/mops.pasm: Changed iton/ntoi to set.
4312 2001-12-30 19:52  dan
4314         * packfile.c, pdump.c, register.c, string.c, include/parrot/key.h,
4315         include/parrot/trace.h, platforms/generic.c: Compiler whine
4316         cleanups
4318         Courtesy of Josh Wilmes <josh@hitchhiker.org>
4320 2001-12-30 19:13  dan
4322         * Configure.pl, Makefile.in: Make GCC pickier by default.
4324         Courtesy of: Josh Wilmes <josh@hitchhiker.org>
4326 2001-12-30 18:41  dan
4328         * core.ops, t/op/integer.t, t/op/number.t: Transformed iton and
4329         ntoi opcodes to sets.
4331         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4333 2001-12-30 17:58  gregor
4335         * Makefile.in:
4336         'make' no longer builds the mops test. Use 'make mops' for that. To
4337         run the test, you can do 'make mopstest'.
4339 2001-12-30 17:30  gregor
4341         * Makefile.in:
4342         Fixed one oversight. 'make clean' was removing Parrot/Types.pm. Bad
4343         Gregor.
4345 2001-12-30 17:26  gregor
4347         * .cvsignore, Configure.pl, Makefile.in, VERSION, config_h.in,
4348         core.ops, interpreter.c, make_vtable_ops.pl, obscure.ops, ops2c.pl,
4349         Parrot/BuildUtil.pm, Parrot/OpsFile.pm, lib/Parrot/BuildUtil.pm,
4350         lib/Parrot/OpsFile.pm, include/parrot/oplib.h:
4351         Build enhancements. Originally to support building shared
4352         libraries, but now of broader impact.
4354           * .cvsignore: Ignore the blib/ directory, about which more later.
4356           * Configure.pl:
4358               * Got rid of TAB formatting and lined a few things up.
4360               * Added header comment with CVS Id variable, and a few other
4361                 block header comments.
4363               * Uses new Parrot::BuildUtil module to determine the Parrot
4364                 version.
4366               * Reworded a few messages, added a couple, and wrapped
4367         messages
4368                 to 79 columns.
4370               * Added 2002 to the Copyright statement.
4372               * Added new configure variables: VERSION, MAJOR, MINOR and
4373         PATCH
4375               NOTE: Please see the 'Alas perl5.7.2' comment. 5.7.2 is
4376         greater
4377               than 5.6.0, but the comment implies it isn't.
4379           * Makefile.in:
4381               * Added $(SO), $(A) and $(AR_CRS) defines for library
4382         building.
4384               * Added $(RM_RF) define for removing directory trees
4386               * Grouped generated files into two classes: "sticky" (made by
4387         configure,
4388                 persisting across 'make clean') and 'fluid' (made during
4389         the build
4390                 process, deleted by 'make clean').
4392               * Added header comments.
4394               * Added target for test_prog linked with shared library.
4396               * Added rules to build shared libraries in blib/lib. The
4397         libraries are
4398                 built with trailing version numbers in their file names,
4399         and then
4400                 symbolic links are created for shorter and no version tag
4401         variants.
4403               * Added some missing dependencies
4405               * Added some missing 'make clean' targets.
4407               * Added 'make realclean' target that deletes files created by
4408                 Configure.pl (including Makefile), forcing a re-configure.
4410               * Added a 'status' CVS target.
4412           * VERSION: New file, contains only the version. This version
4413         number is
4414             propagated to a few places, such as the core oplib version
4415         number. This
4416             reduces the amount of coordination that has to happen to get
4417         version
4418             number stuff throughout the tree in sync and updated prior to
4419         cutting
4420             a new release. Feel free to grep for '0.0.3' to see the other
4421         files
4422             that contain the version number (but, do that in a fresh CVS
4423         copy, or
4424             after doing 'make realclean').
4426           * config_h.in: Renamed PARROT_CORE_OPLIB_*_VERSION to
4427         PARROT_*_VERSION,
4428             since the oplib and Parrot itself share a version number now.
4429         Added
4430             PARROT_PATCH_VERSION (the third component) and PARROT_VERSION
4431         (a
4432             string).
4434           * core.ops: Uses new notation "VERSION = PARROT_VERSION" instead
4435         of
4436             specifying the version by hand. Non-core oplibs will set this
4437         to
4438             a quoted dot-string with three natural number components
4439         without
4440             leading zeros.
4442           * interpreter.c: Make use of PARROT_VERSION to simplify some
4443         sprintf()s, and
4444             to get the complete version number in the resulting strings
4445         (including the
4446             new PATCH portion).
4448           * make_vtable_ops.pl: Put the "VERSION = PARROT_VERSION" line int
4449         the
4450             generated file.
4452           * obscure.ops: Use the new "VERSION = PARROT_VERSION" technique.
4454           * ops2c.pl: Account for the PATCH version, too. This affects the
4455         name of the
4456             oplib init function, and the oplib info struct initializer.
4458           * Parrot/BuildUtil.pm: New file for reading in and validating the
4459         contents of
4460             the new VERSION file. Other build utilities could go here in
4461         futuer.
4463           * Parrot/OpsFile.pm:
4465               * Allow three components in version number, and require that
4466         the value
4467                 be in double quotes.
4469               * Allow "VERSION = PARROT_VERSION", substituting the shared
4470         Parrot
4471                 VERSION in that case.
4473           * include/parrot/oplib.h: Add the patch_version member.
4475 2001-12-30 12:16  simon
4477         * MANIFEST, Makefile.in:
4478         More stuff forgotten from MANIFEST.
4480 2001-12-30 12:13  simon
4482         * MANIFEST:
4483         Missing JIT file.
4485 2001-12-30 12:12  simon
4487         * jit2h.pl:
4488         Safety first.
4490 2001-12-30 12:12  simon
4492         * Makefile.in:
4493         Gragh.
4495 2001-12-30 12:04  simon
4497         * Makefile.in, core.ops, packfile.c, pbc2c.pl, string.c,
4498         classes/perlstring.pmc, encodings/singlebyte.c, encodings/utf16.c,
4499         encodings/utf32.c, encodings/utf8.c, include/parrot/encoding.h,
4500         include/parrot/string.h, t/op/string.t:
4501         * Expand the strings test suite to be more complete * Make string
4502         commands more consistent (i.e, now the only string command that
4503         actually changes the original is chopn) * Significantly reduce the
4504         number of memory allocations and eliminate reallocations.
4506         Courtesy of: David Jacobs <jacobsl001@hawaii.rr.com>
4508 2001-12-29 22:12  dan
4510         * interpreter.c, key.c, register.c, stacks.c, string.c,
4511         test_main.c, trace.c: Updates to match the coding standards.
4513         Courtesy of Bryan C. Warnock <bwarnock@raba.com>
4515 2001-12-29 20:42  grunblatt
4517         * jit2h.pl, Parrot/Jit/i386-bsd.pm, Parrot/Jit/i386-linux.pm,
4518         Parrot/Jit/i386-nojit.pm, jit/i386/core.jit, jit/i386/lib.jit,
4519         jit/i386/string.jit, lib/Parrot/Jit/i386-bsd.pm,
4520         lib/Parrot/Jit/i386-linux.pm, lib/Parrot/Jit/i386-nojit.pm: Allow
4521         us to write asm in *.jit files instead of hex.  Courtesy of: Rafael
4522         Kitover <caelum@debian.org>
4524 2001-12-28 21:20  dan
4526         * core.ops: Okay, now print takes a preceding file handle.
4528         I feel so dirty now.
4530 2001-12-28 20:46  dan
4532         * core.ops, t/op/hacks.t: Added in the readline op, as well as
4533         changing the open op to use fopen under the hood.
4535         THESE OPS ARE EVIL! AND TEMPORARY! USE FOR DEBUGGING PURPOSES ONLY!
4537 2001-12-28 18:20  ajgough
4539         * core.ops, make_vtable_ops.pl, string.c, classes/default.pmc,
4540         classes/perlstring.pmc, docs/parrot_assembly.pod, docs/strings.pod,
4541         include/parrot/exceptions.h, include/parrot/string.h,
4542         t/op/pmc_perlstring.t, t/op/string.t, t/pmc/perlstring.t: Added
4543         repeat op, so that "foo" x 10 can be done.  Filled in PerlString
4544         vtables appropriately.  Also tests for same, new pmc_perlstring.t
4545         to hold tests specific to PerlStrings, as the pmc.t file is taking
4546         too long to run and slowing down my thought processes.
4548         Changes to strings.c etc to take string functions.
4550         Some changes to the strings docs, but not yet complete.
4552         Also, PerlString was copying pointers to strings, rather than
4553         strings themselves, so some action-at-a-distance bugs were creeping
4554         in, I think I've fixed this so everything works nicely.
4556 2001-12-28 04:56  gregor
4558         * examples/assembly/pmcmops.pasm:
4559         PMC-using version of mops.pasm.
4561         Courtesy of: Bryan C. Warnock <bwarnock@raba.com>
4563 2001-12-28 04:56  gregor
4565         * examples/assembly/.cvsignore:
4566         Small tinkering. Removed old stuff, etc.
4568 2001-12-28 01:26  gregor
4570         * examples/mops/mops.scheme:
4571         Scheme example. Major GC thrashing on umb-scheme here. Probably due
4572         to the very un-scheme-like implementation.
4574 2001-12-28 01:19  gregor
4576         * examples/mops/mops.c:
4577         Some people's picky compilers don't like us redefineing time(), so
4578         we call it time_n().  :)
4580 2001-12-28 00:28  gregor
4582         * examples/mops/: README, mops.ps:
4583         Added a PostScript example and a README.
4585 2001-12-27 23:57  gregor
4587         * Makefile.in:
4588         Build the C mops translation in examples/mops/mops.c
4590 2001-12-27 23:56  gregor
4592         * examples/mops/: .cvsignore, mops.c, mops.pl, mops.py, mops.rb:
4593         Some translations of mops.pasm into other languages, for inner loop
4594         performance comparisons.
4596 2001-12-27 22:40  gregor
4598         * examples/assembly/mops.pasm:
4599         Fixed erroneous file name in header comment.
4601 2001-12-27 21:18  gregor
4603         * pbc2c.pl:
4604         One-liner to avoid no-op gotos to the next op.
4606 2001-12-27 21:06  gregor
4608         * runops_cores.c:
4609         Fixed -p (profiling). Slow runops core was doing unconditional
4610         tracing, when it should have been checking the flags.
4612 2001-12-27 18:50  ajgough
4614         * core.ops, string.c, chartypes/unicode.c, chartypes/usascii.c,
4615         classes/perlstring.pmc, include/parrot/chartype.h,
4616         include/parrot/string.h, t/op/pmc.t, t/op/string.t, t/pmc/pmc.t:
4617         dded get_digit() to chartypes  * Added string_bool() to strings  *
4618         Added if_s_ic op, to use same  * Added (PerlString)->get_bool stuff
4619         to perlstring.pmc  * Tests for above, also a for couple of other
4620         ops without tests
4622         The unicode chartype has only had placeholders added for get_digit,
4623         string_to_num has been updated to use type->get_digit rather than
4624         the previous ascii-isms.  Some remain, but we need to carefully
4625         define what we mean by a number before we let thousands of code
4626         points act as a minus sign.
4628 2001-12-27 18:32  dan
4630         * classes/: perlint.pmc, perlnum.pmc, perlstring.pmc: Silenced some
4631         compiler warnings.
4633         Courtesy of "David  Jacobs" <jacobsl001@hawaii.rr.com>
4635 2001-12-27 18:23  dan
4637         * t/op/bitwise.t: More tests.
4639         Courtesy of "David Jacobs" <jacobsl001@hawaii.rr.com>
4641 2001-12-27 17:08  gregor
4643         * MANIFEST, Makefile.in, config_h.in, core.ops, interpreter.c,
4644         make_vtable_ops.pl, obscure.ops, ops2c.pl, ops2pm.pl, test_main.c,
4645         trace.c, Parrot/OpsFile.pm, include/parrot/interp_guts.h,
4646         include/parrot/interpreter.h, include/parrot/oplib.h,
4647         lib/Parrot/OpsFile.pm, platforms/generic.c, platforms/generic.h,
4648         platforms/win32.c, platforms/win32.h:
4649         Initial code for dynamic loading of oplibs, applied for now to the
4650         loading of the core_prederef oplib when the -P flag is passed to
4651         test_parrot.
4653           * MANIFEST: Added entry for the new file include/parrot/oplib.h.
4655           * Makefile.in:
4657               * Added libcore_prederef_0_3.so to the shared target.
4658               * Added build rule for libcore_prederef_0_3.so.
4659               * Added dependencies on Parrot/OpsFile.pm and Parrot/Op.pm
4660                 to Parrot/OpLib/core.pm, core_ops.c and
4661                 core_ops_prederef.c.
4663           * config_h.in: Added defines for constants used to locate the
4664             core oplib's init function, and the core_prederef oplib for
4665             dynaloading.
4667           * core.ops: Added a VERSION = 0.3 line near the top. This is now
4668             required by Parrot/OpsFile.pm.
4670           * interpreter.c:
4672               * Added init_prederef() and stop_prederef() functions to load
4673                 and unload the core_prederef oplib when we are in prederef
4674                 mode.
4676                 NOTE: In all likelihood, the prederef stuff has a rapidly
4677                 dwindling time-to-live. The JIT should provide vastly
4678         superior
4679                 performance, and loading an alternate set of core_ops isn't
4680                 the real direction for the dynaloading stuff. Loading
4681                 *additional* ops is. It does provide a handy test case for
4682         the
4683                 general idea for now, though.
4685               * Gets the core copcode table, etc. via the core oplibs oplib
4686                 info pointer, as returned by the core oplib's init
4687         function.
4689           * ops2c.pl
4691               * Make use of the version, major version and minor version
4692                 stuff parsed by Parrot/OpsFile.pm
4694               * The only exported symbol in the generated files is the init
4695                 function now, since that returns an oplib info struct
4696                 pointer, and all the important stuff can be found there.
4698           * ops2pm.pl: Put the oplib version in the generated .pm file.
4700           * test_main.c: Small changes necessitated by changes in the names
4701             of some members of the interpreter struct.
4703           * trace.c: Small changes necessitated by changes in the names
4704             of some members of the interpreter struct.
4706           * Parrot/OpsFile.pm: Require a "VERSION = x.y" line before any
4707             ops are found.
4709           * include/parrot/interp_guts.h: Small changes necessitated by
4710             changes in the names of some members of the interpreter struct.
4712           * include/parrot/interpreter.h: Include the new
4713             include/parrot/oplib.h header. Small changes to the oplib-
4714             related members.
4716           * include/parrot/oplib.h: Define the type of the oplib init
4717             function, and the struct type for the oplib info.
4719           * platforms/*.[hc]: Remove the second argument to Parrot_dlopen()
4720             since not all platforms have it. For those that do, a default
4721             second argument is provided.
4723 2001-12-26 05:12  gregor
4725         * Configure.pl:
4726         Make jitarch calculation not get tripped up by extra components to
4727         archname.
4729 2001-12-24 21:23  gregor
4731         * jit.c, jit2h.pl, Parrot/Jit/i386-bsd.pm,
4732         Parrot/Jit/i386-linux.pm, Parrot/Jit/i386-nojit.pm,
4733         include/parrot/jit.h, jit/i386/core.jit, jit/i386/lib.jit,
4734         jit/i386/string.jit, lib/Parrot/Jit/i386-bsd.pm,
4735         lib/Parrot/Jit/i386-linux.pm, lib/Parrot/Jit/i386-nojit.pm:
4736         Some more JIT work from Daniel Grunblatt.
4738           * Ops added set_s_s, set_s_sc, bsr_i and eq_s_sc but using calls
4739         to C
4740             functions.
4742           * Added JUMP(END) to place the number of bytes to the end of the
4743         current
4744             op.
4746           * The *.jit files syntax changed.
4748           * Added jit/i386/lib.jit to place handly functions as jump that
4749         take as
4750             argument the address where is the opcode number to jump to.
4752           * There is a bug at some point, but I will start writing
4753             jit/i386/string.jit and jit/i386/stacks.jit so that we don't
4754         have use
4755             calls, which make the jit as slow as the interpreter.
4757         Courtesy of: Daniel Grunblatt <daniel@grunblatt.com.ar>
4759 2001-12-24 03:46  dan
4761         * Parrot/OpTrans.pm, Parrot/OpTrans/C.pm, Parrot/OpTrans/CGoto.pm,
4762         Parrot/OpTrans/CPrederef.pm, lib/Parrot/OpTrans.pm,
4763         lib/Parrot/OpTrans/C.pm, lib/Parrot/OpTrans/CGoto.pm,
4764         lib/Parrot/OpTrans/CPrederef.pm: Commented out the use warnings.
4765         Perls before 5.6.0 don't like it.
4767 2001-12-22 16:02  ajgough
4769         * t/op/stacks.t: stopped skipping tests we can run now.  added
4770         clonep tests.
4772 2001-12-21 21:13  gregor
4774         * jit2h.pl, Parrot/Jit/i386-bsd.pm, Parrot/Jit/i386-linux.pm,
4775         Parrot/Jit/i386-nojit.pm, lib/Parrot/Jit/i386-bsd.pm,
4776         lib/Parrot/Jit/i386-linux.pm, lib/Parrot/Jit/i386-nojit.pm:
4777         Fixed some package name goofs.
4779         Thanks to: Andy Dougherty <doughera@mail.lafayette.edu>
4781 2001-12-21 19:32  gregor
4783         * MANIFEST, Makefile.in, core.ops, interpreter.c,
4784         make_vtable_ops.pl, obscure.ops, ops2c-prederef.pl, ops2c.pl,
4785         pbc2c.pl, stacks.c, Parrot/Op.pm, Parrot/OpTrans.pm,
4786         Parrot/Opcode.pm, Parrot/OpsFile.pm, lib/Parrot/Op.pm,
4787         lib/Parrot/OpTrans.pm, lib/Parrot/Opcode.pm, lib/Parrot/OpsFile.pm,
4788         Parrot/OpTrans/C.pm, Parrot/OpTrans/CGoto.pm,
4789         Parrot/OpTrans/CPrederef.pm, docs/intro.pod, include/parrot/op.h,
4790         include/parrot/stacks.h, lib/Parrot/OpTrans/C.pm,
4791         lib/Parrot/OpTrans/CGoto.pm, lib/Parrot/OpTrans/CPrederef.pm:
4792         Changes to syntax of .ops files and refactoring of ops2c*.pl and
4793         pbc2c.pl.
4795           * Removed ops2c-prederef.pl
4797           * (unrelated) Removed vestigial Parrot/Opcode.pm file.
4799           * Added Parrot/OpTrans.pm, Parrot/OpTrans/C.pm (needed for old
4800             functionality of ops2c.pl), Parrot/OpTrans/CPrederef.pm (needed
4801             for old functionality of ops2c-prederef.pl), and
4802             Parrot/OpTrans/CGoto.pm (needed for functionality of pbc2c.pl).
4804             "OpTrans" == "Op Transformation"
4806           * Makefile.in modifications to call "ops2c.pl C" where it used
4807             to be just "ops2c.pl", and "ops2c.pl CPrederef" where it used
4808             to be "ops2c-prederef.pl".
4810           * core.ops and obscure.ops changes to syntax. Semantics are
4811             identical with previous version:
4813               return HALT         -->  HALT()
4814               return AUTO         -->  goto NEXT()
4815               return RETREL(...)  -->  goto OFFSET(...)
4816               return RESTART(*)   -->  restart NEXT()
4818             Also, pop_generic_entry() stuff (local var + 5 lines of code)
4819             for dest-less branch ops replaced with new notation "goto
4820         POP()",
4821             which uses the new pop_dest() function in stacks.c. This also
4822             allowed these ops to become 'inline' ops, since they no longer
4823             have local variables.
4825             The 'ret' op also became simplified to just "goto POP()", and
4826             also became an inline op.
4828           * interpreter.c reflects the change in type name:
4830               prederef_op_func_t   -->  op_func_prederef_t
4832             that occurred in include/parrot/op.h
4834           * make_vtable_ops.pl uses "goto NEXT()" where it used to use
4835             "return AUTO".
4837           * ops2c.pl is now generic. Its first argument is the last
4838             package name component of a subclass of Parrot::OpTrans. These
4839             subclasses all have full names of the form Parrot::OpTrans::*.
4840             An instance of the class is created and later consulted for
4841             various bits of information needed to generate the C code.
4843           * pbc2c.pl now uses an instance of Parrot::OpTrans::CGoto to
4844             contain its transformation rules.
4846           * stacks.c has a new function pop_dest() that pops a destination
4847             off the control stack. include/parrot/stacks.h has the
4848         prototype.
4850           * Parrot/Op.pm now supports the syntax generated by
4851         Parrot::OpsFile
4852             for the "goto POP" case.
4854             Also, the source() method now expects its second argument to be
4855             an object that ISA Parrot::OpTrans. Methods of this object are
4856             called to perform the substitutions.
4858           * Parrot/OpsFile.pm supports the change in notation mentioned
4859             above.
4861           * docs/intro.pod reflects these changes.
4863           * include/parrot/op.h: Renamed type prederef_op_func_t to
4864             op_func_prederef_t because it made the implementation of the
4865             shared ops2c.pl easier.
4867 2001-12-21 13:47  gregor
4869         * Configure.pl, config_h.in, interpreter.c, test_main.c:
4870         Both test_parrot (via test_main.c) and the intepreter itself (via
4871         interpreter.c) use the JIT_CAPABLE config to decide whether to
4872         actually attempt JIT operation, or to complain.
4874 2001-12-20 23:25  gregor
4876         * core.ops, make_vtable_ops.pl, obscure.ops, Parrot/OpsFile.pm,
4877         lib/Parrot/OpsFile.pm, docs/intro.pod, include/parrot/op.h:
4878         Changes to the format of *.ops files. An attempt to provide hints
4879         for future opfunc processing logic that wants to know if an opfunc
4880         is simple enough to JIT (e.g.) inline, or not.
4882         See the POD in Parrot/OpsFile.pm and the updated docs/intro.pod in
4883         addition to The Source in core.ops and Parrot/OpsFile.pm for more
4884         info.
4886 2001-12-20 21:28  gregor
4888         * Configure.pl, jit.c, jit2h.pl, include/parrot/jit.h,
4889         jit/i386/core.jit:
4890         More JIT stuff:
4892           * A fix to Gregor's last Configure.pl update.
4894           * Remove the need for hardcoded "\n" at the end of the "%f"
4895             format for printing floating-point numbers.
4897           * New, improved *.jit syntax for references to registers,
4898             e.g. INT_REG[n].
4900           * Support for C() improved.
4902         Courtesy of: Daniel Grunblatt <daniel@grunblatt.com.ar>
4904 2001-12-20 16:55  dan
4906         * MANIFEST: Added jit.c to the manifest.
4908 2001-12-20 15:24  simon
4910         * jit2h.pl:
4911         Off-by-one error fixed.
4913 2001-12-20 14:18  simon
4915         * jit/i386/core.jit:
4916         Just a noop. It's the only machine code I know.
4918 2001-12-20 13:10  gregor
4920         * Configure.pl, Makefile.in, jit2h.pl:
4921         Attempt to fix Win32 builds.
4923           * No more empty braces in include/parrot/jit_struct.h
4925         Also:
4927           * ${jitarchname} has the *bsd -> bsd substitution on it, but
4928         ${archname}
4929             does not.
4931 2001-12-20 11:56  simon
4933         * Makefile.in:
4934         De-cp
4936 2001-12-20 01:57  gregor
4938         * Configure.pl, MANIFEST, Makefile.in, interpreter.c, jit.c,
4939         jit2h.pl, test_main.c, Parrot/.cvsignore, Parrot/Jit/i386-bsd.pm,
4940         Parrot/Jit/i386-linux.pm, Parrot/Jit/i386-nojit.pm, docs/jit.pod,
4941         include/parrot/.cvsignore, include/parrot/interpreter.h,
4942         include/parrot/jit.h, jit/i386/core.jit, jit/i386/string.jit,
4943         lib/Parrot/Jit/i386-bsd.pm, lib/Parrot/Jit/i386-linux.pm,
4944         lib/Parrot/Jit/i386-nojit.pm:
4945         Initial JIT implementation.
4947           * Enabled with test_parrot -j. 20x speed boosts seen.
4949           * Unsupported archs mapped to i386-nojit. Don't do -j on them.
4951           * More to come.
4953         Courtesy of: Daniel Grunblatt <daniel@grunblatt.com.ar>
4955 2001-12-20 01:53  jgoff
4957         * MANIFEST, core.ops, t/op/key.t: MANIFEST - Removed t/op/key.t
4958         core.ops - Removed key operators, they should be hidden from the
4959         assembler.  t/op/key.t - No need to test the nonexistent key
4960         operators.
4962 2001-12-20 00:13  ajgough
4964         * core.ops, t/op/stacks.t: Added tests for entrytype op, noticed
4965         that asking for type of entry at depth causes segfault as stack is
4966         zero based, fixed cmp in core.ops to reflect this.  Last test is
4967         skipped as we don't do exceptions right yet.
4969 2001-12-19 19:11  ajgough
4971         * t/op/debuginfo.t: Added C<end> ops to debuginfo.t, as thier
4972         non-being was causing Irix "issues".
4974 2001-12-19 03:37  jgoff
4976         * languages/miniperl/Miniperl/t/: 001_tokenizer.t, 003_generator.t,
4977         004_combined.t: Changed tests to make sure they pass with the
4978         addition of the clone operator.
4980 2001-12-18 20:06  gregor
4982         * interpreter.c, include/parrot/interp_guts.h:
4983         Performance improvements to the predereferencing code path
4984         suggested to me over lunch yesterday by my friend John Kennedy.
4985         The goal is to remove the additional test in the inner loop that
4986         was checking for NULL to decide whether or not to call the
4987         prederef() function. Also moved pc & pc_prederef syncing outside
4988         the inner loop.
4990           * Changed the prototype of the prederef() function in
4991             interpreter.c to match that of an opfunc.
4993           * Instead of initializing the prederef void * array with NULL,
4994             we initialize it with pointers to prederef().
4996           * prederef() now returns the prederef_pc passed in, so that
4997             after predereferencing, the same location is executed, but now
4998             with the real code being called.
5000         Thanks to: John Kennedy
5002 2001-12-18 19:59  ajgough
5004         * t/: op/pmc.t, pmc/pmc.t: Added some more num -> string tests
5005         (including some more in the skipped string -> int tests).
5007 2001-12-18 07:06  jgoff
5009         * MANIFEST: Forgot to add classes/perlarray.pmc
5011 2001-12-18 07:05  jgoff
5013         * Makefile.in, core.ops, global_setup.c, vtable.tbl,
5014         classes/Makefile.in, classes/default.pmc, classes/perlarray.pmc,
5015         classes/perlint.pmc, classes/perlnum.pmc, classes/perlstring.pmc,
5016         classes/perlundef.pmc, include/parrot/pmc.h, t/op/pmc.t,
5017         t/pmc/pmc.t: Big update...  Makefile.in - Added
5018         classes/perlarray.pmc core.ops - Added new series of set() ops for
5019         arrays global_setup.c - Initialized perlarray classes/Makefile.in -
5020         Added perlarray.pmc classes/*.pmc - Added
5021         set_{integer,number,string}_index and
5022         get_{integer,number,string}_index include/parrot/pmc.h - Added new
5023         type t/op/pmc.t - Added basic array test
5025         classes/perlarray.pmc - Added
5027 2001-12-17 05:29  jgoff
5029         * languages/miniperl/Miniperl/Generator.pm: Altered miniperl code
5030         generator to use clone operator instead of set Px,Py
5032 2001-12-17 05:25  jgoff
5034         * core.ops, classes/perlint.pmc, classes/perlnum.pmc,
5035         classes/perlstring.pmc, t/op/pmc.t, t/pmc/pmc.t: Added clone
5036         PMC,PMC operator. Uses the clone() vtable entries.
5038 2001-12-17 04:51  jgoff
5040         * MANIFEST: Added miniperl test suite, removed old Miniperl/Test.pm
5041         entry
5043 2001-12-17 04:41  jgoff
5045         * languages/miniperl/Miniperl/Makefile.PL: Now in its proper
5046         directory...
5048 2001-12-17 04:41  jgoff
5050         * languages/miniperl/Makefile.PL: Moved it to the proper directory.
5052 2001-12-17 04:39  jgoff
5054         * languages/miniperl/: Makefile.PL, Miniperl.pm, miniperlc, mpc,
5055         Miniperl/Tokenizer.pm: Makefile.PL to let us run the test suite in
5056         t/
5058 2001-12-17 04:27  jgoff
5060         * languages/miniperl/Miniperl.pm: Latest version of the driver.
5061         Admittedly it's a little thin on true OO, but the algorithms are
5062         the key.
5064 2001-12-17 04:24  jgoff
5066         * languages/miniperl/Miniperl/t/: 001_tokenizer.t, 002_parser.t,
5067         003_generator.t, 004_combined.t: Much more comprehensive test suite
5068         for the codegen et al
5070 2001-12-17 04:22  jgoff
5072         * languages/miniperl/Miniperl/: Generator.pm, Parser.pm,
5073         Tokenizer.pm: Newer codegen, tightened up parser output, added hash
5074         key handling
5076 2001-12-17 04:20  jgoff
5078         * languages/miniperl/Miniperl/Test.pm: The newer test suite is much
5079         more comprehensive.
5081 2001-12-17 04:17  jgoff
5083         * languages/miniperl/foo.mpl: Test file that'll be outdated by
5084         changes to the new compiler
5086 2001-12-17 04:11  jgoff
5088         * languages/miniperl/t/: harness, 001_basic/basic.t: Moving testing
5089         files to Miniperl/
5091 2001-12-16 14:11  simon
5093         * classes/perlint.pmc, examples/assembly/mops_p.pasm, t/op/pmc.t,
5094         t/pmc/pmc.t:
5095         Fix bogus assumption that multiplying an integer by an integer
5096         yields an integer.
5098 2001-12-16 12:48  simon
5100         * make_vtable_ops.pl:
5101         Fixed op exploder.
5103 2001-12-16 12:45  simon
5105         * make_vtable_ops.pl, Parrot/Vtable.pm, lib/Parrot/Vtable.pm:
5106         Expand multimethod vtable ops.
5108 2001-12-16 12:04  simon
5110         * Makefile.in:
5111         Added 'cvsclean' which doesn't zap CVS/* directories.
5113 2001-12-15 01:50  dan
5115         * include/parrot/string.h: Fixed typo in string.h. lagnuage,
5116         indeed!
5118         Thanks to grunblatt fom #parrot for the catch
5120 2001-12-15 01:39  dan
5122         * .cvsignore, Configure.pl, MANIFEST, languages/jako/Makefile.in,
5123         languages/miniperl/.cvsignore, languages/miniperl/Makefile,
5124         languages/miniperl/Makefile.in,
5125         languages/miniperl/Miniperl/Test.pm, languages/scheme/.cvsignore,
5126         languages/scheme/Makefile, languages/scheme/Makefile.in: Build
5127         tweaks.
5129         Courtesy of: Jay McCarthy <jay@kenyamountain.com>
5131 2001-12-14 17:39  dan
5133         * t/op/trans.t: More trans tests.
5135         Courtesy of: Simon Glover <scog@roe.ac.uk>
5137 2001-12-14 07:41  robert
5139         * make.pl: - define MAKE macro - topological sort and subgraph
5140         order - start of timestamp stuff   (still badly broken)
5142 2001-12-14 06:06  jgoff
5144         * optimizer.pl: Hopefully this should do the trick..
5146 2001-12-14 06:04  jgoff
5148         * Parrot/Optimizer.pm, lib/Parrot/Optimizer.pm: Optimizer
5150           optimizer.pl is the stub, Parrot/Optimizer.pm is the driver.
5152           The optimizer performs its work on a file post-macro expansion.
5153           Run it on a .pasm file, preferably with some trivially reducible
5154         operations
5155           like 'add I0,5,-6' or 'mul I0,I1,0'
5157 2001-12-14 05:48  robert
5159         * Makefile.in: case error EXE -> exe
5161 2001-12-14 05:42  robert
5163         * Makefile.in: remove legacy PDISASM macro
5165 2001-12-14 04:01  dan
5167         * classes/Makefile.in, languages/Makefile.in: Makefile tweaks for
5168         better Win building
5170         Courtesy of: Garrett Goebel <garrett@scriptpro.com>
5172 2001-12-13 22:03  dan
5174         * Configure.pl, Makefile.in, Parrot/Test.pm,
5175         languages/scheme/Makefile, languages/scheme/Scheme/Test.pm,
5176         lib/Parrot/Test.pm: Parrot test prog's now a config variable, so we
5177         can change it without having to change the world.
5179 2001-12-13 21:57  dan
5181         * core.ops, interpreter.c, docs/parrot_assembly.pod,
5182         include/parrot/interpreter.h, t/op/debuginfo.t: Added current
5183         file/line/package to interp structure, with ops to get and set
5184         them. Now we can know where we are!
5186 2001-12-13 19:43  dan
5188         * Configure.pl, Makefile.in: Makefile tweaks to hopefully make
5189         WinXP builds work out of the box
5191 2001-12-13 17:05  dan
5193         * Makefile.in, Parrot/Test.pm, lib/Parrot/Test.pm: Change test prog
5194         name again--makes case-insensitive systems much happier.
5196 2001-12-13 16:21  dan
5198         * core.ops, key.c, string.c, test_main.c, trace.c,
5199         classes/Makefile.in, include/parrot/trace.h: Fixes to clean up
5200         compiler warnings
5202         Courtesy of: Josh Wilmes <josh@sky.net>
5204 2001-12-13 13:33  gregor
5206         * languages/jako/Makefile.in:
5207         Improved the method of calling the assembler.
5209 2001-12-13 13:30  gregor
5211         * languages/jako/Makefile.in:
5212         Improve the build process. It now works from the main parrot dir,
5213         and from the languages/jako directory. Now uses the .SUFFIXES
5214         target and generic build rules to reduce clutter in the
5215         Makefile.in.
5217 2001-12-13 13:29  gregor
5219         * languages/jako/.cvsignore:
5220         Ignore the (now generated Makefile), and don't ignore .list files
5221         anymore, since we aren't generating them.
5223 2001-12-13 13:11  gregor
5225         * Configure.pl, MANIFEST, Makefile.in, languages/.cvsignore,
5226         languages/Makefile.in, languages/jako/Makefile,
5227         languages/jako/Makefile.in:
5228         Added a 'languages' target to the top-level Makefile.in, and
5229         modified the jako build procedure to involve Makefile.in -->
5230         Makefile too (done by Configure.pl).
5232         NOTE: languages/jako and language/scheme are built.
5233         languages/miniperl wasn't building right, so it was left off for
5234         now.
5236 2001-12-13 12:15  gregor
5238         * MANIFEST:
5239         Added MAINTAINER file and mandelzoom.jako from languages/jako to
5240         the MANIFEST.
5242 2001-12-13 12:12  gregor
5244         * .cvsignore, MANIFEST, Makefile.in, core.ops, interpreter.c,
5245         ops2c-prederef.pl, ops2c.pl, test_main.c,
5246         include/parrot/interp_guts.h, include/parrot/interpreter.h,
5247         include/parrot/op.h, include/parrot/oplib/.cvsignore:
5248         Welcome to the Just-in-Time Predereferencing Patch!
5250         This patch implements a "predereferencing" mode for parrot. That
5251         means that a lot of the dereferencing you see in DO_OP and in the
5252         opfuncs is done up front (really, JIT) rather than as and each time
5253         we execute each op in the byte code stream.
5255         This works by creating an array of void pointers with the same
5256         number of elements as the byte code array. This array starts out
5257         life zero-initialized.  Each time we go to execute an op, we check
5258         first to see if we have a NULL pointer at *cur_opcode. If so, we
5259         know we haven't done our predereferencing yet (this is the JIT
5260         part), so we call the prederef() function with sufficient args that
5261         it can go look up opfunc pointers and op arg types and put the
5262         opfunc and arg pointers at cur_opcode[0] .. cur_opcode[N - 1],
5263         where N is the number of args (counting the op itself as one arg).
5265         We assume that sizeof(INTVAL) <= sizeof(void *), so we can continue
5266         to have inline INTVAL constants.
5268         I've been getting about a 22% speed increase over vanilla code path
5269         when I compile with -O0. Advantage decreases at -O9 here. I tested
5270         with mops.pbc, and also by temporarily putting the -P flag in
5271         Parrot/Test.pm and running all the tests. So, this code is as
5272         correct as the test suite can detect.
5274         Here's how it plays out in the code:
5276           * New script ops2c-prederef.pl
5278             Copy-paste code reuse from ops2c.pl. Modified to expect the
5279         args to give
5280             a void ** cur_opcode and to return a void **.
5282           * Modified ops2c.pl
5284               * opfuncs are now static. Who needs to call them by name from
5285         outside,
5286                 anyway? They are accessed via the opfunc table.
5288               * Some MACRO stuff to make things work whether we prederef or
5289         not. It
5290                 may be possible to get rid of these some day if other folks
5291         agree
5292                 that we should be using CODE object pointers + offsets as
5293         our PC
5294                 rather than raw pointers to either opcode_t's or (void *)'s
5295                 (depending on prederef mode or no).
5297           * core.ops modified to be usable to build both kinds of opfuncs.
5298         For now,
5299             this means:
5301               * calls to push_generic_entry(... cur_opcode ...) were
5302         changed to
5303                 push_generic_entry(... CUR_OPCODE ...), where CUR_OPCODE is
5304         a
5305                 macro that does the right thing in both kinds of ops.c
5306         files.
5308                 This is applicable to the bsr op. If we treated
5309         destinations as
5310                 (Code PMC + local offset) rather than as
5311         pointer-to-memory-somewhere,
5312                 this wouldn't be a big deal. We may need to do that at some
5313         point
5314                 anyway, so that when you jump around and return not only do
5315         you have
5316                 the right PC (pointer, today), but you also have the
5317         thread/interpreter
5318                 knowing what chunk of bytecode it is in at all times
5319         (assuming we'll
5320                 allow reflection, as in ops that query or affect the
5321         current CODE PMC).
5323               * runinterp was modified. Instead of copying the top-level
5324         PackFile struct
5325                 and blasting its byte_code pointer, we simply call runops
5326         on the new
5327                 interp, passing in the pointer to the current interp's code
5328         and the
5329                 offset into that code at which to start (this last arg used
5330         to be a
5331                 pointer PC, now its an offset PC).
5333           * include/parrot/op.h
5335               * new typedef for prederef opfuncs (they return void **)
5337           * include/parrot/interp_guts.h
5339               * New DO_OP_PREDEREF() macro described above.
5341           * include/parrot/interpreter.h
5343               * New prototype of runops() -- see below.
5345               * resume_addr field changed to resume_flag and resume_offset
5346         pair of fields.
5347                 We might be resuming from interp using prederef to one not
5348         or vice-versa,
5349                 so pointers between the two don't play nice together.
5350         Offsets are beautiful.
5352               * New PARROT_PREDEREF_FLAG constant
5354           * interpreter.c
5356               * include "parrot/oplib/core_ops_prederef.h"
5358               * prederef() function described above.
5360               * runops_prederef() runops variant. Uses DO_OP_PREDEREF()
5361         macro as its core.
5363               * runops() modified to take size_t CODE-relative offset PC
5364         rather than
5365                 pointer PC. This made other things workable and doesn't
5366         seem to have lost
5367                 anything important (IMO).
5369           * test_main.c
5371               * New flag '-P' to enable predereferencing.
5373           * Makefile modified to build core_ops_prederef.c from core.ops
5374         via
5375             ops2c-prederef.pl.
5377             BTW, also added missing $(INC)/interp_guts.h to H_FILES.
5379             Added core_ops_prederef$(O) to O_FILES
5381 2001-12-13 12:12  gregor
5383         * languages/jako/MAINTAINER:
5384         Thought it would be nice to put this right in the code...
5386 2001-12-13 04:36  jgoff
5388         * languages/miniperl/Miniperl/Generator.pm: Commented out
5389         debugging, fixed register spillover algorithm
5391 2001-12-13 04:23  jgoff
5393         * make.pl: Found and fixed obob in the parser (Wasn't parsing last
5394         line) Restructured a bit of the dependency generator to fix a
5395         different obob bug.
5397 2001-12-13 03:43  robert
5399         * MANIFEST, docs/opcodes.pod: remove old docs/opcodes.pod
5401 2001-12-13 03:03  jgoff
5403         * make.pl: Added make.pl
5405 2001-12-13 02:44  jgoff
5407         * languages/miniperl/Miniperl.pm: Nearly-complete 'make'
5408         replacement in perl.  Non-compliant bits - Takes absolutely -NO-
5409         special flags...                     - Dies on undefined macros
5410         such as $(PDISASM) in current make                     - Dies on
5411         recursive macro expansions                       (Doesn't test for
5412         mutual or multipart loops)                     - In general it
5413         seems to be a little less lenient...  Missing bits - File
5414         mod/creation times aren't being looked at              - Actions
5415         aren't being taken              - The few funky variables ($@, $<)
5416         aren't being dealt with Bugs - Line numbers are slipping a bit.
5418 2001-12-13 02:29  jgoff
5420         * languages/miniperl/Miniperl/: Generator.pm, Parser.pm:
5421         Reconstructing files to make the parser flow a little better.
5423 2001-12-13 00:51  dan
5425         * resources.c: Be a bit less wasteful with resources that don't
5426         need to be aligned
5428 2001-12-12 18:22  dan
5430         * Makefile.in: D'oh! Fixed looping makefile bug.
5432         Courtesy of: "Jaen Saul" <jaen@saul.ee>
5434 2001-12-12 16:23  jgoff
5436         * languages/miniperl/t/001_basic/basic1.scheme: Bogus entry
5438 2001-12-12 16:22  jgoff
5440         * MANIFEST: Manifest additions for languages/miniperl
5442 2001-12-12 16:19  jgoff
5444         * languages/miniperl/t/001_basic/: basic.t, basic1.scheme: Basic
5445         tests. These are left over from the Scheme suite and shouldn't be
5446         used yet.
5448 2001-12-12 16:18  jgoff
5450         * languages/miniperl/: Miniperl/Generator.pm, Miniperl/Parser.pm,
5451         Miniperl/Test.pm, Miniperl/Tokenizer.pm, t/harness: Miniperl base
5452         modules. Miniperl/ is where the real work gets done.  t/ is largely
5453         vacant because it isn't ready to survive real tests yet.
5455 2001-12-12 16:17  jgoff
5457         * languages/miniperl/: Makefile, Miniperl.pm, foo.mpl, miniperlc,
5458         mpc: Final go-round, hopefully.
5460         languages/miniperl/Makefile - Used basically to run tests, as there
5461         is nothing                               here that needs to be
5462         dynamically built.  languages/miniperl/Miniperl.pm - Stub module
5463         that calls the real Miniperl/ mods languages/miniperl/foo.mpl -
5464         Sample miniperl file.  languages/miniperl/miniperlc - Miniperl
5465         compiler stub
5467 2001-12-12 16:09  dan
5469         * Configure.pl: Setting a variable with the make command name is
5470         useful.
5472 2001-12-12 15:07  simon
5474         * Makefile.in, languages/jako/Makefile, languages/scheme/Makefile:
5475         Recursive make considered "ow, don't do that".
5477 2001-12-12 14:45  dan
5479         * Makefile.in: Makefile had some non-portable code. (Okay, a lot of
5480         non-portable code) Killing builds on Win32 native. Small patch
5481         applied which hopefully fixes it.
5483 2001-12-12 06:12  ajgough
5485         * classes/Makefile.in: perl is $(PERL), you know it makes sense.
5487 2001-12-12 06:08  ajgough
5489         * Makefile.in: perl is $(PERL).
5491 2001-12-12 06:00  ajgough
5493         * t/op/integer.t: Added tests to integer.t so that all permutations
5494         of arguments are actually called at some point.
5496 2001-12-12 05:18  ajgough
5498         * t/op/time.t: I can't sleep, but I don't see why parrot shouldn't.
5499          Tests for sleep i|ic
5501 2001-12-12 05:09  ajgough
5503         * t/op/stacks.t: Added pushp and popp register stack tests.
5505 2001-12-12 04:51  ajgough
5507         * t/op/stacks.t: Added tests for save and restore, for all register
5508         types.  Let there be Haiku.
5510 2001-12-12 04:27  ajgough
5512         * t/op/basic.t: bsr_i test.  You know you want it.
5514 2001-12-12 02:55  ajgough
5516         * MANIFEST: Added hints/os2.pl to MANIFEST.
5518 2001-12-12 02:52  jgoff
5520         * core.ops, key.c: Final checkin... These are actually the correct
5521         copies.
5523 2001-12-12 02:12  jgoff
5525         * include/parrot/key.h: key.c - Removed a few functions,
5526         generalized set_element_value and element_value         to accept
5527         KEY_PAIRs from core.ops include/parrot/key.h - Modified header.
5528         core.ops - Modified to accept the new return style.
5530         This is a prelude to adding virtual-table methods to allow hashing
5531         &c. Expect at least one or two more redesigns before this settles
5532         down. However, it still passes the original tests.
5534 2001-12-11 13:35  gregor
5536         * runops_cores.c:
5537         Fixed a typo.
5539 2001-12-11 12:03  gregor
5541         * .cvsignore:
5542         Don't ignore test_prog, but do ignore parrot.
5544 2001-12-11 12:03  gregor
5546         * classes/.cvsignore:
5547         Ignore the generated file default.h
5549 2001-12-11 04:07  jgoff
5551         * key.c: Key source
5553 2001-12-11 04:05  jgoff
5555         * include/parrot/key.h, t/op/key.t: Needed header file, new test
5557 2001-12-11 04:00  jgoff
5559         * core.ops: Added new key aggregate operations to core ops.
5561 2001-12-11 04:00  jgoff
5563         * include/parrot/parrot.h: Added key.h to header list
5565 2001-12-11 03:59  jgoff
5567         * MANIFEST: Added key.c, include/parrot/key.h, t/op/key.t
5569 2001-12-11 03:58  jgoff
5571         * Makefile.in: Added implementation of key aggregates.
5573 2001-12-08 23:07  simon
5575         * README:
5576         README good to go.
5578 2001-12-08 23:05  simon
5580         * Configure.pl, Makefile.in, README, Parrot/Test.pm,
5581         docs/intro.pod, languages/jako/Makefile, languages/scheme/Makefile,
5582         languages/scheme/Scheme/Test.pm, lib/Parrot/Test.pm:
5583         test_prog? What is test_prog?
5585 2001-12-08 22:57  simon
5587         * ChangeLog:
5589         Oops, the changelog commit was on *this* machine.
5591 2001-12-08 22:56  simon
5593         * NEWS:
5594         Updates to NEWS and ChangeLog pre-release.
5596 2001-12-08 22:07  simon
5598         * MANIFEST, Makefile.in, classes/Makefile.in, classes/default.pmc,
5599         classes/perlnum.pmc, classes/pmc2c.pl:
5600         Add "default" PMC vtable so you can inherit implied stuff.
5602 2001-12-08 21:24  simon
5604         * Parrot/PackFile.pm, docs/parrot.pod, docs/parrotbyte.pod,
5605         docs/vtables.pod, lib/Parrot/PackFile.pm:
5606         Getting the documentation up to scratch.
5608 2001-12-08 21:21  simon
5610         * classes/pmc2c.pl:
5611         Allow inheriting from default class.
5613 2001-12-07 20:43  gregor
5615         * examples/assembly/queens.pasm:
5616         Regenerated the file with the latest jakoc.
5618 2001-12-07 20:29  simon
5620         * core.ops, t/op/stacks.t:
5621         Rename "rotate" to "rotate_up".
5623 2001-12-07 20:15  simon
5625         * t/op/stacks.t:
5626         Some tests for rotate.
5628 2001-12-07 00:55  gregor
5630         * core.ops:
5631         Cast the result of the pointer arithmetic, since without the cast
5632         there are warnings with some compilers, and without the parens
5633         around the pointer arithmetic, precedence breaks the meaning and
5634         causes crashes.
5636 2001-12-06 23:37  simon
5638         * core.ops:
5639         Temporary. I prefer compiler warnings to segfaults, thanks.
5641 2001-12-06 23:34  simon
5643         * runops_cores.c:
5644         Make "trace" work again.
5646 2001-12-06 21:23  dan
5648         * Parrot/Test.pm, lib/Parrot/Test.pm: Undo twiddles to test.pm
5650 2001-12-06 21:22  dan
5652         * core.ops, packfile.c, Parrot/Test.pm, include/parrot/stacks.h,
5653         lib/Parrot/Test.pm: Fix up source issues that made Dec C unhappy
5655 2001-12-06 19:22  simon
5657         * core.ops:
5658         Yet another "How the *%$! did that compile?" moment.
5660 2001-12-06 18:28  dan
5662         * hints/vms.pl: Fix to build, with a HERE logical required
5664 2001-12-06 17:48  dan
5666         * core.ops, interpreter.c, pbc2c.pl, pdump.c, test_main.c,
5667         docs/parrot_assembly.pod, include/parrot/interpreter.h: Sensible
5668         changes to the interpreter--flags are now part of the interp
5669         structure.
5671         Courtesy of "Melvin Smith" <mrjoltcola@mindspring.com>
5673 2001-12-06 14:02  gregor
5675         * docs/intro.pod:
5676         s/little_languages/languages/ in Jako section.
5678 2001-12-06 13:15  simon
5680         * Makefile.in:
5681         Ensure the documentation gets made.
5683 2001-12-06 13:12  simon
5685         * MANIFEST, docs/intro.pod:
5686         Documentation! Added the "Some Assembly Required" article with
5687         minor updates.
5689 2001-12-06 00:39  simon
5691         * core.ops:
5692         More "eq" support.
5694         Courtesy of: Nguon Hao Ching <hao@netaxs.com>
5696 2001-12-06 00:37  simon
5698         * test_main.c:
5699         Add the "-d" debug flag. Doesn't actually *do* anything yet.
5701         Courtesy of: Melvin <mrjoltcola@mindspring.com>
5703 2001-12-06 00:11  tom
5705         * string.c, chartypes/unicode.c, chartypes/usascii.c,
5706         encodings/singlebyte.c, encodings/utf16.c, encodings/utf8.c,
5707         include/parrot/chartype.h, include/parrot/encoding.h,
5708         include/parrot/parrot.h: Moved string to number conversion code out
5709         of the encoding layer and into the main string layer as neither the
5710         encoding layer nor the character type layer knows enough on it's
5711         own to do the conversion correctly.
5713 2001-12-05 23:12  tom
5715         * Makefile.in: Rebuild the classes directory if any of the object
5716         files for the classes are missing rather than only when perlint.o
5717         is missing.
5719 2001-12-05 19:43  gregor
5721         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm:
5722           * Reworked the constantize_string() stuff a little bit because it
5723         was
5724             puking on things like "\033[H\033[2J\0" (which occurs in the
5725             languages/jako/mandelzoom.jako example).
5727 2001-12-05 19:39  gregor
5729         * languages/jako/: Makefile, mandelzoom.jako:
5730         Added 'mandelzoom' example.
5732 2001-12-05 19:38  gregor
5734         * languages/jako/jakoc:
5735           * Added sleep()
5737           * Changed some instances of die() to confess()
5739 2001-12-05 18:34  gregor
5741         * t/: op/pmc.t, pmc/pmc.t:
5742         s/sting->int/string->int/
5744 2001-12-05 18:08  gregor
5746         * Parrot/.cvsignore:
5747         Ignore PMC.pm
5749 2001-12-05 18:05  gregor
5751         * classes/.cvsignore:
5752         Ignore the generated files.
5754 2001-12-05 17:19  gregor
5756         * pbc2c.pl:
5757           * Reverted recent changes, since they broke the script. Real fix
5758         coming
5759             later.
5761 2001-12-05 17:03  simon
5763         * classes/Makefile.in:
5764         Remember: change Makefile.in, not Makefile. D'oh.
5766 2001-12-05 17:02  simon
5768         * Makefile.in:
5769         Ensure PMC.pm gets remade.
5771 2001-12-05 16:58  simon
5773         * MANIFEST, Makefile.in, classes/Makefile.in,
5774         classes/perlundef.pmc, include/parrot/pmc.h:
5775         Add perlundef class.
5777 2001-12-05 16:45  simon
5779         * core.ops:
5780         Document "new P0, foo"
5782 2001-12-05 16:43  simon
5784         * MANIFEST, Makefile.in, pbc2c.pl, pmc_pm.pl, Parrot/Assembler.pm,
5785         lib/Parrot/Assembler.pm, t/op/pmc.t, t/pmc/pmc.t:
5786         Allow assembler to know about PMC class names.
5788 2001-12-04 13:39  ajgough
5790         * MANIFEST: Added t/op/pmc.t to MANIFEST.
5792 2001-12-04 05:02  ajgough
5794         * classes/perlnum.pmc: Picky compiler pointed out probable thinko
5795         in perlnum.c
5797 2001-12-04 04:24  ajgough
5799         * encodings/singlebyte.c, t/op/pmc.t, t/pmc/pmc.t: A much less
5800         broken form of strtod and appropriate tests.  Does not yet check
5801         for overflow.
5803 2001-12-04 01:31  ajgough
5805         * string.c, encodings/singlebyte.c, encodings/utf16.c,
5806         encodings/utf8.c, include/parrot/encoding.h: Added length parameter
5807         to extract_num and extract_int string vtables, without this it
5808         would be impossible to have strings with nulls in while still
5809         knowing where they ended.
5811 2001-12-03 18:40  ajgough
5813         * string.c, classes/perlstring.pmc, encodings/singlebyte.c,
5814         encodings/utf16.c, encodings/utf8.c, include/parrot/encoding.h,
5815         include/parrot/string.h: Moved pmc string to number conversion into
5816         the string encoding tables.
5818 2001-12-03 00:21  ajgough
5820         * core.ops, t/op/pmc.t, t/pmc/pmc.t: Added set i, p and some tests
5821         for p-> integer.
5823 2001-12-02 23:09  jgoff
5825         * classes/Makefile.in: Removed some redundant targets.
5827 2001-12-02 19:02  ajgough
5829         * t/: op/pmc.t, pmc/pmc.t: Modified all pmc tests to make use of fp
5830         equality macro rather than using perl to generate expected output,
5831         all tests now have <<OUTPUT.
5833 2001-12-02 17:44  ajgough
5835         * t/op/trans.t: Upgraded fp_eq and fp_ne macros to be more useful
5836         for pmc.t as well.  Will probably move macros into another file at
5837         some point, although this might be best left until the tests are
5838         unperled.
5840 2001-12-02 06:16  jgoff
5842         * classes/pmc2c.pl: It wasn't properly setting the vtable index
5843         within Parrot_Perl{Class}_init.
5845 2001-12-02 06:09  jgoff
5847         * classes/Makefile.in: I seem to have removed *$(O) twice..
5849 2001-12-02 05:06  jgoff
5851         * Configure.pl, MANIFEST, Makefile.in: (Hopefully the last time...)
5852         Configure.pl - Removed '-I./include', added classes/Makefile
5853         generation MANIFEST     - Added classes/Makefile.in Makefile.in  -
5854         Removed old classes/* make stuff                Added target for
5855         classes/Makefile
5857 2001-12-02 04:48  jgoff
5859         * classes/Makefile.in: Going to be used shortly...
5861 2001-12-02 04:40  jgoff
5863         * docs/Makefile: Configure.pl - Added automatic makefile creation
5864         for docs/ and classes/                Removed '-I./include' because
5865         it was getting incorrectly                passed to classes/
5866         MANIFEST - added docs/Makefile.in, classes/Makefile.in Makefile.in
5867         - Removed classes/ build stuff, replaced with classes/Makefile.in
5868                     Added '-I./include' locally docs/Makefile - Should no
5869         longer be used, but I'm not brave enough to do a
5870         cvs delete.
5872 2001-12-02 01:21  ajgough
5874         * t/op/trans.t: Refactored trans math tests to have hard coded
5875         expected return values and be more ready to be unperled at some
5876         point in the future.  Added $fp_equality_macro which is a
5877         "nearly-equal-to" function.
5879 2001-12-02 01:18  ajgough
5881         * Makefile.in: Humph.  People really ought to use Makefile
5882         variables, s/perl/$(PERL)/ throughout.
5884 2001-12-01 18:15  jgoff
5886         * classes/: perlint.pmc, perlnum.pmc: Temporary patch until we
5887         figure out what to do vis-a-vis the lack of snprintf.
5889 2001-11-30 13:14  ajgough
5891         * t/op/: integer.t, number.t: Added tests for abs ops to number.t
5892         and integer.t
5894 2001-11-30 13:14  ajgough
5896         * core.ops: Added abs(i|n, i|ic|n|nc) ops to core.ops, using if <0
5897         -, else ... form.
5899 2001-11-30 10:36  simon
5901         * core.ops:
5902         Rewrite print_p to do the right thing.
5904 2001-11-30 06:21  jgoff
5906         * t/: op/pmc.t, pmc/pmc.t: New tests for integer/number/string
5907         concat,               integer/number/string math
5909 2001-11-30 06:20  jgoff
5911         * classes/: perlint.pmc, perlnum.pmc, perlstring.pmc:
5912         classes/perlint.pmc - Fixes and expanding for concat and math with
5913         strings classes/perlnum.pmc - Fixes and expanding for concat and
5914         math with strings classes/perlstring.pmc - Fixes and expanding for
5915         concat and math with strings
5917 2001-11-29 15:21  ajgough
5919         * hints/os2.pl: This is a hints file for os/2, I've set $c{perl} as
5920         $^X lies, which confused bash which make uses to run things when
5921         doing its stuff.
5923 2001-11-29 04:58  jgoff
5925         * classes/perlstring.pmc: Removed C++-style comments for good
5926         measure
5928 2001-11-29 04:51  jgoff
5930         * t/: op/pmc.t, pmc/pmc.t: New tests for PMC integers
5932 2001-11-29 04:28  jgoff
5934         * global_setup.c: Initialize PMC strings
5936 2001-11-29 04:25  jgoff
5938         * core.ops: Added set_p_s and set_p_sc, modified print_p to handle
5939         string PMCs.
5941 2001-11-29 04:24  jgoff
5943         * classes/: perlint.pmc, perlnum.pmc, perlstring.pmc: Changed PMC
5944         files to properly upgrade int to num, do calculations.  Also added
5945         basic string operations. Currently errors out on anything but set
5946         operations, but this will be fixed soon.
5948 2001-11-29 04:22  jgoff
5950         * Makefile.in: PMC .c files weren't getting cleaned out.
5952 2001-11-28 17:00  simon
5954         * t/harness:
5956         Make csh-glob happy.
5958         Courtesy of: Andy Dougherty: <doughera@lafayette.edu>
5960 2001-11-28 16:40  simon
5962         * classes/perlnum.pmc:
5964         De-C++
5966 2001-11-28 15:22  simon
5968         * string.c:
5970         Fixes Alex's string concat worry.
5972 2001-11-28 14:27  ajgough
5974         * t/op/string.t: test "null onto null" incorrectly passing as it
5975         produced no output.  Output provided.
5977 2001-11-28 11:14  simon
5979         * include/parrot/pmc.h:
5981         Placate AIX.
5983 2001-11-26 21:03  dan
5985         * MANIFEST, hints/darwin.pl: Tweaks to build on Mac OS X 10.1
5987 2001-11-26 17:29  simon
5989         * classes/perlint.pmc:
5991         Various subtle but non-showstopper bugs.
5993 2001-11-26 11:23  simon
5995         * classes/pmc2c.pl:
5997         Replace dependency on Text::Balanced
5999         Courtesy of: Bart Lateur <bart.lateur@pandora.be>
6001 2001-11-26 05:22  jgoff
6003         * global_setup.c: Last file that should need to be committed. I
6004         swear.
6006 2001-11-26 05:09  jgoff
6008         * core.ops: Let's try this again... Changes to core.ops required
6010 2001-11-26 04:58  jgoff
6012         * classes/perlint.pmc, classes/perlnum.pmc, t/op/pmc.t,
6013         t/pmc/pmc.t: Makefile.in - Added missing cleanup line for perl*.c
6014         core.ops - Added set(p,n|nc), modified print(p) global_setup.c -
6015         Uncommented PerlNum_init classes/perlint.pmc - Added set_number
6016         functions classes/perlnum.pmc - Set up basic number functions
6017         t/op/pmc.t - Added tests for set P0.<number> and {add,mul,sub,div}
6018         tests against numbers and numbers+integers
6020 2001-11-25 13:18  simon
6022         * Makefile.in:
6023         Windows XP make doesn't like $<
6025 2001-11-25 12:56  simon
6027         * MANIFEST, Makefile.in, classes/genclass.pl, classes/perlint.c,
6028         classes/perlint.pmc, classes/perlnum.c, classes/perlnum.pmc,
6029         classes/perlstring.c, classes/perlstring.pmc, classes/pmc2c.pl,
6030         examples/assembly/mops_p.pasm:
6031         PMC preprocessor.
6033         Courtesy of: Angel Faus <afaus@corp.vlex.com>
6035         I (Simon) also added a couple more integer methods, but no tests
6036         since I'm a Bad Person.
6038 2001-11-25 08:40  brentdax
6040         * ops2c.pl, Parrot/Op.pm, Parrot/OpsFile.pm, lib/Parrot/Op.pm,
6041         lib/Parrot/OpsFile.pm: Allow _ in op names
6043 2001-11-25 05:54  jgoff
6045         * classes/perlint.c, t/op/pmc.t, t/pmc/pmc.t: classes/perlint.c -
6046         Added basic math ops t/op/pmc.t - Added tests of basic math ops
6048 2001-11-23 18:27  simon
6050         * core.ops, classes/perlint.c, examples/assembly/mops_p.pasm:
6051         Add everything you need to make MOPS use PMCs.
6053 2001-11-23 18:06  simon
6055         * core.ops:
6056         Eh, you'll need this for rewriting mops.pasm.
6058 2001-11-23 17:55  simon
6060         * core.ops, classes/perlint.c, include/parrot/pmc.h, t/op/pmc.t,
6061         t/pmc/pmc.t:
6062         More work on integer PMCs.
6064 2001-11-23 17:29  simon
6066         * Makefile.in:
6067         Surprise! Whitespace! HLAGHLAGHLAGH
6069 2001-11-23 17:28  simon
6071         * Makefile.in, ops2c.pl, ops2pm.pl:
6072         Add vtables.ops to the core
6074         Courtesy of: Jeff Goff <jgoff@speakeasy.net>
6076 2001-11-22 18:39  simon
6078         * core.ops, global_setup.c, docs/parrot_assembly.pod, t/op/pmc.t,
6079         t/pmc/pmc.t:
6080         We can now create PMCs.
6082 2001-11-21 05:49  jgoff
6084         * Makefile.in: Makefile cleans up *.pasm *.pbc *.out
6086 2001-11-20 16:00  simon
6088         * docs/vtables.pod, include/parrot/pmc.h:
6089         Reorder PMC flags so there's a fixed number of user-defined flags.
6091         Courtesy of: Dave Mitchell <davem@fdgroup.co.uk>
6093 2001-11-19 03:39  jgoff
6095         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm, t/op/basic.t:
6096         Parrot/Assembler.pm - Allow "print 'foo'", and properly escape
6097         nested quotes.  t/op/basic.t - Add tests for single-quoted strings,
6098         escaped quotes, and proper                handling of newlines.
6100 2001-11-16 22:03  simon
6102         * classes/perlint.c:
6103         More work on the Perl Integer class. More needed, though.
6105 2001-11-16 21:57  simon
6107         * pmc.c, vtable.tbl, classes/genclass.pl, classes/perlint.c:
6108         Rename ->new to ->init, and rework pmc.c:pmc_new to fiddle it.
6110 2001-11-16 20:49  simon
6112         * interpreter.c, runops_cores.c, trace.c,
6113         include/parrot/runops_cores.h:
6114         Kill superfluous runops cores.
6116 2001-11-16 17:50  simon
6118         * MANIFEST, Makefile.in, classes/intclass.c, classes/perlint.c,
6119         classes/perlnum.c, classes/perlstring.c, classes/scalarclass.c,
6120         include/parrot/parrot.h, include/parrot/pmc.h:
6121         Skeleton for Perl scalar types, done right.
6123 2001-11-16 16:15  simon
6125         * classes/genclass.pl:
6126         This tidies up genclass to deal with the new-style multimethods.
6128 2001-11-16 15:29  simon
6130         * Makefile.in, make_vtable_ops.pl, vtable.tbl, Parrot/Vtable.pm,
6131         lib/Parrot/Vtable.pm, include/parrot/parrot.h:
6132         Rework multimethods to be *true* multimethods - that is, have
6133         different types.
6135 2001-11-15 22:29  simon
6137         * MANIFEST, Makefile.in, pmc.c:
6138         pmc.c linkage and support. Oh, and making it compile.
6140 2001-11-15 22:26  dan
6142         * t/op/interp.t: Forgot to tell CVS about the test...
6144 2001-11-15 22:10  dan
6146         * MANIFEST, Types_pm.in, core.ops, vtable_h.pl,
6147         docs/parrot_assembly.pod, include/parrot/string.h: Added in support
6148         for PMC registers for the interpreter.
6150         Added in the docs for the runinterp opcode.
6152         Added in code for both the newinterp and runinterp opcodes, so we
6153         can now create new interpreters from within parrot and have them do
6154         things. (Though we can't pass data back and forth. Yet)
6156 2001-11-15 21:24  simon
6158         * vtable.tbl, classes/scalarclass.c, docs/vtables.pod:
6159         More documentation, and other changes as discussed with Dan.
6161 2001-11-15 19:51  simon
6163         * classes/scalarclass.c:
6164         De-cut-and-pasto.
6166 2001-11-15 19:50  simon
6168         * classes/scalarclass.c:
6169         A little code tidiness.
6171 2001-11-15 19:33  simon
6173         * include/parrot/pmc.h:
6174         Missed this in the previous commit - un-constantize the base for
6175         user-defined PMC flags.
6177 2001-11-15 19:28  simon
6179         * classes/scalarclass.c:
6180         Hey look, sanity.
6182 2001-11-15 17:09  simon
6184         * classes/scalarclass.c:
6185         It seems I have completely forgotten how to write C.
6187 2001-11-15 16:53  simon
6189         * docs/vtables.pod:
6190         Start of the PMC classes documentation.
6192 2001-11-15 14:46  simon
6194         * classes/scalarclass.c:
6195         Changing to use a Perl-style struct instead of the union cache.
6197 2001-11-13 23:56  tom
6199         * string.c: Removed leading _ from string_index as function names
6200         starting with _ are reserved to implementors by the C standard.
6202         Also fixed string_index to use the encoding routines instead of
6203         assuming a single byte encoding.
6205 2001-11-13 12:59  jgoff
6207         * string.c: Patched string_concat to accept null strings.  That
6208         test was failing. Nothing to do with ord().
6210 2001-11-13 12:43  jgoff
6212         * string.c: string_ord function, string_concat fixes
6214 2001-11-13 04:52  jgoff
6216         * core.ops: Added ord to core.ops
6218 2001-11-13 04:35  jgoff
6220         * docs/strings.pod, include/parrot/exceptions.h,
6221         include/parrot/string.h, t/op/string.t: core.ops - Added ord
6222         operator, documentation string.c - Added string_ord, _string_index
6223         (_string_index is a static helper)              Patched
6224         string_concat to handle null strings properly.  docs/strings.pod -
6225         Description of string_ord include/parrot/exceptions.h - Added
6226         ORD_OUT_OF_STRING exception include/parrot/string.h - Added
6227         string_ord() t/op/string.t - Added full set of test for
6228         ord_i_(s|sc)(_(i|ic))?
6230         string.c contains a bit of documentation explaining the logic
6231         behind _string_index, primarily having to do with multiple encoding
6232         formats.
6234 2001-11-12 22:30  simon
6236         * t/op/macro.t:
6237         Count 'em.
6239 2001-11-12 22:28  simon
6241         * Makefile.in:
6242         Add a rule to compile "platform"
6244 2001-11-12 22:26  simon
6246         * Makefile.in:
6247         Tidy up distclean target.
6249 2001-11-12 16:54  dan
6251         * MANIFEST, Parrot/Assembler.pm, lib/Parrot/Assembler.pm,
6252         t/op/macro.t: Fixes to the assembler's macro facility and a test
6254         Courtesy of: Jeff <jgoff@speakeasy.net>
6256 2001-11-12 16:50  dan
6258         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm: Allow input from
6259         stdin
6261         Courtesy of: Jeff <jgoff@speakeasy.net>
6263 2001-11-12 16:36  dan
6265         * Parrot/Test.pm, lib/Parrot/Test.pm: Fix to make test work on
6266         CygWin
6268         Courtesy of: Alex Gough <alexander.gough@st-hughs.oxford.ac.uk>
6270 2001-11-12 11:22  simon
6272         * examples/assembly/mops.pasm:
6274         Trivial tightening of mops loop.
6276 2001-11-07 23:57  ajgough
6278         * docs/tests.pod: This is a basic quide to writing tests with
6279         assembler.
6281 2001-11-07 22:29  dan
6283         * stacks.c: Added a little documentation on the cleanup parameter
6284         for an entry
6286 2001-11-07 14:43  dan
6288         * MANIFEST, platforms/generic.c, platforms/linux.c,
6289         platforms/linux.h: Portability patches.
6291         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
6293 2001-11-06 19:51  tom
6295         * Makefile.in: Clean up object files in the subdirectories as well
6296         as those in the top level directory.
6298         Enhanced version of patch from Daniel Grunblatt
6299         <daniel@grunblatt.com.ar>
6301 2001-11-06 16:14  dan
6303         * Configure.pl, MANIFEST, Makefile.in, core.ops,
6304         platforms/generic.c, platforms/generic.h: Made things a bit more
6305         platform-independent. Makefile still needs work to pick up changes
6306         to the platform-specific files.
6308 2001-11-05 21:32  dan
6310         * docs/parrot_assembly.pod: Added docs for the GC control ops
6312 2001-11-04 02:52  gregor
6314         * platforms/: win32.c, win32.h:
6315           * win32 dynamic loading functions.
6317         Courtesy of Jason Diamond <jason@injektilo.org>
6319 2001-11-04 00:04  brentdax
6321         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm: Assembler fixes:
6322         allows an absolute path to be used and gives a useful error message
6323         if the original source file can't be found
6325 2001-11-02 12:37  gregor
6327         * platforms/: linux.c, linux.h:
6328           * Beginning of dynamic loading support. Linux only for now.
6330 2001-11-02 12:13  gregor
6332         * MANIFEST, time.c, include/parrot/time.h:
6333           * Removed time.[hc], since they have been superseded by the new
6334         platform
6335             stuff.
6337 2001-11-02 12:11  gregor
6339         * Configure.pl, Makefile.in, core.ops, vtable.tbl,
6340         classes/intclass.c, classes/scalarclass.c, hints/mswin32.pl,
6341         include/parrot/parrot.h, platforms/linux.c, platforms/linux.h,
6342         platforms/win32.c, platforms/win32.h:
6343         Patch from Jason Diamond to make win32 platform stuff work:
6345         * Modified Configure.pl, mswin32.pl, and Makefile.in so that the
6346         platform specific files in the platforms directory gets copied to
6347         the correct directories. The Makefile will re-copy the platform.h
6348         and .c files if the original is modified.
6350         * #include platform.h in parrot.h instead of time.h.
6352         * Removed time.h and time.obj from the Makefile. time.h and time.c
6353         aren't being used anymore since that code was moved to linux.c and
6354         win32.c.
6356         * Renamed the BOOL typedef in parrot.h to BOOLVAL (inspired by
6357         INTVAL and FLOATVAL). This was conflicting with the BOOL typedef in
6358         windows.h. This required updating several files besides parrot.h.
6360         * Added a DEFAULT_OPEN_MODE to linux.h and win32.h and used that
6361         instead of the missing identifiers (on Windows) in core.ops in the
6362         calls to open.
6364         * Added Parrot_sleep and Parrot_setenv to both the linux and win32
6365         platform files and called those from core.ops. The Linux code for
6366         these functions came from core.ops so they should hopefully work.
6368         Courtesy of Jason Diamond <jason@injektilo.org>
6370 2001-11-02 06:43  brentdax
6372         * Makefile.in, hints/mswin32.pl: Fix classes/intclass.obj building
6373         for Win32 (courtesy of Jason Diamond <jason@injektilo.org>)
6375 2001-11-02 02:26  gregor
6377         * .cvsignore, MANIFEST, include/parrot/.cvsignore,
6378         platforms/linux.c, platforms/linux.h, platforms/win32.c,
6379         platforms/win32.h:
6380           * Beginnings of platform support files in platform/*.[hc]
6382 2001-11-01 23:37  tom
6384         * classes/intclass.c: Added missing *'s to STRING arguments and
6385         return values to avoid compiler warnings.
6387 2001-11-01 22:21  gregor
6389         * MANIFEST, Makefile.in, core.ops, obscure.ops, time.c,
6390         include/parrot/parrot.h, include/parrot/time.h:
6391         Initial "fix" of time(n) op for Win32:
6393           * Initial Win32 code Courtesy of Richard J Cox <rjcox@cix.co.uk>
6395           * time.c and include/parrot/time.h
6397             First attempt at getting this working across platforms. The
6398             macro WIN32 being tested might not be right.
6400           * New functions Parrot_intval_time() and Parrot_floatval_time()
6401             wrap the appropriate functionality depending upon platform.
6402             Changed core.ops to call these.
6404         Added obscure.ops with obscure transcendental ops.
6406         Added simple file I/O ops (close, open, read, write):
6408           * Initial versions Courtesy of Jeff <jgoff@speakeasy.net>
6410           * I changed some arg ordering stuff.
6412           * I added read/write of INTVALs and FLOATVALs.
6414         Added environment variable ops (getenv, setenv)
6416         Added system error ops (err(i) and err(s) for accessing errno and
6417         strerr().
6419         Moved print ops in with other "temporary" developer ops, since
6420         they'll move to a devel.ops or temp.ops oplib once we have oplibs.
6422 2001-10-31 22:51  tom
6424         * MANIFEST, Makefile.in, chartype.c, encoding.c, global_setup.c,
6425         packfile.c, string.c, strnative.c, strutf16.c, strutf32.c,
6426         strutf8.c, transcode.c, chartypes/unicode.c, chartypes/usascii.c,
6427         encodings/singlebyte.c, encodings/utf16.c, encodings/utf32.c,
6428         encodings/utf8.c, include/parrot/chartype.h,
6429         include/parrot/encoding.h, include/parrot/exceptions.h,
6430         include/parrot/parrot.h, include/parrot/string.h,
6431         include/parrot/strnative.h, include/parrot/strutf16.h,
6432         include/parrot/strutf32.h, include/parrot/strutf8.h,
6433         include/parrot/transcode.h: Reworked the string code in line with
6434         Dan's latest design that separates character sets from encodings.
6436 2001-10-31 19:53  dan
6438         * docs/parrot_assembly.pod: Finished I/O section of docs
6440 2001-10-31 16:51  dan
6442         * core.ops, docs/parrot_assembly.pod, include/parrot/parrot.h:
6443         Moved includes out of core.ops and into parrot.h where they belong
6444         (suitably guarded with #ifdefs). Also some updates to
6445         parrot_assembly.pod
6447 2001-10-30 21:43  dan
6449         * core.ops, stacks.c, docs/parrot_assembly.pod,
6450         include/parrot/stacks.h: Added entrytype opcode to fetch the type
6451         of the entry on the stack
6453 2001-10-29 18:30  dan
6455         * stacks.c: You can turn off stack entry type validation on pop by
6456         passing in a type of 0 now. (For those cases where you just want to
6457         throw the darned thing away)
6459 2001-10-29 14:37  gregor
6461         * core.ops, languages/jako/jakoc:
6462           * New variants of the save ops to save constants on the stack.
6463         This is
6464             useful for saving zero arg and result counts on the stack, for
6465         example.
6467           * Modified jakoc to to adapt to the newly announced calling
6468         conventions.
6469             Even though Jako source code appears to show subroutines with
6470         fixed
6471             numbers of arguments and results, they are implemented with the
6472             variable count calling convention. Future modifications will be
6473         needed
6474             to ensure that an exception is raised if the stack frame is of
6475         the
6476             wrong size (or, at least that we pop the complete frame off).
6477         We'll
6478             also have to make more changes to support the true
6479         fixed-arg-count
6480             and fixed-result-count parts of the calling convention spec.
6482 2001-10-28 16:53  simon
6484         * MANIFEST, stacks.c, classes/scalarclass.c,
6485         include/parrot/stacks.h:
6486         Unbelievably bad errors of mine, plus a type incompatibility of
6487         Dan's.
6489 2001-10-28 08:30  simon
6491         * classes/scalarclass.c:
6492         Beginning of a scalar class.
6494 2001-10-28 08:29  simon
6496         * make_vtable_ops.pl, vtable.tbl, Parrot/Vtable.pm,
6497         lib/Parrot/Vtable.pm, classes/genclass.pl, classes/intclass.c,
6498         include/parrot/pmc.h:
6499         This fixes the problem with vtables and pointer arithmetic.
6501 2001-10-26 19:58  dan
6503         * core.ops, interpreter.c, stacks.c, include/parrot/interpreter.h,
6504         include/parrot/stacks.h: Split the generic stack into a user push
6505         stack and a control stack
6507 2001-10-26 02:59  bdwheele
6509         * Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm: [no log message]
6511 2001-10-24 20:27  dan
6513         * languages/scheme/: Makefile, Scheme.pm, schemec,
6514         Scheme/Generator.pm, Scheme/Parser.pm, Scheme/Test.pm,
6515         Scheme/Tokenizer.pm, t/harness, t/arith/basic.t, t/arith/logic.t,
6516         t/arith/nested.t, t/io/basic.t, t/logic/basic.t: Added the mini
6517         Scheme compiler
6519 2001-10-24 20:23  dan
6521         * MANIFEST, pdump.c, docs/parrot_assembly.pod: Update for
6522         interpreter needs in pdump.c. Added scheme bits to manifest
6524 2001-10-24 16:43  gregor
6526         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm:
6527           * Make the assembler handle octal character code escapes in
6528         string
6529             constants.
6531 2001-10-24 15:56  dan
6533         * MANIFEST, examples/assembly/life.pasm: Added an example in to
6534         play the game of life
6536 2001-10-24 15:54  dan
6538         * core.ops: Added sleep. We'll need to override this to do events
6539         properly anyway, so...
6541 2001-10-24 14:03  gregor
6543         * Makefile.in, pbc2c.pl, pdump.c:
6544           * Adapt pdump.c and pbc2c.pl to the new requirement to pass
6545         interpreter
6546             pointer into string functions.
6548         Courtesy of: Ryan O'Neil <talisman580@yahoo.com>
6550 2001-10-23 20:09  gregor
6552         * languages/jako/jakoc:
6553           * Terminological refinement in regexp capture comment.
6555 2001-10-23 15:23  simon
6557         * classes/genclass.pl:
6558         Use a saner ANSI C construct to make MIPSPro happy.
6560         Courtesy of: Alex Gough <alexander.gough@st-hughs.oxford.ac.uk>
6562 2001-10-23 00:34  tom
6564         * core.ops, string.c, strnative.c, strutf16.c, strutf32.c,
6565         strutf8.c, include/parrot/string.h: Make sure the interpreter
6566         structure is passed to the transcoder as necessary, including
6567         passing it to string_compare().
6569 2001-10-23 00:32  tom
6571         * Makefile.in: Make pdump build again by including resources.o in
6572         the link.
6574 2001-10-22 22:43  dan
6576         * core.ops, packfile.c, string.c, strnative.c, strutf16.c,
6577         strutf32.c, strutf8.c, test_main.c, transcode.c,
6578         include/parrot/packfile.h, include/parrot/parrot.h,
6579         include/parrot/resources.h, include/parrot/string.h,
6580         include/parrot/transcode.h: Everything now uses the allocators and
6581         deallocators in resources.c.
6583         Unfortunately we lost standalone string-test mode, but I can cope
6584         with that.
6586         Please note that until we have a real allocation/deallocation/GC
6587         system, this'll leak. A *lot*.
6589 2001-10-22 20:27  dan
6591         * MANIFEST, Makefile.in, pmc.c, resources.c,
6592         include/parrot/resources.h: First cut to handle arena allocation of
6593         PMC headers. (Amongst other things)
6595 2001-10-22 19:02  dan
6597         * Configure.pl, config_h.in, register.c, include/parrot/register.h:
6598         Now each register type has its own mask macro, which is the right
6599         thing to do.
6601         Patch courtesy of Jason Gloudon <perl@gloudon.com>
6603 2001-10-21 23:40  tom
6605         * stacks.c, t/op/stacks.t: Fix bug in handling of rollover to a new
6606         stack chunk and add a test to test this rollover in future.
6608         Courtesy of Jason Gloudon <perl@gloudon.com>.
6610 2001-10-21 19:14  dan
6612         * include/parrot/string.h: Changed string 'unused' field to the
6613         language field.
6615 2001-10-21 18:18  gregor
6617         * languages/jako/: Makefile, mops.jako:
6618           * Makefile: 'clean' target removes .list files, too. And, it does
6619         rm -f
6620             with wildcards rather than listing things explicitly.
6622           * mops.jako actually prints out the
6623         millions-of-operations-per-second
6624             (mops) value instead of just the operations-per-second value.
6626 2001-10-21 18:03  simon
6628         * classes/intclass.o:
6629         *smack*! WRONG!
6631 2001-10-21 17:47  simon
6633         * MANIFEST, Makefile.in, make_vtable_ops.pl, pmc.c, vtable_h.pl,
6634         Parrot/Vtable.pm, classes/genclass.pl, classes/intclass.c,
6635         classes/intclass.o, include/parrot/parrot.h, include/parrot/pmc.h,
6636         lib/Parrot/Vtable.pm:
6637         Initial work on PMCs. Explanation to follow
6639 2001-10-21 15:20  gregor
6641         * examples/assembly/queens.pasm:
6642           * Modernize the calling conventions in queens.pasm. It was using
6643         swap,
6644             which now must be rotate. Also, changed to use return values on
6645         the
6646             stack instead of in I0.
6648 2001-10-19 18:14  gregor
6650         * core.ops, stacks.c, include/parrot/stacks.h,
6651         languages/jako/jakoc:
6652         Per Dan's request, replacing 'swap' op by 'rotate'.
6654           * core.ops: Replaced 'swap()' by 'rotate(i|ic)'.
6656           * stacks.c and stacks.h: Removed swap-related functions from my
6657             prior commit, replacing them with stack_depth(), stack_entry()
6658             and rotate_entries().
6660             NOTE: The stack_depth() and rotate_entries() routines could
6661             be made more efficient through the caching of the sum of chunk
6662             'used' members from lower chunks in a field in the upper
6663             chunks. Also, if the interpreter's stack_base was changed to
6664             hold the pointer to the *top* chunk (since we usually come
6665             at the stack from the top down) instead of the *bottom*
6666             chunk. The code here at least works, and we can decide about
6667             bigger changes separately.
6669             For now, rotate only handles rotates in one direction and
6670             of magnituded one. A fully general rotate would do handle
6671             rotates in both directions and of arbitrary amounts. Again,
6672             this implementation is sufficient for current applications,
6673             and a feature-complete version can be developed if this turns
6674             out to be otherwise the right type of implementation.
6676             This change includes a new exception for ERROR_STACK_SHALLOW,
6677             meaning "not-empty-yet-not-deep-enough-for-what-you-asked".
6679           * jakoc: Changed the calling convention to use rotate instead
6680             of swap (of course). Also changed the convention for return
6681             value passing to use the stack as well.
6683 2001-10-19 13:36  gregor
6685         * MANIFEST, core.ops, disassemble.pl, stacks.c,
6686         examples/assembly/queens.pasm, include/parrot/stacks.h,
6687         languages/jako/.cvsignore, languages/jako/Makefile,
6688         languages/jako/bench.jako, languages/jako/euclid.jako,
6689         languages/jako/fact.jako, languages/jako/jakoc,
6690         languages/jako/mandelbrot.jako, languages/jako/mops.jako,
6691         languages/jako/primes.jako, languages/jako/queens.jako,
6692         languages/jako/sub.jako:
6693           * New stack functions push_entry(), pop_entry() and swap_entry().
6694             The first two exist for the support of the last one. These
6695             functions don't care what is in the stack entries. These exist
6696             to support the new 'swap' op (see next bullet).
6698           * New op 'swap' for swapping the top two elements on the stack.
6699             This is necessary for passing arguments to functions, since
6700             the return address will be on top of any arguments that have
6701             been pushed on the stack. This way, you can use a (swap, pop)
6702             pair to retrieve each argument (for subroutine linkage).
6704           * Disassembler now prints numbers in decimal by default, with
6705             a new '-x' flag to turn on hexadecimal display. Since other
6706             members of the Parrot Tool Set use decimal by default, this
6707             makes it easier to compare output from the various tools.
6709           * Jako compiler has more explanatory comments and the following
6710             new features:
6712               * Lexically scoped variables.
6714               * Subroutines that take arguments and return values:
6716                   sub int foo(int bar) {
6717                     if (bar == 1) {
6718                       return 42;
6719                     } else {
6720                       return 13;
6721                     }
6722                   }
6723               * ... if (...) and ... unless (...) statement modifiers
6724                 can be used on next, last and redo.
6726               * Bitwise and (&, &=) and or (|, |=) ops.
6728               * Type names are just 'int', 'num', 'str', and 'poly' now.
6729                 The old long names 'integer', 'number', 'string', and
6730                 'polytype' are no longer valid.
6732               * Integer variable assignments can now use 0b (binary),
6733                 0 (octal) and 0x (hexadecimal) radix prefixes on literals.
6735           * New Jako and Parrot assembly examples queens.{jako,pasm} for
6736             solving the eight-queens problem. The assembly example is a
6737             hand-modified version of the assembly code produced by the
6738             Jako compiler from queens.jako. A few unnecessary ops have
6739             been removed, lots of unnecessary labels have been removed,
6740             and all the Jako source code comments have been removed.
6742           * Makefile and .cvsignore in languages/jako modified so that
6743             the assembler produces listings when assembling the programs,
6744             yet the *.list files are ignored by CVS.
6746           * Made the default target in languages/jako/Makefile 'all'.
6748           * Modified some of the Jako examples to use some of the new
6749             features of Jako, such as subroutines and lexical variable
6750             scoping.
6752 2001-10-19 02:43  gregor
6754         * runops_cores.c, include/parrot/runops_cores.h:
6755         Bug fix (gcc doesn't complain, but MIPSpro does):
6757           * Added missing extern to runops_cores array declaration in
6758             include/parrot/runops_cores.h
6760           * Also added 'const' there and in runops_cores.c
6762 2001-10-18 15:18  gregor
6764         * .cvsignore, include/parrot/oplib/.cvsignore:
6765           * Ignore the vtable-related generated files.
6767 2001-10-18 15:14  gregor
6769         * core.ops:
6770           * left and right shifts now allow the 2nd argument to be a
6771         constant.
6773 2001-10-18 14:55  simon
6775         * make_vtable_ops.pl:
6776         This is C, not Perl. How on earth did that even compile?
6778 2001-10-18 14:54  simon
6780         * make_vtable_ops.pl:
6781         More vtable ops.
6783 2001-10-18 12:33  simon
6785         * Makefile.in, make_vtable_ops.pl, vtable.tbl:
6786         Initial stab at vtable opcode creation stuff.
6788 2001-10-18 02:15  gregor
6790         * MANIFEST, Makefile.in, interpreter.c, runops_cores.c, trace.c,
6791         include/parrot/interpreter.h, include/parrot/runops_cores.h,
6792         include/parrot/trace.h: Preparation for autogenerated runops cores:
6794           * Split tracing and runops core stuff out of interpreter.c into
6795             trace.c and runops_cores.c
6797           * Similar split of stuff from include/parrot/interpreter.h
6799           * Manifest and Makefile.in updates to make things still compile.
6801 2001-10-18 01:21  gregor
6803         * Makefile.in, ops2c.pl, ops2pm.pl, pbc2c.pl: Bug fixes:
6805           * Makefile.in: examples/assembly/mops.c depends on pbc2c.pl
6807           * Makefile.in: Parrot/OpLib/core.pm depends on ops2pm.pl
6809           * ops2c.pl: Added second arg to mkdir (perl 5.005_02 complains)
6811           * ops2pm.pl: Added second arg to mkdir (perl 5.005_02 complains)
6813           * pbc2c.pl: Removed explicit include of <math.h>, replacing it
6814         with
6815             copy of $ops->preamble.
6817 2001-10-17 22:32  bdwheele
6819         * interpreter.c: Moved op dump code into trace_op_dump, per Dan's
6820         request.
6822 2001-10-17 22:08  gregor
6824         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm:
6825           * Now handles label-and-comment-only lines.
6827 2001-10-17 22:04  bdwheele
6829         * interpreter.c: added more comprehensive trace output
6831 2001-10-17 16:50  tom
6833         * Makefile.in: Removed the explicit rule for building mops.o from
6834         mops.c so that the implicit rule for compiling C files is used
6835         instead. This means that the chosen C flags are used, including any
6836         optimisation options.
6838 2001-10-17 15:24  tom
6840         * core.ops, Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm: Enhanced the
6841         op explosion logic to be able to handle exploding this:
6843           sub(i, i|ic, i|ic)
6845         into these:
6847           sub(i, i, i)
6848           sub(i, i, ic)
6849           sub(i, ic, i)
6851         without also generating this unwanted version:
6853           sub(i, ic, ic)
6855         The enhanced version rejects any expansion where there is more than
6856         one expanded argument and all the expanded arguments are constants.
6858 2001-10-17 14:20  simon
6860         * Makefile.in, ops2c.pl, ops2pm.pl, examples/assembly/Makefile:
6861         Build fixes to use correct Perl version and ensure that things are
6862         running in the right directory.
6864         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
6866 2001-10-17 13:16  simon
6868         * Makefile.in:
6869         core.pm is more critical than that.
6871 2001-10-17 13:05  simon
6873         * core.ops, Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm:
6874         "Explode" ops into multiple versions for different parameters.
6876         Courtesy of: Tom Hughes <tom@compton.nu>
6878 2001-10-17 12:54  simon
6880         * Makefile.in:
6881         Fix dependencies and cleaning.
6883 2001-10-17 12:45  simon
6885         * Configure.pl, Makefile.in:
6886         Fixes to make Parrot compile without the temporary build hack
6888         Courtesy of: Jason Gloudon <perl@gloudon.com>
6890 2001-10-16 20:43  gregor
6892         * Makefile.in:
6893           * Fixed dependencies for building Parrot/OpLib/core.pm
6895 2001-10-16 19:35  bdwheele
6897         * core.ops, t/op/string.t: Changed set s,sc to use string_copy &
6898         added test, thanks to Alex Gough
6900 2001-10-16 16:49  bdwheele
6902         * core.ops: added opcode variants for constants and 3 arg concat
6904 2001-10-16 15:12  bdwheele
6906         * core.ops: added "set Sx,Sy" as a string copy to match the other
6907         register-to-register copies available
6909 2001-10-16 13:09  gregor
6911         * core.ops:
6912           * Added #include <sys/time.h> in the preamble for gettimeofday().
6914 2001-10-16 13:09  gregor
6916         * Makefile.in:
6917           * Removed cd t; make, which no longer applies
6919 2001-10-16 03:18  bdwheele
6921         * core.ops: fix save & restore operations to push correct type onto
6922         stack. [good eye to Jason Gloudon for noticing this]
6924 2001-10-16 01:38  bdwheele
6926         * core.ops, register.c, examples/assembly/fact.pasm,
6927         include/parrot/register.h: send in the clones:  clone routines for
6928         parrot + example program
6930 2001-10-15 22:37  gregor
6932         * MANIFEST, Makefile.in, examples/assembly/.cvsignore,
6933         examples/assembly/Makefile, examples/assembly/bsr.pasm,
6934         examples/assembly/call.pasm, examples/assembly/euclid.pasm,
6935         examples/assembly/jump.pasm, examples/assembly/local_label.pasm,
6936         examples/assembly/mops.pasm, examples/assembly/stack.pasm,
6937         examples/assembly/substr.pasm, examples/assembly/trace.pasm,
6938         t/.cvsignore, t/Makefile, t/call.pasm, t/euclid.pasm, t/jump.pasm,
6939         t/local_label.pasm, t/test.pasm, t/test2.pasm, t/test3.pasm,
6940         t/test4.pasm, t/test5.pasm, t/trace.pasm:
6941           * Moved examples from t/*.pasm to examples/assembly/*.pasm, with
6942         some
6943             renames so the names match what they demonstrate.
6945 2001-10-15 22:18  gregor
6947         * core.ops, t/test.pasm:
6948           * time_n uses gettimeofday() to get sub-second times.
6950           * t/test.pasm uses time_n directly rather than doing int stuff
6951         and
6952             converting to num later.
6954 2001-10-15 12:28  gregor
6956         * t/: test.pasm, test2.pasm, trace.pasm:
6957           * t/test.pasm prints using string constants instead of string
6958         regs.
6960           * t/test2.pasm assembles (using implicit op modes)
6962           * t/trace.pasm updated for new behavior of trace_ic, which does
6963         not
6964             require an 'end' after 'trace'.
6966 2001-10-15 00:47  gregor
6968         * core.ops, interpreter.c, test_main.c,
6969         include/parrot/interpreter.h, t/test.pasm:   * New interpreter flag
6970         PARROT_PROFILE_FLAG
6972           * New runops cores to handle profiling
6974           * Support for -p flag in test_prog to enable profiling
6976           * New profile_ic op to control profiling at run-time
6978 2001-10-14 21:54  gregor
6980         * core.ops, Parrot/OpsFile.pm, docs/.cvsignore, docs/Makefile,
6981         lib/Parrot/OpsFile.pm: Integrated op documentation.
6983           * core.ops now contains POD documentation of ops, interspersed
6984         with the
6985             ops themselves
6987           * Ops are organized into POD =head2 sections
6989           * Parrot/OpsFile.pm now treats the preamble of the ops file as
6990         anything
6991             up to the first POD directive OR op definition.
6993           * docs/Makefile now generates core_ops.pod from core.ops vi
6994         perldoc -u.
6996 2001-10-14 11:58  simon
6998         * Makefile.in:
6999         Unbreak Digital Un^W^WTru64
7001 2001-10-14 11:00  simon
7003         * Configure.pl:
7004         Remove weird typo.
7006 2001-10-14 10:56  tom
7008         * Configure.pl: Stop Configure trying to make op_info.c and op.h as
7009         op_info.c no longer exists and op.h is no longer a generated file.
7011 2001-10-14 10:54  tom
7013         * Makefile.in: Added vtable.h to the list of things removed by the
7014         clean target.
7016 2001-10-14 01:43  gregor
7018         * .cvsignore, MANIFEST, Makefile.in, basic_opcodes.ops,
7019         build_interp_starter.pl, core.ops, disassemble.pl, interpreter.c,
7020         make_op_header.pl, memory.c, opcheck.pl, opcode_table, ops2c.pl,
7021         ops2pm.pl, packfile.c, pbc2c.pl, process_opfunc.pl,
7022         Parrot/Assembler.pm, Parrot/Op.pm, Parrot/OpsFile.pm,
7023         Parrot/OpLib/.cvsignore, lib/Parrot/Assembler.pm, lib/Parrot/Op.pm,
7024         lib/Parrot/OpsFile.pm, lib/Parrot/OpLib/.cvsignore,
7025         include/parrot/.cvsignore, include/parrot/interp_guts.h,
7026         include/parrot/interpreter.h, include/parrot/op.h,
7027         include/parrot/oplib/.cvsignore, t/.cvsignore, t/Makefile,
7028         t/euclid.pasm, t/test.pasm, t/op/integer.t, t/op/number.t,
7029         t/op/stacks.t, t/op/string.t, t/op/trans.t:
7030         Moby Patch:
7032           * basic_opcodes.ops and opcode_table replaced by core.ops
7034           * process_opfunc.pl replaced by Parrot/OpsFile.pm, Parrot/Op.pm,
7035             and ops2c.pl. These convert *.ops to *_ops.c and
7036             include/parrot/oplib/*_ops.h
7038           * New ops2pm.pl converts *.ops to Parrot/OpLib/*.pm
7040           * disassemble.pl modified to use
7042           * interpreter.c modified to use structures in core_ops.c instead
7043             of the old op_info and op_func stuff. We're not yet to the
7044             point of handling multiple oplibs at a time, but we are getting
7045             there...
7047             Fingerprinting stuff disabled for now. We used to go off
7048             opcode_table. We need to rethink this. I have some ideas to
7049             make it unnecessary, but it remains to be seen whether others
7050             will like the direction they take us.
7052             Termination condition for while(){} loop in runops is now
7053             (pc) instead of (*pc). Any op can cause a HALT by returning
7054             a NULL pointer. Ops end, bounds and trace all do this. So, now
7055             the 'end' op body is actually executed, although all it does
7056             is HALT.
7058           * Makefile.in modified to perform a test build using pbc2c.pl,
7059             which is the bytecode --> C compiler I've posted to the
7060             list before.
7062           * Op full names are now autogenerated. Op root names must not
7063             contain underscores, so some op renamings have happened.
7064             Such as clear_i becoming cleari.
7066 2001-10-13 11:49  simon
7068         * Configure.pl, MANIFEST:
7069         Make parrot actually build again.
7071 2001-10-12 21:34  dan
7073         * docs/parrot_assembly.pod: Added docs for the new save/restore/bsr
7074         opcodes
7076 2001-10-12 20:56  dan
7078         * MANIFEST, Makefile.in, basic_opcodes.ops, interpreter.c,
7079         opcode_table, process_opfunc.pl, stacks.c, include/parrot/stacks.h,
7080         t/test3.pasm, t/test4.pasm, t/test5.pasm: Changes to support
7081         generic stack now in. We also have subroutines, of a simple sort!
7083 2001-10-12 19:15  tom
7085         * t/op/string.t: Improved string comparison tests try all string
7086         combinations with each of the comparison ops.
7088 2001-10-12 19:09  dan
7090         * interpreter.c: Properly sets up generic stack now
7092 2001-10-12 19:09  dan
7094         * include/parrot/interpreter.h: Fixed stack chunk struct type in
7095         interpreter structure
7097 2001-10-12 18:59  dan
7099         * stacks.c, include/parrot/parrot.h, include/parrot/stacks.h: More
7100         changes to get the generic stack working
7102 2001-10-12 18:59  dan
7104         * Configure.pl, MANIFEST, config_h.in, testparrotsizes_c.in,
7105         hints/vms.pl: Made the changes to figure out mask bits for various
7106         register and stack chunks
7108 2001-10-11 22:09  dan
7110         * docs/parrot_assembly.pod: Tossed the parameter for return
7112 2001-10-11 19:28  tom
7114         * strnative.c: Assignment, not comparison.  (Plus formatted for
7115         coding standards)
7117         Courtesy of Bryan C. Warnock
7119 2001-10-10 19:21  tom
7121         * basic_opcodes.ops, opcode_table, string.c, strnative.c,
7122         strutf16.c, strutf32.c, strutf8.c, docs/strings.pod,
7123         include/parrot/string.h, t/op/string.t: Added support for string
7124         comparisons and extended the comparison ops to include comparison
7125         of strings.
7127 2001-10-10 17:58  dan
7129         * MANIFEST: Shouldn't have added vtable.h to the manifest...
7131 2001-10-10 17:54  dan
7133         * MANIFEST, stacks.c, vtable_h.pl, Parrot/Vtable.pm,
7134         lib/Parrot/Vtable.pm: Now spits out the #defines for the various
7135         vtable type entries properly
7137 2001-10-10 15:37  dan
7139         * Parrot/Vtable.pm, lib/Parrot/Vtable.pm: Re-enabled change to
7140         parse new vtable.tbl file now that I've actually checked *in* the
7141         new format vtable.tbl file...
7143 2001-10-10 15:32  dan
7145         * vtable.tbl: New Column to indicate the type of the vtabel entry
7146         so we can know how many slots it takes
7148 2001-10-10 05:26  thgibbs
7150         * Parrot/Vtable.pm, lib/Parrot/Vtable.pm, vtable_h.pl: Patch to
7151         allow parrot to compile.  PACKAGE is not defined, therefore, I
7152         added a struct before it to have it not complain until we define
7153         PACKAGE.  Also, there was an extra shift in Vtable.pm and a missing
7154         semicolon at the end of the struct declaration.
7156 2001-10-10 05:09  thgibbs
7158         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm: This patch makes
7159         string constants of the form U"string" become unicode encoded
7160         parrot strings and the form N"string" become native encoded parrot
7161         strings.
7163         Courtesy of: Tom Hughes <tom@compton.nu>
7165 2001-10-10 04:55  dan
7167         * vtable_h.pl, Parrot/Vtable.pm, lib/Parrot/Vtable.pm: Start of
7168         support for generating the vtable function table offset macros
7170 2001-10-10 01:05  simon
7172         * t/op/integer.t:
7173         The test for cmod_i was using the 'mod Ix, Ix, Ix' form which
7174         compiles into the mod op, not the cmod_i op, hence wasn't testing
7175         what it thought it was.
7177         Courtesy of: Alex Gough <alexander.gough@st-hughs.oxford.ac.uk>
7179 2001-10-09 03:45  thgibbs
7181         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm: Patch to allow
7182         assembler to generate unicode strings.
7184         Courtesy of: Tom Hughes <tom@compton.nu>
7186 2001-10-08 19:30  brentdax
7188         * Configure.pl, test_c.in, hints/vms.pl: Cleaner VMS support, more
7189         info for Parrot::Config to remember, more flexible test.c stuff
7191 2001-10-08 15:04  gregor
7193         * basic_opcodes.ops:
7194           * Removed trash from early mod_i experiments (pardon our dust)
7196 2001-10-08 14:56  gregor
7198         * basic_opcodes.ops:
7199           * Fixed a couple of typos.
7201 2001-10-08 14:45  gregor
7203         * basic_opcodes.ops, opcode_table, t/op/integer.t, t/op/number.t:
7204         Arithmetic enhancements:
7206           * Renamed existing mod_i as cmod_i and added "corrected" mod_i:
7208             NOTE: This "uncorrected mod" algorithm uses the C language's
7209         built-in
7210             mod operator (x % y), which is
7212                 ... the remainder when x is divided by y, and thus is zero
7213         when y
7214                 divides x exactly.
7215                 ...
7216                 The direction of truncation for / and teh sign of the
7217         result for %
7218                 are machine-dependent for negative operands, as is the
7219         action taken
7220                 on overflow or underflow.
7221                                                                      --
7222         [1], page 41
7224             Also:
7226                 ... if the second operand is 0, the result is undefined.
7227         Otherwise, it
7228                 is always true that (a/b)*b + a%b is equal to z. I both
7229         operands are
7230                 non-negative, then teh remainder is non-negative and
7231         smaller than the
7232                 divisor; if not, it is guaranteed only that the absolute
7233         value of the
7234                 remainder is smaller than the absolute value of the
7235         divisor.
7236                                                                      --
7237         [1], page 205
7239             This op is provided for those who need it (such as
7240         speed-sensitive
7241             applications with heavy use of mod, but using it only with
7242         positive
7243             arguments), but a more mathematically useful numeric mod based
7244         on
7245             floor(x/y) and defined with y == 0 is provided by the mod_i op.
7247               [1] Brian W. Kernighan and Dennis M. Ritchie, *The C
7248         Programming
7249                   Language*, Second Edition. Prentice Hall, 1988.
7251           * Added "corrected" mod_i:
7253             NOTE: This "corrected mod" algorithm is based on the C code on
7254         page 70
7255             of [1]. Assuming correct behavior of C's built-in mod operator
7256         (%) with
7257             positive arguments, this algorithm implements a mathematically
7258         convenient
7259             version of mod, defined thus:
7261               x mod y = x - y * floor(x / y)
7263             For more information on this definition of mod, see section 3.4
7264         of [2],
7265             pages 81-85.
7267             References:
7269               [1] Donald E. Knuth, *MMIXware: A RISC Computer for the Third
7270                   Millennium* Springer, 1999.
7272               [2] Ronald L. Graham, Donald E. Knuth and Oren Patashnik,
7273         *Concrete
7274                   Mathematics*, Second Edition. Addison-Wesley, 1994.
7276           * Added mod_n, using the same formula as above, but with FLOATVAL
7277             arguments.
7279           * Added cmod_n, using the C math library's fmod() function:
7281             NOTE: This "uncorrected mod" algorithm uses the built-in C math
7282         library's
7283             fmod() function, which computes
7285                 ... the remainder of dividing x by y. The return value is x
7286         - n * y,
7287                 where n is the quotient of x / y, rounded towards zero to
7288         an
7289                 integer.
7290                                                 -- fmod() manpage on RedHat
7291         Linux 7.0
7293             In addition, fmod() returns
7295                 the remainder, unless y is zero, when the function fails
7296         and errno
7297                 is set.
7299             According to page 251 of [1], the result when y is zero is
7300         implementation-
7301             defined.
7303             This op is provided for those who need it, but a more
7304         mathematically
7305             useful numeric mod based on floor(x/y) instead of truncate(x/y)
7306         and
7307             defined with y == 0 is provided by the mod_n op.
7309               [1] Brian W. Kernighan and Dennis M. Ritchie, *The C
7310         Programming
7311                   Language*, Second Edition. Prentice Hall, 1988.
7313           * Added and modified tests as appropriate for the above.
7315 2001-10-08 08:49  thgibbs
7317         * include/parrot/exceptions.h, include/parrot/parrot.h,
7318         include/parrot/string.h, include/parrot/strutf16.h,
7319         include/parrot/strutf32.h, include/parrot/strutf8.h,
7320         include/parrot/transcode.h, include/parrot/unicode.h, MANIFEST,
7321         Makefile.in, global_setup.c, string.c, strnative.c, transcode.c,
7322         strutf16.c, strutf32.c, strutf8.c: Added code to handle unicode
7323         strings for utf8, utf16, and utf32.
7325         Courtesy of: Tom Hughes <tom@compton.nu>
7327 2001-10-08 08:10  thgibbs
7329         * memory.c: Fixed uninitialized variables.
7331         Courtesy of: Bryan C. Warnock <bwarnock@raba.com>
7333 2001-10-08 01:21  gregor
7335         * packfile.c:   * Casting a return value
7337           * Potential uninitialized variable fix
7339         Courtesy of Bryan C. Warnock <bwarnock@raba.com>
7341 2001-10-08 01:15  gregor
7343         * packfile.c, test_main.c: One of Bryan's languishing patches (with
7344         a few tweaks of my own):
7346           * Line wrapping
7348           * Printf format fixes
7350         Courtesy of: Bryan C. Warnock <bwarnock@raba.com>
7352 2001-10-07 22:39  thgibbs
7354         * build_interp_starter.pl: No longer adds (void*) casts to
7355         interp_guts.c function table as they are not necessary in ANSI C.
7357 2001-10-07 16:27  gregor
7359         * basic_opcodes.ops, interpreter.c, opcode_table,
7360         process_opfunc.pl, test_main.c, include/parrot/interpreter.h,
7361         t/trace.pasm:
7362           * Two new ops, trace_ic and bounds_ic that twiddle bits in
7363             interpreter->flags and set interpreter->resume_addr.
7365           * Two new runops core variants, so now we cover the relevant
7366             flag space over {trace, notrace} x {boundscheck, noboundscheck}
7368           * Runops core selection that converts the flags into an index
7369         into
7370             a core table (runops_cores) to get the core function pointer.
7372           * A new trace_op variant that doesn't do bounds checking (used by
7373             the non-bounds-checking-but-tracing runops core).
7375           * PC is passed into the cores so that they can be used when
7376             resuming (they used to assume starting at the beginning of the
7377             code, which would thwart resumption).
7379           * runops() itself is changed to have a while() loop in it so that
7380             any time we drop out of the core, we'll resume if we have an
7381             interpreter->resume_addr set (after reselecting the core,
7382         though).
7384           * process_opfunc.pl has a new "macro": RESUME(), that sets up
7385             interpreter->resume_addr. This is used by the new ops. The new
7386             ops still return the new PC as the next op (which MUST be an
7387             'end' op to force the core loop to terminate -- *pc being false
7388             is the only termination condition we can count on for all
7389         cores).
7391           * New interpreter flag: PARROT_BOUNDS_FLAG, used to control
7392             bounds checking core selection.
7394           * test_prog now has a '-b' flag in addition to the '-t' flag.
7395         Now,
7396             bounds checking is off by default (I saw a performance boost:
7397             6.3 Mop/s with -b, 7.0 Mop/s without).
7399           * A new sample/test program: t/trace.pasm that twiddles the trace
7400             flag while it is running.
7402 2001-10-07 15:41  gregor
7404         * .cvsignore, Makefile.in, build_interp_starter.pl, interpreter.c,
7405         include/parrot/.cvsignore, include/parrot/interpreter.h:
7406         Now that 0.0.2 is released, I can clear out the backlog of approved
7407         but uncommitted patches. Here's one Dan approved on 2001-09-21
7408         (Simplified DO_OP):
7410           * test_prog and pdump are linked with only the files the need,
7411         not
7412             al the files.
7414           * build_interp_starter.pl writes out op_info.[hc], too. These
7415         files
7416             contain op name, arg count and arg type information. This will
7417         be
7418             useful for multiple things in the future, including better
7419         trace
7420             output and the crystalizing loader.
7422           * The DO_OP macro is now simpler and doesn't require explicit
7423             temporaries.
7425           * interpreter.c is modified to use the new op info in tracing
7426         output.
7428           * The interpreter just points its opcode_funcs and opcode_info
7429             members at the default tables rather than allocating memory on
7430             the fly.
7432 2001-10-07 03:58  thgibbs
7434         * include/parrot/.cvsignore, vtable_h.pl: Minor updates fixing a
7435         comment and adding vtable.h to .cvsignore as it is produced by
7436         vtable_h.in
7438 2001-10-06 20:58  thgibbs
7440         * vtable.tbl: Added * to REGEX type.
7442         Courtesy of Bryan C. Warnock <bwarnock@raba.com>
7444 2001-10-06 13:41  simon
7446         * MANIFEST, Makefile.in, vtable.tbl, vtable_h.pl, Parrot/Vtable.pm,
7447         include/parrot/parrot.h, lib/Parrot/Vtable.pm:
7448         Framework for vtable functions.
7450 2001-10-06 06:52  thgibbs
7452         * make_op_header.pl: Removed confusing and unused typedef.
7454 2001-10-06 06:31  thgibbs
7456         * Parrot/Opcode.pm, lib/Parrot/Opcode.pm: Removed variables that
7457         are no longer used.
7459 2001-10-06 06:26  thgibbs
7461         * disassemble.pl: Changed intval to op in disassembler.
7463 2001-10-06 06:21  thgibbs
7465         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm: Fixed typo with
7466         Assembler, local labels, and integer constants.
7468 2001-10-06 03:11  ask
7470         * Makefile.in: make `make test` actually run the tests on
7471         darwin/macosx
7473 2001-10-06 02:04  thgibbs
7475         * Parrot/Assembler.pm, Parrot/Opcode.pm, Parrot/PackFile.pm,
7476         Parrot/String.pm, Parrot/PackFile/ConstTable.pm,
7477         Parrot/PackFile/Constant.pm, include/parrot/packfile.h,
7478         include/parrot/register.h, lib/Parrot/Assembler.pm,
7479         lib/Parrot/Opcode.pm, lib/Parrot/PackFile.pm, lib/Parrot/String.pm,
7480         lib/Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/Constant.pm,
7481         t/op/integer.t: No, it didn't mess anything up.  I just forgot to
7482         type make. :)
7484 2001-10-06 02:02  thgibbs
7486         * Parrot/Assembler.pm, Parrot/Opcode.pm, Parrot/PackFile.pm,
7487         Parrot/String.pm, Parrot/PackFile/ConstTable.pm,
7488         Parrot/PackFile/Constant.pm, include/parrot/packfile.h,
7489         include/parrot/register.h, lib/Parrot/Assembler.pm,
7490         lib/Parrot/Opcode.pm, lib/Parrot/PackFile.pm, lib/Parrot/String.pm,
7491         lib/Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/Constant.pm,
7492         t/op/integer.t: oops...this messed something up.  I must have
7493         missed something in the patch...I have reverted.
7495 2001-10-06 01:57  thgibbs
7497         * Parrot/Assembler.pm, Parrot/Opcode.pm, Parrot/PackFile.pm,
7498         Parrot/String.pm, Parrot/PackFile/ConstTable.pm,
7499         Parrot/PackFile/Constant.pm, include/parrot/packfile.h,
7500         include/parrot/register.h, lib/Parrot/Assembler.pm,
7501         lib/Parrot/Opcode.pm, lib/Parrot/PackFile.pm, lib/Parrot/String.pm,
7502         lib/Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/Constant.pm,
7503         t/op/integer.t, Types_pm.in, basic_opcodes.ops, config_h.in,
7504         memory.c, packfile.c, process_opfunc.pl, strnative.c, test_main.c:
7505         This patch ensures that all bytecode is of type opcode_t except for
7506         the constant table constants.  That means that almost all of the
7507         INTVALs in the code were replaced with opcode_t and the i pack type
7508         was replaced with the op pack type in calls to pack_arg and such.
7509         Also, since it has been declared that ALL integer constants are to
7510         be 32 bits, some test cases were changed to ensure that an integer
7511         constant was no bigger than 2 ** 31.
7513         process_opfunc.pl was also cleaned up to no longer look at either
7514         opcode_table or interp_guts.h but gather all of its information
7515         from Opcode.pm.
7517         The Assembler.pm module was changed to do late binding of arguments
7518         so that 0 could be treated like 0.0 without having to be so
7519         declared.  Also, only strings now use the [sc:N] intermediate form
7520         as it was unnecessary for integer and float types.
7522 2001-10-05 21:59  gregor
7524         * MANIFEST, languages/jako/Makefile:
7525         Fixed things due to the movement of little_languages/* to
7526         languages/jako.
7528 2001-10-05 18:31  gregor
7530         * MANIFEST:
7531         Updated MANIFEST to reflect recent additions for Jako.
7533 2001-10-05 17:54  gregor
7535         * languages/jako/: Makefile, bench.jako, euclid.jako, fact.jako,
7536         fib.jako, hello.jako, jakoc, leibniz.jako, mandelbrot.jako,
7537         mops.jako, primes.jako, sub.jako:
7538           * Compiler:
7540               * User-defined subroutines.
7541               * Generates assembly code with the Jako code in comments.
7542               * "end;" no longer required at the end of programs.
7543               * Better handling of const-reg and reg-const.
7544               * Optimizes const-const operations to compile-time
7545         evaluations.
7546               * Constants in addition to variables.
7547               * Arithmetic fixes.
7548               * Allow leading minus signs in integer and number constants
7549         (ahem).
7550               * goto's.
7552           * New sample programs:
7554               * leibniz.jako (based on Greg McCarroll's leibniz.pasm
7555         example)
7556               * mandelbrot.jako (based on Leon Brocard's translation of
7557         Glenn Rhodes' C code)
7558               * mops.jako (based on t/test.pasm)
7559               * primes.jako (based on Leon Brocard's primes.pasm example)
7560               * sub.jako (demonstrates a simple user-defined subroutine)
7562 2001-10-05 12:54  gregor
7564         * Parrot/Opcode.pm, lib/Parrot/Opcode.pm:
7565           * Removed mysterious extra copy of code after POD.
7567 2001-10-05 12:46  gregor
7569         * basic_opcodes.ops, t/op/string.t:
7570           * Enabled the previously SKIPped test of printing string regs
7571         after
7572             clear_s
7574           * Made print_s do nothing if the STRING pointer in the register
7575         file
7576             is NULL.
7578 2001-10-04 21:19  dan
7580         * Configure.pl: VMS tweaks
7582 2001-10-04 21:17  dan
7584         * hints/vms.pl: Hints file for VMS
7586 2001-10-04 00:58  bdwheele
7588         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm: fixed but in
7589         Assembler which stopped equates from working.
7591 2001-10-03 21:50  gregor
7593         * Makefile.in, docs/.cvsignore, docs/Makefile, docs/parrotbyte.pod:
7595           * More documentation updates for the packfile stuff.
7597 2001-10-03 21:37  gregor
7599         * docs/parrotbyte.pod:
7600           * Pointed the reader at Parrot::PackFile.
7602 2001-10-03 21:34  gregor
7604         * Parrot/PackFile.pm, lib/Parrot/PackFile.pm:
7605           * Updated documentation to match current implementation.
7607 2001-10-03 18:30  gregor
7609         * .cvsignore, disassemble.pl, Parrot/Assembler.pm,
7610         lib/Parrot/Assembler.pm, t/call.pasm, t/euclid.pasm,
7611         t/local_label.pasm, t/test.pasm, t/test2.pasm, t/test3.pasm,
7612         t/op/basic.t:
7613           * Added new syntax to the assembler to allow square-bracket
7614             arithmetic expressions involving (global) labels, the current
7615             instructions base address ('@'), numeric constants (not
7616         equates)
7617             and basic arithmetic operators (+, -, *, / -- although + and -
7618             are likely to be the only ones used in practice).
7620           * Fixed a bug in Parrot/Assemble.pl that caused macro expansion
7621         to
7622             fail (argument passing wasn't working).
7624           * Enabled t/op/basic.t's last test, which is actually a copy of
7625         the
7626             code from t/call.pasm. Now all tests there are enabled and
7627         working.
7629           * Added new example/test program t/call.pasm to demonstrate
7630         working
7631             macros and poor-man's subroutine calls
7633           * Added header comments to t/*.pasm
7635 2001-10-03 18:00  simon
7637         * ChangeLog:
7638         Needed, since it's in the MANIFEST.
7640 2001-10-03 17:56  simon
7642         * t/op/: string.t, time.t:
7643         Small fixes to help Win32 on its way.
7645 2001-10-03 17:41  simon
7647         * MANIFEST, README:
7648         Oops. Tiny bugs.
7650 2001-10-03 17:39  simon
7652         * MANIFEST, NEWS, README:
7653         README, NEWS and MANIFEST? Could it be time for Parrot 0.0.2? I
7654         think so!
7656 2001-10-03 17:21  simon
7658         * basic_opcodes.ops, interpreter.c, packfile.c:
7659         Evil printf bandaid (which allows Sparc64 to pass tests)
7661         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
7663 2001-10-03 16:58  simon
7665         * string.c, t/op/string.t:
7666         chop fixes for n < 0 and tests
7668         Courtesy of: Alex Gough <alex@rcon.org>
7670 2001-10-03 15:51  thgibbs
7672         * interpreter.c: Changed an occurrence of INTVAL to opcode_t
7674         Courtesy of: Bryan C. Warnock <bwarnock@raba.com>
7676 2001-10-02 17:48  dan
7678         * include/parrot/stacks.h: Fix typo in function name
7680 2001-10-02 17:35  dan
7682         * include/parrot/stacks.h: changed to support new stack stuff
7683         coming after 0.02
7685 2001-10-02 15:01  simon
7687         * Configure.pl, Types_pm.in, basic_opcodes.ops, config_h.in,
7688         interpreter.c, make_op_header.pl, memory.c, packfile.c,
7689         process_opfunc.pl, register.c, string.c, strnative.c,
7690         Parrot/Opcode.pm, Parrot/PackFile.pm, Parrot/String.pm,
7691         lib/Parrot/Opcode.pm, lib/Parrot/PackFile.pm, lib/Parrot/String.pm,
7692         Parrot/PackFile/ConstTable.pm, Parrot/PackFile/Constant.pm,
7693         docs/overview.pod, docs/strings.pod, include/parrot/interpreter.h,
7694         include/parrot/memory.h, include/parrot/packfile.h,
7695         include/parrot/parrot.h, include/parrot/register.h,
7696         include/parrot/stacks.h, include/parrot/string.h,
7697         lib/Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/Constant.pm:
7699         The Great Renaming.
7701 2001-10-02 12:49  gregor
7703         * process_opfunc.pl:
7704           * Fixed a tyop:  s/string/integer/ for INT_CONST expansion
7706 2001-10-02 12:40  simon
7708         * basic_opcodes.ops, process_opfunc.pl, register.c,
7709         include/parrot/register.h:
7710         Move preprocessing of register accessors to process_opfunc.pl
7712         Courtesy of: Jason Gloudon <perl@gloudon.com>
7714 2001-10-02 01:20  ask
7716         * README: add a few lines about lists.
7718 2001-10-01 23:00  brentdax
7720         * Configure.pl, Makefile.in, hints/mswin32.pl: Make 'make clean'
7721         work on Win32 (courtesy of Mattia Barbon <mbarbon@dsi.unive.it>)
7723 2001-10-01 22:50  brentdax
7725         * Configure.pl, test_c.in: More changes for 64-bit compatibility
7727 2001-10-01 21:51  simon
7729         * process_opfunc.pl:
7730         Michael Fischer's patch broke conditionals.
7732 2001-10-01 15:38  simon
7734         * process_opfunc.pl:
7735         Small hack to keep process_opfunc.pl from generating extra return()
7736         statements.
7738         Courtesy of: Michael Fischer <michael@visv.net>
7740 2001-10-01 15:32  simon
7742         * Parrot/Opcode.pm, lib/Parrot/Opcode.pm:
7743         Documentation fix.
7745         Courtesy of: Josh Wilmes <josh@hitchhiker.org>
7747 2001-10-01 01:49  simon
7749         * packfile.c:
7750         Simon is an idiot. Don't trust him with your code.
7752         Courtesy of: Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
7754 2001-10-01 00:59  simon
7756         * Parrot/String.pm, lib/Parrot/String.pm:
7757         Was in manifest, but not in CVS.
7759 2001-09-30 21:25  simon
7761         * MANIFEST, Types_pm.in, assemble.pl, basic_opcodes.ops,
7762         disassemble.pl, packfile.c, pdump.c, process_opfunc.pl,
7763         Parrot/Assembler.pm, Parrot/PackFile.pm,
7764         Parrot/PackFile/ConstTable.pm, Parrot/PackFile/Constant.pm,
7765         Parrot/PackFile/FixupTable.pm, lib/Parrot/Assembler.pm,
7766         lib/Parrot/PackFile.pm, lib/Parrot/PackFile/ConstTable.pm,
7767         lib/Parrot/PackFile/Constant.pm, lib/Parrot/PackFile/FixupTable.pm,
7768         include/parrot/packfile.h, include/parrot/string.h:
7769         Move NVs to the constant table.    * Changes to Types_pm.in to make
7770         life easier for some of the      packing/etc. I'm doing elsewhere.
7771         Also, we now pack 'n' as      'i'.
7773           * Moved the guts of assemble.pl to Parrot/Assembler.pm so that
7774             eventually we can use all these tools together inside scripts
7775             rather than call out to the shell to run the programs.
7777           * As I was tracking down problems, I converted the internal
7778             documentation of the assembler to POD from comments.
7780           * Changed the numeric regexp in the assembler to detect leading
7781             signs and trailing exponents.
7783           * Updated basic_opcodes.ops to fetch numeric constants from the
7784             constant table.
7786           * Enhanced the disassembler in a number of ways to make my life
7787             easier while tracking down bugs (try it out). It now puts in
7788             labels for ops that are the destinations of flow control ops.
7790           * packfile.c now has a TRACE_PACKFILE switch that can be set
7791             to get it to print info as it processes. I needed this while
7792             debugging, but I can remove it or change it before committing
7793             if its a problem.
7795           * Updated pdump.c because it was missing a call to init_world().
7797           * Updated process_opfunc.pl to deal with numeric constants
7798             being stored in the constant table instead of inline.
7800           * Added multiple type support to Parrot/PackFile/Constant.pm
7802           * Added Parrot/String.pm, to be used for constants.
7804           * Added packfile.[hc] functions for allocating new constants
7805             of various types.
7807           * Made string_copy visible to the world in parrot/string.h.
7809         Wow.
7811         Courtesy of: Gregor N. Purdy <gregor@focusresearch.com>
7813 2001-09-29 15:56  gregor
7815         * languages/jako/Makefile:
7816         Removed assumption that '.' is on the path.
7818 2001-09-29 15:55  gregor
7820         * languages/jako/Makefile:
7821         Removed references to leibnitz test program.
7823 2001-09-29 15:21  thgibbs
7825         * t/op/trans.t, basic_opcodes.ops: Added NV casts to transcendental
7826         math ops args to work on Solaris.
7828 2001-09-27 15:15  thgibbs
7830         * assemble.pl: Added case insensitive matches to hex and binary
7831         characters
7833         Courtesy of: Johnathan Scott Duff <duff@cbi.tamucc.edu>
7835 2001-09-27 04:46  thgibbs
7837         * assemble.pl: This patch makes integer constants of the form
7838         0b[01]+ work with perl 5.005.  The oct function in versions of perl
7839         before 5.6 did not handle the 0b numeric prefix; therefore, it was
7840         returning 0.  To fix this, I added a from_binary function that
7841         would take a binary string and return its decimal representation.
7842         Now, instead of blindly calilng oct, it makes a distinction between
7843         0/0x numbers and 0b numbers.
7845 2001-09-26 19:30  thgibbs
7847         * assemble.pl: Error now returns a non-zero status
7849         Courtesy of: Andrew Kuchling <akuchlin@mems-exchange.org>
7851 2001-09-26 19:13  gregor
7853         * MANIFEST, Makefile.in, basic_opcodes.ops, bytecode.c,
7854         interpreter.c, packfile.c, pdump.c, test_main.c,
7855         include/parrot/bytecode.h, include/parrot/interpreter.h,
7856         include/parrot/packfile.h, include/parrot/parrot.h, t/op/integer.t,
7857         t/op/stacks.t:
7858           * bytecode.[hc] removed. packfile.[hc] are the interface to the
7859             packfile/bytecode file from C. May be renamed in the future.
7861           * packfile.[hc] changed to use 'struct PackFile *', etc. instead
7862             of 'PackFile *', just like the interpreter, etc.
7864           * Constants are accessed via the interpreter's 'code' member
7865             (struct PackFile * code). Macros PCONST(i) and PNCONST are
7866             provided to access constants by index and the number of
7867             constants, respectively (assumes a variable 'interpreter' of
7868             the appropriate type is in scope).
7870           * Byte Code is accessed via the interpreter's 'code' member.
7872           * Changed PackFile_Constant to point to a STRING instead of
7873         having
7874             members for the string_make() arguments. Also has a 'type' IV
7875             in preparation for allowing multiple types of constants in
7876             const_table.
7878           * Removed hardcoded example program from test_main.c. We have
7879             plenty of test programs elsewhere.
7881           * test_prog now uses a PackFile to deal with the program before
7882             sending it on to the interpreter.
7884           * Added missing 'end' ops to some tests in t/op/integer.t and
7885             t/op/stacks.t.
7887 2001-09-26 18:38  thgibbs
7889         * assemble.pl: Separated code into functions and added comments.
7891 2001-09-26 18:29  simon
7893         * config_h.in:
7894         Fix 64-bit chunk-base issue.
7896 2001-09-26 06:55  thgibbs
7898         * t/op/bitwise.t: Added end to bitwise tests.
7900 2001-09-26 00:54  dan
7902         * docs/parrot_assembly.pod: Added in the base for threading, I/O,
7903         and interpreter creation. Skeleton only, but it's something to peer
7904         at.
7906 2001-09-25 21:44  thgibbs
7908         * t/op/trans.t: Removed loops in transcendtal op test.
7910 2001-09-25 10:12  simon
7912         * MANIFEST, t/op/basic.t, t/op/bitwise.t, t/op/integer.t,
7913         t/op/string.t, t/op/time.t:
7914         More tests
7916         Courtesy of: Alex Gough <alex@rcon.org>
7918 2001-09-24 19:08  gregor
7920         * t/op/number.t:
7921           * Enabled the clear_n test.
7923 2001-09-24 18:56  gregor
7925         * Parrot/.cvsignore:
7926           * Ignore the generated Types.pm file.
7928 2001-09-24 18:52  gregor
7930         * languages/jako/Makefile, t/op/number.t:
7931           * No need to skip the inc and dec numeric tests anymore. I fixed
7932         the
7933             assembler earlier today.
7935 2001-09-24 18:21  simon
7937         * MANIFEST, t/op/stacks.t:
7938         Oops.
7940 2001-09-24 18:19  simon
7942         * build_interp_starter.pl, interpreter.c, string.c, Parrot/Test.pm,
7943         include/parrot/exceptions.h, include/parrot/interpreter.h,
7944         lib/Parrot/Test.pm, t/op/string.t:
7945         1) captured error output, so can test errors, this might be bad,
7946         not sure.  2) basic tests for register stack frames, including some
7947         errors 3) I think we can stop skipping one of the string tests 4) I
7948         added some more substr tests, but substr was broken, so 5) changed
7949         substr to work with out of range values, or 6) throw an error if
7950         they're far too silly
7952         Courtesy of: Alex Gough <alex@rcon.org>
7954 2001-09-24 17:27  gregor
7956         * basic_opcodes.ops, opcode_table, t/op/number.t:
7957           * Op set_n was missing. Added it and a test for it. We now have
7958         the
7959             same int and num ops, except mod is int-only.
7961 2001-09-24 17:01  gregor
7963         * assemble.pl:
7964           * Fixed a typo: s/Line/line/
7966 2001-09-24 16:02  gregor
7968         * basic_opcodes.ops:
7969           * Fixed dec_n_nc opcode, which had += where it should have had
7970         -=.
7972 2001-09-24 15:34  gregor
7974         * assemble.pl:
7975           * Fixed handling of constants starting with '0' that should not
7976         be
7977             sent through oct(). For example 'set N2 0.1' was being
7978         interpreted
7979             as 'set N2 0' (naughty).
7981             As reported by Leon Brocard <acme@astray.com> in the comments
7982         of
7983             his mandelbrot.pasm example.
7985 2001-09-24 02:21  bdwheele
7987         * assemble.pl: fixed dumb code when --include was not specified.
7989 2001-09-24 02:17  simon
7991         * assemble.pl:
7992         Shit-sweeping.
7994 2001-09-24 01:56  bdwheele
7996         * assemble.pl: * Added --include=dir option to assembler to provide
7997         a path to look for included files.  * Error message of a macro is
7998         defined inside of a macro
8000 2001-09-23 21:29  bdwheele
8002         * assemble.pl: Added __FILE__ equate, fixed __LINE__ equate.
8004 2001-09-23 15:50  simon
8006         * Configure.pl:
8007         Fixed typo. Parrot might work again on non-8.3 filesystems. :)
8009 2001-09-23 02:03  ask
8011         * Configure.pl, test_c.in: fix missing newline at the end of test.c
8012         Courtesy of: acme@astray.com (Leon Brocard)
8014         rename 'test' executable used in Configure process to test_siz.
8016 2001-09-23 01:03  simon
8018         * process_opfunc.pl:
8019         iPaq fix. No, really.
8021 2001-09-23 00:47  simon
8023         * MANIFEST:
8024         Missed several, in fact.
8026 2001-09-23 00:46  simon
8028         * MANIFEST:
8029         Missed one.
8031 2001-09-22 21:13  simon
8033         * assemble.pl:
8034         Assembler register numbering rigour.
8036         Courtesy of: Leon Brocard <acme@astray.com>
8038 2001-09-22 18:20  simon
8040         * Makefile.in, lib/Test/More.pm, lib/Test/Simple.pm,
8041         lib/Test/Utils.pm:
8042         I'm sick of having to install Test::More everywhere. Temporary
8043         measure until we remove this silly dependency.
8045         Also a typo in Makefile.in which suggests some things were only
8046         happening correctly by sheer chance. :)
8048 2001-09-22 18:06  simon
8050         * README:
8051         test.pasm is dead, long like make test.
8053 2001-09-22 17:47  simon
8055         * t/op/number.t:
8056         De-fang overzealous floating point test.
8058 2001-09-22 17:39  simon
8060         * process_opfunc.pl:
8061         Remove hard-coded NV size assumption. Tru64 is nearly there!
8063 2001-09-22 17:18  simon
8065         * assemble.pl, disassemble.pl:
8066         More portability fixups.
8068 2001-09-22 16:44  simon
8070         * assemble.pl, Parrot/PackFile/Constant.pm,
8071         lib/Parrot/PackFile/Constant.pm:
8072         And I *think* this fixes Tru64.
8074 2001-09-22 16:37  simon
8076         * Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/ConstTable.pm:
8078         Oops.
8080 2001-09-22 16:36  simon
8082         * Parrot/PackFile.pm, Parrot/PackFile/ConstTable.pm,
8083         Parrot/PackFile/Constant.pm, lib/Parrot/PackFile.pm,
8084         lib/Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/Constant.pm:
8086         More removal of hard-coded pack formats.
8088 2001-09-22 15:21  simon
8090         * assemble.pl:
8092         Grrr. Why isn't this working?
8094 2001-09-22 15:18  simon
8096         * Parrot/PackFile.pm, Parrot/PackFile/ConstTable.pm,
8097         lib/Parrot/PackFile.pm, lib/Parrot/PackFile/ConstTable.pm:
8099         Make assemble use the PackFile modules; also fixed some bugs in
8100         them.
8102 2001-09-22 14:38  simon
8104         * Configure.pl, MANIFEST, Types_pm.in, assemble.pl, disassemble.pl:
8106         Abstract the argument and opcode packing types and functions out
8107         into a separate module. This *should* help us maintain consistency
8108         when we change the various types.
8110 2001-09-22 00:46  brentdax
8112         * Configure.pl: Delete test.o (or its equivalent) after Configure's
8113         test program finishes.
8115 2001-09-21 21:24  brentdax
8117         * Parrot/Test.pm, lib/Parrot/Test.pm: Fix error with \ as path
8118         separator (courtesy of Mattia Barbon <mbarbon@dsi.unive.it>)
8120 2001-09-21 21:09  gregor
8122         * Parrot/PackFile/ConstTable.pm, Parrot/PackFile/Constant.pm,
8123         lib/Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/Constant.pm:
8125           * Fixed pad calculation (similar to recent bug fix on C library)
8127 2001-09-21 20:23  simon
8129         * disassemble.pl:
8130         Pack types and sizes have gone askew.
8132 2001-09-21 20:18  brentdax
8134         * Configure.pl: Fix typo in setting stuff from the C test program
8136 2001-09-21 10:25  simon
8138         * basic_opcodes.ops, process_opfunc.pl:
8139         Document patches.
8141         Courtesy of: Leon Brocard <acme@astray.com>
8143 2001-09-21 06:06  ask
8145         * Config_pm.in, assemble.pl: fix 5.005_03.
8147 2001-09-21 06:03  ask
8149         * Configure.pl: make the ivsize detection work for us normal people
8150         without . in our PATH.  :-)
8152 2001-09-21 05:56  brentdax
8154         * test_main.c: Change _read to read for portability to Tru64
8155         (Damien Neil <neild@misago.org> and likely many others)
8157 2001-09-21 05:46  ask
8159         * Makefile.in: "update" target to update from cvs.
8161 2001-09-21 05:44  brentdax
8163         * Configure.pl, test_c.in: Fix issues with ivsize and nvsize
8165 2001-09-21 02:43  brentdax
8167         * Configure.pl: Fix a typo that forced the -g flag on
8169 2001-09-20 22:41  dan
8171         * packfile.c: Had some no-value returns. Naughty
8173 2001-09-20 22:40  dan
8175         * t/test.pasm: Added labels to output
8177 2001-09-20 15:39  simon
8179         * Parrot/Opcode.pm, Parrot/Test.pm, lib/Parrot/Opcode.pm,
8180         lib/Parrot/Test.pm:
8181         This patch does two only somewhat related things.
8183         Parrot/Opcode.pm:  Change the hard-wired assumption that sizeof(nv)
8184         = 2*sizeof(iv) to a PConfig-type computed value.
8186         Parrot/Test.pm:  Change it to run with the perl that was used to
8187         generate this version of Parrot.  This is useful if, for example,
8188         you want to use bleadperl to build and test parrot (e.g. to try out
8189         various 64-bit options) but you still have a 5.6.x (or 5.005_xx)
8190         installed as the default 'perl' on your system.  Since perl-5.7.x
8191         is installed 'version-only', a plain 'perl' is quite likely to pick
8192         up the older perl in such cases. Such an older perl might well not
8193         understand pack('q') used in the assembler.
8195         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
8197 2001-09-20 15:14  gregor
8199         * packfile.c:
8200           * Fixed a typo in pad calculation that throwing off unpack and
8201         pack.
8203 2001-09-20 15:03  thgibbs
8205         * t/op/integer.t: Removed overflow tests from integer.t.  set_i_ic
8206         tests now cover all registers.
8208         Courtesy of: Damien Neil neild@misago.org
8210 2001-09-20 14:48  thgibbs
8212         * process_opfunc.pl: Changed process_opfunc.pl to work on 64 bit
8213         machines.
8215 2001-09-20 14:35  simon
8217         * Configure.pl, assemble.pl:
8218         Pack IVs correctly.
8220         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
8222 2001-09-20 14:06  gregor
8224         * languages/jako/jakoc:
8225           * Fixed a tyop in the string interpolation regex.
8227         Courtesy of Michael L Maraist <maraist@UDel.Edu>
8229 2001-09-20 13:56  gregor
8231         * languages/jako/jakoc:
8232           * Updated jakoc to work with the single-destination comp ops.
8234 2001-09-20 05:08  bdwheele
8236         * assemble.pl: macro expansion.  Here's the test macro I was using:
8238         # this uses I32,I31 as temporaries.  # macro must be preceeded by a
8239         label.  testi       macro   num,got,want    print   "Test #"
8240         print   num     print   "..."   set     I32,want        set
8241         I31,got         eq      I32,I31,$ok     print   "NG\n"  branch
8242         $end $ok:       print   "OK\n" $end:    endm
8244         It is invoked as:
8246         Test1:  testi   1,I3,I2
8248 2001-09-20 03:52  dan
8250         * stacks.c, include/parrot/stacks.h: Preliminary files for the
8251         generic stack support
8253 2001-09-20 02:49  bdwheele
8255         * assemble.pl: Added include processing to assemble.pl  the syntax
8256         is: include 'file.to.include'
8258 2001-09-19 23:57  thgibbs
8260         * t/op/integer.t, t/op/number.t, assemble.pl, opcode_table: Fixed
8261         opcode_table listing of if_i_ic and if_n_ic.  Dan had changed the
8262         function to only use 2 args, but the opcode_table still had three
8263         listed.  Fixed integer.t and number.t to use the new comparison
8264         operators.  Improved assemble.pl ability to grok operators by
8265         constructing a function set and comparing operator types.
8267 2001-09-19 22:42  dan
8269         * assemble.pl: Binmodes the output filehandles now. (No more
8270         bytecode munching...)
8272 2001-09-19 22:32  dan
8274         * Configure.pl, basic_opcodes.ops, opcode_table, process_opfunc.pl,
8275         t/euclid.pasm, t/test.pasm, t/test2.pasm: Changed opcodes so
8276         conditional branches take a single argument, and fall through
8277         otherwise.
8279 2001-09-19 21:19  thgibbs
8281         * memory.c: Added explanation of mem_allocate_aligned give by Dan
8282         Sugalski
8284         Courtesy of: Josh Wilmes <josh@hitchhiker.org>
8286 2001-09-19 21:04  thgibbs
8288         * include/parrot/interpreter.h, Configure.pl,
8289         build_interp_starter.pl, bytecode.c, config_h.in, interpreter.c,
8290         process_opfunc.pl: Changed opcode_t from a union to a configurable
8291         type.
8293 2001-09-19 20:54  thgibbs
8295         * assemble.pl: Missed a couple of changes for 64 bit portability.
8297 2001-09-19 20:37  gregor
8299         * packfile.c, include/parrot/packfile.h:
8300           * Added "methods" for setting and getting all the various
8301         attributes,
8302             probably sufficient for an assembler to use the library.
8304 2001-09-19 20:04  thgibbs
8306         * assemble.pl: Modifications to run on 64 bit platforms.  To run on
8307         a 64 bit platform manually change the  setting for 'i' from 'l' to
8308         'q'.  This should be automatically done by a Configure setting in
8309         the near future.
8311 2001-09-19 19:10  thgibbs
8313         * config_h.in: changed c++ comment to c comment.
8315         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
8317 2001-09-19 17:48  gregor
8319         * .cvsignore, MANIFEST, Makefile.in, packfile.c, pdump.c,
8320         include/parrot/packfile.h:
8321           * C code for dealing with PackFiles as if they were objects.
8322         Mostly
8323             read-only interface for now, but it would not be hard to make
8324         it
8325             read-write. [packfile.c, include/parrot/packfile.h]
8327           * PackFile Dumping program that falls short of disassembling, but
8328             tests the above code and provides a hex listing of the byte
8329         code
8330             contents of the PackFile. [pdump.c]
8332           * New Makefile target 'pdump' for the above program, and related
8333             Makefile.in changes.
8335           * Updated MANIFEST to reflect the added files
8337           * Update .cvsignore to ignore pdump.
8339 2001-09-19 14:55  thgibbs
8341         * MANIFEST: Added number.t and trans.t to MANIFEST
8343 2001-09-19 05:40  thgibbs
8345         * process_opfunc.pl: Now taking & of opcode_t instead of i member
8346         of union opcode_t.  I hope this will be more portable for set_n_nc.
8348 2001-09-19 05:39  thgibbs
8350         * t/op/integer.t: Added end to test 1.
8352 2001-09-19 00:09  thgibbs
8354         * t/op/number.t: Added end to each test
8356 2001-09-19 00:00  simon
8358         * t/op/number.t:
8359         Number tests! Wooo!
8361         Courtesy of: Damien Neil <neild@misago.org>
8363 2001-09-18 23:52  thgibbs
8365         * interpreter.c: Added casts to appropriate types to make -Wall not
8366         complain on certain printf formats
8368 2001-09-18 23:31  thgibbs
8370         * t/op/integer.t: Added end to each test.
8372 2001-09-18 22:54  thgibbs
8374         * t/op/trans.t: Added trans.t for transcendental math function
8375         tests.
8377 2001-09-18 22:28  simon
8379         * MANIFEST:
8380         MANIFEST updates. (And notice how I carefully snuck in the
8381         t/op/integer.t there...)
8383         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
8385 2001-09-18 22:26  simon
8387         * t/: integer.t, op/integer.t:
8388         Except it doesn't go there. Duh.
8390 2001-09-18 22:25  simon
8392         * t/integer.t:
8393         Tests for integer ops.
8395         Courtesy of: Damien Neil <neild@misago.org>
8397 2001-09-18 22:03  thgibbs
8399         * include/parrot/bytecode.h, include/parrot/interpreter.h,
8400         build_interp_starter.pl, bytecode.c, config_h.in, interpreter.c,
8401         make_op_header.pl, process_opfunc.pl, test_main.c: Changed IV to
8402         opcode_t union for operators.  This required a few perl script
8403         changes to output the correct type.  There were also some changes
8404         to allow -pedantic in gcc
8406 2001-09-18 21:07  gregor
8408         * disassemble.pl, Parrot/PackFile.pm,
8409         Parrot/PackFile/ConstTable.pm, Parrot/PackFile/Constant.pm,
8410         lib/Parrot/PackFile.pm, lib/Parrot/PackFile/ConstTable.pm,
8411         lib/Parrot/PackFile/Constant.pm:
8412         Converted the disassembler to use the Parrot::PackFile Perl classes
8413         to do its job.
8415 2001-09-18 19:18  brentdax
8417         * Makefile.in: Fix missing functions for real this time.  (I
8418         swear!)
8420 2001-09-18 18:49  brentdax
8422         * Configure.pl: Remove unnecessary -I.. (courtesy of Andy Dougherty
8423         <doughera@lafayette.edu>}
8425 2001-09-18 18:47  brentdax
8427         * Makefile.in: Fix bugs with missing math, etc. functions
8429 2001-09-18 14:42  thgibbs
8431         * strnative.c: Sorry Simon...forgot bustart was a void* not a
8432         char*.
8434 2001-09-18 13:59  thgibbs
8436         * strnative.c: Removed unnecessary IV cast in concat.
8438 2001-09-18 13:58  thgibbs
8440         * t/op/string.t: Removed unnecessary IV cast in concat.  Added end
8441         to concat test in string.t
8443 2001-09-18 12:07  gregor
8445         * languages/jako/jakoc:
8446           * var num ... no longer requires assignment
8447           * automatic casting between int and num
8448           * Fixed an error message
8450         Courtesy of: Simon Cozens <simon@cvs.perl.org>
8452 2001-09-18 11:57  simon
8454         * TODO:
8455         Gonna have to start thinking of more things to do, soon.
8457 2001-09-18 10:42  simon
8459         * opcode_table:
8460         Introduce a little more tidiness into the opcode table.
8462 2001-09-18 03:06  gregor
8464         * basic_opcodes.ops, opcode_table, t/euclid.pasm:
8465         Resurrected register-const ops per Dan's request.
8467 2001-09-18 02:20  gregor
8469         * .cvsignore, Configure.pl, MANIFEST, Makefile.in,
8470         build_interp_starter.pl, bytecode.h, events.h, exceptions.h,
8471         global_setup.h, interpreter.h, io.h, memory.h, parrot.h,
8472         process_opfunc.pl, register.h, stacks.h, string.h, strnative.h:
8473         Committed some files that were missed in the last *.h moving
8474         commit.
8476 2001-09-18 02:17  gregor
8478         * include/parrot/.cvsignore: Fixed a typo in .cvsignore.
8480 2001-09-18 02:16  gregor
8482         * include/parrot/: .cvsignore, bytecode.h, events.h, exceptions.h,
8483         global_setup.h, interpreter.h, io.h, memory.h, parrot.h,
8484         register.h, stacks.h, string.h, strnative.h: Added .cvsignore file
8485         missed in last commit for the move of *.h to include/parrot.
8487 2001-09-18 01:32  simon
8489         * t/Makefile:
8490         Trivial "clean" target to t/Makefile.
8492 2001-09-18 01:32  simon
8494         * assemble.pl, build_interp_starter.pl, disassemble.pl,
8495         Parrot/Opcode.pm, lib/Parrot/Opcode.pm:
8496         Change icky Digest::MD5 for nice simple unpack()
8498         Courtesy of: Jonathan Scott Duff <duff@cbi.tamucc.edu>
8500 2001-09-18 00:35  simon
8502         * basic_opcodes.ops, opcode_table, docs/parrot_assembly.pod,
8503         t/op/string.t:
8504         New concat op. Hey, if I'm going to talk about it in an article,
8505         better implement it...
8507 2001-09-17 22:54  gregor
8509         * MANIFEST, Parrot/PackFile.pm, Parrot/PackFile/ConstTable.pm,
8510         Parrot/PackFile/Constant.pm, Parrot/PackFile/FixupTable.pm,
8511         lib/Parrot/PackFile.pm, lib/Parrot/PackFile/ConstTable.pm,
8512         lib/Parrot/PackFile/Constant.pm, lib/Parrot/PackFile/FixupTable.pm:
8514         Functions for reading, writing and manipulating Parrot Pack Files.
8515         NOTE: This is a proposed term based on the fact that the file
8516         contains more than just byte code, and another language (Java)
8517         calls its binary files by a broader notion of what's in them (Class
8518         Files). Since Perl has packages, and since we use pack() to write
8519         them, we'll call them PackFiles (at least for now).
8521         That does, however, beg the question of file extension. Should we
8522         name the files "foo.pack" instead of "foo.pbc"?
8524 2001-09-17 20:23  thgibbs
8526         * interpreter.c, test_main.c: Uncuddled else statements for coding
8527         standard.
8529 2001-09-17 19:57  gregor
8531         * Parrot/Opcode.pm, lib/Parrot/Opcode.pm:
8532         Added a $revision variable, parsing of the CVS Id line in
8533         opcode_table and a &revision() subroutine.
8535 2001-09-17 19:53  gregor
8537         * opcode_table:
8538         Added a CVS Id tag to it.
8540 2001-09-17 18:58  thgibbs
8542         * interpreter.c: Cleared interpreter flags on creation.
8544 2001-09-17 18:38  gregor
8546         * build_interp_starter.pl, bytecode.c, bytecode.h, interpreter.c,
8547         interpreter.h, test_main.c:
8548           * Provides macros in interp_guts.h for setting up arrays with
8549             op names and op arg counts (done via build_interp_starter.pl).
8551             These are used in the op tracing
8553           * The functions in bytecode.[hc] pass around a pointer to the
8554         length
8555             of the bytecode so that later when we get to runops, we know
8556             how much bytecode we've got and we can detect out-of-bounds
8557             jumping. The documentation is updated, too.
8559           * runops in interpreter.c now looks at interpreter->flags to
8560             decide if the core of runops should be runops_trace_core or
8561             runops_notrace_core. These new functions contain just the
8562             while-loop portion of runops. A new function runops_generic
8563             does any other setup (such as checking the bytecode
8564             fingerprint) or wrapup (such as complaining if we ended up
8565             out-of-bounds). NOTE: I didn't know what we should do for
8566             functions in here that are not part of the api, so I gave
8567             them docs with 'TODO' marks mentioning they really aren't
8568             part of the api. Guidance appreciated.
8570           * test_main.c now checks for '-t' arg and sets the tracing flag
8571             on its interpreter instance as appropriate.
8573 2001-09-17 17:47  bdwheele
8575         * assemble.pl: added some default equates, and if they're sub
8576         references, they are computed each time it is referenced.
8578 2001-09-17 16:15  dan
8580         * interpreter.h:
8582         Added flags to the interpreter structure and defined a few.
8584 2001-09-17 15:51  simon
8586         * bytecode.h, string.h:
8587         VAR_SCOPE on globals.
8589 2001-09-17 15:20  simon
8591         * MANIFEST:
8592         Parrot/Opcode.pm, Parrot/Test.pm into MANIFEST.
8594 2001-09-17 15:05  gregor
8596         * t/jump.pasm, MANIFEST:
8597         Added a test program to demonstrate jump_i.
8599 2001-09-17 14:44  thgibbs
8601         * register.c: Fixed register pop not using correct offset (off by
8602         one).
8604         Courtesy of: Philip Kendall <pak@ast.cam.ac.uk>
8606 2001-09-17 13:56  thgibbs
8608         * interpreter.c, register.c: Added code to call Parrot_clear_s
8609         during initialization and Parrot_clear_s and Parrot_clear_p when a
8610         new stack frame is pushed.
8612 2001-09-17 13:51  gregor
8614         * languages/jako/: Makefile, bench.jako, euclid.jako, fact.jako,
8615         fib.jako, hello.jako: Added bench.pasm to "clean"
8617 2001-09-17 13:49  gregor
8619         * languages/jako/: jakoc, Makefile:
8620         Added CVS Id tag.
8622 2001-09-17 13:49  gregor
8624         * languages/jako/jakoc:
8625         Code streamlining.
8627         Courtesy of: Buggs <buggs-perl6@splashground.de>
8629 2001-09-17 13:29  gregor
8631         * MANIFEST, opcheck.pl:
8632         Added an opcode_table checker to make sure that all opcodes listed
8633         there conform to a simple set of naming rules (rules themselves, of
8634         course, are subject to change).
8636 2001-09-17 13:23  thgibbs
8638         * string.c: Modified string.c to correctly use the return value of
8639         realloc.
8641 2001-09-17 05:26  brentdax
8643         * Makefile.in: Making the Makefile smarter
8645 2001-09-16 23:06  brentdax
8647         * hints/mswin32.pl: Finishing the Configure hints
8649 2001-09-16 23:05  brentdax
8651         * Configure.pl, Makefile.in, parrot.h, test_main.c,
8652         Parrot/Opcode.pm, lib/Parrot/Opcode.pm: Win32 compatibility,
8653         Configure hints, 5.005 compatibility, MANIFEST checking
8655 2001-09-16 19:25  bdwheele
8657         * assemble.pl: parrot assembly equates
8659 2001-09-16 18:03  gregor
8661         * Makefile.in:
8662         Added 'test' target to run new test suite.
8664 2001-09-16 17:33  simon
8666         * basic_opcodes.ops:
8667         'not' was being !, rather than ~. Too many Perl programmers here, I
8668         suspect.
8670         Courtesy of: Tom Hughes <tom@compton.nu>
8672 2001-09-16 17:21  simon
8674         * Parrot/Test.pm, lib/Parrot/Test.pm, t/harness, t/op/basic.t,
8675         t/op/string.t:
8676         A *real* test suite!
8678         Courtesy of: "Mattia Barbon" <mbarbon@dsi.unive.it>
8680 2001-09-16 16:49  gregor
8682         * basic_opcodes.ops, opcode_table:
8683         At Dan's request, my new register-constant comparison ops have been
8684         removed.
8686 2001-09-16 16:40  gregor
8688         * languages/jako/jakoc:
8689         Fixed a copy-paste error in one of jakoc's error messages.
8691         Courtesy of: Buggs <buggs-perl6-list@splashground.de>
8693 2001-09-16 16:37  gregor
8695         * languages/jako/jakoc:
8696         Modified comparison implementation to use temporary registers in
8697         the case of register-constant and constant-register comparisons.
8698         This will allow the compiler to emit code that works when the
8699         constant-comparison ops are backed out of Parrot. If the ops ever
8700         make their way back in, then jakoc can emit more efficient code
8701         again.
8703 2001-09-16 16:19  bdwheele
8705         * assemble.pl, t/local_label.pasm: Added local labels ($whatever)
8706         ... though not subroutine based like the documentation wants, they
8707         are local to the last non-local label defined.
8709 2001-09-16 14:02  simon
8711         * MANIFEST:
8712         And remember, when you add stuff, keep the manifest up to date.
8714 2001-09-16 02:55  ask
8716         * Makefile.in: a "shared" target for building libparrot.so
8718 2001-09-16 02:45  thgibbs
8720         * bytecode.c, bytecode.h, events.h, exceptions.h, global_setup.c,
8721         global_setup.h, interpreter.c, interpreter.h, io.h,
8722         make_op_header.pl, memory.c, memory.h, parrot.c, parrot.h,
8723         process_opfunc.pl, register.c, register.h, stacks.h, string.c,
8724         string.h, strnative.c, strnative.h, test_main.c: Updated files to
8725         use the coding standard PDD.  Also changed Perl_Interp to
8726         Parrot_Interp.
8728 2001-09-16 02:21  ask
8730         * README: emphasise the bits about the license not being worked out
8731         yet.
8733 2001-09-15 22:21  simon
8735         * process_opfunc.pl:
8736         basic_opcodes.c should *scream* that it's autogenerated.
8738 2001-09-15 21:58  gregor
8740         * languages/jako/Makefile:
8741         Fixed Makefile to use 'jakoc' instead of 'jako_compiler.pl' to
8742         compile.
8744 2001-09-15 21:58  gregor
8746         * languages/jako/: jako_compiler.pl, jakoc:
8747         Renamed the Jako compiler to jakoc from jako_compiler.pl
8749 2001-09-15 21:51  gregor
8751         * languages/jako/: Makefile, bench.jako, euclid.jako,
8752         jako_compiler.pl:
8753         Added a new bench.jako example based on Leon Brocard's Bench.java.
8755         Jako Compiler:   * fix a bug in assignment handling   * add some
8756         more conditionals to while and if   * revert to using implicit
8757         opcodes in a few cases that were broken     before the assembler
8758         patch went in recently.
8760 2001-09-15 21:46  gregor
8762         * assemble.pl, basic_opcodes.ops, opcode_table:
8763         New ops for register-constant INTEGER comparisons:
8765           {eq,ne,lt,le,gt,ge}_ic_ic
8767         New ops for register-register and register-constant NUMERIC
8768         comparisons:
8770           eq_nc_ic
8771           {ne,lt,le,gt,ge}_{n,nc}_ic
8773         Assembler:
8775           Allow uppercase and underscores in labels.
8777           Tweaks to the op infer code to make it work with the examples
8778         I've been
8779           creating.
8781 2001-09-15 19:16  thgibbs
8783         * README: Updated README to include Configure.pl
8785 2001-09-15 17:05  simon
8787         * build_interp_starter.pl:
8788         Casting happiness
8790         Courtesy of: Jarkko Hietaniemi <jhi@cc.hut.fi>
8792 2001-09-15 16:45  simon
8794         * assemble.pl:
8795         And the same again: Parrot/Opcode.pm wasn't "..-aware".
8797 2001-09-15 16:40  simon
8799         * t/Makefile:
8800         The Parrot/Opcode.pm dependency means we need to do -I.. in the
8801         test Makefile
8803 2001-09-15 12:26  simon
8805         * memory.c:
8806         Fixed to match the coding standards.
8808         Courtesy of: Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
8810 2001-09-15 01:57  ask
8812         * Configure.pl, Makefile.in, Parrot/Opcode.pm,
8813         lib/Parrot/Opcode.pm: make the Makefile use the perl that was used
8814         to run Configure.pl
8816 2001-09-15 01:48  ask
8818         * Parrot/Opcode.pm, lib/Parrot/Opcode.pm: if we need perl 5.6, just
8819         say so. :-)
8821 2001-09-15 01:42  gregor
8823         * languages/jako/: euclid.jako, fact.jako, fib.jako,
8824         jako_compiler.pl:
8825         Compiler: Added variable interpolation in double-quoted strings.
8826         Examples: Made use of variable interpolation.
8828 2001-09-15 01:28  gregor
8830         * Parrot/.cvsignore:
8831         Ignore the Config.pm generated file.
8833 2001-09-15 01:22  gregor
8835         * languages/jako/: .cvsignore, Makefile, euclid.jako, fact.jako,
8836         fib.jako, hello.jako, jako_compiler.pl:
8837         gnp: Added some more sample Jako files and added many more
8838         operators to the compiler. Preparations for supporting all the Math
8839         and bitwise ops.
8841 2001-09-14 19:06  simon
8843         * assemble.pl, build_interp_starter.pl, disassemble.pl,
8844         make_op_header.pl, process_opfunc.pl, Parrot/Opcode.pm,
8845         lib/Parrot/Opcode.pm:
8846         Move common table reading stuff to a module.
8848         Courtesy of: Damien Neil <neild@misago.org>
8850 2001-09-14 17:42  simon
8852         * .cvsignore:
8853         More .cvsignore foo.
8855 2001-09-14 17:40  simon
8857         * assemble.pl, config_h.in:
8858         De-coredump
8860         Courtesy of: Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
8862 2001-09-14 17:38  simon
8864         * assemble.pl, t/Makefile:
8865         Make assemble.pl look in its parent directory if the data files it
8866         needs aren't in the current one. Plus a Makefile that lets "make
8867         foo.pbc" work in t/
8869         Courtesy of: Rocco Caputo <troc@netrus.net>
8871 2001-09-14 16:29  simon
8873         * make_op_header.pl:
8874         Wildly experimental patch to make Parrot compile on FreeBSD. (And
8875         probably segfault everywhere else.)
8877 2001-09-14 15:58  dan
8879         * languages/jako/: euclid.jako, jako_compiler.pl:
8881         Added in the first mini-language that targets Parrot.
8883         Courtesy of: "Gregor N. Purdy" <gregor@focusresearch.com>
8885 2001-09-14 15:20  dan
8887         * memory.c: Was misaligning returned memory. Fixed.
8889 2001-09-14 15:08  simon
8891         * Makefile.in, basic_opcodes.ops, bytecode.c, global_setup.c,
8892         interpreter.c, interpreter.h, memory.c, parrot.c, parrot.h,
8893         register.c, register.h, string.c, string.h, strnative.c,
8894         test_main.c:
8895         Fixes to include <parrot/foo.h>
8897         Courtesy of: Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
8899 2001-09-14 12:05  simon
8901         * strnative.c:
8902         Appease Tru64.
8904 2001-09-14 12:01  simon
8906         * memory.c:
8907         Appease Tru64.
8909 2001-09-14 11:54  simon
8911         * interpreter.c:
8912         Remove lvalue cast.
8914 2001-09-14 11:45  simon
8916         * Configure.pl:
8917         Be 5.005 friendly.
8919 2001-09-14 11:39  simon
8921         * Configure.pl:
8922         Tru64 cc doesn't like -Wall
8924 2001-09-14 10:57  simon
8926         * Config_pm.in, Configure.pl, MANIFEST, Makefile, Makefile.in,
8927         assemble.pl, build_interp_starter.pl, bytecode.c, bytecode.h,
8928         config.h.in, config_h.in, disassemble.pl, interpreter.c:
8929         Configure now generates Makefile
8931         Courtesy of: Brent Dax <brentdax@cpan.org>
8933 2001-09-14 10:08  simon
8935         * t/test3.pasm:
8936         Add "end"
8938         Courtesy of: Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
8940 2001-09-14 10:07  simon
8942         * assemble.pl:
8943                 * uses Getopt::Long for options.  -c is now --checksyntax.
8944         I wasn't
8945         sure how to keep compatible (patches welcome!)         * options
8946         include:                 --help                 --version
8947               --verbose                 --output=file
8948         --listing=file                 --checksyntax         * produces
8949         verbose listing of what the assembler saw :)  Only one nitpick with
8950         it:  unknown symbols are given as 0xffffffff, unfortunately, this
8951         includes symbols which may be defined later in the file (i.e.
8952         forward jumps).
8954         Courtesy of: Brian Wheeler <bdwheele@indiana.edu>
8956 2001-09-14 10:06  simon
8958         * strnative.c:
8959         substr growth fixup
8961         Courtesy of: Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
8963 2001-09-14 10:03  simon
8965         * bytecode.c, global_setup.c, interpreter.c, memory.c, memory.h,
8966         register.c, string.c, strnative.c, test_main.c:
8967         Coding standards conformance
8969         Courtesy of Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
8971 2001-09-14 09:46  simon
8973         * assemble.pl:
8974         Make the assembler grok transcendental maths again.  Courtesy of:
8975         Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
8977 2001-09-13 17:29  simon
8979         * assemble.pl:
8980         Better opcode guessing, from Brian Wheeler. (Again!)
8982 2001-09-13 17:20  dan
8984         * docs/parrot_assembly.pod:
8986         Took out duplicate entries for iton, ntoi, and tostring.
8988 2001-09-13 17:16  simon
8990         * assemble.pl, basic_opcodes.ops, opcode_table:
8991         From Brian Wheeler:
8993         This patch gives the assembler support of '\a','\n','\r','\t', and
8994         '\\' in string constants.
8996         In addition, it changes (for all registers) "I reg %li is ..." to
8997         just the value of the register.  Printing constants is also
8998         supported, but alas, you have to specify the type (print_sc,
8999         print_ic, print_nc).
9001 2001-09-13 15:38  simon
9003         * assemble.pl:
9004         Why don't I actually *test* this stuff before applying it, eh?
9006 2001-09-13 15:34  simon
9008         * TODO, t/euclid.pasm:
9009         From: "Gregor N. Purdy" <gregor@focusresearch.com> Subject: [patch
9010         (really)] Removed opcode qualifers t/euclid.pasm to exercise opcode
9011         inference
9013 2001-09-13 14:42  simon
9015         * assemble.pl:
9016         A new assembler, from Brian Wheeler.
9018 2001-09-13 09:44  simon
9020         * basic_opcodes.ops, interpreter.h, parrot.h, strnative.c,
9021         test_main.c:
9022         Two more from Tom Hughes:     Patch to fix C++ style comments
9023         Patch to remove use of structure constant/cast
9025 2001-09-13 09:39  simon
9027         * TODO, docs/strings.pod:
9028         Update string docs.
9030 2001-09-13 09:36  simon
9032         * Makefile, basic_opcodes.ops:
9033         Tom Hughes      Patch to link with the maths library Tom Hughes
9034          Patch to fix += on rvalue
9036 2001-09-13 08:57  simon
9038         * MANIFEST:
9039         I guess nobody's been using the nightly builds...
9041 2001-09-13 08:27  simon
9043         * assemble.pl, basic_opcodes.ops, opcode_table:
9044         Bitwise ops, from Brian Wheeler.
9046 2001-09-13 08:23  simon
9048         * .cvsignore, t/.cvsignore:
9049         .cvsignore's, from Gregor Purdy.
9051 2001-09-13 08:22  simon
9053         * Makefile:
9054         Euclidean test and test output rearranging from Gregor Purdy.
9056 2001-09-13 08:21  simon
9058         * assemble.pl, basic_opcodes.ops, disassemble.pl, opcode_table:
9059         Math ops from Gibbs Tanton.
9061 2001-09-13 08:14  simon
9063         * basic_opcodes.ops, opcode_table, string.c, string.h, strnative.c,
9064         t/test2.pasm:
9065         String substr op; also rearranged "encoding" to be a vtable
9066         pointer, not an array index. Haven't changed docs to reflect this,
9067         oops.
9069         Simon
9071 2001-09-12 19:48  dan
9073         * t/euclid.pasm: Implementation of Euclid's Algorithm, courtesy of
9074         Gregor Purdy
9076 2001-09-12 19:39  dan
9078         * basic_opcodes.ops, opcode_table: From Gregor Purdy. Adds mod_i.
9080 2001-09-12 19:23  dan
9082         * interpreter.h, parrot.h: Quick placeholder entry for string
9083         function tables
9085 2001-09-12 18:58  dan
9087         * memory.c: Added in a cast to make gcc happy.
9089 2001-09-12 16:44  dan
9091         * docs/parrot_assembly.pod:
9093         PDD describing parrot's assembly language and the opcodes in it
9095 2001-09-12 14:20  dan
9097         * memory.c:
9098         Fixed alignment issues with allocation
9100 2001-09-12 10:54  simon
9102         * Makefile, assemble.pl, bytecode.c, disassemble.pl,
9103         make_op_header.pl, opcode_table, process_opfunc.pl:
9104         Brian Wheeler's big patch:
9106         * Changes the opcode_table file to provide additional information
9107         about the operands.  Case shouldn't be a problem since that data
9108         never becomes a C symbol [this is pretty much as before]
9110         * Padding errors solved:  assemble.pl and bytecode.c were padding
9111         the constants incorrectly.  It should have been 4-(size % 4), not
9112         just (size % 4).  It is now fixed in both places.
9114         * assembler has less special cases, and should be easier to hang
9115         error checking on
9117         * disassembler dumps constant table and the format is a bit
9118         prettier, including register names, etc.
9120 2001-09-11 23:21  dan
9122         * build_interp_starter.pl, interpreter.c:
9124         Abstracted the runops function core into a macro for easy
9125         replacement later.
9127 2001-09-11 10:43  simon
9129         * Configure.pl, MANIFEST, Makefile, config.h, config.h.in:
9130         Configure system from Brent Dax <brentdax@cpan.org>
9132 2001-09-11 09:38  simon
9134         * assemble.pl, test.pbc:
9135         From: Bryan C. Warnock <bwarnock@raba.com> Subject: Patch:
9136         assembler deferred output
9138         Also got rid of the bytecode, since that's probably way out of
9139         date.
9141 2001-09-11 09:26  simon
9143         * basic_opcodes.ops, opcode_table, t/test2.pasm:
9144         From: Bryan C. Warnock <bwarnock@raba.com> Subject: length_s_i
9145         patch
9147 2001-09-10 23:20  simon
9149         * MANIFEST:
9150         And that move needs a MANIFEST change. So many things to remember!
9152 2001-09-10 23:18  simon
9154         * t/: test.pasm, test2.pasm, test3.pasm:
9155         Move tests to t/. (Oh, CVS doesn't work the way I think it does.)
9157 2001-09-10 23:18  simon
9159         * test.pasm, test2.pasm, test3.pasm:
9160         Move tests to t/
9162 2001-09-10 23:04  dan
9164         * test3.pasm:
9166         Register push/pop test
9168 2001-09-10 22:47  simon
9170         * basic_opcodes.ops, bytecode.c, parrot.h, test_main.c:
9171         Fix up format warnings, from Sam Tregar <sam@tregar.com>.
9172         (Modified to avoid conflict with Dan's changes.)
9174 2001-09-10 22:45  dan
9176         * disassemble.pl:
9178         Happier about blanks in opcode_table
9180 2001-09-10 22:40  dan
9182         * interpreter.c, register.c:
9184         Yanked out debugging code, since these work OK. The bug I want is
9185         elsewhere.
9187 2001-09-10 22:30  simon
9189         * MANIFEST:
9190         Uhm. We want make_op_header.pl. We really, really do.
9192 2001-09-10 22:26  simon
9194         * Makefile, TODO, assemble.pl, basic_opcodes.ops,
9195         build_interp_starter.pl, disassemble.pl, make_op_header.pl,
9196         opcode_table, process_opfunc.pl:
9197         Automatic opcode numbering, from Leon Brocard <acme@astray.com>.
9198         This means we can add lots more opcodes without fiddling about with
9199         the numbers. Hooray!
9201         Don't forget that "end" needs to be op zero, else the interpreter
9202         falls off the end of the code. This is Bad, and I wonder if there's
9203         a way around it.
9205 2001-09-10 19:49  simon
9207         * MANIFEST, make_op_table_build.pl:
9208         Hey! This doesn't do anything...
9210 2001-09-10 19:46  simon
9212         * Makefile:
9213         "clean" target cleanup from Bryan C. Warnock <bwarnock@raba.com>.
9215 2001-09-10 18:31  simon
9217         * MANIFEST:
9218         You know what this means...
9220 2001-09-10 18:30  simon
9222         * assemble.pl:
9223         "use strict" patch from Leon Brocard <acme@astray.com>. Hey, why
9224         wait for a release...? :)
9226 2001-09-10 18:13  simon
9228         * interpreter.c:
9229         Bad Dan! No cookie!
9231 2001-09-10 17:56  simon
9233         * README:
9234         A *real* README file, which doesn't claim it isn't for public
9235         consumption.
9237 2001-09-10 17:02  simon
9239         * TODO:
9240         More things to do.
9242 2001-09-10 16:56  dan
9244         * TODO: Added in assembler gripe. Also added a few blank lines for
9245         clarity
9247 2001-09-10 16:49  dan
9249         * register.h, register.c: Renamed the core functions so the opcodes
9250         can find 'em OK. (There were some conflicts)
9252 2001-09-10 16:48  dan
9254         * basic_opcodes.ops, opcode_table: Added register window ops
9256 2001-09-10 11:07  simon
9258         * TODO:
9259         Trivial TODO list.
9261 2001-09-10 11:05  simon
9263         * test.pbc, test2.pasm, test_main.c: Other string bits and pieces;
9264         note "-s" flag to test prog.
9266 2001-09-10 11:01  simon
9268         * docs/strings.pod:
9269         New string documentation.
9271 2001-09-10 11:01  simon
9273         * basic_opcodes.ops, opcode_table:
9274         String ops.
9276 2001-09-10 10:53  simon
9278         * global_setup.c:
9279         More string fu.
9281 2001-09-10 10:51  simon
9283         * memory.h:
9284         Just some more aliases for now. Used by string handling stuff.
9286 2001-09-10 10:50  simon
9288         * assemble.pl, bytecode.c, bytecode.h:
9289         Temporary hack to store string constants in bytecode and recreate
9290         them at runtime.
9292 2001-09-10 10:48  simon
9294         * op.h:
9295         op.h is now generated by the Makefile; remove it.
9297 2001-09-10 10:47  simon
9299         * Makefile:
9300         clean and op.h Makefile targets.
9302 2001-09-10 10:45  simon
9304         * string.c, string.h, strnative.c:
9305         More string vtable stuff.
9307 2001-09-07 21:07  dan
9309         * assemble.pl:
9311         Much less picky about whitespace in the opcode_table now. (Doesn't
9312         whine on blank lines)
9314 2001-09-07 16:23  dan
9316         * Makefile, assemble.pl, global_setup.h, interpreter.c,
9317         interpreter.h, opcode_table, parrot.h, test.pasm: (Here's hoping
9318         this takes) Added global_setup.h to declare init_world function
9320         Moved variable declarations out of the interpreter loop for small
9321         speed boost.
9323         Changed end opcode to now be opcode #0. A function is provided for
9324         it, but isn't ever executed.
9326         When the interpreter sees an opcode 0 in the stream it means the
9327         end of stream. Things were coring on Cygwin otherwise. (I think I
9328         was dereferencing a zero, which is bad)
9330 2001-09-06 22:07  dan
9332         * basic_opcodes.ops, process_opfunc.pl:
9334         Minor tweaks to basic_opcodes.ops to fix some NV issues. The rest
9335         are minor changes now that things are in a fixed state.
9337 2001-09-06 16:13  dan
9339         * basic_opcodes.c, test_opcodes.c:
9340         test_opcodes.c is now irrelevant--they're all in basic_opcodes.ops.
9342         basic_opcodes.c is now autogenerated from basic_opcodes.ops, and
9343         should be nuked. So it is. :)
9345 2001-09-06 03:35  dan
9347         * basic_opcodes.ops, build_interp_starter.pl, process_opfunc.pl:
9348         Scripts to build the header file that holds the function table
9349         creation code, as well as the script to turn an opcode file to C
9350         source. (And the basic opcode functions turned into an opcode
9351         source file)
9353 2001-09-06 03:31  dan
9355         * Makefile, interpreter.c:
9356         Changes to support the autogeneration of the opcode function
9357         pointer table in interpreter.c, along with the changes to the
9358         Makefile needed.
9360 2001-09-05 13:27  simon
9362         * bytecode.c, config.h, docs/opcodes.pod, docs/overview.pod,
9363         docs/parrotbyte.pod, docs/vtables.pod:
9364         Added stubs for the documents; working on them this week. (What's
9365         left of it.) config.h change is just to type VTABLE, and the
9366         bytecode thing you might want to revoke. It's apidoc for the
9367         functions in there.
9369 2001-09-03 18:26  simon
9371         * docs/strings.pod:
9372         A start on the string API documentation.
9374 2001-09-03 17:43  simon
9376         * opcode_table:
9377         Since we specify the opcode number, we can rearrange to a more
9378         human-friendly ordering.
9380 2001-09-03 17:42  simon
9382         * basic_opcodes.c:
9383         Coupl'a logic bugs. (I think)
9385 2001-09-03 17:41  simon
9387         * string.c, string.h, strnative.c:
9388         Tidying up the string vtables.
9390 2001-09-03 17:38  simon
9392         * make_op_header.pl:
9393         Spit out the whole of op.h, not just the bit in the middle.
9395 2001-08-29 13:16  ask
9397         * README: it seems like we indeed can commit. What about sending
9398         commit mails?
9400 2001-08-29 13:07  simon
9402         * Makefile, README, assemble.pl, basic_opcodes.c, bytecode.c,
9403         bytecode.h, config.h, disassemble.pl, events.h, exceptions.h,
9404         global_setup.c, interpreter.c, interpreter.h, io.h,
9405         make_op_header.pl, make_op_table_build.pl, memory.c, memory.h,
9406         op.h, opcode_table, parrot.c, parrot.h, register.c, register.h,
9407         stacks.h, string.c, string.h, strnative.c, strnative.h, test.pasm,
9408         test.pbc, test_main.c, test_opcodes.c:
9409         Initial checkin of Simon's work directory - Dan, feel free to nuke.
9410          I'm still working on the string stuff, though.
9412 2001-08-29 12:44  ask
9414         * README: update README with list address
9416 2001-08-29 12:36  ask
9418         * README: first readme.